enju_news 0.1.0.pre5 → 0.1.0.pre6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/news_feeds_controller.rb +11 -15
- data/app/controllers/news_posts_controller.rb +12 -12
- data/app/models/news_feed.rb +17 -43
- data/app/models/news_post.rb +2 -2
- data/app/views/news_feeds/_content.html.erb +6 -8
- data/app/views/news_feeds/_content_atom.html.erb +1 -1
- data/app/views/news_feeds/_content_rss.html.erb +1 -1
- data/app/views/news_feeds/_form.html.erb +2 -2
- data/app/views/news_feeds/_list.html.erb +1 -1
- data/app/views/news_feeds/edit.html.erb +3 -3
- data/app/views/news_feeds/index.html.erb +4 -4
- data/app/views/news_feeds/new.html.erb +3 -3
- data/app/views/news_feeds/show.html.erb +3 -3
- data/app/views/news_posts/_form.html.erb +5 -5
- data/app/views/news_posts/edit.html.erb +1 -1
- data/app/views/news_posts/index.atom.builder +2 -2
- data/app/views/news_posts/index.html.erb +3 -3
- data/app/views/news_posts/index.rss.builder +4 -4
- data/app/views/news_posts/new.html.erb +1 -1
- data/app/views/news_posts/show.html.erb +1 -1
- data/lib/enju_news/version.rb +1 -1
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/{20111201155513_add_devise_to_users.rb → 002_devise_create_users.rb} +18 -16
- data/spec/dummy/db/migrate/041_create_roles.rb +13 -0
- data/spec/dummy/db/migrate/077_create_user_groups.rb +3 -7
- data/spec/dummy/db/migrate/080_create_library_groups.rb +0 -1
- data/spec/dummy/db/migrate/{20111201163718_create_user_has_roles.rb → 20100606065209_create_user_has_roles.rb} +2 -0
- data/spec/dummy/db/migrate/20110318183304_add_valid_period_for_new_user_to_user_group.rb +0 -2
- data/spec/dummy/db/migrate/20130221154434_add_additional_attributes_to_user.rb +1 -11
- data/spec/dummy/db/migrate/20140110122216_create_user_import_files.rb +18 -0
- data/spec/dummy/db/migrate/20140110131010_create_user_import_results.rb +11 -0
- data/spec/dummy/db/migrate/20140122054321_create_profiles.rb +20 -0
- data/spec/dummy/db/migrate/20140524074813_create_user_import_file_transitions.rb +14 -0
- data/spec/dummy/db/migrate/20140610123439_drop_email_unique_constraint_enju_leaf_rc10.rb +11 -0
- data/spec/dummy/db/migrate/20140628072217_add_user_encoding_to_user_import_file.rb +5 -0
- data/spec/dummy/db/migrate/20140709113413_create_user_export_files.rb +11 -0
- data/spec/dummy/db/migrate/20140709113905_create_user_export_file_transitions.rb +14 -0
- data/spec/dummy/db/migrate/20140720170714_add_default_library_id_to_user_import_file.rb +5 -0
- data/spec/dummy/db/migrate/20140720170735_add_default_user_group_id_to_user_import_file.rb +5 -0
- data/spec/dummy/db/migrate/20140811031145_add_expired_at_to_profile.rb +5 -0
- data/spec/dummy/db/schema.rb +94 -24
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/factories/user.rb +0 -13
- data/spec/fixtures/library_groups.yml +0 -2
- data/spec/fixtures/users.yml +0 -42
- data/spec/models/news_feed_spec.rb +8 -12
- data/spec/spec_helper.rb +5 -0
- metadata +69 -28
- data/app/models/news_feed_sweeper.rb +0 -12
- data/spec/cassette_library/NewsFeed/should_fetch_feeds.yml +0 -618
- data/spec/cassette_library/NewsFeed/should_get_content.yml +0 -532
- data/spec/cassette_library/NewsFeed/should_not_get_content_if_the_feed_is_invalid.yml +0 -89
- data/spec/cassette_library/NewsFeed/should_reload_content.yml +0 -532
- data/spec/dummy/db/migrate/20111201121844_create_roles.rb +0 -12
- data/spec/dummy/db/migrate/20111201155456_create_users.rb +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47617cc6051a52fa925aa9224802cd83fe4a63d4
|
4
|
+
data.tar.gz: 16ce59dbcd93eda974894e024b50041b858a54bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc41e5dc0474afd2f5edd41b156a7f9dc695fd97532d00bf06c024e91bbc5febfc0fdc4a4049c99b3d78ce7a314e55b277c7fba6d0bd7d7fd7ad45d9cb231346
|
7
|
+
data.tar.gz: fc13856f20ff4799e4788c9b4003ad4034be8a68081b64074ee0f079e85c1500faeebc7ce9a734c938225c75d0af7881be07f46052549a05b5cad2b50fbf0f02
|
@@ -1,6 +1,5 @@
|
|
1
1
|
class NewsFeedsController < ApplicationController
|
2
2
|
load_and_authorize_resource
|
3
|
-
cache_sweeper :news_feed_sweeper, :only => [:create, :update, :destroy]
|
4
3
|
|
5
4
|
# GET /news_feeds
|
6
5
|
# GET /news_feeds.json
|
@@ -8,7 +7,7 @@ class NewsFeedsController < ApplicationController
|
|
8
7
|
@news_feeds = NewsFeed.page(params[:page])
|
9
8
|
respond_to do |format|
|
10
9
|
format.html # index.html.erb
|
11
|
-
format.json { render :
|
10
|
+
format.json { render json: @news_feeds }
|
12
11
|
end
|
13
12
|
end
|
14
13
|
|
@@ -16,12 +15,12 @@ class NewsFeedsController < ApplicationController
|
|
16
15
|
# GET /news_feeds/1.json
|
17
16
|
def show
|
18
17
|
if params[:mode] == 'force_reload'
|
19
|
-
|
18
|
+
@news_feed.force_reload
|
20
19
|
end
|
21
20
|
|
22
21
|
respond_to do |format|
|
23
22
|
format.html # show.html.erb
|
24
|
-
format.json { render :
|
23
|
+
format.json { render json: @news_feed }
|
25
24
|
end
|
26
25
|
end
|
27
26
|
|
@@ -32,7 +31,7 @@ class NewsFeedsController < ApplicationController
|
|
32
31
|
|
33
32
|
respond_to do |format|
|
34
33
|
format.html # new.html.erb
|
35
|
-
format.json { render :
|
34
|
+
format.json { render json: @news_feed }
|
36
35
|
end
|
37
36
|
end
|
38
37
|
|
@@ -47,12 +46,12 @@ class NewsFeedsController < ApplicationController
|
|
47
46
|
|
48
47
|
respond_to do |format|
|
49
48
|
if @news_feed.save
|
50
|
-
flash[:notice] = t('controller.successfully_created', :
|
49
|
+
flash[:notice] = t('controller.successfully_created', model: t('activerecord.models.news_feed'))
|
51
50
|
format.html { redirect_to(@news_feed) }
|
52
|
-
format.json { render :
|
51
|
+
format.json { render json: @news_feed, status: :created, location: @news_feed }
|
53
52
|
else
|
54
|
-
format.html { render :
|
55
|
-
format.json { render :
|
53
|
+
format.html { render action: "new" }
|
54
|
+
format.json { render json: @news_feed.errors, status: :unprocessable_entity }
|
56
55
|
end
|
57
56
|
end
|
58
57
|
end
|
@@ -70,12 +69,12 @@ class NewsFeedsController < ApplicationController
|
|
70
69
|
|
71
70
|
respond_to do |format|
|
72
71
|
if @news_feed.update_attributes(params[:news_feed])
|
73
|
-
flash[:notice] = t('controller.successfully_updated', :
|
72
|
+
flash[:notice] = t('controller.successfully_updated', model: t('activerecord.models.news_feed'))
|
74
73
|
format.html { redirect_to(@news_feed) }
|
75
74
|
format.json { head :no_content }
|
76
75
|
else
|
77
|
-
format.html { render :
|
78
|
-
format.json { render :
|
76
|
+
format.html { render action: "edit" }
|
77
|
+
format.json { render json: @news_feed.errors, status: :unprocessable_entity }
|
79
78
|
end
|
80
79
|
end
|
81
80
|
end
|
@@ -93,9 +92,6 @@ class NewsFeedsController < ApplicationController
|
|
93
92
|
|
94
93
|
private
|
95
94
|
def expire_cache
|
96
|
-
Role.all.each do |role|
|
97
|
-
expire_fragment(:controller => :news_feeds, :action => :show, :id => @news_feed.id, :page => 'title', :role => role.name)
|
98
|
-
end
|
99
95
|
@news_feed.force_reload
|
100
96
|
end
|
101
97
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
class NewsPostsController < ApplicationController
|
2
2
|
load_and_authorize_resource
|
3
|
-
before_filter :prepare_options, :
|
3
|
+
before_filter :prepare_options, only: [:new, :edit]
|
4
4
|
|
5
5
|
# GET /news_posts
|
6
6
|
# GET /news_posts.json
|
@@ -13,8 +13,8 @@ class NewsPostsController < ApplicationController
|
|
13
13
|
|
14
14
|
respond_to do |format|
|
15
15
|
format.html # index.html.erb
|
16
|
-
format.json { render :
|
17
|
-
format.rss { render :
|
16
|
+
format.json { render json: @news_posts }
|
17
|
+
format.rss { render layout: false }
|
18
18
|
format.atom
|
19
19
|
end
|
20
20
|
end
|
@@ -24,7 +24,7 @@ class NewsPostsController < ApplicationController
|
|
24
24
|
def show
|
25
25
|
respond_to do |format|
|
26
26
|
format.html # show.html.erb
|
27
|
-
format.json { render :
|
27
|
+
format.json { render json: @news_post }
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
@@ -35,7 +35,7 @@ class NewsPostsController < ApplicationController
|
|
35
35
|
|
36
36
|
respond_to do |format|
|
37
37
|
format.html # new.html.erb
|
38
|
-
format.json { render :
|
38
|
+
format.json { render json: @news_post }
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
@@ -51,12 +51,12 @@ class NewsPostsController < ApplicationController
|
|
51
51
|
|
52
52
|
respond_to do |format|
|
53
53
|
if @news_post.save
|
54
|
-
format.html { redirect_to(@news_post, :
|
55
|
-
format.json { render :
|
54
|
+
format.html { redirect_to(@news_post, notice: t('controller.successfully_created', model: t('activerecord.models.news_post'))) }
|
55
|
+
format.json { render json: @news_post, status: :created, location: @news_post }
|
56
56
|
else
|
57
57
|
prepare_options
|
58
|
-
format.html { render :
|
59
|
-
format.json { render :
|
58
|
+
format.html { render action: "new" }
|
59
|
+
format.json { render json: @news_post.errors, status: :unprocessable_entity }
|
60
60
|
end
|
61
61
|
end
|
62
62
|
end
|
@@ -71,12 +71,12 @@ class NewsPostsController < ApplicationController
|
|
71
71
|
|
72
72
|
respond_to do |format|
|
73
73
|
if @news_post.update_attributes(params[:news_post])
|
74
|
-
format.html { redirect_to(@news_post, :
|
74
|
+
format.html { redirect_to(@news_post, notice: t('controller.successfully_updated', model: t('activerecord.models.news_post'))) }
|
75
75
|
format.json { head :no_content }
|
76
76
|
else
|
77
77
|
prepare_options
|
78
|
-
format.html { render :
|
79
|
-
format.json { render :
|
78
|
+
format.html { render action: "edit" }
|
79
|
+
format.json { render json: @news_post.errors, status: :unprocessable_entity }
|
80
80
|
end
|
81
81
|
end
|
82
82
|
end
|
data/app/models/news_feed.rb
CHANGED
@@ -1,60 +1,34 @@
|
|
1
1
|
class NewsFeed < ActiveRecord::Base
|
2
2
|
attr_accessible :title, :url
|
3
|
-
|
4
|
-
|
5
|
-
belongs_to :library_group, :validate => true
|
3
|
+
default_scope order: "news_feeds.position"
|
4
|
+
belongs_to :library_group, validate: true
|
6
5
|
|
7
6
|
validates_presence_of :title, :url, :library_group
|
8
7
|
validates_associated :library_group
|
9
|
-
validates_length_of :url, :
|
8
|
+
validates_length_of :url, maximum: 255
|
9
|
+
before_save :fetch
|
10
10
|
|
11
11
|
acts_as_list
|
12
12
|
|
13
|
-
after_save :expire_cache
|
14
|
-
after_destroy :expire_cache
|
15
|
-
|
16
13
|
def self.per_page
|
17
14
|
10
|
18
15
|
end
|
19
16
|
|
20
|
-
def
|
21
|
-
expire_fragment_cache
|
22
|
-
Rails.cache.delete('news_feed_all')
|
23
|
-
true
|
24
|
-
end
|
25
|
-
|
26
|
-
def expire_fragment_cache
|
27
|
-
Role.all.each do |role|
|
28
|
-
Rails.cache.delete("views/news_feed_content_#{id}_#{role.name}")
|
29
|
-
logger.info "#{Time.zone.now} feed reloaded! : #{url}"
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def content(clear_cache = false)
|
34
|
-
#page_url = URI.parse(url.rewrite_my_url)
|
35
|
-
#if page_url.port == 80
|
36
|
-
# if Feedbag.feed?(url)
|
37
|
-
# feed_url = url
|
38
|
-
# else
|
39
|
-
# feed_url = Feedbag.find(url).first
|
40
|
-
# end
|
41
|
-
#else
|
42
|
-
# auto-discovery 非対応
|
43
|
-
feed_url = url
|
44
|
-
#end
|
17
|
+
def fetch
|
45
18
|
begin
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
self.body = feed
|
52
|
-
save!
|
53
|
-
end
|
19
|
+
feed = open(url) do |f|
|
20
|
+
f.read
|
21
|
+
end
|
22
|
+
if rss = RSS::Parser.parse(feed, false)
|
23
|
+
self.body = feed
|
54
24
|
end
|
55
25
|
rescue StandardError, Timeout::Error
|
56
26
|
nil
|
57
27
|
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def content
|
31
|
+
if body
|
58
32
|
# tDiary の RSS をパースした際に to_s が空になる
|
59
33
|
# rss = RSS::Parser.parse(feed)
|
60
34
|
# rss.to_s
|
@@ -68,16 +42,16 @@ class NewsFeed < ActiveRecord::Base
|
|
68
42
|
nil
|
69
43
|
end
|
70
44
|
#end
|
45
|
+
end
|
71
46
|
end
|
72
47
|
|
73
48
|
def force_reload
|
74
|
-
|
75
|
-
content(true)
|
49
|
+
save!
|
76
50
|
end
|
77
51
|
|
78
52
|
def self.fetch_feeds
|
79
53
|
NewsFeed.all.each do |news_feed|
|
80
|
-
news_feed.
|
54
|
+
news_feed.touch
|
81
55
|
end
|
82
56
|
end
|
83
57
|
end
|
data/app/models/news_post.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
class NewsPost < ActiveRecord::Base
|
2
2
|
attr_accessible :title, :body
|
3
|
-
scope :published, where(:
|
3
|
+
scope :published, where(draft: false)
|
4
4
|
default_scope order('news_posts.start_date DESC')
|
5
5
|
belongs_to :user
|
6
|
-
belongs_to :required_role, :
|
6
|
+
belongs_to :required_role, class_name: 'Role', foreign_key: 'required_role_id', validate: true
|
7
7
|
|
8
8
|
validates_presence_of :title, :body, :user_id
|
9
9
|
validates_associated :user
|
@@ -1,9 +1,7 @@
|
|
1
|
-
<%
|
2
|
-
|
3
|
-
|
4
|
-
<%-
|
5
|
-
|
6
|
-
<%-
|
7
|
-
<%= render :partial => 'news_feeds/content_rss', :locals => {:news_feed => news_feed} -%>
|
8
|
-
<%- end -%>
|
1
|
+
<% cache([news_feed], role: current_user_role_name, locale: @locale do %>
|
2
|
+
<%- if news_feed.content.is_a?(RSS::Atom::Feed) -%>
|
3
|
+
<%= render partial: 'news_feeds/content_atom', locals: {news_feed: news_feed} -%>
|
4
|
+
<%- else -%>
|
5
|
+
<%= render partial: 'news_feeds/content_rss', locals: {news_feed: news_feed} -%>
|
6
|
+
<%- end -%>
|
9
7
|
<%- end -%>
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<%- news_feed.content.items[0..2].each do |item| -%>
|
5
5
|
<li><%= link_to h(item.title.content), h(item.link.href) -%>
|
6
6
|
<%- if date = Time.zone.parse(item.updated.content.to_s) rescue nil -%>
|
7
|
-
(<%= l(date, :
|
7
|
+
(<%= l(date, format: :short) -%>)
|
8
8
|
<%- end -%>
|
9
9
|
<%- if item.summary -%>
|
10
10
|
<br />
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<%- news_feed.content.items[0..2].each do |item| -%>
|
5
5
|
<li><%= link_to h(item.title), h(item.link) -%>
|
6
6
|
<%- if date = Time.zone.parse(item.pubDate.to_s) rescue nil -%>
|
7
|
-
(<%= l(date, :
|
7
|
+
(<%= l(date, format: :short) -%>)
|
8
8
|
<%- end -%>
|
9
9
|
<%- if item.description -%>
|
10
10
|
<br />
|
@@ -2,11 +2,11 @@
|
|
2
2
|
<%= f.error_messages -%>
|
3
3
|
<div class="field">
|
4
4
|
<%= f.label t('activerecord.attributes.news_feed.title') -%><br />
|
5
|
-
<%= f.text_field :title, :
|
5
|
+
<%= f.text_field :title, class: 'resource_title' -%>
|
6
6
|
</div>
|
7
7
|
<div class="field">
|
8
8
|
<%= f.label t('activerecord.attributes.news_feed.url') -%><br />
|
9
|
-
<%= f.url_field :url, :
|
9
|
+
<%= f.url_field :url, class: 'resource_url' -%>
|
10
10
|
</div>
|
11
11
|
<div class="actions">
|
12
12
|
<%= f.submit -%>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<%- if @news_feeds -%>
|
2
2
|
<%- @news_feeds.each do |news_feed| -%>
|
3
|
-
<%= render :
|
3
|
+
<%= render partial: 'news_feeds/content', locals: {news_feed: news_feed} -%>
|
4
4
|
<%- end -%>
|
5
5
|
<%- else -%>
|
6
6
|
<p><%= t('news_feed.failed_to_fetch_feed') -%></p>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<div id="content_detail" class="ui-corner-all">
|
2
|
-
<h1 class="title"><%= t('page.editing', :
|
2
|
+
<h1 class="title"><%= t('page.editing', model: t('activerecord.models.news_feed')) -%></h1>
|
3
3
|
<div id="content_list">
|
4
4
|
|
5
5
|
<%= form_for(@news_feed) do |f| -%>
|
@@ -7,11 +7,11 @@
|
|
7
7
|
|
8
8
|
<p>
|
9
9
|
<%= f.label t('activerecord.attributes.news_feed.title') -%><br />
|
10
|
-
<%= f.text_field :title, :
|
10
|
+
<%= f.text_field :title, class: 'resource_class' -%>
|
11
11
|
</p>
|
12
12
|
<p>
|
13
13
|
<%= f.label t('activerecord.attributes.news_feed.url') -%><br />
|
14
|
-
<%= f.text_field :url, :
|
14
|
+
<%= f.text_field :url, class: 'resource_url' -%>
|
15
15
|
</p>
|
16
16
|
<p>
|
17
17
|
<%= f.submit t('page.update') -%>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<div id="content_detail" class="ui-corner-all">
|
2
|
-
<h1 class="title"><%= t('page.listing', :
|
2
|
+
<h1 class="title"><%= t('page.listing', model: t('activerecord.models.news_feed')) -%></h1>
|
3
3
|
<div id="content_list">
|
4
4
|
|
5
5
|
<table class="table table-striped index">
|
@@ -22,7 +22,7 @@
|
|
22
22
|
<td>
|
23
23
|
<%- if can? :delete, news_feed -%>
|
24
24
|
<%= link_to t('page.edit'), edit_news_feed_path(news_feed) -%>
|
25
|
-
<%= link_to t('page.destroy'), news_feed, :
|
25
|
+
<%= link_to t('page.destroy'), news_feed, data: {confirm: t('page.are_you_sure')}, method: :delete -%>
|
26
26
|
<%- end -%>
|
27
27
|
</td>
|
28
28
|
</tr>
|
@@ -36,7 +36,7 @@
|
|
36
36
|
|
37
37
|
<div id="submenu" class="ui-corner-all">
|
38
38
|
<ul>
|
39
|
-
<li><%= link_to t('page.new', :
|
40
|
-
<li><%= link_to t('page.clear_cache'), news_feeds_path(:
|
39
|
+
<li><%= link_to t('page.new', model: t('activerecord.models.news_feed')), new_news_feed_path -%></li>
|
40
|
+
<li><%= link_to t('page.clear_cache'), news_feeds_path(mode: 'clear_cache') -%></li>
|
41
41
|
</ul>
|
42
42
|
</div>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<div id="content_detail" class="ui-corner-all">
|
2
|
-
<h1 class="title"><%= t('page.new', :
|
2
|
+
<h1 class="title"><%= t('page.new', model: t('activerecord.models.news_feed')) -%></h1>
|
3
3
|
<div id="content_list">
|
4
4
|
|
5
5
|
<%= form_for(@news_feed) do |f| -%>
|
@@ -7,11 +7,11 @@
|
|
7
7
|
|
8
8
|
<p>
|
9
9
|
<%= f.label t('activerecord.attributes.news_feed.title') -%><br />
|
10
|
-
<%= f.text_field :title, :
|
10
|
+
<%= f.text_field :title, class: 'resource_title' -%>
|
11
11
|
</p>
|
12
12
|
<p>
|
13
13
|
<%= f.label t('activerecord.attributes.news_feed.url') -%><br />
|
14
|
-
<%= f.text_field :url, :
|
14
|
+
<%= f.text_field :url, class: 'resource_url' -%>
|
15
15
|
</p>
|
16
16
|
<p>
|
17
17
|
<%= f.submit t('page.create') -%>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<div id="content_detail" class="ui-corner-all">
|
2
|
-
<h1 class="title"><%= t('page.showing', :
|
2
|
+
<h1 class="title"><%= t('page.showing', model: t('activerecord.models.news_feed')) -%></h1>
|
3
3
|
<div id="content_list">
|
4
4
|
<p>
|
5
5
|
<strong><%= t('activerecord.attributes.news_feed.title') -%>:</strong>
|
@@ -12,10 +12,10 @@
|
|
12
12
|
</p>
|
13
13
|
|
14
14
|
<div id="news_feed_box">
|
15
|
-
<%= render :
|
15
|
+
<%= render partial: 'news_feeds/content', :locals => {:news_feed => @news_feed} -%>
|
16
16
|
</div>
|
17
17
|
|
18
|
-
<%= form_for(@news_feed, :
|
18
|
+
<%= form_for(@news_feed, url: news_feed_url(@news_feed, mode: 'force_reload')) do |f| -%>
|
19
19
|
<%= f.error_messages -%>
|
20
20
|
|
21
21
|
<p>
|
@@ -2,20 +2,20 @@
|
|
2
2
|
<%= f.error_messages -%>
|
3
3
|
<div class="field">
|
4
4
|
<%= f.label t('activerecord.attributes.news_post.title') -%><br />
|
5
|
-
<%= f.text_field :title, :
|
5
|
+
<%= f.text_field :title, class: 'resource_title' -%>
|
6
6
|
</div>
|
7
7
|
<div class="field">
|
8
8
|
<%= f.label t('activerecord.attributes.news_post.body') -%><br />
|
9
|
-
<%= f.text_area :body, :
|
9
|
+
<%= f.text_area :body, class: 'resource_textarea' -%>
|
10
10
|
</div>
|
11
11
|
<div class="field">
|
12
12
|
<%= f.label t('activerecord.attributes.news_post.url') -%>
|
13
|
-
<%= f.url_field :url, :
|
13
|
+
<%= f.url_field :url, class: 'resource_url' -%>
|
14
14
|
</div>
|
15
15
|
<!--
|
16
16
|
<div class="field">
|
17
17
|
<%= f.label t('activerecord.models.user') -%><br />
|
18
|
-
<%= link_to
|
18
|
+
<%= link_to @news_post.user.username, @news_post.user.profile if @news_post.user.try(:profile) -%>
|
19
19
|
</div>
|
20
20
|
<div class="field">
|
21
21
|
<%= f.label t('role.required_role') -%>
|
@@ -32,7 +32,7 @@
|
|
32
32
|
</div>
|
33
33
|
<div class="field">
|
34
34
|
<%= f.label t('activerecord.attributes.news_post.note') -%><br />
|
35
|
-
<%= f.text_area :note, :
|
35
|
+
<%= f.text_area :note, class: 'resource_textarea' -%>
|
36
36
|
</div>
|
37
37
|
<div class="field">
|
38
38
|
<%= f.label t('activerecord.attributes.news_post.draft') -%>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<div id="content_detail" class="ui-corner-all">
|
2
|
-
<h1 class="title"><%= t('page.editing', :
|
2
|
+
<h1 class="title"><%= t('page.editing', model: t('activerecord.models.news_post')) -%></h1>
|
3
3
|
<div id="content_list">
|
4
4
|
<%= render 'form' %>
|
5
5
|
</div>
|
@@ -1,5 +1,5 @@
|
|
1
|
-
atom_feed(:
|
2
|
-
feed.title t('news_post.library_group_news_post', :
|
1
|
+
atom_feed(url: news_posts_url(format: :atom)) do |feed|
|
2
|
+
feed.title t('news_post.library_group_news_post', library_group_name: @library_group.display_name.localize)
|
3
3
|
feed.updated(@news_posts.first ? @news_posts.first.created_at : Time.zone.now)
|
4
4
|
|
5
5
|
@news_posts.each do |news_post|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<div id="content_detail" class="ui-corner-all">
|
2
|
-
<h1 class="title"><%= t('page.listing', :
|
2
|
+
<h1 class="title"><%= t('page.listing', model: t('activerecord.models.news_post')) -%></h1>
|
3
3
|
<div id="content_list">
|
4
4
|
|
5
5
|
<table class="table table-striped index">
|
@@ -24,7 +24,7 @@
|
|
24
24
|
<td>
|
25
25
|
<% if can? :delete, news_post %>
|
26
26
|
<%= link_to t('page.edit'), edit_news_post_path(news_post) -%>
|
27
|
-
<%= link_to t('page.destroy'), news_post, :
|
27
|
+
<%= link_to t('page.destroy'), news_post, data: {confirm: t('page.are_you_sure')}, method: :delete -%>
|
28
28
|
<% end %>
|
29
29
|
</td>
|
30
30
|
</tr>
|
@@ -37,6 +37,6 @@
|
|
37
37
|
|
38
38
|
<div id="submenu" class="ui-corner-all">
|
39
39
|
<ul>
|
40
|
-
<li><%= link_to t('page.new', :
|
40
|
+
<li><%= link_to t('page.new', model: t('activerecord.models.news_post')), new_news_post_path -%></li>
|
41
41
|
</ul>
|
42
42
|
</div>
|
@@ -4,14 +4,14 @@ xml.rss('version' => "2.0",
|
|
4
4
|
'xmlns:dc' => "http://purl.org/dc/elements/1.1/",
|
5
5
|
'xmlns:atom' => "http://www.w3.org/2005/Atom"){
|
6
6
|
xml.channel{
|
7
|
-
xml.title t('news_post.library_group_news_post', :
|
7
|
+
xml.title t('news_post.library_group_news_post', library_group_name: @library_group.display_name.localize)
|
8
8
|
xml.link news_posts_url
|
9
9
|
xml.description "Next-L Enju, an open source integrated library system developed by Project Next-L"
|
10
10
|
xml.language @locale.to_s
|
11
11
|
xml.ttl "60"
|
12
|
-
xml.tag! "atom:link", :
|
13
|
-
xml.tag! "atom:link", :
|
14
|
-
xml.tag! "atom:link", :
|
12
|
+
xml.tag! "atom:link", rel: 'self', href: news_posts_url(format: :rss)
|
13
|
+
xml.tag! "atom:link", rel: 'alternate', href: root_url
|
14
|
+
xml.tag! "atom:link", rel: 'search', :type => 'application/opensearchdescription+xml', href: page_opensearch_url
|
15
15
|
unless params[:query].blank?
|
16
16
|
xml.tag! "opensearch:startIndex", @news_posts.offset + 1
|
17
17
|
xml.tag! "opensearch:itemsPerPage", @news_posts.per_page
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<div id="content_detail" class="ui-corner-all">
|
2
|
-
<h1 class="title"><%= t('page.new', :
|
2
|
+
<h1 class="title"><%= t('page.new', model: t('activerecord.models.news_post')) -%></h1>
|
3
3
|
<div id="content_list">
|
4
4
|
<%= render 'form' %>
|
5
5
|
</div>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<div id="content_detail" class="ui-corner-all">
|
2
|
-
<h1 class="title"><%= t('page.showing', :
|
2
|
+
<h1 class="title"><%= t('page.showing', model: t('activerecord.models.news_post')) -%></h1>
|
3
3
|
<div id="content_list">
|
4
4
|
<p>
|
5
5
|
<strong><%= t('activerecord.attributes.news_post.title') -%>:</strong>
|
data/lib/enju_news/version.rb
CHANGED
Binary file
|
data/spec/dummy/db/migrate/{20111201155513_add_devise_to_users.rb → 002_devise_create_users.rb}
RENAMED
@@ -1,6 +1,6 @@
|
|
1
|
-
class
|
2
|
-
def
|
3
|
-
|
1
|
+
class DeviseCreateUsers < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table(:users) do |t|
|
4
4
|
## Database authenticatable
|
5
5
|
t.string :email, :null => false, :default => ""
|
6
6
|
t.string :encrypted_password, :null => false, :default => ""
|
@@ -19,26 +19,28 @@ class AddDeviseToUsers < ActiveRecord::Migration
|
|
19
19
|
t.string :current_sign_in_ip
|
20
20
|
t.string :last_sign_in_ip
|
21
21
|
|
22
|
-
|
23
|
-
# t.
|
24
|
-
# t.
|
25
|
-
# t.
|
22
|
+
## Confirmable
|
23
|
+
# t.string :confirmation_token
|
24
|
+
# t.datetime :confirmed_at
|
25
|
+
# t.datetime :confirmation_sent_at
|
26
|
+
# t.string :unconfirmed_email # Only if using reconfirmable
|
26
27
|
|
28
|
+
## Lockable
|
29
|
+
# t.integer :failed_attempts, :default => 0 # Only if lock strategy is :failed_attempts
|
30
|
+
# t.string :unlock_token # Only if unlock strategy is :email or :both
|
31
|
+
# t.datetime :locked_at
|
27
32
|
|
28
|
-
|
29
|
-
# t.
|
33
|
+
## Token authenticatable
|
34
|
+
# t.string :authentication_token
|
35
|
+
|
36
|
+
|
37
|
+
t.timestamps
|
30
38
|
end
|
31
39
|
|
32
|
-
add_index :users, :email
|
40
|
+
add_index :users, :email, :unique => true
|
33
41
|
add_index :users, :reset_password_token, :unique => true
|
34
42
|
# add_index :users, :confirmation_token, :unique => true
|
35
43
|
# add_index :users, :unlock_token, :unique => true
|
36
44
|
# add_index :users, :authentication_token, :unique => true
|
37
45
|
end
|
38
|
-
|
39
|
-
def self.down
|
40
|
-
# By default, we don't want to make any assumption about how to roll back a migration when your
|
41
|
-
# model already existed. Please edit below which fields you would like to remove in this migration.
|
42
|
-
raise ActiveRecord::IrreversibleMigration
|
43
|
-
end
|
44
46
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class CreateRoles < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table "roles" do |t|
|
4
|
+
t.column :name, :string, :null => false
|
5
|
+
t.column :display_name, :string
|
6
|
+
t.column :note, :text
|
7
|
+
t.column :created_at, :datetime
|
8
|
+
t.column :updated_at, :datetime
|
9
|
+
t.integer :score, :default => 0, :null => false
|
10
|
+
t.integer :position
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -1,16 +1,12 @@
|
|
1
1
|
class CreateUserGroups < ActiveRecord::Migration
|
2
|
-
def
|
2
|
+
def change
|
3
3
|
create_table :user_groups do |t|
|
4
|
-
t.string :name, :
|
5
|
-
t.text :display_name
|
4
|
+
t.string :name, :not_null => true
|
5
|
+
t.text :display_name
|
6
6
|
t.text :note
|
7
7
|
t.integer :position
|
8
8
|
t.timestamps
|
9
9
|
t.datetime :deleted_at
|
10
10
|
end
|
11
11
|
end
|
12
|
-
|
13
|
-
def self.down
|
14
|
-
drop_table :user_groups
|
15
|
-
end
|
16
12
|
end
|