リビジョン | 51329f5ce8de435ea1de63035277199531bd1a42 (tree) |
---|---|
日時 | 2013-04-04 00:03:25 |
作者 | SHIMADA Keiki <shimada.cake@gmai...> |
コミッター | SHIMADA Keiki |
#10 主にslideのshow画面を中心に実装
@@ -13,4 +13,3 @@ | ||
13 | 13 | //= require jquery |
14 | 14 | //= require jquery_ujs |
15 | 15 | //= require jquery-ui |
16 | -//= require_tree . |
@@ -0,0 +1,18 @@ | ||
1 | +// Place all the styles related to the Slides controller here. | |
2 | +// They will automatically be included in application.css. | |
3 | +// You can use Sass (SCSS) here: http://sass-lang.com/ | |
4 | + | |
5 | +#thumbnail-area { | |
6 | + margin: 10px; | |
7 | + width: 420px; | |
8 | + float: left; | |
9 | + font-size: 12px; | |
10 | +} | |
11 | + | |
12 | +.thumbnail { | |
13 | + margin: 10px; | |
14 | + padding: 3px; | |
15 | + width: 400px; | |
16 | + width: 300px; | |
17 | + border: 1px dashed white; | |
18 | +} |
@@ -2,8 +2,7 @@ class SlidesController < ApplicationController | ||
2 | 2 | # GET /slides |
3 | 3 | # GET /slides.json |
4 | 4 | def index |
5 | - @slides = Slide.all | |
6 | - @recents = [] | |
5 | + @recents = Slide.recents | |
7 | 6 | |
8 | 7 | respond_to do |format| |
9 | 8 | format.html # index.html.erb |
@@ -1,3 +1,20 @@ | ||
1 | 1 | class Slide < ActiveRecord::Base |
2 | + acts_as_paranoid | |
2 | 3 | attr_accessible :author, :body, :deleted_at, :title |
4 | + | |
5 | + def pages | |
6 | + normalize_eol(body.to_s).split(/\n{4,}/) | |
7 | + end | |
8 | + | |
9 | + def outline | |
10 | + pages.map{ |page| page.gsub(/\n.*/, '') } | |
11 | + end | |
12 | + | |
13 | + def self.recents | |
14 | + self.order('updated_at DESC').limit(10) | |
15 | + end | |
16 | + | |
17 | + def normalize_eol(str) | |
18 | + str.gsub(/\r\n/,"\n").gsub(/\r/, "\n") | |
19 | + end | |
3 | 20 | end |
@@ -4,6 +4,7 @@ | ||
4 | 4 | <title><%=h yield(:title) %></title> |
5 | 5 | <%= stylesheet_link_tag "application", :media => "all" %> |
6 | 6 | <%= javascript_include_tag "application" %> |
7 | + <%= javascript_include_tag params[:controller] %> | |
7 | 8 | <%= csrf_meta_tags %> |
8 | 9 | <%= yield :header %> |
9 | 10 | </head> |
@@ -23,10 +23,6 @@ | ||
23 | 23 | <%= f.label :author %><br /> |
24 | 24 | <%= f.text_field :author %> |
25 | 25 | </div> |
26 | - <div class="field"> | |
27 | - <%= f.label :deleted_at %><br /> | |
28 | - <%= f.datetime_select :deleted_at %> | |
29 | - </div> | |
30 | 26 | <div class="actions"> |
31 | 27 | <%= f.submit %> |
32 | 28 | </div> |
@@ -1,3 +1,4 @@ | ||
1 | +<%= paginate @slides %> | |
1 | 2 | <table> |
2 | 3 | <tr> |
3 | 4 | <th>Id</th> |
@@ -8,15 +9,15 @@ | ||
8 | 9 | <th></th> |
9 | 10 | </tr> |
10 | 11 | |
11 | - <%= paginate @slides %> | |
12 | 12 | <% @slides.each do |slide| %> |
13 | 13 | <tr> |
14 | 14 | <td><%= slide.id %></td> |
15 | - <td><%= slide.title %></td> | |
15 | + <td><%= link_to slide.title, slide %></td> | |
16 | 16 | <td><%= slide.updated_at %></td> |
17 | 17 | <td><%= link_to 'Show', slide %></td> |
18 | 18 | <td><%= link_to 'Edit', edit_slide_path(slide) %></td> |
19 | 19 | <td><%= link_to 'Destroy', slide, method: :delete, data: { confirm: 'Are you sure?' } %></td> |
20 | 20 | </tr> |
21 | 21 | <% end %> |
22 | -</table> | |
\ No newline at end of file | ||
22 | +</table> | |
23 | +<%= paginate @slides %> |
@@ -1,25 +1,24 @@ | ||
1 | 1 | <p id="notice"><%= notice %></p> |
2 | 2 | |
3 | -<p> | |
4 | - <b>Title:</b> | |
5 | - <%= @slide.title %> | |
6 | -</p> | |
3 | +<div id="thumbnail-area"> | |
4 | +<%- @slide.pages.each do |page| -%> | |
5 | +<pre class="thumbnail"><%= page %></pre> | |
6 | +<%- end -%> | |
7 | +</div> | |
8 | +<script type="text/javascript"> | |
9 | + $('#thumbnail-area').draggable({axis:'y', revert: true, cursor:'move'}); | |
10 | +</script> | |
7 | 11 | |
8 | -<p> | |
9 | - <b>Body:</b> | |
10 | - <%=simple_format @slide.body %> | |
11 | -</p> | |
12 | - | |
13 | -<p> | |
14 | - <b>Author:</b> | |
15 | - <%= @slide.author %> | |
16 | -</p> | |
17 | - | |
18 | -<p> | |
19 | - <b>Deleted at:</b> | |
20 | - <%= @slide.deleted_at %> | |
21 | -</p> | |
12 | +<div id="controll-area"> | |
13 | + <p>『 <%= @slide.title %>』</p> | |
22 | 14 | |
15 | +<%- @slide.outline.each_with_index do |line, idx| -%> | |
16 | + <p><%= link_to_function(line, | |
17 | + "change_remote(#{idx}, '#{detail_slide_url(@slide)}')", | |
18 | + :id => "change-button-#{idx}", | |
19 | + :class => 'change-button')%></p> | |
20 | +<%- end -%> | |
23 | 21 | |
24 | 22 | <%= link_to 'Edit', edit_slide_path(@slide) %> | |
25 | 23 | <%= link_to 'Back', slides_path %> |
24 | +</div> |
@@ -11,9 +11,10 @@ | ||
11 | 11 | |
12 | 12 | <script type="text/javascript"> |
13 | 13 | $(document).keydown(function(event) { |
14 | - switch(event.keyCode) { | |
15 | - case 38: return prev(); | |
16 | - case 40: return next(); | |
14 | + if (event.keyCode == 38) { | |
15 | + return prev(); | |
16 | + } else if (event.keyCode == 40) { | |
17 | + return next(); | |
17 | 18 | } |
18 | 19 | }); |
19 | 20 | </script> |
\ No newline at end of file |
@@ -4,7 +4,7 @@ | ||
4 | 4 | <div id="boxA"> |
5 | 5 | <pre class='small'><%= suppress_ruby @song.words %></pre> |
6 | 6 | <script type="text/javascript"> |
7 | - $('pre.small').draggable({axis:'y', cursor:'move'}); | |
7 | + $('pre.small').draggable({axis:'y', revert: true, cursor:'move'}); | |
8 | 8 | </script> |
9 | 9 | </div> |
10 | 10 |
@@ -1,13 +1,14 @@ | ||
1 | 1 | Ginmaku::Application.routes.draw do |
2 | 2 | resources :slides do |
3 | + member do | |
4 | + get :detail | |
5 | + end | |
6 | + | |
3 | 7 | collection do |
4 | 8 | get :list |
5 | 9 | end |
6 | 10 | end |
7 | 11 | |
8 | - | |
9 | - resources :preaches | |
10 | - | |
11 | 12 | resources :songs do |
12 | 13 | member do |
13 | 14 | get :detail |