Merge branch 'development' of github.com:Rulingcom/orbit into development
Conflicts: app/controllers/default_widget_controller.rb lib/tasks/migrate.rake
|  | @ -20,4 +20,3 @@ config/application.rb | ||||||
| app/assets/javascripts/.DS_Store | app/assets/javascripts/.DS_Store | ||||||
| 
 | 
 | ||||||
| solr | solr | ||||||
| Gemfile.lock |  | ||||||
|  |  | ||||||
							
								
								
									
										3
									
								
								Gemfile
								
								
								
								
							
							
						
						|  | @ -76,8 +76,8 @@ group :test, :development do | ||||||
|   gem 'pry-remote' |   gem 'pry-remote' | ||||||
|   gem 'pry-stack_explorer' |   gem 'pry-stack_explorer' | ||||||
|   gem 'pry-debugger' |   gem 'pry-debugger' | ||||||
|  |   gem 'debugger' | ||||||
|   gem 'faker' |   gem 'faker' | ||||||
| 
 |  | ||||||
|   gem "sunspot-rails-tester" |   gem "sunspot-rails-tester" | ||||||
|   gem 'database_cleaner'  #Strategies for cleaning databases. Can be used to ensure a clean state for testing. |   gem 'database_cleaner'  #Strategies for cleaning databases. Can be used to ensure a clean state for testing. | ||||||
|   gem "rspec", "~> 2.0" |   gem "rspec", "~> 2.0" | ||||||
|  | @ -93,4 +93,3 @@ group :test, :development do | ||||||
|   # gem "bluecloth" |   # gem "bluecloth" | ||||||
| end | end | ||||||
| 
 | 
 | ||||||
| gem 'debugger' |  | ||||||
|  |  | ||||||
|  | @ -0,0 +1,384 @@ | ||||||
|  | GIT | ||||||
|  |   remote: git://github.com/amatsuda/kaminari.git | ||||||
|  |   revision: 2e09b5374fec33b57c6387ca7bac89ecaa60c9eb | ||||||
|  |   specs: | ||||||
|  |     kaminari (0.14.1) | ||||||
|  |       actionpack (>= 3.0.0) | ||||||
|  |       activesupport (>= 3.0.0) | ||||||
|  | 
 | ||||||
|  | GIT | ||||||
|  |   remote: git://github.com/charlotte-ruby/impressionist.git | ||||||
|  |   revision: 0894f6a550a33f83f4937d655e9f0774521781e4 | ||||||
|  |   specs: | ||||||
|  |     impressionist (1.2.0) | ||||||
|  |       httpclient (~> 2.2) | ||||||
|  |       nokogiri (~> 1.5) | ||||||
|  | 
 | ||||||
|  | GEM | ||||||
|  |   remote: http://rubygems.org/ | ||||||
|  |   specs: | ||||||
|  |     actionmailer (3.2.12) | ||||||
|  |       actionpack (= 3.2.12) | ||||||
|  |       mail (~> 2.4.4) | ||||||
|  |     actionpack (3.2.12) | ||||||
|  |       activemodel (= 3.2.12) | ||||||
|  |       activesupport (= 3.2.12) | ||||||
|  |       builder (~> 3.0.0) | ||||||
|  |       erubis (~> 2.7.0) | ||||||
|  |       journey (~> 1.0.4) | ||||||
|  |       rack (~> 1.4.5) | ||||||
|  |       rack-cache (~> 1.2) | ||||||
|  |       rack-test (~> 0.6.1) | ||||||
|  |       sprockets (~> 2.2.1) | ||||||
|  |     activemodel (3.2.12) | ||||||
|  |       activesupport (= 3.2.12) | ||||||
|  |       builder (~> 3.0.0) | ||||||
|  |     activerecord (3.2.12) | ||||||
|  |       activemodel (= 3.2.12) | ||||||
|  |       activesupport (= 3.2.12) | ||||||
|  |       arel (~> 3.0.2) | ||||||
|  |       tzinfo (~> 0.3.29) | ||||||
|  |     activeresource (3.2.12) | ||||||
|  |       activemodel (= 3.2.12) | ||||||
|  |       activesupport (= 3.2.12) | ||||||
|  |     activesupport (3.2.12) | ||||||
|  |       i18n (~> 0.6) | ||||||
|  |       multi_json (~> 1.0) | ||||||
|  |     arel (3.0.2) | ||||||
|  |     bcrypt-ruby (3.0.0) | ||||||
|  |     binding_of_caller (0.7.1) | ||||||
|  |       debug_inspector (>= 0.0.1) | ||||||
|  |     bourne (1.1.2) | ||||||
|  |       mocha (= 0.10.5) | ||||||
|  |     brakeman (1.9.2) | ||||||
|  |       erubis (~> 2.6) | ||||||
|  |       fastercsv (~> 1.5) | ||||||
|  |       haml (~> 3.0) | ||||||
|  |       highline (~> 1.6) | ||||||
|  |       multi_json (~> 1.2) | ||||||
|  |       ruby2ruby (~> 2.0) | ||||||
|  |       ruby_parser (~> 3.1.1) | ||||||
|  |       sass (~> 3.0) | ||||||
|  |       terminal-table (~> 1.4) | ||||||
|  |     bson (1.8.2) | ||||||
|  |     bson_ext (1.8.2) | ||||||
|  |       bson (~> 1.8.2) | ||||||
|  |     builder (3.0.4) | ||||||
|  |     capybara (2.0.2) | ||||||
|  |       mime-types (>= 1.16) | ||||||
|  |       nokogiri (>= 1.3.3) | ||||||
|  |       rack (>= 1.0.0) | ||||||
|  |       rack-test (>= 0.5.4) | ||||||
|  |       selenium-webdriver (~> 2.0) | ||||||
|  |       xpath (~> 1.0.0) | ||||||
|  |     carrierwave (0.6.2) | ||||||
|  |       activemodel (>= 3.2.0) | ||||||
|  |       activesupport (>= 3.2.0) | ||||||
|  |     carrierwave-mongoid (0.2.2) | ||||||
|  |       carrierwave (~> 0.6.1) | ||||||
|  |       mongoid (~> 2.1) | ||||||
|  |     childprocess (0.3.8) | ||||||
|  |       ffi (~> 1.0, >= 1.0.11) | ||||||
|  |     chinese_pinyin (0.4.1) | ||||||
|  |     chronic (0.9.0) | ||||||
|  |     coderay (1.0.9) | ||||||
|  |     coffee-rails (3.2.2) | ||||||
|  |       coffee-script (>= 2.2.0) | ||||||
|  |       railties (~> 3.2.0) | ||||||
|  |     coffee-script (2.2.0) | ||||||
|  |       coffee-script-source | ||||||
|  |       execjs | ||||||
|  |     coffee-script-source (1.4.0) | ||||||
|  |     columnize (0.3.6) | ||||||
|  |     database_cleaner (0.9.1) | ||||||
|  |     debug_inspector (0.0.2) | ||||||
|  |     debugger (1.2.4) | ||||||
|  |       columnize (>= 0.3.1) | ||||||
|  |       debugger-linecache (~> 1.1.1) | ||||||
|  |       debugger-ruby_core_source (~> 1.1.7) | ||||||
|  |     debugger-linecache (1.1.2) | ||||||
|  |       debugger-ruby_core_source (>= 1.1.1) | ||||||
|  |     debugger-ruby_core_source (1.1.8) | ||||||
|  |     delorean (2.1.0) | ||||||
|  |       chronic | ||||||
|  |     devise (1.5.3) | ||||||
|  |       bcrypt-ruby (~> 3.0) | ||||||
|  |       orm_adapter (~> 0.0.3) | ||||||
|  |       warden (~> 1.1) | ||||||
|  |     diff-lcs (1.1.3) | ||||||
|  |     encrypted_strings (0.3.3) | ||||||
|  |     erubis (2.7.0) | ||||||
|  |     exception_notification (3.0.1) | ||||||
|  |       actionmailer (>= 3.0.4) | ||||||
|  |     execjs (1.4.0) | ||||||
|  |       multi_json (~> 1.0) | ||||||
|  |     factory_girl (4.2.0) | ||||||
|  |       activesupport (>= 3.0.0) | ||||||
|  |     factory_girl_rails (4.2.1) | ||||||
|  |       factory_girl (~> 4.2.0) | ||||||
|  |       railties (>= 3.0.0) | ||||||
|  |     faker (1.1.2) | ||||||
|  |       i18n (~> 0.5) | ||||||
|  |     fastercsv (1.5.5) | ||||||
|  |     fattr (2.2.1) | ||||||
|  |     ffi (1.4.0) | ||||||
|  |     haml (3.1.8) | ||||||
|  |     highline (1.6.15) | ||||||
|  |     hike (1.2.1) | ||||||
|  |     httpclient (2.3.2) | ||||||
|  |     i18n (0.6.1) | ||||||
|  |     journey (1.0.4) | ||||||
|  |     jquery-rails (2.1.4) | ||||||
|  |       railties (>= 3.0, < 5.0) | ||||||
|  |       thor (>= 0.14, < 2.0) | ||||||
|  |     jquery-ui-rails (4.0.1) | ||||||
|  |       jquery-rails | ||||||
|  |       railties (>= 3.1.0) | ||||||
|  |     json (1.7.7) | ||||||
|  |     mail (2.4.4) | ||||||
|  |       i18n (>= 0.4.0) | ||||||
|  |       mime-types (~> 1.16) | ||||||
|  |       treetop (~> 1.4.8) | ||||||
|  |     metaclass (0.0.1) | ||||||
|  |     method_source (0.8.1) | ||||||
|  |     mime-types (1.21) | ||||||
|  |     mini_magick (3.5.0) | ||||||
|  |       subexec (~> 0.2.1) | ||||||
|  |     mocha (0.10.5) | ||||||
|  |       metaclass (~> 0.0.1) | ||||||
|  |     mongo (1.8.2) | ||||||
|  |       bson (~> 1.8.2) | ||||||
|  |     mongo_session_store-rails3 (3.0.6) | ||||||
|  |       actionpack (>= 3.0) | ||||||
|  |       mongo | ||||||
|  |     mongoid (2.6.0) | ||||||
|  |       activemodel (~> 3.1) | ||||||
|  |       mongo (~> 1.7) | ||||||
|  |       tzinfo (~> 0.3.22) | ||||||
|  |     mongoid-encryptor (0.0.5) | ||||||
|  |       activesupport (~> 3.0) | ||||||
|  |       encrypted_strings (~> 0.3.3) | ||||||
|  |       mongoid (~> 2) | ||||||
|  |     mongoid-tree (0.7.0) | ||||||
|  |       mongoid (~> 2.0) | ||||||
|  |     multi_json (1.6.1) | ||||||
|  |     net-ldap (0.3.1) | ||||||
|  |     nokogiri (1.5.6) | ||||||
|  |     options (2.3.0) | ||||||
|  |       fattr | ||||||
|  |     orm_adapter (0.0.7) | ||||||
|  |     polyglot (0.3.3) | ||||||
|  |     pr_geohash (1.0.0) | ||||||
|  |     progress_bar (0.4.0) | ||||||
|  |       highline (~> 1.6.1) | ||||||
|  |       options (~> 2.3.0) | ||||||
|  |     pry (0.9.12) | ||||||
|  |       coderay (~> 1.0.5) | ||||||
|  |       method_source (~> 0.8) | ||||||
|  |       slop (~> 3.4) | ||||||
|  |     pry-debugger (0.2.1) | ||||||
|  |       debugger (~> 1.2.0) | ||||||
|  |       pry (~> 0.9.10) | ||||||
|  |     pry-remote (0.1.6) | ||||||
|  |       pry (~> 0.9) | ||||||
|  |       slop (~> 3.0) | ||||||
|  |     pry-stack_explorer (0.4.9) | ||||||
|  |       binding_of_caller (>= 0.7) | ||||||
|  |       pry (~> 0.9.11) | ||||||
|  |     rack (1.4.5) | ||||||
|  |     rack-cache (1.2) | ||||||
|  |       rack (>= 0.4) | ||||||
|  |     rack-protection (1.3.2) | ||||||
|  |       rack | ||||||
|  |     rack-ssl (1.3.3) | ||||||
|  |       rack | ||||||
|  |     rack-test (0.6.2) | ||||||
|  |       rack (>= 1.0) | ||||||
|  |     radius (0.7.3) | ||||||
|  |     rails (3.2.12) | ||||||
|  |       actionmailer (= 3.2.12) | ||||||
|  |       actionpack (= 3.2.12) | ||||||
|  |       activerecord (= 3.2.12) | ||||||
|  |       activeresource (= 3.2.12) | ||||||
|  |       activesupport (= 3.2.12) | ||||||
|  |       bundler (~> 1.0) | ||||||
|  |       railties (= 3.2.12) | ||||||
|  |     railties (3.2.12) | ||||||
|  |       actionpack (= 3.2.12) | ||||||
|  |       activesupport (= 3.2.12) | ||||||
|  |       rack-ssl (~> 1.3.2) | ||||||
|  |       rake (>= 0.8.7) | ||||||
|  |       rdoc (~> 3.4) | ||||||
|  |       thor (>= 0.14.6, < 2.0) | ||||||
|  |     rake (10.0.3) | ||||||
|  |     rdoc (3.12.1) | ||||||
|  |       json (~> 1.4) | ||||||
|  |     redis (3.0.2) | ||||||
|  |     redis-namespace (1.2.1) | ||||||
|  |       redis (~> 3.0.0) | ||||||
|  |     redis-search (0.9.0) | ||||||
|  |       chinese_pinyin (>= 0.3.0) | ||||||
|  |       redis (>= 2.1.1) | ||||||
|  |       redis-namespace (>= 1.0.2) | ||||||
|  |     resque (1.23.0) | ||||||
|  |       multi_json (~> 1.0) | ||||||
|  |       redis-namespace (~> 1.0) | ||||||
|  |       sinatra (>= 0.9.2) | ||||||
|  |       vegas (~> 0.1.2) | ||||||
|  |     resque-restriction (0.3.0) | ||||||
|  |       resque (>= 1.7.0) | ||||||
|  |     resque-scheduler (2.0.0) | ||||||
|  |       redis (>= 2.0.1) | ||||||
|  |       resque (>= 1.20.0) | ||||||
|  |       rufus-scheduler | ||||||
|  |     rmmseg-cpp-huacnlee (0.2.9) | ||||||
|  |     rsolr (1.0.8) | ||||||
|  |       builder (>= 2.1.2) | ||||||
|  |     rspec (2.12.0) | ||||||
|  |       rspec-core (~> 2.12.0) | ||||||
|  |       rspec-expectations (~> 2.12.0) | ||||||
|  |       rspec-mocks (~> 2.12.0) | ||||||
|  |     rspec-core (2.12.2) | ||||||
|  |     rspec-expectations (2.12.1) | ||||||
|  |       diff-lcs (~> 1.1.3) | ||||||
|  |     rspec-mocks (2.12.2) | ||||||
|  |     rspec-rails (2.12.2) | ||||||
|  |       actionpack (>= 3.0) | ||||||
|  |       activesupport (>= 3.0) | ||||||
|  |       railties (>= 3.0) | ||||||
|  |       rspec-core (~> 2.12.0) | ||||||
|  |       rspec-expectations (~> 2.12.0) | ||||||
|  |       rspec-mocks (~> 2.12.0) | ||||||
|  |     ruby2ruby (2.0.3) | ||||||
|  |       ruby_parser (~> 3.1) | ||||||
|  |       sexp_processor (~> 4.0) | ||||||
|  |     ruby_parser (3.1.1) | ||||||
|  |       sexp_processor (~> 4.1) | ||||||
|  |     rubyzip (0.9.9) | ||||||
|  |     rufus-scheduler (2.0.17) | ||||||
|  |       tzinfo (>= 0.3.23) | ||||||
|  |     sass (3.2.5) | ||||||
|  |     sass-rails (3.2.6) | ||||||
|  |       railties (~> 3.2.0) | ||||||
|  |       sass (>= 3.1.10) | ||||||
|  |       tilt (~> 1.3) | ||||||
|  |     selenium-webdriver (2.30.0) | ||||||
|  |       childprocess (>= 0.2.5) | ||||||
|  |       multi_json (~> 1.0) | ||||||
|  |       rubyzip | ||||||
|  |       websocket (~> 1.0.4) | ||||||
|  |     sexp_processor (4.1.5) | ||||||
|  |     shoulda-matchers (1.4.2) | ||||||
|  |       activesupport (>= 3.0.0) | ||||||
|  |       bourne (~> 1.1.2) | ||||||
|  |     simplecov (0.7.1) | ||||||
|  |       multi_json (~> 1.0) | ||||||
|  |       simplecov-html (~> 0.7.1) | ||||||
|  |     simplecov-html (0.7.1) | ||||||
|  |     sinatra (1.3.4) | ||||||
|  |       rack (~> 1.4) | ||||||
|  |       rack-protection (~> 1.3) | ||||||
|  |       tilt (~> 1.3, >= 1.3.3) | ||||||
|  |     slop (3.4.3) | ||||||
|  |     social-share-button (0.1.1) | ||||||
|  |     spork (0.9.2) | ||||||
|  |     sprockets (2.2.2) | ||||||
|  |       hike (~> 1.2) | ||||||
|  |       multi_json (~> 1.0) | ||||||
|  |       rack (~> 1.0) | ||||||
|  |       tilt (~> 1.1, != 1.3.0) | ||||||
|  |     subexec (0.2.2) | ||||||
|  |     sunspot (1.3.3) | ||||||
|  |       pr_geohash (~> 1.0) | ||||||
|  |       rsolr (~> 1.0.7) | ||||||
|  |     sunspot-rails-tester (0.0.4) | ||||||
|  |       sunspot_rails (~> 1.2) | ||||||
|  |     sunspot_mongo (1.0.1) | ||||||
|  |       sunspot_rails | ||||||
|  |     sunspot_rails (1.3.3) | ||||||
|  |       nokogiri | ||||||
|  |       sunspot (= 1.3.3) | ||||||
|  |     sunspot_solr (1.3.3) | ||||||
|  |     terminal-table (1.4.5) | ||||||
|  |     thor (0.17.0) | ||||||
|  |     tilt (1.3.3) | ||||||
|  |     tinymce-rails (3.5.8) | ||||||
|  |       railties (>= 3.1.1) | ||||||
|  |     treetop (1.4.12) | ||||||
|  |       polyglot | ||||||
|  |       polyglot (>= 0.3.1) | ||||||
|  |     tzinfo (0.3.35) | ||||||
|  |     uglifier (1.3.0) | ||||||
|  |       execjs (>= 0.3.0) | ||||||
|  |       multi_json (~> 1.0, >= 1.0.2) | ||||||
|  |     vegas (0.1.11) | ||||||
|  |       rack (>= 1.0.0) | ||||||
|  |     warden (1.2.1) | ||||||
|  |       rack (>= 1.0) | ||||||
|  |     watchr (0.7) | ||||||
|  |     websocket (1.0.7) | ||||||
|  |     xpath (1.0.0) | ||||||
|  |       nokogiri (~> 1.3) | ||||||
|  | 
 | ||||||
|  | PLATFORMS | ||||||
|  |   ruby | ||||||
|  | 
 | ||||||
|  | DEPENDENCIES | ||||||
|  |   brakeman | ||||||
|  |   bson_ext | ||||||
|  |   capybara | ||||||
|  |   carrierwave | ||||||
|  |   carrierwave-mongoid | ||||||
|  |   chinese_pinyin (= 0.4.1) | ||||||
|  |   coffee-rails | ||||||
|  |   database_cleaner | ||||||
|  |   debugger | ||||||
|  |   delorean | ||||||
|  |   devise (= 1.5.3) | ||||||
|  |   exception_notification | ||||||
|  |   execjs | ||||||
|  |   factory_girl_rails | ||||||
|  |   faker | ||||||
|  |   impressionist! | ||||||
|  |   jquery-rails (= 2.1.4) | ||||||
|  |   jquery-ui-rails | ||||||
|  |   kaminari! | ||||||
|  |   mime-types | ||||||
|  |   mini_magick | ||||||
|  |   mongo_session_store-rails3 (= 3.0.6) | ||||||
|  |   mongoid (> 2.1, < 3.0.0) | ||||||
|  |   mongoid-encryptor | ||||||
|  |   mongoid-tree | ||||||
|  |   net-ldap (~> 0.3.1) | ||||||
|  |   nokogiri | ||||||
|  |   progress_bar | ||||||
|  |   pry | ||||||
|  |   pry-debugger | ||||||
|  |   pry-remote | ||||||
|  |   pry-stack_explorer | ||||||
|  |   radius | ||||||
|  |   rails (~> 3.2.9) | ||||||
|  |   rake | ||||||
|  |   redis (>= 2.1.1) | ||||||
|  |   redis-namespace | ||||||
|  |   redis-search | ||||||
|  |   resque | ||||||
|  |   resque-restriction | ||||||
|  |   resque-scheduler | ||||||
|  |   rmmseg-cpp-huacnlee (= 0.2.9) | ||||||
|  |   rspec (~> 2.0) | ||||||
|  |   rspec-rails (~> 2.0) | ||||||
|  |   rubyzip | ||||||
|  |   sass-rails | ||||||
|  |   shoulda-matchers | ||||||
|  |   simplecov | ||||||
|  |   sinatra | ||||||
|  |   social-share-button | ||||||
|  |   spork | ||||||
|  |   sprockets | ||||||
|  |   sunspot-rails-tester | ||||||
|  |   sunspot_mongo | ||||||
|  |   sunspot_solr | ||||||
|  |   tinymce-rails | ||||||
|  |   uglifier | ||||||
|  |   watchr | ||||||
|  | @ -35,7 +35,7 @@ div[data-role="page"] { | ||||||
| } | } | ||||||
| .main-menu ul { | .main-menu ul { | ||||||
| 	background-color: #333; | 	background-color: #333; | ||||||
| 	width: 280px; | 	width: 210px; | ||||||
| 	list-style: none; | 	list-style: none; | ||||||
| 	margin: 0 auto; | 	margin: 0 auto; | ||||||
| 	padding: 0; | 	padding: 0; | ||||||
|  | @ -128,8 +128,8 @@ div[data-role="page"] { | ||||||
| 	left: 0; | 	left: 0; | ||||||
| } | } | ||||||
| .header .language .ui-btn-text i { | .header .language .ui-btn-text i { | ||||||
| 	font-size: .83em; | 	font-size: 1.1em; | ||||||
| 	margin-top: .2em; | 	margin-top: .33em; | ||||||
| } | } | ||||||
| .header .language .ui-icon { | .header .language .ui-icon { | ||||||
| 	background-image: none; | 	background-image: none; | ||||||
|  | @ -213,6 +213,9 @@ div[data-role="page"] { | ||||||
| 	padding: 0 10px 20px; | 	padding: 0 10px 20px; | ||||||
| 	margin-bottom: 0; | 	margin-bottom: 0; | ||||||
| } | } | ||||||
|  | #announcement_content .content { | ||||||
|  | 	padding: 10px; | ||||||
|  | } | ||||||
| #map div[data-role="content"] { | #map div[data-role="content"] { | ||||||
| 	padding: 0; | 	padding: 0; | ||||||
| } | } | ||||||
|  | @ -323,7 +326,7 @@ div[id^="dialog"] .content { | ||||||
| } | } | ||||||
| @media(min-width:600px) { | @media(min-width:600px) { | ||||||
| 	.main-menu ul { | 	.main-menu ul { | ||||||
| 		width: 560px; | 		width: 420px; | ||||||
| 	} | 	} | ||||||
| 	.main-menu ul li { | 	.main-menu ul li { | ||||||
| 		width: 128px; | 		width: 128px; | ||||||
|  | @ -331,7 +334,7 @@ div[id^="dialog"] .content { | ||||||
| } | } | ||||||
| @media(min-width:768px) { | @media(min-width:768px) { | ||||||
| 	.main-menu ul { | 	.main-menu ul { | ||||||
| 		width: 640px; | 		width: 480px; | ||||||
| 	} | 	} | ||||||
| 	.main-menu ul li { | 	.main-menu ul li { | ||||||
| 		width: 148px; | 		width: 148px; | ||||||
|  | @ -342,7 +345,7 @@ div[id^="dialog"] .content { | ||||||
| } | } | ||||||
| @media(min-width:800px) { | @media(min-width:800px) { | ||||||
| 	.main-menu ul { | 	.main-menu ul { | ||||||
| 		width: 640px; | 		width: 480px; | ||||||
| 	} | 	} | ||||||
| 	.main-menu ul li { | 	.main-menu ul li { | ||||||
| 		width: 148px; | 		width: 148px; | ||||||
|  | @ -350,7 +353,7 @@ div[id^="dialog"] .content { | ||||||
| } | } | ||||||
| @media(min-width:961px) { | @media(min-width:961px) { | ||||||
| 	.main-menu ul { | 	.main-menu ul { | ||||||
| 		width: 640px; | 		width: 480px; | ||||||
| 	} | 	} | ||||||
| 	.main-menu ul li { | 	.main-menu ul li { | ||||||
| 		width: 148px; | 		width: 148px; | ||||||
|  | @ -358,7 +361,7 @@ div[id^="dialog"] .content { | ||||||
| } | } | ||||||
| @media(min-width: 1024px) { | @media(min-width: 1024px) { | ||||||
| 	.main-menu ul { | 	.main-menu ul { | ||||||
| 		width: 800px; | 		width: 600px; | ||||||
| 	} | 	} | ||||||
| 	.main-menu ul li { | 	.main-menu ul li { | ||||||
| 		width: 188px; | 		width: 188px; | ||||||
|  | @ -88,7 +88,7 @@ class Admin::AssetsController < OrbitBackendController | ||||||
| 
 | 
 | ||||||
|   def delete |   def delete | ||||||
|     if params[:ids] |     if params[:ids] | ||||||
|       asset = Asset.any_in(:_id => params[:ids]).delete_all |       asset = Asset.any_in(:_id => params[:ids]).destroy_all | ||||||
|     end |     end | ||||||
|     redirect_to assets_url(:filter => params[:filter], :direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) |     redirect_to assets_url(:filter => params[:filter], :direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|  | @ -114,7 +114,7 @@ class Admin::DesignsController < OrbitBackendController | ||||||
| 
 | 
 | ||||||
|   def delete |   def delete | ||||||
|     if params[:ids] |     if params[:ids] | ||||||
|       designs = Design.any_in(:_id => params[:ids]).delete_all |       designs = Design.any_in(:_id => params[:ids]).destroy_all | ||||||
|     end |     end | ||||||
|     redirect_to admin_designs_url(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) |     redirect_to admin_designs_url(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|  | @ -36,12 +36,11 @@ helper Admin::PagePartsHelper | ||||||
|      |      | ||||||
|     if @item.module_app |     if @item.module_app | ||||||
|       @module_app = @item.module_app |       @module_app = @item.module_app | ||||||
|  |       @frontend_path = @item.app_frontend_url | ||||||
| 	   | 	   | ||||||
| 	  @frontend_path = @item.app_frontend_url ? @item.app_frontend_url : @module_app.widgets.keys[0] |   	  if @module_app && @module_app.widgets && @module_app.widgets.any?{|b| b.class == Array} | ||||||
| 	   |           @frontend_style =  @module_app.widgets[@frontend_path] if !@frontend_path.blank? && !@module_app.widgets.blank? | ||||||
| 	  if @module_app && @module_app.widgets && @module_app.widgets.any?{|b| b.class == Array} |   	  end | ||||||
|         @frontend_style =  @module_app.widgets[@frontend_path] if !@frontend_path.blank? && !@module_app.widgets.blank? |  | ||||||
| 	  end |  | ||||||
| 	   | 	   | ||||||
|       case @item.module_app.key |       case @item.module_app.key | ||||||
|         when 'announcement' |         when 'announcement' | ||||||
|  | @ -59,7 +58,7 @@ helper Admin::PagePartsHelper | ||||||
|       end |       end | ||||||
|     else |     else | ||||||
|       @categories = nil |       @categories = nil | ||||||
| 	  @module_app = @module_apps[0] |       @module_app = @module_apps[0] | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,10 +4,20 @@ class Admin::PluginsController < ApplicationController | ||||||
|    |    | ||||||
|   def index |   def index | ||||||
|    |    | ||||||
|     @plugins = OrbitApp::Module::Registration.all | 	@plugins = OrbitApp::Plugin::Registration.all | ||||||
| 
 | 
 | ||||||
|     if(!params[:show_plugin_profile].nil?) |     if(!params[:show_plugin_profile].nil?) | ||||||
|       @right_partial = OrbitApp::Plugin::Registration.find_by_key(params[:show_plugin_profile]).profile_partial_path rescue 'plugin_summary' | 	 | ||||||
|  |       @right_partial = OrbitApp::Plugin::Registration.find_by_key(params[:show_plugin_profile]).admin_partial_path | ||||||
|  | 
 | ||||||
|  | 	  if !@right_partial.blank? | ||||||
|  | 	    respond_to do |format| | ||||||
|  | 	      format.html { redirect_to( @right_partial ) } | ||||||
|  |         end | ||||||
|  |       else | ||||||
|  | 	    @right_partial = "admin/users_new_interface/plugin_summary" | ||||||
|  | 	  end | ||||||
|  | 	   | ||||||
|     else |     else | ||||||
|       @right_partial = "admin/users_new_interface/plugin_summary" |       @right_partial = "admin/users_new_interface/plugin_summary" | ||||||
|     end |     end | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| class Admin::SubRolesController < RolesController | class Admin::SubRolesController < Admin::RolesController | ||||||
|    |    | ||||||
|    |    | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -32,7 +32,11 @@ class DefaultWidgetController< OrbitWidgetController | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def default_widget |   def default_widget | ||||||
|     @tag_class = nil | 
 | ||||||
|  |     if !params[:id].blank? | ||||||
|  |       redirect_to eval("#{@page_part.module_app.widget_fields_link_method['title']['method']}('#{params[:id]}', {inner: #{params[:inner] || true}})") | ||||||
|  |     else | ||||||
|  |       @tag_class = nil | ||||||
|       @default_widget = @page_part.module_app.get_default_widget |       @default_widget = @page_part.module_app.get_default_widget | ||||||
|       @widget_image_field = @default_widget["image"] || @default_widget[:image] |       @widget_image_field = @default_widget["image"] || @default_widget[:image] | ||||||
|       case @page_part |       case @page_part | ||||||
|  | @ -47,8 +51,10 @@ class DefaultWidgetController< OrbitWidgetController | ||||||
|       end |       end | ||||||
|       if @paginate |       if @paginate | ||||||
|         @data = query_for_default_widget.includes(@widget_image_field).page(params[:page_main]).per(@data_limit) |         @data = query_for_default_widget.includes(@widget_image_field).page(params[:page_main]).per(@data_limit) | ||||||
|  |         # @data = query_for_default_widget.limit(@data_limit).includes(@widget_image_field) | ||||||
|       else |       else | ||||||
|         @data = query_for_default_widget.limit(@data_limit).includes(@widget_image_field) |         @data = eval(@default_widget["query"]).includes(@widget_image_field).page(params[:page_main]).per(@data_limit).desc(:created_at) | ||||||
|  |         # @data = eval(@default_widget["query"]).limit(@data_limit).includes(@widget_image_field).desc(:created_at) | ||||||
|       end |       end | ||||||
|       case params[:type] |       case params[:type] | ||||||
|       when "typeA" |       when "typeA" | ||||||
|  | @ -64,7 +70,7 @@ class DefaultWidgetController< OrbitWidgetController | ||||||
|         @partial = "typeC" |         @partial = "typeC" | ||||||
|         render "typeC" |         render "typeC" | ||||||
|       end |       end | ||||||
| 
 |     end | ||||||
|   end |   end | ||||||
|    |    | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -2,6 +2,11 @@ class FrontController < ApplicationController | ||||||
| 
 | 
 | ||||||
|   layout false |   layout false | ||||||
| 
 | 
 | ||||||
|  |   def show_breadcrumb | ||||||
|  |     @ancestors = Page.find(params[:id]).ancestors_and_self | ||||||
|  |     @ancestors = nil if @ancestors.size == 1 | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|   def show_banner |   def show_banner | ||||||
|     @ad_banner = AdBanner.find(params[:id]) rescue nil |     @ad_banner = AdBanner.find(params[:id]) rescue nil | ||||||
|   end |   end | ||||||
|  |  | ||||||
|  | @ -64,17 +64,23 @@ class PagesController < ApplicationController | ||||||
|   protected |   protected | ||||||
|     |     | ||||||
|   def get_item |   def get_item | ||||||
|     module_app = ModuleApp.first(:conditions => {:key => params[:app_name]}) |     if params[:same_page_id] | ||||||
|     if !params[:category_id].blank? && !params[:tag_id].blank? |       @item = Item.find(params[:same_page_id]) | ||||||
|       @item = Item.first(:conditions => {:module_app_id => module_app.id, :app_frontend_url => params[:app_action], :category => params[:category_id], :tag => params[:tag_id]}) |     else | ||||||
|       @item = Item.first(:conditions => {:module_app_id => module_app.id, :app_frontend_url => params[:app_action], :category => params[:category_id], :tag => ''}) unless @item |       module_app = ModuleApp.first(:conditions => {:key => params[:app_name]}) | ||||||
|     elsif !params[:category_id].blank? |       if !params[:category_id].blank? && !params[:tag_id].blank? | ||||||
|       @item = Item.where(module_app_id: module_app.id,app_frontend_url:params[:app_action],category: params[:category_id]).any_in(tag: [nil,'']).first |         @item = Item.first(:conditions => {:module_app_id => module_app.id, :app_frontend_url => params[:app_action], :category => params[:category_id], :tag => params[:tag_id]}) | ||||||
|     elsif !params[:tag_id].blank? |         @item = Item.first(:conditions => {:module_app_id => module_app.id, :app_frontend_url => params[:app_action], :category => params[:category_id], :tag => ''}) unless @item | ||||||
|       @item = Item.where(module_app_id: module_app.id,app_frontend_url:params[:app_action],tag: params[:tag_id]).any_in(category: [nil,'']).first |       elsif !params[:category_id].blank? | ||||||
|  |         @item = Item.where(module_app_id: module_app.id, app_frontend_url: params[:app_action], category: params[:category_id]).any_in(tag: [nil,'']).first | ||||||
|  |       elsif !params[:tag_id].blank? | ||||||
|  |         @item = Item.where(module_app_id: module_app.id, app_frontend_url: params[:app_action], tag: params[:tag_id]).any_in(category: [nil,'']).first | ||||||
|  |       end | ||||||
|  |       @item = Item.find(params[:orig_page]) unless @item || params[:orig_page].blank? | ||||||
|  |       @item = Item.where(module_app_id: module_app.id, app_frontend_url: params[:app_action]).all_of("tag" => {"$in" => [nil,'']},"category" => { "$in" => [nil,'']}).first unless @item | ||||||
|  |       @item = Item.where(module_app_id: module_app.id, app_frontend_url: 'default_widget').first unless @item | ||||||
|  |       @item = Item.where(module_app_id: module_app.id, app_frontend_url: params[:app_action]).first unless @item | ||||||
|     end |     end | ||||||
|     @item = Item.where(module_app_id: module_app.id,app_frontend_url:params[:app_action]).all_of("tag" => {"$in" => [nil,'']},"category" => { "$in" => [nil,'']}).first unless @item |  | ||||||
|     @item = Item.where(module_app_id: module_app.id,app_frontend_url:params[:app_action]).first unless @item |  | ||||||
|     raise PageError,'Missing Frontend Page' if @item.nil? |     raise PageError,'Missing Frontend Page' if @item.nil? | ||||||
|   end |   end | ||||||
|    |    | ||||||
|  |  | ||||||
|  | @ -3,24 +3,24 @@ module DefaultWidgetHelper | ||||||
|     I18n.t("#{@page_part.module_app.key}.default_widget.#{field}") |     I18n.t("#{@page_part.module_app.key}.default_widget.#{field}") | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def link_to_field(row_data,field,switch) |   def link_to_field(row_data,field, switch, options=nil) | ||||||
|     method_ary = @page_part.module_app.widget_fields_link_method |     method_ary = @page_part.module_app.widget_fields_link_method | ||||||
|     field = field.to_sym |     field = field.to_sym | ||||||
|     if(method_ary.has_key?(field) and (switch == "true")) |     if(method_ary.has_key?(field) and (switch == "true")) | ||||||
|       url = case method_ary[field][:args] |       url = case method_ary[field][:args] | ||||||
|       when nil # no args |       when nil # no args | ||||||
|         get_data_link(method_ary[field][:method]) |         get_data_link(method_ary[field]["method"], options) | ||||||
|       when :self # passing self |       when :self # passing self | ||||||
|         get_data_link(method_ary[field][:method],row_data.id) |         get_data_link(method_ary[field]['method'], options,row_data.id) | ||||||
|       else  |       else  | ||||||
|         ary = method_ary[field][:args].clone |         ary = method_ary[field][:args].clone | ||||||
|         object_hash = ary.each do |key,val|   |         object_hash = ary.each do |key,val|   | ||||||
|           ary[key]= type_trans_or_to_s(row_data.send(val[0]).send(val[1])) |           ary[key]= type_trans_or_to_s(row_data.send(val[0]).send(val[1])) | ||||||
|         end |         end | ||||||
|         get_data_link(method_ary[field][:method],object_hash) |         get_data_link(method_ary[field]['method'], options,object_hash) | ||||||
|       end |       end | ||||||
| 
 | 
 | ||||||
|       link_to row_data.send(field),url |       link_to row_data.send(field), url | ||||||
|      else |      else | ||||||
|       type_trans_or_to_s(row_data.send(field) ) |       type_trans_or_to_s(row_data.send(field) ) | ||||||
|     end |     end | ||||||
|  | @ -45,13 +45,17 @@ module DefaultWidgetHelper | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def get_data_link(method_entry,object = nil) |   def get_data_link(method_entry, options=nil, object = nil) | ||||||
|     case object |     case object | ||||||
|     when nil |     when NilClass | ||||||
|       eval method_entry |       eval eval("#{method_entry}(#{options})") | ||||||
|  |     when BSON::ObjectId | ||||||
|  |       object = "'#{object.to_s}'" | ||||||
|  |       eval("#{method_entry}(#{object}, #{options})")  | ||||||
|  |     when Hash | ||||||
|  |       eval("#{method_entry}(#{object.merge options})")  | ||||||
|     else |     else | ||||||
|       object = "'#{object.to_s}'" if object.class == BSON::ObjectId |       '' | ||||||
|       eval("#{method_entry}(#{object})" )  |  | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -23,7 +23,7 @@ class AdImage | ||||||
|   belongs_to :ad_banner |   belongs_to :ad_banner | ||||||
| 
 | 
 | ||||||
|   before_validation :add_http |   before_validation :add_http | ||||||
|   validates :out_link, :format => /^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$/ix, :allow_blank => true |   validates :out_link, :format => /^(http|https):\/\/(([a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5})|((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))(:[0-9]{1,5})?(\/.*)?/i, :allow_blank => true | ||||||
| 
 | 
 | ||||||
|   def display? |   def display? | ||||||
|     if (self.post_date <= Date.today && (self.unpost_date.nil? || self.unpost_date>= Date.today) rescue false)  |     if (self.post_date <= Date.today && (self.unpost_date.nil? || self.unpost_date>= Date.today) rescue false)  | ||||||
|  |  | ||||||
|  | @ -12,7 +12,7 @@ class Item | ||||||
|   field :enabled_for, :type => Array, :default => nil |   field :enabled_for, :type => Array, :default => nil | ||||||
|   field :menu_enabled_for, :type => Array, :default => nil |   field :menu_enabled_for, :type => Array, :default => nil | ||||||
|   field :title, localize: true |   field :title, localize: true | ||||||
|   field :sitemap_enabled, :type => Hash |   field :sitemap_enabled, :type => Hash, :default => {} | ||||||
| 
 | 
 | ||||||
|   |   | ||||||
|   validates_format_of :name, :with => /^[0-9a-zA-Z\-_]+$/ |   validates_format_of :name, :with => /^[0-9a-zA-Z\-_]+$/ | ||||||
|  | @ -23,6 +23,7 @@ class Item | ||||||
|    |    | ||||||
|   before_destroy :destroy_children |   before_destroy :destroy_children | ||||||
|   after_rearrange :rebuild_path, :if => "parent_id_changed? || name_changed?" |   after_rearrange :rebuild_path, :if => "parent_id_changed? || name_changed?" | ||||||
|  |   after_save :rebuild_children_path, :if => "path_changed?" | ||||||
|    |    | ||||||
|   def enabled_for_lang(lang) |   def enabled_for_lang(lang) | ||||||
|     enabled_for.include?(lang) |     enabled_for.include?(lang) | ||||||
|  | @ -57,7 +58,7 @@ class Item | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def show_in_sitemap_for(locale) |   def show_in_sitemap_for(locale) | ||||||
|     if sitemap_enabled && !sitemap_enabled[locale].blank? |     if !sitemap_enabled.blank? && !sitemap_enabled[locale].blank? | ||||||
|       sitemap_enabled[locale].eql?('true') ? true : false |       sitemap_enabled[locale].eql?('true') ? true : false | ||||||
|     else |     else | ||||||
|       true |       true | ||||||
|  | @ -68,7 +69,6 @@ class Item | ||||||
|    |    | ||||||
|   def rebuild_path |   def rebuild_path | ||||||
|     self.path = (self.ancestors_and_self - [Item.root]).collect{|x| x.name unless x.root?}.join('/') |     self.path = (self.ancestors_and_self - [Item.root]).collect{|x| x.name unless x.root?}.join('/') | ||||||
|     self.rebuild_children_path |  | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def rebuild_children_path |   def rebuild_children_path | ||||||
|  |  | ||||||
|  | @ -2,7 +2,7 @@ class Link < Item | ||||||
|    |    | ||||||
|   field :url |   field :url | ||||||
|    |    | ||||||
|   validates :url, :presence => true, :format => /^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$/ix |   validates :url, :presence => true, :format => /^(http|https):\/\/(([a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5})|((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))(:[0-9]{1,5})?(\/.*)?/i | ||||||
| 
 | 
 | ||||||
| 	before_validation :add_http | 	before_validation :add_http | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -27,6 +27,11 @@ class Page < Item | ||||||
|   before_save :create_parts, if: Proc.new { |page| page.new_record? || page.design_id_changed? } |   before_save :create_parts, if: Proc.new { |page| page.new_record? || page.design_id_changed? } | ||||||
|   before_save :delete_empty_frontend_field, :generate_html |   before_save :delete_empty_frontend_field, :generate_html | ||||||
| 
 | 
 | ||||||
|  |   def generate_parts | ||||||
|  |     create_parts | ||||||
|  |     self.save | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|   protected |   protected | ||||||
|    |    | ||||||
|   def create_parts |   def create_parts | ||||||
|  |  | ||||||
|  | @ -9,6 +9,20 @@ | ||||||
|                                         <div class="form-horizontal"> |                                         <div class="form-horizontal"> | ||||||
|                         <div class="clear"> |                         <div class="clear"> | ||||||
| 							 | 							 | ||||||
|  |                             <div class="control-group pull-left"> | ||||||
|  |                                 <label class="control-label" for="key"><%= t(:key) %></label> | ||||||
|  |                                 <div class="controls"> | ||||||
|  |                                     <% if @attribute.new_record? %> | ||||||
|  |                                         <%= f.text_field :key, :placeholder => t(:key) %> | ||||||
|  |                                     <% else %> | ||||||
|  |                                         <div><%= @attribute.key%></div> | ||||||
|  |                                     <% end %> | ||||||
|  |                                 </div> | ||||||
|  |                             </div> | ||||||
|  |                             <%= render :partial=>"shared/attribute_field/placeholder_block",:locals=>{:values=>@attribute.title_translations,:class_ext=>"pull-left",:label_ext=>t(:item_name),:field_name=>"#{@attribute_type}[title_translations]"}%> | ||||||
|  | 							 | ||||||
|  | 							 | ||||||
|  | 						 | ||||||
|                             <div class="control-group pull-left"> |                             <div class="control-group pull-left"> | ||||||
|                                 <label class="control-label" for="key"><%= t(:to_search) %></label> |                                 <label class="control-label" for="key"><%= t(:to_search) %></label> | ||||||
|                                 <div class="controls"> |                                 <div class="controls"> | ||||||
|  | @ -23,24 +37,13 @@ | ||||||
|                                 </div> |                                 </div> | ||||||
|                             </div> |                             </div> | ||||||
| 							 | 							 | ||||||
|                             <div class="control-group pull-left"> |  | ||||||
|                                 <label class="control-label" for="key"><%= t(:key) %></label> |  | ||||||
|                                 <div class="controls"> |  | ||||||
|                                     <% if @attribute.new_record? %> |  | ||||||
|                                         <%= f.text_field :key, :placeholder => t(:key) %> |  | ||||||
|                                     <% else %> |  | ||||||
|                                         <div><%= @attribute.key%></div> |  | ||||||
|                                     <% end %> |  | ||||||
|                                 </div> |  | ||||||
|                             </div> |  | ||||||
|                             <%= render :partial=>"shared/attribute_field/placeholder_block",:locals=>{:values=>@attribute.title_translations,:class_ext=>"pull-left",:label_ext=>t(:item_name),:field_name=>"#{@attribute_type}[title_translations]"}%> |  | ||||||
|                         </div> |                         </div> | ||||||
|                     </div> |                     </div> | ||||||
|                 </div> |                 </div> | ||||||
| 						<% if @attribute._type == "Info" %> | 						<% if @attribute._type == "Info" %> | ||||||
| 						 | 						 | ||||||
| 						<div class="map-block back attributes"> | 						<div class="map-block back attributes"> | ||||||
| 							<h4><span><%=  @attribute.title+ t(:attributes)%></span></h4> | 							<h4><span><%=  @attribute.title+ t(:field)%></span></h4> | ||||||
| 							<div id="attribute_field_list"> | 							<div id="attribute_field_list"> | ||||||
| 							<%= render :partial=>"shared/attribute_field/attribute_field",:collection=>@attribute.attribute_fields%> | 							<%= render :partial=>"shared/attribute_field/attribute_field",:collection=>@attribute.attribute_fields%> | ||||||
| 							</div> | 							</div> | ||||||
|  |  | ||||||
|  | @ -7,6 +7,7 @@ | ||||||
| 		<%= f.hidden_field :public_r_tag_object_id, :value => @part.page.id %> | 		<%= f.hidden_field :public_r_tag_object_id, :value => @part.page.id %> | ||||||
| 		<%#= f.select :public_r_tag_object_id, options_for_select([t(:horizontal), t(:vertical)], t(:horizontal)) %>	 | 		<%#= f.select :public_r_tag_object_id, options_for_select([t(:horizontal), t(:vertical)], t(:horizontal)) %>	 | ||||||
| 	<% elsif @r_tag.eql?('sitemap') %> | 	<% elsif @r_tag.eql?('sitemap') %> | ||||||
|  | 	<% elsif @r_tag.eql?('breadcrumb') %> | ||||||
| 	<% else %> | 	<% else %> | ||||||
| 		<%= f.select :public_r_tag_object_id, options_from_collection_for_select(@tag_objects, :id, :title, :selected => @part.public_r_tag_object_id) %> | 		<%= f.select :public_r_tag_object_id, options_from_collection_for_select(@tag_objects, :id, :title, :selected => @part.public_r_tag_object_id) %> | ||||||
| 	<% end %> | 	<% end %> | ||||||
|  |  | ||||||
|  | @ -0,0 +1,18 @@ | ||||||
|  | 			<div id="module-nav"> | ||||||
|  |                 <div class="arrow_next pull-right"><i class="icon-chevron-right"></i></div> | ||||||
|  |                 <div class="arrow_prev pull-left"><i class="icon-chevron-left"></i></div> | ||||||
|  |                 <div class="module-nav-view"> | ||||||
|  |                     <ul class="nav nav-pills"> | ||||||
|  |                         <%= content_tag :li, :class=>(params[:show_plugin_profile].nil? ? "active" : nil) do %> | ||||||
|  |                             <%= link_to t(:all_plugin_summary)%> | ||||||
|  |                         <% end -%> | ||||||
|  |                         <% @plugins.each do |plugin| %> | ||||||
|  |                             <%= content_tag :li, :class=>(params[:show_plugin_profile] == plugin.name ? "active" : nil) do %> | ||||||
|  |                                 <%= link_to plugin.name, admin_plugins_path(:show_plugin_profile => plugin.name) %> | ||||||
|  |                             <% end -%>     | ||||||
|  |                         <% end -%> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |                     </ul> | ||||||
|  |                 </div> | ||||||
|  |             </div> | ||||||
|  | @ -4,23 +4,6 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|         <div id="isotope" class="user-data"> |         <div id="isotope" class="user-data"> | ||||||
|             <div id="module-nav"> |             <%= render :partial => 'plugin_list' %> | ||||||
|                 <div class="arrow_next pull-right"><i class="icon-chevron-right"></i></div> |  | ||||||
|                 <div class="arrow_prev pull-left"><i class="icon-chevron-left"></i></div> |  | ||||||
|                 <div class="module-nav-view"> |  | ||||||
|                     <ul class="nav nav-pills"> |  | ||||||
|                         <%= content_tag :li, :class=>(params[:show_plugin_profile].nil? ? "active" : nil) do %> |  | ||||||
|                             <%= link_to t(:all_plugin_summary)%> |  | ||||||
|                         <% end -%> |  | ||||||
|                         <% @plugins.each do |plugin| %> |  | ||||||
|                             <%= content_tag :li, :class=>(params[:show_plugin_profile] == plugin.name ? "active" : nil) do %> |  | ||||||
|                                 <%= link_to plugin.name, :show_plugin_profile => plugin.name %> |  | ||||||
|                             <% end -%>     |  | ||||||
|                         <% end -%> |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|                     </ul> |  | ||||||
|                 </div> |  | ||||||
|             </div> |  | ||||||
|             <%= render :partial => @right_partial %> |             <%= render :partial => @right_partial %> | ||||||
|         </div> |         </div> | ||||||
|  | @ -10,6 +10,17 @@ | ||||||
|           <%= hidden_field "#{@field_name}[attribute_fields][#{@af_counter}]","to_delete",:value=>false,:class=>"attribute_field_to_delete"%> |           <%= hidden_field "#{@field_name}[attribute_fields][#{@af_counter}]","to_delete",:value=>false,:class=>"attribute_field_to_delete"%> | ||||||
|           <a class="btn btn-small pull-right btn-danger remove_attribute"><i class="icon-trash icon-large"></i> <%= t(:delete_)%></a> |           <a class="btn btn-small pull-right btn-danger remove_attribute"><i class="icon-trash icon-large"></i> <%= t(:delete_)%></a> | ||||||
|           <div class="clear"> |           <div class="clear"> | ||||||
|  |               <div class="control-group pull-left"> | ||||||
|  |                   <label class="control-label" for="key"><%= t(:key) %></label> | ||||||
|  |                   <div class="multipleInput"> | ||||||
|  |                       <div class="controls"> | ||||||
|  |                         <%= text_field "#{@field_name}[attribute_fields][#{@af_counter}]","key",:value=>attribute_field.key%> | ||||||
|  |                       </div> | ||||||
|  |                   </div> | ||||||
|  |               </div> | ||||||
|  |               <%= render :partial=>"shared/attribute_field/placeholder_block",:locals=>{:values=>attribute_field.title_translations,:class_ext=>"pull-left",:label_ext=>t(:name),:field_name=>"#{@field_name}[attribute_fields][#{@af_counter}][title_translations]"}%> | ||||||
|  | 			   | ||||||
|  | 			   | ||||||
| 				<div class="control-group"> | 				<div class="control-group"> | ||||||
| 					<label class="control-label" for="key"><%= t(:to_search) %></label> | 					<label class="control-label" for="key"><%= t(:to_search) %></label> | ||||||
| 					<div class="controls"> | 					<div class="controls"> | ||||||
|  | @ -21,15 +32,8 @@ | ||||||
| 						</label>  | 						</label>  | ||||||
| 					</div> | 					</div> | ||||||
| 				</div> | 				</div> | ||||||
|               <div class="control-group pull-left"> | 				 | ||||||
|                   <label class="control-label" for="key"><%= t(:key) %></label> | 				 | ||||||
|                   <div class="multipleInput"> |  | ||||||
|                       <div class="controls"> |  | ||||||
|                         <%= text_field "#{@field_name}[attribute_fields][#{@af_counter}]","key",:value=>attribute_field.key%> |  | ||||||
|                       </div> |  | ||||||
|                   </div> |  | ||||||
|               </div> |  | ||||||
|               <%= render :partial=>"shared/attribute_field/placeholder_block",:locals=>{:values=>attribute_field.title_translations,:class_ext=>"pull-left",:label_ext=>t(:name),:field_name=>"#{@field_name}[attribute_fields][#{@af_counter}][title_translations]"}%> |  | ||||||
|               <div class="control-group pull-left"> |               <div class="control-group pull-left"> | ||||||
|                   <label class="control-label" for=""><%= t(:type)%></label> |                   <label class="control-label" for=""><%= t(:type)%></label> | ||||||
|                   <div class="controls"> |                   <div class="controls"> | ||||||
|  | @ -46,7 +50,7 @@ | ||||||
|       <div class="<%= attribute_field.disabled ?  'hide' : ''%>"> |       <div class="<%= attribute_field.disabled ?  'hide' : ''%>"> | ||||||
|           <%= content_tag :div,:class=>show_type_panel(attribute_field,"typeA") do%> |           <%= content_tag :div,:class=>show_type_panel(attribute_field,"typeA") do%> | ||||||
|               <div class="control-group"> |               <div class="control-group"> | ||||||
|                   <label class="control-label"><%= t(:options)%></label> |                   <label class="control-label"><%= t(:enabled_for)%></label> | ||||||
|                   <div class="controls"> |                   <div class="controls"> | ||||||
|                       <label class="checkbox inline"> |                       <label class="checkbox inline"> | ||||||
|                             <%= check_box_tag("#{@field_name}[attribute_fields][#{@af_counter}][typeA][cross_lang]","true",attribute_field["typeA"]["cross_lang"]) %> |                             <%= check_box_tag("#{@field_name}[attribute_fields][#{@af_counter}][typeA][cross_lang]","true",attribute_field["typeA"]["cross_lang"]) %> | ||||||
|  | @ -103,7 +107,7 @@ | ||||||
|           <% end %> |           <% end %> | ||||||
|           <%= content_tag :div,:class=>show_type_panel(attribute_field,"typeD") do%> |           <%= content_tag :div,:class=>show_type_panel(attribute_field,"typeD") do%> | ||||||
|               <div class="control-group"> |               <div class="control-group"> | ||||||
|                   <label class="control-label"><%= t(:options)%></label> |                   <label class="control-label"><%= t(:enabled_for)%></label> | ||||||
|                   <div class="controls"> |                   <div class="controls"> | ||||||
|                       <label class="checkbox inline"> |                       <label class="checkbox inline"> | ||||||
|                         <%= check_box_tag("#{@field_name}[attribute_fields][#{@af_counter}][typeD][cross_lang]","true",attribute_field["typeD"]["cross_lang"]) %> |                         <%= check_box_tag("#{@field_name}[attribute_fields][#{@af_counter}][typeD][cross_lang]","true",attribute_field["typeD"]["cross_lang"]) %> | ||||||
|  |  | ||||||
|  | @ -5,6 +5,18 @@ | ||||||
|                                         <div class="form-horizontal"> |                                         <div class="form-horizontal"> | ||||||
|                         <div class="clear"> |                         <div class="clear"> | ||||||
| 							 | 							 | ||||||
|  |                             <div class="control-group pull-left"> | ||||||
|  |                                 <label class="control-label" for="key"><%= t(:key) %></label> | ||||||
|  |                                 <div class="controls"> | ||||||
|  |                                     <% if @sub_attribute.new_record? %> | ||||||
|  |                                         <%= f.text_field :key, :placeholder => t(:key) %> | ||||||
|  |                                     <% else %> | ||||||
|  |                                         <div><%= @sub_attribute.key%></div> | ||||||
|  |                                     <% end %> | ||||||
|  |                                 </div> | ||||||
|  |                             </div> | ||||||
|  |                             <%= render :partial=>"shared/attribute_field/placeholder_block",:locals=>{:values=>@sub_attribute.title_translations,:class_ext=>"pull-left",:label_ext=>t(:item_name),:field_name=>"sub_role[title_translations]"}%> | ||||||
|  | 						 | ||||||
|                             <div class="control-group pull-left"> |                             <div class="control-group pull-left"> | ||||||
|                                 <label class="control-label" for="key"><%= t(:to_search) %></label> |                                 <label class="control-label" for="key"><%= t(:to_search) %></label> | ||||||
|                                 <div class="controls"> |                                 <div class="controls"> | ||||||
|  | @ -19,17 +31,6 @@ | ||||||
|                                 </div> |                                 </div> | ||||||
|                             </div> |                             </div> | ||||||
| 							 | 							 | ||||||
|                             <div class="control-group pull-left"> |  | ||||||
|                                 <label class="control-label" for="key"><%= t(:key) %></label> |  | ||||||
|                                 <div class="controls"> |  | ||||||
|                                     <% if @sub_attribute.new_record? %> |  | ||||||
|                                         <%= f.text_field :key, :placeholder => t(:key) %> |  | ||||||
|                                     <% else %> |  | ||||||
|                                         <div><%= @sub_attribute.key%></div> |  | ||||||
|                                     <% end %> |  | ||||||
|                                 </div> |  | ||||||
|                             </div> |  | ||||||
|                             <%= render :partial=>"shared/attribute_field/placeholder_block",:locals=>{:values=>@sub_attribute.title_translations,:class_ext=>"pull-left",:label_ext=>t(:item_name),:field_name=>"sub_role[title_translations]"}%> |  | ||||||
|                         </div> |                         </div> | ||||||
|                     </div> |                     </div> | ||||||
|                 </div> |                 </div> | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
|             <div class="site-map role-block"> |             <div class="site-map role-block"> | ||||||
|                  |                  | ||||||
| 				<div class="map-block back attributes"> | 				<div class="map-block back attributes"> | ||||||
| 					<h4><span><%=  @attribute.title+ t(:attributes)%></span></h4> | 					<h4><span><%=  @attribute.title + t(:role)%></span></h4> | ||||||
| 					<div id="attribute_field_list"> | 					<div id="attribute_field_list"> | ||||||
| 					<%= render :partial=>"attribute_field",:collection=>@attribute.attribute_fields%> | 					<%= render :partial=>"attribute_field",:collection=>@attribute.attribute_fields%> | ||||||
| 					</div> | 					</div> | ||||||
|  |  | ||||||
|  | @ -56,5 +56,5 @@ | ||||||
| </table> | </table> | ||||||
| 
 | 
 | ||||||
| <div class="form-actions form-fixed pagination-right"> | <div class="form-actions form-fixed pagination-right"> | ||||||
| 	<%= link_to content_tag(:i,t(:new_sub_role),:class=>"icon-plus icon-white"),eval("admin_#{@attribute_type}_add_sub_role_path(@attribute)"),:class=>"btn btn-primary pull-right"%> | 	<%= link_to content_tag(:i,t("new.sub_role"),:class=>"icon-plus icon-white"),eval("admin_#{@attribute_type}_add_sub_role_path(@attribute)"),:class=>"btn btn-primary pull-right"%> | ||||||
| </div> | </div> | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
|             <div class="site-map role-block"> |             <div class="site-map role-block"> | ||||||
|                  |                  | ||||||
| 				<div class="map-block back attributes"> | 				<div class="map-block back attributes"> | ||||||
| 					<h4><span><%=  @attribute.title+ t(:attributes)%> - <%=  @sub_attribute.title %></span></h4> | 					<h4><span><%=  @attribute.title+ t(:role)%> - <%=  @sub_attribute.title %></span></h4> | ||||||
| 					<div id="attribute_field_list"> | 					<div id="attribute_field_list"> | ||||||
| 					<%= render :partial=>"attribute_field",:collection=>@sub_attribute.attribute_fields%> | 					<%= render :partial=>"attribute_field",:collection=>@sub_attribute.attribute_fields%> | ||||||
| 					</div> | 					</div> | ||||||
|  |  | ||||||
|  | @ -1,23 +0,0 @@ | ||||||
| <div class="site-map"> |  | ||||||
|   <% @items.each_with_index do |item, i| %> |  | ||||||
|     <div class="map-block"> |  | ||||||
|       <h4><%= i+1 %> <a href='<%= item.path %>'><%= item.title %></a></h4> |  | ||||||
|       <ul> |  | ||||||
|         <% item.children.each_with_index do |child, ii| %> |  | ||||||
|           <li class="clear"><%= "#{i+1}-#{ii+1}" %> <a href='<%= child.path %>'><%= child.title %></a></span></li> |  | ||||||
|         <% end if item.children %> |  | ||||||
|       </ul> |  | ||||||
|     </div> |  | ||||||
|   <% end %> |  | ||||||
| </div> |  | ||||||
| 
 |  | ||||||
| <%= javascript_include_tag "lib/jquery.masonry.min.js" %> |  | ||||||
| <script> |  | ||||||
|   $(document).ready(function(){ |  | ||||||
|     $('.site-map').masonry({ |  | ||||||
|       itemSelector: '.map-block', |  | ||||||
|       columnWidth: 220, |  | ||||||
|       isAnimated: true |  | ||||||
|     }); |  | ||||||
|   }); |  | ||||||
| </script> |  | ||||||
|  | @ -3,16 +3,24 @@ | ||||||
|     <%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('users_new_interface')) do -%> |     <%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('users_new_interface')) do -%> | ||||||
|       <%= content_tag :li, link_to((t(:all_member) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, admin_users_new_interface_index_path), :class => active_for_action('users_new_interface', 'index') %> |       <%= content_tag :li, link_to((t(:all_member) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, admin_users_new_interface_index_path), :class => active_for_action('users_new_interface', 'index') %> | ||||||
|       <%= content_tag :li, link_to((t(:add_member) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, new_admin_users_new_interface_path), :class => active_for_action('users_new_interface', 'new') if (is_admin? rescue nil) %> |       <%= content_tag :li, link_to((t(:add_member) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, new_admin_users_new_interface_path), :class => active_for_action('users_new_interface', 'new') if (is_admin? rescue nil) %> | ||||||
|       <%= content_tag :li, link_to((t(:roles) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe,admin_roles_path ), :class => active_for_action('users_new_interfacexx', 'index')  if (is_admin? rescue nil) %> |       <%= content_tag :li, link_to((t(:member_authorization) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, '#'), :class => active_for_action('users_new_interfacexx', 'index')  if (is_admin? rescue nil) %> | ||||||
|       <%= content_tag :li, link_to((t(:info) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, edit_admin_info_path(Info.first.id.to_s)), :class => active_for_action('users_new_interfacexx', 'index') if (is_admin? rescue nil) %> |       <%= content_tag :li, link_to((t(:member_registration) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, '#'), :class => active_for_action('users_new_interfacexx', 'index')  if (is_admin? rescue nil) %> | ||||||
|       <%= content_tag :li, link_to((t(:authorigation) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, '#'), :class => active_for_action('users_new_interfacexx', 'index')  if (is_admin? rescue nil) %> |       <%= content_tag :li, link_to((t(:member_role) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe,admin_roles_path ), :class => active_for_action('users_new_interfacexx', 'index')  if (is_admin? rescue nil) %> | ||||||
|       <%= content_tag :li, link_to((t(:registrant) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, '#'), :class => active_for_action('users_new_interfacexx', 'index')  if (is_admin? rescue nil) %> |       <%= content_tag :li, link_to((t(:member_info) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, edit_admin_info_path(Info.first.id.to_s)), :class => active_for_action('users_new_interfacexx', 'index') if (is_admin? rescue nil) %> | ||||||
|     <% end -%> |     <% end -%> | ||||||
| <% end -%> | <% end -%> | ||||||
| 
 | 
 | ||||||
| <%= content_tag :li, :class => active_for_controllers('plugins')  do -%> | <%= content_tag :li, :class => active_for_controllers('plugins')  do -%> | ||||||
|   <%= link_to content_tag(:i, nil, :class => 'icons-pie')+ content_tag(:span, t(:analysis)), admin_plugins_path %> |   <%= link_to content_tag(:i, nil, :class => 'icons-graduation')+ content_tag(:span, t(:academic_info)), admin_plugins_path %> | ||||||
|     <%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('plugins')) do -%> |     <%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('plugins')) do -%> | ||||||
|       <%= content_tag :li, link_to((t(:all_plugins) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, admin_plugins_path), :class => active_for_action('users_new_interface', 'index') %> |       <%= content_tag :li, link_to((t(:list_) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, admin_plugins_path), :class => active_for_action('users_new_interface', 'index') %> | ||||||
|     <% end -%> |     <% end -%> | ||||||
| <% end -%> | <% end -%> | ||||||
|  | 
 | ||||||
|  | <%= content_tag :li, :class => active_for_controllers('plugins')  do -%> | ||||||
|  |   <%= link_to content_tag(:i, nil, :class => 'icons-pie')+ content_tag(:span, t(:analysis)), '#' %> | ||||||
|  | <% end -%> | ||||||
|  | 
 | ||||||
|  | <%= content_tag :li, :class => active_for_controllers('plugins')  do -%> | ||||||
|  |   <%= link_to content_tag(:i, nil, :class => 'icons-layout')+ content_tag(:span, t(:groups)), '#' %> | ||||||
|  | <% end -%> | ||||||
|  | @ -2,10 +2,11 @@ | ||||||
|                     <td class="span1"><% if is_admin? %><input type="checkbox"><% end%></td> |                     <td class="span1"><% if is_admin? %><input type="checkbox"><% end%></td> | ||||||
|                     <td class="span3"> |                     <td class="span3"> | ||||||
|                         <div class="label-group"> |                         <div class="label-group"> | ||||||
|                             <div class="label-td"><!--  |                             <div class="label-td"> | ||||||
|                                 <span class="label label-teacher"># TODO:Teacher</span> | 							<% user_for_listing.roles.each do |rf| %> | ||||||
|                                 <span class="label label-student"># TODO:Student</span> | 							<% @roledata = Role.find(rf.id) %> | ||||||
|                                 <span class="label label-staff"># TODO:Staff</span> --> | 							<span class="label label-<%= @roledata.key %>"><%= @roledata.title %></span> | ||||||
|  | 							<% end %> | ||||||
|                             </div> |                             </div> | ||||||
|                         </div> |                         </div> | ||||||
|                     </td> |                     </td> | ||||||
|  |  | ||||||
|  | @ -21,6 +21,7 @@ | ||||||
| 
 | 
 | ||||||
|     <%= form_for @user, :url => admin_users_new_interface_path(@user), :html => { :multipart => true } do |f| %> |     <%= form_for @user, :url => admin_users_new_interface_path(@user), :html => { :multipart => true } do |f| %> | ||||||
|       <%= f.error_messages %> |       <%= f.error_messages %> | ||||||
|  |       <%= render :partial => 'user_basic', :locals => {:f => f}%> | ||||||
|       <%= render :partial => 'form', :locals => { :f => f } %> |       <%= render :partial => 'form', :locals => { :f => f } %> | ||||||
|       <div class="button_bar"> |       <div class="button_bar"> | ||||||
|         <%= link_back %> |         <%= link_back %> | ||||||
|  |  | ||||||
|  | @ -11,7 +11,7 @@ | ||||||
|       <% @data.each do |row_data| %> |       <% @data.each do |row_data| %> | ||||||
|         <tr> |         <tr> | ||||||
|           <% @fields.each do |field|%> |           <% @fields.each do |field|%> | ||||||
|               <td><%= content_tag(:span,link_to_field(row_data,field[0],field[2]),:class=>field[1])%></td> |             <td><%= content_tag(:span,link_to_field(row_data,field[0], field[2], {orig_page: @page_id.to_s}),:class=>field[1])%></td> | ||||||
|           <% end %> |           <% end %> | ||||||
|         </tr> |         </tr> | ||||||
|       <% end %> |       <% end %> | ||||||
|  | @ -7,7 +7,7 @@ | ||||||
|         </div> |         </div> | ||||||
|         <div class="wrap"> |         <div class="wrap"> | ||||||
|           <% @fields.each do |field|%> |           <% @fields.each do |field|%> | ||||||
|               <%= content_tag(:span,link_to_field(row_data,field[0]),:class=>field[1])%> |               <%= content_tag(:span,link_to_field(row_data,field[0], field[2], {orig_page: @page_id.to_s}),:class=>field[1])%> | ||||||
|           <% end %> |           <% end %> | ||||||
|         </div> |         </div> | ||||||
|       <% end %> |       <% end %> | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
|     <% @data.each do |row_data| %> |     <% @data.each do |row_data| %> | ||||||
|       <%= content_tag(:li) do %> |       <%= content_tag(:li) do %> | ||||||
|         <% @fields.each do |field|%> |         <% @fields.each do |field|%> | ||||||
|             <%= content_tag(:span,link_to_field(row_data,field[0]),:class=>field[1])%> |             <%= content_tag(:span, link_to_field(row_data,field[0], field[2], {orig_page: @page_id.to_s}),:class=>field[1])%> | ||||||
|         <% end %> |         <% end %> | ||||||
|       <% end %> |       <% end %> | ||||||
|     <% end %> |     <% end %> | ||||||
|  | @ -0,0 +1,4 @@ | ||||||
|  | <%= render @partial %> | ||||||
|  | <% if @paginate %> | ||||||
|  |   <%= paginate @data, :param_name => :page_main, :params => {:same_page_id => @page_id} %> | ||||||
|  | <% end %> | ||||||
|  | @ -13,7 +13,7 @@ | ||||||
| 
 | 
 | ||||||
|         <li class="dock_item"><a callback-method='initializeJournalPapers' href="<%= panel_personal_journal_desktop_journal_p_path %>" class="widget_fn wh3 hh3" id='d_journal_p' custom-load="journal" onclick="return false;"><span class="widget_icon"><img src="" alt="Journal Papers" id="journal_p_icon" width="30" height="30"/></span></a></li> |         <li class="dock_item"><a callback-method='initializeJournalPapers' href="<%= panel_personal_journal_desktop_journal_p_path %>" class="widget_fn wh3 hh3" id='d_journal_p' custom-load="journal" onclick="return false;"><span class="widget_icon"><img src="" alt="Journal Papers" id="journal_p_icon" width="30" height="30"/></span></a></li> | ||||||
| 
 | 
 | ||||||
|         <li class="dock_item"><a callback-method='initializeConference' href="<%= panel_personal_conference_desktop_conference_p_path %>" class="widget_fn wh3 hh3" id='d_conference_p' custom-load="conference" onclick="return false;"><span class="widget_icon"><img src="" alt="Conference Papers" id="conference_p_icon" width="30" height="30"/></span></a></li> |         <li class="dock_item"><a callback-method='initializeConference' href="<%= panel_personal_conference_desktop_conference_window_path %>" class="widget_fn wh3 hh3" id='d_conference_p' custom-load="conference" onclick="return false;"><span class="widget_icon"><img src="" alt="Conference Papers" id="conference_p_icon" width="30" height="30"/></span></a></li> | ||||||
| 
 | 
 | ||||||
|         <li class="dock_item"><a callback-method='initializeBooks' href="<%= desktop_publications_books_path %>" class="widget_fn wh3 hh3" id='d_books' onclick="return false;"><span class="widget_icon"><img src="" alt="Books" id="books_icon" width="30" height="30"/></span></a></li> |         <li class="dock_item"><a callback-method='initializeBooks' href="<%= desktop_publications_books_path %>" class="widget_fn wh3 hh3" id='d_books' onclick="return false;"><span class="widget_icon"><img src="" alt="Books" id="books_icon" width="30" height="30"/></span></a></li> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -0,0 +1,15 @@ | ||||||
|  | <% unless @ancestors.blank? %> | ||||||
|  | <ul class="breadcrumb"> | ||||||
|  |   <% @ancestors.each_with_index do |node, i| %> | ||||||
|  |     <% last = i == @ancestors.size-1 %> | ||||||
|  |     <li class='<%= 'active' if last %>'> | ||||||
|  |       <% if last %> | ||||||
|  |         <%= node.title %> | ||||||
|  |       <% else %> | ||||||
|  |         <%= link_to node.title, "/#{node.path}"  %> | ||||||
|  |         <span class="divider">/</span> | ||||||
|  |       <% end %> | ||||||
|  |     </li> | ||||||
|  |   <% end %> | ||||||
|  | </ul> | ||||||
|  | <% end %> | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| <% if @menu_page && @menu_page.visible_children.size > 0 %> | <% if @menu_page && @menu_page.visible_children.size > 0 %> | ||||||
|   <div class='category_list'> |   <div class='category_list'> | ||||||
|     <h3 class='h3'><%= @menu_page.title %></h3> |     <!-- <h3 class='h3'><%#= @menu_page.title %></h3> --> | ||||||
|     <ul class='list'> |     <ul class='list'> | ||||||
|       <% @menu_page.visible_children.each do |child| %> |       <% @menu_page.visible_children.each do |child| %> | ||||||
|         <li class="<%= @page_id.eql?(child.id) ? 'active' : nil %>"> |         <li class="<%= @page_id.eql?(child.id) ? 'active' : nil %>"> | ||||||
|  |  | ||||||
|  | @ -10,6 +10,17 @@ | ||||||
|           <%= hidden_field "info[attribute_fields][#{@af_counter}]","to_delete",:value=>false,:class=>"attribute_field_to_delete"%> |           <%= hidden_field "info[attribute_fields][#{@af_counter}]","to_delete",:value=>false,:class=>"attribute_field_to_delete"%> | ||||||
|           <a class="btn btn-small pull-right btn-danger remove_attribute"><i class="icon-trash icon-large"></i> <%= t(:delete_)%></a> |           <a class="btn btn-small pull-right btn-danger remove_attribute"><i class="icon-trash icon-large"></i> <%= t(:delete_)%></a> | ||||||
|           <div class="clear"> |           <div class="clear"> | ||||||
|  |               <div class="control-group pull-left"> | ||||||
|  |                   <label class="control-label" for="key"><%= t(:key) %></label> | ||||||
|  |                   <div class="multipleInput"> | ||||||
|  |                       <div class="controls"> | ||||||
|  |                         <%= text_field "info[attribute_fields][#{@af_counter}]","key",:value=>attribute_field.key%> | ||||||
|  |                       </div> | ||||||
|  |                   </div> | ||||||
|  |               </div> | ||||||
|  |               <%= render :partial=>"shared/attribute_field/placeholder_block",:locals=>{:values=>attribute_field.title_translations,:class_ext=>"pull-left",:label_ext=>t(:name),:field_name=>"info[attribute_fields][#{@af_counter}][title_translations]"}%> | ||||||
|  | 			   | ||||||
|  | 			   | ||||||
| 				<div class="control-group"> | 				<div class="control-group"> | ||||||
| 					<label class="control-label" for="key"><%= t(:to_search) %></label> | 					<label class="control-label" for="key"><%= t(:to_search) %></label> | ||||||
| 					<div class="controls"> | 					<div class="controls"> | ||||||
|  | @ -21,15 +32,7 @@ | ||||||
| 						</label>  | 						</label>  | ||||||
| 					</div> | 					</div> | ||||||
| 				</div> | 				</div> | ||||||
|               <div class="control-group pull-left"> | 				 | ||||||
|                   <label class="control-label" for="key"><%= t(:key) %></label> |  | ||||||
|                   <div class="multipleInput"> |  | ||||||
|                       <div class="controls"> |  | ||||||
|                         <%= text_field "info[attribute_fields][#{@af_counter}]","key",:value=>attribute_field.key%> |  | ||||||
|                       </div> |  | ||||||
|                   </div> |  | ||||||
|               </div> |  | ||||||
|               <%= render :partial=>"shared/attribute_field/placeholder_block",:locals=>{:values=>attribute_field.title_translations,:class_ext=>"pull-left",:label_ext=>t(:name),:field_name=>"info[attribute_fields][#{@af_counter}][title_translations]"}%> |  | ||||||
|               <div class="control-group pull-left"> |               <div class="control-group pull-left"> | ||||||
|                   <label class="control-label" for=""><%= t(:type)%></label> |                   <label class="control-label" for=""><%= t(:type)%></label> | ||||||
|                   <div class="controls"> |                   <div class="controls"> | ||||||
|  | @ -46,7 +49,7 @@ | ||||||
|       <div class="<%= attribute_field.disabled ?  'hide' : ''%>"> |       <div class="<%= attribute_field.disabled ?  'hide' : ''%>"> | ||||||
|           <%= content_tag :div,:class=>show_type_panel(attribute_field,"typeA") do%> |           <%= content_tag :div,:class=>show_type_panel(attribute_field,"typeA") do%> | ||||||
|               <div class="control-group"> |               <div class="control-group"> | ||||||
|                   <label class="control-label"><%= t(:options)%></label> |                   <label class="control-label"><%= t(:enabled_for)%></label> | ||||||
|                   <div class="controls"> |                   <div class="controls"> | ||||||
|                       <label class="checkbox inline"> |                       <label class="checkbox inline"> | ||||||
|                             <%= check_box_tag("info[attribute_fields][#{@af_counter}][typeA][cross_lang]","true",attribute_field["typeA"]["cross_lang"]) %> |                             <%= check_box_tag("info[attribute_fields][#{@af_counter}][typeA][cross_lang]","true",attribute_field["typeA"]["cross_lang"]) %> | ||||||
|  | @ -103,7 +106,7 @@ | ||||||
|           <% end %> |           <% end %> | ||||||
|           <%= content_tag :div,:class=>show_type_panel(attribute_field,"typeD") do%> |           <%= content_tag :div,:class=>show_type_panel(attribute_field,"typeD") do%> | ||||||
|               <div class="control-group"> |               <div class="control-group"> | ||||||
|                   <label class="control-label"><%= t(:options)%></label> |                   <label class="control-label"><%= t(:enabled_for)%></label> | ||||||
|                   <div class="controls"> |                   <div class="controls"> | ||||||
|                       <label class="checkbox inline"> |                       <label class="checkbox inline"> | ||||||
|                         <%= check_box_tag("info[attribute_fields][#{@af_counter}][typeD][cross_lang]","true",attribute_field["typeD"]["cross_lang"]) %> |                         <%= check_box_tag("info[attribute_fields][#{@af_counter}][typeD][cross_lang]","true",attribute_field["typeD"]["cross_lang"]) %> | ||||||
|  |  | ||||||
|  | @ -2,7 +2,7 @@ | ||||||
|               <div class="control-group"> |               <div class="control-group"> | ||||||
|                 <%= hidden_field_tag "#{temp_field_name}[count]",((values.keys.collect{|t| t.to_i}.max rescue nil)  || 0 ),:class=>"list_count"%> |                 <%= hidden_field_tag "#{temp_field_name}[count]",((values.keys.collect{|t| t.to_i}.max rescue nil)  || 0 ),:class=>"list_count"%> | ||||||
|                 <%= hidden_field_tag "#{temp_field_name}[name]",field_name,:class=>"field_name"%> |                 <%= hidden_field_tag "#{temp_field_name}[name]",field_name,:class=>"field_name"%> | ||||||
|                   <label class="control-label" ><%= t(:list_)%></label> |                   <label class="control-label" ><%= t(:options)%></label> | ||||||
|                   <div class="multipleInput"> |                   <div class="multipleInput"> | ||||||
|                     <%if values.blank? %> |                     <%if values.blank? %> | ||||||
|                         <div class="controls"> |                         <div class="controls"> | ||||||
|  |  | ||||||
|  | @ -42,6 +42,7 @@ public_r_tags: | ||||||
|   - ad_banner |   - ad_banner | ||||||
|   - sub_menu |   - sub_menu | ||||||
|   - sitemap |   - sitemap | ||||||
|  |   - breadcrumb | ||||||
| 
 | 
 | ||||||
| page_part_kinds: | page_part_kinds: | ||||||
|   - text |   - text | ||||||
|  |  | ||||||
|  | @ -11,6 +11,7 @@ en: | ||||||
|       object: Access Denied for you don't have permission for this object |       object: Access Denied for you don't have permission for this object | ||||||
|       not_admin: Access Denied for you are not Admin |       not_admin: Access Denied for you are not Admin | ||||||
|   account_settings: Account settings   |   account_settings: Account settings   | ||||||
|  |   academic_info: Academic Info. | ||||||
|   action: Action |   action: Action | ||||||
|   ad: |   ad: | ||||||
|     chinese_1: 在套圖中出現次數 1次請輸入1 |     chinese_1: 在套圖中出現次數 1次請輸入1 | ||||||
|  | @ -40,8 +41,8 @@ en: | ||||||
|   add_attribute_field: Add attribute field |   add_attribute_field: Add attribute field | ||||||
|   add_image: Add image |   add_image: Add image | ||||||
|   add_item: Add item |   add_item: Add item | ||||||
|   add_member: Add member |   add_member: Create New Member | ||||||
|   add_more: Add more |   add_more: Exteudable Field | ||||||
|   address_modal: |   address_modal: | ||||||
|     default_title: Address |     default_title: Address | ||||||
|     street_address: Street address |     street_address: Street address | ||||||
|  | @ -55,7 +56,7 @@ en: | ||||||
|   all: All |   all: All | ||||||
|   all_content: All Content |   all_content: All Content | ||||||
|   all_file: All File |   all_file: All File | ||||||
|   all_member: All Member |   all_member: Member List | ||||||
|   all_plugin_summary: All plugin summary |   all_plugin_summary: All plugin summary | ||||||
|   all_plugins: All plugins |   all_plugins: All plugins | ||||||
|   always_display_title: Always displayed in the title bar |   always_display_title: Always displayed in the title bar | ||||||
|  | @ -126,20 +127,20 @@ en: | ||||||
|       paper: Paper was successfully created. |       paper: Paper was successfully created. | ||||||
|       user: User was successfully created. |       user: User was successfully created. | ||||||
|   create_: Create |   create_: Create | ||||||
|   cross_lang: 跨語言輸入 |   cross_lang: Enable Monolingual | ||||||
|   data: Data |   data: Data | ||||||
|   date: |   date: | ||||||
|     calendar: 紀年法 |     calendar: Calendar Era | ||||||
|     range: 本欄為時間區段 |     range: Enable Time Period | ||||||
|     format: 格式 |     format: 格式 | ||||||
|     tw_calendar: 民國 |     tw_calendar: R.O.C Year. | ||||||
|     minguo_calendar:  |     minguo_calendar:  | ||||||
|       after: 民國 |       after: 民國 | ||||||
|       before: 民前 |       before: 民前 | ||||||
|       first_year: 民國元年 |       first_year: 民國元年 | ||||||
|       year: 年 |       year: Year | ||||||
|       month: 月 |       month: Month | ||||||
|     west_calendar: 西元 |     west_calendar: A.C. | ||||||
|   date_: Date |   date_: Date | ||||||
|   dashboard: |   dashboard: | ||||||
|     bulletin: Announcement |     bulletin: Announcement | ||||||
|  | @ -177,6 +178,7 @@ en: | ||||||
|   end_date: End date |   end_date: End date | ||||||
|   errors: |   errors: | ||||||
|     at_least_one: must at least have one value |     at_least_one: must at least have one value | ||||||
|  |   field: Fields | ||||||
|   file:  |   file:  | ||||||
|     size: File size |     size: File size | ||||||
|     type: File type |     type: File type | ||||||
|  | @ -188,6 +190,7 @@ en: | ||||||
|   frequency: Frequency |   frequency: Frequency | ||||||
|   frontend_data_count: Frontend data count |   frontend_data_count: Frontend data count | ||||||
|   gallery: Gallery |   gallery: Gallery | ||||||
|  |   groups: Groups | ||||||
|   help: Help |   help: Help | ||||||
|   hidden: Hidden |   hidden: Hidden | ||||||
|   hide: Hide |   hide: Hide | ||||||
|  | @ -198,13 +201,13 @@ en: | ||||||
|   image: Image |   image: Image | ||||||
|   images: Images |   images: Images | ||||||
|   info: Information |   info: Information | ||||||
|   initial: 起始值 |   initial: Default Value | ||||||
|   intro: Introduction |   intro: Introduction | ||||||
|   is_published: Is published |   is_published: Is published | ||||||
|   item: Item |   item: Item | ||||||
|   item_name: Item name |   item_name: Name | ||||||
|   javascripts: Javascripts |   javascripts: Javascripts | ||||||
|   key: Key |   key: Index Keys | ||||||
|   last_modified: Last modified |   last_modified: Last modified | ||||||
|   layout: Layout |   layout: Layout | ||||||
|   link: Link |   link: Link | ||||||
|  | @ -247,6 +250,10 @@ en: | ||||||
|   markup_value: Markup value |   markup_value: Markup value | ||||||
|   me: Me |   me: Me | ||||||
|   member: Member |   member: Member | ||||||
|  |   member_authorization: Authorizations | ||||||
|  |   member_info: Profile Form | ||||||
|  |   member_registration: Registration Approval | ||||||
|  |   member_role: Member Roles | ||||||
|   menu_enabled_for: Menu enabled for |   menu_enabled_for: Menu enabled for | ||||||
|   module: Module |   module: Module | ||||||
|   module_authorization: Module Authorization |   module_authorization: Module Authorization | ||||||
|  | @ -265,7 +272,8 @@ en: | ||||||
|     page: New page |     page: New page | ||||||
|     user: New user |     user: New user | ||||||
|     info: New user information |     info: New user information | ||||||
|     role: New user role |     role: New role | ||||||
|  |     sub_role: New sub role | ||||||
|   new_: New |   new_: New | ||||||
|   news: News |   news: News | ||||||
|   no_: "No" |   no_: "No" | ||||||
|  | @ -291,7 +299,7 @@ en: | ||||||
|   password_current: Current password |   password_current: Current password | ||||||
|   pending: Pending |   pending: Pending | ||||||
|   picture: Picture |   picture: Picture | ||||||
|   placeholder: Placeholder |   placeholder: Field Hint | ||||||
|   plugins: Plugins |   plugins: Plugins | ||||||
|   postdate: Postdate |   postdate: Postdate | ||||||
|   posted_by: Posted by |   posted_by: Posted by | ||||||
|  | @ -310,6 +318,7 @@ en: | ||||||
|   rejected_reason_empty:  "Approval rejected, no referencable information"  |   rejected_reason_empty:  "Approval rejected, no referencable information"  | ||||||
|   related_links: Related Links |   related_links: Related Links | ||||||
|   role: Role |   role: Role | ||||||
|  |   role_field: Role Field | ||||||
|   Roles: Roles |   Roles: Roles | ||||||
|   ruling_site: Ruling Site |   ruling_site: Ruling Site | ||||||
|   search: |   search: | ||||||
|  | @ -355,6 +364,8 @@ en: | ||||||
|   status: Status |   status: Status | ||||||
|   structure: Structure |   structure: Structure | ||||||
|   sub_manager: SubManager |   sub_manager: SubManager | ||||||
|  |   sub_role: Sub Role | ||||||
|  |   sub_role_field: Sub Role Field | ||||||
|   subtitle: Subtitle |   subtitle: Subtitle | ||||||
|   submit: Submit |   submit: Submit | ||||||
|   submit_approval: Submit approval |   submit_approval: Submit approval | ||||||
|  | @ -376,10 +387,11 @@ en: | ||||||
|   theme: Theme |   theme: Theme | ||||||
|   themes: Themes |   themes: Themes | ||||||
|   title: Title |   title: Title | ||||||
|  |   to_search: Set as Search Key | ||||||
|   top: Top |   top: Top | ||||||
|   total_visitors: Total Visitors |   total_visitors: Total Visitors | ||||||
|   traffic: Traffic |   traffic: Traffic | ||||||
|   type: Type |   type: Field Type | ||||||
|   unit_name: Unit name |   unit_name: Unit name | ||||||
|   unzip_success: "App unzip procress is finished, please restart the server to apply effect" |   unzip_success: "App unzip procress is finished, please restart the server to apply effect" | ||||||
|   up_to_date: Up-to-date |   up_to_date: Up-to-date | ||||||
|  |  | ||||||
|  | @ -20,6 +20,7 @@ zh_tw: | ||||||
|       object: 拒絕存取,因你沒有權限 |       object: 拒絕存取,因你沒有權限 | ||||||
|       not_admin: 拒絕存取,因你不是此應用程式管理員 |       not_admin: 拒絕存取,因你不是此應用程式管理員 | ||||||
|   account_settings: 帳號設定 |   account_settings: 帳號設定 | ||||||
|  |   academic_info: 學術資訊 | ||||||
|   action: 操作 |   action: 操作 | ||||||
|   ad: |   ad: | ||||||
|     ab_fx: 轉場效果 |     ab_fx: 轉場效果 | ||||||
|  | @ -37,13 +38,26 @@ zh_tw: | ||||||
|     widget_info_for_ad_image_size: "此區塊圖片尺寸使用: %{best_size}" |     widget_info_for_ad_image_size: "此區塊圖片尺寸使用: %{best_size}" | ||||||
|   ad_banner: 廣告輪播 |   ad_banner: 廣告輪播 | ||||||
|   add: 新增 |   add: 新增 | ||||||
|  |   add_attribute_field: 新增欄位 | ||||||
|  |   add_image: Add image | ||||||
|   add_item: 新增項目 |   add_item: 新增項目 | ||||||
|  |   add_member: 新增成員 | ||||||
|  |   add_more: 可擴充欄位 | ||||||
|  |   address_modal: | ||||||
|  |     default_title: 地址 | ||||||
|  |     street_address: 街道地址 | ||||||
|  |     city: 城市 | ||||||
|  |     county: 縣市 | ||||||
|  |     zip: 郵遞區號 | ||||||
|  |     country: 國家/地區 | ||||||
|   addthis_tools: |   addthis_tools: | ||||||
|     add_to_bookmark: 加入書籤 |     add_to_bookmark: 加入書籤 | ||||||
|   admin: 管理員 |   admin: 管理員 | ||||||
|   all_content: 所有內容 |   all_content: 所有內容 | ||||||
|   all_file: 所有檔案 |   all_file: 所有檔案 | ||||||
|   all_member: 所有會員 |   all_member: 成員列表 | ||||||
|  |   all_plugin_summary: All plugin summary | ||||||
|  |   all_plugins: All plugins | ||||||
|   always_display_title: 永遠顯示標題 |   always_display_title: 永遠顯示標題 | ||||||
|   app_auth: |   app_auth: | ||||||
|     list_setting_result: 授權列表 |     list_setting_result: 授權列表 | ||||||
|  | @ -103,7 +117,21 @@ zh_tw: | ||||||
|       page: 頁面已成功建立 |       page: 頁面已成功建立 | ||||||
|       user: 使用者已成功建立 |       user: 使用者已成功建立 | ||||||
|   create_: 建立 |   create_: 建立 | ||||||
|  |   cross_lang: 啟用單語系 | ||||||
|   data: 資料 |   data: 資料 | ||||||
|  |   date: | ||||||
|  |     calendar: 紀年法 | ||||||
|  |     range: 時間區段設定 | ||||||
|  |     format: 格式 | ||||||
|  |     tw_calendar: 民國 | ||||||
|  |     minguo_calendar:  | ||||||
|  |       after: 民國 | ||||||
|  |       before: 民前 | ||||||
|  |       first_year: 民國元年 | ||||||
|  |       year: 年 | ||||||
|  |       month: 月 | ||||||
|  |     west_calendar: 西元 | ||||||
|  |   date_: Date | ||||||
|   dashboard: |   dashboard: | ||||||
|     bulletin: 公告 |     bulletin: 公告 | ||||||
|     news_bulletin: 新聞 |     news_bulletin: 新聞 | ||||||
|  | @ -162,6 +190,7 @@ zh_tw: | ||||||
|   end_date: 結束日期 |   end_date: 結束日期 | ||||||
|   errors: |   errors: | ||||||
|     at_least_one: 至少擁有一個值 |     at_least_one: 至少擁有一個值 | ||||||
|  |   field: 欄位 | ||||||
|   file:  |   file:  | ||||||
|     size: 檔案大小 |     size: 檔案大小 | ||||||
|     type: 檔案類型 |     type: 檔案類型 | ||||||
|  | @ -170,6 +199,9 @@ zh_tw: | ||||||
|   file_type: 檔案類型 |   file_type: 檔案類型 | ||||||
|   forgot_password: 忘記密碼? |   forgot_password: 忘記密碼? | ||||||
|   frequency: 頻率 |   frequency: 頻率 | ||||||
|  |   frontend_data_count: Frontend data count | ||||||
|  |   gallery: Gallery | ||||||
|  |   groups: 群組 | ||||||
|   help: 幫助 |   help: 幫助 | ||||||
|   hidden: 隱藏的 |   hidden: 隱藏的 | ||||||
|   hide: 隱藏 |   hide: 隱藏 | ||||||
|  | @ -178,10 +210,14 @@ zh_tw: | ||||||
|   horizontal: 水平的 |   horizontal: 水平的 | ||||||
|   hot: 熱門 |   hot: 熱門 | ||||||
|   image: 圖片 |   image: 圖片 | ||||||
|   info: 信息 |   images: Images | ||||||
|  |   info: 基本資料 | ||||||
|  |   initial: 預設值 | ||||||
|   intro: 簡介 |   intro: 簡介 | ||||||
|   is_published: 已發佈 |   is_published: 已發佈 | ||||||
|   item: 項目 |   item: 項目 | ||||||
|  |   item_name: 名稱 | ||||||
|  |   javascripts: Javascripts | ||||||
|   key: 索引 |   key: 索引 | ||||||
|   last_modified: 最後修改者 |   last_modified: 最後修改者 | ||||||
|   layout: 範本 |   layout: 範本 | ||||||
|  | @ -229,8 +265,15 @@ zh_tw: | ||||||
|     user_name: 電子郵件帳號 |     user_name: 電子郵件帳號 | ||||||
|     manager: 管理者 |     manager: 管理者 | ||||||
|   manager: 管理者 |   manager: 管理者 | ||||||
|  |   markup: 輸入模式 | ||||||
|  |   markup_options: Markup options | ||||||
|  |   markup_value: Markup value | ||||||
|   me: 我 |   me: 我 | ||||||
|   member: 會員 |   member: 成員 | ||||||
|  |   member_authorization: 成員權限 | ||||||
|  |   member_info: 基本資料表 | ||||||
|  |   member_registration: 註冊審核 | ||||||
|  |   member_role: 身份欄位 | ||||||
|   menu_enabled_for: 選單啟用 |   menu_enabled_for: 選單啟用 | ||||||
|   modal: |   modal: | ||||||
|     close: 關閉 |     close: 關閉 | ||||||
|  | @ -251,7 +294,9 @@ zh_tw: | ||||||
|     page: 新增頁面 |     page: 新增頁面 | ||||||
|     user: 新增使用者 |     user: 新增使用者 | ||||||
|     info: 新增使用者資訊 |     info: 新增使用者資訊 | ||||||
|     role: 新增使用者角色 |     role: 新增身份 | ||||||
|  |     sub_role: 新增子身份 | ||||||
|  |   new_: New | ||||||
|   news: 新聞 |   news: 新聞 | ||||||
|   no_: "不是" |   no_: "不是" | ||||||
|   no_deadline: 沒有期限 |   no_deadline: 沒有期限 | ||||||
|  | @ -276,6 +321,8 @@ zh_tw: | ||||||
|   password_current: 目前的密碼 |   password_current: 目前的密碼 | ||||||
|   pending: 待審核 |   pending: 待審核 | ||||||
|   picture: 圖片 |   picture: 圖片 | ||||||
|  |   placeholder: 欄位提示文字 | ||||||
|  |   plugins: Plugins | ||||||
|   postdate: 張貼日期 |   postdate: 張貼日期 | ||||||
|   posted_by: 張貼人 |   posted_by: 張貼人 | ||||||
|   preview: 預覽 |   preview: 預覽 | ||||||
|  | @ -290,9 +337,9 @@ zh_tw: | ||||||
|   rejected_reason: '拒絕原因:' |   rejected_reason: '拒絕原因:' | ||||||
|   rejected_reason_empty:  "拒絕核准, 沒有參考資訊"  |   rejected_reason_empty:  "拒絕核准, 沒有參考資訊"  | ||||||
|   related_links: 相關連結 |   related_links: 相關連結 | ||||||
|   remember_me: 記住我 |   role: 身份 | ||||||
|   role: 角色 |   role_field: 身份欄位 | ||||||
|   Roles: 角色 |   roles: 身份 | ||||||
|   ruling_site: 銳綸網站 |   ruling_site: 銳綸網站 | ||||||
|   search: |   search: | ||||||
|     domains: Google Search Domains |     domains: Google Search Domains | ||||||
|  | @ -333,6 +380,8 @@ zh_tw: | ||||||
|   status: 狀態 |   status: 狀態 | ||||||
|   structure: 結構 |   structure: 結構 | ||||||
|   sub_manager: 次管理員 |   sub_manager: 次管理員 | ||||||
|  |   sub_role: 子身份 | ||||||
|  |   sub_role_field: 子身份欄位 | ||||||
|   subtitle: 副標題 |   subtitle: 副標題 | ||||||
|   submit: 送出 |   submit: 送出 | ||||||
|   submit_approval: 送出已核准 |   submit_approval: 送出已核准 | ||||||
|  | @ -353,10 +402,11 @@ zh_tw: | ||||||
|   theme: 套用頁面樣式 |   theme: 套用頁面樣式 | ||||||
|   themes: 主題 |   themes: 主題 | ||||||
|   title: 標題 |   title: 標題 | ||||||
|  |   to_search: 加入搜尋條件 | ||||||
|   top: 置頂 |   top: 置頂 | ||||||
|   total_visitors: 總計造訪人次 |   total_visitors: 總計造訪人次 | ||||||
|   traffic: 流量 |   traffic: 流量 | ||||||
|   type: 類型 |   type: 欄位類型 | ||||||
|   unit_name: 單位名稱 |   unit_name: 單位名稱 | ||||||
|   up_to_date: 最新版本 |   up_to_date: 最新版本 | ||||||
|   update: |   update: | ||||||
|  |  | ||||||
|  | @ -209,11 +209,6 @@ Orbit::Application.routes.draw do | ||||||
|   match 'desktop_publications/books_list'=>'desktop_publications#books_list' |   match 'desktop_publications/books_list'=>'desktop_publications#books_list' | ||||||
|   match 'desktop_publications/books_add'=>'desktop_publications#books_add' |   match 'desktop_publications/books_add'=>'desktop_publications#books_add' | ||||||
| 
 | 
 | ||||||
|   match 'desktop_publications/conference_p' => 'desktop_publications#conference_p' |  | ||||||
|   match 'desktop_publications/conference_p_list/'=>'desktop_publications#conference_p_list' |  | ||||||
|   match 'desktop_publications/conference_p_add/'=>'desktop_publications#conference_p_add' |  | ||||||
|   # end |  | ||||||
| 
 |  | ||||||
|   # namespace :desktop_research do |   # namespace :desktop_research do | ||||||
|   match 'desktop_research/research_d' => 'desktop_research#research_d' |   match 'desktop_research/research_d' => 'desktop_research#research_d' | ||||||
|   match 'desktop_research/research_d_list/' => 'desktop_research#research_d_list' |   match 'desktop_research/research_d_list/' => 'desktop_research#research_d_list' | ||||||
|  | @ -255,7 +250,7 @@ Orbit::Application.routes.draw do | ||||||
|     end  |     end  | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   controller_paths :front, %w[show_banner show_footer show_menu show_page_sub_menu show_site_sub_menu show_sitemap] |   controller_paths :front, %w[show_breadcrumb show_banner show_footer show_menu show_page_sub_menu show_site_sub_menu show_sitemap] | ||||||
|   # controller_paths :mobile, %w[index announcement announcement_content dialog_contact dialog_copyright dialog_language map page page_content] |   # controller_paths :mobile, %w[index announcement announcement_content dialog_contact dialog_copyright dialog_language map page page_content] | ||||||
| 
 | 
 | ||||||
|   # scope 'app' do |   # scope 'app' do | ||||||
|  | @ -274,7 +269,9 @@ Orbit::Application.routes.draw do | ||||||
|     root :to => 'mobile#index', :as => 'mobile' |     root :to => 'mobile#index', :as => 'mobile' | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
| 
 |   match '/panel/orbit_app/widget/:type' => 'pages#index_from_link', :constraints => lambda { |request| | ||||||
|  |     request.query_string.include?("same_page_id=") | ||||||
|  |   } | ||||||
|   match '/panel/orbit_app/widget/:type' => 'default_widget#default_widget' |   match '/panel/orbit_app/widget/:type' => 'default_widget#default_widget' | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										45
									
								
								db/seeds.rb
								
								
								
								
							
							
						
						|  | @ -6,28 +6,53 @@ FactoryGirl.definition_file_paths = Dir["#{Rails.root}/vendor/built_in_modules/* | ||||||
| FactoryGirl.find_definitions | FactoryGirl.find_definitions | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| CoAuthorRelation.destroy_all | ConferenceCoAuthorRelation.destroy_all | ||||||
| CoAuthor.destroy_all | ConferenceCoAuthor.destroy_all | ||||||
| JournalLevelType.destroy_all | ConferencePaperType.destroy_all | ||||||
| WritingJournalFile.destroy_all | WritingConferenceFile.destroy_all | ||||||
| WritingJournal.destroy_all | WritingConference.destroy_all | ||||||
| #Dir[Rails.root.join("spec/factories/*.rb")].each {|f| require f} | #Dir[Rails.root.join("spec/factories/*.rb")].each {|f| require f} | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 10.size.times do | 2.times do | ||||||
|   FactoryGirl.create(:journal_level) |   FactoryGirl.create(:conference_paper_type) | ||||||
| end | end | ||||||
| 
 | 
 | ||||||
| 10.times do | 10.times do | ||||||
|   FactoryGirl.create(:relations) |   FactoryGirl.create(:conference_co_author_relation) | ||||||
| end | end | ||||||
| 
 | 
 | ||||||
| 50.times do | 50.times do | ||||||
|   FactoryGirl.create(:paper_record) |   FactoryGirl.create(:conference_co_author) | ||||||
| end | end | ||||||
| 
 | 
 | ||||||
| 50.times do | 50.times do | ||||||
|   FactoryGirl.create(:co_author_candidate) |   FactoryGirl.create(:writing_conference) | ||||||
| end | end | ||||||
| 
 | 
 | ||||||
| puts "Success!" | puts "Success!" | ||||||
|  | 
 | ||||||
|  | # ======= | ||||||
|  | # | ||||||
|  | #CoAuthorRelation.destroy_all | ||||||
|  | #CoAuthor.destroy_all | ||||||
|  | #JournalLevelType.destroy_all | ||||||
|  | #WritingJournalFile.destroy_all | ||||||
|  | #WritingJournal.destroy_all | ||||||
|  | # | ||||||
|  | #10.size.times do | ||||||
|  | #  FactoryGirl.create(:journal_level) | ||||||
|  | #end | ||||||
|  | # | ||||||
|  | #10.times do | ||||||
|  | #  FactoryGirl.create(:journal_relation) | ||||||
|  | #end | ||||||
|  | # | ||||||
|  | #50.times do | ||||||
|  | #  FactoryGirl.create(:journal) | ||||||
|  | #end | ||||||
|  | # | ||||||
|  | #50.times do | ||||||
|  | #  FactoryGirl.create(:journal_co_author) | ||||||
|  | #end | ||||||
|  | #puts "Success!" | ||||||
|  |  | ||||||
|  | @ -47,9 +47,11 @@ module OrbitApp | ||||||
|             @base_path = args[0][:base_path] |             @base_path = args[0][:base_path] | ||||||
|             @name = partial[0][:i18n].nil? ? name : lambda{ I18n.t(partial[0][:i18n]) }  |             @name = partial[0][:i18n].nil? ? name : lambda{ I18n.t(partial[0][:i18n]) }  | ||||||
|             @partial_path = '' |             @partial_path = '' | ||||||
|  |             @admin_partial_path = '' | ||||||
| 
 | 
 | ||||||
|             unless partial.nil? |             unless partial.nil? | ||||||
|               @partial_path = partial[0][:path] |               @partial_path = partial[0][:path] | ||||||
|  |               @admin_partial_path = partial[0][:admin_path] | ||||||
|             end |             end | ||||||
| 
 | 
 | ||||||
|             block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given? |             block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given? | ||||||
|  | @ -59,6 +61,10 @@ module OrbitApp | ||||||
|             return  @partial_path |             return  @partial_path | ||||||
|           end |           end | ||||||
| 
 | 
 | ||||||
|  |           def admin_partial_path | ||||||
|  |             return  @admin_partial_path | ||||||
|  |           end | ||||||
|  |      | ||||||
|       end |       end | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
|  |  | ||||||
|  | @ -30,6 +30,7 @@ module ParserBackEnd | ||||||
|     parse_images_edit(body, page) |     parse_images_edit(body, page) | ||||||
|     parse_footer_edit(body, page) |     parse_footer_edit(body, page) | ||||||
|     parse_sub_menu_edit(body, page) |     parse_sub_menu_edit(body, page) | ||||||
|  |     parse_breadcrumb_edit(body, page) | ||||||
|     parse_counter_edit(body) |     parse_counter_edit(body) | ||||||
|     public_r_tags.each do |tag| |     public_r_tags.each do |tag| | ||||||
|       send("parse_#{tag}s_edit", body, page, true) |       send("parse_#{tag}s_edit", body, page, true) | ||||||
|  |  | ||||||
|  | @ -144,6 +144,32 @@ module ParserCommon | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |   # breadcrumb | ||||||
|  |   def parse_breadcrumbs_edit(body = nil, page = nil, edit=nil) | ||||||
|  |     body.css('breadcrumb').each do |breadcrumb| | ||||||
|  |       ancestors = Page.find(page.id).ancestors_and_self rescue nil | ||||||
|  |       ancestors = nil if ancestors.size == 1 | ||||||
|  |       res = '' | ||||||
|  |       if ancestors | ||||||
|  |         res << "<ul class='breadcrumb'>" | ||||||
|  |         ancestors.each_with_index do |node, i| | ||||||
|  |           last = i == ancestors.size-1 | ||||||
|  |           res << "<li class=#{'active' if last}>" | ||||||
|  |           if last | ||||||
|  |             res << node.title | ||||||
|  |           else | ||||||
|  |             res << "<a herf='/#{node.path}'>#{node.title}</a>" | ||||||
|  |             res << "<span class='divider'>/</span>" | ||||||
|  |           end | ||||||
|  |           res << "</li>" | ||||||
|  |         end | ||||||
|  |         res << "</ul>" | ||||||
|  |       end | ||||||
|  |       fragment = Nokogiri::HTML::DocumentFragment.new(body, res) | ||||||
|  |       breadcrumb.swap(fragment) | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|   # page_footer |   # page_footer | ||||||
|   def parse_footer_edit(body, page) |   def parse_footer_edit(body, page) | ||||||
|     page_footer = body.css('.page_footer').first |     page_footer = body.css('.page_footer').first | ||||||
|  | @ -172,10 +198,23 @@ module ParserCommon | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |   def parse_breadcrumb_edit(body, page) | ||||||
|  |     page_breadcrumb = body.css('.page_breadcrumb').first | ||||||
|  |     if page_breadcrumb | ||||||
|  |       res = "<div id='#{page_breadcrumb['id']}', class='#{page_breadcrumb['class']}'>" | ||||||
|  |       res << @site.breadcrumb rescue nil | ||||||
|  |       res << "</div>" | ||||||
|  |       fragment = Nokogiri::HTML::DocumentFragment.new(body ,res) | ||||||
|  |       page_breadcrumb.swap(fragment) rescue nil | ||||||
|  |     else | ||||||
|  |       '' | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|   # sitemap |   # sitemap | ||||||
|   def parse_sitemaps_edit(body = nil, page = nil, edit=nil) |   def parse_sitemaps_edit(body = nil, page = nil, edit=nil) | ||||||
|     sitemap = body.css('sitemap').first |     sitemap = body.css('sitemap').first | ||||||
|     url = admin_site_sitemap_frontend_path(@site) |     url = front_show_sitemap_path | ||||||
|     options = "?inner=true" |     options = "?inner=true" | ||||||
|     fragment = Nokogiri::HTML::DocumentFragment.new(body, "<div class='dymanic_load' path='#{url + options}'></div>") |     fragment = Nokogiri::HTML::DocumentFragment.new(body, "<div class='dymanic_load' path='#{url + options}'></div>") | ||||||
|     sitemap.swap(fragment) |     sitemap.swap(fragment) | ||||||
|  | @ -219,7 +258,7 @@ module ParserCommon | ||||||
|                     raise ModuleAppError,"PagePart can't find ModuleApp"   if part.module_app.nil? |                     raise ModuleAppError,"PagePart can't find ModuleApp"   if part.module_app.nil? | ||||||
|                     "/panel/#{part.module_app.key}/widget/#{part.widget_path}?inner=true" |                     "/panel/#{part.module_app.key}/widget/#{part.widget_path}?inner=true" | ||||||
|                 end |                 end | ||||||
|           options = "&part_id=#{part.id}&category_id=#{!part[:category].blank? ? part[:category].blank? : category}&tag_id=#{!part[:tag].blank? ? part[:tag] : tag}&page=#{params[:page]}&search_query=#{params[:search_query]}&part_title=#{Rack::Utils.escape(part_title).gsub("+", "%20") rescue nil}&item_type=page_part" |           options = "&part_id=#{part.id}&category_id=#{!part[:category].blank? ? part[:category] : category}&tag_id=#{!part[:tag].blank? ? part[:tag] : tag}&page=#{params[:page]}&search_query=#{params[:search_query]}&part_title=#{Rack::Utils.escape(part_title).gsub("+", "%20") rescue nil}&item_type=page_part" | ||||||
|           ret << "<div class='dymanic_load widget' path='#{url + options}'></div>" |           ret << "<div class='dymanic_load widget' path='#{url + options}'></div>" | ||||||
|         when 'public_r_tag' |         when 'public_r_tag' | ||||||
|           ret << "<r:#{part.public_r_tag} id='#{part.public_r_tag_object_id}'/>" |           ret << "<r:#{part.public_r_tag} id='#{part.public_r_tag_object_id}'/>" | ||||||
|  |  | ||||||
|  | @ -11,6 +11,7 @@ module ParserFrontEnd | ||||||
|       parse_images(body, page) |       parse_images(body, page) | ||||||
|       parse_menu(body, page) |       parse_menu(body, page) | ||||||
|       parse_sub_menu(body, page, site) |       parse_sub_menu(body, page, site) | ||||||
|  |       parse_breadcrumb(body, page, site) | ||||||
|       parse_counter(body) |       parse_counter(body) | ||||||
|       i18n.merge!({locale => body.to_html}) |       i18n.merge!({locale => body.to_html}) | ||||||
|     end |     end | ||||||
|  | @ -18,8 +19,8 @@ module ParserFrontEnd | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def parse_page_content(page) |   def parse_page_content(page) | ||||||
|     category = params[:category_id].blank? ? page[:category] : params[:category_id] |  | ||||||
|     tag = params[:tag_id].blank? ? page[:tag] : params[:tag_id] |     tag = params[:tag_id].blank? ? page[:tag] : params[:tag_id] | ||||||
|  |     category = params[:category_id].blank? ? page[:category] : params[:category_id] | ||||||
|     body = Nokogiri::HTML(page.content) |     body = Nokogiri::HTML(page.content) | ||||||
|     body.css('orbit_front').each do |front| |     body.css('orbit_front').each do |front| | ||||||
|       if front['value'] |       if front['value'] | ||||||
|  | @ -92,6 +93,18 @@ module ParserFrontEnd | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |   # page_breadcrumb | ||||||
|  |   def parse_breadcrumb(body, page, site) | ||||||
|  |     page_breadcrumb = body.css('.page_breadcrumb').first | ||||||
|  |     if page_breadcrumb | ||||||
|  |       res = "<orbit_front path='\#{front_show_breadcrumb_path(@item)}' class='dymanic_load widget'></orbit_front>" | ||||||
|  |       fragment = Nokogiri::HTML::DocumentFragment.new(body, res) | ||||||
|  |       page_breadcrumb.swap(fragment) | ||||||
|  |     else | ||||||
|  |       '' | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|   # page_contents |   # page_contents | ||||||
|   def parse_contents(body, page, edit=nil, locale) |   def parse_contents(body, page, edit=nil, locale) | ||||||
|     public_r_tags = [] |     public_r_tags = [] | ||||||
|  | @ -101,6 +114,7 @@ module ParserFrontEnd | ||||||
|       if (content["main"] == "true" && !page.module_app.nil?) |       if (content["main"] == "true" && !page.module_app.nil?) | ||||||
|         if page.app_frontend_url == 'default_widget' |         if page.app_frontend_url == 'default_widget' | ||||||
|           url = "/panel/orbit_app/widget/#{page.frontend_style}?inner=true" |           url = "/panel/orbit_app/widget/#{page.frontend_style}?inner=true" | ||||||
|  |           url << "&id=\#{params[:id] if params[:id] && !params[:id].eql?(page.id.to_s)}" | ||||||
|         else |         else | ||||||
|            url = "/panel/#{page.module_app.key}/front_end/#{page.app_frontend_url}\#{(\"/\" + params[:id]) if params[:id] && !params[:id].eql?(page.id.to_s)}\#{(\"/\" + params[:controller_action]) if params[:controller_action] && params[:id]}?inner=true" |            url = "/panel/#{page.module_app.key}/front_end/#{page.app_frontend_url}\#{(\"/\" + params[:id]) if params[:id] && !params[:id].eql?(page.id.to_s)}\#{(\"/\" + params[:controller_action]) if params[:controller_action] && params[:id]}?inner=true" | ||||||
|         end |         end | ||||||
|  | @ -123,9 +137,7 @@ module ParserFrontEnd | ||||||
|                       else |                       else | ||||||
|                         "/panel/\#{part.module_app.key}/widget/\#{part.widget_path}?inner=true" |                         "/panel/\#{part.module_app.key}/widget/\#{part.widget_path}?inner=true" | ||||||
|                     end |                     end | ||||||
| 
 |           options = "&part_id=\#{part.id}&category_id=\#{part[:category]}&tag_id=\#{part[:tag]}&page=\#{params[:page]}&search_query=\#{params[:search_query]}&part_title=\#{Rack::Utils.escape(part_title).gsub(\"\+\", \"\%20\") rescue nil}&item_type=page_part" | ||||||
|           options = "&part_id=\#{part.id}&category_id=\#{!part[:category].blank? ? part[:category].blank? : category}&tag_id=\#{!part[:tag].blank? ? part[:tag] : tag}&page=\#{params[:page]}&search_query=\#{params[:search_query]}&part_title=\#{Rack::Utils.escape(part_title).gsub(\"\+\", \"\%20\") rescue nil}&item_type=page_part" |  | ||||||
| 
 |  | ||||||
|           ret << "<orbit_front path='#{url + options}' part_id=#{part.id} class='dymanic_load widget'></orbit_front>" |           ret << "<orbit_front path='#{url + options}' part_id=#{part.id} class='dymanic_load widget'></orbit_front>" | ||||||
|            |            | ||||||
|         when 'public_r_tag' |         when 'public_r_tag' | ||||||
|  | @ -179,4 +191,8 @@ module ParserFrontEnd | ||||||
|     "<div class='dymanic_load' path='#{front_show_page_sub_menu_path({:menu_page_id => args[0], :page_id => args[1]})}'></div>" |     "<div class='dymanic_load' path='#{front_show_page_sub_menu_path({:menu_page_id => args[0], :page_id => args[1]})}'></div>" | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |   # breadcrumb | ||||||
|  |   def generate_breadcrumbs(*args) | ||||||
|  |     "<div class='dymanic_load' path='#{front_show_breadcrumb_path(args[1])}'></div>" | ||||||
|  |   end | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -2,312 +2,9 @@ | ||||||
| 
 | 
 | ||||||
| namespace :migrate do | namespace :migrate do | ||||||
| 
 | 
 | ||||||
|   task :i18n => :environment do |  | ||||||
|    |  | ||||||
|     p 'Start Bulletin' |  | ||||||
|     bulletins = Bulletin.admin_manager_all |  | ||||||
|     i = 1 |  | ||||||
|     bulletins.each do |bulletin| |  | ||||||
|     	p "#{i}/#{bulletins.size} - #{bulletin.id}" |  | ||||||
|     	title = I18nVariable.first(:conditions => {:key => 'title', :language_value_id => bulletin.id, :language_value_type => bulletin.class}) |  | ||||||
|     	bulletin.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title |  | ||||||
|     	subtitle = I18nVariable.first(:conditions => {:key => 'subtitle', :language_value_id => bulletin.id, :language_value_type => bulletin.class}) |  | ||||||
|     	bulletin.subtitle_translations = {'en' => subtitle['en'], 'zh_tw' => subtitle['zh_tw']} if subtitle |  | ||||||
|     	text = I18nVariable.first(:conditions => {:key => 'text', :language_value_id => bulletin.id, :language_value_type => bulletin.class}) |  | ||||||
|     	bulletin.text_translations = {'en' => text['en'], 'zh_tw' => text['zh_tw']} if text |  | ||||||
|     	p bulletin.save(:validate => false) |  | ||||||
|     	i += 1 |  | ||||||
|     end |  | ||||||
|     p 'End Bulletin' |  | ||||||
| 
 |  | ||||||
|     p '=====================================================' |  | ||||||
| 
 |  | ||||||
|     p 'Start BulletinCategory' |  | ||||||
|     categories = BulletinCategory.admin_manager_all |  | ||||||
|     i = 1 |  | ||||||
|     categories.each do |category| |  | ||||||
|     	p "#{i}/#{categories.size} - #{category.id}" |  | ||||||
|     	title = I18nVariable.first(:conditions => {:language_value_id => category.id, :language_value_type => category.class}) |  | ||||||
|     	category.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title |  | ||||||
|     	p category.save(:validate => false) |  | ||||||
|     	i += 1 |  | ||||||
|     end |  | ||||||
|     p 'End BulletinCategory' |  | ||||||
| 
 |  | ||||||
|     p '=====================================================' |  | ||||||
| 
 |  | ||||||
|     p 'Start BulletinFile' |  | ||||||
|     files = BulletinFile.all |  | ||||||
|     i = 1 |  | ||||||
|     files.each do |file| |  | ||||||
|     	p "#{i}/#{files.size} - #{file.id}" |  | ||||||
|     	description = I18nVariable.first(:conditions => {:language_value_id => file.id, :language_value_type => file.class}) |  | ||||||
|     	file.description_translations = {'en' => description['en'], 'zh_tw' => description['zh_tw']} if description |  | ||||||
|     	title = I18nVariable.first(:conditions => {:language_value_id => file.id, :language_value_type => file.class}) |  | ||||||
|     	file.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title |  | ||||||
|     	p file.save(:validate => false) |  | ||||||
|     	i += 1 |  | ||||||
|     end |  | ||||||
|     p 'End BulletinFile' |  | ||||||
| 
 |  | ||||||
|     p '=====================================================' |  | ||||||
| 
 |  | ||||||
|     p 'Start BulletinLink' |  | ||||||
|     links = BulletinLink.all |  | ||||||
|     i = 1 |  | ||||||
|     links.each do |link| |  | ||||||
|       p "#{i}/#{links.size} - #{link.id}" |  | ||||||
|       title = I18nVariable.first(:conditions => {:language_value_id => link.id, :language_value_type => link.class}) |  | ||||||
|       link.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title |  | ||||||
|       p link.save(:validate => false) |  | ||||||
|       i += 1 |  | ||||||
|     end |  | ||||||
|     p 'End BulletinLink' |  | ||||||
| 
 |  | ||||||
|     p '=====================================================' |  | ||||||
| 
 |  | ||||||
|     p 'Start UnitListForAnc' |  | ||||||
|     units = UnitListForAnc.all |  | ||||||
|     i = 1 |  | ||||||
|     units.each do |unit| |  | ||||||
|       p "#{i}/#{units.size} - #{unit.id}" |  | ||||||
|       title = I18nVariable.first(:conditions => {:language_value_id => unit.id, :language_value_type => unit.class}) |  | ||||||
|       unit.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title |  | ||||||
|       p unit.save(:validate => false) |  | ||||||
|       i += 1 |  | ||||||
|     end |  | ||||||
|     p 'End UnitListForAnc' |  | ||||||
| 
 |  | ||||||
|     p '=====================================================' |  | ||||||
|     p '=====================================================' |  | ||||||
| 
 |  | ||||||
|     p 'Start PageContext' |  | ||||||
|     page_contexts = PageContext.all |  | ||||||
|     i = 1 |  | ||||||
|     page_contexts.each do |page_context| |  | ||||||
|       p "#{i}/#{page_contexts.size} - #{page_context.id}" |  | ||||||
|       context = I18nVariable.first(:conditions => {:language_value_id => page_context.id, :language_value_type => page_context.class}) |  | ||||||
|       page_context.context_translations = {'en' => context['en'], 'zh_tw' => context['zh_tw']} if context |  | ||||||
|       p page_context.save(:validate => false) |  | ||||||
|       i += 1 |  | ||||||
|     end |  | ||||||
|     p 'End PageContext' |  | ||||||
| 
 |  | ||||||
|     p '=====================================================' |  | ||||||
|     p '=====================================================' |  | ||||||
| 
 |  | ||||||
|     p 'Start WebLink' |  | ||||||
|     links = WebLink.all |  | ||||||
|     i = 1 |  | ||||||
|     links.each do |link| |  | ||||||
|       p "#{i}/#{links.size} - #{link.id}" |  | ||||||
|       # the original key was 'name' |  | ||||||
|       title = I18nVariable.first(:conditions => {:key => 'name', :language_value_id => link.id, :language_value_type => link.class}) |  | ||||||
|       link.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title |  | ||||||
|       context = I18nVariable.first(:conditions => {:key => 'context', :language_value_id => link.id, :language_value_type => link.class}) |  | ||||||
|       link.context_translations = {'en' => context['en'], 'zh_tw' => context['zh_tw']} if context |  | ||||||
|       p link.save(:validate => false) |  | ||||||
|       i += 1 |  | ||||||
|     end |  | ||||||
|     p 'End WebLink' |  | ||||||
| 
 |  | ||||||
|     p '=====================================================' |  | ||||||
| 
 |  | ||||||
|     p 'Start WebLinkCategory' |  | ||||||
|     categories = WebLinkCategory.admin_manager_all |  | ||||||
|     i = 1 |  | ||||||
|     categories.each do |category| |  | ||||||
|       p "#{i}/#{categories.size} - #{category.id}" |  | ||||||
|       title = I18nVariable.first(:conditions => {:language_value_id => category.id, :language_value_type => category.class}) |  | ||||||
|       category.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title |  | ||||||
|       p category.save(:validate => false) |  | ||||||
|       i += 1 |  | ||||||
|     end |  | ||||||
|     p 'End WebLinkCategory' |  | ||||||
| 
 |  | ||||||
|     p '=====================================================' |  | ||||||
|     p '=====================================================' |  | ||||||
| 
 |  | ||||||
|     p 'Start Meta' |  | ||||||
|     metas = Meta.all |  | ||||||
|     i = 1 |  | ||||||
|     metas.each do |meta| |  | ||||||
|       p "#{i}/#{metas.size} - #{meta.id}" |  | ||||||
|       title = I18nVariable.first(:conditions => {:language_value_id => meta.id, :language_value_type => meta.class}) |  | ||||||
|       meta.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title |  | ||||||
|       p meta.save(:validate => false) |  | ||||||
|       i += 1 |  | ||||||
|     end |  | ||||||
|     p 'End Meta' |  | ||||||
| 
 |  | ||||||
|     p '=====================================================' |  | ||||||
|     p '=====================================================' |  | ||||||
| 
 |  | ||||||
|     p 'Start Attribute' |  | ||||||
|     attributes = Attribute.all |  | ||||||
|     i = 1 |  | ||||||
|     attributes.each do |attribute| |  | ||||||
|       p "#{i}/#{attributes.size} - #{attribute.id}" |  | ||||||
|       title = I18nVariable.first(:conditions => {:language_value_id => attribute.id, :language_value_type => attribute.class}) |  | ||||||
|       attribute.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title |  | ||||||
|       p attribute.save(:validate => false) |  | ||||||
|       i += 1 |  | ||||||
|     end |  | ||||||
|     p 'End Attribute' |  | ||||||
| 
 |  | ||||||
|     p '=====================================================' |  | ||||||
| 
 |  | ||||||
|     p 'Start AttributeField' |  | ||||||
|     attribute_fields = AttributeField.all |  | ||||||
|     i = 1 |  | ||||||
|     attribute_fields.each do |attribute_field| |  | ||||||
|       p "#{i}/#{attribute_fields.size} - #{attribute_field.id}" |  | ||||||
|       title = I18nVariable.first(:conditions => {:language_value_id => attribute_field.id, :language_value_type => attribute_field.class}) |  | ||||||
|       attribute_field.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title |  | ||||||
|       p attribute_field.save(:validate => false) |  | ||||||
|       i += 1 |  | ||||||
|     end |  | ||||||
|     p 'End AttributeField' |  | ||||||
| 
 |  | ||||||
|     p '=====================================================' |  | ||||||
| 
 |  | ||||||
|     p 'Start Role' |  | ||||||
|     roles = Role.all |  | ||||||
|     i = 1 |  | ||||||
|     roles.each do |role| |  | ||||||
|       p "#{i}/#{roles.size} - #{role.id}" |  | ||||||
|       title = I18nVariable.first(:conditions => {:language_value_id => role.id, :language_value_type => role.class}) |  | ||||||
|       role.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title |  | ||||||
|       p role.save(:validate => false) |  | ||||||
|       i += 1 |  | ||||||
|     end |  | ||||||
|     p 'End Role' |  | ||||||
| 
 |  | ||||||
|     p '=====================================================' |  | ||||||
|     p '=====================================================' |  | ||||||
| 
 |  | ||||||
|     p 'Start AdImage' |  | ||||||
|     ad_images = AdImage.all |  | ||||||
|     i = 1 |  | ||||||
|     ad_images.each do |image| |  | ||||||
|       p "#{i}/#{ad_images.size} - #{image.id}" |  | ||||||
|       # no key is set and title = context, this is due to original error in the code |  | ||||||
|       title = I18nVariable.first(:conditions => {:language_value_id => image.id, :language_value_type => image.class}) |  | ||||||
|       image.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title |  | ||||||
|       image.context_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title |  | ||||||
|       p image.save(:validate => false) |  | ||||||
|       i += 1 |  | ||||||
|     end |  | ||||||
|     p 'End AdImage' |  | ||||||
| 
 |  | ||||||
|     p '=====================================================' |  | ||||||
|     p '=====================================================' |  | ||||||
| 
 |  | ||||||
|     p 'Start Asset' |  | ||||||
|     assets = Asset.all |  | ||||||
|     i = 1 |  | ||||||
|     assets.each do |asset| |  | ||||||
|       p "#{i}/#{assets.size} - #{asset.id}" |  | ||||||
|       title = I18nVariable.first(:conditions => {:key => 'title', :language_value_id => asset.id, :language_value_type => asset.class}) |  | ||||||
|       asset.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title |  | ||||||
|       description = I18nVariable.first(:conditions => {:key => 'description', :language_value_id => asset.id, :language_value_type => asset.class}) |  | ||||||
|       asset.description_translations = {'en' => description['en'], 'zh_tw' => description['zh_tw']} if description |  | ||||||
|       p asset.save(:validate => false) |  | ||||||
|       i += 1 |  | ||||||
|     end |  | ||||||
|     p 'End Asset' |  | ||||||
| 
 |  | ||||||
|     p '=====================================================' |  | ||||||
| 
 |  | ||||||
|     p 'Start AssetCategory' |  | ||||||
|     categories = AssetCategory.all |  | ||||||
|     i = 1 |  | ||||||
|     categories.each do |category| |  | ||||||
|       p "#{i}/#{categories.size} - #{category.id}" |  | ||||||
|       title = I18nVariable.first(:conditions => {:language_value_id => category.id, :language_value_type => category.class}) |  | ||||||
|       category.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title |  | ||||||
|       p category.save(:validate => false) |  | ||||||
|       i += 1 |  | ||||||
|     end |  | ||||||
|     p 'End AssetCategory' |  | ||||||
| 
 |  | ||||||
|     p '=====================================================' |  | ||||||
|     p '=====================================================' |  | ||||||
| 
 |  | ||||||
|     p 'Start Item' |  | ||||||
|     items = Item.all |  | ||||||
|     i = 1 |  | ||||||
|     items.each do |item| |  | ||||||
|       p "#{i}/#{items.size} - #{item.id}" |  | ||||||
|       title = I18nVariable.first(:conditions => {:language_value_id => item.id, :language_value_type => item.class}) |  | ||||||
|       item.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title |  | ||||||
|       p item.save(:validate => false) |  | ||||||
|       i += 1 |  | ||||||
|     end |  | ||||||
|     p 'End Item' |  | ||||||
| 
 |  | ||||||
|     p '=====================================================' |  | ||||||
| 
 |  | ||||||
|     p 'Start Page' |  | ||||||
|     pages = Page.all |  | ||||||
|     i = 1 |  | ||||||
|     pages.each do |item| |  | ||||||
|       p "#{i}/#{pages.size} - #{item.id}" |  | ||||||
|       # the key was originally 'title', changed to 'page_title' to avoit conflict with parent |  | ||||||
|       title = I18nVariable.first(:conditions => {:key => 'title', :language_value_id => item.id, :language_value_type => item.class}) |  | ||||||
|       item.page_title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title |  | ||||||
|       p item.save(:validate => false) |  | ||||||
|       i += 1 |  | ||||||
|     end |  | ||||||
|     p 'End Page' |  | ||||||
| 
 |  | ||||||
|     p '=====================================================' |  | ||||||
| 
 |  | ||||||
|     p 'Start PagePart' |  | ||||||
|     page_parts = PagePart.all |  | ||||||
|     i = 1 |  | ||||||
|     page_parts.each do |part| |  | ||||||
|       p "#{i}/#{page_parts.size} - #{part.id}" |  | ||||||
|       title = I18nVariable.first(:conditions => {:key => 'title', :language_value_id => part.id, :language_value_type => part.class}) |  | ||||||
|       part.page_title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title |  | ||||||
|       content = I18nVariable.first(:conditions => {:key => 'i18n_variable', :language_value_id => part.id, :language_value_type => part.class}) |  | ||||||
|       part.content_translations = {'en' => content['en'], 'zh_tw' => content['zh_tw']} if content |  | ||||||
|       p part.save(:validate => false) |  | ||||||
|       i += 1 |  | ||||||
|     end |  | ||||||
|     p 'End PagePart' |  | ||||||
| 
 |  | ||||||
|     p '=====================================================' |  | ||||||
|     p '=====================================================' |  | ||||||
| 
 |  | ||||||
|     p 'Start Site' |  | ||||||
|     site = Site.first |  | ||||||
|     title = I18nVariable.first(:conditions => {:key => 'title', :language_value_id => site.id, :language_value_type => site.class}) |  | ||||||
|     site.title_translations = {'en' => title['en'], 'zh_tw' => title['zh_tw']} if title |  | ||||||
|     footer = I18nVariable.first(:conditions => {:key => 'footer', :language_value_id => site.id, :language_value_type => site.class}) |  | ||||||
|     site.footer_translations = {'en' => footer['en'], 'zh_tw' => footer['zh_tw']} if footer |  | ||||||
|     sub_menu = I18nVariable.first(:conditions => {:key => 'sub_menu', :language_value_id => site.id, :language_value_type => site.class}) |  | ||||||
|     site.sub_menu_translations = {'en' => sub_menu['en'], 'zh_tw' => sub_menu['zh_tw']} if sub_menu |  | ||||||
|     p site.save(:validate => false) |  | ||||||
|     p 'End Site' |  | ||||||
| 
 |  | ||||||
|   end |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|   task :news_p => :environment do |  | ||||||
|     news_bulletins = NewsBulletin.admin_manager_all rescue nil |  | ||||||
|     i = 1 |  | ||||||
|     news_bulletins.each do |news| |  | ||||||
|       p "#{i}/#{news_bulletins.size} - #{news.id}" |  | ||||||
|       news.subtitle_translations = {'en' => (news.subtitle_translations['en'].gsub(/^\<p\>/, '').gsub(/\<\/p\>$/, '') rescue ''), 'zh_tw' => (news.subtitle_translations['zh_tw'].gsub(/^\<p\>/, '').gsub(/\<\/p\>$/, '') rescue nil)} |  | ||||||
|       p news.save(:validate => false) if news.changed? |  | ||||||
|       i += 1 |  | ||||||
|     end if news_bulletins |  | ||||||
|   end |  | ||||||
| 
 |  | ||||||
|   task :sitemap_i18n => :environment do |   task :sitemap_i18n => :environment do | ||||||
|     Item.all.each do |item| |     Item.all.each do |item| | ||||||
|       item.sitemap_enabled = item.sitemap_enabled ? {'en' => 'true', 'zh_tw' => 'true'} : nil |       item.sitemap_enabled = item.sitemap_enabled ? {'en' => 'true', 'zh_tw' => 'true'} : {} | ||||||
|       item.save |       item.save | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
|  | @ -448,7 +145,7 @@ namespace :migrate do | ||||||
| 
 | 
 | ||||||
|     PagePart.all.each do |pp| |     PagePart.all.each do |pp| | ||||||
|       pp[:backup_module_app_key] = (pp.module_app ? pp.module_app.key : nil) |       pp[:backup_module_app_key] = (pp.module_app ? pp.module_app.key : nil) | ||||||
|       puts pp.id |       # puts pp.id | ||||||
|       pp.save |       pp.save | ||||||
|       # puts pp.inspect |       # puts pp.inspect | ||||||
|     end |     end | ||||||
|  | @ -493,6 +190,7 @@ namespace :migrate do | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|   task :convert_cate_tag_type => :environment do |   task :convert_cate_tag_type => :environment do | ||||||
|     [Page,PagePart].each do |obj| |     [Page,PagePart].each do |obj| | ||||||
|       obj.all.each do |pp| |       obj.all.each do |pp| | ||||||
|  | @ -510,6 +208,30 @@ namespace :migrate do | ||||||
|         pp.save |         pp.save | ||||||
|       end |       end | ||||||
|     end |     end | ||||||
|  | 
 | ||||||
|  |   task :clean_parts => :environment do | ||||||
|  |     PagePart.where(widget_style: /\d/, kind: 'module_widget').each{|part| part.update_attributes({kind: 'text', widget_style: nil, widget_field: nil})} | ||||||
|  |     PagePart.where(widget_style: /\d/).each{|part| part.update_attributes({widget_style: nil, widget_field: nil})} | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   task :delete_import_archive => :environment do | ||||||
|  |     categories = ArchiveFileCategory.where(key: /import_/).entries | ||||||
|  |     unless categories.blank? | ||||||
|  |       categories.each do |category| | ||||||
|  |         files = category.archive_files | ||||||
|  |         unless files.blank? | ||||||
|  |           files.each(&:destroy) | ||||||
|  |         end | ||||||
|  |         category.destroy | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  |   end  | ||||||
|  | 
 | ||||||
|  |   task :save_pages => :environment do | ||||||
|  |     Page.all.each do |page|  | ||||||
|  |       page.save | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ namespace :pages do | ||||||
|    |    | ||||||
|   task :build => :environment do |   task :build => :environment do | ||||||
|    |    | ||||||
|     Item.delete_all |     Item.destroy_all | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     var_10 = I18nVariable.create!( :document_class => 'Home', :key => 'home', :en => 'Homepage', :zh_tw => '首頁') |     var_10 = I18nVariable.create!( :document_class => 'Home', :key => 'home', :en => 'Homepage', :zh_tw => '首頁') | ||||||
|  |  | ||||||
|  | @ -4,8 +4,8 @@ namespace :site do | ||||||
|    |    | ||||||
|   task :build => :environment do |   task :build => :environment do | ||||||
|    |    | ||||||
|     Site.delete_all |     Site.destroy_all | ||||||
|     Purchase.delete_all |     Purchase.destroy_all | ||||||
|       |       | ||||||
|     Site.create( :school => 'RulingDigital University', :department => 'Computer Science', :valid_locales => [ 'en', 'zh_tw' ], :in_use_locales => [ 'zh_tw', 'en' ])  |     Site.create( :school => 'RulingDigital University', :department => 'Computer Science', :valid_locales => [ 'en', 'zh_tw' ], :in_use_locales => [ 'zh_tw', 'en' ])  | ||||||
|              |              | ||||||
|  |  | ||||||
| Before Width: | Height: | Size: 532 B After Width: | Height: | Size: 532 B | 
|  | @ -9,7 +9,7 @@ | ||||||
| 		"settings":"d_settings.png", | 		"settings":"d_settings.png", | ||||||
| 		"publication":"d_publication.png", | 		"publication":"d_publication.png", | ||||||
| 		"journal_p":"d_journal_p.png", | 		"journal_p":"d_journal_p.png", | ||||||
| 		"seminar_p":"d_seminar_p.png", | 		"conference_p":"d_conference_p.png", | ||||||
| 		"books":"d_books.png", | 		"books":"d_books.png", | ||||||
| 		"research":"d_research.png", | 		"research":"d_research.png", | ||||||
| 		"research_d":"d_research_d.png", | 		"research_d":"d_research_d.png", | ||||||
|  |  | ||||||
| Before Width: | Height: | Size: 532 B After Width: | Height: | Size: 532 B | 
|  | @ -9,7 +9,7 @@ | ||||||
| 		"settings":"d_settings.png", | 		"settings":"d_settings.png", | ||||||
| 		"publication":"d_publication.png", | 		"publication":"d_publication.png", | ||||||
| 		"journal_p":"d_journal_p.png", | 		"journal_p":"d_journal_p.png", | ||||||
| 		"seminar_p":"d_seminar_p.png", | 		"conference_p":"d_conference_p.png", | ||||||
| 		"books":"d_books.png", | 		"books":"d_books.png", | ||||||
| 		"research":"d_research.png", | 		"research":"d_research.png", | ||||||
| 		"research_d":"d_research_d.png", | 		"research_d":"d_research_d.png", | ||||||
|  |  | ||||||
| Before Width: | Height: | Size: 532 B After Width: | Height: | Size: 532 B | 
|  | @ -9,7 +9,7 @@ | ||||||
| 		"settings":"d_settings.png", | 		"settings":"d_settings.png", | ||||||
| 		"publication":"d_publication.png", | 		"publication":"d_publication.png", | ||||||
| 		"journal_p":"d_journal_p.png", | 		"journal_p":"d_journal_p.png", | ||||||
| 		"seminar_p":"d_seminar_p.png", | 		"conference_p":"d_conference_p.png", | ||||||
| 		"books":"d_books.png", | 		"books":"d_books.png", | ||||||
| 		"research":"d_research.png", | 		"research":"d_research.png", | ||||||
| 		"research_d":"d_research_d.png", | 		"research_d":"d_research_d.png", | ||||||
|  |  | ||||||
| Before Width: | Height: | Size: 532 B After Width: | Height: | Size: 532 B | 
|  | @ -9,7 +9,7 @@ | ||||||
| 		"settings":"d_settings.png", | 		"settings":"d_settings.png", | ||||||
| 		"publication":"d_publication.png", | 		"publication":"d_publication.png", | ||||||
| 		"journal_p":"d_journal_p.png", | 		"journal_p":"d_journal_p.png", | ||||||
| 		"seminar_p":"d_seminar_p.png", | 		"conference_p":"d_conference_p.png", | ||||||
| 		"books":"d_books.png", | 		"books":"d_books.png", | ||||||
| 		"research":"d_research.png", | 		"research":"d_research.png", | ||||||
| 		"research_d":"d_research_d.png", | 		"research_d":"d_research_d.png", | ||||||
|  |  | ||||||
| Before Width: | Height: | Size: 532 B After Width: | Height: | Size: 532 B | 
|  | @ -9,7 +9,7 @@ | ||||||
| 		"settings":"d_settings.png", | 		"settings":"d_settings.png", | ||||||
| 		"publication":"d_publication.png", | 		"publication":"d_publication.png", | ||||||
| 		"journal_p":"d_journal_p.png", | 		"journal_p":"d_journal_p.png", | ||||||
| 		"seminar_p":"d_seminar_p.png", | 		"conference_p":"d_conference_p.png", | ||||||
| 		"books":"d_books.png", | 		"books":"d_books.png", | ||||||
| 		"research":"d_research.png", | 		"research":"d_research.png", | ||||||
| 		"research_d":"d_research_d.png", | 		"research_d":"d_research_d.png", | ||||||
|  |  | ||||||
| Before Width: | Height: | Size: 532 B After Width: | Height: | Size: 532 B | 
|  | @ -9,7 +9,7 @@ | ||||||
| 		"settings":"d_settings.png", | 		"settings":"d_settings.png", | ||||||
| 		"publication":"d_publication.png", | 		"publication":"d_publication.png", | ||||||
| 		"journal_p":"d_journal_p.png", | 		"journal_p":"d_journal_p.png", | ||||||
| 		"seminar_p":"d_seminar_p.png", | 		"conference_p":"d_conference_p.png", | ||||||
| 		"books":"d_books.png", | 		"books":"d_books.png", | ||||||
| 		"research":"d_research.png", | 		"research":"d_research.png", | ||||||
| 		"research_d":"d_research_d.png", | 		"research_d":"d_research_d.png", | ||||||
|  |  | ||||||
|  | @ -286,7 +286,7 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController | ||||||
| 
 | 
 | ||||||
|   def delete |   def delete | ||||||
|     if params[:ids] |     if params[:ids] | ||||||
|       bulletins = Bulletin.any_in(:_id => params[:ids]).delete_all |       bulletins = Bulletin.any_in(:_id => params[:ids]).destroy_all | ||||||
|     end |     end | ||||||
|     redirect_to panel_announcement_back_end_bulletins_url(:filter => params[:filter], :direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) |     redirect_to panel_announcement_back_end_bulletins_url(:filter => params[:filter], :direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|  | @ -12,7 +12,7 @@ class BulletinLink | ||||||
|   belongs_to :bulletin |   belongs_to :bulletin | ||||||
| 
 | 
 | ||||||
|   before_validation :add_http |   before_validation :add_http | ||||||
|   validates :url, :presence => true, :format => /^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$/ix |   validates :url, :presence => true, :format => /^(http|https):\/\/(([a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5})|((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))(:[0-9]{1,5})?(\/.*)?/i | ||||||
| 
 | 
 | ||||||
|   protected |   protected | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -17,3 +17,16 @@ en: | ||||||
|     update_bulletin_category_success: Announcement category was successfully updated |     update_bulletin_category_success: Announcement category was successfully updated | ||||||
|     all_articles: All Articles |     all_articles: All Articles | ||||||
|     add_new: New |     add_new: New | ||||||
|  |     widget: | ||||||
|  |         index: Index widget | ||||||
|  |         bulletins_and_web_links: "Abreast of bulletins and web link" | ||||||
|  |     #init don't merge | ||||||
|  |     all_articles: "All article" | ||||||
|  |     add_new: New | ||||||
|  |     categories: Categories | ||||||
|  |     approval_setting: "Approval setting" | ||||||
|  |     tags: Tag | ||||||
|  |     default_widget: | ||||||
|  |         bulletin_category_with_title: Category | ||||||
|  |         title: Title | ||||||
|  |         postdate: "Post date" | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ module Announcement | ||||||
|     module_label 'announcement.announcement' |     module_label 'announcement.announcement' | ||||||
|     base_url File.expand_path File.dirname(__FILE__)     |     base_url File.expand_path File.dirname(__FILE__)     | ||||||
| 
 | 
 | ||||||
|     personal_plugin :enable => true,:path=>"panel/announcement/plugin/profile",:i18n=>'announcement.announcement' |     # personal_plugin :enable => true,:path=>"panel/announcement/plugin/profile",:i18n=>'announcement.announcement' | ||||||
|      |      | ||||||
|     version "0.1" |     version "0.1" | ||||||
|     organization "Rulingcom" |     organization "Rulingcom" | ||||||
|  |  | ||||||
|  | @ -13,6 +13,7 @@ class Panel::Archive::BackEnd::ArchiveFilesController < OrbitBackendController | ||||||
| 
 | 
 | ||||||
|     respond_to do |format| |     respond_to do |format| | ||||||
|       format.html # index.html.erb |       format.html # index.html.erb | ||||||
|  |       format.js | ||||||
|       format.xml  { render :xml => @archive_files } |       format.xml  { render :xml => @archive_files } | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
|  |  | ||||||
|  | @ -13,4 +13,8 @@ class ArchiveFileCategory | ||||||
| 
 | 
 | ||||||
|   validates :title, :at_least_one => true |   validates :title, :at_least_one => true | ||||||
| 
 | 
 | ||||||
|  |   def self.from_id(id) | ||||||
|  |     ArchiveFileCategory.find(id) rescue nil | ||||||
|  |   end | ||||||
|  |    | ||||||
| end | end | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
| 			<div class="quick-edit"> | 			<div class="quick-edit"> | ||||||
| 				<ul class="nav nav-pills hide"> | 				<ul class="nav nav-pills hide"> | ||||||
| 					<li><%= link_to t('archive_file_category.edit'), edit_panel_archive_back_end_archive_file_category_path(archive_file_category), :remote => true %></li> | 					<li><%= link_to t('archive_file_category.edit'), edit_panel_archive_back_end_archive_file_category_path(archive_file_category), :remote => true %></li> | ||||||
| 					<li><%= link_to t('archive_file_category.delete'), panel_archive_back_end_archive_file_category_path(archive_file_category), :confirm => t('sure?'), :method => :delete, :remote => true %></li> | 					<!-- <li><%#= link_to t('archive_file_category.delete'), panel_archive_back_end_archive_file_category_path(archive_file_category), :confirm => t('sure?'), :method => :delete, :remote => true %></li> --> | ||||||
| 				</ul> | 				</ul> | ||||||
| 			</div> | 			</div> | ||||||
| 		</td> | 		</td> | ||||||
|  |  | ||||||
|  | @ -1,30 +1,30 @@ | ||||||
| 
 | 
 | ||||||
| <tr id="<%= dom_id post %>" class="with_action"> | <tr id="<%= dom_id archive_file %>" class="with_action"> | ||||||
| 	<td> | 	<td> | ||||||
| 		<% if post.is_top? %> | 		<% if archive_file.is_top? %> | ||||||
| 			<span class="label label-success"><%= t(:top) %></span> | 			<span class="label label-success"><%= t(:top) %></span> | ||||||
| 		<% end %> | 		<% end %> | ||||||
| 		<% if post.is_hot? %> | 		<% if archive_file.is_hot? %> | ||||||
| 			<span class="label label-important"><%= t(:hot) %></span> | 			<span class="label label-important"><%= t(:hot) %></span> | ||||||
| 		<% end %> | 		<% end %> | ||||||
| 		<% if post.is_hidden? %> | 		<% if archive_file.is_hidden? %> | ||||||
| 			<span class="label"><%= t(:hidden) %></span> | 			<span class="label"><%= t(:hidden) %></span> | ||||||
| 		<% end %>	 | 		<% end %>	 | ||||||
| 		<% if is_manager?%> | 		<% if is_manager?%> | ||||||
| 		<div class="quick-edit"> | 		<div class="quick-edit"> | ||||||
| 			<ul class="nav nav-pills hide"> | 			<ul class="nav nav-pills hide"> | ||||||
| 				<li><%= link_to t('archive_file.edit'), edit_panel_archive_back_end_archive_file_path(post) %></li> | 				<li><%= link_to t('archive_file.edit'), edit_panel_archive_back_end_archive_file_path(archive_file) %></li> | ||||||
| 				<li><%= link_to t('archive_file.delete'), panel_archive_back_end_archive_file_path(post), :confirm => t('sure?'), :method => :delete, :remote => true %></li> | 				<li><%= link_to t('archive_file.delete'), panel_archive_back_end_archive_file_path(archive_file), :confirm => t('sure?'), :method => :delete, :remote => true %></li> | ||||||
| 			</ul> | 			</ul> | ||||||
| 		</div> | 		</div> | ||||||
| 		<%end%> | 		<%end%> | ||||||
| 	</td> | 	</td> | ||||||
| 	<td><%= post.archive_file_category.title %></td> | 	<td><%= archive_file.archive_file_category.title %></td> | ||||||
| 	<td> | 	<td> | ||||||
| 	<%= link_to post.title, panel_archive_front_end_archive_file_path(post) %> | 	<%= link_to archive_file.title, panel_archive_front_end_archive_file_path(archive_file) %> | ||||||
| 	</td> | 	</td> | ||||||
| 	<td> | 	<td> | ||||||
| 		<% post.tags.each do |tag| %> | 		<% archive_file.tags.each do |tag| %> | ||||||
| 			<span class="label label-tags"><%= tag[I18n.locale] %></span> | 			<span class="label label-tags"><%= tag[I18n.locale] %></span> | ||||||
| 		<% end %> | 		<% end %> | ||||||
| 	</td> | 	</td> | ||||||
|  | @ -10,14 +10,11 @@ | ||||||
| 			<th class="span1-2"><%= t('archive_file.tags') %></th> | 			<th class="span1-2"><%= t('archive_file.tags') %></th> | ||||||
| 		</tr> | 		</tr> | ||||||
| 	</thead> | 	</thead> | ||||||
| 	<tbody> | 	<tbody id="tbody_archive"> | ||||||
| 
 | 		<%= render :partial => 'archive_file', :collection => @archive_files %> | ||||||
| 	<% @archive_files.each do |post| %> |  | ||||||
| 		<%= render :partial => 'archive_files', :locals => {:post => post} %> |  | ||||||
| 	<% end %> |  | ||||||
| 	 |  | ||||||
| 	</tbody> | 	</tbody> | ||||||
| </table> | </table> | ||||||
| 
 | 
 | ||||||
| <%= paginate @archive_files %> | <div id="archive_pagination"> | ||||||
| 
 | 	<%= paginate @archive_files %> | ||||||
|  | </div> | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/index.js.erb
								
								
								
									vendored
								
								
									Normal file
								
							
							
						
						|  | @ -0,0 +1,2 @@ | ||||||
|  | $("#tbody_archive").html("<%= j render :partial => 'archive_file', :collection => @archive_files %>"); | ||||||
|  | $("#archive_pagination").html("<%= j paginate @archive_files %>"); | ||||||
|  | @ -4,17 +4,17 @@ | ||||||
| 
 | 
 | ||||||
| <%#= paginate @archive_files, :params => {:inner => false}%> | <%#= paginate @archive_files, :params => {:inner => false}%> | ||||||
| 
 | 
 | ||||||
| <% if @title %> | <%# if @title %> | ||||||
| 	<h1 class="h1"><%= @title %></h1> | 	<!-- <h1 class="h1"><%#= @title %></h1> --> | ||||||
| <% end %> | <%# end %> | ||||||
| 	 | 	 | ||||||
| 	<ul class="subm"> | 	<!-- <ul class="subm"> --> | ||||||
| 	<% @archive_file_categorys.each do |afcpost| %> | 	<%# @archive_file_categorys.each do |afcpost| %> | ||||||
| 		<li><%= link_to afcpost.title, panel_archive_front_end_archive_files_path(:category_id => afcpost.id) %></li> | 		<!-- <li><%#= link_to afcpost.title, panel_archive_front_end_archive_files_path(:category_id => afcpost.id) %></li> --> | ||||||
| 	<% end %> | 	<%# end %> | ||||||
| 	</ul> | 	<!-- </ul> --> | ||||||
| 	 | 	 | ||||||
| 	<h3><%= @archive_files.first.archive_file_category.title rescue nil %></h3> | 	<h3><%= @current_category.title rescue nil %></h3> | ||||||
| 	 | 	 | ||||||
| 	<% @archive_files.each do |post| %> | 	<% @archive_files.each do |post| %> | ||||||
| 	 | 	 | ||||||
|  |  | ||||||
|  | @ -3,7 +3,6 @@ Rails.application.routes.draw do | ||||||
|   namespace :panel do |   namespace :panel do | ||||||
|     namespace :archive do |     namespace :archive do | ||||||
|       namespace :back_end do |       namespace :back_end do | ||||||
|         root :to => "archive_files#index" |  | ||||||
|         resources :archive_files |         resources :archive_files | ||||||
| 		resources :archive_file_categorys | 		resources :archive_file_categorys | ||||||
|         resources :tags |         resources :tags | ||||||
|  |  | ||||||
|  | @ -4,9 +4,6 @@ module Archive | ||||||
|     base_url File.expand_path File.dirname(__FILE__)     |     base_url File.expand_path File.dirname(__FILE__)     | ||||||
| 
 | 
 | ||||||
|     personal_plugin :enable => true,:path=>"panel/archive/plugin/profile",:i18n=>'archive.archive' |     personal_plugin :enable => true,:path=>"panel/archive/plugin/profile",:i18n=>'archive.archive' | ||||||
| # ======= |  | ||||||
| #     personal_plugin :enable => true,:path=>"panel/archive/plugin/profile",:i18n=>'admin.archive' |  | ||||||
| # >>>>>>> 858e942da234fffa3053a995231f2b0d9eee43d1 |  | ||||||
|      |      | ||||||
|     version "0.1" |     version "0.1" | ||||||
|     organization "Rulingcom" |     organization "Rulingcom" | ||||||
|  |  | ||||||
|  | @ -2,13 +2,9 @@ zh_tw: | ||||||
| 
 | 
 | ||||||
|   miss_module_i18n: |   miss_module_i18n: | ||||||
| 
 | 
 | ||||||
|   # miss_plugin_i18n: |  | ||||||
|      |      | ||||||
|     # personal_experience: 經歷 |     # personal_experience: 經歷 | ||||||
|     # personal_honor: 榮譽 |     # personal_honor: 榮譽 | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|     # personal_project: 研究計畫 |     # personal_project: 研究計畫 | ||||||
|     # personal_research: 研究 |     # personal_research: 研究 | ||||||
|     # personal_conference: 研討會論文 |     # personal_conference: 研討會論文 | ||||||
| 
 |  | ||||||
|  |  | ||||||
|  | @ -12,6 +12,8 @@ class Panel::PersonalBook::BackEnd::WritingBooksController < OrbitBackendControl | ||||||
| 
 | 
 | ||||||
|   def index |   def index | ||||||
|    |    | ||||||
|  |   get_plugins | ||||||
|  | 
 | ||||||
|   get_categorys("BookPaperType",params[:book_paper_type_id]) |   get_categorys("BookPaperType",params[:book_paper_type_id]) | ||||||
|   @filter = params[:filter] |   @filter = params[:filter] | ||||||
|   new_filter = params[:new_filter] |   new_filter = params[:new_filter] | ||||||
|  | @ -50,6 +52,8 @@ class Panel::PersonalBook::BackEnd::WritingBooksController < OrbitBackendControl | ||||||
| 
 | 
 | ||||||
|   def writing_book_setting |   def writing_book_setting | ||||||
|    |    | ||||||
|  |     get_plugins | ||||||
|  |    | ||||||
|     @author_types = BookAuthorType.all |     @author_types = BookAuthorType.all | ||||||
|     @paper_types = BookPaperType.all |     @paper_types = BookPaperType.all | ||||||
| 	 | 	 | ||||||
|  | @ -120,6 +124,8 @@ class Panel::PersonalBook::BackEnd::WritingBooksController < OrbitBackendControl | ||||||
|   # GET /writing_books/new.xml |   # GET /writing_books/new.xml | ||||||
|   def new |   def new | ||||||
|    |    | ||||||
|  |     get_plugins | ||||||
|  |    | ||||||
|     @writing_book = WritingBook.new |     @writing_book = WritingBook.new | ||||||
|     # @writing_book_files = WritingBookFile.all |     # @writing_book_files = WritingBookFile.all | ||||||
|     # @level_types = BookLevelType.all |     # @level_types = BookLevelType.all | ||||||
|  | @ -136,6 +142,9 @@ class Panel::PersonalBook::BackEnd::WritingBooksController < OrbitBackendControl | ||||||
| 
 | 
 | ||||||
|   # GET /writing_books/1/edit |   # GET /writing_books/1/edit | ||||||
|   def edit |   def edit | ||||||
|  |    | ||||||
|  |     get_plugins | ||||||
|  | 	 | ||||||
|     @writing_book = WritingBook.find(params[:id]) |     @writing_book = WritingBook.find(params[:id]) | ||||||
| 	 | 	 | ||||||
|     # @level_types = BookLevelType.all |     # @level_types = BookLevelType.all | ||||||
|  | @ -271,7 +280,7 @@ class Panel::PersonalBook::BackEnd::WritingBooksController < OrbitBackendControl | ||||||
| 
 | 
 | ||||||
|   def delete |   def delete | ||||||
|     if params[:ids] |     if params[:ids] | ||||||
|       writing_books = WritingBook.any_in(:_id => params[:ids]).delete_all |       writing_books = WritingBook.any_in(:_id => params[:ids]).destroy_all | ||||||
|     end |     end | ||||||
|     redirect_to panel_personal_book_back_end_writing_books_url(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) |     redirect_to panel_personal_book_back_end_writing_books_url(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) | ||||||
|   end |   end | ||||||
|  | @ -303,6 +312,10 @@ class Panel::PersonalBook::BackEnd::WritingBooksController < OrbitBackendControl | ||||||
|   #   end |   #   end | ||||||
|   # end |   # end | ||||||
|    |    | ||||||
|  |   def get_plugins   | ||||||
|  |     @plugins = OrbitApp::Plugin::Registration.all | ||||||
|  |   end | ||||||
|  |    | ||||||
|   def get_tags |   def get_tags | ||||||
|   	module_app = ModuleApp.first(:conditions => {:key => 'personal_book'}) |   	module_app = ModuleApp.first(:conditions => {:key => 'personal_book'}) | ||||||
|   	@tags = Tag.all(:conditions => {:module_app_id => module_app.id}) |   	@tags = Tag.all(:conditions => {:module_app_id => module_app.id}) | ||||||
|  |  | ||||||
|  | @ -146,7 +146,7 @@ class Panel::PersonalBook::Plugin::WritingBooksController < OrbitBackendControll | ||||||
| 
 | 
 | ||||||
|   def delete |   def delete | ||||||
|     if params[:ids] |     if params[:ids] | ||||||
|       writing_books = WritingBook.any_in(:_id => params[:ids]).delete_all |       writing_books = WritingBook.any_in(:_id => params[:ids]).destroy_all | ||||||
|     end |     end | ||||||
|     redirect_to panel_personal_book_plugin_writing_books_url(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) |     redirect_to panel_personal_book_plugin_writing_books_url(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|  | @ -51,7 +51,7 @@ class WritingBook | ||||||
|    |    | ||||||
|   after_save :save_writing_book_files |   after_save :save_writing_book_files | ||||||
|    |    | ||||||
|   validates :url, :format => /^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$/ix, :unless => Proc.new{self.url.blank?} |   validates :url, :format => /^(http|https):\/\/(([a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5})|((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))(:[0-9]{1,5})?(\/.*)?/i, :unless => Proc.new{self.url.blank?} | ||||||
| 
 | 
 | ||||||
|   def self.search( category_id = nil ) |   def self.search( category_id = nil ) | ||||||
|    |    | ||||||
|  |  | ||||||
|  | @ -1,8 +1,6 @@ | ||||||
| <div id="filter" class="subnav"> | <div class="table-label"> | ||||||
| 	<div class="filters"> | 	<div id="sort_headers" class="table-label"> | ||||||
| 		<div id="sort_headers" class="table-label"> | 		<%= render 'sort_headers' %>  | ||||||
| 			<%= render 'sort_headers' %>  |  | ||||||
| 		</div> |  | ||||||
| 	</div> | 	</div> | ||||||
| </div> | </div> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,11 +1,11 @@ | ||||||
| <tr id="<%= dom_id writing_book %>" class="with_action"> | <tr id="<%= dom_id writing_book %>" class="with_action"> | ||||||
| 	<td> | 	<td class="span1"> | ||||||
| 		<% if (writing_book.create_user_id ==  current_user.id) || is_manager? %> | 		<% if (writing_book.create_user_id ==  current_user.id) || is_manager? %> | ||||||
| 			<%= check_box_tag 'to_delete[]', writing_book.id, false, :class => "checkbox_in_list" %> | 			<%= check_box_tag 'to_delete[]', writing_book.id, false, :class => "checkbox_in_list" %> | ||||||
| 		<% end -%> | 		<% end -%> | ||||||
| 	</td> | 	</td> | ||||||
| 	<td><%= writing_book.year %></td> | 	<td class="span1"><%= writing_book.year %></td> | ||||||
| 	<td> | 	<td class="span1"> | ||||||
| 	<%= link_to writing_book.create_link, panel_personal_book_front_end_writing_book_path(writing_book) %> | 	<%= link_to writing_book.create_link, panel_personal_book_front_end_writing_book_path(writing_book) %> | ||||||
| 	<div class="quick-edit"> | 	<div class="quick-edit"> | ||||||
| 		<ul class="nav nav-pills hide"> | 		<ul class="nav nav-pills hide"> | ||||||
|  | @ -16,6 +16,6 @@ | ||||||
| 		</ul> | 		</ul> | ||||||
| 	</div> | 	</div> | ||||||
| 	</td> | 	</td> | ||||||
| 	<td><%= User.from_id(writing_book.create_user_id).name rescue ''%></td> | 	<td class="span1"><%= User.from_id(writing_book.create_user_id).name rescue ''%></td> | ||||||
| </tr> | </tr> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,3 +1,14 @@ | ||||||
|  | 
 | ||||||
|  | <% content_for :side_bar do %> | ||||||
|  |   <%= render :partial => 'layouts/side_bar', :locals => {:link_name => t(:user), :link_url => admin_site_site_info_path(@site), :icon => 'icons-users', :side_bar_content => 'admin/users_new_interface/side_bar'} %> | ||||||
|  | <% end %> | ||||||
|  | 
 | ||||||
|  | <div class="subnav"> | ||||||
|  | 
 | ||||||
|  | <%= render :partial => 'admin/plugins/plugin_list' %> | ||||||
|  | 
 | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
| <h1><%= t('personal_book.editing_personal_book') %></h1> | <h1><%= t('personal_book.editing_personal_book') %></h1> | ||||||
| 
 | 
 | ||||||
| <%= form_for @writing_book, :url => panel_personal_book_back_end_writing_book_path(@writing_book), :html => {:class => 'clear'} do |f| %> | <%= form_for @writing_book, :url => panel_personal_book_back_end_writing_book_path(@writing_book), :html => {:class => 'clear'} do |f| %> | ||||||
|  |  | ||||||
|  | @ -1,12 +1,22 @@ | ||||||
|  | <% content_for :side_bar do %> | ||||||
|  |   <%= render :partial => 'layouts/side_bar', :locals => {:link_name => t(:user), :link_url => admin_site_site_info_path(@site), :icon => 'icons-users', :side_bar_content => 'admin/users_new_interface/side_bar'} %> | ||||||
|  | <% end %> | ||||||
|  | 
 | ||||||
|  | <div class="subnav"> | ||||||
|  | 
 | ||||||
|  | <%= render :partial => 'admin/plugins/plugin_list' %> | ||||||
|  | 
 | ||||||
| <%= render 'filter' %> | <%= render 'filter' %> | ||||||
|  | 
 | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
| <table class="table main-list"> | <table class="table main-list"> | ||||||
| 	<thead> | 	<thead> | ||||||
| 		<tr> | 		<tr> | ||||||
| 			<th class="span1"></th> | 			<th class="span1"></th> | ||||||
| 			<th class="span1"></th> | 			<th class="span1"></th> | ||||||
| 			<th class="span2"></th> | 			<th class="span1"></th> | ||||||
| 			<th class="span3"></th> | 			<th class="span1"></th> | ||||||
| 			<th class="span2"></th> |  | ||||||
| 		</tr> | 		</tr> | ||||||
| 	</thead> | 	</thead> | ||||||
| 	<tbody id="tbody_writing_books" class="sort-holder"> | 	<tbody id="tbody_writing_books" class="sort-holder"> | ||||||
|  |  | ||||||
|  | @ -1,10 +1,22 @@ | ||||||
| 
 | 
 | ||||||
|  | <% content_for :side_bar do %> | ||||||
|  |   <%= render :partial => 'layouts/side_bar', :locals => {:link_name => t(:user), :link_url => admin_site_site_info_path(@site), :icon => 'icons-users', :side_bar_content => 'admin/users_new_interface/side_bar'} %> | ||||||
|  | <% end %> | ||||||
|  | 
 | ||||||
|  | <div class="subnav"> | ||||||
|  | 
 | ||||||
|  | <%= render :partial => 'admin/plugins/plugin_list' %> | ||||||
|  | 
 | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
| <%= flash_messages %> | <%= flash_messages %> | ||||||
|  | 
 | ||||||
| <div id="poststuff"> | <div id="poststuff"> | ||||||
| <h1><%= t('writing_book.new_personal_book') %></h1> | <h1><%= t('writing_book.new_personal_book') %></h1> | ||||||
| <%= form_for @writing_book, :url => panel_personal_book_back_end_writing_books_path, :html => {:class => 'clear'} do |f| %> | <%= form_for @writing_book, :url => panel_personal_book_back_end_writing_books_path, :html => {:class => 'clear'} do |f| %> | ||||||
| 	<%= render :partial => 'form', :locals => {:f => f} %> | 	<%= render :partial => 'form', :locals => {:f => f} %> | ||||||
| <% end %> | <% end %> | ||||||
| </div> | </div> | ||||||
|  | 
 | ||||||
| <%#= link_back %> | <%#= link_back %> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,5 +1,14 @@ | ||||||
| <% # encoding: utf-8 %> | <% # encoding: utf-8 %> | ||||||
| 
 | 
 | ||||||
|  | <% content_for :side_bar do %> | ||||||
|  |   <%= render :partial => 'layouts/side_bar', :locals => {:link_name => t(:user), :link_url => admin_site_site_info_path(@site), :icon => 'icons-users', :side_bar_content => 'admin/users_new_interface/side_bar'} %> | ||||||
|  | <% end %> | ||||||
|  | 
 | ||||||
|  | <div class="subnav"> | ||||||
|  | 
 | ||||||
|  | <%= render :partial => 'admin/plugins/plugin_list' %> | ||||||
|  | 
 | ||||||
|  | </div> | ||||||
| 
 | 
 | ||||||
| <div id="isotope"> | <div id="isotope"> | ||||||
|             <div class="item element"> |             <div class="item element"> | ||||||
|  |  | ||||||
|  | @ -1,12 +1,9 @@ | ||||||
| module PersonalBook | module PersonalBook | ||||||
|   OrbitApp.registration "Book",:type=> 'ModuleApp' do |   OrbitApp.registration "PersonalBook",:type=> 'ModuleApp' do | ||||||
|     module_label 'module_name.personal_book' |     module_label 'module_name.personal_book' | ||||||
|     base_url File.expand_path File.dirname(__FILE__) |     base_url File.expand_path File.dirname(__FILE__) | ||||||
|     personal_plugin :enable => true,:path=>"panel/personal_book/plugin/profile",:i18n=>'module_name.personal_book' |     personal_plugin :enable => true,:path=>"panel/personal_book/plugin/profile",:admin_path=>"/panel/personal_book/back_end/writing_books",:i18n=>'module_name.personal_book' | ||||||
|      |  | ||||||
| 
 |  | ||||||
|   end |   end | ||||||
| 
 |  | ||||||
| end | end | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -12,6 +12,8 @@ class Panel::PersonalConference::BackEnd::WritingConferencesController < OrbitBa | ||||||
| 
 | 
 | ||||||
|   def index |   def index | ||||||
|    |    | ||||||
|  |   get_plugins | ||||||
|  | 
 | ||||||
|   get_categorys("ConferencePaperType",params[:conference_paper_type_id]) |   get_categorys("ConferencePaperType",params[:conference_paper_type_id]) | ||||||
|   @filter = params[:filter] |   @filter = params[:filter] | ||||||
|   new_filter = params[:new_filter] |   new_filter = params[:new_filter] | ||||||
|  | @ -51,6 +53,8 @@ class Panel::PersonalConference::BackEnd::WritingConferencesController < OrbitBa | ||||||
| 
 | 
 | ||||||
|   def writing_conference_setting |   def writing_conference_setting | ||||||
|    |    | ||||||
|  |     get_plugins | ||||||
|  |    | ||||||
|     @author_types = ConferenceAuthorType.all |     @author_types = ConferenceAuthorType.all | ||||||
|     @paper_types = ConferencePaperType.all |     @paper_types = ConferencePaperType.all | ||||||
| 	 | 	 | ||||||
|  | @ -120,6 +124,9 @@ class Panel::PersonalConference::BackEnd::WritingConferencesController < OrbitBa | ||||||
|   # GET /writing_conferences/new |   # GET /writing_conferences/new | ||||||
|   # GET /writing_conferences/new.xml |   # GET /writing_conferences/new.xml | ||||||
|   def new |   def new | ||||||
|  |    | ||||||
|  |     get_plugins | ||||||
|  | 	 | ||||||
|     @writing_conference = WritingConference.new |     @writing_conference = WritingConference.new | ||||||
|     # @writing_conference_files = WritingConferenceFile.all |     # @writing_conference_files = WritingConferenceFile.all | ||||||
|     # @paper_types = ConferenceLevelType.all |     # @paper_types = ConferenceLevelType.all | ||||||
|  | @ -135,6 +142,9 @@ class Panel::PersonalConference::BackEnd::WritingConferencesController < OrbitBa | ||||||
| 
 | 
 | ||||||
|   # GET /writing_conferences/1/edit |   # GET /writing_conferences/1/edit | ||||||
|   def edit |   def edit | ||||||
|  |    | ||||||
|  |     get_plugins | ||||||
|  | 	 | ||||||
|     @writing_conference = WritingConference.find(params[:id]) |     @writing_conference = WritingConference.find(params[:id]) | ||||||
| 	 | 	 | ||||||
|     # @paper_types = ConferenceLevelType.all |     # @paper_types = ConferenceLevelType.all | ||||||
|  | @ -269,7 +279,7 @@ class Panel::PersonalConference::BackEnd::WritingConferencesController < OrbitBa | ||||||
| 
 | 
 | ||||||
|   def delete |   def delete | ||||||
|     if params[:ids] |     if params[:ids] | ||||||
|       writing_conferences = WritingConference.any_in(:_id => params[:ids]).delete_all |       writing_conferences = WritingConference.any_in(:_id => params[:ids]).destroy_all | ||||||
|     end |     end | ||||||
|     redirect_to panel_personal_conference_back_end_writing_conferences_url(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) |     redirect_to panel_personal_conference_back_end_writing_conferences_url(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) | ||||||
|   end |   end | ||||||
|  | @ -301,6 +311,10 @@ class Panel::PersonalConference::BackEnd::WritingConferencesController < OrbitBa | ||||||
|   #   end |   #   end | ||||||
|   # end |   # end | ||||||
|    |    | ||||||
|  |   def get_plugins   | ||||||
|  |     @plugins = OrbitApp::Plugin::Registration.all | ||||||
|  |   end | ||||||
|  |    | ||||||
|   def get_tags |   def get_tags | ||||||
|   	module_app = ModuleApp.first(:conditions => {:key => 'personal_conference'}) |   	module_app = ModuleApp.first(:conditions => {:key => 'personal_conference'}) | ||||||
|   	@tags = Tag.all(:conditions => {:module_app_id => module_app.id}) |   	@tags = Tag.all(:conditions => {:module_app_id => module_app.id}) | ||||||
|  |  | ||||||
|  | @ -0,0 +1,63 @@ | ||||||
|  | class Panel::PersonalConference::Desktop::ConferenceCoAuthorRelationsController < ApplicationController | ||||||
|  |   def index | ||||||
|  |     @conference_co_author_relations = ConferenceCoAuthorRelation.all | ||||||
|  |     new | ||||||
|  | 
 | ||||||
|  |     respond_to do |format| | ||||||
|  |       format.html {render layout: false } | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def edit | ||||||
|  |     @conference_co_author_relation = ConferenceCoAuthorRelation.find(params[:id]) | ||||||
|  |     respond_to do |format| | ||||||
|  |       format.html { render :layout => false} | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def new | ||||||
|  |     @conference_co_author_relation = ConferenceCoAuthorRelation.new | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def create | ||||||
|  |     @conference_co_author_relation = ConferenceCoAuthorRelation.new(params[:conference_co_author_relation]) | ||||||
|  |     @conference_co_author_relations = ConferenceCoAuthorRelation.all | ||||||
|  | 
 | ||||||
|  |     if @conference_co_author_relation.save | ||||||
|  |       newv = render_to_string partial: "show_form", object: @conference_co_author_relations | ||||||
|  |       render json: {success: true, msg: "New Relation successfully saved!", newvalue: newv}.to_json | ||||||
|  |     else | ||||||
|  |       error_msg = @conference_co_author_relation.errors.full_messages.join("<br />") | ||||||
|  |       render json: {success: false, msg: error_msg}.to_json | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def update | ||||||
|  |     @conference_co_author_relation = ConferenceCoAuthorRelation.find(params[:id]) | ||||||
|  |     if @conference_co_author_relation.update_attributes(params[:conference_co_author_relation]) | ||||||
|  |       @conference_co_author_relations = ConferenceCoAuthorRelation.all | ||||||
|  |       newv = render_to_string partial: "show_form", object: @conference_co_author_relations | ||||||
|  |       render json: {success: true, msg: "New Relation successfully updated!", newvalue: newv}.to_json | ||||||
|  |     else | ||||||
|  |       error_msg = @conference_co_author.errors.full_messages.join("<br />") | ||||||
|  |       render json: {success: false, msg: error_msg}.to_json | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def destroy | ||||||
|  |     @conference_co_author_relation = ConferenceCoAuthorRelation.find(params[:id]) | ||||||
|  |     @conference_co_author_relation.destroy | ||||||
|  |     reset_co_author_relation | ||||||
|  | 
 | ||||||
|  |     render :json => {success: true, msg: "deleted successfully!"} | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   private | ||||||
|  | 
 | ||||||
|  |   def reset_co_author_relation | ||||||
|  |     co_author = ConferenceCoAuthor.where(co_author_relations_id: @co_author_relation.id) | ||||||
|  |     co_author.map do |c| | ||||||
|  |       c.update_attributes(co_author_relations_id: nil) | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | end | ||||||
|  | @ -0,0 +1,59 @@ | ||||||
|  | class Panel::PersonalConference::Desktop::ConferenceCoAuthorsController < ApplicationController | ||||||
|  |   def index | ||||||
|  |     nils, not_nils = ConferenceCoAuthor.where(name_id: current_user.id)\ | ||||||
|  |                      .asc(:co_author).partition{|p| p.email.nil?} | ||||||
|  |     @conference_co_authors = not_nils + nils | ||||||
|  |     @conference_co_author_relations = ConferenceCoAuthorRelation.all | ||||||
|  | 
 | ||||||
|  |     respond_to do |format| | ||||||
|  |       format.html { render :layout => false} | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def new | ||||||
|  |     @conference_co_author = ConferenceCoAuthor.new | ||||||
|  |     @conference_co_author_relations = ConferenceCoAuthorRelation.all | ||||||
|  | 
 | ||||||
|  |     respond_to do |format| | ||||||
|  |       format.html { render :layout => false} | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def edit | ||||||
|  |     @conference_co_author = ConferenceCoAuthor.find(params[:id]) | ||||||
|  |     @conference_co_author_relations = ConferenceCoAuthorRelation.all | ||||||
|  |     respond_to do |format| | ||||||
|  |       format.html { render :layout => false} | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def create | ||||||
|  |     @conference_co_author = ConferenceCoAuthor.new(params[:conference_co_author]) | ||||||
|  |     @conference_co_author.name_id= current_user.id | ||||||
|  | 
 | ||||||
|  |     if @conference_co_author.save | ||||||
|  |       render json: {success:true, msg: t('create.sucess.co_author')}.to_json | ||||||
|  |     else | ||||||
|  |       error_msg = @conference_co_author.errors.full_messages.join("<br />") | ||||||
|  |       render json: {success: false, msg: error_msg}.to_json | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def update | ||||||
|  |     @conference_co_author = ConferenceCoAuthor.find(params[:id]) | ||||||
|  | 
 | ||||||
|  |     if @conference_co_author.update_attributes(params[:co_author]) | ||||||
|  |       render json: {success:true, msg: t('update.sucess.co_author')}.to_json | ||||||
|  |     else | ||||||
|  |       error_msg = @conference_co_author.errors.full_messages.join("<br />") | ||||||
|  |       render json: {success: false, msg: error_msg}.to_json | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def destroy | ||||||
|  |     @conference_co_author = ConferenceCoAuthor.find(params[:id]) | ||||||
|  |     @conference_co_author.destroy | ||||||
|  | 
 | ||||||
|  |     render :json => {success: true, msg: "Co-author deleted successfully!"} | ||||||
|  |   end | ||||||
|  | end | ||||||
|  | @ -1,5 +0,0 @@ | ||||||
| class Panel::PersonalConference::Desktop::ConferencePController < ApplicationController |  | ||||||
|   def conference_p |  | ||||||
|     render panel_personal_conference_desktop_conference_p_path, :layout => false |  | ||||||
|   end |  | ||||||
| end |  | ||||||
|  | @ -1,11 +1,82 @@ | ||||||
| class Panel::PersonalConference::Desktop::ConferencePagesController < ApplicationController | class Panel::PersonalConference::Desktop::ConferencePagesController < ApplicationController | ||||||
|   def index |   def index | ||||||
|  |     @writing_conferences = WritingConference.all | ||||||
|  |     @level_types = ConferencePaperType.all | ||||||
|  | 
 | ||||||
|     respond_to do |format| |     respond_to do |format| | ||||||
|       format.html { render :layout => false} |       format.html { render :layout => false} | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |   def show | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|   def new |   def new | ||||||
|  |     @writing_conference = WritingConference.new | ||||||
|  |     @paper_types = ConferencePaperType.all | ||||||
|  |     @author_types = ConferenceAuthorType.all | ||||||
|  |     #@co_author_candidate = | ||||||
|  |     #  CoAuthor.where(name_id: current_user.id).map{|c|c.co_author} | ||||||
|  |     #@conference_candidate = | ||||||
|  |     #  WritingConference.where(create_user_id: current_user.id).map{|j|j.conference_title}.uniq | ||||||
|  | 
 | ||||||
|  |     respond_to do |format| | ||||||
|  |       format.html { render :layout => false} | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def edit | ||||||
|  |     @writing_conference = WritingConference.find(params[:id]) | ||||||
|  |     @paper_types = ConferencePaperType.all | ||||||
|  |     @author_types = ConferenceAuthorType.all | ||||||
|  |     respond_to do |format| | ||||||
|  |       format.html { render :layout => false} | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def create | ||||||
|  |     params[:writing_conference][:create_user_id] = current_user.id | ||||||
|  |     @writing_conference = WritingConference.new(params[:writing_conference]) | ||||||
|  | 
 | ||||||
|  |     if @writing_conference.save | ||||||
|  |       render json: {success: true, msg: t('create.success.paper')}.to_json | ||||||
|  |     else | ||||||
|  |       error_msg = @writing_conference.errors.full_messages.join("<br />") | ||||||
|  |       render json: {success: false, msg: error_msg}.to_json | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def update | ||||||
|  |     params[:writing_conference][:update_user_id] = current_user.id | ||||||
|  |     @writing_conference= WritingConference.find(params[:id]) | ||||||
|  | 
 | ||||||
|  |     if @writing_conference.update_attributes(params[:writing_conference]) | ||||||
|  |       render json: {success: true, msg: t('update.success.paper')}.to_json | ||||||
|  |     else | ||||||
|  |       error_msg = @writing_conference.errors.full_messages.join("<br />") | ||||||
|  |       render json: {success: false, msg: error_msg}.to_json | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def destroy | ||||||
|  |     @writing_conference = WritingConference.find(params[:id]) | ||||||
|  |     @writing_conference.destroy | ||||||
|  |     render :json => {success: true, msg: t('delete.success.paper')} | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def conference_type | ||||||
|  |     conference_types = ConferencePaperType.all | ||||||
|  |     all_conference_lists = WritingConference.where(create_user_id: current_user.id) | ||||||
|  |     all_conference_lists = all_conference_lists.map do |j| | ||||||
|  |       [ j.conference_title, | ||||||
|  |         j.conference_paper_type_ids.map do |type| | ||||||
|  |           conference_types.find(type).title | ||||||
|  |         end | ||||||
|  |       ] | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     @conference_lists = all_conference_lists.uniq | ||||||
|  | 
 | ||||||
|     respond_to do |format| |     respond_to do |format| | ||||||
|       format.html { render :layout => false} |       format.html { render :layout => false} | ||||||
|     end |     end | ||||||
|  |  | ||||||
|  | @ -0,0 +1,5 @@ | ||||||
|  | class Panel::PersonalConference::Desktop::ConferenceWindowsController < ApplicationController | ||||||
|  |   def conference_window | ||||||
|  |     render panel_personal_conference_desktop_conference_window_path, :layout => false | ||||||
|  |   end | ||||||
|  | end | ||||||
|  | @ -0,0 +1,31 @@ | ||||||
|  | class Panel::PersonalConference::FrontEnd::WritingConferencesController < OrbitWidgetController | ||||||
|  | 
 | ||||||
|  |   def initialize | ||||||
|  |     super | ||||||
|  |     @app_title = 'personal_conference' | ||||||
|  |   end | ||||||
|  |    | ||||||
|  | 
 | ||||||
|  |   def index | ||||||
|  | 	 | ||||||
|  | 	@writing_conferences = WritingConference.desc(:year).page(params[:page]).per(10) | ||||||
|  | 	 | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   # GET /writing_conferences/1 | ||||||
|  |   # GET /writing_conferences/1.xml | ||||||
|  |   def show | ||||||
|  |     @writing_conference = WritingConference.find(params[:id]) | ||||||
|  | 	 | ||||||
|  | 	@conference_paper_types = ( !@writing_conference.conference_paper_types.blank? ? @writing_conference.conference_paper_types.collect{|x| x.title}.join(', ') : nil) | ||||||
|  | 	@conference_author_types = ( !@writing_conference.conference_author_types.blank? ? @writing_conference.conference_author_types.collect{|x| x.title}.join(', ') : nil) | ||||||
|  |    | ||||||
|  |   end | ||||||
|  |    | ||||||
|  |    | ||||||
|  |   def get_tags | ||||||
|  |   	module_app = ModuleApp.first(:conditions => {:key => 'personal_conference'}) | ||||||
|  |   	@tags = Tag.all(:conditions => {:module_app_id => module_app.id}) | ||||||
|  |   end | ||||||
|  |    | ||||||
|  | end | ||||||
|  | @ -147,7 +147,7 @@ class Panel::PersonalConference::Plugin::WritingConferencesController < OrbitBac | ||||||
| 
 | 
 | ||||||
|   def delete |   def delete | ||||||
|     if params[:ids] |     if params[:ids] | ||||||
|       writing_conferences = WritingConference.any_in(:_id => params[:ids]).delete_all |       writing_conferences = WritingConference.any_in(:_id => params[:ids]).destroy_all | ||||||
|     end |     end | ||||||
|     redirect_to panel_personal_conference_plugin_writing_conferences_url(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) |     redirect_to panel_personal_conference_plugin_writing_conferences_url(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|  | @ -0,0 +1,65 @@ | ||||||
|  | module Panel::PersonalConference::Desktop::ConferencePagesHelper | ||||||
|  |   def publication_record publication | ||||||
|  |     content_tag :li, | ||||||
|  |       :class => "list_t_item" do | ||||||
|  |         marker + \ | ||||||
|  |         content(publication) + \ | ||||||
|  |         edit_or_delete(publication) | ||||||
|  |       end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def marker | ||||||
|  |     content_tag :div, | ||||||
|  |      :class => "list_item_action" | ||||||
|  |       content_tag(:a, "", :class => "icon-check-empty") + \ | ||||||
|  |       content_tag(:a, "", :class => "icon-star-empty") | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def content publication | ||||||
|  |     content_tag(:div, "conference : " + publication.conference_title, | ||||||
|  |       :class => "list_t_title") + \ | ||||||
|  |     content_tag(:div, "title : " + publication.paper_title, | ||||||
|  |       :class => "list_t_des")   + \ | ||||||
|  |     content_tag(:div, "keyword :" + publication.keywords, | ||||||
|  |       :class => "list_t_des")   + \ | ||||||
|  |     content_tag(:div, "abstract : " + publication.abstract, | ||||||
|  |       :class => "list_t_des")   + \ | ||||||
|  |     content_tag(:div, link_publication_file(publication), | ||||||
|  |       :class => "list_t_des") | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def edit_or_delete publication | ||||||
|  |     content_tag :div, | ||||||
|  |       :class => "list_item_function" do | ||||||
|  |       content_tag(:a, t("edit"), | ||||||
|  |        :class => "journal_paper_edit admbg2 admtxt", | ||||||
|  |        :href => edit_panel_personal_conference_desktop_conference_page_path(publication), | ||||||
|  |        "ajax-remote" => "get") + \ | ||||||
|  |       content_tag(:a, t("delete"), | ||||||
|  |         "ajax-remote" => "delete", | ||||||
|  |         "confirm-message" => t("sure?"), | ||||||
|  |         "callback-method" => "paperDelete", | ||||||
|  |         :class => "journal_paper_delete admbg2 admtxt", | ||||||
|  |         :href => panel_personal_conference_desktop_conference_page_path(publication)) | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def link_publication_file publication | ||||||
|  |     publication.writing_conference_files.map{|file| | ||||||
|  |       link_to(image_tag(check_file_type(file.file.url)) + \ | ||||||
|  |         content_tag(:span, file.title, :class => "filetitle"), | ||||||
|  |         file.file.url, | ||||||
|  |         :class => "file", | ||||||
|  |         "target" => "_blank") | ||||||
|  |     }.inject(:+) | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def check_file_type file | ||||||
|  |     if not file.nil? | ||||||
|  |       file_type = MIME::Types.type_for(file).first.to_s.split("/")[1] | ||||||
|  |       file_type = "/assets/ft-icons/#{file_type}/#{file_type}-48_32.png" | ||||||
|  |     else | ||||||
|  |       file_type = "" | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | end | ||||||