Description:
add best_in_place tidy up route
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r474:24d67ab56dc2 - - 7 files changed: 32 inserted, 4 deleted

@@ -1,60 +1,63
1 1 source 'https://rubygems.org'
2 2
3 3 gem 'rails', '3.2.19'
4 4
5 5 # Bundle edge Rails instead:
6 6 # gem 'rails', :git => 'git://github.com/rails/rails.git'
7 7
8 8 gem 'mysql2'
9 9
10 10 # Gems used only for assets and not required
11 11 # in production environments by default.
12 12 group :assets do
13 13 gem 'sass-rails', '~> 3.2.3'
14 14 gem 'coffee-rails', '~> 3.2.1'
15 15
16 16 # See https://github.com/sstephenson/execjs#readme for more supported runtimes
17 17 # gem 'therubyracer', :platforms => :ruby
18 18
19 19 gem 'uglifier', '>= 1.0.3'
20 20 end
21 21
22 22 gem 'prototype-rails'
23 23
24 24 # To use ActiveModel has_secure_password
25 25 # gem 'bcrypt-ruby', '~> 3.0.0'
26 26
27 27 # To use Jbuilder templates for JSON
28 28 # gem 'jbuilder'
29 29
30 30 # Use unicorn as the app server
31 31 # gem 'unicorn'
32 32
33 33 # Deploy with Capistrano
34 34 # gem 'capistrano'
35 35
36 36 # To use debugger
37 37 # gem 'debugger'
38 38 #
39 39
40 + #in-place editor
41 + gem 'best_in_place', '~> 3.0.1'
42 +
40 43 # jquery addition
41 44 gem 'jquery-rails'
42 45 gem 'jquery-ui-sass-rails'
43 46 gem 'jquery-timepicker-addon-rails'
44 47 gem 'jquery-tablesorter'
45 48
46 49 #syntax highlighter
47 50 gem 'rouge'
48 51
49 52 gem "haml"
50 53 gem "mail"
51 54 gem "rdiscount"
52 55 gem "test-unit"
53 56 gem 'will_paginate', '~> 3.0.0'
54 57 gem 'dynamic_form'
55 58 gem 'in_place_editing'
56 59 gem 'verification', :git => 'git://github.com/sikachu/verification.git'
57 60
58 61 group :test, :development do
59 62 gem "rspec-rails", "~> 2.0"
60 63 end
@@ -1,87 +1,90
1 1 GIT
2 2 remote: git://github.com/sikachu/verification.git
3 3 revision: 76eaf51b13276ecae54bd9cd115832595d2ff56d
4 4 specs:
5 5 verification (1.0.3)
6 6 actionpack (>= 3.0.0, < 5.0)
7 7 activesupport (>= 3.0.0, < 5.0)
8 8
9 9 GEM
10 10 remote: https://rubygems.org/
11 11 specs:
12 12 actionmailer (3.2.19)
13 13 actionpack (= 3.2.19)
14 14 mail (~> 2.5.4)
15 15 actionpack (3.2.19)
16 16 activemodel (= 3.2.19)
17 17 activesupport (= 3.2.19)
18 18 builder (~> 3.0.0)
19 19 erubis (~> 2.7.0)
20 20 journey (~> 1.0.4)
21 21 rack (~> 1.4.5)
22 22 rack-cache (~> 1.2)
23 23 rack-test (~> 0.6.1)
24 24 sprockets (~> 2.2.1)
25 25 activemodel (3.2.19)
26 26 activesupport (= 3.2.19)
27 27 builder (~> 3.0.0)
28 28 activerecord (3.2.19)
29 29 activemodel (= 3.2.19)
30 30 activesupport (= 3.2.19)
31 31 arel (~> 3.0.2)
32 32 tzinfo (~> 0.3.29)
33 33 activeresource (3.2.19)
34 34 activemodel (= 3.2.19)
35 35 activesupport (= 3.2.19)
36 36 activesupport (3.2.19)
37 37 i18n (~> 0.6, >= 0.6.4)
38 38 multi_json (~> 1.0)
39 39 arel (3.0.3)
40 + best_in_place (3.0.2)
41 + actionpack (>= 3.2)
42 + railties (>= 3.2)
40 43 builder (3.0.4)
41 44 coffee-rails (3.2.2)
42 45 coffee-script (>= 2.2.0)
43 46 railties (~> 3.2.0)
44 47 coffee-script (2.3.0)
45 48 coffee-script-source
46 49 execjs
47 50 coffee-script-source (1.7.1)
48 51 diff-lcs (1.2.5)
49 52 dynamic_form (1.1.4)
50 53 erubis (2.7.0)
51 54 execjs (2.2.1)
52 55 haml (4.0.5)
53 56 tilt
54 57 hike (1.2.3)
55 58 i18n (0.6.11)
56 59 in_place_editing (1.2.0)
57 60 journey (1.0.4)
58 61 jquery-rails (3.1.1)
59 62 railties (>= 3.0, < 5.0)
60 63 thor (>= 0.14, < 2.0)
61 64 jquery-tablesorter (1.12.7)
62 65 railties (>= 3.1, < 5)
63 66 jquery-timepicker-addon-rails (1.4.1)
64 67 railties (>= 3.1)
65 68 jquery-ui-rails (4.0.3)
66 69 jquery-rails
67 70 railties (>= 3.1.0)
68 71 jquery-ui-sass-rails (4.0.3.0)
69 72 jquery-rails
70 73 jquery-ui-rails (= 4.0.3)
71 74 railties (>= 3.1.0)
72 75 json (1.8.1)
73 76 mail (2.5.4)
74 77 mime-types (~> 1.16)
75 78 treetop (~> 1.4.8)
76 79 mime-types (1.25.1)
77 80 multi_json (1.10.1)
78 81 mysql2 (0.3.16)
79 82 polyglot (0.3.5)
80 83 power_assert (0.1.3)
81 84 prototype-rails (3.2.1)
82 85 rails (~> 3.2)
83 86 rack (1.4.5)
84 87 rack-cache (1.2)
85 88 rack (>= 0.4)
86 89 rack-ssl (1.3.4)
87 90 rack
@@ -104,68 +107,69
104 107 thor (>= 0.14.6, < 2.0)
105 108 rake (10.3.2)
106 109 rdiscount (2.1.7.1)
107 110 rdoc (3.12.2)
108 111 json (~> 1.4)
109 112 rouge (1.6.2)
110 113 rspec-collection_matchers (1.0.0)
111 114 rspec-expectations (>= 2.99.0.beta1)
112 115 rspec-core (2.99.2)
113 116 rspec-expectations (2.99.2)
114 117 diff-lcs (>= 1.1.3, < 2.0)
115 118 rspec-mocks (2.99.2)
116 119 rspec-rails (2.99.0)
117 120 actionpack (>= 3.0)
118 121 activemodel (>= 3.0)
119 122 activesupport (>= 3.0)
120 123 railties (>= 3.0)
121 124 rspec-collection_matchers
122 125 rspec-core (~> 2.99.0)
123 126 rspec-expectations (~> 2.99.0)
124 127 rspec-mocks (~> 2.99.0)
125 128 sass (3.4.1)
126 129 sass-rails (3.2.6)
127 130 railties (~> 3.2.0)
128 131 sass (>= 3.1.10)
129 132 tilt (~> 1.3)
130 133 sprockets (2.2.2)
131 134 hike (~> 1.2)
132 135 multi_json (~> 1.0)
133 136 rack (~> 1.0)
134 137 tilt (~> 1.1, != 1.3.0)
135 138 test-unit (3.0.1)
136 139 power_assert
137 140 thor (0.19.1)
138 141 tilt (1.4.1)
139 142 treetop (1.4.15)
140 143 polyglot
141 144 polyglot (>= 0.3.1)
142 145 tzinfo (0.3.41)
143 146 uglifier (2.5.3)
144 147 execjs (>= 0.3.0)
145 148 json (>= 1.8.0)
146 149 will_paginate (3.0.7)
147 150
148 151 PLATFORMS
149 152 ruby
150 153
151 154 DEPENDENCIES
155 + best_in_place (~> 3.0.1)
152 156 coffee-rails (~> 3.2.1)
153 157 dynamic_form
154 158 haml
155 159 in_place_editing
156 160 jquery-rails
157 161 jquery-tablesorter
158 162 jquery-timepicker-addon-rails
159 163 jquery-ui-sass-rails
160 164 mail
161 165 mysql2
162 166 prototype-rails
163 167 rails (= 3.2.19)
164 168 rdiscount
165 169 rouge
166 170 rspec-rails (~> 2.0)
167 171 sass-rails (~> 3.2.3)
168 172 test-unit
169 173 uglifier (>= 1.0.3)
170 174 verification!
171 175 will_paginate (~> 3.0.0)
@@ -1,7 +1,14
1 1 //= require jquery
2 2 //= require jquery_ujs
3 3 //= require jquery.ui.all
4 4 //= require jquery.ui.datepicker
5 5 //= require jquery.ui.slider
6 6 //= require jquery-ui-timepicker-addon
7 7 //= require jquery-tablesorter
8 + //= require best_in_place
9 + //= require best_in_place.jquery-ui
10 +
11 + $(document).ready(function() {
12 + /* Activating Best In Place */
13 + jQuery(".best_in_place").best_in_place();
14 + });
@@ -1,20 +1,28
1 1 class ConfigurationsController < ApplicationController
2 2
3 3 before_filter :authenticate
4 4 before_filter { |controller| controller.authorization_by_roles(['admin'])}
5 5
6 - in_place_edit_for :grader_configuration, :key
7 - in_place_edit_for :grader_configuration, :type
8 - in_place_edit_for :grader_configuration, :value
9 6
10 7 def index
11 8 @configurations = GraderConfiguration.find(:all,
12 9 :order => '`key`')
13 10 end
14 11
15 12 def reload
16 13 GraderConfiguration.reload
17 14 redirect_to :action => 'index'
18 15 end
19 16
17 + def update
18 + @config = GraderConfiguration.find(params[:id])
19 + respond_to do |format|
20 + if @config.update_attributes(params[:grader_configuration])
21 + format.json { head :ok }
22 + else
23 + format.json { respond_with_bip(@config) }
20 24 end
25 + end
26 + end
27 +
28 + end
@@ -1,29 +1,32
1 + - content_for :header do
2 + = javascript_include_tag 'local_jquery'
3 +
1 4 %h1 System configuration
2 5
3 6 %table.info
4 7 %tr.info-head
5 8 %th Key
6 9 %th Type
7 10 %th Value
8 11 %th Description
9 12 - @configurations.each do |conf|
10 13 - @grader_configuration = conf
11 14 %tr{:class => cycle("info-odd", "info-even")}
12 15 %td
13 16 = in_place_editor_field :grader_configuration, :key, {}, :rows=>1
14 17 %td
15 18 = in_place_editor_field :grader_configuration, :value_type, {}, :rows=>1
16 19 %td
17 - = in_place_editor_field :grader_configuration, :value, {}, :rows=>1
20 + = best_in_place @grader_configuration, :value, ok_button: "ok", cancel_button: "cancel"
18 21 %td= conf.description
19 22
20 23 - if GraderConfiguration.config_cached?
21 24 %br/
22 25 Your config is saved, but it does not automatically take effect.
23 26 %br/
24 27 If you have one mongrel process running, you can
25 28 = link_to '[click]', :action => 'reload'
26 29 here to reload.
27 30 %br/
28 31 If you have more than one process running, you should restart
29 32 them manually.
@@ -1,50 +1,51
1 1 - content_for :head do
2 2 = stylesheet_link_tag 'graders'
3 + = javascript_include_tag 'local_jquery'
3 4 <meta http-equiv ="refresh" content="60"/>
4 5
5 6 %h1 Grader information
6 7
7 8 = link_to '[Refresh]', :action => 'list'
8 9 %br/
9 10
10 11 .submitbox
11 12 .item
12 13 Grader control:
13 14 .item
14 15 = form_for :clear, :url => {:action => 'start_grading'} do |f|
15 16 = submit_tag 'Start graders in grading env'
16 17 .item
17 18 = form_for :clear, :url => {:action => 'start_exam'} do |f|
18 19 = submit_tag 'Start graders in exam env'
19 20 .item
20 21 = form_for :clear, :url => {:action => 'stop_all'} do |f|
21 22 = submit_tag 'Stop all running graders'
22 23 .item
23 24 = form_for :clear, :url => {:action => 'clear_all'} do |f|
24 25 = submit_tag 'Clear all data'
25 26 %br{:style => 'clear:both'}/
26 27
27 28 %div{style: 'width:500px; float: left;'}
28 29 - if @last_task
29 30 Last task:
30 31 = link_to "#{@last_task.id}", :action => 'view', :id => @last_task.id, :type => 'Task'
31 32
32 33 %br/
33 34
34 35 - if @last_test_request
35 36 Last test_request:
36 37 = link_to "#{@last_test_request.id}", :action => 'view', :id => @last_test_request.id, :type => 'TestRequest'
37 38
38 39 %h2 Current graders
39 40
40 41 = render :partial => 'grader_list', :locals => {:grader_list => @grader_processes}
41 42
42 43 %h2 Stalled graders
43 44
44 45 = render :partial => 'grader_list', :locals => {:grader_list => @stalled_processes}
45 46
46 47 %h2 Terminated graders
47 48
48 49 = form_for :clear, :url => {:action => 'clear_terminated'} do |f|
49 50 = submit_tag 'Clear data for terminated graders'
50 51
@@ -1,56 +1,58
1 1 CafeGrader::Application.routes.draw do
2 2 get "report/login"
3 3
4 4 resources :contests
5 5
6 6 resources :announcements
7 7 resources :sites
8 8
9 + resources :grader_configuration, controller: 'configurations'
10 +
9 11 # The priority is based upon order of creation:
10 12 # first created -> highest priority.
11 13
12 14 # Sample of regular route:
13 15 # match 'products/:id' => 'catalog#view'
14 16 # Keep in mind you can assign values other than :controller and :action
15 17
16 18 # Sample of named route:
17 19 # match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
18 20 # This route can be invoked with purchase_url(:id => product.id)
19 21
20 22 # Sample resource route (maps HTTP verbs to controller actions automatically):
21 23 # resources :products
22 24
23 25 # Sample resource route with options:
24 26 # resources :products do
25 27 # member do
26 28 # get 'short'
27 29 # post 'toggle'
28 30 # end
29 31 #
30 32 # collection do
31 33 # get 'sold'
32 34 # end
33 35 # end
34 36
35 37 # Sample resource route with sub-resources:
36 38 # resources :products do
37 39 # resources :comments, :sales
38 40 # resource :seller
39 41 # end
40 42
41 43 # Sample resource route with more complex sub-resources
42 44 # resources :products do
43 45 # resources :comments
44 46 # resources :sales do
45 47 # get 'recent', :on => :collection
46 48 # end
47 49 # end
48 50
49 51 # Sample resource route within a namespace:
50 52 # namespace :admin do
51 53 # # Directs /admin/products/* to Admin::ProductsController
52 54 # # (app/controllers/admin/products_controller.rb)
53 55 # resources :products
54 56 # end
55 57
56 58 # You can have the root of your site routed with "root"
You need to be logged in to leave comments. Login now