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/admin/default_widget_setting.css b/app/assets/stylesheets/admin/default_widget_setting.css index 6db0cc82..1743849a 100644 --- a/app/assets/stylesheets/admin/default_widget_setting.css +++ b/app/assets/stylesheets/admin/default_widget_setting.css @@ -31,5 +31,5 @@ label{ } label{ - white-space: nowrap !important ; -} + white-space: nowrap !important ; +} 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 46e2ecd0..c15c9d22 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/plugins_controller.rb b/app/controllers/admin/plugins_controller.rb index feeff300..57cb9ad8 100644 --- a/app/controllers/admin/plugins_controller.rb +++ b/app/controllers/admin/plugins_controller.rb @@ -4,10 +4,20 @@ class Admin::PluginsController < ApplicationController def index - @plugins = OrbitApp::Module::Registration.all + @plugins = OrbitApp::Plugin::Registration.all 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 @right_partial = "admin/users_new_interface/plugin_summary" 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 0963b18a..6f05c0ff 100644 --- a/app/controllers/default_widget_controller.rb +++ b/app/controllers/default_widget_controller.rb @@ -32,7 +32,11 @@ 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] case @page_part @@ -47,8 +51,10 @@ class DefaultWidgetController< OrbitWidgetController end if @paginate @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 - @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 case params[:type] when "typeA" @@ -64,7 +70,7 @@ class DefaultWidgetController< OrbitWidgetController @partial = "typeC" render "typeC" end - + 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 545105fd..be9c02e7 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/attributes/edit.html.erb b/app/views/admin/attributes/edit.html.erb index aa87d73c..252cdf71 100644 --- a/app/views/admin/attributes/edit.html.erb +++ b/app/views/admin/attributes/edit.html.erb @@ -8,6 +8,20 @@

<%= t(eval(":#{@attribute_type}"))%>

+ +
+ +
+ <% if @attribute.new_record? %> + <%= f.text_field :key, :placeholder => t(:key) %> + <% else %> +
<%= @attribute.key%>
+ <% end %> +
+
+ <%= 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]"}%> + +
@@ -23,24 +37,13 @@
-
- -
- <% if @attribute.new_record? %> - <%= f.text_field :key, :placeholder => t(:key) %> - <% else %> -
<%= @attribute.key%>
- <% end %> -
-
- <%= 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]"}%>
<% if @attribute._type == "Info" %>
-

<%= @attribute.title+ t(:attributes)%>

+

<%= @attribute.title+ t(:field)%>

<%= render :partial=>"shared/attribute_field/attribute_field",:collection=>@attribute.attribute_fields%>
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/plugins/_plugin_list.html.erb b/app/views/admin/plugins/_plugin_list.html.erb new file mode 100644 index 00000000..f583f92e --- /dev/null +++ b/app/views/admin/plugins/_plugin_list.html.erb @@ -0,0 +1,18 @@ +
+
+
+
+ +
+
\ No newline at end of file diff --git a/app/views/admin/plugins/index.html.erb b/app/views/admin/plugins/index.html.erb index f2b0c21b..cb0d5c7e 100644 --- a/app/views/admin/plugins/index.html.erb +++ b/app/views/admin/plugins/index.html.erb @@ -4,23 +4,6 @@
-
-
-
-
- -
-
+ <%= render :partial => 'plugin_list' %> <%= render :partial => @right_partial %>
\ No newline at end of file diff --git a/app/views/admin/roles/_attribute_field.html.erb b/app/views/admin/roles/_attribute_field.html.erb index 8ec2675d..d9acf6de 100644 --- a/app/views/admin/roles/_attribute_field.html.erb +++ b/app/views/admin/roles/_attribute_field.html.erb @@ -10,6 +10,17 @@ <%= hidden_field "#{@field_name}[attribute_fields][#{@af_counter}]","to_delete",:value=>false,:class=>"attribute_field_to_delete"%> <%= t(:delete_)%>
+
+ +
+
+ <%= text_field "#{@field_name}[attribute_fields][#{@af_counter}]","key",:value=>attribute_field.key%> +
+
+
+ <%= 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]"}%> + +
@@ -21,15 +32,8 @@
-
- -
-
- <%= text_field "#{@field_name}[attribute_fields][#{@af_counter}]","key",:value=>attribute_field.key%> -
-
-
- <%= 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]"}%> + +
@@ -46,7 +50,7 @@
<%= content_tag :div,:class=>show_type_panel(attribute_field,"typeA") do%>
- +