diff --git a/.gitignore b/.gitignore index d27ac727..d1d50dad 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,3 @@ config/application.rb app/assets/javascripts/.DS_Store solr -Gemfile.lock diff --git a/Gemfile b/Gemfile index de03e4fd..7ea9f783 100644 --- a/Gemfile +++ b/Gemfile @@ -76,8 +76,8 @@ group :test, :development do gem 'pry-remote' gem 'pry-stack_explorer' gem 'pry-debugger' + gem 'debugger' gem 'faker' - gem "sunspot-rails-tester" gem 'database_cleaner' #Strategies for cleaning databases. Can be used to ensure a clean state for testing. gem "rspec", "~> 2.0" @@ -93,4 +93,3 @@ group :test, :development do # gem "bluecloth" end -gem 'debugger' diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 00000000..f802d2fa --- /dev/null +++ b/Gemfile.lock @@ -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 diff --git a/app/assets/stylesheets/mobile/orbit-mobile.css.erb b/app/assets/stylesheets/mobile/orbit-mobile.css.erb.css similarity index 97% rename from app/assets/stylesheets/mobile/orbit-mobile.css.erb rename to app/assets/stylesheets/mobile/orbit-mobile.css.erb.css index 72a3c887..dff993c8 100644 --- a/app/assets/stylesheets/mobile/orbit-mobile.css.erb +++ b/app/assets/stylesheets/mobile/orbit-mobile.css.erb.css @@ -35,7 +35,7 @@ div[data-role="page"] { } .main-menu ul { background-color: #333; - width: 280px; + width: 210px; list-style: none; margin: 0 auto; padding: 0; @@ -128,8 +128,8 @@ div[data-role="page"] { left: 0; } .header .language .ui-btn-text i { - font-size: .83em; - margin-top: .2em; + font-size: 1.1em; + margin-top: .33em; } .header .language .ui-icon { background-image: none; @@ -213,6 +213,9 @@ div[data-role="page"] { padding: 0 10px 20px; margin-bottom: 0; } +#announcement_content .content { + padding: 10px; +} #map div[data-role="content"] { padding: 0; } @@ -323,7 +326,7 @@ div[id^="dialog"] .content { } @media(min-width:600px) { .main-menu ul { - width: 560px; + width: 420px; } .main-menu ul li { width: 128px; @@ -331,7 +334,7 @@ div[id^="dialog"] .content { } @media(min-width:768px) { .main-menu ul { - width: 640px; + width: 480px; } .main-menu ul li { width: 148px; @@ -342,7 +345,7 @@ div[id^="dialog"] .content { } @media(min-width:800px) { .main-menu ul { - width: 640px; + width: 480px; } .main-menu ul li { width: 148px; @@ -350,7 +353,7 @@ div[id^="dialog"] .content { } @media(min-width:961px) { .main-menu ul { - width: 640px; + width: 480px; } .main-menu ul li { width: 148px; @@ -358,7 +361,7 @@ div[id^="dialog"] .content { } @media(min-width: 1024px) { .main-menu ul { - width: 800px; + width: 600px; } .main-menu ul li { width: 188px; diff --git a/app/controllers/admin/assets_controller.rb b/app/controllers/admin/assets_controller.rb index 77c52ffa..d458045b 100644 --- a/app/controllers/admin/assets_controller.rb +++ b/app/controllers/admin/assets_controller.rb @@ -88,7 +88,7 @@ class Admin::AssetsController < OrbitBackendController def delete if params[:ids] - asset = Asset.any_in(:_id => params[:ids]).delete_all + asset = Asset.any_in(:_id => params[:ids]).destroy_all end redirect_to assets_url(:filter => params[:filter], :direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) end diff --git a/app/controllers/admin/designs_controller.rb b/app/controllers/admin/designs_controller.rb index a661a5c1..826c025d 100644 --- a/app/controllers/admin/designs_controller.rb +++ b/app/controllers/admin/designs_controller.rb @@ -114,7 +114,7 @@ class Admin::DesignsController < OrbitBackendController def delete if params[:ids] - designs = Design.any_in(:_id => params[:ids]).delete_all + designs = Design.any_in(:_id => params[:ids]).destroy_all end redirect_to admin_designs_url(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) end diff --git a/app/controllers/admin/pages_controller.rb b/app/controllers/admin/pages_controller.rb index f2de0c9e..77930205 100644 --- a/app/controllers/admin/pages_controller.rb +++ b/app/controllers/admin/pages_controller.rb @@ -36,12 +36,11 @@ helper Admin::PagePartsHelper if @item.module_app @module_app = @item.module_app - - @frontend_path = @item.app_frontend_url ? @item.app_frontend_url : @module_app.widgets.keys[0] + @frontend_path = @item.app_frontend_url - 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? - end + 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? + end case @item.module_app.key when 'announcement' @@ -59,7 +58,7 @@ helper Admin::PagePartsHelper end else @categories = nil - @module_app = @module_apps[0] + @module_app = @module_apps[0] end end diff --git a/app/controllers/admin/sub_roles_controller.rb b/app/controllers/admin/sub_roles_controller.rb index e39f783d..f28149ea 100644 --- a/app/controllers/admin/sub_roles_controller.rb +++ b/app/controllers/admin/sub_roles_controller.rb @@ -1,4 +1,4 @@ -class Admin::SubRolesController < RolesController +class Admin::SubRolesController < Admin::RolesController end diff --git a/app/controllers/default_widget_controller.rb b/app/controllers/default_widget_controller.rb index 956a2a53..bb7600eb 100644 --- a/app/controllers/default_widget_controller.rb +++ b/app/controllers/default_widget_controller.rb @@ -11,31 +11,40 @@ class DefaultWidgetController< OrbitWidgetController end 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 - @widget_image_field = @default_widget["image"] || @default_widget[:image] - data_limit = case @page_part - when Page - @fields = @page_part.frontend_field - @page_part.frontend_data_count.is_a?(Fixnum) ? @page_part.frontend_data_count : (@page_part.frontend_data_count.to_i rescue 3) - when PagePart - @fields = @page_part.widget_field - @page_part.widget_data_count.is_a?(Fixnum) ? @page_part.widget_data_count : (@page_part.widget_data_count.to_i rescue 3) + @default_widget = @page_part.module_app.get_default_widget + @widget_image_field = @default_widget["image"] || @default_widget[:image] + case @page_part + when Page + @fields = @page_part.frontend_field + @data_limit = @page_part.frontend_data_count.is_a?(Fixnum) ? @page_part.frontend_data_count : (@page_part.frontend_data_count.to_i rescue 3) + @paginate = true + @page_id = @page_part.id + when PagePart + @fields = @page_part.widget_field + @data_limit = @page_part.widget_data_count.is_a?(Fixnum) ? @page_part.widget_data_count : (@page_part.widget_data_count.to_i rescue 3) + end + if @paginate + @data = eval(@default_widget["query"]).includes(@widget_image_field).page(params[:page_main]).per(@data_limit).desc(:created_at) + else + @data = eval(@default_widget["query"]).limit(@data_limit).includes(@widget_image_field).desc(:created_at) + end + case params[:type] + when "typeA" + @tag_class = 'default_widget_typeA' + @partial = "typeA" + when /typeB_/ + @tag_class = "default_widget_#{params[:type]}" + @partial = "typeB" + when "typeC" + @tag_class = 'default_widget_typeC' + @partial = "typeC" + end end - @data = eval(@default_widget["query"]).limit(data_limit).includes(@widget_image_field).desc(:created_at) - case params[:type] - when "typeA" - @tag_class = 'default_widget_typeA' - render "typeA" - when /typeB_/ - @tag_class = "default_widget_#{params[:type]}" - render "typeB" - when "typeC" - @tag_class = 'default_widget_typeC' - render "typeC" - end - end - + end diff --git a/app/controllers/front_controller.rb b/app/controllers/front_controller.rb index eb14b25d..be975ffa 100644 --- a/app/controllers/front_controller.rb +++ b/app/controllers/front_controller.rb @@ -2,6 +2,11 @@ class FrontController < ApplicationController layout false + def show_breadcrumb + @ancestors = Page.find(params[:id]).ancestors_and_self + @ancestors = nil if @ancestors.size == 1 + end + def show_banner @ad_banner = AdBanner.find(params[:id]) rescue nil end diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index 57e6a5ff..ef9e3e77 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -64,17 +64,23 @@ class PagesController < ApplicationController protected def get_item - module_app = ModuleApp.first(:conditions => {:key => params[:app_name]}) - if !params[:category_id].blank? && !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 => params[:tag_id]}) - @item = Item.first(:conditions => {:module_app_id => module_app.id, :app_frontend_url => params[:app_action], :category => params[:category_id], :tag => ''}) unless @item - 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 + if params[:same_page_id] + @item = Item.find(params[:same_page_id]) + else + module_app = ModuleApp.first(:conditions => {:key => params[:app_name]}) + if !params[:category_id].blank? && !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 => params[:tag_id]}) + @item = Item.first(:conditions => {:module_app_id => module_app.id, :app_frontend_url => params[:app_action], :category => params[:category_id], :tag => ''}) unless @item + 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 - @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? end diff --git a/app/helpers/default_widget_helper.rb b/app/helpers/default_widget_helper.rb index 913c77ee..fdaa638f 100644 --- a/app/helpers/default_widget_helper.rb +++ b/app/helpers/default_widget_helper.rb @@ -3,24 +3,24 @@ module DefaultWidgetHelper I18n.t("#{@page_part.module_app.key}.default_widget.#{field}") 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 field = field.to_sym if(method_ary.has_key?(field) and (switch == "true")) url = case method_ary[field][:args] when nil # no args - get_data_link(method_ary[field][:method]) + get_data_link(method_ary[field]["method"], options) 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 ary = method_ary[field][:args].clone object_hash = ary.each do |key,val| ary[key]= type_trans_or_to_s(row_data.send(val[0]).send(val[1])) end - get_data_link(method_ary[field][:method],object_hash) + get_data_link(method_ary[field]['method'], options,object_hash) end - - link_to row_data.send(field),url + + link_to row_data.send(field), url else type_trans_or_to_s(row_data.send(field) ) end @@ -45,13 +45,17 @@ module DefaultWidgetHelper end end - def get_data_link(method_entry,object = nil) + def get_data_link(method_entry, options=nil, object = nil) case object - when nil - eval method_entry + when NilClass + 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 - object = "'#{object.to_s}'" if object.class == BSON::ObjectId - eval("#{method_entry}(#{object})" ) + '' end end diff --git a/app/models/ad_image.rb b/app/models/ad_image.rb index aad34852..4d5227c9 100644 --- a/app/models/ad_image.rb +++ b/app/models/ad_image.rb @@ -23,7 +23,7 @@ class AdImage belongs_to :ad_banner 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? if (self.post_date <= Date.today && (self.unpost_date.nil? || self.unpost_date>= Date.today) rescue false) diff --git a/app/models/item.rb b/app/models/item.rb index a670435f..a149358f 100644 --- a/app/models/item.rb +++ b/app/models/item.rb @@ -12,7 +12,7 @@ class Item field :enabled_for, :type => Array, :default => nil field :menu_enabled_for, :type => Array, :default => nil field :title, localize: true - field :sitemap_enabled, :type => Hash + field :sitemap_enabled, :type => Hash, :default => {} validates_format_of :name, :with => /^[0-9a-zA-Z\-_]+$/ @@ -23,6 +23,7 @@ class Item before_destroy :destroy_children after_rearrange :rebuild_path, :if => "parent_id_changed? || name_changed?" + after_save :rebuild_children_path, :if => "path_changed?" def enabled_for_lang(lang) enabled_for.include?(lang) @@ -57,7 +58,7 @@ class Item end 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 else true @@ -68,7 +69,6 @@ class Item def rebuild_path self.path = (self.ancestors_and_self - [Item.root]).collect{|x| x.name unless x.root?}.join('/') - self.rebuild_children_path end def rebuild_children_path diff --git a/app/models/link.rb b/app/models/link.rb index ccd79c89..d3e1448c 100644 --- a/app/models/link.rb +++ b/app/models/link.rb @@ -2,7 +2,7 @@ class Link < Item 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 diff --git a/app/models/page.rb b/app/models/page.rb index bc257eaa..1f13d64c 100644 --- a/app/models/page.rb +++ b/app/models/page.rb @@ -27,6 +27,11 @@ class Page < Item before_save :create_parts, if: Proc.new { |page| page.new_record? || page.design_id_changed? } before_save :delete_empty_frontend_field, :generate_html + def generate_parts + create_parts + self.save + end + protected def create_parts diff --git a/app/views/admin/page_parts/_public_r_tag.html.erb b/app/views/admin/page_parts/_public_r_tag.html.erb index 68f91dbc..9a3ce984 100644 --- a/app/views/admin/page_parts/_public_r_tag.html.erb +++ b/app/views/admin/page_parts/_public_r_tag.html.erb @@ -7,7 +7,8 @@ <%= 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)) %> <% elsif @r_tag.eql?('sitemap') %> + <% elsif @r_tag.eql?('breadcrumb') %> <% else %> <%= f.select :public_r_tag_object_id, options_from_collection_for_select(@tag_objects, :id, :title, :selected => @part.public_r_tag_object_id) %> <% end %> - \ No newline at end of file + diff --git a/app/views/admin/sites/sitemap_frontend.html.erb b/app/views/admin/sites/sitemap_frontend.html.erb deleted file mode 100644 index bf126c90..00000000 --- a/app/views/admin/sites/sitemap_frontend.html.erb +++ /dev/null @@ -1,23 +0,0 @@ -
- <% @items.each_with_index do |item, i| %> -
-

<%= i+1 %> <%= item.title %>

- -
- <% end %> -
- -<%= javascript_include_tag "lib/jquery.masonry.min.js" %> - \ No newline at end of file diff --git a/app/views/default_widget/typeA.html.erb b/app/views/default_widget/_typeA.html.erb similarity index 79% rename from app/views/default_widget/typeA.html.erb rename to app/views/default_widget/_typeA.html.erb index 20ce3dbd..42302484 100644 --- a/app/views/default_widget/typeA.html.erb +++ b/app/views/default_widget/_typeA.html.erb @@ -11,7 +11,7 @@ <% @data.each do |row_data| %> <% @fields.each do |field|%> - <%= content_tag(:span,link_to_field(row_data,field[0],field[2]),: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 %> diff --git a/app/views/default_widget/typeB.html.erb b/app/views/default_widget/_typeB.html.erb similarity index 88% rename from app/views/default_widget/typeB.html.erb rename to app/views/default_widget/_typeB.html.erb index 12dade57..fcf70065 100644 --- a/app/views/default_widget/typeB.html.erb +++ b/app/views/default_widget/_typeB.html.erb @@ -7,7 +7,7 @@
<% @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 %> diff --git a/app/views/default_widget/typeC.html.erb b/app/views/default_widget/_typeC.html.erb similarity index 74% rename from app/views/default_widget/typeC.html.erb rename to app/views/default_widget/_typeC.html.erb index 1fa99ee0..d3b3e49f 100644 --- a/app/views/default_widget/typeC.html.erb +++ b/app/views/default_widget/_typeC.html.erb @@ -6,7 +6,7 @@ <% @data.each do |row_data| %> <%= content_tag(:li) do %> <% @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 %> diff --git a/app/views/default_widget/default_widget.html.erb b/app/views/default_widget/default_widget.html.erb new file mode 100644 index 00000000..b134d8ad --- /dev/null +++ b/app/views/default_widget/default_widget.html.erb @@ -0,0 +1,4 @@ +<%= render @partial %> +<% if @paginate %> + <%= paginate @data, :param_name => :page_main, :params => {:same_page_id => @page_id} %> +<% end %> \ No newline at end of file diff --git a/app/views/desktop/index.html.erb b/app/views/desktop/index.html.erb index 7446117b..57f205a6 100644 --- a/app/views/desktop/index.html.erb +++ b/app/views/desktop/index.html.erb @@ -13,7 +13,7 @@
  • Journal Papers
  • -
  • Conference Papers
  • +
  • Conference Papers
  • Books
  • diff --git a/app/views/front/show_breadcrumb.html.erb b/app/views/front/show_breadcrumb.html.erb new file mode 100644 index 00000000..d06d70e2 --- /dev/null +++ b/app/views/front/show_breadcrumb.html.erb @@ -0,0 +1,15 @@ +<% unless @ancestors.blank? %> + +<% end %> \ No newline at end of file diff --git a/app/views/front/show_page_sub_menu.html.erb b/app/views/front/show_page_sub_menu.html.erb index ebe51f73..9f985d3c 100644 --- a/app/views/front/show_page_sub_menu.html.erb +++ b/app/views/front/show_page_sub_menu.html.erb @@ -1,6 +1,6 @@ <% if @menu_page && @menu_page.visible_children.size > 0 %>
    -

    <%= @menu_page.title %>

    +
    + + + + + + diff --git a/vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_pages/_form_file.html.erb b/vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_pages/_form_file.html.erb new file mode 100644 index 00000000..dfbf9f22 --- /dev/null +++ b/vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_pages/_form_file.html.erb @@ -0,0 +1,31 @@ +" class="list_item"> + +
    + <% if form_file.new_record? %> + <%= f.file_field :file, class: "s_grid_2 s_grid" %> + <% end %> +
    + + + <%= f.text_field :title %> + <%= f.fields_for :file_title_translations do |f| %> + <%= f.text_field locale, + class: 's_grid_3 s_grid', + value: (form_file.file_title_translations[locale] rescue nil) %> + <% end %> + + + + + <% if form_file.new_record? %> + + <% else %> + <%= f.hidden_field :id %> + + <%= f.hidden_field :should_destroy, :value => nil, :class => 'should_destroy' %> + <% end %> + <%= form_file.file.file ? ( link_to '', form_file.file.url, {:class => 'icon-eye-open', :target => '_blank', :title => t(:view)} ) : '' %> + + + + diff --git a/vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_pages/conference_type.html.erb b/vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_pages/conference_type.html.erb new file mode 100644 index 00000000..a4fd58b2 --- /dev/null +++ b/vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_pages/conference_type.html.erb @@ -0,0 +1,40 @@ +
    +
    +
    Share
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + <% @conference_lists.each_with_index do |conference_list,i| %> + <% if ( i % 5 ) == 0 %> +
    +
      + <% end %> +
    • +
      + +
      + <% title, level = conference_list %> +
      <%= title %>
      +
      <%= level.join(",") %>
      +
    • + <% if ( i % 5 ) == 4 %> +
    +
    + <% end %> + <% end %> +
    +
    +
    diff --git a/vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_pages/edit.html.erb b/vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_pages/edit.html.erb new file mode 100644 index 00000000..860d2ef4 --- /dev/null +++ b/vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_pages/edit.html.erb @@ -0,0 +1,4 @@ +<%= form_for @writing_conference, html: { multipart: true, "form-type"=>"ajax_form", "callback-method"=>"formCallback"}, url: panel_personal_conference_desktop_conference_page_path(@writing_conference) do |f| %> + <%= render partial: 'form', locals: {:f => f} %> +<%end%> + diff --git a/vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_pages/index.html.erb b/vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_pages/index.html.erb index e32e4d6c..7a3848df 100644 --- a/vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_pages/index.html.erb +++ b/vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_pages/index.html.erb @@ -1,75 +1,77 @@
    -
    -
    -
    - -
    -
    -
    -
    More
    -
    - -
    -
    -
    -
    Tag
    -
    - -
    -
    -
    -
    Status
    -
    - -
    -
    -
    -
    View
    -
    - -
    -
    -
    -
    Share
    -
    - -
    -
    -
    -
    -
    +
    +
    +
    + +
    +
    +
    +
    More
    +
    + +
    +
    +
    +
    Tag
    +
    + +
    +
    +
    +
    Status
    +
    + +
    +
    +
    +
    View
    + +
    +
    +
    Share
    +
    + +
    +
    +
    +
    +
    -
    -
    -
    - -
    -
    -
    \ No newline at end of file +
    +
    +
    + <% @writing_conferences.each do |w| %> + <%= publication_record w%> + <% end %> +
    +
    + diff --git a/vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_pages/new.html.erb b/vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_pages/new.html.erb index 28283456..eb8f8751 100644 --- a/vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_pages/new.html.erb +++ b/vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_pages/new.html.erb @@ -1,107 +1,4 @@ -
    -
    - - -
    -
    -
    Year
    -
    - -
    -
    -
    -
    Language
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
      -
    • -
    • - OralPoster
    • -
    • - -
    • - - - - - -
    • +<%= form_for @writing_conference, html: { multipart: true, "form-type"=>"ajax_form", "callback-method"=>"formCallback"}, url: panel_personal_conference_desktop_conference_pages_path do |f| %> + <%= render partial: 'panel/personal_conference/desktop/conference_pages/form', locals: {:f => f} %> +<%end%> -
    • -
    • - -
    -
    -
    -
      -
    • -
    • - - -
    • - -
    • - -
    • -
    • -
    • -
    • -
    • - - -
    -
    -
    -
      -
    • -
    • -
    -
    -
    -
    -
    diff --git a/vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_p.html.erb b/vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_window.html.erb similarity index 64% rename from vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_p.html.erb rename to vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_window.html.erb index 23e1484c..303aa092 100644 --- a/vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_p.html.erb +++ b/vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_window.html.erb @@ -13,10 +13,10 @@