Description:
wip: bootstrap toggle switch todo: add javascript that thisable button until reponse arrived
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r556:b4cf182747cd - - 9 files changed: 23 inserted, 4 deleted

@@ -45,24 +45,25
45 45 # jquery addition
46 46 gem 'jquery-rails'
47 47 gem 'jquery-ui-sass-rails'
48 48 gem 'jquery-timepicker-addon-rails'
49 49 gem 'jquery-tablesorter'
50 50
51 51 #syntax highlighter
52 52 gem 'rouge'
53 53
54 54 #add bootstrap
55 55 gem 'bootstrap-sass', '~> 3.2.0'
56 56 gem 'bootstrap-switch-rails'
57 + gem 'bootstrap-toggle-rails'
57 58 gem 'autoprefixer-rails'
58 59
59 60
60 61 gem 'haml'
61 62 gem 'mail'
62 63 gem 'rdiscount'
63 64 gem 'test-unit'
64 65 gem 'will_paginate', '~> 3.0.7'
65 66 gem 'dynamic_form'
66 67 gem 'in_place_editing'
67 68 gem 'verification', :git => 'https://github.com/sikachu/verification.git'
68 69
@@ -37,24 +37,25
37 37 i18n (~> 0.6, >= 0.6.4)
38 38 multi_json (~> 1.0)
39 39 arel (3.0.3)
40 40 autoprefixer-rails (6.0.3)
41 41 execjs
42 42 json
43 43 best_in_place (3.0.3)
44 44 actionpack (>= 3.2)
45 45 railties (>= 3.2)
46 46 bootstrap-sass (3.2.0.2)
47 47 sass (~> 3.2)
48 48 bootstrap-switch-rails (3.3.3)
49 + bootstrap-toggle-rails (2.2.1.0)
49 50 builder (3.0.4)
50 51 coffee-rails (3.2.2)
51 52 coffee-script (>= 2.2.0)
52 53 railties (~> 3.2.0)
53 54 coffee-script (2.3.0)
54 55 coffee-script-source
55 56 execjs
56 57 coffee-script-source (1.9.0)
57 58 diff-lcs (1.2.5)
58 59 dynamic_form (1.1.4)
59 60 erubis (2.7.0)
60 61 execjs (2.3.0)
@@ -155,24 +156,25
155 156 execjs (>= 0.3.0)
156 157 json (>= 1.8.0)
157 158 will_paginate (3.0.7)
158 159
159 160 PLATFORMS
160 161 ruby
161 162
162 163 DEPENDENCIES
163 164 autoprefixer-rails
164 165 best_in_place (~> 3.0.1)
165 166 bootstrap-sass (~> 3.2.0)
166 167 bootstrap-switch-rails
168 + bootstrap-toggle-rails
167 169 coffee-rails (~> 3.2.2)
168 170 dynamic_form
169 171 haml
170 172 in_place_editing
171 173 jquery-rails
172 174 jquery-tablesorter
173 175 jquery-timepicker-addon-rails
174 176 jquery-ui-sass-rails
175 177 mail
176 178 mysql2
177 179 prototype-rails
178 180 rails (= 3.2.21)
@@ -5,23 +5,24
5 5 // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6 6 //
7 7 // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8 8 // the compiled file.
9 9 //
10 10 // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
11 11 // GO AFTER THE REQUIRES BELOW.
12 12 //
13 13 //= require jquery
14 14 //= require jquery_ujs
15 15 //= require jquery.ui.all
16 16 //= require bootstrap-sprockets
17 - //= require bootstrap-switch
17 + //x= require bootstrap-switch
18 + //= require bootstrap-toggle
18 19 //= require select2
19 20 //= require custom
20 21
21 22
22 23 // since this is after blank line, it is not downloaded
23 24 //x= require prototype
24 25 //x= require prototype_ujs
25 26 //x= require effects
26 27 //x= require dragdrop
27 28 //x= require controls
@@ -4,23 +4,24
4 4 label = input.val().replace(/\\/g, '/').replace(/.*\//, '')
5 5 input.trigger 'fileselect', [
6 6 numFiles
7 7 label
8 8 ]
9 9 return
10 10
11 11
12 12 # document ready
13 13
14 14 $ ->
15 15 $(".select2").select2()
16 - $(".bootstrap-switch").bootstrapSwitch()
16 + #$(".bootstrap-switch").bootstrapSwitch()
17 + $(".bootstrap-toggle").bootstrapToggle()
17 18 $('.btn-file :file').on 'fileselect', (event, numFiles, label) ->
18 19 input = $(this).parents('.input-group').find(':text')
19 20 log = if numFiles > 1 then numFiles + ' files selected' else label
20 21 if input.length
21 22 input.val log
22 23 else
23 24 if log
24 25 alert log
25 26 return
26 27 return
@@ -21,25 +21,26
21 21 @import jquery.ui.theme
22 22 @import jquery.ui.datepicker
23 23 @import jquery.ui.slider
24 24 @import jquery-ui-timepicker-addon
25 25 @import jquery-tablesorter/theme.metro-dark
26 26 @import tablesorter-theme.cafe
27 27
28 28 //bootstrap
29 29 @import bootstrap-sprockets
30 30 @import bootstrap
31 31 @import select2
32 32 @import select2-bootstrap
33 - @import bootstrap3-switch
33 + //@import bootstrap3-switch
34 + @import bootstrap-toggle
34 35
35 36 .secondnavbar
36 37 top: 50px
37 38
38 39 .btn-file
39 40 position: relative
40 41 overflow: hidden
41 42
42 43 .btn-file input[type=file]
43 44 position: absolute
44 45 top: 0
45 46 right: 0
@@ -60,32 +60,42
60 60 end
61 61 end
62 62
63 63 # PUT /announcements/1
64 64 # PUT /announcements/1.xml
65 65 def update
66 66 @announcement = Announcement.find(params[:id])
67 67
68 68 respond_to do |format|
69 69 if @announcement.update_attributes(params[:announcement])
70 70 flash[:notice] = 'Announcement was successfully updated.'
71 71 format.html { redirect_to(@announcement) }
72 + format.js {}
72 73 format.xml { head :ok }
73 74 else
74 75 format.html { render :action => "edit" }
76 + format.js {}
75 77 format.xml { render :xml => @announcement.errors, :status => :unprocessable_entity }
76 78 end
77 79 end
78 80 end
79 81
82 + def toggle
83 + @announcement = Announcement.find(params[:id])
84 + @announcement.update_attributes( published: params[:published] == 1)
85 + respond_to do |format|
86 + format.js {}
87 + end
88 + end
89 +
80 90 # DELETE /announcements/1
81 91 # DELETE /announcements/1.xml
82 92 def destroy
83 93 @announcement = Announcement.find(params[:id])
84 94 @announcement.destroy
85 95
86 96 respond_to do |format|
87 97 format.html { redirect_to(announcements_url) }
88 98 format.xml { head :ok }
89 99 end
90 100 end
91 101 end
@@ -1,22 +1,23
1 1 class ApplicationController < ActionController::Base
2 2 protect_from_forgery
3 3
4 4 before_filter :current_user
5 5
6 6 SINGLE_USER_MODE_CONF_KEY = 'system.single_user_mode'
7 7 MULTIPLE_IP_LOGIN_CONF_KEY = 'right.multiple_ip_login'
8 8
9 9 # Returns the current logged-in user (if any).
10 10 def current_user
11 + return nil unless session[:user_id]
11 12 @current_user ||= User.find(session[:user_id])
12 13 end
13 14
14 15 def admin_authorization
15 16 return false unless authenticate
16 17 user = User.find(session[:user_id], :include => ['roles'])
17 18 unless user.admin?
18 19 flash[:notice] = 'You are not authorized to view the page you requested'
19 20 redirect_to :controller => 'main', :action => 'login' unless user.admin?
20 21 return false
21 22 end
22 23 return true
@@ -18,24 +18,24
18 18 <% @announcement = announcement %>
19 19 <td><%= time_ago_in_words announcement.updated_at %></td>
20 20 <td>
21 21 <% if !announcement.title.blank? %>
22 22 <b>Title:</b> <%=h announcement.title %><br/>
23 23 <% end %>
24 24 <% if !announcement.notes.blank? %>
25 25 <b>Notes: <%=h announcement.notes %></b><br/>
26 26 <% end %>
27 27 <%=h announcement.body %>
28 28 </td>
29 29 <td><%=h announcement.author %></td>
30 - <td><%= check_box_tag :published, 1, announcement.published, class: 'bootstrap-switch', data: {size: 'small'} %></td>
30 + <td><%= check_box_tag :published, 1, announcement.published, { class: 'bootstrap-toggle', id: "published-#{announcement.id}", data: {remote: true, method: 'PUT', url: url_for(controller: :announcements, action: :toggle, id: announcement), size: 'small', toggle: 'toggle' } } %></td>
31 31 <!-- <td><%= in_place_editor_field :announcement, :published, {}, :rows => 1 %></td> -->
32 32 <td><%= link_to 'Show', announcement %></td>
33 33 <td><%= link_to 'Edit', edit_announcement_path(announcement) %></td>
34 34 <td><%= link_to 'Destroy', announcement, :confirm => 'Are you sure?', :method => :delete %></td>
35 35 </tr>
36 36 <% end %>
37 37 </table>
38 38
39 39 <br />
40 40
41 41 <%= link_to 'New announcement', new_announcement_path %>
@@ -1,20 +1,22
1 1 CafeGrader::Application.routes.draw do
2 2 root :to => 'main#login'
3 3
4 4 get "report/login"
5 5
6 6 resources :contests
7 7
8 8 resources :announcements
9 + match 'announcements/toggle/:id' => 'announcements#toggle', via: :put
10 +
9 11 resources :sites
10 12
11 13 resources :grader_configuration, controller: 'configurations'
12 14
13 15 match 'tasks/view/:file.:ext' => 'tasks#view'
14 16 match 'tasks/download/:id/:file.:ext' => 'tasks#download'
15 17 match 'heartbeat/:id/edit' => 'heartbeat#edit'
16 18
17 19 #main
18 20 get "main/list"
19 21
20 22 # See how all your routes lay out with "rake routes"
You need to be logged in to leave comments. Login now