Description:
better announcement effects git-svn-id: http://theory.cpe.ku.ac.th/grader/web/trunk@413 6386c4cd-e34a-4fa8-8920-d93eb39b512e
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r193:e9aaeb17b5bc - - 7 files changed: 48 inserted, 7 deleted

@@ -0,0 +1,9
1 + class AddTitleToAnnouncements < ActiveRecord::Migration
2 + def self.up
3 + add_column :announcements, :title, :string
4 + end
5 +
6 + def self.down
7 + remove_column :announcements, :title
8 + end
9 + end
@@ -1,37 +1,42
1 <h1>Editing announcement</h1>
1 <h1>Editing announcement</h1>
2
2
3 <%= error_messages_for :announcement %>
3 <%= error_messages_for :announcement %>
4
4
5 <% form_for(@announcement) do |f| %>
5 <% form_for(@announcement) do |f| %>
6 <p>
6 <p>
7 + <b>Title</b><br />
8 + <%= f.text_field :title %>
9 + </p>
10 +
11 + <p>
7 <b>Body</b><br />
12 <b>Body</b><br />
8 <%= f.text_area :body %>
13 <%= f.text_area :body %>
9 </p>
14 </p>
10
15
11 <p>
16 <p>
12 <b>Author</b><br />
17 <b>Author</b><br />
13 <%= f.text_field :author %>
18 <%= f.text_field :author %>
14 </p>
19 </p>
15
20
16 <p>
21 <p>
17 <b>Published</b><br />
22 <b>Published</b><br />
18 <%= f.check_box :published %>
23 <%= f.check_box :published %>
19 </p>
24 </p>
20
25
21 <p>
26 <p>
22 <b>Show on front page?</b><br />
27 <b>Show on front page?</b><br />
23 <%= f.check_box :frontpage %>
28 <%= f.check_box :frontpage %>
24 </p>
29 </p>
25
30
26 <p>
31 <p>
27 <b>Show only in contest?</b><br />
32 <b>Show only in contest?</b><br />
28 <%= f.check_box :contest_only %>
33 <%= f.check_box :contest_only %>
29 </p>
34 </p>
30
35
31 <p>
36 <p>
32 <%= f.submit "Update" %>
37 <%= f.submit "Update" %>
33 </p>
38 </p>
34 <% end %>
39 <% end %>
35
40
36 <%= link_to 'Show', @announcement %> |
41 <%= link_to 'Show', @announcement %> |
37 <%= link_to 'Back', announcements_path %>
42 <%= link_to 'Back', announcements_path %>
@@ -1,31 +1,33
1 <% content_for :head do %>
1 <% content_for :head do %>
2 <%= javascript_include_tag :defaults %>
2 <%= javascript_include_tag :defaults %>
3 <% end %>
3 <% end %>
4
4
5 <h1>Listing announcements</h1>
5 <h1>Listing announcements</h1>
6
6
7 <%= link_to 'New announcement', new_announcement_path %>
7 <%= link_to 'New announcement', new_announcement_path %>
8
8
9 <table>
9 <table>
10 <tr>
10 <tr>
11 + <th>Title</th>
11 <th>Body</th>
12 <th>Body</th>
12 <th>Author</th>
13 <th>Author</th>
13 <th>Published</th>
14 <th>Published</th>
14 </tr>
15 </tr>
15
16
16 <% for announcement in @announcements %>
17 <% for announcement in @announcements %>
17 <tr>
18 <tr>
18 <% @announcement = announcement %>
19 <% @announcement = announcement %>
20 + <td><%=h announcement.title %></td>
19 <td><%=h announcement.body %></td>
21 <td><%=h announcement.body %></td>
20 <td><%=h announcement.author %></td>
22 <td><%=h announcement.author %></td>
21 <td><%= in_place_editor_field :announcement, :published, {}, :rows => 1 %></td>
23 <td><%= in_place_editor_field :announcement, :published, {}, :rows => 1 %></td>
22 <td><%= link_to 'Show', announcement %></td>
24 <td><%= link_to 'Show', announcement %></td>
23 <td><%= link_to 'Edit', edit_announcement_path(announcement) %></td>
25 <td><%= link_to 'Edit', edit_announcement_path(announcement) %></td>
24 <td><%= link_to 'Destroy', announcement, :confirm => 'Are you sure?', :method => :delete %></td>
26 <td><%= link_to 'Destroy', announcement, :confirm => 'Are you sure?', :method => :delete %></td>
25 </tr>
27 </tr>
26 <% end %>
28 <% end %>
27 </table>
29 </table>
28
30
29 <br />
31 <br />
30
32
31 <%= link_to 'New announcement', new_announcement_path %>
33 <%= link_to 'New announcement', new_announcement_path %>
@@ -1,36 +1,41
1 <h1>New announcement</h1>
1 <h1>New announcement</h1>
2
2
3 <%= error_messages_for :announcement %>
3 <%= error_messages_for :announcement %>
4
4
5 <% form_for(@announcement) do |f| %>
5 <% form_for(@announcement) do |f| %>
6 <p>
6 <p>
7 + <b>Title</b><br />
8 + <%= f.text_field :title %>
9 + </p>
10 +
11 + <p>
7 <b>Body</b><br />
12 <b>Body</b><br />
8 <%= f.text_area :body %>
13 <%= f.text_area :body %>
9 </p>
14 </p>
10
15
11 <p>
16 <p>
12 <b>Author</b><br />
17 <b>Author</b><br />
13 <%= f.text_field :author %>
18 <%= f.text_field :author %>
14 </p>
19 </p>
15
20
16 <p>
21 <p>
17 <b>Published</b><br />
22 <b>Published</b><br />
18 <%= f.check_box :published %>
23 <%= f.check_box :published %>
19 </p>
24 </p>
20
25
21 <p>
26 <p>
22 <b>Show on front page?</b><br />
27 <b>Show on front page?</b><br />
23 <%= f.check_box :frontpage %>
28 <%= f.check_box :frontpage %>
24 </p>
29 </p>
25
30
26 <p>
31 <p>
27 <b>Show only in contest?</b><br />
32 <b>Show only in contest?</b><br />
28 <%= f.check_box :contest_only %>
33 <%= f.check_box :contest_only %>
29 </p>
34 </p>
30
35
31 <p>
36 <p>
32 <%= f.submit "Create" %>
37 <%= f.submit "Create" %>
33 </p>
38 </p>
34 <% end %>
39 <% end %>
35
40
36 <%= link_to 'Back', announcements_path %>
41 <%= link_to 'Back', announcements_path %>
@@ -1,27 +1,32
1 <p>
1 <p>
2 <b>Author:</b>
2 <b>Author:</b>
3 <%=h @announcement.author %>
3 <%=h @announcement.author %>
4 </p>
4 </p>
5
5
6 <p>
6 <p>
7 + <b>Title:</b>
8 + <%=h @announcement.title %>
9 + </p>
10 +
11 + <p>
7 <b>Body:</b>
12 <b>Body:</b>
8 <%=h @announcement.body %>
13 <%=h @announcement.body %>
9 </p>
14 </p>
10
15
11 <p>
16 <p>
12 <b>Published:</b>
17 <b>Published:</b>
13 <%=h @announcement.published %>
18 <%=h @announcement.published %>
14 </p>
19 </p>
15
20
16 <p>
21 <p>
17 <b>Show on front page:</b>
22 <b>Show on front page:</b>
18 <%=h @announcement.frontpage %>
23 <%=h @announcement.frontpage %>
19 </p>
24 </p>
20
25
21 <p>
26 <p>
22 <b>Show only in contest:</b>
27 <b>Show only in contest:</b>
23 <%=h @announcement.contest_only %>
28 <%=h @announcement.contest_only %>
24 </p>
29 </p>
25
30
26 <%= link_to 'Edit', edit_announcement_path(@announcement) %> |
31 <%= link_to 'Edit', edit_announcement_path(@announcement) %> |
27 <%= link_to 'Back', announcements_path %>
32 <%= link_to 'Back', announcements_path %>
@@ -1,17 +1,19
1 - .announcement{:id => "announcement-#{announcement.id}", :style => "#{'opacity: 0;' if (defined? announcement_effect) and announcement_effect }"}
1 + .announcement{:id => "announcement-#{announcement.id}", :style => "#{'display: none; opacity: 0' if (defined? announcement_effect) and announcement_effect }"}
2 - -# .announcement-title
2 + %div
3 + .announcement-title
3 -# .toggles
4 -# .toggles
4 - -# %a{:href => '#', :onclick => "$(\"announcement-body-#{announcement.id}\").hide(); return false;"}
5 + -# %a{:href => '#', :onclick => "$(\"announcement-body-#{announcement.id}\").blindUp({duration: 0.2}); return false;"}
5 -# [hide]
6 -# [hide]
6 - -# %a{:href => '#', :onclick => "$(\"announcement-body-#{announcement.id}\").show(); return false;"}
7 + -# %a{:href => '#', :onclick => "$(\"announcement-body-#{announcement.id}\").blindDown({duration: 0.2}); return false;"}
7 -# [show]
8 -# [show]
8 - -# Announcement Title
9 + = announcement.title
9 .announcement-body{:id => "announcement-body-#{announcement.id}"}
10 .announcement-body{:id => "announcement-body-#{announcement.id}"}
10 = markdown(announcement.body)
11 = markdown(announcement.body)
11 -#.pub-info
12 -#.pub-info
12 -# %p= "#{announcement.author}, #{announcement.created_at}"
13 -# %p= "#{announcement.author}, #{announcement.created_at}"
13 :javascript
14 :javascript
14 Announcement.updateRecentId(#{announcement.id});
15 Announcement.updateRecentId(#{announcement.id});
15 - if (defined? announcement_effect) and announcement_effect
16 - if (defined? announcement_effect) and announcement_effect
16 :javascript
17 :javascript
17 - $("announcement-#{announcement.id}").appear();
18 + $("announcement-#{announcement.id}").blindDown({duration: 0.2});
19 + $("announcement-#{announcement.id}").appear({duration: 0.5, queue: 'end'});
@@ -1,92 +1,105
1 # This file is auto-generated from the current state of the database. Instead of editing this file,
1 # This file is auto-generated from the current state of the database. Instead of editing this file,
2 # please use the migrations feature of Active Record to incrementally modify your database, and
2 # please use the migrations feature of Active Record to incrementally modify your database, and
3 # then regenerate this schema definition.
3 # then regenerate this schema definition.
4 #
4 #
5 # Note that this schema.rb definition is the authoritative source for your database schema. If you need
5 # Note that this schema.rb definition is the authoritative source for your database schema. If you need
6 # to create the application database on another system, you should be using db:schema:load, not running
6 # to create the application database on another system, you should be using db:schema:load, not running
7 # all the migrations from scratch. The latter is a flawed and unsustainable approach (the more migrations
7 # all the migrations from scratch. The latter is a flawed and unsustainable approach (the more migrations
8 # you'll amass, the slower it'll run and the greater likelihood for issues).
8 # you'll amass, the slower it'll run and the greater likelihood for issues).
9 #
9 #
10 # It's strongly recommended to check this file into your version control system.
10 # It's strongly recommended to check this file into your version control system.
11
11
12 - ActiveRecord::Schema.define(:version => 20090426131044) do
12 + ActiveRecord::Schema.define(:version => 20090815171610) do
13
13
14 create_table "announcements", :force => true do |t|
14 create_table "announcements", :force => true do |t|
15 t.string "author"
15 t.string "author"
16 t.text "body"
16 t.text "body"
17 t.boolean "published"
17 t.boolean "published"
18 t.datetime "created_at"
18 t.datetime "created_at"
19 t.datetime "updated_at"
19 t.datetime "updated_at"
20 t.boolean "frontpage", :default => false
20 t.boolean "frontpage", :default => false
21 t.boolean "contest_only", :default => false
21 t.boolean "contest_only", :default => false
22 + t.string "title"
22 end
23 end
23
24
24 create_table "configurations", :force => true do |t|
25 create_table "configurations", :force => true do |t|
25 t.string "key"
26 t.string "key"
26 t.string "value_type"
27 t.string "value_type"
27 t.string "value"
28 t.string "value"
28 t.datetime "created_at"
29 t.datetime "created_at"
29 t.datetime "updated_at"
30 t.datetime "updated_at"
30 end
31 end
31
32
32 create_table "countries", :force => true do |t|
33 create_table "countries", :force => true do |t|
33 t.string "name"
34 t.string "name"
34 t.datetime "created_at"
35 t.datetime "created_at"
35 t.datetime "updated_at"
36 t.datetime "updated_at"
36 end
37 end
37
38
38 create_table "descriptions", :force => true do |t|
39 create_table "descriptions", :force => true do |t|
39 t.text "body"
40 t.text "body"
40 t.boolean "markdowned"
41 t.boolean "markdowned"
41 t.datetime "created_at"
42 t.datetime "created_at"
42 t.datetime "updated_at"
43 t.datetime "updated_at"
43 end
44 end
44
45
46 + create_table "grader_messages", :force => true do |t|
47 + t.integer "grader_process_id"
48 + t.integer "command"
49 + t.string "options"
50 + t.integer "target_id"
51 + t.boolean "accepted"
52 + t.boolean "completed"
53 + t.integer "accepting_grader_process_id"
54 + t.datetime "created_at"
55 + t.datetime "updated_at"
56 + end
57 +
45 create_table "grader_processes", :force => true do |t|
58 create_table "grader_processes", :force => true do |t|
46 t.string "host", :limit => 20
59 t.string "host", :limit => 20
47 t.integer "pid"
60 t.integer "pid"
48 t.string "mode"
61 t.string "mode"
49 t.boolean "active"
62 t.boolean "active"
50 t.datetime "created_at"
63 t.datetime "created_at"
51 t.datetime "updated_at"
64 t.datetime "updated_at"
52 t.integer "task_id"
65 t.integer "task_id"
53 t.string "task_type"
66 t.string "task_type"
54 t.boolean "terminated"
67 t.boolean "terminated"
55 end
68 end
56
69
57 add_index "grader_processes", ["host", "pid"], :name => "index_grader_processes_on_ip_and_pid"
70 add_index "grader_processes", ["host", "pid"], :name => "index_grader_processes_on_ip_and_pid"
58
71
59 create_table "languages", :force => true do |t|
72 create_table "languages", :force => true do |t|
60 t.string "name", :limit => 10
73 t.string "name", :limit => 10
61 t.string "pretty_name"
74 t.string "pretty_name"
62 t.string "ext", :limit => 10
75 t.string "ext", :limit => 10
63 t.string "common_ext"
76 t.string "common_ext"
64 end
77 end
65
78
66 create_table "messages", :force => true do |t|
79 create_table "messages", :force => true do |t|
67 t.integer "sender_id"
80 t.integer "sender_id"
68 t.integer "receiver_id"
81 t.integer "receiver_id"
69 t.integer "replying_message_id"
82 t.integer "replying_message_id"
70 t.text "body"
83 t.text "body"
71 t.boolean "replied"
84 t.boolean "replied"
72 t.datetime "created_at"
85 t.datetime "created_at"
73 t.datetime "updated_at"
86 t.datetime "updated_at"
74 end
87 end
75
88
76 create_table "problems", :force => true do |t|
89 create_table "problems", :force => true do |t|
77 t.string "name", :limit => 30
90 t.string "name", :limit => 30
78 t.string "full_name"
91 t.string "full_name"
79 t.integer "full_score"
92 t.integer "full_score"
80 t.date "date_added"
93 t.date "date_added"
81 t.boolean "available"
94 t.boolean "available"
82 t.string "url"
95 t.string "url"
83 t.integer "description_id"
96 t.integer "description_id"
84 t.boolean "test_allowed"
97 t.boolean "test_allowed"
85 t.boolean "output_only"
98 t.boolean "output_only"
86 end
99 end
87
100
88 create_table "rights", :force => true do |t|
101 create_table "rights", :force => true do |t|
89 t.string "name"
102 t.string "name"
90 t.string "controller"
103 t.string "controller"
91 t.string "action"
104 t.string "action"
92 end
105 end
You need to be logged in to leave comments. Login now