Skip to content

Commit 86e915f

Browse files
committed
dragndrop working
1 parent bf21b4c commit 86e915f

File tree

8 files changed

+64
-2
lines changed

8 files changed

+64
-2
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
// Place all the styles related to the PlanCourses controller here.
2+
// They will automatically be included in application.css.
3+
// You can use Sass (SCSS) here: https://sass-lang.com/

app/assets/stylesheets/project4.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,3 +190,7 @@ table div, .dataTables_scrollHead, .dataTables_scrollHeadInner, .dataTables_scro
190190
.fsuccess{
191191
color: green;
192192
}
193+
194+
#trash{
195+
font-size: 64px;
196+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class PlanCoursesController < ApplicationController
2+
#post
3+
def create
4+
@planCourse = PlanCourse.new
5+
@planCourse.plan_id = Plan.where(name: params[:plan], user_id: params[:user])[0].id
6+
@planCourse.course_id = Course.where(designator: params[:designator])[0].id
7+
@planCourse.term = params[:term]
8+
@planCourse.year = params[:year]
9+
@planCourse.save!
10+
end
11+
12+
#get
13+
def index
14+
@planCourse = PlanCourse.where(plan_id: Plan.where(name: params[:plan], user_id: params[:user])[0].id, course_id: Course.where(designator: params[:designator])[0].id)[0]
15+
@planCourse.destroy();
16+
end
17+
end

app/helpers/plan_courses_helper.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
module PlanCoursesHelper
2+
end

app/javascript/packs/myjs.js

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ window.hoverOverPlan = function(event){
132132
}
133133

134134
window.dropOnPlan = function(event){
135+
event.preventDefault();
135136
event.target.children[1].innerHTML += "<li draggable='true' ondragstart='dragFromPlan(event)'>" + draggedCourse.designator + ": " + draggedCourse.name + "</li>";
136137
if (draggedReqOrigin !== null){
137138
draggedReqOrigin.hidden = true;
@@ -141,9 +142,33 @@ window.dropOnPlan = function(event){
141142
draggedPlanOrigin.remove();
142143
draggedPlanOrigin = null;
143144
}
144-
145+
$.post("/plan_courses", {
146+
plan: plan.plan_name,
147+
user: plan.user.id,
148+
designator: draggedCourse.designator,
149+
term: event.target.children[0].children[0].innerText.split(" ")[0],
150+
year: parseInt(event.target.children[0].children[0].innerText.split(" ")[1]),
151+
});
152+
draggedCourse = null;
153+
}
154+
155+
window.hoverOverTrash = function(event){
156+
event.preventDefault();
157+
}
158+
159+
window.dropInTrash = function(event){
160+
event.preventDefault();
161+
if (draggedPlanOrigin !== null){
162+
draggedPlanOrigin.remove();
163+
draggedPlanOrigin = null;
164+
165+
$.get("/plan_courses", {
166+
designator: draggedCourse.designator,
167+
user: plan.user.id,
168+
plan: plan.plan_name
169+
});
170+
}
145171
draggedCourse = null;
146-
147172
}
148173

149174
class Course {

app/views/plans/index.html.erb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@
3535
<div class="container">
3636
<div id="accordion">
3737
</div>
38+
<div id="trash" ondragover='hoverOverTrash(event)' ondrop='dropInTrash(event)'>
39+
<i class="fa fa-trash" aria-hidden="true"></i>
40+
</div>
3841
</div>
3942
</div>
4043

config/routes.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
Rails.application.routes.draw do
22
root 'plans#index'
33
resources :plans
4+
resources :plan_courses
45
devise_for :users, :controllers => {:registrations => 'registrations'}
56
# For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
67
end
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
require 'test_helper'
2+
3+
class PlanCoursesControllerTest < ActionDispatch::IntegrationTest
4+
# test "the truth" do
5+
# assert true
6+
# end
7+
end

0 commit comments

Comments
 (0)