enju_leaf 1.1.0.rc10 → 1.1.0.rc11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/javascripts/enju_leaf.js +1 -1
- data/app/assets/javascripts/mobile.js +1 -1
- data/app/assets/stylesheets/enju.css +0 -2
- data/app/assets/stylesheets/enju_leaf.css +4 -4
- data/app/assets/stylesheets/mobile.css +1 -1
- data/app/controllers/user_import_files_controller.rb +6 -0
- data/app/controllers/user_import_results_controller.rb +1 -1
- data/app/mailers/notifier.rb +1 -1
- data/app/models/profile.rb +18 -0
- data/app/models/user_import_file.rb +46 -30
- data/app/models/user_import_file_state_machine.rb +2 -2
- data/app/models/user_import_file_transition.rb +13 -0
- data/app/models/user_import_result.rb +12 -0
- data/app/views/devise/sessions/new.html.erb +2 -2
- data/app/views/my_accounts/edit.html.erb +2 -2
- data/app/views/my_accounts/show.html.erb +2 -2
- data/app/views/page/403.html.erb +2 -2
- data/app/views/page/404.html.erb +2 -2
- data/app/views/page/500.html.erb +2 -2
- data/app/views/page/about.en.html.erb +4 -4
- data/app/views/page/about.ja.html.erb +4 -4
- data/app/views/page/add_on.html.erb +2 -2
- data/app/views/page/advanced_search.html.erb +10 -4
- data/app/views/page/export.html.erb +3 -3
- data/app/views/page/import.html.erb +2 -2
- data/app/views/page/statistics.html.erb +2 -2
- data/app/views/roles/edit.html.erb +2 -2
- data/app/views/roles/index.html.erb +2 -2
- data/app/views/roles/new.html.erb +2 -2
- data/app/views/roles/show.html.erb +2 -2
- data/app/views/user_groups/edit.html.erb +2 -2
- data/app/views/user_groups/index.html.erb +2 -2
- data/app/views/user_groups/new.html.erb +2 -2
- data/app/views/user_groups/show.html.erb +2 -2
- data/app/views/user_import_files/index.html.erb +2 -2
- data/app/views/user_import_files/new.html.erb +19 -6
- data/app/views/user_import_files/show.html.erb +11 -1
- data/app/views/user_import_results/index.html.erb +4 -4
- data/app/views/user_import_results/{index.csv.erb → index.tsv.erb} +1 -1
- data/app/views/users/edit.html.erb +2 -2
- data/app/views/users/index.html.erb +2 -2
- data/app/views/users/new.html.erb +2 -2
- data/app/views/users/show.html.erb +2 -2
- data/app/workers/user_import_file_queue.rb +7 -0
- data/config/initializers/mime_types.rb +1 -0
- data/config/initializers/paperclip.rb +12 -0
- data/config/initializers/resque.rb +1 -0
- data/config/locales/translation_en.yml +3 -0
- data/config/locales/translation_ja.yml +3 -0
- data/db/migrate/20130221154434_add_additional_attributes_to_user.rb +0 -1
- data/db/migrate/20140110122216_create_user_import_files.rb +0 -1
- data/db/migrate/20140122054321_create_profiles.rb +0 -1
- data/db/migrate/20140628072217_add_user_encoding_to_user_import_file.rb +5 -0
- data/lib/enju_leaf/calculate_stat.rb +1 -1
- data/lib/enju_leaf/import_file.rb +56 -0
- data/lib/enju_leaf/version.rb +1 -1
- data/lib/generators/enju_leaf/setup/setup_generator.rb +0 -5
- data/lib/generators/enju_leaf/setup/templates/config/schedule.rb +0 -8
- data/spec/controllers/my_accounts_controller_spec.rb +1 -1
- data/spec/dummy/app/models/setting.rb +4 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/schema.rb +2 -4
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/solr/default/data/index/_t.fdt +0 -0
- data/spec/dummy/solr/default/data/index/{_2h.fdx → _t.fdx} +0 -0
- data/spec/dummy/solr/default/data/index/{_2h.fnm → _t.fnm} +0 -0
- data/spec/dummy/solr/default/data/index/{_2h.nvd → _t.nvd} +0 -0
- data/spec/dummy/solr/default/data/index/{_2h.nvm → _t.nvm} +0 -0
- data/spec/dummy/solr/default/data/index/{_2h.si → _t.si} +0 -0
- data/spec/dummy/solr/default/data/index/{_2h_Lucene41_0.doc → _t_Lucene41_0.doc} +0 -0
- data/spec/dummy/solr/default/data/index/{_2h_Lucene41_0.pos → _t_Lucene41_0.pos} +0 -0
- data/spec/dummy/solr/default/data/index/{_2h_Lucene41_0.tim → _t_Lucene41_0.tim} +0 -0
- data/spec/dummy/solr/default/data/index/{_2h_Lucene41_0.tip → _t_Lucene41_0.tip} +0 -0
- data/spec/dummy/solr/default/data/index/segments.gen +0 -0
- data/spec/dummy/solr/default/data/index/segments_1p +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000000050 +0 -0
- data/spec/dummy/solr/default/data/tlog/{tlog.0000000000000000177 → tlog.0000000000000000051} +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000000052 +0 -0
- data/spec/dummy/solr/default/data/tlog/{tlog.0000000000000000179 → tlog.0000000000000000053} +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000000054 +0 -0
- data/spec/dummy/solr/default/data/tlog/{tlog.0000000000000000181 → tlog.0000000000000000055} +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000000056 +0 -0
- data/spec/dummy/solr/default/data/tlog/{tlog.0000000000000000183 → tlog.0000000000000000057} +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000000058 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000000059 +0 -0
- data/spec/dummy/tmp/cache/4F7/F90/default_role +0 -0
- data/spec/dummy/tmp/cache/ACB/B20/manifestation_search_total +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/3f8d795856d1fdf902b0be679120571a +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/5998e66e374537d52eed3fe1ca5f2bfc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/5ea4a1824e1d67da6c4fb9aeef9f49f4 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/87f0cb69a0df1355e33cce3949919d5a +0 -0
- data/spec/dummy/tmp/cache/stdout +103 -0
- data/spec/dummy/tmp/pids/redis-test.pid +1 -0
- data/spec/fixtures/roles.yml +15 -15
- data/spec/fixtures/user_has_roles.yml +11 -11
- data/spec/fixtures/user_import_files.yml +20 -2
- data/spec/fixtures/user_import_results.yml +12 -0
- data/spec/models/role_spec.rb +14 -14
- data/spec/models/user_has_role_spec.rb +8 -8
- data/spec/models/user_import_file_spec.rb +30 -2
- data/spec/models/user_import_result_spec.rb +12 -0
- data/spec/models/user_spec.rb +19 -19
- data/spec/spec_helper.rb +3 -0
- data/spec/support/resque.rb +30 -0
- data/vendor/assets/javascripts/jquery.colorbox.js +5 -6
- data/{app/assets/javascripts/jquery.mobile-1.4.2.js → vendor/assets/javascripts/jquery.mobile-1.4.3.js} +460 -187
- data/{app/assets/stylesheets/jquery.mobile-1.4.2.css → vendor/assets/stylesheets/jquery.mobile-1.4.3.css} +22 -17
- metadata +107 -101
- data/app/assets/javascripts/profiles.js +0 -2
- data/app/assets/stylesheets/normalize.css +0 -406
- data/app/assets/stylesheets/profiles.css +0 -4
- data/app/assets/stylesheets/scaffolds.css.scss +0 -56
- data/app/helpers/profiles_helper.rb +0 -2
- data/app/views/layouts/patrons.html.erb +0 -26
- data/app/views/layouts/patrons.mobile.erb +0 -18
- data/app/views/profiles/_form.html.erb +0 -53
- data/app/views/profiles/edit.html.erb +0 -6
- data/app/views/profiles/index.html.erb +0 -43
- data/app/views/profiles/new.html.erb +0 -14
- data/app/views/profiles/show.html.erb +0 -54
- data/spec/dummy/private/system/user_import_files/user_imports/980/190/963/original/user_delete_file.tsv +0 -4
- data/spec/dummy/solr/default/data/index/_2h.fdt +0 -0
- data/spec/dummy/solr/default/data/index/segments_57 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000000176 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000000178 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000000180 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000000182 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000000184 +0 -0
- data/spec/dummy/solr/default/data/tlog/tlog.0000000000000000185 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/154f7b83f2da0e86effbe25f32135177 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/1b984bdbd3204a51a82d0e01a1569e2d +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/3054c50144654f9c7e57bb0639a276e9 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/3bd7a263237ba366f64d938fe5303757 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/62899096da1a3e67660f3b88068be8c9 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/65b2e4f67eab21b30217e29075f433b2 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/87d24a3f43f175d4d17babe9203c79a7 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/d38d8658b30de1d068603968227680d4 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0b0ced0c7c37efbcc18acbba33a9b271746cb4db
|
|
4
|
+
data.tar.gz: 248b5fa60c3f66e62c1e8d4990e9bcbe5852aec2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 430f7c4af4f3be4bc8010e9c73d106fd09d4d76dde7213f30c3678bc1b287f6ef7830fa3c6a2d32325e96cbe7e122aa3c65253f6d7b07947adad9aa22eb8f419
|
|
7
|
+
data.tar.gz: c858e6acea89946198177daf92149dc28b93cf046525fb7e8317c49b91c1cc993fd3615f4633ea232cc8accb73cdd4407242950e86edc48d8ca7db50c7ba3d16
|
|
@@ -117,7 +117,6 @@ div#submenu{
|
|
|
117
117
|
width: 190px;
|
|
118
118
|
padding: 5px;
|
|
119
119
|
float: left;
|
|
120
|
-
border: 1px solid #5970B2;
|
|
121
120
|
}
|
|
122
121
|
|
|
123
122
|
div#manifestation_book_jacket{
|
|
@@ -147,7 +146,6 @@ div#content_detail{
|
|
|
147
146
|
width: 700px;
|
|
148
147
|
float: left;
|
|
149
148
|
margin-bottom: 5px;
|
|
150
|
-
border: 1px solid #5970B2;
|
|
151
149
|
}
|
|
152
150
|
|
|
153
151
|
div#content_list{
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
*= require colorbox
|
|
6
6
|
*= require pagination
|
|
7
7
|
*= require jquery.powertip
|
|
8
|
-
*= require jquery
|
|
9
|
-
*= require jquery
|
|
10
|
-
*= require jquery
|
|
8
|
+
*= require jquery-ui/button
|
|
9
|
+
*= require jquery-ui/tabs
|
|
10
|
+
*= require jquery-ui/menu
|
|
11
|
+
*= require jquery-ui/datepicker
|
|
11
12
|
*= require jquery.ui.menubar
|
|
12
|
-
*= require jquery.ui.datepicker
|
|
13
13
|
*= require portlets
|
|
14
14
|
*/
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
|
|
4
4
|
* the top of the compiled file, but it's generally better to create a new file per style scope.
|
|
5
5
|
*= require_self
|
|
6
|
-
*= require jquery.mobile-1.4.
|
|
6
|
+
*= require jquery.mobile-1.4.3
|
|
7
7
|
*= require enju_mobile
|
|
8
8
|
*/
|
|
@@ -57,6 +57,9 @@ class UserImportFilesController < ApplicationController
|
|
|
57
57
|
|
|
58
58
|
respond_to do |format|
|
|
59
59
|
if @user_import_file.save
|
|
60
|
+
if @user_import_file.mode == 'import'
|
|
61
|
+
Resque.enqueue(UserImportFileQueue, @user_import_file.id)
|
|
62
|
+
end
|
|
60
63
|
format.html { redirect_to @user_import_file, :notice => t('controller.successfully_created', :model => t('activerecord.models.user_import_file')) }
|
|
61
64
|
format.json { render :json => @user_import_file, :status => :created, :location => @user_import_file }
|
|
62
65
|
else
|
|
@@ -71,6 +74,9 @@ class UserImportFilesController < ApplicationController
|
|
|
71
74
|
def update
|
|
72
75
|
respond_to do |format|
|
|
73
76
|
if @user_import_file.update_attributes(params[:user_import_file])
|
|
77
|
+
if @user_import_file.mode == 'import'
|
|
78
|
+
Resque.enqueue(UserImportFileQueue, @user_import_file.id)
|
|
79
|
+
end
|
|
74
80
|
format.html { redirect_to @user_import_file, :notice => t('controller.successfully_updated', :model => t('activerecord.models.user_import_file')) }
|
|
75
81
|
format.json { head :no_content }
|
|
76
82
|
else
|
data/app/mailers/notifier.rb
CHANGED
|
@@ -11,7 +11,7 @@ class Notifier < ActionMailer::Base
|
|
|
11
11
|
subject = I18n.t('message.new_message_from_library', :library => LibraryGroup.system_name(message.receiver.user.locale))
|
|
12
12
|
end
|
|
13
13
|
if message.sender
|
|
14
|
-
@sender_name = message.sender.
|
|
14
|
+
@sender_name = message.sender.username
|
|
15
15
|
else
|
|
16
16
|
@sender_name = LibraryGroup.system_name(message.receiver.locale)
|
|
17
17
|
end
|
data/app/models/profile.rb
CHANGED
|
@@ -13,3 +13,21 @@ class Profile < ActiveRecord::Base
|
|
|
13
13
|
string :user_number
|
|
14
14
|
end
|
|
15
15
|
end
|
|
16
|
+
|
|
17
|
+
# == Schema Information
|
|
18
|
+
#
|
|
19
|
+
# Table name: profiles
|
|
20
|
+
#
|
|
21
|
+
# id :integer not null, primary key
|
|
22
|
+
# user_id :integer
|
|
23
|
+
# user_group_id :integer
|
|
24
|
+
# library_id :integer
|
|
25
|
+
# locale :string(255)
|
|
26
|
+
# user_number :string(255)
|
|
27
|
+
# full_name :text
|
|
28
|
+
# note :text
|
|
29
|
+
# keyword_list :text
|
|
30
|
+
# required_role_id :integer
|
|
31
|
+
# created_at :datetime not null
|
|
32
|
+
# updated_at :datetime not null
|
|
33
|
+
#
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
class UserImportFile < ActiveRecord::Base
|
|
2
|
-
attr_accessible :user_import, :edit_mode
|
|
2
|
+
attr_accessible :user_import, :edit_mode, :user_encoding, :mode
|
|
3
3
|
include Statesman::Adapters::ActiveRecordModel
|
|
4
4
|
include ImportFile
|
|
5
5
|
default_scope {order('user_import_files.id DESC')}
|
|
@@ -27,6 +27,9 @@ class UserImportFile < ActiveRecord::Base
|
|
|
27
27
|
|
|
28
28
|
has_many :user_import_file_transitions
|
|
29
29
|
|
|
30
|
+
enju_import_file_model
|
|
31
|
+
attr_accessor :mode
|
|
32
|
+
|
|
30
33
|
def state_machine
|
|
31
34
|
@state_machine ||= UserImportFileStateMachine.new(self, transition_class: UserImportFileTransition)
|
|
32
35
|
end
|
|
@@ -34,24 +37,11 @@ class UserImportFile < ActiveRecord::Base
|
|
|
34
37
|
delegate :can_transition_to?, :transition_to!, :transition_to, :current_state,
|
|
35
38
|
to: :state_machine
|
|
36
39
|
|
|
37
|
-
def import_start
|
|
38
|
-
case edit_mode
|
|
39
|
-
when 'create'
|
|
40
|
-
import
|
|
41
|
-
when 'update'
|
|
42
|
-
modify
|
|
43
|
-
when 'destroy'
|
|
44
|
-
remove
|
|
45
|
-
else
|
|
46
|
-
import
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
40
|
def import
|
|
51
41
|
transition_to!(:started)
|
|
52
42
|
num = {:user_imported => 0, :user_found => 0, :failed => 0}
|
|
53
|
-
rows = open_import_file
|
|
54
|
-
row_num =
|
|
43
|
+
rows = open_import_file(create_import_temp_file)
|
|
44
|
+
row_num = 1
|
|
55
45
|
|
|
56
46
|
field = rows.first
|
|
57
47
|
if [field['username']].reject{|f| f.to_s.strip == ""}.empty?
|
|
@@ -59,6 +49,7 @@ class UserImportFile < ActiveRecord::Base
|
|
|
59
49
|
end
|
|
60
50
|
|
|
61
51
|
rows.each do |row|
|
|
52
|
+
row_num += 1
|
|
62
53
|
next if row['dummy'].to_s.strip.present?
|
|
63
54
|
import_result = UserImportResult.create!(
|
|
64
55
|
:user_import_file_id => id, :body => row.fields.join("\t")
|
|
@@ -129,12 +120,17 @@ class UserImportFile < ActiveRecord::Base
|
|
|
129
120
|
def modify
|
|
130
121
|
transition_to!(:started)
|
|
131
122
|
transition_to!(:completed)
|
|
123
|
+
row_num = 1
|
|
124
|
+
rescue => e
|
|
125
|
+
self.error_message = "line #{row_num}: #{e.message}"
|
|
126
|
+
transition_to!(:failed)
|
|
127
|
+
raise e
|
|
132
128
|
end
|
|
133
129
|
|
|
134
130
|
def remove
|
|
135
131
|
transition_to!(:started)
|
|
136
|
-
|
|
137
|
-
rows = open_import_file
|
|
132
|
+
row_num = 1
|
|
133
|
+
rows = open_import_file(create_import_temp_file)
|
|
138
134
|
|
|
139
135
|
field = rows.first
|
|
140
136
|
if [field['username']].reject{|field| field.to_s.strip == ""}.empty?
|
|
@@ -142,11 +138,16 @@ class UserImportFile < ActiveRecord::Base
|
|
|
142
138
|
end
|
|
143
139
|
|
|
144
140
|
rows.each do |row|
|
|
141
|
+
row_num += 1
|
|
145
142
|
username = row['username'].to_s.strip
|
|
146
143
|
user = User.where(:username => username).first
|
|
147
144
|
user.destroy if user
|
|
148
145
|
end
|
|
149
146
|
transition_to!(:completed)
|
|
147
|
+
rescue => e
|
|
148
|
+
self.error_message = "line #{row_num}: #{e.message}"
|
|
149
|
+
transition_to!(:failed)
|
|
150
|
+
raise e
|
|
150
151
|
end
|
|
151
152
|
|
|
152
153
|
private
|
|
@@ -154,8 +155,8 @@ class UserImportFile < ActiveRecord::Base
|
|
|
154
155
|
UserImportFileTransition
|
|
155
156
|
end
|
|
156
157
|
|
|
157
|
-
def
|
|
158
|
-
tempfile = Tempfile.new(
|
|
158
|
+
def create_import_temp_file
|
|
159
|
+
tempfile = Tempfile.new(self.class.name.underscore)
|
|
159
160
|
if Setting.uploaded_file.storage == :s3
|
|
160
161
|
uploaded_file_path = user_import.expiring_url(10)
|
|
161
162
|
else
|
|
@@ -163,20 +164,14 @@ class UserImportFile < ActiveRecord::Base
|
|
|
163
164
|
end
|
|
164
165
|
open(uploaded_file_path){|f|
|
|
165
166
|
f.each{|line|
|
|
166
|
-
|
|
167
|
-
begin
|
|
168
|
-
string = line.encode('UTF-8', CharlockHolmes::EncodingDetector.detect(line)[:encoding], universal_newline: true)
|
|
169
|
-
rescue StandardError
|
|
170
|
-
string = NKF.nkf('-w -Lu', line)
|
|
171
|
-
end
|
|
172
|
-
else
|
|
173
|
-
string = NKF.nkf('-w -Lu', line)
|
|
174
|
-
end
|
|
175
|
-
tempfile.puts(string)
|
|
167
|
+
tempfile.puts(convert_encoding(line))
|
|
176
168
|
}
|
|
177
169
|
}
|
|
178
170
|
tempfile.close
|
|
171
|
+
tempfile
|
|
172
|
+
end
|
|
179
173
|
|
|
174
|
+
def open_import_file(tempfile)
|
|
180
175
|
file = CSV.open(tempfile.path, 'r:utf-8', :col_sep => "\t")
|
|
181
176
|
header = file.first
|
|
182
177
|
rows = CSV.open(tempfile.path, 'r:utf-8', :headers => header, :col_sep => "\t")
|
|
@@ -194,3 +189,24 @@ class UserImportFile < ActiveRecord::Base
|
|
|
194
189
|
Rails.logger.info "#{Time.zone.now} importing resources failed!"
|
|
195
190
|
end
|
|
196
191
|
end
|
|
192
|
+
|
|
193
|
+
# == Schema Information
|
|
194
|
+
#
|
|
195
|
+
# Table name: user_import_files
|
|
196
|
+
#
|
|
197
|
+
# id :integer not null, primary key
|
|
198
|
+
# user_id :integer
|
|
199
|
+
# note :text
|
|
200
|
+
# executed_at :datetime
|
|
201
|
+
# state :string(255)
|
|
202
|
+
# user_import_file_name :string(255)
|
|
203
|
+
# user_import_content_type :string(255)
|
|
204
|
+
# user_import_file_size :string(255)
|
|
205
|
+
# user_import_updated_at :datetime
|
|
206
|
+
# user_import_fingerprint :string(255)
|
|
207
|
+
# edit_mode :string(255)
|
|
208
|
+
# error_message :text
|
|
209
|
+
# created_at :datetime not null
|
|
210
|
+
# updated_at :datetime not null
|
|
211
|
+
# user_encoding :string(255)
|
|
212
|
+
#
|
|
@@ -9,8 +9,8 @@ class UserImportFileStateMachine
|
|
|
9
9
|
transition from: :pending, to: :started
|
|
10
10
|
transition from: :started, to: [:completed, :failed]
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
user_import_file.executed_at
|
|
12
|
+
after_transition(from: :pending, to: :started) do |user_import_file|
|
|
13
|
+
user_import_file.update_column(:executed_at, Time.zone.now)
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
before_transition(from: :started, to: :completed) do |user_import_file|
|
|
@@ -5,3 +5,16 @@ class UserImportFileTransition < ActiveRecord::Base
|
|
|
5
5
|
belongs_to :user_import_file, inverse_of: :user_import_file_transitions
|
|
6
6
|
attr_accessible :to_state, :sort_key, :metadata
|
|
7
7
|
end
|
|
8
|
+
|
|
9
|
+
# == Schema Information
|
|
10
|
+
#
|
|
11
|
+
# Table name: user_import_file_transitions
|
|
12
|
+
#
|
|
13
|
+
# id :integer not null, primary key
|
|
14
|
+
# to_state :string(255)
|
|
15
|
+
# metadata :text default("{}")
|
|
16
|
+
# sort_key :integer
|
|
17
|
+
# user_import_file_id :integer
|
|
18
|
+
# created_at :datetime not null
|
|
19
|
+
# updated_at :datetime not null
|
|
20
|
+
#
|
|
@@ -7,3 +7,15 @@ class UserImportResult < ActiveRecord::Base
|
|
|
7
7
|
belongs_to :user_import_file
|
|
8
8
|
belongs_to :user
|
|
9
9
|
end
|
|
10
|
+
|
|
11
|
+
# == Schema Information
|
|
12
|
+
#
|
|
13
|
+
# Table name: user_import_results
|
|
14
|
+
#
|
|
15
|
+
# id :integer not null, primary key
|
|
16
|
+
# user_import_file_id :integer
|
|
17
|
+
# user_id :integer
|
|
18
|
+
# body :text
|
|
19
|
+
# created_at :datetime not null
|
|
20
|
+
# updated_at :datetime not null
|
|
21
|
+
#
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
|
|
2
|
-
<div id="content_detail" class="ui-corner-all">
|
|
2
|
+
<div id="content_detail" class="ui-corner-all ui-widget-content">
|
|
3
3
|
<h1 class="title"><%= t('page.sign_in') -%> : Next-L Enju</h1>
|
|
4
4
|
<div id="content_list">
|
|
5
5
|
<%= f.error_messages -%>
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
</div>
|
|
10
10
|
</div>
|
|
11
11
|
|
|
12
|
-
<div id="submenu" class="ui-corner-all">
|
|
12
|
+
<div id="submenu" class="ui-corner-all ui-widget-content">
|
|
13
13
|
<p>
|
|
14
14
|
<%= f.label t('activerecord.attributes.user.username') %><br />
|
|
15
15
|
<%= f.text_field :username, :class => 'login_password', :autofocus => true %>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<div id="content_detail" class="ui-corner-all">
|
|
1
|
+
<div id="content_detail" class="ui-corner-all ui-widget-content">
|
|
2
2
|
<h1 class="title"><%= t('page.edit_user_profile', :login_name => @user.username) -%></h1>
|
|
3
3
|
<div id="content_list">
|
|
4
4
|
<%= render 'page/required_field' %>
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
</div>
|
|
64
64
|
</div>
|
|
65
65
|
|
|
66
|
-
<div id="submenu" class="ui-corner-all">
|
|
66
|
+
<div id="submenu" class="ui-corner-all ui-widget-content">
|
|
67
67
|
<ul>
|
|
68
68
|
<li><%= link_to t('page.show'), my_account_path -%></li>
|
|
69
69
|
<% if current_user.has_role?('Librarian') %>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<div id="content_detail" class="ui-corner-all">
|
|
1
|
+
<div id="content_detail" class="ui-corner-all ui-widget-content">
|
|
2
2
|
<h1 class="title"><%= t('page.showing', :model => t('activerecord.models.user')) -%></h1>
|
|
3
3
|
<div id="content_list">
|
|
4
4
|
<p id="notice"><%= notice %></p>
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
</div>
|
|
45
45
|
</div>
|
|
46
46
|
|
|
47
|
-
<div id="submenu" class="ui-corner-all">
|
|
47
|
+
<div id="submenu" class="ui-corner-all ui-widget-content">
|
|
48
48
|
<% if defined?(EnjuCirculation) %>
|
|
49
49
|
<ul>
|
|
50
50
|
<%- current_user.user_group.user_group_has_checkout_types.each do |available_checkout_type| -%>
|
data/app/views/page/403.html.erb
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
<div id="content_detail" class="ui-corner-all">
|
|
1
|
+
<div id="content_detail" class="ui-corner-all ui-widget-content">
|
|
2
2
|
<h1 class="title"><%= t('page.access_denied') -%></h1>
|
|
3
3
|
<div id="content_list">
|
|
4
4
|
<%= render 'page/search_form' %>
|
|
5
5
|
</div>
|
|
6
6
|
</div>
|
|
7
7
|
|
|
8
|
-
<div id="submenu" class="ui-corner-all">
|
|
8
|
+
<div id="submenu" class="ui-corner-all ui-widget-content">
|
|
9
9
|
</div>
|
data/app/views/page/404.html.erb
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
<div id="content_detail" class="ui-corner-all">
|
|
1
|
+
<div id="content_detail" class="ui-corner-all ui-widget-content">
|
|
2
2
|
<h1 class="title"><%= t('page.not_found') -%></h1>
|
|
3
3
|
<div id="content_list">
|
|
4
4
|
<%= render 'page/search_form' %>
|
|
5
5
|
</div>
|
|
6
6
|
</div>
|
|
7
7
|
|
|
8
|
-
<div id="submenu" class="ui-corner-all">
|
|
8
|
+
<div id="submenu" class="ui-corner-all ui-widget-content">
|
|
9
9
|
</div>
|
data/app/views/page/500.html.erb
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
<div id="content_detail" class="ui-corner-all">
|
|
1
|
+
<div id="content_detail" class="ui-corner-all ui-widget-content">
|
|
2
2
|
<h1 class="title"><%= t('page.internal_server_error') -%></h1>
|
|
3
3
|
<div id="content_list">
|
|
4
4
|
<%= render 'page/search_form' %>
|
|
5
5
|
</div>
|
|
6
6
|
</div>
|
|
7
7
|
|
|
8
|
-
<div id="submenu" class="ui-corner-all">
|
|
8
|
+
<div id="submenu" class="ui-corner-all ui-widget-content">
|
|
9
9
|
</div>
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
<div id="content_detail" class="ui-corner-all">
|
|
1
|
+
<div id="content_detail" class="ui-corner-all ui-widget-content">
|
|
2
2
|
<h1 class="title">About this system</h1>
|
|
3
3
|
<div id="content_list">
|
|
4
4
|
|
|
5
5
|
<ul>
|
|
6
|
-
<li>This integrated library system software "Next-L Enju Leaf" is developed by <a href="
|
|
6
|
+
<li>This integrated library system software "Next-L Enju Leaf" is developed by <a href="https://github.com/nabeta">Kosuke Tanabe</a> and <a href="http://www.next-l.jp/">Project Next-L</a>.</li>
|
|
7
7
|
<li>Next-L Enju Leaf is released under MIT license. For more information, visit <a href="https://github.com/next-l/enju_leaf">our project website</a>.</li>
|
|
8
8
|
</ul>
|
|
9
9
|
|
|
10
10
|
<h2>Contact information</h2>
|
|
11
11
|
|
|
12
12
|
<ul>
|
|
13
|
-
<li>Kosuke Tanabe: <%= mail_to '
|
|
13
|
+
<li>Kosuke Tanabe: <%= mail_to 'nabeta@fastmail.fm', nil, :replace_at => '_at_' -%></li>
|
|
14
14
|
<li>Project Next-L: <%= mail_to 'info@next-l.jp', nil, :replace_at => '_at_' -%></li>
|
|
15
15
|
</ul>
|
|
16
16
|
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
</div>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
|
-
<div id="submenu" class="ui-corner-all">
|
|
52
|
+
<div id="submenu" class="ui-corner-all ui-widget-content">
|
|
53
53
|
<ul>
|
|
54
54
|
<li><a href="http://www.next-l.jp/">Project Next-L</a></li>
|
|
55
55
|
<li><a href="https://github.com/next-l/enju_leaf">this project on GitHub</a></li>
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
<div id="content_detail" class="ui-corner-all">
|
|
1
|
+
<div id="content_detail" class="ui-corner-all ui-widget-content">
|
|
2
2
|
<h1 class="title">このシステムについて</h1>
|
|
3
3
|
<div id="content_list">
|
|
4
4
|
|
|
5
5
|
<ul>
|
|
6
|
-
<li>この図書館システム"Next-L Enju Leaf"は、<a href="
|
|
6
|
+
<li>この図書館システム"Next-L Enju Leaf"は、<a href="https://github.com/nabeta">田辺浩介</a>と<a href="http://www.next-l.jp/">Project Next-L</a>によって開発されています。</li>
|
|
7
7
|
<li>Next-L Enju LeafはMITライセンスのもとに公開されています。詳しくは<a href="https://github.com/next-l/enju_leaf">プロジェクトのホームページ</a>をごらんください。</li>
|
|
8
8
|
</ul>
|
|
9
9
|
|
|
10
10
|
<h2>連絡先</h2>
|
|
11
11
|
|
|
12
12
|
<ul>
|
|
13
|
-
<li>田辺浩介: <%= mail_to '
|
|
13
|
+
<li>田辺浩介: <%= mail_to 'nabeta@fastmail.fm', nil, :replace_at => '_at_' -%></li>
|
|
14
14
|
<li>Project Next-L: <%= mail_to 'info@next-l.jp', nil, :replace_at => '_at_' -%></li>
|
|
15
15
|
</ul>
|
|
16
16
|
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
</div>
|
|
49
49
|
</div>
|
|
50
50
|
|
|
51
|
-
<div id="submenu" class="ui-corner-all">
|
|
51
|
+
<div id="submenu" class="ui-corner-all ui-widget-content">
|
|
52
52
|
<ul>
|
|
53
53
|
<li><a href="http://www.next-l.jp/">Project Next-L</a></li>
|
|
54
54
|
<li><a href="https://github.com/next-l/enju_leaf">GitHubでのプロジェクトのページ</a></li>
|