diff --git a/.gitignore b/.gitignore index f2cff3d9..8d5143f2 100644 --- a/.gitignore +++ b/.gitignore @@ -13,10 +13,14 @@ db/sample9 config/deploy config/deploy/* Gemfile.lock -Gemfile.lock +public/shops/staging public/shops/development +public/shops/aliyun_development public/shops/test config/deploy/production.rb db/full_sql rdoc .settings +.project +db/*.sqlite3 +*.bak diff --git a/.project b/.project deleted file mode 100644 index afe77ae7..00000000 --- a/.project +++ /dev/null @@ -1,11 +0,0 @@ - - - spree_abc - - - - - - - - diff --git a/.rspec b/.rspec index 53607ea5..83e16f80 100644 --- a/.rspec +++ b/.rspec @@ -1 +1,2 @@ ---colour +--color +--require spec_helper diff --git a/Gemfile b/Gemfile index 861f4b06..8ffa1087 100644 --- a/Gemfile +++ b/Gemfile @@ -1,21 +1,17 @@ -#source 'http://rubygems.org' -source 'http://ruby.taobao.org/' -# Bundle edge Rails instead: -ruby '1.9.3' +source 'https://ruby.taobao.org/' +#source 'https://rubygems.org' +#source "https://rails-assets.org" -gem 'rails', '4.1.8' +# Bundle edge Rails instead: +ruby '2.0.0' -gem 'mysql2' +gem 'rails', '4.1.11' -# Use SCSS for stylesheets -gem 'sass-rails', '~> 4.0.2' +gem 'mysql2','0.3.19' # Use Uglifier as compressor for JavaScript assets gem 'uglifier', '>= 1.3.0' -# Use CoffeeScript for .js.coffee assets and views -gem 'coffee-rails', '~> 4.0.0' - #gem 'jquery-rails' # To use ActiveModel has_secure_password @@ -33,67 +29,88 @@ gem 'coffee-rails', '~> 4.0.0' # gem "rspec-rails", "~> 2.0" # gem "capybara" #end +gem 'turbolinks' +gem 'jquery-turbolinks' -gem 'ruby-hmac' #http://ryanbigg.com/2009/07/no-such-file-to-load-hmac-sha1/ - -gem 'spree', '~>2.4' - -# bundle config --local local.spree_simple_dash ../spree_simple_dash, using local for development -# :path => '../spree_simple_dash' -# replace Spree Analytics -# gem 'spree_simple_dash', :github=>"RuanShan/spree_simple_dash", :branch=>"1-2-stable" +eval(File.read(File.dirname(__FILE__) + '/common_spree_dependencies.rb')) # referer to https://github.com/spree/spree/issues/2013 gem 'spree_auth_devise', :github => "spree/spree_auth_devise", :branch => "2-4-stable" -#support rich_editor +#support rich_editor gem 'spree_editor', :github => "spree/spree_editor", :branch=>"2-4-stable" -gem 'tinymce-rails-langs' +# gem 'sprangular', :path => './sprangular' + +#gem 'tinymce-rails-langs' #gem 'daemons' #gem 'delayed_job_active_record' #'bundle update spree_multi_site' to update gem # bundle config require specified branch, or warning message as below # Cannot use local override for spree_multi_site at ../spree_multi_site because :branch is not specified in Gemfile. Specify a branch or use `bundle config --delete` to remove the local override - + gem 'spree_multi_site', :path => './spree_multi_site' -gem "friendly_id" # spree_theme require it. +# Use SCSS for stylesheets, spree_theme/spree_devise_auth required +gem 'sass-rails', '~> 4.0.2' +gem "acts_as_commentable" +gem 'useragent' gem 'spree_theme', :path => './spree_theme' +#activemerchant_patch_for_china requried +gem 'ruby-hmac' #http://ryanbigg.com/2009/07/no-such-file-to-load-hmac-sha1/ #only specify it here, then could use ActiveMerchant::Billing::Integrations::Alipay::Helper directly -gem 'offsite_payments' -gem 'activemerchant_patch_for_china', github:'RuanShan/activemerchant_patch_for_china', branch:'for_offsite_payments' -gem 'spree_alipay', :github => "RuanShan/spree_alipay", :branch=>"master" +gem 'alipay' +#gem 'offsite_payments' +#gem 'activemerchant_patch_for_china', github:'RuanShan/activemerchant_patch_for_china', branch:'for_offsite_payments' +gem 'spree_alipay', :github => "RuanShan/spree_alipay", :branch=>"2-4-better" -gem 'spree_china_checkout', :path => './spree_china_checkout' +gem 'spree_simple_dash', :github => "spree/spree_simple_dash", :branch=>"master" +gem 'coffee-rails' #spree_china_checkout required +gem 'spree_china_checkout', :path => './spree_china_checkout' gem 'spree_essential_blog', :path => './spree_essential_blog' +gem 'spree_pingpp', :path => './spree_pingpp' # copy from https://github.com/RuanShan/spree_flexi_variants/tree/2-1-stable -gem 'spree_flexi_variants', :path => './spree_flexi_variants' +# gem 'spree_flexi_variants', :path => './spree_flexi_variants' # copy from https://github.com/spree-contrib/spree_comments/tree/2-0-stable -gem 'spree_comments', :path => './spree_comments' +#gem 'spree_comments', :path => './spree_comments' # it is moved into spree_theme +gem 'paperclip_oss_storage', :github => 'RuanShan/paperclip_oss_storage', :branch=>'master' + +# +gem 'bootstrap-sass', '~> 3.3.1' +gem 'autoprefixer-rails' + +gem 'activerecord-session_store' group :test, :development do - gem 'mail_view' #, :git => 'https://github.com/37signals/mail_view.git' + gem 'sqlite3' + #gem 'mail_view' #, :git => 'https://github.com/37signals/mail_view.git' end group :test do - gem 'rspec-rails' - gem 'database_cleaner' - gem 'factory_girl' - gem 'capybara' - gem 'capybara-accessible' - gem 'webmock' + gem 'capybara', '~> 2.4' + gem 'database_cleaner', '~> 1.3' + gem 'email_spec' + gem 'factory_girl_rails', '~> 4.5.0' + gem 'launchy' + gem 'rspec-activemodel-mocks' + gem 'rspec-collection_matchers' + gem 'rspec-its' + gem 'rspec-rails', '~> 3.1.0' + gem 'selenium-webdriver' + gem 'simplecov' + gem 'webmock', '1.8.11' + gem 'poltergeist', '1.5.0' + gem 'timecop' + gem 'with_model' end -#execjs need js runtime -gem 'therubyracer' - -group :development do - gem 'capistrano' - gem 'capistrano-rails', '~> 1.1.0' - gem 'capistrano-rvm', '~> 0.1.0' - gem "rails-erd" -end - - +#execjs need js runtime, use nodejs of system instead. +#gem 'therubyracer' + +#group :development do +# gem 'capistrano' +# gem 'capistrano-rails', '~> 1.1.0' +# gem 'capistrano-rvm', '~> 0.1.0' +# #gem "rails-erd" +#end diff --git a/Gemfile.lock b/Gemfile.lock index 092ac376..2cc800bf 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,25 +1,28 @@ GIT - remote: git://github.com/RuanShan/activemerchant_patch_for_china.git - revision: ead71ea3bb7f67eef6f95036dfdb4b58686773eb - branch: for_offsite_payments + remote: git://github.com/RuanShan/paperclip_oss_storage.git + revision: bd178f2fff4bb515c2b6df92542da307dc607fcd + branch: master specs: - activemerchant_patch_for_china (0.2.0) + paperclip_oss_storage (0.0.4) + paperclip (>= 3.5.2) + rest-client (>= 1.6.7) GIT remote: git://github.com/RuanShan/spree_alipay.git - revision: a109adf38722a64b91b28f3f1eb7f79b57397a8d - branch: master + revision: 93be2d153cde8fb04833a17171f3c0d3f0eb6482 + branch: 2-4-better specs: - spree_alipay (2.4.0) + spree_alipay (2.4.10) + alipay (~> 0.10.0) + ruby-hmac spree_core (~> 2.4.0) GIT remote: git://github.com/spree/spree_auth_devise.git - revision: 9d51f3d65a1ae6bd5aa1a48b649a1c57e52107a5 + revision: d1ce9bc2e4318c02d93a866057b0ac604f6173aa branch: 2-4-stable specs: - spree_auth_devise (2.2.0) - cancan (~> 1.6.10) + spree_auth_devise (2.4.0) devise (~> 3.2.3) devise-encryptable (= 0.1.2) json @@ -28,28 +31,27 @@ GIT GIT remote: git://github.com/spree/spree_editor.git - revision: 08a3a9383bbc28fe380186e6ed47d5444ea78f30 + revision: 600274016c1b963507347f1d6e87dd1a81ef0b65 branch: 2-4-stable specs: spree_editor (2.2.1) - ckeditor (~> 4.0.11) + ckeditor (~> 4.1.2) spree_backend (~> 2.4.0) tinymce-rails (~> 4.0.16) -PATH - remote: ./spree_china_checkout +GIT + remote: git://github.com/spree/spree_simple_dash.git + revision: 6b0ee67b7be3f0c3fa619460951757c9c2b5efa2 + branch: master specs: - spree_china_checkout (2.4.0) + spree_simple_dash (2.4.0) spree_core (~> 2.4.0) PATH - remote: ./spree_comments + remote: ./spree_china_checkout specs: - spree_comments (2.4.0) - acts_as_commentable (= 3.0.1) - spree_api - spree_backend - spree_core (>= 2.4.0) + spree_china_checkout (2.4.0) + spree_core (~> 2.4.0) PATH remote: ./spree_essential_blog @@ -58,41 +60,42 @@ PATH acts-as-taggable-on (~> 3.1) spree_core (~> 2.4.0) -PATH - remote: ./spree_flexi_variants - specs: - spree_flexi_variants (2.4.0) - carrierwave - mini_magick - spree (>= 2.4.0) - PATH remote: ./spree_multi_site specs: spree_multi_site (2.4.0) spree_core (~> 2.4.0) +PATH + remote: ./spree_pingpp + specs: + spree_pingpp (2.4.10) + pingpp (~> 2.0.8) + spree_core (~> 2.4.10) + PATH remote: ./spree_theme specs: spree_theme (2.4.0) + acts_as_commentable (= 3.0.1) friendly_id - spree_core (~> 2.4.0) + spree_core (~> 2.4) + useragent GEM - remote: http://ruby.taobao.org/ + remote: https://ruby.taobao.org/ specs: - actionmailer (4.1.8) - actionpack (= 4.1.8) - actionview (= 4.1.8) + actionmailer (4.1.11) + actionpack (= 4.1.11) + actionview (= 4.1.11) mail (~> 2.5, >= 2.5.4) - actionpack (4.1.8) - actionview (= 4.1.8) - activesupport (= 4.1.8) + actionpack (4.1.11) + actionview (= 4.1.11) + activesupport (= 4.1.11) rack (~> 1.5.2) rack-test (~> 0.6.2) - actionview (4.1.8) - activesupport (= 4.1.8) + actionview (4.1.11) + activesupport (= 4.1.11) builder (~> 3.1) erubis (~> 2.7.0) active_utils (2.2.3) @@ -106,88 +109,78 @@ GEM json (~> 1.7) nokogiri (~> 1.4) offsite_payments (~> 2.0.0) - activemodel (4.1.8) - activesupport (= 4.1.8) + activemodel (4.1.11) + activesupport (= 4.1.11) builder (~> 3.1) - activerecord (4.1.8) - activemodel (= 4.1.8) - activesupport (= 4.1.8) + activerecord (4.1.11) + activemodel (= 4.1.11) + activesupport (= 4.1.11) arel (~> 5.0.0) - activesupport (4.1.8) + activerecord-session_store (0.1.2) + actionpack (>= 4.0.0, < 5) + activerecord (>= 4.0.0, < 5) + railties (>= 4.0.0, < 5) + activesupport (4.1.11) i18n (~> 0.6, >= 0.6.9) json (~> 1.7, >= 1.7.7) minitest (~> 5.1) thread_safe (~> 0.1) tzinfo (~> 1.1) - acts-as-taggable-on (3.4.2) + acts-as-taggable-on (3.5.0) activerecord (>= 3.2, < 5) acts_as_commentable (3.0.1) - acts_as_list (0.3.0) + acts_as_list (0.7.2) activerecord (>= 3.0) - addressable (2.3.6) + addressable (2.3.8) + alipay (0.10.0) arel (5.0.1.20140414130214) - awesome_nested_set (3.0.1) + autoprefixer-rails (6.1.0.1) + execjs + json + awesome_nested_set (3.0.2) activerecord (>= 4.0.0, < 5) - bcrypt (3.1.9) + bcrypt (3.1.10) + bootstrap-sass (3.3.5) + autoprefixer-rails (>= 5.0.0.1) + sass (>= 3.2.19) builder (3.2.2) camertron-eprun (1.1.0) - cancan (1.6.10) cancancan (1.9.2) - canonical-rails (0.0.7) + canonical-rails (0.0.11) rails (>= 3.1, < 5.0) - capistrano (3.3.5) - capistrano-stats (~> 1.1.0) - i18n - rake (>= 10.0.0) - sshkit (~> 1.3) - capistrano-bundler (1.1.3) - capistrano (~> 3.1) - sshkit (~> 1.2) - capistrano-rails (1.1.2) - capistrano (~> 3.1) - capistrano-bundler (~> 1.1) - capistrano-rvm (0.1.2) - capistrano (~> 3.0) - sshkit (~> 1.2) - capistrano-stats (1.1.1) - capybara (2.4.4) + capybara (2.5.0) mime-types (>= 1.16) nokogiri (>= 1.3.3) rack (>= 1.0.0) rack-test (>= 0.5.4) xpath (~> 2.0) - capybara-accessible (0.2.1) - capybara (~> 2.0) - carmen (1.0.1) - unicode_utils (~> 1.4.0) - carrierwave (0.10.0) - activemodel (>= 3.2.0) - activesupport (>= 3.2.0) - json (>= 1.7) - mime-types (>= 1.16) - choice (0.1.6) - ckeditor (4.0.11) - mime-types + carmen (1.0.2) + activesupport (>= 3.0.0) + childprocess (0.5.8) + ffi (~> 1.0, >= 1.0.11) + ckeditor (4.1.5) + cocaine orm_adapter (~> 0.5.0) - cldr-plurals-runtime-rb (1.0.0) + cldr-plurals-runtime-rb (1.0.1) climate_control (0.0.3) activesupport (>= 3.0) - cocaine (0.5.5) + cliver (0.3.2) + cocaine (0.5.8) climate_control (>= 0.0.3, < 1.0) - coffee-rails (4.0.1) + coffee-rails (4.1.0) coffee-script (>= 2.2.0) railties (>= 4.0.0, < 5.0) - coffee-script (2.3.0) + coffee-script (2.4.1) coffee-script-source execjs - coffee-script-source (1.8.0) - colorize (0.7.4) + coffee-script-source (1.10.0) + colorize (0.7.7) crack (0.4.2) safe_yaml (~> 1.0.0) - css_parser (1.3.5) + css_parser (1.3.7) addressable - database_cleaner (1.3.0) - deface (1.0.1) + database_cleaner (1.5.1) + deface (1.0.2) colorize (>= 0.5.8) nokogiri (~> 1.6.0) polyglot @@ -201,51 +194,62 @@ GEM devise-encryptable (0.1.2) devise (>= 2.1.0) diff-lcs (1.2.5) + docile (1.1.5) + domain_name (0.5.25) + unf (>= 0.0.5, < 1.0.0) + email_spec (1.6.0) + launchy (~> 2.1) + mail (~> 2.2) erubis (2.7.0) - execjs (2.2.2) + execjs (2.6.0) factory_girl (4.5.0) activesupport (>= 3.0.0) - ffaker (1.25.0) - font-awesome-rails (4.2.0.0) + factory_girl_rails (4.5.0) + factory_girl (~> 4.5.0) + railties (>= 3.0.0) + ffaker (1.32.1) + ffi (1.9.10) + font-awesome-rails (4.4.0.0) railties (>= 3.2, < 5.0) - friendly_id (5.0.4) + friendly_id (5.0.5) activerecord (>= 4.0.0) highline (1.6.21) hike (1.2.3) - htmlentities (4.3.2) - httparty (0.13.3) + htmlentities (4.3.4) + http-cookie (1.0.2) + domain_name (~> 0.5) + httparty (0.13.7) json (~> 1.8) multi_xml (>= 0.5.2) - i18n (0.6.11) - jquery-rails (3.1.2) + i18n (0.7.0) + jquery-rails (3.1.4) railties (>= 3.0, < 5.0) thor (>= 0.14, < 2.0) - jquery-ui-rails (5.0.3) + jquery-turbolinks (2.1.0) + railties (>= 3.1.0) + turbolinks + jquery-ui-rails (5.0.5) railties (>= 3.2.16) - json (1.8.1) - kaminari (0.16.1) + json (1.8.3) + kaminari (0.16.3) actionpack (>= 3.0.0) activesupport (>= 3.0.0) - libv8 (3.16.14.7) + launchy (2.4.3) + addressable (~> 2.3) mail (2.6.3) mime-types (>= 1.16, < 3) - mail_view (2.0.4) - tilt - mime-types (2.4.3) - mini_magick (4.0.1) - mini_portile (0.6.1) - minitest (5.5.0) - monetize (1.0.0) - money (~> 6.4.0) - money (6.4.0) - i18n (>= 0.6.4, <= 0.7.0.beta1) - multi_json (1.10.1) + mime-types (2.99) + mini_portile (0.6.2) + minitest (5.8.3) + monetize (1.3.1) + money (~> 6.6) + money (6.6.1) + i18n (>= 0.6.4, <= 0.7.0) + multi_json (1.11.2) multi_xml (0.5.5) - mysql2 (0.3.17) - net-scp (1.2.1) - net-ssh (>= 2.6.5) - net-ssh (2.9.1) - nokogiri (1.6.5) + mysql2 (0.3.19) + netrc (0.11.0) + nokogiri (1.6.6.4) mini_portile (~> 0.6.0) offsite_payments (2.0.1) active_utils (~> 2.2.0) @@ -256,45 +260,49 @@ GEM money (< 7.0.0) nokogiri (~> 1.4) orm_adapter (0.5.0) - paperclip (4.2.1) - activemodel (>= 3.0.0) - activesupport (>= 3.0.0) - cocaine (~> 0.5.3) + paperclip (4.2.4) + activemodel (>= 3.2.0) + activesupport (>= 3.2.0) + cocaine (~> 0.5.5) mime-types - paranoia (2.0.4) + paranoia (2.1.4) activerecord (~> 4.0) - polyamorous (1.1.0) + pingpp (2.0.8) + json (~> 1.8, >= 1.8.1) + mime-types (>= 1.25, < 3.0) + rest-client (~> 1.4) + poltergeist (1.5.0) + capybara (~> 2.1) + cliver (~> 0.3.1) + multi_json (~> 1.0) + websocket-driver (>= 0.2.0) + polyamorous (1.2.0) activerecord (>= 3.0) polyglot (0.3.5) - premailer (1.8.2) - css_parser (>= 1.3.5) + premailer (1.8.6) + css_parser (>= 1.3.6) htmlentities (>= 4.0.0) - premailer-rails (1.8.0) + premailer-rails (1.8.2) actionmailer (>= 3, < 5) premailer (~> 1.7, >= 1.7.9) rabl (0.9.4.pre1) activesupport (>= 2.3.14) - rack (1.5.2) - rack-test (0.6.2) + rack (1.5.5) + rack-test (0.6.3) rack (>= 1.0) - rails (4.1.8) - actionmailer (= 4.1.8) - actionpack (= 4.1.8) - actionview (= 4.1.8) - activemodel (= 4.1.8) - activerecord (= 4.1.8) - activesupport (= 4.1.8) + rails (4.1.11) + actionmailer (= 4.1.11) + actionpack (= 4.1.11) + actionview (= 4.1.11) + activemodel (= 4.1.11) + activerecord (= 4.1.11) + activesupport (= 4.1.11) bundler (>= 1.3.0, < 2.0) - railties (= 4.1.8) + railties (= 4.1.11) sprockets-rails (~> 2.0) - rails-erd (1.1.0) - activerecord (>= 3.0) - activesupport (>= 3.0) - choice (~> 0.1.6) - ruby-graphviz (~> 1.0.4) - railties (4.1.8) - actionpack (= 4.1.8) - activesupport (= 4.1.8) + railties (4.1.11) + actionpack (= 4.1.11) + activesupport (= 4.1.11) rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rake (10.4.2) @@ -304,12 +312,24 @@ GEM activesupport (>= 3.0) i18n polyamorous (~> 1.1) - ref (1.0.5) + rest-client (1.8.0) + http-cookie (>= 1.0.2, < 2.0) + mime-types (>= 1.16, < 3.0) + netrc (~> 0.7) + rspec-activemodel-mocks (1.0.2) + activemodel (>= 3.0) + activesupport (>= 3.0) + rspec-mocks (>= 2.99, < 4.0) + rspec-collection_matchers (1.1.2) + rspec-expectations (>= 2.99.0.beta1) rspec-core (3.1.7) rspec-support (~> 3.1.0) rspec-expectations (3.1.2) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.1.0) + rspec-its (1.2.0) + rspec-core (>= 3.0.0) + rspec-expectations (>= 3.0.0) rspec-mocks (3.1.3) rspec-support (~> 3.1.0) rspec-rails (3.1.0) @@ -321,8 +341,8 @@ GEM rspec-mocks (~> 3.1.0) rspec-support (~> 3.1.0) rspec-support (3.1.2) - ruby-graphviz (1.0.9) ruby-hmac (0.4.0) + rubyzip (1.1.7) safe_yaml (1.0.4) sass (3.2.19) sass-rails (4.0.5) @@ -332,28 +352,38 @@ GEM sprockets-rails (~> 2.0) select2-rails (3.5.9.1) thor (~> 0.14) - spree (2.4.2) - spree_api (= 2.4.2) - spree_backend (= 2.4.2) - spree_cmd (= 2.4.2) - spree_core (= 2.4.2) - spree_frontend (= 2.4.2) - spree_sample (= 2.4.2) - spree_api (2.4.2) + selenium-webdriver (2.48.1) + childprocess (~> 0.5) + multi_json (~> 1.0) + rubyzip (~> 1.0) + websocket (~> 1.0) + simplecov (0.10.0) + docile (~> 1.1.0) + json (~> 1.8) + simplecov-html (~> 0.10.0) + simplecov-html (0.10.0) + spree (2.4.10) + spree_api (= 2.4.10) + spree_backend (= 2.4.10) + spree_cmd (= 2.4.10) + spree_core (= 2.4.10) + spree_frontend (= 2.4.10) + spree_sample (= 2.4.10) + spree_api (2.4.10) rabl (~> 0.9.4.pre1) - spree_core (= 2.4.2) + spree_core (= 2.4.10) versioncake (~> 2.3.1) - spree_backend (2.4.2) + spree_backend (2.4.10) jquery-rails (~> 3.1.2) jquery-ui-rails (~> 5.0.0) - select2-rails (~> 3.5.0) - spree_api (= 2.4.2) - spree_core (= 2.4.2) - spree_cmd (2.4.2) + select2-rails (= 3.5.9.1) + spree_api (= 2.4.10) + spree_core (= 2.4.10) + spree_cmd (2.4.10) thor (~> 0.14) - spree_core (2.4.2) + spree_core (2.4.10) activemerchant (~> 1.44.1) - acts_as_list (= 0.3.0) + acts_as_list (~> 0.3) awesome_nested_set (~> 3.0.1) cancancan (~> 1.9.2) carmen (~> 1.0.0) @@ -365,60 +395,58 @@ GEM httparty (~> 0.11) json (~> 1.7) kaminari (~> 0.15, >= 0.15.1) - monetize + monetize (~> 1.1) paperclip (~> 4.2.0) - paranoia (~> 2.0) + paranoia (~> 2.1.0) premailer-rails - rails (~> 4.1.8) + rails (~> 4.1.11) ransack (~> 1.4.1) state_machine (= 1.2.0) stringex (~> 1.5.1) truncate_html (= 0.9.2) twitter_cldr (~> 3.0) - spree_frontend (2.4.2) + spree_frontend (2.4.10) canonical-rails (~> 0.0.4) jquery-rails (~> 3.1.2) - spree_api (= 2.4.2) - spree_core (= 2.4.2) - spree_sample (2.4.2) - spree_core (= 2.4.2) - sprockets (2.12.3) + spree_api (= 2.4.10) + spree_core (= 2.4.10) + spree_sample (2.4.10) + spree_core (= 2.4.10) + sprockets (2.12.4) hike (~> 1.2) multi_json (~> 1.0) rack (~> 1.0) tilt (~> 1.1, != 1.3.0) - sprockets-rails (2.2.2) + sprockets-rails (2.3.3) actionpack (>= 3.0) activesupport (>= 3.0) sprockets (>= 2.8, < 4.0) - sshkit (1.5.1) - colorize - net-scp (>= 1.1.2) - net-ssh (>= 2.8.0) + sqlite3 (1.3.11) state_machine (1.2.0) stringex (1.5.1) - therubyracer (0.12.1) - libv8 (~> 3.16.14.0) - ref thor (0.19.1) - thread_safe (0.3.4) + thread_safe (0.3.5) tilt (1.4.1) + timecop (0.8.0) tinymce-rails (4.0.28.2) railties (>= 3.1.1) - tinymce-rails-langs (4.20140129) - tinymce-rails (~> 4.0) truncate_html (0.9.2) - twitter_cldr (3.1.0) + turbolinks (2.5.3) + coffee-rails + twitter_cldr (3.2.1) camertron-eprun cldr-plurals-runtime-rb (~> 1.0.0) json tzinfo tzinfo (1.2.2) thread_safe (~> 0.1) - uglifier (2.6.0) + uglifier (2.7.2) execjs (>= 0.3.0) json (>= 1.8.0) - unicode_utils (1.4.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.7.1) + useragent (0.16.2) versioncake (2.3.1) actionpack (>= 3.2) activesupport (>= 3.2) @@ -426,9 +454,15 @@ GEM tzinfo warden (1.2.3) rack (>= 1.0) - webmock (1.20.4) - addressable (>= 2.3.6) - crack (>= 0.3.2) + webmock (1.8.11) + addressable (>= 2.2.7) + crack (>= 0.1.7) + websocket (1.2.2) + websocket-driver (0.6.3) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.2) + with_model (1.2.1) + activerecord (>= 3.0) xpath (2.0.0) nokogiri (~> 1.3) @@ -436,35 +470,44 @@ PLATFORMS ruby DEPENDENCIES - activemerchant_patch_for_china! - capistrano - capistrano-rails (~> 1.1.0) - capistrano-rvm (~> 0.1.0) - capybara - capybara-accessible - coffee-rails (~> 4.0.0) - database_cleaner - factory_girl - friendly_id - mail_view - mysql2 - offsite_payments - rails (= 4.1.8) - rails-erd - rspec-rails + activerecord-session_store + acts_as_commentable + alipay + autoprefixer-rails + bootstrap-sass (~> 3.3.1) + capybara (~> 2.4) + coffee-rails + database_cleaner (~> 1.3) + email_spec + factory_girl_rails (~> 4.5.0) + jquery-turbolinks + launchy + mysql2 (= 0.3.19) + paperclip_oss_storage! + poltergeist (= 1.5.0) + rails (= 4.1.11) + rspec-activemodel-mocks + rspec-collection_matchers + rspec-its + rspec-rails (~> 3.1.0) ruby-hmac sass-rails (~> 4.0.2) - spree (~> 2.4) + selenium-webdriver + simplecov + spree (~> 2.4.8) spree_alipay! spree_auth_devise! spree_china_checkout! - spree_comments! spree_editor! spree_essential_blog! - spree_flexi_variants! spree_multi_site! + spree_pingpp! + spree_simple_dash! spree_theme! - therubyracer - tinymce-rails-langs + sqlite3 + timecop + turbolinks uglifier (>= 1.3.0) - webmock + useragent + webmock (= 1.8.11) + with_model diff --git a/README.md b/README.md index 36c14634..132f6f6d 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,44 @@ -Welcome to SpreeABC -=================== +#Welcome to SpreeABC Introduction goes here. SpreeABC is e-commerce solution based on spree. Difference is that you could create many websites, it is more like shopify and for china user. - -Development -=========== - install migrations - rm db/migrate -Rf - bundle exec rake railties:install:migrations - -Deployment -========== + __It is working in progress__. + +##Project structure + +####external gems +* spree - basic e-commerce solution +* spree_editor - rich text editor with file uploading inplace +* spree_alipay - payment method alipay + +####internal gems +* spree_essential_blog - support articles +* spree_flexi_variants - create product variants as-needed, option value has image. +* spree_comments - comments to product/article +* spree_multi_site - support multiple separated website +* spree_theme - frontend template system +* spree_china_checkout - improve checkout flow for china user. + +##Development + bundle + rake db:create + rake db:migrate + rake db:seed + +##Deployment bundle install --deloyment bundle exec rake db:reset RAILS_ENV=production bundle exec rake assets:precompile RAILS_ENV=production - useful links: - [A Capistrano Rails Guide]( https://gist.github.com/jrochkind/2161449 ) +####Helpful links for deployment + +####Helpful command for deployent + bundle exec rake railties:install:migrations iptables -A INPUT -p tcp -s 127.0.0.1 --dport 8080 -j ACCEPT sestatus -b | grep httpd togglesebool httpd_can_network_connection -Testing -------- - -Be sure to bundle your dependencies and then create a dummy test app for the specs to run against. +##Testing Copyright (c) 2012 [david,hui], released under the New BSD License diff --git a/public/favicon.ico b/app/assets/images/favicon.ico similarity index 100% rename from public/favicon.ico rename to app/assets/images/favicon.ico diff --git a/app/assets/images/noimage/large.png b/app/assets/images/noimage/large.png new file mode 100644 index 00000000..8bd3ccb6 Binary files /dev/null and b/app/assets/images/noimage/large.png differ diff --git a/app/assets/images/noimage/medium.png b/app/assets/images/noimage/medium.png new file mode 100644 index 00000000..8bd3ccb6 Binary files /dev/null and b/app/assets/images/noimage/medium.png differ diff --git a/app/assets/images/noimage/mini.png b/app/assets/images/noimage/mini.png new file mode 100644 index 00000000..96112ed2 Binary files /dev/null and b/app/assets/images/noimage/mini.png differ diff --git a/app/assets/images/noimage/post_large.png b/app/assets/images/noimage/post_large.png new file mode 100644 index 00000000..3a704c61 Binary files /dev/null and b/app/assets/images/noimage/post_large.png differ diff --git a/app/assets/images/noimage/post_medium.png b/app/assets/images/noimage/post_medium.png new file mode 100644 index 00000000..c7d33d32 Binary files /dev/null and b/app/assets/images/noimage/post_medium.png differ diff --git a/app/assets/images/noimage/post_mini.png b/app/assets/images/noimage/post_mini.png new file mode 100644 index 00000000..bc95cb60 Binary files /dev/null and b/app/assets/images/noimage/post_mini.png differ diff --git a/app/assets/images/noimage/post_small.png b/app/assets/images/noimage/post_small.png new file mode 100644 index 00000000..06f5bbb1 Binary files /dev/null and b/app/assets/images/noimage/post_small.png differ diff --git a/app/assets/images/noimage/product.png b/app/assets/images/noimage/product.png new file mode 100644 index 00000000..8bd3ccb6 Binary files /dev/null and b/app/assets/images/noimage/product.png differ diff --git a/app/assets/images/noimage/small.png b/app/assets/images/noimage/small.png new file mode 100644 index 00000000..4fb13eaa Binary files /dev/null and b/app/assets/images/noimage/small.png differ diff --git a/app/assets/javascripts/ckeditor/config.js b/app/assets/javascripts/ckeditor/config.js new file mode 100644 index 00000000..5227f810 --- /dev/null +++ b/app/assets/javascripts/ckeditor/config.js @@ -0,0 +1,131 @@ +// it caused tool item icon massed up in staging env. + +CKEDITOR.editorConfig = function( config ) { + // copied from original config.js ckeditor 4.0.11 + + // Define changes to default configuration here. For example: + // config.language = 'fr'; + // config.uiColor = '#AADC6E'; + + /* Filebrowser routes */ + // The location of an external file browser, that should be launched when "Browse Server" button is pressed. + config.filebrowserBrowseUrl = "/ckeditor/attachment_files"; + + // The location of an external file browser, that should be launched when "Browse Server" button is pressed in the Flash dialog. + config.filebrowserFlashBrowseUrl = "/ckeditor/attachment_files"; + + // The location of a script that handles file uploads in the Flash dialog. + config.filebrowserFlashUploadUrl = "/ckeditor/attachment_files"; + + // The location of an external file browser, that should be launched when "Browse Server" button is pressed in the Link tab of Image dialog. + config.filebrowserImageBrowseLinkUrl = "/ckeditor/pictures"; + + // The location of an external file browser, that should be launched when "Browse Server" button is pressed in the Image dialog. + config.filebrowserImageBrowseUrl = "/ckeditor/pictures"; + + // The location of a script that handles file uploads in the Image dialog. + config.filebrowserImageUploadUrl = "/ckeditor/pictures"; + + // The location of a script that handles file uploads. + config.filebrowserUploadUrl = "/ckeditor/attachment_files"; + + // Rails CSRF token + config.filebrowserParams = function(){ + var csrf_token, csrf_param, meta, + metas = document.getElementsByTagName('meta'), + params = new Object(); + + for ( var i = 0 ; i < metas.length ; i++ ){ + meta = metas[i]; + + switch(meta.name) { + case "csrf-token": + csrf_token = meta.content; + break; + case "csrf-param": + csrf_param = meta.content; + break; + default: + continue; + } + } + + if (csrf_param !== undefined && csrf_token !== undefined) { + params[csrf_param] = csrf_token; + } + + return params; + }; + + config.addQueryString = function( url, params ){ + var queryString = []; + + if ( !params ) { + return url; + } else { + for ( var i in params ) + queryString.push( i + "=" + encodeURIComponent( params[ i ] ) ); + } + + return url + ( ( url.indexOf( "?" ) != -1 ) ? "&" : "?" ) + queryString.join( "&" ); + }; + + // Integrate Rails CSRF token into file upload dialogs (link, image, attachment and flash) + CKEDITOR.on( 'dialogDefinition', function( ev ){ + // Take the dialog name and its definition from the event data. + var dialogName = ev.data.name; + var dialogDefinition = ev.data.definition; + var content, upload; + + if (CKEDITOR.tools.indexOf(['link', 'image', 'attachment', 'flash'], dialogName) > -1) { + content = (dialogDefinition.getContents('Upload') || dialogDefinition.getContents('upload')); + upload = (content == null ? null : content.get('upload')); + + if (upload && upload.filebrowser && upload.filebrowser['params'] === undefined) { + upload.filebrowser['params'] = config.filebrowserParams(); + upload.action = config.addQueryString(upload.action, upload.filebrowser['params']); + } + } + }); + + config.language = 'zh-cn'; + // Default setting. + //config.toolbarGroups = [ + // { name: 'document', groups: [ 'mode', 'document' ] }, + // { name: 'clipboard', groups: [ 'clipboard', 'undo' ] }, + // //{ name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] }, + // //{ name: 'forms' }, + // //'/', + // //{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] }, + // //{ name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] }, + // { name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align' ] }, + // { name: 'links' }, + // { name: 'insert' },{ name: 'tools' }, + // '/', + // { name: 'styles' }, + // { name: 'colors' }, + // { name: 'others' }, + // //{ name: 'about' } + //]; + + config.toolbar_Full = [  +     { name: 'document', items : [ 'Source','-','NewPage','DocProps','Preview','Templates' ] }, +      { name: 'clipboard', items : [ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ] },  +     //{ name: 'editing', items : [ 'Find','Replace','-','SelectAll','-','SpellChecker', 'Scayt' ] }, + //{ name: 'forms', items : [ 'Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton','HiddenField' ] }, + { name: 'links', items : [ 'Link','Unlink' ] },      + //{ name: 'insert', items : [ 'Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak','Iframe' ] }, + { name: 'insert', items : [ 'Image','Flash','Table','HorizontalRule' ] }, + { name: 'tools', items : [ 'Maximize', 'ShowBlocks' ] }, +      //'/', +     { name: 'basicstyles', items : [ 'Bold','Italic','Underline','Strike','Subscript','Superscript','-','RemoveFormat' ] }, +      { name: 'paragraph', items : [ 'NumberedList','BulletedList','-','Outdent','Indent','-','Blockquote','CreateDiv', '-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock','-','BidiLtr','BidiRtl' ] }, +      //'/',  +     { name: 'styles', items : [ 'Styles','Format','Font','FontSize' ] },      + { name: 'colors', items : [ 'TextColor','BGColor' ] },  +     //{ name: 'tools', items : [ 'Maximize', 'ShowBlocks','-','About' ] }  + + ]; + config.toolbar = 'Full';    + +}; diff --git a/app/assets/javascripts/html5shiv.js b/app/assets/javascripts/html5shiv.js new file mode 100644 index 00000000..7857c93a --- /dev/null +++ b/app/assets/javascripts/html5shiv.js @@ -0,0 +1,326 @@ +/** +* @preserve HTML5 Shiv 3.7.3-pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed +*/ +;(function(window, document) { +/*jshint evil:true */ + /** version */ + var version = '3.7.3-pre'; + + /** Preset options */ + var options = window.html5 || {}; + + /** Used to skip problem elements */ + var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i; + + /** Not all elements can be cloned in IE **/ + var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i; + + /** Detect whether the browser supports default html5 styles */ + var supportsHtml5Styles; + + /** Name of the expando, to work with multiple documents or to re-shiv one document */ + var expando = '_html5shiv'; + + /** The id for the the documents expando */ + var expanID = 0; + + /** Cached data for each document */ + var expandoData = {}; + + /** Detect whether the browser supports unknown elements */ + var supportsUnknownElements; + + (function() { + try { + var a = document.createElement('a'); + a.innerHTML = ''; + //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles + supportsHtml5Styles = ('hidden' in a); + + supportsUnknownElements = a.childNodes.length == 1 || (function() { + // assign a false positive if unable to shiv + (document.createElement)('a'); + var frag = document.createDocumentFragment(); + return ( + typeof frag.cloneNode == 'undefined' || + typeof frag.createDocumentFragment == 'undefined' || + typeof frag.createElement == 'undefined' + ); + }()); + } catch(e) { + // assign a false positive if detection fails => unable to shiv + supportsHtml5Styles = true; + supportsUnknownElements = true; + } + + }()); + + /*--------------------------------------------------------------------------*/ + + /** + * Creates a style sheet with the given CSS text and adds it to the document. + * @private + * @param {Document} ownerDocument The document. + * @param {String} cssText The CSS text. + * @returns {StyleSheet} The style element. + */ + function addStyleSheet(ownerDocument, cssText) { + var p = ownerDocument.createElement('p'), + parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement; + + p.innerHTML = 'x'; + return parent.insertBefore(p.lastChild, parent.firstChild); + } + + /** + * Returns the value of `html5.elements` as an array. + * @private + * @returns {Array} An array of shived element node names. + */ + function getElements() { + var elements = html5.elements; + return typeof elements == 'string' ? elements.split(' ') : elements; + } + + /** + * Extends the built-in list of html5 elements + * @memberOf html5 + * @param {String|Array} newElements whitespace separated list or array of new element names to shiv + * @param {Document} ownerDocument The context document. + */ + function addElements(newElements, ownerDocument) { + var elements = html5.elements; + if(typeof elements != 'string'){ + elements = elements.join(' '); + } + if(typeof newElements != 'string'){ + newElements = newElements.join(' '); + } + html5.elements = elements +' '+ newElements; + shivDocument(ownerDocument); + } + + /** + * Returns the data associated to the given document + * @private + * @param {Document} ownerDocument The document. + * @returns {Object} An object of data. + */ + function getExpandoData(ownerDocument) { + var data = expandoData[ownerDocument[expando]]; + if (!data) { + data = {}; + expanID++; + ownerDocument[expando] = expanID; + expandoData[expanID] = data; + } + return data; + } + + /** + * returns a shived element for the given nodeName and document + * @memberOf html5 + * @param {String} nodeName name of the element + * @param {Document} ownerDocument The context document. + * @returns {Object} The shived element. + */ + function createElement(nodeName, ownerDocument, data){ + if (!ownerDocument) { + ownerDocument = document; + } + if(supportsUnknownElements){ + return ownerDocument.createElement(nodeName); + } + if (!data) { + data = getExpandoData(ownerDocument); + } + var node; + + if (data.cache[nodeName]) { + node = data.cache[nodeName].cloneNode(); + } else if (saveClones.test(nodeName)) { + node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode(); + } else { + node = data.createElem(nodeName); + } + + // Avoid adding some elements to fragments in IE < 9 because + // * Attributes like `name` or `type` cannot be set/changed once an element + // is inserted into a document/fragment + // * Link elements with `src` attributes that are inaccessible, as with + // a 403 response, will cause the tab/window to crash + // * Script elements appended to fragments will execute when their `src` + // or `text` property is set + return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node; + } + + /** + * returns a shived DocumentFragment for the given document + * @memberOf html5 + * @param {Document} ownerDocument The context document. + * @returns {Object} The shived DocumentFragment. + */ + function createDocumentFragment(ownerDocument, data){ + if (!ownerDocument) { + ownerDocument = document; + } + if(supportsUnknownElements){ + return ownerDocument.createDocumentFragment(); + } + data = data || getExpandoData(ownerDocument); + var clone = data.frag.cloneNode(), + i = 0, + elems = getElements(), + l = elems.length; + for(;i= IE7.compat) return; + +var MSIE5 = appVersion < 6; + +var Undefined = K(); +var documentElement = document.documentElement, body, viewport; +var ANON = "!"; +var HEADER = ":link{ie7-link:link}:visited{ie7-link:visited}"; + +// ----------------------------------------------------------------------- +// external +// ----------------------------------------------------------------------- + +var RELATIVE = /^[\w\.]+[^:]*$/; +function makePath(href, path) { + if (RELATIVE.test(href)) href = (path || "") + href; + return href; +}; + +function getPath(href, path) { + href = makePath(href, path); + return href.slice(0, href.lastIndexOf("/") + 1); +}; + +// Get the path to this script +var script = document.scripts[document.scripts.length - 1]; +var path = getPath(script.src); + +// Use microsoft's http request object to load external files +try { + var httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); +} catch (ex) { + // ActiveX disabled +} + +var fileCache = {}; +function loadFile(href, path) { + try { + href = makePath(href, path); + if (!fileCache[href]) { + httpRequest.open("GET", href, false); + httpRequest.send(); + if (httpRequest.status == 0 || httpRequest.status == 200) { + fileCache[href] = httpRequest.responseText; + } + } + } catch (ex) { + // ignore errors + } + return fileCache[href] || ""; +}; + +// ----------------------------------------------------------------------- +// OO support +// ----------------------------------------------------------------------- + + +// This is a cut-down version of base2 (http://code.google.com/p/base2/) + +var _slice = Array.prototype.slice; + +// private +var _FORMAT = /%([1-9])/g; +var _LTRIM = /^\s\s*/; +var _RTRIM = /\s\s*$/; +var _RESCAPE = /([\/()[\]{}|*+-.,^$?\\])/g; // safe regular expressions +var _BASE = /\bbase\b/; +var _HIDDEN = ["constructor", "toString"]; // only override these when prototyping + +var prototyping; + +function Base(){}; +Base.extend = function(_instance, _static) { + // Build the prototype. + prototyping = true; + var _prototype = new this; + extend(_prototype, _instance); + prototyping = false; + + // Create the wrapper for the constructor function. + var _constructor = _prototype.constructor; + function klass() { + // Don't call the constructor function when prototyping. + if (!prototyping) _constructor.apply(this, arguments); + }; + _prototype.constructor = klass; + + // Build the static interface. + klass.extend = arguments.callee; + extend(klass, _static); + klass.prototype = _prototype; + return klass; +}; +Base.prototype.extend = function(source) { + return extend(this, source); +}; + + +// A collection of regular expressions and their associated replacement values. +// A Base class for creating parsers. + +var HASH = "#"; +var ITEMS = "#"; +var KEYS = "."; +var COMPILED = "/"; + +var REGGRP_BACK_REF = /\\(\d+)/g, + REGGRP_ESCAPE_COUNT = /\[(\\.|[^\]\\])+\]|\\.|\(\?/g, + REGGRP_PAREN = /\(/g, + REGGRP_LOOKUP = /\$(\d+)/, + REGGRP_LOOKUP_SIMPLE = /^\$\d+$/, + REGGRP_LOOKUPS = /(\[(\\.|[^\]\\])+\]|\\.|\(\?)|\(/g, + REGGRP_DICT_ENTRY = /^<#\w+>$/, + REGGRP_DICT_ENTRIES = /<#(\w+)>/g; + +var RegGrp = Base.extend({ + constructor: function(values) { + this[KEYS] = []; + this[ITEMS] = {}; + this.merge(values); + }, + + //dictionary: null, + //ignoreCase: false, + + add: function(expression, replacement) { + delete this[COMPILED]; + if (expression instanceof RegExp) { + expression = expression.source; + } + if (!this[HASH + expression]) this[KEYS].push(String(expression)); + return this[ITEMS][HASH + expression] = new RegGrp.Item(expression, replacement, this); + }, + + compile: function(recompile) { + if (recompile || !this[COMPILED]) { + this[COMPILED] = new RegExp(this, this.ignoreCase ? "gi" : "g"); + } + return this[COMPILED]; + }, + + merge: function(values) { + for (var i in values) this.add(i, values[i]); + }, + + exec: function(string) { + var group = this, + patterns = group[KEYS], + items = group[ITEMS], item; + var result = this.compile(true).exec(string); + if (result) { + // Loop through the RegGrp items. + var i = 0, offset = 1; + while ((item = items[HASH + patterns[i++]])) { + var next = offset + item.length + 1; + if (result[offset]) { // do we have a result? + if (item.replacement === 0) { + return group.exec(string); + } else { + var args = result.slice(offset, next), j = args.length; + while (--j) args[j] = args[j] || ""; // some platforms return null/undefined for non-matching sub-expressions + args[0] = {match: args[0], item: item}; + return args; + } + } + offset = next; + } + } + return null; + }, + + parse: function(string) { + string += ""; // type safe + var group = this, + patterns = group[KEYS], + items = group[ITEMS]; + return string.replace(this.compile(), function(match) { + var args = [], item, offset = 1, i = arguments.length; + while (--i) args[i] = arguments[i] || ""; // some platforms return null/undefined for non-matching sub-expressions + // Loop through the RegGrp items. + while ((item = items[HASH + patterns[i++]])) { + var next = offset + item.length + 1; + if (args[offset]) { // do we have a result? + var replacement = item.replacement; + switch (typeof replacement) { + case "function": + return replacement.apply(group, args.slice(offset, next)); + case "number": + return args[offset + replacement]; + default: + return replacement; + } + } + offset = next; + } + return match; + }); + }, + + toString: function() { + var strings = [], + keys = this[KEYS], + items = this[ITEMS], item; + for (var i = 0; item = items[HASH + keys[i]]; i++) { + strings[i] = item.source; + } + return "(" + strings.join(")|(") + ")"; + } +}, { + IGNORE: null, // a null replacement value means that there is no replacement. + + Item: Base.extend({ + constructor: function(source, replacement, owner) { + var length = source.indexOf("(") === -1 ? 0 : RegGrp.count(source); + + var dictionary = owner.dictionary; + if (dictionary && source.indexOf("<#") !== -1) { + if (REGGRP_DICT_ENTRY.test(source)) { + var entry = dictionary[ITEMS][HASH + source.slice(2, -1)]; + source = entry.replacement; + length = entry._length; + } else { + source = dictionary.parse(source); + } + } + + if (typeof replacement == "number") replacement = String(replacement); + else if (replacement == null) replacement = 0; + + // Does the expression use sub-expression lookups? + if (typeof replacement == "string" && REGGRP_LOOKUP.test(replacement)) { + if (REGGRP_LOOKUP_SIMPLE.test(replacement)) { // A simple lookup? (e.g. "$2"). + // Store the index (used for fast retrieval of matched strings). + var index = replacement.slice(1) - 0; + if (index && index <= length) replacement = index; + } else { + // A complicated lookup (e.g. "Hello $2 $1."). + var lookup = replacement, regexp; + replacement = function(match) { + if (!regexp) { + regexp = new RegExp(source, "g" + (this.ignoreCase ? "i": "")); + } + return match.replace(regexp, lookup); + }; + } + } + + this.length = length; + this.source = String(source); + this.replacement = replacement; + } + }), + + count: function(expression) { + return (String(expression).replace(REGGRP_ESCAPE_COUNT, "").match(REGGRP_PAREN) || "").length; + } +}); + +var Dictionary = RegGrp.extend({ + parse: function(phrase) { + // Prevent sub-expressions in dictionary entries from capturing. + var entries = this[ITEMS]; + return phrase.replace(REGGRP_DICT_ENTRIES, function(match, entry) { + entry = entries[HASH + entry]; + return entry ? entry._nonCapturing : match; + }); + }, + + add: function(expression, replacement) { + // Get the underlying replacement value. + if (replacement instanceof RegExp) { + replacement = replacement.source; + } + // Translate the replacement. + // The result is the original replacement recursively parsed by this dictionary. + var nonCapturing = replacement.replace(REGGRP_LOOKUPS, _nonCapture); + if (replacement.indexOf("(") !== -1) { + var realLength = RegGrp.count(replacement); + } + if (replacement.indexOf("<#") !== -1) { + replacement = this.parse(replacement); + nonCapturing = this.parse(nonCapturing); + } + var item = this.base(expression, replacement); + item._nonCapturing = nonCapturing; + item._length = realLength || item.length; // underlying number of sub-groups + return item; + }, + + toString: function() { + return "(<#" + this[PATTERNS].join(">)|(<#") + ">)"; + } +}); + +function _nonCapture(match, escaped) { + return escaped || "(?:"; // non-capturing +}; + +// ========================================================================= +// lang/extend.js +// ========================================================================= + +function extend(object, source) { // or extend(object, key, value) + if (object && source) { + var proto = (typeof source == "function" ? Function : Object).prototype; + // Add constructor, toString etc + var i = _HIDDEN.length, key; + if (prototyping) while (key = _HIDDEN[--i]) { + var value = source[key]; + if (value != proto[key]) { + if (_BASE.test(value)) { + _override(object, key, value) + } else { + object[key] = value; + } + } + } + // Copy each of the source object's properties to the target object. + for (key in source) if (typeof proto[key] == "undefined") { + var value = source[key]; + // Check for method overriding. + if (object[key] && typeof value == "function" && _BASE.test(value)) { + _override(object, key, value); + } else { + object[key] = value; + } + } + } + return object; +}; + +function _override(object, name, method) { + // Override an existing method. + var ancestor = object[name]; + object[name] = function() { + var previous = this.base; + this.base = ancestor; + var returnValue = method.apply(this, arguments); + this.base = previous; + return returnValue; + }; +}; + +function combine(keys, values) { + // Combine two arrays to make a hash. + if (!values) values = keys; + var hash = {}; + for (var i in keys) hash[i] = values[i]; + return hash; +}; + +function format(string) { + // Replace %n with arguments[n]. + // e.g. format("%1 %2%3 %2a %1%3", "she", "se", "lls"); + // ==> "she sells sea shells" + // Only %1 - %9 supported. + var args = arguments; + var _FORMAT = new RegExp("%([1-" + arguments.length + "])", "g"); + return String(string).replace(_FORMAT, function(match, index) { + return index < args.length ? args[index] : match; + }); +}; + +function match(string, expression) { + // Same as String.match() except that this function will return an empty + // array if there is no match. + return String(string).match(expression) || []; +}; + +function rescape(string) { + // Make a string safe for creating a RegExp. + return String(string).replace(_RESCAPE, "\\$1"); +}; + +// http://blog.stevenlevithan.com/archives/faster-trim-javascript +function trim(string) { + return String(string).replace(_LTRIM, "").replace(_RTRIM, ""); +}; + +function K(k) { + return function() { + return k; + }; +}; + +// ----------------------------------------------------------------------- +// parsing +// ----------------------------------------------------------------------- + +var Parser = RegGrp.extend({ignoreCase: true}); + +var SINGLE_QUOTES = /'/g, + ESCAPED = /'(\d+)'/g, + ESCAPE = /\\/g, + UNESCAPE = /\\([nrtf'"])/g; + +var strings = []; + +var encoder = new Parser({ + // comments + "": "", + "\\/\\*[^*]*\\*+([^\\/][^*]*\\*+)*\\/": "", + // get rid + "@(namespace|import)[^;\\n]+[;\\n]": "", + // strings + "'(\\\\.|[^'\\\\])*'": encodeString, + '"(\\\\.|[^"\\\\])*"': encodeString, + // white space + "\\s+": " " +}); + +function encode(selector) { + return encoder.parse(selector).replace(UNESCAPE, "$1"); +}; + +function decode(query) { + // put string values back + return query.replace(ESCAPED, decodeString); +}; + +function encodeString(string) { + var index = strings.length; + strings[index] = string.slice(1, -1) + .replace(UNESCAPE, "$1") + .replace(SINGLE_QUOTES, "\\'"); + return "'" + index + "'"; +}; + +function decodeString(match, index) { + var string = strings[index]; + if (string == null) return match; + return "'" + strings[index] + "'"; +}; + +function getString(value) { + return value.indexOf("'") === 0 ? strings[value.slice(1, - 1)] : value; +}; + +// clone a "width" function to create a "height" function +var rotater = new RegGrp({ + Width: "Height", + width: "height", + Left: "Top", + left: "top", + Right: "Bottom", + right: "bottom", + onX: "onY" +}); + +function rotate(fn) { + return rotater.parse(fn); +}; + +// ----------------------------------------------------------------------- +// event handling +// ----------------------------------------------------------------------- + +var eventHandlers = []; + +function addResize(handler) { + addRecalc(handler); + addEventHandler(window, "onresize", handler); +}; + +// add an event handler (function) to an element +function addEventHandler(element, type, handler) { + element.attachEvent(type, handler); + // store the handler so it can be detached later + eventHandlers.push(arguments); +}; + +// remove an event handler assigned to an element by IE7 +function removeEventHandler(element, type, handler) { + try { + element.detachEvent(type, handler); + } catch (ex) { + // write a letter of complaint to microsoft.. + } +}; + +// remove event handlers (they eat memory) +addEventHandler(window, "onunload", function() { + var handler; + while (handler = eventHandlers.pop()) { + removeEventHandler(handler[0], handler[1], handler[2]); + } +}); + +function register(handler, element, condition) { // -@DRE + //var set = handler[element.uniqueID]; + if (!handler.elements) handler.elements = {}; + if (condition) handler.elements[element.uniqueID] = element; + else delete handler.elements[element.uniqueID]; + //return !set && condition; + return condition; +}; + +addEventHandler(window, "onbeforeprint", function() { + if (!IE7.CSS.print) new StyleSheet("print"); + IE7.CSS.print.recalc(); +}); + +// ----------------------------------------------------------------------- +// pixel conversion +// ----------------------------------------------------------------------- + +// this is handy because it means that web developers can mix and match +// measurement units in their style sheets. it is not uncommon to +// express something like padding in "em" units whilst border thickness +// is most often expressed in pixels. + +var PIXEL = /^\d+(px)?$/i; +var PERCENT = /^\d+%$/; +var getPixelValue = function(element, value) { + if (PIXEL.test(value)) return parseInt(value); + var style = element.style.left; + var runtimeStyle = element.runtimeStyle.left; + element.runtimeStyle.left = element.currentStyle.left; + element.style.left = value || 0; + value = element.style.pixelLeft; + element.style.left = style; + element.runtimeStyle.left = runtimeStyle; + return value; +}; + +// ----------------------------------------------------------------------- +// generic +// ----------------------------------------------------------------------- + +var $IE7 = "ie7-"; + +var Fix = Base.extend({ + constructor: function() { + this.fixes = []; + this.recalcs = []; + }, + init: Undefined +}); + +// a store for functions that will be called when refreshing IE7 +var recalcs = []; +function addRecalc(recalc) { + recalcs.push(recalc); +}; + +IE7.recalc = function() { + IE7.HTML.recalc(); + // re-apply style sheet rules (re-calculate ie7 classes) + IE7.CSS.recalc(); + // apply global fixes to the document + for (var i = 0; i < recalcs.length; i++) recalcs[i](); +}; + +function isFixed(element) { + return element.currentStyle["ie7-position"] == "fixed"; +}; + +// original style +function getDefinedStyle(element, propertyName) { + return element.currentStyle[$IE7 + propertyName] || element.currentStyle[propertyName]; +}; + +function setOverrideStyle(element, propertyName, value) { + if (element.currentStyle[$IE7 + propertyName] == null) { + element.runtimeStyle[$IE7 + propertyName] = element.currentStyle[propertyName]; + } + element.runtimeStyle[propertyName] = value; +}; + +// Create a temporary element which is used to inherit styles +// from the target element. +function createTempElement(tagName) { + var element = document.createElement(tagName || "object"); + element.style.cssText = "position:absolute;padding:0;display:block;border:none;clip:rect(0 0 0 0);left:-9999"; + element.ie7_anon = true; + return element; +}; + + +// ========================================================================= +// ie7-css.js +// ========================================================================= + +var NEXT_SIBLING = "(e.nextSibling&&IE7._getElementSibling(e,'next'))", + PREVIOUS_SIBLING = NEXT_SIBLING.replace(/next/g, "previous"), + IS_ELEMENT = "e.nodeName>'@'", + IF_ELEMENT = "if(" + IS_ELEMENT + "){"; + +var ID_ATTRIBUTE = "(e.nodeName==='FORM'?IE7._getAttribute(e,'id'):e.id)"; + +var HYPERLINK = /a(#[\w-]+)?(\.[\w-]+)?:(hover|active)/i; +var FIRST_LINE_LETTER = /(.*)(:first-(line|letter))/; +var SPACE = /\s/; +var RULE = /((?:\\.|[^{\\])+)\{((?:\\.|[^}\\])+)\}/g; +var SELECTOR = /(?:\\.|[^,\\])+/g; + +var styleSheets = document.styleSheets; + +var inheritedProperties = []; + +IE7.CSS = new (Fix.extend({ // single instance + parser: new Parser, + screen: "", + print: "", + styles: [], + rules: [], + pseudoClasses: appVersion < 7 ? "first\\-child" : "", + dynamicPseudoClasses: { + toString: function() { + var strings = []; + for (var pseudoClass in this) strings.push(pseudoClass); + return strings.join("|"); + } + }, + + init: function() { + var NONE = "^\x01$"; + var CLASS = "\\[class=?[^\\]]*\\]"; + var pseudoClasses = []; + if (this.pseudoClasses) pseudoClasses.push(this.pseudoClasses); + var dynamicPseudoClasses = this.dynamicPseudoClasses.toString(); + if (dynamicPseudoClasses) pseudoClasses.push(dynamicPseudoClasses); + pseudoClasses = pseudoClasses.join("|"); + var unknown = appVersion < 7 ? ["[>+~\\[(]|([:.])[\\w-]+\\1"] : [CLASS]; + if (pseudoClasses) unknown.push(":(" + pseudoClasses + ")"); + this.UNKNOWN = new RegExp(unknown.join("|") || NONE, "i"); + var complex = appVersion < 7 ? ["\\[[^\\]]+\\]|[^\\s(\\[]+\\s*[+~]"] : [CLASS]; + var complexRule = complex.concat(); + if (pseudoClasses) complexRule.push(":(" + pseudoClasses + ")"); + Rule.COMPLEX = new RegExp(complexRule.join("|") || NONE, "ig"); + if (this.pseudoClasses) complex.push(":(" + this.pseudoClasses + ")"); + DynamicRule.COMPLEX = new RegExp(complex.join("|") || NONE, "i"); + dynamicPseudoClasses = "not\\(:" + dynamicPseudoClasses.split("|").join("\\)|not\\(:") + "\\)|" + dynamicPseudoClasses; + DynamicRule.MATCH = new RegExp(dynamicPseudoClasses ? "(.*?):(" + dynamicPseudoClasses + ")(.*)" : NONE, "i"); + + this.createStyleSheet(); + this.refresh(); + }, + + addEventHandler: function() { + addEventHandler.apply(null, arguments); + }, + + addFix: function(expression, replacement) { + this.parser.add(expression, replacement); + }, + + addRecalc: function(propertyName, test, handler, replacement) { + // recalcs occur whenever the document is refreshed using document.recalc() + propertyName = propertyName.source || propertyName; + test = new RegExp("([{;\\s])" + propertyName + "\\s*:\\s*" + test + "[^;}]*"); + var id = this.recalcs.length; + if (typeof replacement == "string") replacement = propertyName + ":" + replacement; + this.addFix(test, function(match) { + if (typeof replacement == "function") replacement = replacement(match); + return (replacement ? replacement : match) + ";ie7-" + match.slice(1) + ";ie7_recalc" + id + ":1"; + }); + this.recalcs.push(arguments); + return id; + }, + + apply: function() { + this.getInlineCSS(); + new StyleSheet("screen"); + this.trash(); + }, + + createStyleSheet: function() { + // create the IE7 style sheet + document.getElementsByTagName("head")[0].appendChild(document.createElement("style")); + this.styleSheet = styleSheets[styleSheets.length - 1]; + // flag it so we can ignore it during parsing + this.styleSheet.ie7 = true; + this.styleSheet.owningElement.ie7 = true; + this.styleSheet.cssText = HEADER; + }, + + getInlineCSS: function() {// load inline styles + var styleSheets = document.getElementsByTagName("style"), styleSheet; + for (var i = styleSheets.length - 1; styleSheet = styleSheets[i]; i--) { + if (!styleSheet.disabled && !styleSheet.ie7) { + styleSheet._cssText = styleSheet.innerHTML; + } + } + }, + + getText: function(styleSheet, path) { + // Internet Explorer will trash unknown selectors (it converts them to "UNKNOWN"). + // So we must reload external style sheets (internal style sheets can have their text + // extracted through the innerHTML property). + + // load the style sheet text from an external file + try { + var cssText = styleSheet.cssText; + } catch (e) { + cssText = ""; + } + if (httpRequest) cssText = loadFile(styleSheet.href, path) || cssText; + return cssText; + }, + + recalc: function() { + this.screen.recalc(); + // we're going to read through all style rules. + // certain rules have had ie7 properties added to them. + // e.g. p{top:0; ie7_recalc2:1; left:0} + // this flags a property in the rule as needing a fix. + // the selector text is then used to query the document. + // we can then loop through the results of the query + // and fix the elements. + // we ignore the IE7 rules - so count them in the header + var RECALCS = /ie7_recalc\d+/g; + var start = HEADER.match(/[{,]/g).length; + // only calculate screen fixes. print fixes don't show up anyway + var rules = this.styleSheet.rules, rule; + var calcs, calc, elements, element, i, j, k, id; + // loop through all rules + for (i = start; rule = rules[i]; i++) { + var cssText = rule.style.cssText; + // search for the "ie7_recalc" flag (there may be more than one) + if (calcs = cssText.match(RECALCS)) { + // use the selector text to query the document + elements = cssQuery(rule.selectorText); + // if there are matching elements then loop + // through the recalc functions and apply them + // to each element + if (elements.length) for (j = 0; j < calcs.length; j++) { + // get the matching flag (e.g. ie7_recalc3) + id = calcs[j]; + // extract the numeric id from the end of the flag + // and use it to index the collection of recalc + // functions + calc = IE7.CSS.recalcs[id.slice(10)][2]; + for (k = 0; (element = elements[k]); k++) { + // apply the fix + if (element.currentStyle[id]) calc(element, cssText); + } + } + } + } + }, + + refresh: function() { + this.styleSheet.cssText = HEADER + this.screen + this.print; + }, + + trash: function() { + // trash the old style sheets + for (var i = 0; i < styleSheets.length; i++) { + if (!styleSheets[i].ie7) { + try { + var cssText = styleSheets[i].cssText; + } catch (e) { + cssText = ""; + } + if (cssText) styleSheets[i].cssText = ""; + } + } + } +})); + +// ----------------------------------------------------------------------- +// IE7 StyleSheet class +// ----------------------------------------------------------------------- + +var StyleSheet = Base.extend({ + constructor: function(media) { + this.media = media; + this.load(); + IE7.CSS[media] = this; + IE7.CSS.refresh(); + }, + + createRule: function(selector, cssText) { + var match; + if (PseudoElement && (match = selector.match(PseudoElement.MATCH))) { + return new PseudoElement(match[1], match[2], cssText); + } else if (match = selector.match(DynamicRule.MATCH)) { + if (!HYPERLINK.test(match[0]) || DynamicRule.COMPLEX.test(match[0])) { + return new DynamicRule(selector, match[1], match[2], match[3], cssText); + } + } else { + return new Rule(selector, cssText); + } + return selector + " {" + cssText + "}"; + }, + + getText: function() { + // store for style sheet text + // parse media decalarations + var MEDIA = /@media\s+([^{]+?)\s*\{([^@]+\})\s*\}/gi; + var IMPORTS = /@import[^;\n]+/gi; + var TRIM_IMPORTS = /@import\s+url\s*\(\s*["']?|["']?\s*\)\s*/gi; + var URL = /(url\s*\(\s*['"]?)([\w\.]+[^:\)]*['"]?\))/gi; + + var self = this; + + // Store loaded cssText URLs + var fileCache = {}; + + function getCSSText(styleSheet, path, media, level) { + var cssText = ""; + if (!level) { + media = toSimpleMedia(styleSheet.media); + level = 0; + } + if (media === "none") { + styleSheet.disabled = true; + return ""; + } + if (media === "all" || media === self.media) { + // IE only allows importing style sheets three levels deep. + // it will crash if you try to access a level below this + try { + var canAcess = !!styleSheet.cssText; + } catch (exe) {} + if (level < 3 && canAcess) { + var hrefs = styleSheet.cssText.match(IMPORTS); + // loop through imported style sheets + for (var i = 0, imported; i < styleSheet.imports.length; i++) { + var imported = styleSheet.imports[i]; + var href = styleSheet._href || styleSheet.href; + imported._href = hrefs[i].replace(TRIM_IMPORTS, ""); + // call this function recursively to get all imported style sheets + cssText += getCSSText(imported, getPath(href, path), media, level + 1); + } + } + // retrieve inline style or load an external style sheet + cssText += encode(styleSheet.href ? loadStyleSheet(styleSheet, path) : styleSheet.owningElement._cssText); + cssText = parseMedia(cssText, self.media); + } + return cssText; + }; + + // Load all style sheets in the document + for (var i = 0; i < styleSheets.length; i++) { + var styleSheet = styleSheets[i]; + if (!styleSheet.disabled && !styleSheet.ie7) this.cssText += getCSSText(styleSheet); + } + + // helper functions + function parseMedia(cssText, media) { + filterMedia.value = media; + return cssText.replace(MEDIA, filterMedia); + }; + + function filterMedia(match, media, cssText) { + media = toSimpleMedia(media); + switch (media) { + case "screen": + case "print": + if (media !== filterMedia.value) return ""; + case "all": + return cssText; + } + return ""; + }; + + function toSimpleMedia(media) { + if (!media) return "all"; + var split = media.toLowerCase().split(/\s*,\s*/); + media = "none"; + for (var i = 0; i < split.length; i++) { + if (split[i] === "all") return "all"; + if (split[i] === "screen") { + if (media === "print") return "all"; + media = "screen"; + } else if (split[i] === "print") { + if (media === "screen") return "all"; + media = "print"; + } + } + return media; + }; + + // Load an external style sheet + function loadStyleSheet(styleSheet, path) { + var href = styleSheet._href || styleSheet.href; + var url = makePath(href, path); + // If the style sheet has already loaded then don't reload it + if (fileCache[url]) return ""; + // Load from source + fileCache[url] = styleSheet.disabled ? "" : + fixUrls(IE7.CSS.getText(styleSheet, path), getPath(href, path)); + return fileCache[url]; + }; + + // Fix CSS paths. + // We're lumping all css text into one big style sheet so relative + // paths have to be fixed. This is necessary anyway because of other + // Internet Explorer bugs. + function fixUrls(cssText, pathname) { + // hack & slash + return cssText.replace(URL, "$1" + pathname.slice(0, pathname.lastIndexOf("/") + 1) + "$2"); + }; + }, + + load: function() { + this.cssText = ""; + this.getText(); + this.parse(); + if (inheritedProperties.length) { + this.cssText = parseInherited(this.cssText); + } + this.cssText = decode(this.cssText); + fileCache = {}; + }, + + parse: function() { + var cssText = IE7.CSS.parser.parse(this.cssText); + + var declarations = ""; + this.cssText = cssText.replace(/@charset[^;]+;|@font\-face[^\}]+\}/g, function(match) { + declarations += match + "\n"; + return ""; + }); + this.declarations = decode(declarations); + + // Parse the style sheet + var offset = IE7.CSS.rules.length; + var rules = [], rule; + while ((rule = RULE.exec(this.cssText))) { + var cssText = rule[2]; + if (cssText) { + var fixDescendants = appVersion < 7 && cssText.indexOf("AlphaImageLoader") !== -1; + var selectors = rule[1].match(SELECTOR), selector; + for (var i = 0; selector = selectors[i]; i++) { + selector = trim(selector); + var isUnknown = IE7.CSS.UNKNOWN.test(selector); + selectors[i] = isUnknown ? this.createRule(selector, cssText) : selector + "{" + cssText + "}"; + if (fixDescendants) selectors[i] += this.createRule(selector + ">*", "position:relative"); + } + rules.push(selectors.join("\n")); + } + } + this.cssText = rules.join("\n"); + this.rules = IE7.CSS.rules.slice(offset); + }, + + recalc: function() { + var rule, i; + for (i = 0; (rule = this.rules[i]); i++) rule.recalc(); + }, + + toString: function() { + return this.declarations + "@media " + this.media + "{" + this.cssText + "}"; + } +}); + +var PseudoElement; + +// ----------------------------------------------------------------------- +// IE7 style rules +// ----------------------------------------------------------------------- + +var Rule = IE7.Rule = Base.extend({ + constructor: function(selector, cssText) { + this.id = IE7.CSS.rules.length; + this.className = Rule.PREFIX + this.id; + var pseudoElement = selector.match(FIRST_LINE_LETTER); + this.selector = (pseudoElement ? pseudoElement[1] : selector) || "*"; + this.selectorText = this.parse(this.selector) + (pseudoElement ? pseudoElement[2] : ""); + this.cssText = cssText; + this.MATCH = new RegExp("\\s" + this.className + "(\\s|$)", "g"); + IE7.CSS.rules.push(this); + this.init(); + }, + + init: Undefined, + + add: function(element) { + // allocate this class + element.className += " " + this.className; + }, + + recalc: function() { + // execute the underlying css query for this class + var match = cssQuery(this.selector); + // add the class name for all matching elements + for (var i = 0; i < match.length; i++) this.add(match[i]); + }, + + parse: function(selector) { + // attempt to preserve specificity for "loose" parsing by + // removing unknown tokens from a css selector but keep as + // much as we can.. + var simple = selector.replace(Rule.CHILD, " ").replace(Rule.COMPLEX, ""); + if (appVersion < 7) simple = simple.replace(Rule.MULTI, ""); + var tags = match(simple, Rule.TAGS).length - match(selector, Rule.TAGS).length; + var classes = match(simple, Rule.CLASSES).length - match(selector, Rule.CLASSES).length + 1; + while (classes > 0 && Rule.CLASS.test(simple)) { + simple = simple.replace(Rule.CLASS, ""); + classes--; + } + while (tags > 0 && Rule.TAG.test(simple)) { + simple = simple.replace(Rule.TAG, "$1*"); + tags--; + } + simple += "." + this.className; + classes = Math.min(classes, 2); + tags = Math.min(tags, 2); + var score = -10 * classes - tags; + if (score > 0) { + simple = simple + "," + Rule.MAP[score] + " " + simple; + } + return simple; + }, + + remove: function(element) { + // deallocate this class + element.className = element.className.replace(this.MATCH, "$1"); + }, + + toString: function() { + return format("%1 {%2}", this.selectorText, this.cssText); + } +}, { + CHILD: />/g, + CLASS: /\.[\w-]+/, + CLASSES: /[.:\[]/g, + MULTI: /(\.[\w-]+)+/g, + PREFIX: "ie7_class", + TAG: /^\w+|([\s>+~])\w+/, + TAGS: /^\w|[\s>+~]\w/g, + MAP: { + "1": "html", + "2": "html body", + "10": ".ie7_html", + "11": "html.ie7_html", + "12": "html.ie7_html body", + "20": ".ie7_html .ie7_body", + "21": "html.ie7_html .ie7_body", + "22": "html.ie7_html body.ie7_body" + } +}); + +// ----------------------------------------------------------------------- +// IE7 dynamic style +// ----------------------------------------------------------------------- + +// object properties: +// attach: the element that an event handler will be attached to +// target: the element that will have the IE7 class applied + +var DynamicRule = Rule.extend({ + // properties + constructor: function(selector, attach, dynamicPseudoClass, target, cssText) { + this.negated = dynamicPseudoClass.indexOf("not") === 0; + if (this.negated) dynamicPseudoClass = dynamicPseudoClass.slice(5, -1); + // initialise object properties + this.attach = attach || "*"; + this.dynamicPseudoClass = IE7.CSS.dynamicPseudoClasses[dynamicPseudoClass]; + this.target = target; + this.base(selector, cssText); + }, + + recalc: function() { + // execute the underlying css query for this class + var attaches = cssQuery(this.attach), attach; + // process results + for (var i = 0; attach = attaches[i]; i++) { + // retrieve the event handler's target element(s) + var target = this.target ? cssQuery(this.target, attach) : [attach]; + // attach event handlers for dynamic pseudo-classes + if (target.length) this.dynamicPseudoClass.apply(attach, target, this); + } + } +}); + +// ----------------------------------------------------------------------- +// IE7 dynamic pseudo-classes +// ----------------------------------------------------------------------- + +var DynamicPseudoClass = Base.extend({ + constructor: function(name, apply) { + this.name = name; + this.apply = apply; + this.instances = {}; + IE7.CSS.dynamicPseudoClasses[name] = this; + }, + + register: function(instance, negated) { + // an "instance" is actually an Arguments object + var _class = instance[2]; + if (!negated && _class.negated) { + this.unregister(instance, true); + } else { + instance.id = _class.id + instance[0].uniqueID; + if (!this.instances[instance.id]) { + var target = instance[1], j; + for (j = 0; j < target.length; j++) _class.add(target[j]); + this.instances[instance.id] = instance; + } + } + }, + + unregister: function(instance, negated) { + var _class = instance[2]; + if (!negated && _class.negated) { + this.register(instance, true); + } else { + if (this.instances[instance.id]) { + var target = instance[1], j; + for (j = 0; j < target.length; j++) _class.remove(target[j]); + delete this.instances[instance.id]; + } + } + } +}); + +// ----------------------------------------------------------------------- +// dynamic pseudo-classes +// ----------------------------------------------------------------------- + +var Hover = new DynamicPseudoClass("hover", function(element) { + var instance = arguments; + IE7.CSS.addEventHandler(element, "onmouseenter", function() { + Hover.register(instance); + }); + IE7.CSS.addEventHandler(element, "onmouseleave", function() { + Hover.unregister(instance); + }); +}); + +// globally trap the mouseup event (thanks Martijn!) +addEventHandler(document, "onmouseup", function() { + var instances = Hover.instances; + for (var i in instances) + if (!instances[i][0].contains(event.srcElement)) + Hover.unregister(instances[i]); +}); + +var ATTR = { + "=": "%1==='%2'", // "[@%1='%2']" + "~=": "(' '+%1+' ').indexOf(' %2 ')!==-1", // "[contains(concat(' ',@%1,' '),' %2 ')]", + "|=": "%1==='%2'||%1.indexOf('%2-')===0", // "[@%1='%2' or starts-with(@%1,'%2-')]", + "^=": "%1.indexOf('%2')===0", // "[starts-with(@%1,'%2')]", + "$=": "%1.slice(-'%2'.length)==='%2'", // "[ends-with(@%1,'%2')]", + "*=": "%1.indexOf('%2')!==-1" // "[contains(@%1,'%2')]" +}; +ATTR[""] = "%1!=null"; // "[@%1]" + +var FILTER = { + "<#attr>": function(match, name, operator, value) { + var attr = "IE7._getAttribute(e,'" + name + "')"; + value = getString(value); + if (operator.length > 1) { + if (!value || operator === "~=" && SPACE.test(value)) { + return "false&&"; + } + attr = "(" + attr + "||'')"; + } + return "(" + format(ATTR[operator], attr, value) + ")&&"; + }, + + "<#id>": ID_ATTRIBUTE + "==='$1'&&", + + "<#class>": "e.className&&(' '+e.className+' ').indexOf(' $1 ')!==-1&&", + + // PSEDUO + ":first-child": "!" + PREVIOUS_SIBLING + "&&", + ":link": "e.currentStyle['ie7-link']=='link'&&", + ":visited": "e.currentStyle['ie7-link']=='visited'&&" +}; + +// ========================================================================= +// ie7-html.js +// ========================================================================= + +// default font-sizes +//HEADER += "h1{font-size:2em}h2{font-size:1.5em;}h3{font-size:1.17em;}h4{font-size:1em}h5{font-size:.83em}h6{font-size:.67em}"; + +IE7.HTML = new (Fix.extend({ // single instance + fixed: {}, + + init: Undefined, + + addFix: function() { + // fixes are a one-off, they are applied when the document is loaded + this.fixes.push(arguments); + }, + + apply: function() { + for (var i = 0; i < this.fixes.length; i++) { + var match = cssQuery(this.fixes[i][0]); + var fix = this.fixes[i][1]; + for (var j = 0; j < match.length; j++) fix(match[j]); + } + }, + + addRecalc: function() { + // recalcs occur whenever the document is refreshed using document.recalc() + this.recalcs.push(arguments); + }, + + recalc: function() { + // loop through the fixes + for (var i = 0; i < this.recalcs.length; i++) { + var match = cssQuery(this.recalcs[i][0]); + var recalc = this.recalcs[i][1], element; + var key = Math.pow(2, i); + for (var j = 0; (element = match[j]); j++) { + var uniqueID = element.uniqueID; + if ((this.fixed[uniqueID] & key) === 0) { + element = recalc(element) || element; + this.fixed[uniqueID] |= key; + } + } + } + } +})); + +if (appVersion < 7) { + // provide support for the tag. + document.createElement("abbr"); + + // bind to the first child control + IE7.HTML.addRecalc("label", function(label) { + if (!label.htmlFor) { + var firstChildControl = cssQuery("input,textarea", label, true); + if (firstChildControl) { + addEventHandler(label, "onclick", function() { + firstChildControl.click(); + }); + } + } + }); +} + +// ========================================================================= +// ie7-layout.js +// ========================================================================= + +var NUMERIC = "[.\\d]"; + +(function() { + var layout = IE7.Layout = {}; + + // big, ugly box-model hack + min/max stuff + + // #tantek > #erik > #dean { voice-family: hacker; } + + // ----------------------------------------------------------------------- + // "layout" + // ----------------------------------------------------------------------- + + HEADER += "*{boxSizing:content-box}"; + + // give an element "layout" + layout.boxSizing = function(element) { + if (!element.currentStyle.hasLayout) { + //# element.runtimeStyle.fixedHeight = + element.style.height = "0cm"; + if (element.currentStyle.verticalAlign === "auto") + element.runtimeStyle.verticalAlign = "top"; + // when an element acquires "layout", margins no longer collapse correctly + collapseMargins(element); + } + }; + + // ----------------------------------------------------------------------- + // Margin Collapse + // ----------------------------------------------------------------------- + + function collapseMargins(element) { + if (element != viewport && element.currentStyle.position !== "absolute") { + collapseMargin(element, "marginTop"); + collapseMargin(element, "marginBottom"); + } + }; + + function collapseMargin(element, type) { + if (!element.runtimeStyle[type]) { + var parentElement = element.parentElement; + var isTopMargin = type === "marginTop"; + if (parentElement && parentElement.currentStyle.hasLayout && !IE7._getElementSibling(element, isTopMargin ? "previous" : "next")) return; + var child = element[isTopMargin ? "firstChild" : "lastChild"]; + if (child && child.nodeName < "@") child = IE7._getElementSibling(child, isTopMargin ? "next" : "previous"); + if (child && child.currentStyle.styleFloat === "none" && child.currentStyle.hasLayout) { + collapseMargin(child, type); + margin = _getMargin(element, element.currentStyle[type]); + childMargin = _getMargin(child, child.currentStyle[type]); + if (margin < 0 || childMargin < 0) { + element.runtimeStyle[type] = margin + childMargin; + } else { + element.runtimeStyle[type] = Math.max(childMargin, margin); + } + child.runtimeStyle[type] = "0px"; + } + } + }; + + function _getMargin(element, value) { + return value === "auto" ? 0 : getPixelValue(element, value); + }; + + // ----------------------------------------------------------------------- + // box-model + // ----------------------------------------------------------------------- + + // constants + var UNIT = /^[.\d][\w]*$/, AUTO = /^(auto|0cm)$/; + + var apply = {}; + layout.borderBox = function(element){ + apply.Width(element); + apply.Height(element); + }; + + var _fixWidth = function(HEIGHT) { + apply.Width = function(element) { + if (!PERCENT.test(element.currentStyle.width)) _fixWidth(element); + if (HEIGHT) collapseMargins(element); + }; + + function _fixWidth(element, value) { + if (!element.runtimeStyle.fixedWidth) { + if (!value) value = element.currentStyle.width; + element.runtimeStyle.fixedWidth = UNIT.test(value) ? Math.max(0, getFixedWidth(element, value)) + "px" : value; + setOverrideStyle(element, "width", element.runtimeStyle.fixedWidth); + } + }; + + function layoutWidth(element) { + if (!isFixed(element)) { + var layoutParent = element.offsetParent; + while (layoutParent && !layoutParent.currentStyle.hasLayout) layoutParent = layoutParent.offsetParent; + } + return (layoutParent || viewport).clientWidth; + }; + + function getPixelWidth(element, value) { + if (PERCENT.test(value)) return parseInt(parseFloat(value) / 100 * layoutWidth(element)); + return getPixelValue(element, value); + }; + + var getFixedWidth = function(element, value) { + var borderBox = element.currentStyle["ie7-box-sizing"] === "border-box"; + var adjustment = 0; + if (MSIE5 && !borderBox) + adjustment += getBorderWidth(element) + getWidth(element, "padding"); + else if (!MSIE5 && borderBox) + adjustment -= getBorderWidth(element) + getWidth(element, "padding"); + return getPixelWidth(element, value) + adjustment; + }; + + // easy way to get border thickness for elements with "layout" + function getBorderWidth(element) { + return element.offsetWidth - element.clientWidth; + }; + + // have to do some pixel conversion to get padding/margin thickness :-( + function getWidth(element, type) { + return getPixelWidth(element, element.currentStyle[type + "Left"]) + getPixelWidth(element, element.currentStyle[type + "Right"]); + }; + + // ----------------------------------------------------------------------- + // min/max + // ----------------------------------------------------------------------- + + HEADER += "*{minWidth:none;maxWidth:none;min-width:none;max-width:none}"; + + // handle min-width property + layout.minWidth = function(element) { + // IE6 supports min-height so we frig it here + //#if (element.currentStyle.minHeight === "auto") element.runtimeStyle.minHeight = 0; + if (element.currentStyle["min-width"] != null) { + element.style.minWidth = element.currentStyle["min-width"]; + } + if (register(arguments.callee, element, element.currentStyle.minWidth !== "none")) { + layout.boxSizing(element); + _fixWidth(element); + resizeWidth(element); + } + }; + + // clone the minWidth function to make a maxWidth function + eval("IE7.Layout.maxWidth=" + String(layout.minWidth).replace(/min/g, "max")); + + // apply min/max restrictions + function resizeWidth(element) { + // check boundaries + if (element == document.body) { + var width = element.clientWidth; + } else { + var rect = element.getBoundingClientRect(); + width = rect.right - rect.left; + } + if (element.currentStyle.minWidth !== "none" && width < getFixedWidth(element, element.currentStyle.minWidth)) { + element.runtimeStyle.width = element.currentStyle.minWidth; + } else if (element.currentStyle.maxWidth !== "none" && width >= getFixedWidth(element, element.currentStyle.maxWidth)) { + element.runtimeStyle.width = element.currentStyle.maxWidth; + } else { + element.runtimeStyle.width = element.runtimeStyle.fixedWidth; + } + }; + + // ----------------------------------------------------------------------- + // right/bottom + // ----------------------------------------------------------------------- + + function fixRight(element) { + if (register(fixRight, element, /^(fixed|absolute)$/.test(element.currentStyle.position) && + getDefinedStyle(element, "left") !== "auto" && + getDefinedStyle(element, "right") !== "auto" && + AUTO.test(getDefinedStyle(element, "width")))) { + resizeRight(element); + layout.boxSizing(element); + } + }; + layout.fixRight = fixRight; + + function resizeRight(element) { + var left = getPixelWidth(element, element.runtimeStyle._left || element.currentStyle.left); + var width = layoutWidth(element) - getPixelWidth(element, element.currentStyle.right) - left - getWidth(element, "margin"); + if (parseInt(element.runtimeStyle.width) === width) return; + element.runtimeStyle.width = ""; + if (isFixed(element) || HEIGHT || element.offsetWidth < width) { + if (!MSIE5) width -= getBorderWidth(element) + getWidth(element, "padding"); + if (width < 0) width = 0; + element.runtimeStyle.fixedWidth = width; + setOverrideStyle(element, "width", width); + } + }; + + // ----------------------------------------------------------------------- + // window.onresize + // ----------------------------------------------------------------------- + + // handle window resize + var clientWidth = 0; + addResize(function() { + if (!viewport) return; + var i, wider = (clientWidth < viewport.clientWidth); + clientWidth = viewport.clientWidth; + // resize elements with "min-width" set + var elements = layout.minWidth.elements; + for (i in elements) { + var element = elements[i]; + var fixedWidth = (parseInt(element.runtimeStyle.width) === getFixedWidth(element, element.currentStyle.minWidth)); + if (wider && fixedWidth) element.runtimeStyle.width = ""; + if (wider == fixedWidth) resizeWidth(element); + } + // resize elements with "max-width" set + var elements = layout.maxWidth.elements; + for (i in elements) { + var element = elements[i]; + var fixedWidth = (parseInt(element.runtimeStyle.width) === getFixedWidth(element, element.currentStyle.maxWidth)); + if (!wider && fixedWidth) element.runtimeStyle.width = ""; + if (wider !== fixedWidth) resizeWidth(element); + } + // resize elements with "right" set + for (i in fixRight.elements) resizeRight(fixRight.elements[i]); + }); + + // ----------------------------------------------------------------------- + // fix CSS + // ----------------------------------------------------------------------- + if (MSIE5) { + IE7.CSS.addRecalc("width", NUMERIC, apply.Width); + } + if (appVersion < 7) { + IE7.CSS.addRecalc("max-width", NUMERIC, layout.maxWidth); + IE7.CSS.addRecalc("right", NUMERIC, fixRight); + } else if (appVersion == 7) { + if (HEIGHT) IE7.CSS.addRecalc("height", "[\\d.]+%", function(element) { + element.runtimeStyle.pixelHeight = parseInt(layoutWidth(element) * element.currentStyle["ie7-height"].slice(0, -1) / 100); + }); + } + }; + + eval("var _fixHeight=" + rotate(_fixWidth)); + + // apply box-model + min/max fixes + _fixWidth(); + _fixHeight(true); + + if (appVersion < 7) { + IE7.CSS.addRecalc("min-width", NUMERIC, layout.minWidth); + IE7.CSS.addFix(/\bmin-height\s*/, "height"); + } +})(); + +// ========================================================================= +// ie7-graphics.js +// ========================================================================= + +// a small transparent image used as a placeholder +var BLANK_GIF = makePath("blank.gif", path); + +var ALPHA_IMAGE_LOADER = "DXImageTransform.Microsoft.AlphaImageLoader"; +var PNG_FILTER = "progid:" + ALPHA_IMAGE_LOADER + "(src='%1',sizingMethod='%2')"; + +// regular expression version of the above +var PNG; + +var filtered = []; + +function fixImage(element) { + if (PNG.test(element.src)) { + // we have to preserve width and height + var image = new Image(element.width, element.height); + image.onload = function() { + element.width = image.width; + element.height = image.height; + image = null; + }; + image.src = element.src; + // store the original url (we'll put it back when it's printed) + element.pngSrc = element.src; + // add the AlphaImageLoader thingy + addFilter(element); + } +}; + +if (appVersion < 7) { + // ** IE7 VARIABLE + // e.g. apply the hack to all files ending in ".png" + // IE7_PNG_SUFFIX = ".png"; + // You can also set it to a RegExp + // IE7_PNG_SUFFIX = /\d+\.png$/; + + // replace background(-image): url(..) .. with background(-image): .. ;filter: ..; + IE7.CSS.addFix(/background(-image)?\s*:\s*([^};]*)?url\(([^\)]+)\)([^;}]*)?/, function(match, $1, $2, url, $4) { + url = getString(url); + return PNG.test(url) ? "filter:" + format(PNG_FILTER, url, $4.indexOf("no-repeat") === -1 ? "scale" : "crop") + + ";zoom:1;background" + ($1||"") + ":" + ($2||"") + "none" + ($4||"") : match; + }); + + // list-style-image + IE7.CSS.addRecalc(/list\-style(\-image)?/, "[^};]*url", function(element) { + var url = element.currentStyle.listStyleImage.slice(5, -2); + if (PNG.test(url)) { + if (element.nodeName === "LI") { + fixListStyleImage(element, url) + } else if (element.nodeName === "UL") { + for (var i = 0, li; li = element.childNodes[i]; i++) { + if (li.nodeName === "LI") fixListStyleImage(li, url); + } + } + } + }); + + function fixListStyleImage(element, src) { + var style = element.runtimeStyle; + var originalHeight = element.offsetHeight; + var image = new Image; + image.onload = function() { + var paddingLeft = element.currentStyle.paddingLeft; + paddingLeft = paddingLeft === "0px" ? 0 : getPixelValue(element, paddingLeft); + style.paddingLeft = (paddingLeft + this.width) + "px"; + style.marginLeft = -this.width + "px"; + style.listStyleType = "none"; + style.listStyleImage = "none"; + style.paddingTop = Math.max(originalHeight - element.offsetHeight, 0) + "px"; + addFilter(element, "crop", src); + element.style.zoom = "100%"; + }; + image.src = src; + }; + + // ----------------------------------------------------------------------- + // fix PNG transparency (HTML images) + // ----------------------------------------------------------------------- + + IE7.HTML.addRecalc("img,input", function(element) { + if (element.nodeName === "INPUT" && element.type !== "image") return; + fixImage(element); + addEventHandler(element, "onpropertychange", function() { + if (!printing && event.propertyName === "src" && + element.src.indexOf(BLANK_GIF) === -1) fixImage(element); + }); + }); + + // assume that background images should not be printed + // (if they are not transparent then they'll just obscure content) + // but we'll put foreground images back... + var printing = false; + addEventHandler(window, "onbeforeprint", function() { + printing = true; + for (var i = 0; i < filtered.length; i++) removeFilter(filtered[i]); + }); + addEventHandler(window, "onafterprint", function() { + for (var i = 0; i < filtered.length; i++) addFilter(filtered[i]); + printing = false; + }); +} + +// apply a filter +function addFilter(element, sizingMethod, src) { + var filter = element.filters[ALPHA_IMAGE_LOADER]; + if (filter) { + filter.src = src || element.src; + filter.enabled = true; + } else { + element.runtimeStyle.filter = format(PNG_FILTER, src || element.src, sizingMethod || "scale"); + filtered.push(element); + } + // remove the real image + element.src = BLANK_GIF; +}; + +function removeFilter(element) { + element.src = element.pngSrc; + element.filters[ALPHA_IMAGE_LOADER].enabled = false; +}; + +// ========================================================================= +// ie7-fixed.js +// ========================================================================= + +(function() { + if (appVersion >= 7) return; + + // some things to consider for this hack. + // the document body requires a fixed background. even if + // it is just a blank image. + // you have to use setExpression instead of onscroll, this + // together with a fixed body background helps avoid the + // annoying screen flicker of other solutions. + + IE7.CSS.addRecalc("position", "fixed", _positionFixed, "absolute"); + IE7.CSS.addRecalc("background(-attachment)?", "[^};]*fixed", _backgroundFixed); + + // scrolling is relative to the documentElement (HTML tag) when in + // standards mode, otherwise it's relative to the document body + var $viewport = MSIE5 ? "body" : "documentElement"; + + function _fixBackground() { + // this is required by both position:fixed and background-attachment:fixed. + // it is necessary for the document to also have a fixed background image. + // we can fake this with a blank image if necessary + if (body.currentStyle.backgroundAttachment !== "fixed") { + if (body.currentStyle.backgroundImage === "none") { + body.runtimeStyle.backgroundRepeat = "no-repeat"; + body.runtimeStyle.backgroundImage = "url(" + BLANK_GIF + ")"; // dummy + } + body.runtimeStyle.backgroundAttachment = "fixed"; + } + _fixBackground = Undefined; + }; + + var _tmp = createTempElement("img"); + + function _isFixed(element) { + return element ? isFixed(element) || _isFixed(element.parentElement) : false; + }; + + function _setExpression(element, propertyName, expression) { + setTimeout("document.all." + element.uniqueID + ".runtimeStyle.setExpression('" + propertyName + "','" + expression + "')", 0); + }; + + // ----------------------------------------------------------------------- + // backgroundAttachment: fixed + // ----------------------------------------------------------------------- + + function _backgroundFixed(element) { + if (register(_backgroundFixed, element, element.currentStyle.backgroundAttachment === "fixed" && !element.contains(body))) { + _fixBackground(); + util.bgLeft(element); + util.bgTop(element); + _backgroundPosition(element); + } + }; + + function _backgroundPosition(element) { + _tmp.src = element.currentStyle.backgroundImage.slice(5, -2); + var parentElement = element.canHaveChildren ? element : element.parentElement; + parentElement.appendChild(_tmp); + util.setOffsetLeft(element); + util.setOffsetTop(element); + parentElement.removeChild(_tmp); + }; + + // ----------------------------------------------------------------------- + // position: fixed + // ----------------------------------------------------------------------- + + function _positionFixed(element) { + if (register(_positionFixed, element, isFixed(element))) { + setOverrideStyle(element, "position", "absolute"); + setOverrideStyle(element, "left", element.currentStyle.left); + setOverrideStyle(element, "top", element.currentStyle.top); + _fixBackground(); + IE7.Layout.fixRight(element); + //IE7.Layout.fixBottom(element); + _foregroundPosition(element); + } + }; + + function _foregroundPosition(element, recalc) { + document.body.getBoundingClientRect(); // force a reflow + util.positionTop(element, recalc); + util.positionLeft(element, recalc, true); + if (!element.runtimeStyle.autoLeft && element.currentStyle.marginLeft === "auto" && + element.currentStyle.right !== "auto") { + var left = viewport.clientWidth - util.getPixelWidth(element, element.currentStyle.right) - + util.getPixelWidth(element, element.runtimeStyle._left) - element.clientWidth; + if (element.currentStyle.marginRight === "auto") left = parseInt(left / 2); + if (_isFixed(element.offsetParent)) element.runtimeStyle.pixelLeft += left; + else element.runtimeStyle.shiftLeft = left; + } + if (!element.runtimeStyle.fixedWidth) util.clipWidth(element); + if (!element.runtimeStyle.fixedHeight) util.clipHeight(element); + }; + + // ----------------------------------------------------------------------- + // capture window resize + // ----------------------------------------------------------------------- + + function _resize() { + // if the window has been resized then some positions need to be + // recalculated (especially those aligned to "right" or "top" + var elements = _backgroundFixed.elements; + for (var i in elements) _backgroundPosition(elements[i]); + elements = _positionFixed.elements; + for (i in elements) { + _foregroundPosition(elements[i], true); + _foregroundPosition(elements[i], true); + } + _timer = 0; + }; + + // use a timer (sometimes this is a good way to prevent resize loops) + var _timer; + addResize(function() { + if (!_timer) _timer = setTimeout(_resize, 100); + }); + + // ----------------------------------------------------------------------- + // rotated + // ----------------------------------------------------------------------- + + var util = {}; + + var _horizontal = function(util) { + util.bgLeft = function(element) { + element.style.backgroundPositionX = element.currentStyle.backgroundPositionX; + if (!_isFixed(element)) { + _setExpression(element, "backgroundPositionX", "(parseInt(runtimeStyle.offsetLeft)+document." + $viewport + ".scrollLeft)||0"); + } + }; + + util.setOffsetLeft = function(element) { + var propertyName = _isFixed(element) ? "backgroundPositionX" : "offsetLeft"; + element.runtimeStyle[propertyName] = + util.getOffsetLeft(element, element.style.backgroundPositionX) - + element.getBoundingClientRect().left - element.clientLeft + 2; + }; + + util.getOffsetLeft = function(element, position) { + switch (position) { + case "left": + case "top": + return 0; + case "right": + case "bottom": + return viewport.clientWidth - _tmp.offsetWidth; + case "center": + return (viewport.clientWidth - _tmp.offsetWidth) / 2; + default: + if (PERCENT.test(position)) { + return parseInt((viewport.clientWidth - _tmp.offsetWidth) * parseFloat(position) / 100); + } + _tmp.style.left = position; + return _tmp.offsetLeft; + } + }; + + util.clipWidth = function(element) { + var fixWidth = element.runtimeStyle.fixWidth; + element.runtimeStyle.borderRightWidth = ""; + element.runtimeStyle.width = fixWidth ? util.getPixelWidth(element, fixWidth) + "px" : ""; + if (element.currentStyle.width !== "auto") { + var rect = element.getBoundingClientRect(); + var width = element.offsetWidth - viewport.clientWidth + rect.left - 2; + if (width >= 0) { + element.runtimeStyle.borderRightWidth = "0px"; + width = Math.max(getPixelValue(element, element.currentStyle.width) - width, 0); + setOverrideStyle(element, "width", width); + return width; + } + } + }; + + util.positionLeft = function(element, recalc) { + // if the element's width is in % units then it must be recalculated + // with respect to the viewport + if (!recalc && PERCENT.test(element.currentStyle.width)) { + element.runtimeStyle.fixWidth = element.currentStyle.width; + } + if (element.runtimeStyle.fixWidth) { + element.runtimeStyle.width = util.getPixelWidth(element, element.runtimeStyle.fixWidth); + } + //if (recalc) { + // // if the element is fixed on the right then no need to recalculate + // if (!element.runtimeStyle.autoLeft) return; + //} else { + element.runtimeStyle.shiftLeft = 0; + element.runtimeStyle._left = element.currentStyle.left; + // is the element fixed on the right? + element.runtimeStyle.autoLeft = element.currentStyle.right !== "auto" && element.currentStyle.left === "auto"; + //} + // reset the element's "left" value and get it's natural position + element.runtimeStyle.left = ""; + element.runtimeStyle.screenLeft = util.getScreenLeft(element); + element.runtimeStyle.pixelLeft = element.runtimeStyle.screenLeft; + // if the element is contained by another fixed element then there is no need to + // continually recalculate it's left position + if (!recalc && !_isFixed(element.offsetParent)) { + // onsrcoll produces jerky movement, so we use an expression + _setExpression(element, "pixelLeft", "runtimeStyle.screenLeft+runtimeStyle.shiftLeft+document." + $viewport + ".scrollLeft"); + } + }; + + // I've forgotten how this works... + util.getScreenLeft = function(element) { // thanks to kevin newman (captainn) + var screenLeft = element.offsetLeft, nested = 1; + if (element.runtimeStyle.autoLeft) { + screenLeft = viewport.clientWidth - element.offsetWidth - util.getPixelWidth(element, element.currentStyle.right); + } + // accommodate margins + if (element.currentStyle.marginLeft !== "auto") { + screenLeft -= util.getPixelWidth(element, element.currentStyle.marginLeft); + } + while (element = element.offsetParent) { + if (element.currentStyle.position !== "static") nested = -1; + screenLeft += element.offsetLeft * nested; + } + return screenLeft; + }; + + util.getPixelWidth = function(element, value) { + return PERCENT.test(value) ? parseInt(parseFloat(value) / 100 * viewport.clientWidth) : getPixelValue(element, value); + }; + }; + eval("var _vertical=" + rotate(_horizontal)); + _horizontal(util); + _vertical(util); +})(); + +// ========================================================================= +// ie7-oveflow.js +// ========================================================================= + +/* --------------------------------------------------------------------- + + This module alters the structure of the document. + It may adversely affect other CSS rules. Be warned. + +--------------------------------------------------------------------- */ + +if (appVersion < 7) { + var WRAPPER_STYLE = { + backgroundColor: "transparent", + backgroundImage: "none", + backgroundPositionX: null, + backgroundPositionY: null, + backgroundRepeat: null, + borderTopWidth: 0, + borderRightWidth: 0, + borderBottomWidth: 0, + borderLeftStyle: "none", + borderTopStyle: "none", + borderRightStyle: "none", + borderBottomStyle: "none", + borderLeftWidth: 0, + borderLeftColor: "#000", + borderTopColor: "#000", + borderRightColor: "#000", + borderBottomColor: "#000", + height: null, + marginTop: 0, + marginBottom: 0, + marginRight: 0, + marginLeft: 0, + width: "100%" + }; + + IE7.CSS.addRecalc("overflow", "visible", function(element) { + if (element.currentStyle.position === "absolute") return; + + // don't do this again + if (element.parentNode.ie7_wrapped) return; + + // if max-height is applied, makes sure it gets applied first + if (IE7.Layout && element.currentStyle["max-height"] !== "auto") { + IE7.Layout.maxHeight(element); + } + + if (element.currentStyle.marginLeft === "auto") element.style.marginLeft = 0; + if (element.currentStyle.marginRight === "auto") element.style.marginRight = 0; + + var wrapper = document.createElement(ANON); + wrapper.ie7_wrapped = element; + for (var propertyName in WRAPPER_STYLE) { + wrapper.style[propertyName] = element.currentStyle[propertyName]; + if (WRAPPER_STYLE[propertyName] != null) { + element.runtimeStyle[propertyName] = WRAPPER_STYLE[propertyName]; + } + } + wrapper.style.display = "block"; + wrapper.style.position = "relative"; + element.runtimeStyle.position = "absolute"; + element.parentNode.insertBefore(wrapper, element); + wrapper.appendChild(element); + }); +} + +// ========================================================================= +// ie7-quirks.js +// ========================================================================= + +function ie7Quirks() { + var FONT_SIZES = "xx-small,x-small,small,medium,large,x-large,xx-large".split(","); + for (var i = 0; i < FONT_SIZES.length; i++) { + FONT_SIZES[FONT_SIZES[i]] = FONT_SIZES[i - 1] || "0.67em"; + } + + IE7.CSS.addFix(/(font(-size)?\s*:\s*)([\w.-]+)/, function(match, label, size, value) { + return label + (FONT_SIZES[value] || value); + }); + + var NEGATIVE = /^\-/, LENGTH = /(em|ex)$/i; + var EM = /em$/i, EX = /ex$/i; + + getPixelValue = function(element, value) { + if (PIXEL.test(value)) return parseInt(value)||0; + var scale = NEGATIVE.test(value)? -1 : 1; + if (LENGTH.test(value)) scale *= getFontScale(element); + temp.style.width = scale < 0 ? value.slice(1) : value; + body.appendChild(temp); + // retrieve pixel width + value = scale * temp.offsetWidth; + // remove the temporary element + temp.removeNode(); + return parseInt(value); + }; + + var temp = createTempElement(); + function getFontScale(element) { + var scale = 1; + temp.style.fontFamily = element.currentStyle.fontFamily; + temp.style.lineHeight = element.currentStyle.lineHeight; + //temp.style.fontSize = ""; + while (element != body) { + var fontSize = element.currentStyle["ie7-font-size"]; + if (fontSize) { + if (EM.test(fontSize)) scale *= parseFloat(fontSize); + else if (PERCENT.test(fontSize)) scale *= (parseFloat(fontSize) / 100); + else if (EX.test(fontSize)) scale *= (parseFloat(fontSize) / 2); + else { + temp.style.fontSize = fontSize; + return 1; + } + } + element = element.parentElement; + } + return scale; + }; + + // cursor:pointer (IE5.x) + IE7.CSS.addFix(/cursor\s*:\s*pointer/, "cursor:hand"); + // display:list-item (IE5.x) + IE7.CSS.addFix(/display\s*:\s*list-item/, "display:block"); + + // ----------------------------------------------------------------------- + // margin:auto + // ----------------------------------------------------------------------- + + function fixMargin(element) { + var parent = element.parentElement; + var margin = parent.offsetWidth - element.offsetWidth - getPaddingWidth(parent); + var autoRight = (element.currentStyle["ie7-margin"] && element.currentStyle.marginRight === "auto") || + element.currentStyle["ie7-margin-right"] === "auto"; + switch (parent.currentStyle.textAlign) { + case "right": + margin = autoRight ? parseInt(margin / 2) : 0; + element.runtimeStyle.marginRight = margin + "px"; + break; + case "center": + if (autoRight) margin = 0; + default: + if (autoRight) margin /= 2; + element.runtimeStyle.marginLeft = parseInt(margin) + "px"; + } + }; + + function getPaddingWidth(element) { + return getPixelValue(element, element.currentStyle.paddingLeft) + + getPixelValue(element, element.currentStyle.paddingRight); + }; + + IE7.CSS.addRecalc("margin(-left|-right)?", "[^};]*auto", function(element) { + if (register(fixMargin, element, + element.parentElement && + element.currentStyle.display === "block" && + element.currentStyle.marginLeft === "auto" && + element.currentStyle.position !== "absolute")) { + fixMargin(element); + } + }); + + addResize(function() { + for (var i in fixMargin.elements) { + var element = fixMargin.elements[i]; + element.runtimeStyle.marginLeft = + element.runtimeStyle.marginRight = ""; + fixMargin(element); + } + }); +}; + + +var MATCHER; + +var cssQuery = (function() { + var CONTEXT = /^[>+~]/; + + var useContext = false; + + // This is not a selector engine in the strictest sense. So it's best to silently error. + function cssQuery(selector, context, single) { + selector = trim(selector); + if (!context) context = document; + var ref = context; + useContext = CONTEXT.test(selector); + if (useContext) { + context = context.parentNode; + selector = "*" + selector; + } + try { + return selectQuery.create(selector, useContext)(context, single ? null : [], ref); + } catch (ex) { + return single ? null : []; + } + }; + + var VALID_SELECTOR = /^(\\.|[' >+~#.\[\]:*(),\w-\^|$=]|[^\x00-\xa0])+$/; + + var _EVALUATED = /^(href|src)$/; + var _ATTRIBUTES = { + "class": "className", + "for": "htmlFor" + }; + + var IE7_CLASS_NAMES = /\sie7_\w+/g; + + var USE_IFLAG = /^(action|cite|codebase|data|dynsrc|href|longdesc|lowsrc|src|usemap|url)$/i; + + IE7._getAttribute = function(element, name) { + if (element.getAttributeNode) { + var attribute = element.getAttributeNode(name); + } + name = _ATTRIBUTES[name.toLowerCase()] || name; + if (!attribute) attribute = element.attributes[name]; + var specified = attribute && attribute.specified; + + if (element[name] && typeof element[name] == "boolean") return name.toLowerCase(); + if ((specified && USE_IFLAG.test(name)) || (!attribute && MSIE5) || name === "value" || name === "type") { + return element.getAttribute(name, 2); + } + if (name === "style") return element.style.cssText.toLowerCase() || null; + + return specified ? String(attribute.nodeValue) : null; + }; + + var names = "colSpan,rowSpan,vAlign,dateTime,accessKey,tabIndex,encType,maxLength,readOnly,longDesc"; + // Convert the list of strings to a hash, mapping the lowercase name to the camelCase name. + extend(_ATTRIBUTES, combine(names.toLowerCase().split(","), names.split(","))); + + IE7._getElementSibling = function(node, direction) { + direction += "Sibling"; + do { + node = node[direction]; + if (node && node.nodeName > "@") break; + } while (node); + return node; + }; + + var IMPLIED_ASTERISK = /(^|[, >+~])([#.:\[])/g, + BLOCKS = /\)\{/g, + COMMA = /,/, + QUOTED = /^['"]/, + HEX_ESCAPE = /\\([\da-f]{2,2})/gi, + LAST_CHILD = /last/i; + + IE7._byId = function(document, id) { + var result = document.all[id] || null; + // Returns a single element or a collection. + if (!result || (result.nodeType && IE7._getAttribute(result, "id") === id)) return result; + // document.all has returned a collection of elements with name/id + for (var i = 0; i < result.length; i++) { + if (IE7._getAttribute(result[i], "id") === id) return result[i]; + } + return null; + }; + + // ========================================================================= + // dom/selectors-api/CSSSelectorParser.js + // ========================================================================= + + // http://www.w3.org/TR/css3-selectors/#w3cselgrammar (kinda) + var CSSSelectorParser = RegGrp.extend({ + dictionary: new Dictionary({ + ident: /\-?(\\.|[_a-z]|[^\x00-\xa0])(\\.|[\w-]|[^\x00-\xa0])*/, + combinator: /[\s>+~]/, + operator: /[\^~|$*]?=/, + nth_arg: /[+-]?\d+|[+-]?\d*n(?:\s*[+-]\s*\d+)?|even|odd/, + tag: /\*|<#ident>/, + id: /#(<#ident>)/, + 'class': /\.(<#ident>)/, + pseudo: /\:([\w-]+)(?:\(([^)]+)\))?/, + attr: /\[(<#ident>)(?:(<#operator>)((?:\\.|[^\[\]#.:])+))?\]/, + negation: /:not\((<#tag>|<#id>|<#class>|<#attr>|<#pseudo>)\)/, + sequence: /(\\.|[~*]=|\+\d|\+?\d*n\s*\+\s*\d|[^\s>+~,\*])+/, + filter: /[#.:\[]<#sequence>/, + selector: /[^>+~](\\.|[^,])*?/, + grammar: /^(<#selector>)((,<#selector>)*)$/ + }), + + ignoreCase: true + }); + + var normalizer = new CSSSelectorParser({ + "\\\\.|[~*]\\s+=|\\+\\s+\\d": RegGrp.IGNORE, + "\\[\\s+": "[", + "\\(\\s+": "(", + "\\s+\\)": ")", + "\\s+\\]": "]", + "\\s*([,>+~]|<#operator>)\\s*": "$1", + "\\s+$": "", + "\\s+": " " + }); + + function normalize(selector) { + selector = normalizer.parse(selector.replace(HEX_ESCAPE, "\\x$1")) + .replace(UNESCAPE, "$1") + .replace(IMPLIED_ASTERISK, "$1*$2"); + if (!VALID_SELECTOR.test(selector)) throwSelectorError(); + return selector; + }; + + function unescape(query) { + // put string values back + return query.replace(ESCAPED, unescapeString); + }; + + function unescapeString(match, index) { + return strings[index]; + }; + + var BRACES = /\{/g, BRACES_ESCAPED = /\\{/g; + + function closeBlock(group) { + return Array((group.replace(BRACES_ESCAPED, "").match(BRACES) || "").length + 1).join("}"); + }; + + FILTER = new CSSSelectorParser(FILTER); + + var TARGET = /:target/i, ROOT = /:root/i; + + function getConstants(selector) { + var constants = ""; + if (ROOT.test(selector)) constants += ",R=d.documentElement"; + if (TARGET.test(selector)) constants += ",H=d.location;H=H&&H.hash.replace('#','')"; + if (constants || selector.indexOf("#") !== -1) { + constants = ",t=c.nodeType,d=t===9?c:c.ownerDocument||(c.document||c).parentWindow.document" + constants; + } + return "var ii" + constants + ";"; + }; + + var COMBINATOR = { + " ": ";while(e!=s&&(e=e.parentNode)&&e.nodeType===1){", + ">": ".parentElement;if(e){", + "+": ";while((e=e.previousSibling)&&!(" + IS_ELEMENT + "))continue;if(e){", + "~": ";while((e=e.previousSibling)){" + IF_ELEMENT + }; + + var TOKEN = /\be\b/g; + + MATCHER = new CSSSelectorParser({ + "(?:(<#selector>)(<#combinator>))?(<#tag>)(<#filter>)?$": function(match, before, combinator, tag, filters) { + var group = ""; + if (tag !== "*") { + var TAG = tag.toUpperCase(); + group += "if(e.nodeName==='" + TAG + (TAG === tag ? "" : "'||e.nodeName==='" + tag) + "'){"; + } + if (filters) { + group += "if(" + FILTER.parse(filters).slice(0, -2) + "){"; + } + group = group.replace(TOKEN, "e" + this.index); + if (combinator) { + group += "var e=e" + (this.index++) + COMBINATOR[combinator]; + group = group.replace(TOKEN, "e" + this.index); + } + if (before) { + group += this.parse(before); + } + return group; + } + }); + + var BY_ID = "e0=IE7._byId(d,'%1');if(e0){", + BY_TAG_NAME = "var n=c.getElementsByTagName('%1');", + STORE = "if(r==null)return e0;r[k++]=e0;"; + + var TAG_NAME = 1; + + var SELECTOR = new CSSSelectorParser({ + "^((?:<#selector>)?(?:<#combinator>))(<#tag>)(<#filter>)?$": true + }); + + var cache = {}; + + var selectById = new CSSSelectorParser({ + "^(<#tag>)#(<#ident>)(<#filter>)?( [^,]*)?$": function(match, tagName, id, filters, after) { + var block = format(BY_ID, id), endBlock = "}"; + if (filters) { + block += MATCHER.parse(tagName + filters); + endBlock = closeBlock(block); + } + if (after) { + block += "s=c=e0;" + selectQuery.parse("*" + after); + } else { + block += STORE; + } + return block + endBlock; + }, + + "^([^#,]+)#(<#ident>)(<#filter>)?$": function(match, before, id, filters) { + var block = format(BY_ID, id); + if (before === "*") { + block += STORE; + } else { + block += MATCHER.parse(before + filters) + STORE + "break"; + } + return block + closeBlock(block); + }, + + "^.*$": "" + }); + + var selectQuery = new CSSSelectorParser({ + "<#grammar>": function(match, selector, remainingSelectors) { + if (!this.groups) this.groups = []; + + var group = SELECTOR.exec(" " + selector); + + if (!group) throwSelectorError(); + + this.groups.push(group.slice(1)); + + if (remainingSelectors) { + return this.parse(remainingSelectors.replace(COMMA, "")); + } + + var groups = this.groups, + tagName = groups[0][TAG_NAME]; // first tag name + + for (var i = 1; group = groups[i]; i++) { // search tag names + if (tagName !== group[TAG_NAME]) { + tagName = "*"; // mixed tag names, so use "*" + break; + } + } + + var matcher = "", store = STORE + "continue filtering;"; + + for (var i = 0; group = groups[i]; i++) { + MATCHER.index = 0; + if (tagName !== "*") group[TAG_NAME] = "*"; // we are already filtering by tagName + group = group.join(""); + if (group === " *") { // select all + matcher = store; + break; + } else { + group = MATCHER.parse(group); + if (useContext) group += "if(e" + MATCHER.index + "==s){"; + matcher += group + store + closeBlock(group); + } + } + + // reduce to a single loop + var isWild = tagName === "*"; + return (isWild ? "var n=c.all;" : format(BY_TAG_NAME, tagName)) + + "filtering:while((e0=n[i++]))" + + (isWild ? IF_ELEMENT.replace(TOKEN, "e0") : "{") + + matcher + + "}"; + }, + + "^.*$": throwSelectorError + }); + + var REDUNDANT_NODETYPE_CHECKS = /\&\&(e\d+)\.nodeType===1(\)\{\s*if\(\1\.nodeName=)/g; + + selectQuery.create = function(selector) { + if (!cache[selector]) { + selector = normalize(selector); + this.groups = null; + MATCHER.index = 0; + var block = this.parse(selector); + this.groups = null; + MATCHER.index = 0; + if (selector.indexOf("#") !== -1) { + var byId = selectById.parse(selector); + if (byId) { + block = + "if(t===1||t===11|!c.getElementById){" + + block + + "}else{" + + byId + + "}"; + } + } + // remove redundant nodeType==1 checks + block = block.replace(REDUNDANT_NODETYPE_CHECKS, "$2"); + block = getConstants(selector) + decode(block); + cache[selector] = new Function("return function(c,r,s){var i=0,k=0,e0;" + block + "return r}")(); + } + return cache[selector]; + }; + + return cssQuery; +})(); + +function throwSelectorError() { + throw new SyntaxError("Invalid selector."); +}; + +// ----------------------------------------------------------------------- +// initialisation +// ----------------------------------------------------------------------- + +IE7.loaded = true; + +(function() { + try { + // http://javascript.nwbox.com/IEContentLoaded/ + if (!document.body) throw "continue"; + documentElement.doScroll("left"); + } catch (ex) { + setTimeout(arguments.callee, 1); + return; + } + // execute the inner text of the IE7 script + try { + eval(script.innerHTML); + } catch (ex) { + // ignore errors + } + if (typeof IE7_PNG_SUFFIX == "object") { + PNG = IE7_PNG_SUFFIX; + } else { + PNG = new RegExp(rescape(window.IE7_PNG_SUFFIX || "-trans.png") + "(\\?.*)?$", "i"); + } + + // frequently used references + body = document.body; + viewport = MSIE5 ? body : documentElement; + + // classes + body.className += " ie7_body"; + documentElement.className += " ie7_html"; + + if (MSIE5) ie7Quirks(); + + IE7.CSS.init(); + IE7.HTML.init(); + + IE7.HTML.apply(); + IE7.CSS.apply(); + + IE7.recalc(); +})(); + +})(this, document); diff --git a/app/assets/javascripts/ie/ie8.js b/app/assets/javascripts/ie/ie8.js new file mode 100755 index 00000000..b1ed5d52 --- /dev/null +++ b/app/assets/javascripts/ie/ie8.js @@ -0,0 +1,2688 @@ +/* + IE7/IE8/IE9.js - copyright 2004-2010, Dean Edwards + http://code.google.com/p/ie7-js/ + http://www.opensource.org/licenses/mit-license.php +*/ + +/* W3C compliance for Microsoft Internet Explorer */ + +/* credits/thanks: + Shaggy, Martijn Wargers, Jimmy Cerra, Mark D Anderson, + Lars Dieckow, Erik Arvidsson, Gellrt Gyuris, James Denny, + Unknown W Brackets, Benjamin Westfarer, Rob Eberhardt, + Bill Edney, Kevin Newman, James Crompton, Matthew Mastracci, + Doug Wright, Richard York, Kenneth Kolano, MegaZone, + Thomas Verelst, Mark 'Tarquin' Wilton-Jones, Rainer hlfors, + David Zulaica, Ken Kolano, Kevin Newman, Sjoerd Visscher, + Ingo Chao +*/ + +// timestamp: Fri, 30 Apr 2010 20:59:18 + +(function(window, document) { + +var IE7 = window.IE7 = { + version: "2.1(beta4)", + toString: K("[IE7]") +}; +IE7.compat = 8; +var appVersion = IE7.appVersion = navigator.appVersion.match(/MSIE (\d\.\d)/)[1] - 0; + +if (/ie7_off/.test(top.location.search) || appVersion < 5.5 || appVersion >= IE7.compat) return; + +var MSIE5 = appVersion < 6; + +var Undefined = K(); +var documentElement = document.documentElement, body, viewport; +var ANON = "!"; +var HEADER = ":link{ie7-link:link}:visited{ie7-link:visited}"; + +// ----------------------------------------------------------------------- +// external +// ----------------------------------------------------------------------- + +var RELATIVE = /^[\w\.]+[^:]*$/; +function makePath(href, path) { + if (RELATIVE.test(href)) href = (path || "") + href; + return href; +}; + +function getPath(href, path) { + href = makePath(href, path); + return href.slice(0, href.lastIndexOf("/") + 1); +}; + +// Get the path to this script +var script = document.scripts[document.scripts.length - 1]; +var path = getPath(script.src); + +// Use microsoft's http request object to load external files +try { + var httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); +} catch (ex) { + // ActiveX disabled +} + +var fileCache = {}; +function loadFile(href, path) { + try { + href = makePath(href, path); + if (!fileCache[href]) { + httpRequest.open("GET", href, false); + httpRequest.send(); + if (httpRequest.status == 0 || httpRequest.status == 200) { + fileCache[href] = httpRequest.responseText; + } + } + } catch (ex) { + // ignore errors + } + return fileCache[href] || ""; +}; + +// ----------------------------------------------------------------------- +// OO support +// ----------------------------------------------------------------------- + + +// This is a cut-down version of base2 (http://code.google.com/p/base2/) + +var _slice = Array.prototype.slice; + +// private +var _FORMAT = /%([1-9])/g; +var _LTRIM = /^\s\s*/; +var _RTRIM = /\s\s*$/; +var _RESCAPE = /([\/()[\]{}|*+-.,^$?\\])/g; // safe regular expressions +var _BASE = /\bbase\b/; +var _HIDDEN = ["constructor", "toString"]; // only override these when prototyping + +var prototyping; + +function Base(){}; +Base.extend = function(_instance, _static) { + // Build the prototype. + prototyping = true; + var _prototype = new this; + extend(_prototype, _instance); + prototyping = false; + + // Create the wrapper for the constructor function. + var _constructor = _prototype.constructor; + function klass() { + // Don't call the constructor function when prototyping. + if (!prototyping) _constructor.apply(this, arguments); + }; + _prototype.constructor = klass; + + // Build the static interface. + klass.extend = arguments.callee; + extend(klass, _static); + klass.prototype = _prototype; + return klass; +}; +Base.prototype.extend = function(source) { + return extend(this, source); +}; + + +// A collection of regular expressions and their associated replacement values. +// A Base class for creating parsers. + +var HASH = "#"; +var ITEMS = "#"; +var KEYS = "."; +var COMPILED = "/"; + +var REGGRP_BACK_REF = /\\(\d+)/g, + REGGRP_ESCAPE_COUNT = /\[(\\.|[^\]\\])+\]|\\.|\(\?/g, + REGGRP_PAREN = /\(/g, + REGGRP_LOOKUP = /\$(\d+)/, + REGGRP_LOOKUP_SIMPLE = /^\$\d+$/, + REGGRP_LOOKUPS = /(\[(\\.|[^\]\\])+\]|\\.|\(\?)|\(/g, + REGGRP_DICT_ENTRY = /^<#\w+>$/, + REGGRP_DICT_ENTRIES = /<#(\w+)>/g; + +var RegGrp = Base.extend({ + constructor: function(values) { + this[KEYS] = []; + this[ITEMS] = {}; + this.merge(values); + }, + + //dictionary: null, + //ignoreCase: false, + + add: function(expression, replacement) { + delete this[COMPILED]; + if (expression instanceof RegExp) { + expression = expression.source; + } + if (!this[HASH + expression]) this[KEYS].push(String(expression)); + return this[ITEMS][HASH + expression] = new RegGrp.Item(expression, replacement, this); + }, + + compile: function(recompile) { + if (recompile || !this[COMPILED]) { + this[COMPILED] = new RegExp(this, this.ignoreCase ? "gi" : "g"); + } + return this[COMPILED]; + }, + + merge: function(values) { + for (var i in values) this.add(i, values[i]); + }, + + exec: function(string) { + var group = this, + patterns = group[KEYS], + items = group[ITEMS], item; + var result = this.compile(true).exec(string); + if (result) { + // Loop through the RegGrp items. + var i = 0, offset = 1; + while ((item = items[HASH + patterns[i++]])) { + var next = offset + item.length + 1; + if (result[offset]) { // do we have a result? + if (item.replacement === 0) { + return group.exec(string); + } else { + var args = result.slice(offset, next), j = args.length; + while (--j) args[j] = args[j] || ""; // some platforms return null/undefined for non-matching sub-expressions + args[0] = {match: args[0], item: item}; + return args; + } + } + offset = next; + } + } + return null; + }, + + parse: function(string) { + string += ""; // type safe + var group = this, + patterns = group[KEYS], + items = group[ITEMS]; + return string.replace(this.compile(), function(match) { + var args = [], item, offset = 1, i = arguments.length; + while (--i) args[i] = arguments[i] || ""; // some platforms return null/undefined for non-matching sub-expressions + // Loop through the RegGrp items. + while ((item = items[HASH + patterns[i++]])) { + var next = offset + item.length + 1; + if (args[offset]) { // do we have a result? + var replacement = item.replacement; + switch (typeof replacement) { + case "function": + return replacement.apply(group, args.slice(offset, next)); + case "number": + return args[offset + replacement]; + default: + return replacement; + } + } + offset = next; + } + return match; + }); + }, + + toString: function() { + var strings = [], + keys = this[KEYS], + items = this[ITEMS], item; + for (var i = 0; item = items[HASH + keys[i]]; i++) { + strings[i] = item.source; + } + return "(" + strings.join(")|(") + ")"; + } +}, { + IGNORE: null, // a null replacement value means that there is no replacement. + + Item: Base.extend({ + constructor: function(source, replacement, owner) { + var length = source.indexOf("(") === -1 ? 0 : RegGrp.count(source); + + var dictionary = owner.dictionary; + if (dictionary && source.indexOf("<#") !== -1) { + if (REGGRP_DICT_ENTRY.test(source)) { + var entry = dictionary[ITEMS][HASH + source.slice(2, -1)]; + source = entry.replacement; + length = entry._length; + } else { + source = dictionary.parse(source); + } + } + + if (typeof replacement == "number") replacement = String(replacement); + else if (replacement == null) replacement = 0; + + // Does the expression use sub-expression lookups? + if (typeof replacement == "string" && REGGRP_LOOKUP.test(replacement)) { + if (REGGRP_LOOKUP_SIMPLE.test(replacement)) { // A simple lookup? (e.g. "$2"). + // Store the index (used for fast retrieval of matched strings). + var index = replacement.slice(1) - 0; + if (index && index <= length) replacement = index; + } else { + // A complicated lookup (e.g. "Hello $2 $1."). + var lookup = replacement, regexp; + replacement = function(match) { + if (!regexp) { + regexp = new RegExp(source, "g" + (this.ignoreCase ? "i": "")); + } + return match.replace(regexp, lookup); + }; + } + } + + this.length = length; + this.source = String(source); + this.replacement = replacement; + } + }), + + count: function(expression) { + return (String(expression).replace(REGGRP_ESCAPE_COUNT, "").match(REGGRP_PAREN) || "").length; + } +}); + +var Dictionary = RegGrp.extend({ + parse: function(phrase) { + // Prevent sub-expressions in dictionary entries from capturing. + var entries = this[ITEMS]; + return phrase.replace(REGGRP_DICT_ENTRIES, function(match, entry) { + entry = entries[HASH + entry]; + return entry ? entry._nonCapturing : match; + }); + }, + + add: function(expression, replacement) { + // Get the underlying replacement value. + if (replacement instanceof RegExp) { + replacement = replacement.source; + } + // Translate the replacement. + // The result is the original replacement recursively parsed by this dictionary. + var nonCapturing = replacement.replace(REGGRP_LOOKUPS, _nonCapture); + if (replacement.indexOf("(") !== -1) { + var realLength = RegGrp.count(replacement); + } + if (replacement.indexOf("<#") !== -1) { + replacement = this.parse(replacement); + nonCapturing = this.parse(nonCapturing); + } + var item = this.base(expression, replacement); + item._nonCapturing = nonCapturing; + item._length = realLength || item.length; // underlying number of sub-groups + return item; + }, + + toString: function() { + return "(<#" + this[PATTERNS].join(">)|(<#") + ">)"; + } +}); + +function _nonCapture(match, escaped) { + return escaped || "(?:"; // non-capturing +}; + +// ========================================================================= +// lang/extend.js +// ========================================================================= + +function extend(object, source) { // or extend(object, key, value) + if (object && source) { + var proto = (typeof source == "function" ? Function : Object).prototype; + // Add constructor, toString etc + var i = _HIDDEN.length, key; + if (prototyping) while (key = _HIDDEN[--i]) { + var value = source[key]; + if (value != proto[key]) { + if (_BASE.test(value)) { + _override(object, key, value) + } else { + object[key] = value; + } + } + } + // Copy each of the source object's properties to the target object. + for (key in source) if (typeof proto[key] == "undefined") { + var value = source[key]; + // Check for method overriding. + if (object[key] && typeof value == "function" && _BASE.test(value)) { + _override(object, key, value); + } else { + object[key] = value; + } + } + } + return object; +}; + +function _override(object, name, method) { + // Override an existing method. + var ancestor = object[name]; + object[name] = function() { + var previous = this.base; + this.base = ancestor; + var returnValue = method.apply(this, arguments); + this.base = previous; + return returnValue; + }; +}; + +function combine(keys, values) { + // Combine two arrays to make a hash. + if (!values) values = keys; + var hash = {}; + for (var i in keys) hash[i] = values[i]; + return hash; +}; + +function format(string) { + // Replace %n with arguments[n]. + // e.g. format("%1 %2%3 %2a %1%3", "she", "se", "lls"); + // ==> "she sells sea shells" + // Only %1 - %9 supported. + var args = arguments; + var _FORMAT = new RegExp("%([1-" + arguments.length + "])", "g"); + return String(string).replace(_FORMAT, function(match, index) { + return index < args.length ? args[index] : match; + }); +}; + +function match(string, expression) { + // Same as String.match() except that this function will return an empty + // array if there is no match. + return String(string).match(expression) || []; +}; + +function rescape(string) { + // Make a string safe for creating a RegExp. + return String(string).replace(_RESCAPE, "\\$1"); +}; + +// http://blog.stevenlevithan.com/archives/faster-trim-javascript +function trim(string) { + return String(string).replace(_LTRIM, "").replace(_RTRIM, ""); +}; + +function K(k) { + return function() { + return k; + }; +}; + +// ----------------------------------------------------------------------- +// parsing +// ----------------------------------------------------------------------- + +var Parser = RegGrp.extend({ignoreCase: true}); + +var SINGLE_QUOTES = /'/g, + ESCAPED = /'(\d+)'/g, + ESCAPE = /\\/g, + UNESCAPE = /\\([nrtf'"])/g; + +var strings = []; + +var encoder = new Parser({ + // comments + "": "", + "\\/\\*[^*]*\\*+([^\\/][^*]*\\*+)*\\/": "", + // get rid + "@(namespace|import)[^;\\n]+[;\\n]": "", + // strings + "'(\\\\.|[^'\\\\])*'": encodeString, + '"(\\\\.|[^"\\\\])*"': encodeString, + // white space + "\\s+": " " +}); + +function encode(selector) { + return encoder.parse(selector).replace(UNESCAPE, "$1"); +}; + +function decode(query) { + // put string values back + return query.replace(ESCAPED, decodeString); +}; + +function encodeString(string) { + var index = strings.length; + strings[index] = string.slice(1, -1) + .replace(UNESCAPE, "$1") + .replace(SINGLE_QUOTES, "\\'"); + return "'" + index + "'"; +}; + +function decodeString(match, index) { + var string = strings[index]; + if (string == null) return match; + return "'" + strings[index] + "'"; +}; + +function getString(value) { + return value.indexOf("'") === 0 ? strings[value.slice(1, - 1)] : value; +}; + +// clone a "width" function to create a "height" function +var rotater = new RegGrp({ + Width: "Height", + width: "height", + Left: "Top", + left: "top", + Right: "Bottom", + right: "bottom", + onX: "onY" +}); + +function rotate(fn) { + return rotater.parse(fn); +}; + +// ----------------------------------------------------------------------- +// event handling +// ----------------------------------------------------------------------- + +var eventHandlers = []; + +function addResize(handler) { + addRecalc(handler); + addEventHandler(window, "onresize", handler); +}; + +// add an event handler (function) to an element +function addEventHandler(element, type, handler) { + element.attachEvent(type, handler); + // store the handler so it can be detached later + eventHandlers.push(arguments); +}; + +// remove an event handler assigned to an element by IE7 +function removeEventHandler(element, type, handler) { + try { + element.detachEvent(type, handler); + } catch (ex) { + // write a letter of complaint to microsoft.. + } +}; + +// remove event handlers (they eat memory) +addEventHandler(window, "onunload", function() { + var handler; + while (handler = eventHandlers.pop()) { + removeEventHandler(handler[0], handler[1], handler[2]); + } +}); + +function register(handler, element, condition) { // -@DRE + //var set = handler[element.uniqueID]; + if (!handler.elements) handler.elements = {}; + if (condition) handler.elements[element.uniqueID] = element; + else delete handler.elements[element.uniqueID]; + //return !set && condition; + return condition; +}; + +addEventHandler(window, "onbeforeprint", function() { + if (!IE7.CSS.print) new StyleSheet("print"); + IE7.CSS.print.recalc(); +}); + +// ----------------------------------------------------------------------- +// pixel conversion +// ----------------------------------------------------------------------- + +// this is handy because it means that web developers can mix and match +// measurement units in their style sheets. it is not uncommon to +// express something like padding in "em" units whilst border thickness +// is most often expressed in pixels. + +var PIXEL = /^\d+(px)?$/i; +var PERCENT = /^\d+%$/; +var getPixelValue = function(element, value) { + if (PIXEL.test(value)) return parseInt(value); + var style = element.style.left; + var runtimeStyle = element.runtimeStyle.left; + element.runtimeStyle.left = element.currentStyle.left; + element.style.left = value || 0; + value = element.style.pixelLeft; + element.style.left = style; + element.runtimeStyle.left = runtimeStyle; + return value; +}; + +// ----------------------------------------------------------------------- +// generic +// ----------------------------------------------------------------------- + +var $IE7 = "ie7-"; + +var Fix = Base.extend({ + constructor: function() { + this.fixes = []; + this.recalcs = []; + }, + init: Undefined +}); + +// a store for functions that will be called when refreshing IE7 +var recalcs = []; +function addRecalc(recalc) { + recalcs.push(recalc); +}; + +IE7.recalc = function() { + IE7.HTML.recalc(); + // re-apply style sheet rules (re-calculate ie7 classes) + IE7.CSS.recalc(); + // apply global fixes to the document + for (var i = 0; i < recalcs.length; i++) recalcs[i](); +}; + +function isFixed(element) { + return element.currentStyle["ie7-position"] == "fixed"; +}; + +// original style +function getDefinedStyle(element, propertyName) { + return element.currentStyle[$IE7 + propertyName] || element.currentStyle[propertyName]; +}; + +function setOverrideStyle(element, propertyName, value) { + if (element.currentStyle[$IE7 + propertyName] == null) { + element.runtimeStyle[$IE7 + propertyName] = element.currentStyle[propertyName]; + } + element.runtimeStyle[propertyName] = value; +}; + +// Create a temporary element which is used to inherit styles +// from the target element. +function createTempElement(tagName) { + var element = document.createElement(tagName || "object"); + element.style.cssText = "position:absolute;padding:0;display:block;border:none;clip:rect(0 0 0 0);left:-9999"; + element.ie7_anon = true; + return element; +}; + + +// ========================================================================= +// ie7-css.js +// ========================================================================= + +var NEXT_SIBLING = "(e.nextSibling&&IE7._getElementSibling(e,'next'))", + PREVIOUS_SIBLING = NEXT_SIBLING.replace(/next/g, "previous"), + IS_ELEMENT = "e.nodeName>'@'", + IF_ELEMENT = "if(" + IS_ELEMENT + "){"; + +var ID_ATTRIBUTE = "(e.nodeName==='FORM'?IE7._getAttribute(e,'id'):e.id)"; + +var HYPERLINK = /a(#[\w-]+)?(\.[\w-]+)?:(hover|active)/i; +var FIRST_LINE_LETTER = /(.*)(:first-(line|letter))/; +var SPACE = /\s/; +var RULE = /((?:\\.|[^{\\])+)\{((?:\\.|[^}\\])+)\}/g; +var SELECTOR = /(?:\\.|[^,\\])+/g; + +var styleSheets = document.styleSheets; + +var inheritedProperties = []; + +IE7.CSS = new (Fix.extend({ // single instance + parser: new Parser, + screen: "", + print: "", + styles: [], + rules: [], + pseudoClasses: appVersion < 7 ? "first\\-child" : "", + dynamicPseudoClasses: { + toString: function() { + var strings = []; + for (var pseudoClass in this) strings.push(pseudoClass); + return strings.join("|"); + } + }, + + init: function() { + var NONE = "^\x01$"; + var CLASS = "\\[class=?[^\\]]*\\]"; + var pseudoClasses = []; + if (this.pseudoClasses) pseudoClasses.push(this.pseudoClasses); + var dynamicPseudoClasses = this.dynamicPseudoClasses.toString(); + if (dynamicPseudoClasses) pseudoClasses.push(dynamicPseudoClasses); + pseudoClasses = pseudoClasses.join("|"); + var unknown = appVersion < 7 ? ["[>+~\\[(]|([:.])[\\w-]+\\1"] : [CLASS]; + if (pseudoClasses) unknown.push(":(" + pseudoClasses + ")"); + this.UNKNOWN = new RegExp(unknown.join("|") || NONE, "i"); + var complex = appVersion < 7 ? ["\\[[^\\]]+\\]|[^\\s(\\[]+\\s*[+~]"] : [CLASS]; + var complexRule = complex.concat(); + if (pseudoClasses) complexRule.push(":(" + pseudoClasses + ")"); + Rule.COMPLEX = new RegExp(complexRule.join("|") || NONE, "ig"); + if (this.pseudoClasses) complex.push(":(" + this.pseudoClasses + ")"); + DynamicRule.COMPLEX = new RegExp(complex.join("|") || NONE, "i"); + dynamicPseudoClasses = "not\\(:" + dynamicPseudoClasses.split("|").join("\\)|not\\(:") + "\\)|" + dynamicPseudoClasses; + DynamicRule.MATCH = new RegExp(dynamicPseudoClasses ? "(.*?):(" + dynamicPseudoClasses + ")(.*)" : NONE, "i"); + + this.createStyleSheet(); + this.refresh(); + }, + + addEventHandler: function() { + addEventHandler.apply(null, arguments); + }, + + addFix: function(expression, replacement) { + this.parser.add(expression, replacement); + }, + + addRecalc: function(propertyName, test, handler, replacement) { + // recalcs occur whenever the document is refreshed using document.recalc() + propertyName = propertyName.source || propertyName; + test = new RegExp("([{;\\s])" + propertyName + "\\s*:\\s*" + test + "[^;}]*"); + var id = this.recalcs.length; + if (typeof replacement == "string") replacement = propertyName + ":" + replacement; + this.addFix(test, function(match) { + if (typeof replacement == "function") replacement = replacement(match); + return (replacement ? replacement : match) + ";ie7-" + match.slice(1) + ";ie7_recalc" + id + ":1"; + }); + this.recalcs.push(arguments); + return id; + }, + + apply: function() { + this.getInlineCSS(); + new StyleSheet("screen"); + this.trash(); + }, + + createStyleSheet: function() { + // create the IE7 style sheet + document.getElementsByTagName("head")[0].appendChild(document.createElement("style")); + this.styleSheet = styleSheets[styleSheets.length - 1]; + // flag it so we can ignore it during parsing + this.styleSheet.ie7 = true; + this.styleSheet.owningElement.ie7 = true; + this.styleSheet.cssText = HEADER; + }, + + getInlineCSS: function() {// load inline styles + var styleSheets = document.getElementsByTagName("style"), styleSheet; + for (var i = styleSheets.length - 1; styleSheet = styleSheets[i]; i--) { + if (!styleSheet.disabled && !styleSheet.ie7) { + styleSheet._cssText = styleSheet.innerHTML; + } + } + }, + + getText: function(styleSheet, path) { + // Internet Explorer will trash unknown selectors (it converts them to "UNKNOWN"). + // So we must reload external style sheets (internal style sheets can have their text + // extracted through the innerHTML property). + + // load the style sheet text from an external file + try { + var cssText = styleSheet.cssText; + } catch (e) { + cssText = ""; + } + if (httpRequest) cssText = loadFile(styleSheet.href, path) || cssText; + return cssText; + }, + + recalc: function() { + this.screen.recalc(); + // we're going to read through all style rules. + // certain rules have had ie7 properties added to them. + // e.g. p{top:0; ie7_recalc2:1; left:0} + // this flags a property in the rule as needing a fix. + // the selector text is then used to query the document. + // we can then loop through the results of the query + // and fix the elements. + // we ignore the IE7 rules - so count them in the header + var RECALCS = /ie7_recalc\d+/g; + var start = HEADER.match(/[{,]/g).length; + // only calculate screen fixes. print fixes don't show up anyway + var rules = this.styleSheet.rules, rule; + var calcs, calc, elements, element, i, j, k, id; + // loop through all rules + for (i = start; rule = rules[i]; i++) { + var cssText = rule.style.cssText; + // search for the "ie7_recalc" flag (there may be more than one) + if (calcs = cssText.match(RECALCS)) { + // use the selector text to query the document + elements = cssQuery(rule.selectorText); + // if there are matching elements then loop + // through the recalc functions and apply them + // to each element + if (elements.length) for (j = 0; j < calcs.length; j++) { + // get the matching flag (e.g. ie7_recalc3) + id = calcs[j]; + // extract the numeric id from the end of the flag + // and use it to index the collection of recalc + // functions + calc = IE7.CSS.recalcs[id.slice(10)][2]; + for (k = 0; (element = elements[k]); k++) { + // apply the fix + if (element.currentStyle[id]) calc(element, cssText); + } + } + } + } + }, + + refresh: function() { + this.styleSheet.cssText = HEADER + this.screen + this.print; + }, + + trash: function() { + // trash the old style sheets + for (var i = 0; i < styleSheets.length; i++) { + if (!styleSheets[i].ie7) { + try { + var cssText = styleSheets[i].cssText; + } catch (e) { + cssText = ""; + } + if (cssText) styleSheets[i].cssText = ""; + } + } + } +})); + +// ----------------------------------------------------------------------- +// IE7 StyleSheet class +// ----------------------------------------------------------------------- + +var StyleSheet = Base.extend({ + constructor: function(media) { + this.media = media; + this.load(); + IE7.CSS[media] = this; + IE7.CSS.refresh(); + }, + + createRule: function(selector, cssText) { + var match; + if (PseudoElement && (match = selector.match(PseudoElement.MATCH))) { + return new PseudoElement(match[1], match[2], cssText); + } else if (match = selector.match(DynamicRule.MATCH)) { + if (!HYPERLINK.test(match[0]) || DynamicRule.COMPLEX.test(match[0])) { + return new DynamicRule(selector, match[1], match[2], match[3], cssText); + } + } else { + return new Rule(selector, cssText); + } + return selector + " {" + cssText + "}"; + }, + + getText: function() { + // store for style sheet text + // parse media decalarations + var MEDIA = /@media\s+([^{]+?)\s*\{([^@]+\})\s*\}/gi; + var IMPORTS = /@import[^;\n]+/gi; + var TRIM_IMPORTS = /@import\s+url\s*\(\s*["']?|["']?\s*\)\s*/gi; + var URL = /(url\s*\(\s*['"]?)([\w\.]+[^:\)]*['"]?\))/gi; + + var self = this; + + // Store loaded cssText URLs + var fileCache = {}; + + function getCSSText(styleSheet, path, media, level) { + var cssText = ""; + if (!level) { + media = toSimpleMedia(styleSheet.media); + level = 0; + } + if (media === "none") { + styleSheet.disabled = true; + return ""; + } + if (media === "all" || media === self.media) { + // IE only allows importing style sheets three levels deep. + // it will crash if you try to access a level below this + try { + var canAcess = !!styleSheet.cssText; + } catch (exe) {} + if (level < 3 && canAcess) { + var hrefs = styleSheet.cssText.match(IMPORTS); + // loop through imported style sheets + for (var i = 0, imported; i < styleSheet.imports.length; i++) { + var imported = styleSheet.imports[i]; + var href = styleSheet._href || styleSheet.href; + imported._href = hrefs[i].replace(TRIM_IMPORTS, ""); + // call this function recursively to get all imported style sheets + cssText += getCSSText(imported, getPath(href, path), media, level + 1); + } + } + // retrieve inline style or load an external style sheet + cssText += encode(styleSheet.href ? loadStyleSheet(styleSheet, path) : styleSheet.owningElement._cssText); + cssText = parseMedia(cssText, self.media); + } + return cssText; + }; + + // Load all style sheets in the document + for (var i = 0; i < styleSheets.length; i++) { + var styleSheet = styleSheets[i]; + if (!styleSheet.disabled && !styleSheet.ie7) this.cssText += getCSSText(styleSheet); + } + + // helper functions + function parseMedia(cssText, media) { + filterMedia.value = media; + return cssText.replace(MEDIA, filterMedia); + }; + + function filterMedia(match, media, cssText) { + media = toSimpleMedia(media); + switch (media) { + case "screen": + case "print": + if (media !== filterMedia.value) return ""; + case "all": + return cssText; + } + return ""; + }; + + function toSimpleMedia(media) { + if (!media) return "all"; + var split = media.toLowerCase().split(/\s*,\s*/); + media = "none"; + for (var i = 0; i < split.length; i++) { + if (split[i] === "all") return "all"; + if (split[i] === "screen") { + if (media === "print") return "all"; + media = "screen"; + } else if (split[i] === "print") { + if (media === "screen") return "all"; + media = "print"; + } + } + return media; + }; + + // Load an external style sheet + function loadStyleSheet(styleSheet, path) { + var href = styleSheet._href || styleSheet.href; + var url = makePath(href, path); + // If the style sheet has already loaded then don't reload it + if (fileCache[url]) return ""; + // Load from source + fileCache[url] = styleSheet.disabled ? "" : + fixUrls(IE7.CSS.getText(styleSheet, path), getPath(href, path)); + return fileCache[url]; + }; + + // Fix CSS paths. + // We're lumping all css text into one big style sheet so relative + // paths have to be fixed. This is necessary anyway because of other + // Internet Explorer bugs. + function fixUrls(cssText, pathname) { + // hack & slash + return cssText.replace(URL, "$1" + pathname.slice(0, pathname.lastIndexOf("/") + 1) + "$2"); + }; + }, + + load: function() { + this.cssText = ""; + this.getText(); + this.parse(); + if (inheritedProperties.length) { + this.cssText = parseInherited(this.cssText); + } + this.cssText = decode(this.cssText); + fileCache = {}; + }, + + parse: function() { + var cssText = IE7.CSS.parser.parse(this.cssText); + + var declarations = ""; + this.cssText = cssText.replace(/@charset[^;]+;|@font\-face[^\}]+\}/g, function(match) { + declarations += match + "\n"; + return ""; + }); + this.declarations = decode(declarations); + + // Parse the style sheet + var offset = IE7.CSS.rules.length; + var rules = [], rule; + while ((rule = RULE.exec(this.cssText))) { + var cssText = rule[2]; + if (cssText) { + var fixDescendants = appVersion < 7 && cssText.indexOf("AlphaImageLoader") !== -1; + var selectors = rule[1].match(SELECTOR), selector; + for (var i = 0; selector = selectors[i]; i++) { + selector = trim(selector); + var isUnknown = IE7.CSS.UNKNOWN.test(selector); + selectors[i] = isUnknown ? this.createRule(selector, cssText) : selector + "{" + cssText + "}"; + if (fixDescendants) selectors[i] += this.createRule(selector + ">*", "position:relative"); + } + rules.push(selectors.join("\n")); + } + } + this.cssText = rules.join("\n"); + this.rules = IE7.CSS.rules.slice(offset); + }, + + recalc: function() { + var rule, i; + for (i = 0; (rule = this.rules[i]); i++) rule.recalc(); + }, + + toString: function() { + return this.declarations + "@media " + this.media + "{" + this.cssText + "}"; + } +}); + +var PseudoElement; + +// ----------------------------------------------------------------------- +// IE7 style rules +// ----------------------------------------------------------------------- + +var Rule = IE7.Rule = Base.extend({ + constructor: function(selector, cssText) { + this.id = IE7.CSS.rules.length; + this.className = Rule.PREFIX + this.id; + var pseudoElement = selector.match(FIRST_LINE_LETTER); + this.selector = (pseudoElement ? pseudoElement[1] : selector) || "*"; + this.selectorText = this.parse(this.selector) + (pseudoElement ? pseudoElement[2] : ""); + this.cssText = cssText; + this.MATCH = new RegExp("\\s" + this.className + "(\\s|$)", "g"); + IE7.CSS.rules.push(this); + this.init(); + }, + + init: Undefined, + + add: function(element) { + // allocate this class + element.className += " " + this.className; + }, + + recalc: function() { + // execute the underlying css query for this class + var match = cssQuery(this.selector); + // add the class name for all matching elements + for (var i = 0; i < match.length; i++) this.add(match[i]); + }, + + parse: function(selector) { + // attempt to preserve specificity for "loose" parsing by + // removing unknown tokens from a css selector but keep as + // much as we can.. + var simple = selector.replace(Rule.CHILD, " ").replace(Rule.COMPLEX, ""); + if (appVersion < 7) simple = simple.replace(Rule.MULTI, ""); + var tags = match(simple, Rule.TAGS).length - match(selector, Rule.TAGS).length; + var classes = match(simple, Rule.CLASSES).length - match(selector, Rule.CLASSES).length + 1; + while (classes > 0 && Rule.CLASS.test(simple)) { + simple = simple.replace(Rule.CLASS, ""); + classes--; + } + while (tags > 0 && Rule.TAG.test(simple)) { + simple = simple.replace(Rule.TAG, "$1*"); + tags--; + } + simple += "." + this.className; + classes = Math.min(classes, 2); + tags = Math.min(tags, 2); + var score = -10 * classes - tags; + if (score > 0) { + simple = simple + "," + Rule.MAP[score] + " " + simple; + } + return simple; + }, + + remove: function(element) { + // deallocate this class + element.className = element.className.replace(this.MATCH, "$1"); + }, + + toString: function() { + return format("%1 {%2}", this.selectorText, this.cssText); + } +}, { + CHILD: />/g, + CLASS: /\.[\w-]+/, + CLASSES: /[.:\[]/g, + MULTI: /(\.[\w-]+)+/g, + PREFIX: "ie7_class", + TAG: /^\w+|([\s>+~])\w+/, + TAGS: /^\w|[\s>+~]\w/g, + MAP: { + "1": "html", + "2": "html body", + "10": ".ie7_html", + "11": "html.ie7_html", + "12": "html.ie7_html body", + "20": ".ie7_html .ie7_body", + "21": "html.ie7_html .ie7_body", + "22": "html.ie7_html body.ie7_body" + } +}); + +// ----------------------------------------------------------------------- +// IE7 dynamic style +// ----------------------------------------------------------------------- + +// object properties: +// attach: the element that an event handler will be attached to +// target: the element that will have the IE7 class applied + +var DynamicRule = Rule.extend({ + // properties + constructor: function(selector, attach, dynamicPseudoClass, target, cssText) { + this.negated = dynamicPseudoClass.indexOf("not") === 0; + if (this.negated) dynamicPseudoClass = dynamicPseudoClass.slice(5, -1); + // initialise object properties + this.attach = attach || "*"; + this.dynamicPseudoClass = IE7.CSS.dynamicPseudoClasses[dynamicPseudoClass]; + this.target = target; + this.base(selector, cssText); + }, + + recalc: function() { + // execute the underlying css query for this class + var attaches = cssQuery(this.attach), attach; + // process results + for (var i = 0; attach = attaches[i]; i++) { + // retrieve the event handler's target element(s) + var target = this.target ? cssQuery(this.target, attach) : [attach]; + // attach event handlers for dynamic pseudo-classes + if (target.length) this.dynamicPseudoClass.apply(attach, target, this); + } + } +}); + +// ----------------------------------------------------------------------- +// IE7 dynamic pseudo-classes +// ----------------------------------------------------------------------- + +var DynamicPseudoClass = Base.extend({ + constructor: function(name, apply) { + this.name = name; + this.apply = apply; + this.instances = {}; + IE7.CSS.dynamicPseudoClasses[name] = this; + }, + + register: function(instance, negated) { + // an "instance" is actually an Arguments object + var _class = instance[2]; + if (!negated && _class.negated) { + this.unregister(instance, true); + } else { + instance.id = _class.id + instance[0].uniqueID; + if (!this.instances[instance.id]) { + var target = instance[1], j; + for (j = 0; j < target.length; j++) _class.add(target[j]); + this.instances[instance.id] = instance; + } + } + }, + + unregister: function(instance, negated) { + var _class = instance[2]; + if (!negated && _class.negated) { + this.register(instance, true); + } else { + if (this.instances[instance.id]) { + var target = instance[1], j; + for (j = 0; j < target.length; j++) _class.remove(target[j]); + delete this.instances[instance.id]; + } + } + } +}); + +// ----------------------------------------------------------------------- +// dynamic pseudo-classes +// ----------------------------------------------------------------------- + +var Hover = new DynamicPseudoClass("hover", function(element) { + var instance = arguments; + IE7.CSS.addEventHandler(element, "onmouseenter", function() { + Hover.register(instance); + }); + IE7.CSS.addEventHandler(element, "onmouseleave", function() { + Hover.unregister(instance); + }); +}); + +// globally trap the mouseup event (thanks Martijn!) +addEventHandler(document, "onmouseup", function() { + var instances = Hover.instances; + for (var i in instances) + if (!instances[i][0].contains(event.srcElement)) + Hover.unregister(instances[i]); +}); + +var ATTR = { + "=": "%1==='%2'", // "[@%1='%2']" + "~=": "(' '+%1+' ').indexOf(' %2 ')!==-1", // "[contains(concat(' ',@%1,' '),' %2 ')]", + "|=": "%1==='%2'||%1.indexOf('%2-')===0", // "[@%1='%2' or starts-with(@%1,'%2-')]", + "^=": "%1.indexOf('%2')===0", // "[starts-with(@%1,'%2')]", + "$=": "%1.slice(-'%2'.length)==='%2'", // "[ends-with(@%1,'%2')]", + "*=": "%1.indexOf('%2')!==-1" // "[contains(@%1,'%2')]" +}; +ATTR[""] = "%1!=null"; // "[@%1]" + +var FILTER = { + "<#attr>": function(match, name, operator, value) { + var attr = "IE7._getAttribute(e,'" + name + "')"; + value = getString(value); + if (operator.length > 1) { + if (!value || operator === "~=" && SPACE.test(value)) { + return "false&&"; + } + attr = "(" + attr + "||'')"; + } + return "(" + format(ATTR[operator], attr, value) + ")&&"; + }, + + "<#id>": ID_ATTRIBUTE + "==='$1'&&", + + "<#class>": "e.className&&(' '+e.className+' ').indexOf(' $1 ')!==-1&&", + + // PSEDUO + ":first-child": "!" + PREVIOUS_SIBLING + "&&", + ":link": "e.currentStyle['ie7-link']=='link'&&", + ":visited": "e.currentStyle['ie7-link']=='visited'&&" +}; + +// ========================================================================= +// ie7-html.js +// ========================================================================= + +// default font-sizes +//HEADER += "h1{font-size:2em}h2{font-size:1.5em;}h3{font-size:1.17em;}h4{font-size:1em}h5{font-size:.83em}h6{font-size:.67em}"; + +IE7.HTML = new (Fix.extend({ // single instance + fixed: {}, + + init: Undefined, + + addFix: function() { + // fixes are a one-off, they are applied when the document is loaded + this.fixes.push(arguments); + }, + + apply: function() { + for (var i = 0; i < this.fixes.length; i++) { + var match = cssQuery(this.fixes[i][0]); + var fix = this.fixes[i][1]; + for (var j = 0; j < match.length; j++) fix(match[j]); + } + }, + + addRecalc: function() { + // recalcs occur whenever the document is refreshed using document.recalc() + this.recalcs.push(arguments); + }, + + recalc: function() { + // loop through the fixes + for (var i = 0; i < this.recalcs.length; i++) { + var match = cssQuery(this.recalcs[i][0]); + var recalc = this.recalcs[i][1], element; + var key = Math.pow(2, i); + for (var j = 0; (element = match[j]); j++) { + var uniqueID = element.uniqueID; + if ((this.fixed[uniqueID] & key) === 0) { + element = recalc(element) || element; + this.fixed[uniqueID] |= key; + } + } + } + } +})); + +if (appVersion < 7) { + // provide support for the tag. + document.createElement("abbr"); + + // bind to the first child control + IE7.HTML.addRecalc("label", function(label) { + if (!label.htmlFor) { + var firstChildControl = cssQuery("input,textarea", label, true); + if (firstChildControl) { + addEventHandler(label, "onclick", function() { + firstChildControl.click(); + }); + } + } + }); +} + +// ========================================================================= +// ie7-layout.js +// ========================================================================= + +var NUMERIC = "[.\\d]"; + +(function() { + var layout = IE7.Layout = {}; + + // big, ugly box-model hack + min/max stuff + + // #tantek > #erik > #dean { voice-family: hacker; } + + // ----------------------------------------------------------------------- + // "layout" + // ----------------------------------------------------------------------- + + HEADER += "*{boxSizing:content-box}"; + + // give an element "layout" + layout.boxSizing = function(element) { + if (!element.currentStyle.hasLayout) { + //# element.runtimeStyle.fixedHeight = + element.style.height = "0cm"; + if (element.currentStyle.verticalAlign === "auto") + element.runtimeStyle.verticalAlign = "top"; + // when an element acquires "layout", margins no longer collapse correctly + collapseMargins(element); + } + }; + + // ----------------------------------------------------------------------- + // Margin Collapse + // ----------------------------------------------------------------------- + + function collapseMargins(element) { + if (element != viewport && element.currentStyle.position !== "absolute") { + collapseMargin(element, "marginTop"); + collapseMargin(element, "marginBottom"); + } + }; + + function collapseMargin(element, type) { + if (!element.runtimeStyle[type]) { + var parentElement = element.parentElement; + var isTopMargin = type === "marginTop"; + if (parentElement && parentElement.currentStyle.hasLayout && !IE7._getElementSibling(element, isTopMargin ? "previous" : "next")) return; + var child = element[isTopMargin ? "firstChild" : "lastChild"]; + if (child && child.nodeName < "@") child = IE7._getElementSibling(child, isTopMargin ? "next" : "previous"); + if (child && child.currentStyle.styleFloat === "none" && child.currentStyle.hasLayout) { + collapseMargin(child, type); + margin = _getMargin(element, element.currentStyle[type]); + childMargin = _getMargin(child, child.currentStyle[type]); + if (margin < 0 || childMargin < 0) { + element.runtimeStyle[type] = margin + childMargin; + } else { + element.runtimeStyle[type] = Math.max(childMargin, margin); + } + child.runtimeStyle[type] = "0px"; + } + } + }; + + function _getMargin(element, value) { + return value === "auto" ? 0 : getPixelValue(element, value); + }; + + // ----------------------------------------------------------------------- + // box-model + // ----------------------------------------------------------------------- + + // constants + var UNIT = /^[.\d][\w]*$/, AUTO = /^(auto|0cm)$/; + + var apply = {}; + layout.borderBox = function(element){ + apply.Width(element); + apply.Height(element); + }; + + var _fixWidth = function(HEIGHT) { + apply.Width = function(element) { + if (!PERCENT.test(element.currentStyle.width)) _fixWidth(element); + if (HEIGHT) collapseMargins(element); + }; + + function _fixWidth(element, value) { + if (!element.runtimeStyle.fixedWidth) { + if (!value) value = element.currentStyle.width; + element.runtimeStyle.fixedWidth = UNIT.test(value) ? Math.max(0, getFixedWidth(element, value)) + "px" : value; + setOverrideStyle(element, "width", element.runtimeStyle.fixedWidth); + } + }; + + function layoutWidth(element) { + if (!isFixed(element)) { + var layoutParent = element.offsetParent; + while (layoutParent && !layoutParent.currentStyle.hasLayout) layoutParent = layoutParent.offsetParent; + } + return (layoutParent || viewport).clientWidth; + }; + + function getPixelWidth(element, value) { + if (PERCENT.test(value)) return parseInt(parseFloat(value) / 100 * layoutWidth(element)); + return getPixelValue(element, value); + }; + + var getFixedWidth = function(element, value) { + var borderBox = element.currentStyle["ie7-box-sizing"] === "border-box"; + var adjustment = 0; + if (MSIE5 && !borderBox) + adjustment += getBorderWidth(element) + getWidth(element, "padding"); + else if (!MSIE5 && borderBox) + adjustment -= getBorderWidth(element) + getWidth(element, "padding"); + return getPixelWidth(element, value) + adjustment; + }; + + // easy way to get border thickness for elements with "layout" + function getBorderWidth(element) { + return element.offsetWidth - element.clientWidth; + }; + + // have to do some pixel conversion to get padding/margin thickness :-( + function getWidth(element, type) { + return getPixelWidth(element, element.currentStyle[type + "Left"]) + getPixelWidth(element, element.currentStyle[type + "Right"]); + }; + + // ----------------------------------------------------------------------- + // min/max + // ----------------------------------------------------------------------- + + HEADER += "*{minWidth:none;maxWidth:none;min-width:none;max-width:none}"; + + // handle min-width property + layout.minWidth = function(element) { + // IE6 supports min-height so we frig it here + //#if (element.currentStyle.minHeight === "auto") element.runtimeStyle.minHeight = 0; + if (element.currentStyle["min-width"] != null) { + element.style.minWidth = element.currentStyle["min-width"]; + } + if (register(arguments.callee, element, element.currentStyle.minWidth !== "none")) { + layout.boxSizing(element); + _fixWidth(element); + resizeWidth(element); + } + }; + + // clone the minWidth function to make a maxWidth function + eval("IE7.Layout.maxWidth=" + String(layout.minWidth).replace(/min/g, "max")); + + // apply min/max restrictions + function resizeWidth(element) { + // check boundaries + if (element == document.body) { + var width = element.clientWidth; + } else { + var rect = element.getBoundingClientRect(); + width = rect.right - rect.left; + } + if (element.currentStyle.minWidth !== "none" && width < getFixedWidth(element, element.currentStyle.minWidth)) { + element.runtimeStyle.width = element.currentStyle.minWidth; + } else if (element.currentStyle.maxWidth !== "none" && width >= getFixedWidth(element, element.currentStyle.maxWidth)) { + element.runtimeStyle.width = element.currentStyle.maxWidth; + } else { + element.runtimeStyle.width = element.runtimeStyle.fixedWidth; + } + }; + + // ----------------------------------------------------------------------- + // right/bottom + // ----------------------------------------------------------------------- + + function fixRight(element) { + if (register(fixRight, element, /^(fixed|absolute)$/.test(element.currentStyle.position) && + getDefinedStyle(element, "left") !== "auto" && + getDefinedStyle(element, "right") !== "auto" && + AUTO.test(getDefinedStyle(element, "width")))) { + resizeRight(element); + layout.boxSizing(element); + } + }; + layout.fixRight = fixRight; + + function resizeRight(element) { + var left = getPixelWidth(element, element.runtimeStyle._left || element.currentStyle.left); + var width = layoutWidth(element) - getPixelWidth(element, element.currentStyle.right) - left - getWidth(element, "margin"); + if (parseInt(element.runtimeStyle.width) === width) return; + element.runtimeStyle.width = ""; + if (isFixed(element) || HEIGHT || element.offsetWidth < width) { + if (!MSIE5) width -= getBorderWidth(element) + getWidth(element, "padding"); + if (width < 0) width = 0; + element.runtimeStyle.fixedWidth = width; + setOverrideStyle(element, "width", width); + } + }; + + // ----------------------------------------------------------------------- + // window.onresize + // ----------------------------------------------------------------------- + + // handle window resize + var clientWidth = 0; + addResize(function() { + if (!viewport) return; + var i, wider = (clientWidth < viewport.clientWidth); + clientWidth = viewport.clientWidth; + // resize elements with "min-width" set + var elements = layout.minWidth.elements; + for (i in elements) { + var element = elements[i]; + var fixedWidth = (parseInt(element.runtimeStyle.width) === getFixedWidth(element, element.currentStyle.minWidth)); + if (wider && fixedWidth) element.runtimeStyle.width = ""; + if (wider == fixedWidth) resizeWidth(element); + } + // resize elements with "max-width" set + var elements = layout.maxWidth.elements; + for (i in elements) { + var element = elements[i]; + var fixedWidth = (parseInt(element.runtimeStyle.width) === getFixedWidth(element, element.currentStyle.maxWidth)); + if (!wider && fixedWidth) element.runtimeStyle.width = ""; + if (wider !== fixedWidth) resizeWidth(element); + } + // resize elements with "right" set + for (i in fixRight.elements) resizeRight(fixRight.elements[i]); + }); + + // ----------------------------------------------------------------------- + // fix CSS + // ----------------------------------------------------------------------- + if (MSIE5) { + IE7.CSS.addRecalc("width", NUMERIC, apply.Width); + } + if (appVersion < 7) { + IE7.CSS.addRecalc("max-width", NUMERIC, layout.maxWidth); + IE7.CSS.addRecalc("right", NUMERIC, fixRight); + } else if (appVersion == 7) { + if (HEIGHT) IE7.CSS.addRecalc("height", "[\\d.]+%", function(element) { + element.runtimeStyle.pixelHeight = parseInt(layoutWidth(element) * element.currentStyle["ie7-height"].slice(0, -1) / 100); + }); + } + }; + + eval("var _fixHeight=" + rotate(_fixWidth)); + + // apply box-model + min/max fixes + _fixWidth(); + _fixHeight(true); + + if (appVersion < 7) { + IE7.CSS.addRecalc("min-width", NUMERIC, layout.minWidth); + IE7.CSS.addFix(/\bmin-height\s*/, "height"); + } +})(); + +// ========================================================================= +// ie7-graphics.js +// ========================================================================= + +// a small transparent image used as a placeholder +var BLANK_GIF = makePath("blank.gif", path); + +var ALPHA_IMAGE_LOADER = "DXImageTransform.Microsoft.AlphaImageLoader"; +var PNG_FILTER = "progid:" + ALPHA_IMAGE_LOADER + "(src='%1',sizingMethod='%2')"; + +// regular expression version of the above +var PNG; + +var filtered = []; + +function fixImage(element) { + if (PNG.test(element.src)) { + // we have to preserve width and height + var image = new Image(element.width, element.height); + image.onload = function() { + element.width = image.width; + element.height = image.height; + image = null; + }; + image.src = element.src; + // store the original url (we'll put it back when it's printed) + element.pngSrc = element.src; + // add the AlphaImageLoader thingy + addFilter(element); + } +}; + +if (appVersion < 7) { + // ** IE7 VARIABLE + // e.g. apply the hack to all files ending in ".png" + // IE7_PNG_SUFFIX = ".png"; + // You can also set it to a RegExp + // IE7_PNG_SUFFIX = /\d+\.png$/; + + // replace background(-image): url(..) .. with background(-image): .. ;filter: ..; + IE7.CSS.addFix(/background(-image)?\s*:\s*([^};]*)?url\(([^\)]+)\)([^;}]*)?/, function(match, $1, $2, url, $4) { + url = getString(url); + return PNG.test(url) ? "filter:" + format(PNG_FILTER, url, $4.indexOf("no-repeat") === -1 ? "scale" : "crop") + + ";zoom:1;background" + ($1||"") + ":" + ($2||"") + "none" + ($4||"") : match; + }); + + // list-style-image + IE7.CSS.addRecalc(/list\-style(\-image)?/, "[^};]*url", function(element) { + var url = element.currentStyle.listStyleImage.slice(5, -2); + if (PNG.test(url)) { + if (element.nodeName === "LI") { + fixListStyleImage(element, url) + } else if (element.nodeName === "UL") { + for (var i = 0, li; li = element.childNodes[i]; i++) { + if (li.nodeName === "LI") fixListStyleImage(li, url); + } + } + } + }); + + function fixListStyleImage(element, src) { + var style = element.runtimeStyle; + var originalHeight = element.offsetHeight; + var image = new Image; + image.onload = function() { + var paddingLeft = element.currentStyle.paddingLeft; + paddingLeft = paddingLeft === "0px" ? 0 : getPixelValue(element, paddingLeft); + style.paddingLeft = (paddingLeft + this.width) + "px"; + style.marginLeft = -this.width + "px"; + style.listStyleType = "none"; + style.listStyleImage = "none"; + style.paddingTop = Math.max(originalHeight - element.offsetHeight, 0) + "px"; + addFilter(element, "crop", src); + element.style.zoom = "100%"; + }; + image.src = src; + }; + + // ----------------------------------------------------------------------- + // fix PNG transparency (HTML images) + // ----------------------------------------------------------------------- + + IE7.HTML.addRecalc("img,input", function(element) { + if (element.nodeName === "INPUT" && element.type !== "image") return; + fixImage(element); + addEventHandler(element, "onpropertychange", function() { + if (!printing && event.propertyName === "src" && + element.src.indexOf(BLANK_GIF) === -1) fixImage(element); + }); + }); + + // assume that background images should not be printed + // (if they are not transparent then they'll just obscure content) + // but we'll put foreground images back... + var printing = false; + addEventHandler(window, "onbeforeprint", function() { + printing = true; + for (var i = 0; i < filtered.length; i++) removeFilter(filtered[i]); + }); + addEventHandler(window, "onafterprint", function() { + for (var i = 0; i < filtered.length; i++) addFilter(filtered[i]); + printing = false; + }); +} + +// apply a filter +function addFilter(element, sizingMethod, src) { + var filter = element.filters[ALPHA_IMAGE_LOADER]; + if (filter) { + filter.src = src || element.src; + filter.enabled = true; + } else { + element.runtimeStyle.filter = format(PNG_FILTER, src || element.src, sizingMethod || "scale"); + filtered.push(element); + } + // remove the real image + element.src = BLANK_GIF; +}; + +function removeFilter(element) { + element.src = element.pngSrc; + element.filters[ALPHA_IMAGE_LOADER].enabled = false; +}; + +// ========================================================================= +// ie7-fixed.js +// ========================================================================= + +(function() { + if (appVersion >= 7) return; + + // some things to consider for this hack. + // the document body requires a fixed background. even if + // it is just a blank image. + // you have to use setExpression instead of onscroll, this + // together with a fixed body background helps avoid the + // annoying screen flicker of other solutions. + + IE7.CSS.addRecalc("position", "fixed", _positionFixed, "absolute"); + IE7.CSS.addRecalc("background(-attachment)?", "[^};]*fixed", _backgroundFixed); + + // scrolling is relative to the documentElement (HTML tag) when in + // standards mode, otherwise it's relative to the document body + var $viewport = MSIE5 ? "body" : "documentElement"; + + function _fixBackground() { + // this is required by both position:fixed and background-attachment:fixed. + // it is necessary for the document to also have a fixed background image. + // we can fake this with a blank image if necessary + if (body.currentStyle.backgroundAttachment !== "fixed") { + if (body.currentStyle.backgroundImage === "none") { + body.runtimeStyle.backgroundRepeat = "no-repeat"; + body.runtimeStyle.backgroundImage = "url(" + BLANK_GIF + ")"; // dummy + } + body.runtimeStyle.backgroundAttachment = "fixed"; + } + _fixBackground = Undefined; + }; + + var _tmp = createTempElement("img"); + + function _isFixed(element) { + return element ? isFixed(element) || _isFixed(element.parentElement) : false; + }; + + function _setExpression(element, propertyName, expression) { + setTimeout("document.all." + element.uniqueID + ".runtimeStyle.setExpression('" + propertyName + "','" + expression + "')", 0); + }; + + // ----------------------------------------------------------------------- + // backgroundAttachment: fixed + // ----------------------------------------------------------------------- + + function _backgroundFixed(element) { + if (register(_backgroundFixed, element, element.currentStyle.backgroundAttachment === "fixed" && !element.contains(body))) { + _fixBackground(); + util.bgLeft(element); + util.bgTop(element); + _backgroundPosition(element); + } + }; + + function _backgroundPosition(element) { + _tmp.src = element.currentStyle.backgroundImage.slice(5, -2); + var parentElement = element.canHaveChildren ? element : element.parentElement; + parentElement.appendChild(_tmp); + util.setOffsetLeft(element); + util.setOffsetTop(element); + parentElement.removeChild(_tmp); + }; + + // ----------------------------------------------------------------------- + // position: fixed + // ----------------------------------------------------------------------- + + function _positionFixed(element) { + if (register(_positionFixed, element, isFixed(element))) { + setOverrideStyle(element, "position", "absolute"); + setOverrideStyle(element, "left", element.currentStyle.left); + setOverrideStyle(element, "top", element.currentStyle.top); + _fixBackground(); + IE7.Layout.fixRight(element); + //IE7.Layout.fixBottom(element); + _foregroundPosition(element); + } + }; + + function _foregroundPosition(element, recalc) { + document.body.getBoundingClientRect(); // force a reflow + util.positionTop(element, recalc); + util.positionLeft(element, recalc, true); + if (!element.runtimeStyle.autoLeft && element.currentStyle.marginLeft === "auto" && + element.currentStyle.right !== "auto") { + var left = viewport.clientWidth - util.getPixelWidth(element, element.currentStyle.right) - + util.getPixelWidth(element, element.runtimeStyle._left) - element.clientWidth; + if (element.currentStyle.marginRight === "auto") left = parseInt(left / 2); + if (_isFixed(element.offsetParent)) element.runtimeStyle.pixelLeft += left; + else element.runtimeStyle.shiftLeft = left; + } + if (!element.runtimeStyle.fixedWidth) util.clipWidth(element); + if (!element.runtimeStyle.fixedHeight) util.clipHeight(element); + }; + + // ----------------------------------------------------------------------- + // capture window resize + // ----------------------------------------------------------------------- + + function _resize() { + // if the window has been resized then some positions need to be + // recalculated (especially those aligned to "right" or "top" + var elements = _backgroundFixed.elements; + for (var i in elements) _backgroundPosition(elements[i]); + elements = _positionFixed.elements; + for (i in elements) { + _foregroundPosition(elements[i], true); + _foregroundPosition(elements[i], true); + } + _timer = 0; + }; + + // use a timer (sometimes this is a good way to prevent resize loops) + var _timer; + addResize(function() { + if (!_timer) _timer = setTimeout(_resize, 100); + }); + + // ----------------------------------------------------------------------- + // rotated + // ----------------------------------------------------------------------- + + var util = {}; + + var _horizontal = function(util) { + util.bgLeft = function(element) { + element.style.backgroundPositionX = element.currentStyle.backgroundPositionX; + if (!_isFixed(element)) { + _setExpression(element, "backgroundPositionX", "(parseInt(runtimeStyle.offsetLeft)+document." + $viewport + ".scrollLeft)||0"); + } + }; + + util.setOffsetLeft = function(element) { + var propertyName = _isFixed(element) ? "backgroundPositionX" : "offsetLeft"; + element.runtimeStyle[propertyName] = + util.getOffsetLeft(element, element.style.backgroundPositionX) - + element.getBoundingClientRect().left - element.clientLeft + 2; + }; + + util.getOffsetLeft = function(element, position) { + switch (position) { + case "left": + case "top": + return 0; + case "right": + case "bottom": + return viewport.clientWidth - _tmp.offsetWidth; + case "center": + return (viewport.clientWidth - _tmp.offsetWidth) / 2; + default: + if (PERCENT.test(position)) { + return parseInt((viewport.clientWidth - _tmp.offsetWidth) * parseFloat(position) / 100); + } + _tmp.style.left = position; + return _tmp.offsetLeft; + } + }; + + util.clipWidth = function(element) { + var fixWidth = element.runtimeStyle.fixWidth; + element.runtimeStyle.borderRightWidth = ""; + element.runtimeStyle.width = fixWidth ? util.getPixelWidth(element, fixWidth) + "px" : ""; + if (element.currentStyle.width !== "auto") { + var rect = element.getBoundingClientRect(); + var width = element.offsetWidth - viewport.clientWidth + rect.left - 2; + if (width >= 0) { + element.runtimeStyle.borderRightWidth = "0px"; + width = Math.max(getPixelValue(element, element.currentStyle.width) - width, 0); + setOverrideStyle(element, "width", width); + return width; + } + } + }; + + util.positionLeft = function(element, recalc) { + // if the element's width is in % units then it must be recalculated + // with respect to the viewport + if (!recalc && PERCENT.test(element.currentStyle.width)) { + element.runtimeStyle.fixWidth = element.currentStyle.width; + } + if (element.runtimeStyle.fixWidth) { + element.runtimeStyle.width = util.getPixelWidth(element, element.runtimeStyle.fixWidth); + } + //if (recalc) { + // // if the element is fixed on the right then no need to recalculate + // if (!element.runtimeStyle.autoLeft) return; + //} else { + element.runtimeStyle.shiftLeft = 0; + element.runtimeStyle._left = element.currentStyle.left; + // is the element fixed on the right? + element.runtimeStyle.autoLeft = element.currentStyle.right !== "auto" && element.currentStyle.left === "auto"; + //} + // reset the element's "left" value and get it's natural position + element.runtimeStyle.left = ""; + element.runtimeStyle.screenLeft = util.getScreenLeft(element); + element.runtimeStyle.pixelLeft = element.runtimeStyle.screenLeft; + // if the element is contained by another fixed element then there is no need to + // continually recalculate it's left position + if (!recalc && !_isFixed(element.offsetParent)) { + // onsrcoll produces jerky movement, so we use an expression + _setExpression(element, "pixelLeft", "runtimeStyle.screenLeft+runtimeStyle.shiftLeft+document." + $viewport + ".scrollLeft"); + } + }; + + // I've forgotten how this works... + util.getScreenLeft = function(element) { // thanks to kevin newman (captainn) + var screenLeft = element.offsetLeft, nested = 1; + if (element.runtimeStyle.autoLeft) { + screenLeft = viewport.clientWidth - element.offsetWidth - util.getPixelWidth(element, element.currentStyle.right); + } + // accommodate margins + if (element.currentStyle.marginLeft !== "auto") { + screenLeft -= util.getPixelWidth(element, element.currentStyle.marginLeft); + } + while (element = element.offsetParent) { + if (element.currentStyle.position !== "static") nested = -1; + screenLeft += element.offsetLeft * nested; + } + return screenLeft; + }; + + util.getPixelWidth = function(element, value) { + return PERCENT.test(value) ? parseInt(parseFloat(value) / 100 * viewport.clientWidth) : getPixelValue(element, value); + }; + }; + eval("var _vertical=" + rotate(_horizontal)); + _horizontal(util); + _vertical(util); +})(); + +// ========================================================================= +// ie7-oveflow.js +// ========================================================================= + +/* --------------------------------------------------------------------- + + This module alters the structure of the document. + It may adversely affect other CSS rules. Be warned. + +--------------------------------------------------------------------- */ + +if (appVersion < 7) { + var WRAPPER_STYLE = { + backgroundColor: "transparent", + backgroundImage: "none", + backgroundPositionX: null, + backgroundPositionY: null, + backgroundRepeat: null, + borderTopWidth: 0, + borderRightWidth: 0, + borderBottomWidth: 0, + borderLeftStyle: "none", + borderTopStyle: "none", + borderRightStyle: "none", + borderBottomStyle: "none", + borderLeftWidth: 0, + borderLeftColor: "#000", + borderTopColor: "#000", + borderRightColor: "#000", + borderBottomColor: "#000", + height: null, + marginTop: 0, + marginBottom: 0, + marginRight: 0, + marginLeft: 0, + width: "100%" + }; + + IE7.CSS.addRecalc("overflow", "visible", function(element) { + if (element.currentStyle.position === "absolute") return; + + // don't do this again + if (element.parentNode.ie7_wrapped) return; + + // if max-height is applied, makes sure it gets applied first + if (IE7.Layout && element.currentStyle["max-height"] !== "auto") { + IE7.Layout.maxHeight(element); + } + + if (element.currentStyle.marginLeft === "auto") element.style.marginLeft = 0; + if (element.currentStyle.marginRight === "auto") element.style.marginRight = 0; + + var wrapper = document.createElement(ANON); + wrapper.ie7_wrapped = element; + for (var propertyName in WRAPPER_STYLE) { + wrapper.style[propertyName] = element.currentStyle[propertyName]; + if (WRAPPER_STYLE[propertyName] != null) { + element.runtimeStyle[propertyName] = WRAPPER_STYLE[propertyName]; + } + } + wrapper.style.display = "block"; + wrapper.style.position = "relative"; + element.runtimeStyle.position = "absolute"; + element.parentNode.insertBefore(wrapper, element); + wrapper.appendChild(element); + }); +} + +// ========================================================================= +// ie7-quirks.js +// ========================================================================= + +function ie7Quirks() { + var FONT_SIZES = "xx-small,x-small,small,medium,large,x-large,xx-large".split(","); + for (var i = 0; i < FONT_SIZES.length; i++) { + FONT_SIZES[FONT_SIZES[i]] = FONT_SIZES[i - 1] || "0.67em"; + } + + IE7.CSS.addFix(/(font(-size)?\s*:\s*)([\w.-]+)/, function(match, label, size, value) { + return label + (FONT_SIZES[value] || value); + }); + + var NEGATIVE = /^\-/, LENGTH = /(em|ex)$/i; + var EM = /em$/i, EX = /ex$/i; + + getPixelValue = function(element, value) { + if (PIXEL.test(value)) return parseInt(value)||0; + var scale = NEGATIVE.test(value)? -1 : 1; + if (LENGTH.test(value)) scale *= getFontScale(element); + temp.style.width = scale < 0 ? value.slice(1) : value; + body.appendChild(temp); + // retrieve pixel width + value = scale * temp.offsetWidth; + // remove the temporary element + temp.removeNode(); + return parseInt(value); + }; + + var temp = createTempElement(); + function getFontScale(element) { + var scale = 1; + temp.style.fontFamily = element.currentStyle.fontFamily; + temp.style.lineHeight = element.currentStyle.lineHeight; + //temp.style.fontSize = ""; + while (element != body) { + var fontSize = element.currentStyle["ie7-font-size"]; + if (fontSize) { + if (EM.test(fontSize)) scale *= parseFloat(fontSize); + else if (PERCENT.test(fontSize)) scale *= (parseFloat(fontSize) / 100); + else if (EX.test(fontSize)) scale *= (parseFloat(fontSize) / 2); + else { + temp.style.fontSize = fontSize; + return 1; + } + } + element = element.parentElement; + } + return scale; + }; + + // cursor:pointer (IE5.x) + IE7.CSS.addFix(/cursor\s*:\s*pointer/, "cursor:hand"); + // display:list-item (IE5.x) + IE7.CSS.addFix(/display\s*:\s*list-item/, "display:block"); + + // ----------------------------------------------------------------------- + // margin:auto + // ----------------------------------------------------------------------- + + function fixMargin(element) { + var parent = element.parentElement; + var margin = parent.offsetWidth - element.offsetWidth - getPaddingWidth(parent); + var autoRight = (element.currentStyle["ie7-margin"] && element.currentStyle.marginRight === "auto") || + element.currentStyle["ie7-margin-right"] === "auto"; + switch (parent.currentStyle.textAlign) { + case "right": + margin = autoRight ? parseInt(margin / 2) : 0; + element.runtimeStyle.marginRight = margin + "px"; + break; + case "center": + if (autoRight) margin = 0; + default: + if (autoRight) margin /= 2; + element.runtimeStyle.marginLeft = parseInt(margin) + "px"; + } + }; + + function getPaddingWidth(element) { + return getPixelValue(element, element.currentStyle.paddingLeft) + + getPixelValue(element, element.currentStyle.paddingRight); + }; + + IE7.CSS.addRecalc("margin(-left|-right)?", "[^};]*auto", function(element) { + if (register(fixMargin, element, + element.parentElement && + element.currentStyle.display === "block" && + element.currentStyle.marginLeft === "auto" && + element.currentStyle.position !== "absolute")) { + fixMargin(element); + } + }); + + addResize(function() { + for (var i in fixMargin.elements) { + var element = fixMargin.elements[i]; + element.runtimeStyle.marginLeft = + element.runtimeStyle.marginRight = ""; + fixMargin(element); + } + }); +}; + + +// ========================================================================= +// ie8-css.js +// ========================================================================= + +var BRACKETS = "\\([^)]+\\)"; + +// pseudo-elements can be declared with a double colon +encoder.add(/::(before|after)/, ":$1"); + +if (appVersion < 8) { + + if (IE7.CSS.pseudoClasses) IE7.CSS.pseudoClasses += "|"; + IE7.CSS.pseudoClasses += "before|after|lang" + BRACKETS; + + // ----------------------------------------------------------------------- + // propertyName: inherit; + // ----------------------------------------------------------------------- + + function parseInherited(cssText) { + return cssText.replace(new RegExp("([{;\\s])(" + inheritedProperties.join("|") + ")\\s*:\\s*([^;}]+)", "g"), "$1$2:$3;ie7-$2:$3"); + }; + + var INHERITED = /[\w-]+\s*:\s*inherit/g; + var STRIP_IE7_FLAGS = /ie7\-|\s*:\s*inherit/g; + var DASH_LOWER = /\-([a-z])/g; + function toUpper(match, chr) {return chr.toUpperCase()}; + + IE7.CSS.addRecalc("[\\w-]+", "inherit", function(element, cssText) { + if (element.parentElement) { + var inherited = cssText.match(INHERITED); + for (var i = 0; i < inherited.length; i++) { + var propertyName = inherited[i].replace(STRIP_IE7_FLAGS, ""); + if (element.currentStyle["ie7-" + propertyName] === "inherit") { + propertyName = propertyName.replace(DASH_LOWER, toUpper); + element.runtimeStyle[propertyName] = element.parentElement.currentStyle[propertyName]; + } + } + } + }, function(match) { + inheritedProperties.push(rescape(match.slice(1).split(":")[0])); + return match; + }); + + // ----------------------------------------------------------------------- + // dynamic pseudo-classes + // ----------------------------------------------------------------------- + + var Focus = new DynamicPseudoClass("focus", function(element) { + var instance = arguments; + + IE7.CSS.addEventHandler(element, "onfocus", function() { + Focus.unregister(instance); // in case it starts with focus + Focus.register(instance); + }); + + IE7.CSS.addEventHandler(element, "onblur", function() { + Focus.unregister(instance); + }); + + // check the active element for initial state + if (element == document.activeElement) { + Focus.register(instance) + } + }); + + var Active = new DynamicPseudoClass("active", function(element) { + var instance = arguments; + IE7.CSS.addEventHandler(element, "onmousedown", function() { + Active.register(instance); + }); + }); + + // globally trap the mouseup event (thanks Martijn!) + addEventHandler(document, "onmouseup", function() { + var instances = Active.instances; + for (var i in instances) Active.unregister(instances[i]); + }); + + // ----------------------------------------------------------------------- + // IE7 pseudo elements + // ----------------------------------------------------------------------- + + // constants + var URL = /^url\s*\(\s*([^)]*)\)$/; + var POSITION_MAP = { + before0: "beforeBegin", + before1: "afterBegin", + after0: "afterEnd", + after1: "beforeEnd" + }; + + var PseudoElement = IE7.PseudoElement = Rule.extend({ + constructor: function(selector, position, cssText) { + // initialise object properties + this.position = position; + var content = cssText.match(PseudoElement.CONTENT), match, entity; + if (content) { + content = content[1]; + match = content.split(/\s+/); + for (var i = 0; (entity = match[i]); i++) { + match[i] = /^attr/.test(entity) ? {attr: entity.slice(5, -1)} : + entity.charAt(0) === "'" ? getString(entity) : decode(entity); + } + content = match; + } + this.content = content; + // CSS text needs to be decoded immediately + this.base(selector, decode(cssText)); + }, + + init: function() { + // execute the underlying css query for this class + this.match = cssQuery(this.selector); + for (var i = 0; i < this.match.length; i++) { + var runtimeStyle = this.match[i].runtimeStyle; + if (!runtimeStyle[this.position]) runtimeStyle[this.position] = {cssText:""}; + runtimeStyle[this.position].cssText += ";" + this.cssText; + if (this.content != null) runtimeStyle[this.position].content = this.content; + } + }, + + create: function(target) { + var generated = target.runtimeStyle[this.position]; + if (generated) { + // copy the array of values + var content = [].concat(generated.content || ""); + for (var j = 0; j < content.length; j++) { + if (typeof content[j] == "object") { + content[j] = target.getAttribute(content[j].attr); + } + } + content = content.join(""); + var url = content.match(URL); + var cssText = "overflow:hidden;" + generated.cssText.replace(/'/g, '"'); + var position = POSITION_MAP[this.position + Number(target.canHaveChildren)]; + var id = 'ie7_pseudo' + PseudoElement.count++; + target.insertAdjacentHTML(position, format(PseudoElement.ANON, this.className, id, cssText, url ? "" : content)); + if (url) { + var src = getString(url[1]); + var pseudoElement = document.getElementById(id); + pseudoElement.src = src; + addFilter(pseudoElement, "crop"); + var targetIsFloated = target.currentStyle.styleFloat !== "none"; + if (pseudoElement.currentStyle.display === "inline" || targetIsFloated) { + if (appVersion < 7 && targetIsFloated && target.canHaveChildren) { + target.runtimeStyle.display = "inline"; + target.runtimeStyle.position = "relative"; + pseudoElement.runtimeStyle.position = "absolute"; + } + pseudoElement.style.display = "inline-block"; + if (target.currentStyle.styleFloat !== "none") { + pseudoElement.style.pixelWidth = target.offsetWidth; + } + var image = new Image; + image.onload = function() { + pseudoElement.style.pixelWidth = this.width; + pseudoElement.style.pixelHeight = Math.max(this.height, pseudoElement.offsetHeight); + }; + image.src = src; + } + } + target.runtimeStyle[this.position] = null; + } + }, + + recalc: function() { + if (this.content == null) return; + for (var i = 0; i < this.match.length; i++) { + this.create(this.match[i]); + } + }, + + toString: function() { + return "." + this.className + "{display:inline}"; + } + }, { + CONTENT: /content\s*:\s*([^;]*)(;|$)/, + ANON: "%4", + MATCH: /(.*):(before|after).*/, + + count: 0 + }); + + IE7._getLang = function(element) { + var lang = ""; + while (element && element.nodeType === 1) { + lang = element.lang || element.getAttribute("lang") || ""; + if (lang) break; + element = element.parentNode; + } + return lang; + }; + + FILTER = extend(FILTER, { + ":lang\\(([^)]+)\\)": "((ii=IE7._getLang(e))==='$1'||ii.indexOf('$1-')===0)&&" + }); +} + +// ========================================================================= +// ie8-html.js +// ========================================================================= + +var UNSUCCESSFUL = /^(submit|reset|button)$/; + +// ----------------------------------------------------------------------- +// + +Sprangular.directive "ngConfirmClick", [-> + priority: 1 + terminal: true + link: (scope, element, attr) -> + msg = attr.ngConfirmClick or "Are you sure?" + clickAction = attr.ngClick + element.bind "click", (event) -> + scope.$eval clickAction if window.confirm(msg) + return + + return +] \ No newline at end of file diff --git a/sprangular/app/assets/javascripts/sprangular/directives/creditCardForm.coffee b/sprangular/app/assets/javascripts/sprangular/directives/creditCardForm.coffee new file mode 100644 index 00000000..27d0ed18 --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/directives/creditCardForm.coffee @@ -0,0 +1,28 @@ +Sprangular.directive 'creditCardForm', -> + restrict: 'E' + templateUrl: 'credit_cards/form.html' + scope: + creditCard: '=' + controller: ($scope) -> + $scope.months = [ + {index: 1, name: 'January'}, + {index: 2, name: 'February'}, + {index: 3, name: 'March'}, + {index: 4, name: 'April'}, + {index: 5, name: 'May'}, + {index: 6, name: 'June'}, + {index: 7, name: 'July'}, + {index: 8, name: 'August'}, + {index: 9, name: 'September'}, + {index: 10, name: 'October'}, + {index: 11, name: 'November'}, + {index: 12, name: 'December'} + ] + + currentYear = (new Date).getFullYear() + $scope.years = [currentYear .. currentYear+15] + + $scope.$watch 'creditCard.number', (number) -> + return unless number + $scope.creditCard.lastDigits = number.substr(-4) + $scope.creditCard.determineType() diff --git a/sprangular/app/assets/javascripts/sprangular/directives/creditCardSelection.coffee b/sprangular/app/assets/javascripts/sprangular/directives/creditCardSelection.coffee new file mode 100644 index 00000000..1a56df61 --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/directives/creditCardSelection.coffee @@ -0,0 +1,25 @@ +Sprangular.directive 'creditCardSelection', -> + restrict: 'E' + templateUrl: 'credit_cards/selection.html' + scope: + creditCard: '=' + creditCards: '=' + controller: ($scope) -> + $scope.existingCreditCard = false + + $scope.$watch 'creditCards', (creditCards) -> + return unless creditCards + + if creditCards.length > 0 + found = _.find creditCards, (existing) -> + existing.same($scope.creditCard) + + $scope.toggleExistingCreditCard() if found + + $scope.toggleExistingCreditCard = -> + $scope.existingCreditCard = !$scope.existingCreditCard + + if $scope.existingCreditCard + $scope.creditCard = $scope.creditCards[0] + else + $scope.creditCard = new Sprangular.CreditCard diff --git a/sprangular/app/assets/javascripts/sprangular/directives/creditCardView.coffee b/sprangular/app/assets/javascripts/sprangular/directives/creditCardView.coffee new file mode 100644 index 00000000..e0a11392 --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/directives/creditCardView.coffee @@ -0,0 +1,15 @@ +'use strict' + +Sprangular.directive 'creditCardView', -> + restrict: 'E' + templateUrl: 'credit_cards/credit_card.html' + scope: + card: '=' + allowDelete: '@' + + controller: ($scope, Account) -> + $scope.typeName = -> + Sprangular.CreditCard.TYPE_NAMES[$scope.card.type] + + $scope.delete = -> + Account.deleteCard($scope.card) diff --git a/sprangular/app/assets/javascripts/sprangular/directives/promoForm.coffee b/sprangular/app/assets/javascripts/sprangular/directives/promoForm.coffee new file mode 100644 index 00000000..2863eaf5 --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/directives/promoForm.coffee @@ -0,0 +1,25 @@ +Sprangular.directive 'promoForm', -> + restrict: 'E' + templateUrl: 'promos/form.html' + scope: + order: '=' + controller: ($scope, Cart, Checkout, Angularytics) -> + $scope.showPromoEntry = false + $scope.promoCode = '' + + $scope.save = -> + Angularytics.trackEvent("Cart", "Coupon added", $scope.promoCode) + + error = (message) -> + $scope.promoCode = '' + $scope.error = message + + Checkout.savePromo($scope.promoCode) + .success (response) -> + if response.error + error(response.error) + else + $scope.promoCode = '' + $scope.showPromoEntry = false + .error -> + error('An error occured') diff --git a/sprangular/app/assets/javascripts/sprangular/directives/quantityInput.coffee b/sprangular/app/assets/javascripts/sprangular/directives/quantityInput.coffee new file mode 100644 index 00000000..19f512d7 --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/directives/quantityInput.coffee @@ -0,0 +1,21 @@ +'use strict' + +Sprangular.directive 'quantityInput', -> + restrict: 'E' + templateUrl: 'directives/quantity_input.html' + scope: + quantity: '=' + change: '&' + + controller: ($scope, Angularytics) -> + $scope.$watch 'quantity', (newValue, oldValue)-> + if oldValue != newValue + $scope.change() + + if oldValue > newValue + Angularytics.trackEvent("Cart", "Quantity decrease", oldValue - newValue) + else + Angularytics.trackEvent("Cart", "Quantity increase", newValue - oldValue) + + $scope.update = (delta) -> + $scope.quantity += delta unless ($scope.quantity + delta) == 0 diff --git a/sprangular/app/assets/javascripts/sprangular/directives/shippingRatesSelection.coffee b/sprangular/app/assets/javascripts/sprangular/directives/shippingRatesSelection.coffee new file mode 100644 index 00000000..35836cdc --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/directives/shippingRatesSelection.coffee @@ -0,0 +1,41 @@ +Sprangular.directive 'shippingRateSelection', -> + restrict: 'E' + templateUrl: 'shipping/rates.html' + scope: + order: '=' + controller: ($scope, Cart) -> + $scope.loading = false + $scope.rates = [] + + $scope.$watch 'order.shippingMethodId', (shippingMethodId) -> + rate = _.find($scope.rates, (rate) -> rate.shippingMethodId == shippingMethodId) + + if rate + $scope.order.shipTotal = rate.cost + else + $scope.order.shipTotal = 0 + + $scope.order.updateTotals() + + # use $scope.$watchGroup when its released + for expr in ['order.actualShippingAddress().country', 'order.actualShippingAddress().state', 'order.actualShippingAddress().zipcode'] + $scope.$watch expr, -> + return if $scope.loading + + $scope.loading = true + order = $scope.order + address = order.actualShippingAddress() + + Cart.shippingRates({countryId: address.countryId, stateId: address.stateId, zipcode: address.zipcode}) + .then ((results) -> + $scope.rates = results + + order.shippingMethodId = null unless _.find(results, (rate) -> rate.shippingMethodId == order.shippingMethodId) + + if order.shippingMethodId == null && results.length > 0 + order.shippingMethodId = results[0].shippingMethodId + + $scope.loading = false), (-> + + $scope.rates = [] + $scope.loading = false) diff --git a/sprangular/app/assets/javascripts/sprangular/directives/variantSelection.coffee b/sprangular/app/assets/javascripts/sprangular/directives/variantSelection.coffee new file mode 100644 index 00000000..592328ad --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/directives/variantSelection.coffee @@ -0,0 +1,32 @@ +'use strict' + +Sprangular.directive 'variantSelection', -> + restrict: 'E' + templateUrl: 'directives/variant_selection.html' + scope: + product: '=' + variant: '=' + class: '=' + change: '&' + controller: ($scope) -> + $scope.values = {} + + $scope.$watch 'variant', (newVariant, oldVariant)-> + $scope.change({oldVariant: oldVariant, newVariant: newVariant}) if newVariant != oldVariant + + $scope.isValueSelected = (value) -> + $scope.values[value.option_type_id]?.id == value.id + + $scope.isValueAvailable = (value) -> + $scope.product.availableValues(_.values($scope.values)) + + $scope.selectValue = (value) -> + $scope.values[value.option_type_id] = value + $scope.variant = $scope.product.variantForValues(_.values($scope.values)) + + link: (scope, element, attrs) -> + scope.values = {} + + if scope.variant + for value in scope.variant.option_values + scope.values[value.option_type_id] = value diff --git a/sprangular/app/assets/javascripts/sprangular/filters/sanitize.coffee b/sprangular/app/assets/javascripts/sprangular/filters/sanitize.coffee new file mode 100644 index 00000000..3046e98c --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/filters/sanitize.coffee @@ -0,0 +1,4 @@ +angular.module 'rawFilter', [] + .filter 'raw', ($sce) -> + (input) -> + $sce.trustAsHtml(input) diff --git a/sprangular/app/assets/javascripts/sprangular/helpers/angularytics.coffee b/sprangular/app/assets/javascripts/sprangular/helpers/angularytics.coffee new file mode 100644 index 00000000..df491b12 --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/helpers/angularytics.coffee @@ -0,0 +1,11 @@ +Sprangular + .config (AngularyticsProvider) -> + if window.ga + handlers = ['Console', 'GoogleUniversal'] + else + handlers = ['Console'] + + AngularyticsProvider.setEventHandlers(handlers) + + .run (Angularytics) -> + Angularytics.init() diff --git a/sprangular/app/assets/javascripts/sprangular/helpers/luhn.coffee b/sprangular/app/assets/javascripts/sprangular/helpers/luhn.coffee new file mode 100644 index 00000000..00d06e9f --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/helpers/luhn.coffee @@ -0,0 +1,22 @@ +Sprangular.Luhn = + isValid: (number) -> + number = '' + number + return false if number.length < 8 or number.length > 19 + sum = 0 + mul = 1 + l = number.length + i = 0 + while i < l + digit = number.substring(l - i - 1, l - i) + tproduct = parseInt(digit, 10) * mul + if tproduct >= 10 + sum += (tproduct % 10) + 1 + else + sum += tproduct + if mul is 1 + mul++ + else + mul-- + i++ + + (sum % 10) is 0 diff --git a/sprangular/app/assets/javascripts/sprangular/helpers/underscore.coffee b/sprangular/app/assets/javascripts/sprangular/helpers/underscore.coffee new file mode 100644 index 00000000..deec2e43 --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/helpers/underscore.coffee @@ -0,0 +1,3 @@ +underscore = angular.module("underscore", []) +underscore.factory "_", -> + window._ diff --git a/sprangular/app/assets/javascripts/sprangular/interceptors/loading.coffee b/sprangular/app/assets/javascripts/sprangular/interceptors/loading.coffee new file mode 100644 index 00000000..9e030da6 --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/interceptors/loading.coffee @@ -0,0 +1,21 @@ +'use strict' + +Sprangular.config ($provide, $httpProvider) -> + + $provide.factory 'loadingInterceptor', ($q, Status) -> + request: (config) -> + Status.httpLoading = true unless config.ignoreLoadingIndicator + + config + + response: (response) -> + Status.httpLoading = false + + response + + responseError: (rejection) -> + Status.httpLoading = false + + $q.reject(rejection) + + $httpProvider.interceptors.push('loadingInterceptor') diff --git a/sprangular/app/assets/javascripts/sprangular/interceptors/railsAssets.coffee b/sprangular/app/assets/javascripts/sprangular/interceptors/railsAssets.coffee new file mode 100644 index 00000000..1b13db4e --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/interceptors/railsAssets.coffee @@ -0,0 +1,16 @@ +'use strict' + +Sprangular.config ($provide, $httpProvider, Env) -> + + $provide.factory 'railsAssetsInterceptor', -> + request: (config) -> + url = config.url.replace(/^[\/]?assets\//, '') + + if assetUrl = Env.templates[url] + config.url = assetUrl + else if url.match(/.html$/) + config.url = "/assets/#{url}" + + config + + $httpProvider.interceptors.push('railsAssetsInterceptor') diff --git a/sprangular/app/assets/javascripts/sprangular/interceptors/shaping.coffee b/sprangular/app/assets/javascripts/sprangular/interceptors/shaping.coffee new file mode 100644 index 00000000..5d88553f --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/interceptors/shaping.coffee @@ -0,0 +1,12 @@ +Sprangular.config ($provide, $httpProvider) -> + + $provide.factory 'shapingInterceptor', -> + response: (response) -> + cls = response.config.class + + if cls + Sprangular.extend(response.data, cls) + else + response + + $httpProvider.interceptors.push('shapingInterceptor') diff --git a/sprangular/app/assets/javascripts/sprangular/models/address.coffee b/sprangular/app/assets/javascripts/sprangular/models/address.coffee new file mode 100644 index 00000000..97b5027b --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/models/address.coffee @@ -0,0 +1,62 @@ +'use strict' + +class Sprangular.Address + Validity.define @, + firstname: 'required' + lastname: 'required' + address1: 'required' + city: 'required' + state: 'required' + country: 'required' + zipcode: 'required' + phone: 'required' + + init: -> + @stateId = @state_id + @countryId = @country_id + + fullName: -> + "#{@firstname} #{@lastname}" + + shortAddress: -> + "#{@fullName()}, #{@addressLine()}, #{@city} #{@state.abbr}, #{@zipcode}" + + addressLine: -> + if @address2 + @address1 + " " + @address2 + else + @address1 + + serialize: -> + id: @id + firstname: @firstname + lastname: @lastname + address1: @address1 + address2: @address2 + city: @city + phone: @phone + zipcode: @zipcode + state_id: @stateId + country_id: @countryId + + isEmpty: -> + !@firstname && + !@lastname && + !@address1 && + !@address2 && + !@city && + !@phone && + !@zipcode && + !@countryId && + !@stateId + + same: (other) -> + @firstname == other.firstname && + @lastname == other.lastname && + @address1 == other.address1 && + @address2 == other.address2 && + @city == other.city && + @phone == other.phone && + @zipcode == other.zipcode && + @countryId == other.countryId && + @stateId == other.stateId diff --git a/sprangular/app/assets/javascripts/sprangular/models/adjustment.coffee b/sprangular/app/assets/javascripts/sprangular/models/adjustment.coffee new file mode 100644 index 00000000..857bf6b0 --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/models/adjustment.coffee @@ -0,0 +1,10 @@ +class Sprangular.Adjustment + init: -> + @amount = Number(@amount) + + isPromo: -> + @source_type == 'Spree::PromotionAction' + + # label == 'Promotion (couponName)' + promoCode: -> + @label.split(/[()]+/)[1] diff --git a/sprangular/app/assets/javascripts/sprangular/models/creditCard.coffee b/sprangular/app/assets/javascripts/sprangular/models/creditCard.coffee new file mode 100644 index 00000000..f0fe56ec --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/models/creditCard.coffee @@ -0,0 +1,61 @@ +'use strict' + +class Sprangular.CreditCard + this.TYPE_NAMES = + master: 'MasterCard' + visa: 'Visa' + amex: 'American Express' + discover: 'Discover' + dinersclub: 'Diners Club' + jcb: 'JCB' + + Validity.define @, + number: ['required', '_validateCardFormat'] + month: 'required' + year: 'required' + cvc: ['required', length: {greaterThan: 2, lessThan: 5}] + + constructor: -> + @number = '' + @name = null + @month = null + @year = null + @cvc = null + @type = null + @token = null + @lastDigits = null + + init: (attributes) -> + @id = attributes.id + @name = attributes.name + @lastDigits = attributes.last_digits + @month = attributes.month + @year = attributes.year + @token = attributes.gateway_payment_profile_id + @type = attributes.cc_type + + isNew: -> + not (@token and @token.length > 0) + + label: -> + "#{@constructor.TYPE_NAMES[@type]} XXXX-XXXX-XXXX-#{@lastDigits}" + + determineType: -> + @type = if @number.match /^3[47]/ + 'amex' + else if @number.match /^4/ + 'visa' + else if @number.match /^5[1-5]/ + 'master' + else if @number.match /^6(5|011)/ + 'discover' + else if @number.match /^3(0[0-5]|36|38)/ + 'dinersclub' + else if @number.match /^(2131|1800|35)/ + 'jcb' + + same: (other) -> + @id == other.id + + _validateCardFormat: -> + 'invalid card number' unless Sprangular.Luhn.isValid(@number) diff --git a/sprangular/app/assets/javascripts/sprangular/models/order.coffee b/sprangular/app/assets/javascripts/sprangular/models/order.coffee new file mode 100644 index 00000000..f2f366cf --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/models/order.coffee @@ -0,0 +1,101 @@ +'use strict' + +class Sprangular.Order + constructor: -> + @creditCard = new Sprangular.CreditCard + + @clear() + + clear: -> + @number = '' + @items = [] + @billingAddress = new Sprangular.Address + @shippingAddress = new Sprangular.Address + @shipToBillAddress = true + @itemTotal = 0 + @taxTotal = 0 + @shipTotal = 0 + @adjustmentTotal = 0 + @total = 0 + @errors = null + @state = null + @shipmentState = null + + load: (data) -> + @clear() + @number = data.number + @state = data.state + @shipmentState = data.shipment_state + @itemTotal = Number(data.item_total) + @taxTotal = Number(data.tax_total) + @shipTotal = Number(data.ship_total) + @adjustmentTotal = Number(data.adjustment_total) + @total = Number(data.total) + @shipToBillAddress = data.use_billing + @adjustments = Sprangular.extend(data.adjustments, Sprangular.Adjustment) + + if shippingMethod = _.last(data.shipping_methods) + @shippingMethodId = shippingMethod.id + else + @shippingMethodId = null + + if data.bill_address + @billingAddress = Sprangular.extend(data.bill_address, Sprangular.Address) + + if data.ship_address + @shippingAddress = Sprangular.extend(data.ship_address, Sprangular.Address) + + products = Sprangular.extend(data.products, Sprangular.Product) + + for item in data.line_items + for product in products + variant = product.findVariant(item.variant_id) + break if variant + + @items.push(variant: variant, quantity: item.quantity, price: item.price) + + @ + + isEmpty: -> + @items.length == 0 + + isValid: -> + @billingAddress.validate() + @actualShippingAddress().validate() + @creditCard.validate() + + @billingAddress.isValid() && @actualShippingAddress().isValid() && (@creditCard.id || @creditCard.isValid()) + + isInvalid: -> + !@isValid() + + totalQuantity: -> + @items.reduce ((total, item) -> total + item.quantity), 0 + + findVariant: (variantId) -> + item for item in @items when item.variant.id is variantId + + hasVariant: (variant) -> + variant && @findVariant(variant.id).length > 0 + + updateTotals: -> + @total = @itemTotal + @adjustmentTotal + @taxTotal + @shipTotal + + actualShippingAddress: -> + if @shipToBillAddress + @billingAddress + else + @shippingAddress + + resetAddresses: (user) -> + if @billingAddress.isEmpty() && user && user.addresses.length > 0 + @billingAddress = user.addresses[0] + + if @shippingAddress.isEmpty() && user && user.addresses.length > 0 && !@shipToBillAddress + @shippingAddress = user.addresses[0] + + resetCreditCard: (user) -> + if user && user.creditCards.length > 0 + @creditCard = _.last(user.creditCards) + else + @creditCard = new Sprangular.CreditCard diff --git a/sprangular/app/assets/javascripts/sprangular/models/product.coffee b/sprangular/app/assets/javascripts/sprangular/models/product.coffee new file mode 100644 index 00000000..4034c1b3 --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/models/product.coffee @@ -0,0 +1,62 @@ +class Sprangular.Product + init: -> + images = @master.images + @images = images + + @permalink = "#!/products/#{@slug}" + + if @variants.length > 0 + @hasVariants = true + @variants = Sprangular.extend(@variants, Sprangular.Variant) + else + @hasVariants = false + @master = Sprangular.extend(@master, Sprangular.Variant) + @variants = [@master] + + @image = @variants[0].images[0] + if !@image? + @image = @master.images[0] + + self = @ + @options = {} + + _.each @option_types, (type) -> + self.options[type.id] = {type: type, values: {}} + + _.each @variants, (variant) -> + variant.product = self + + _.each variant.option_values, (value) -> + type = _.find(self.option_types, (type) -> type.id == value.option_type_id ) + option = self.options[type.id] + + option.values[value.id] = {value: value, variants: []} unless option.values[value.id] + option.values[value.id].variants.push(variant) + + variantForValues: (selectedValues) -> + _.find @variants, (variant) -> + variant.option_values.length == selectedValues.length && _.all selectedValues, (selected) -> + _.find variant.option_values, (value) -> value.id == selected.id + + availableValues: (selectedValues) -> + self = @ + + if selectedValues.length == 0 + _.map self.options, (option) -> option.values + else + matchingVariants = _.filter self.variants, (variant) -> + _.all selectedValues, (selected) -> + _.find variant.option_values, (value) -> value.id == selected.id + + values = _.map matchingVariants, (variant) -> variant.option_values + values = _.flatten(values) + _.unique(values) + + findVariant: (variant_id) -> + _.find @variants, (variant) -> variant.id == variant_id + + isAvailable: -> + if @hasVariants + _.any @variants, (variant) -> variant.isAvailable() + else + @master.isAvailable() diff --git a/sprangular/app/assets/javascripts/sprangular/models/shippingRate.coffee b/sprangular/app/assets/javascripts/sprangular/models/shippingRate.coffee new file mode 100644 index 00000000..6c163f41 --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/models/shippingRate.coffee @@ -0,0 +1,9 @@ +'use strict' + +class Sprangular.ShippingRate + + constructor: -> + + init: -> + @shippingMethodId = @shipping_method_id + @cost = Number(@cost) diff --git a/sprangular/app/assets/javascripts/sprangular/models/user.coffee b/sprangular/app/assets/javascripts/sprangular/models/user.coffee new file mode 100644 index 00000000..5d6d2175 --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/models/user.coffee @@ -0,0 +1,22 @@ +class Sprangular.User + init: -> + @creditCards = [] + @_mergeAddressLists() + @orders = Sprangular.extend(@orders, Sprangular.Order) + + for paymentSource in @payment_sources + card = new Sprangular.CreditCard + card.init(paymentSource) + + @creditCards.push(card) + + @allowOneClick = @creditCards.length > 0 && @addresses.length > 0 + + _mergeAddressLists: -> + addresses = [] + unique = (address) -> addresses[address.id] = Sprangular.extend(address, Sprangular.Address) + + _.each @shipping_addresses, unique + _.each @billing_addresses, unique + + @addresses = _.values(addresses) diff --git a/sprangular/app/assets/javascripts/sprangular/models/variant.coffee b/sprangular/app/assets/javascripts/sprangular/models/variant.coffee new file mode 100644 index 00000000..4b9b49b0 --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/models/variant.coffee @@ -0,0 +1,14 @@ +class Sprangular.Variant + init: -> + @name = if @option_values[0] then @option_values[0].presentation else "" + + @images = _.map @images, (image) -> + miniUrl: image.mini_url + smallUrl: image.small_url + largeUrl: image.large_url + productUrl: image.product_url + + @image = @images[0] + + isAvailable: -> + !@track_inventory || @in_stock diff --git a/sprangular/app/assets/javascripts/sprangular/module.coffee b/sprangular/app/assets/javascripts/sprangular/module.coffee new file mode 100644 index 00000000..5ba038ec --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/module.coffee @@ -0,0 +1,66 @@ +# Main Module +window.Sprangular = angular.module "Sprangular", ['ui.bootstrap', 'ngRoute', 'ngResource', 'ngAnimate', 'underscore', 'ngSanitize', 'rawFilter', 'mgcrea.ngStrap', 'infinite-scroll', 'angularytics'] + .run (Env) -> + paymentMethods = Env.config.payment_methods + + if _.isEmpty(paymentMethods) + alert 'Gateway is not configured in Spree...' + +Sprangular.extend = (instance, type) -> + return unless instance + + if instance instanceof Array + _.map instance, (item) -> Sprangular.extend(item, type) + else + if typeof(type) == 'object' + _.each type, (cls, key) -> + instance[key] = Sprangular.extend(instance[key], cls) + instance + else + newInstance = angular.extend(new type(), instance) + newInstance.init() if newInstance.init + newInstance + +# Default Headers +Sprangular.config ["$httpProvider", "$locationProvider", ($httpProvider, $locationProvider) -> + $httpProvider.defaults.headers.common['Accept'] = 'application/json' + $httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded' + $httpProvider.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded' + + $locationProvider + .html5Mode false + .hashPrefix '!' +] + +Sprangular.run ($rootScope, $location, Status, Account, Cart, Flash) -> + + $rootScope.$on '$routeChangeStart', (event, next, current) -> + requirements = next.requires || {} + Status.routeChanging = true + + if requirements.user && !Account.isLogged + Status.requestedPath = next.$$route.originalPath + Flash.error('Please sign in or register to continue.') + $location.path('/sign-in') + event.preventDefault() + + else if requirements.guest && Account.isLogged + Flash.error("Sorry, that page is only available when you're signed out.") + $location.path('/') + event.preventDefault() + + else if requirements.cart && Cart.current.items.length == 0 + Flash.error('Sorry, there are no items in your cart.') + $location.path('/') + event.preventDefault() + + $rootScope.$on '$routeChangeSuccess', -> + Status.routeChanging = false + + $rootScope.$on '$routeChangeError', (event, current, previous, rejection) -> + Status.routeChanging = false + alert "Error changing route #{rejection}" + + Account.init() + .success -> Status.initialized = true + .error -> Status.initialized = true diff --git a/sprangular/app/assets/javascripts/sprangular/routes.coffee b/sprangular/app/assets/javascripts/sprangular/routes.coffee new file mode 100644 index 00000000..e98e9d7a --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/routes.coffee @@ -0,0 +1,90 @@ +Sprangular.config ($routeProvider) -> + + $routeProvider + .when '/', + controller: 'HomeCtrl' + templateUrl: 'home/index.html' + resolve: + products: (Catalog) -> + Catalog.products() + + .when '/account', + requires: {user: true} + controller: 'AccountCtrl' + templateUrl: 'account/show.html' + resolve: + user: (Account) -> + Account.init().then -> Account.user + + .when '/products', + controller: 'ProductListCtrl' + templateUrl: 'products/index.html' + resolve: + taxon: -> null + products: (Catalog, $route) -> + Catalog.products($route.current.params.search, 1) + + .when '/products/:id', + controller: 'ProductCtrl' + templateUrl: 'products/show.html' + resolve: + product: (Status, Catalog, $route) -> + slug = $route.current.params.id + + Status.findCachedProduct(slug) || Catalog.find(slug) + + .when '/t/:path*', + controller: 'ProductListCtrl' + templateUrl: 'products/index.html' + resolve: + taxon: (Catalog, $route) -> + Catalog.taxon($route.current.params.path) + products: (Catalog, $route) -> + Catalog.productsByTaxon($route.current.params.path) + + .when '/sign-in', + requires: {guest: true} + controller: 'SigninCtrl' + templateUrl: 'account/signin.html' + + .when '/sign-up', + requires: {guest: true} + controller: 'SignupCtrl' + templateUrl: 'account/signup.html' + + .when '/forgot-password', + requires: {guest: true} + controller: 'ForgotPasswordCtrl' + templateUrl: 'account/forgot_password.html' + + .when '/reset-password/:token', + requires: {guest: true} + controller: 'ResetPasswordCtrl' + templateUrl: 'account/reset_password.html' + + .when '/checkout', + requires: {user: true, cart: true} + controller: 'CheckoutCtrl' + templateUrl: 'checkout/index.html' + resolve: + countries: (Geography) -> Geography.getCountryList() + order: (Cart) -> + Cart.reload().then -> Cart.current + + .when '/checkout/confirm', + requires: {user: true, cart: true} + controller: 'CheckoutConfirmCtrl' + templateUrl: 'checkout/confirm.html' + resolve: + order: (Cart) -> + Cart.reload().then -> Cart.current + + .when '/checkout/complete', + controller: 'CheckoutCompleteCtrl' + templateUrl: 'checkout/complete.html' + resolve: + order: (Cart) -> + Cart.lastOrder + + .otherwise + templateUrl: '404.html' diff --git a/sprangular/app/assets/javascripts/sprangular/services/account.coffee b/sprangular/app/assets/javascripts/sprangular/services/account.coffee new file mode 100644 index 00000000..7716eac4 --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/services/account.coffee @@ -0,0 +1,104 @@ +Sprangular.service "Account", ($http, _, $q, Cart, Flash) -> + + service = + + fetched: false + isLogged: false + + init: -> + @clear() + + $http.get '/api/account' + .success (data) -> + service.populateAccount(data) + service.fetched = true + .error (data) -> + service.isLogged = false + service.fetched = true + + reload: -> + @fetched = false + $http.get '/api/account' + .success (data) -> + service.populateAccount(data) + Cart.reload() + service.fetched = true + .error (data) -> + service.isLogged = false + + populateAccount: (data) -> + @user = Sprangular.extend(data, Sprangular.User) + + @isLogged = true + @email = data.email + + clear: -> + @fetched = false + @user = {} + @isLogged = false + @email = null + + login: (data) -> + params = + 'spree_user[email]': data.email, + 'spree_user[password]': data.password + $http.post '/spree/login.js', $.param params + .success (data) -> + service.reload().then (data) -> + Cart.reload() + Flash.success 'Successfully signed in' + .error -> + Flash.error 'Sign in failed' + + logout: -> + $http.get '/spree/logout' + .success (data) -> + service.isLogged = false + service.clear() + Cart.init() + + signup: (data) -> + params = + spree_user: data + + $http.post('/api/account', $.param(params)) + .success (data) -> + service.reload().then (data) -> + Cart.reload() + + forgotPassword: (data) -> + params = + spree_user: data + $http.post '/api/passwords', $.param params + .success (data) -> + service.reload().then (data) -> + Cart.reload() + + resetPassword: (data) -> + params = + spree_user: data + $http.put '/api/passwords/'+data.reset_password_token, $.param params + .success (data) -> + service.reload().then (data) -> + Cart.reload() + + save: (data) -> + params = + spree_user: data + $http.put '/api/account', $.param params + .success (data) -> + service.reload().then (data) -> + Flash.success 'Account updated' + .error -> + Flash.error 'Save failed' + + deleteCard: (card) -> + cards = @user.creditCards + + $http.delete("/api/credit_cards/#{card.id}") + .success (data) -> + i = cards.indexOf card + cards.splice(i, 1) unless i is -1 + + service.init() + service diff --git a/sprangular/app/assets/javascripts/sprangular/services/cart.coffee b/sprangular/app/assets/javascripts/sprangular/services/cart.coffee new file mode 100644 index 00000000..17d04699 --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/services/cart.coffee @@ -0,0 +1,102 @@ +Sprangular.service "Cart", ($http) -> + + service = + current: null + + init: -> + @current = new Sprangular.Order + + reload: -> + $http.get '/api/cart.json' + .success(@load) + + errors: (errors) -> + order = service.current + + order.errors = {} + order.billingAddress.errors = {} + order.shippingAddress.errors = {} + order.creditCard.errors = {} + + for key, attrErrors of errors + parts = key.split('.') + + object = parts[0] + attr = parts[1] + + switch object + when 'ship_address' + order.shipingAddress.errors[attr] = attrErrors + when 'bill_address' + order.billingAddress.errors[attr] = attrErrors + else + order.errors[key] = attrErrors + + load: (data) -> + service.current.load(data) + + empty: -> + $http.delete '/api/cart' + .success(@load) + + addVariant: (variant, quantity) -> + foundProducts = @findVariant(variant.id) + + if foundProducts.length > 0 + @changeItemQuantity(foundProducts[0], quantity) + else + params = $.param(variant_id: variant.id, quantity: quantity) + + $http.post '/api/cart/add_variant', params, ignoreLoadingIndicator: true + .success (response) -> + service.load(response) + + removeItem: (item) -> + order = service.current + i = order.items.indexOf item + order.items.splice(i, 1) unless i is -1 + @updateItemQuantity item.variant.id, 0 + + changeItemQuantity: (item, delta) -> + if delta != 0 + @updateItemQuantity(item.variant.id, item.quantity + delta) + + updateItemQuantity: (id, quantity) -> + params = $.param(variant_id: id, quantity: quantity) + + $http.put '/api/cart/update_variant', params, ignoreLoadingIndicator: true + .success(@load) + + changeVariant: (oldVariant, newVariant) -> + params = $.param(old_variant_id: oldVariant.id, new_variant_id: newVariant.id) + + $http.put '/api/cart/change_variant', params + .success(@load) + + removeAdjustment: (adjustment) -> + @current.adjustmentTotal -= adjustment.amount + @current.total -= adjustment.amount + @current.adjustments = _.without(@current.adjustments, adjustment) + + params = $.param(adjustment_id: adjustment.id) + + $http.put '/api/cart/remove_adjustment', params + .success(@load) + + shippingRates: (options) -> + params = + country_id: options.countryId + state_id: options.stateId + zipcode: options.zipcode + + $http.get('/api/shipping_rates', {params: params, ignoreLoadingIndicator: true, class: Sprangular.ShippingRate}) + + clear: -> @current.clear() + totalQuantity: -> @current.totalQuantity() + findVariant: (variantId) -> @current.findVariant(variantId) + hasVariant: (variant) -> @current.hasVariant(variant) + isEmpty: -> @current.isEmpty() + + service.init() + service.reload() + service diff --git a/sprangular/app/assets/javascripts/sprangular/services/catalog.coffee b/sprangular/app/assets/javascripts/sprangular/services/catalog.coffee new file mode 100644 index 00000000..d7a05638 --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/services/catalog.coffee @@ -0,0 +1,38 @@ +Sprangular.service 'Catalog', ($http, $q, _, Status) -> + service = + pageSize: 8 + + products: (search=null, page=1, options) -> + options ||= {} + options.search = search + @getPaged(page, options) + + productsByTaxon: (path, page=1) -> + @getPaged(page, taxon: path) + + taxonomies: -> + $http.get("/api/taxonomies0") + .then (response) -> + response.data + + taxon: (path) -> + $http.get("/api/taxons/#{path}") + .then (response) -> + response.data + + find: (id) -> + $http.get("/api/products/#{id}", class: Sprangular.Product) + + getPaged: (page=1, params={}) -> + $http.get("/api/products0", ignoreLoadingIndicator: params.ignoreLoadingIndicator, params: {per_page: @pageSize, page: page, "q[name_or_description_cont]": params.search, "q[taxons_permalink_eq]": params.taxon}) + .then (response) -> + data = response.data + list = Sprangular.extend(data.products || [], Sprangular.Product) + list.isLastPage = (data.count < service.pageSize) || (page == data.pages) + list.totalCount = data.total_count + list.totalPages = data.pages + list.page = data.current_page + Status.cacheProducts(list) + list + + service diff --git a/sprangular/app/assets/javascripts/sprangular/services/checkout.coffee b/sprangular/app/assets/javascripts/sprangular/services/checkout.coffee new file mode 100644 index 00000000..6627cb28 --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/services/checkout.coffee @@ -0,0 +1,70 @@ +Sprangular.service "Checkout", ($http, $q, _, Env, Account, Cart) -> + + service = + savePromo: (code) -> + params = + order: + coupon_code: code + + @put(params) + + update: -> + order = Cart.current + + params = + order: + use_billing: order.shipToBillAddress + coupon_code: order.couponCode + ship_address_attributes: order.actualShippingAddress().serialize() + bill_address_attributes: order.billingAddress.serialize() + + if order.shippingMethod + params.order.shipping_method_id = order.shippingMethodId + + if order.shippingRate + params['order[shipments_attributes][][selected_shipping_rate_id]'] = order.shippingRate.id + + @put(params) + + complete: -> + order = Cart.current + card = order.creditCard + paymentMethodId = Env.config.payment_methods['gateway'].id + + params = + complete: true + 'order[payments_attributes][][payment_method_id]': paymentMethodId + order: {} + payment_source: {} + + if card.id + params.order.existing_card = card.id + else + sourceParams = {} + sourceParams.number = card.number + sourceParams.cc_type = card.type + sourceParams.verification_value = card.cvc + sourceParams.month = card.month + sourceParams.year = card.year + sourceParams.name = order.billingAddress.fullName() + + params.payment_source[paymentMethodId] = sourceParams + + @put(params) + .success (data) -> + Cart.lastOrder = Sprangular.extend(data, Sprangular.Order) + Account.reload().then -> + Cart.init() + + put: (params) -> + params ||= {} + + Cart.current.errors = null + + $http.put("/api/checkouts/#{Cart.current.number}/quick_update", $.param(params)) + .success (response) -> + Cart.load(response) unless response.error + .error (response) -> + Cart.errors(response.errors || response.exception) + + service diff --git a/sprangular/app/assets/javascripts/sprangular/services/facebook.coffee b/sprangular/app/assets/javascripts/sprangular/services/facebook.coffee new file mode 100644 index 00000000..0b6480e8 --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/services/facebook.coffee @@ -0,0 +1,88 @@ +Sprangular.service 'Facebook', ($q, $http, Env) -> + + accessToken = null + + # Load the Facebook SDK Asynchronously +# disable facebook feature +# ((d) -> +# js = undefined +# id = "facebook-jssdk" +# ref = d.getElementsByTagName("script")[0] +# return if d.getElementById(id) +# js = d.createElement("script") +# js.id = id +# js.async = true +# js.src = "//connect.facebook.net/en_US/all.js" +# ref.parentNode.insertBefore js, ref +# return +# ) document + + window.fbAsyncInit = -> + Facebook.init() + return + + Facebook = + + init: -> + FB.init + appId: Env.config.facebook_app_id # App ID + channelUrl: "//localhost:3000/channel.html" # Channel File + status: false # check login status + cookie: false # enable cookies to allow the server to access the session + xfbml: true # parse XFBML + + login: (email) -> + deferred = $q.defer() + service = this + if accessToken + # We use the FB api to check if the persisted token is still authorized. + # The user could have removed the app while we still have the token in memory. + # The FB login page does not handle this properly. Solution: call init() again + # and log back in. + + # Check if accessToken still valid. + FB.api '/me', (response) -> + if response.error + # Not valid anymore, reinitialize and do the Login + service.init() + service.fbLogin deferred, email + else + # Token valid, no need to login again, let's fetch the + # user from the server. + service.fetchUser deferred, email + else + service.fbLogin deferred, email + + return deferred.promise + + fbLogin: (deferred, email) -> + service = this + FB.login ((response) -> + console.log response + if response.authResponse + accessToken = response.authResponse + service.fetchUser deferred, email + else + deferred.reject + facebookError: true + response: response + return + ), + scope: "email" + + status: -> + deferred = $q.defer() + FB.getLoginStatus (response) -> + deferred.resolve response.status + + fetchUser: (deferred, email) -> + accessToken.email = email + $http.post("/api/facebook/fetch", $.param(accessToken)) + .success (data) -> + deferred.resolve data + .error (data, status) -> + deferred.reject + facebookError: false + data: data + status: status + diff --git a/sprangular/app/assets/javascripts/sprangular/services/flash.coffee b/sprangular/app/assets/javascripts/sprangular/services/flash.coffee new file mode 100644 index 00000000..a1b149a5 --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/services/flash.coffee @@ -0,0 +1,22 @@ +Sprangular.factory 'Flash', ($timeout) -> + messages: [] + + add: (type, message) -> + flash = type: type, text: message + + @messages.push(flash) + @timeout(flash) + + timeout: (flash) -> + self = this + $timeout((-> self.remove(flash)), 2500) + + success: (message) -> @add('success', message) + info: (message) -> @add('info', message) + error: (message) -> @add('danger', message) + + remove: (flash) -> + @messages = @messages.filter (x) -> x != flash + + hasMessages: () -> + @messages.length > 0 diff --git a/sprangular/app/assets/javascripts/sprangular/services/geography.coffee b/sprangular/app/assets/javascripts/sprangular/services/geography.coffee new file mode 100644 index 00000000..576aa1c3 --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/services/geography.coffee @@ -0,0 +1,4 @@ +Sprangular.service 'Geography', ($http) -> + getCountryList: -> + $http.get('/api/countries', cache: true) + .then (response) -> response.data diff --git a/sprangular/app/assets/javascripts/sprangular/services/newsletter.coffee b/sprangular/app/assets/javascripts/sprangular/services/newsletter.coffee new file mode 100644 index 00000000..3239ad00 --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/services/newsletter.coffee @@ -0,0 +1,9 @@ +Sprangular.factory 'Newsletter', ($http) -> + + subscribe: (email) -> + params = + chimpy_subscriber: + email: email + subscribed: true + + $http.post("/spree/subscribers", $.param(params), { ignoreLoadingIndicator: true }) diff --git a/sprangular/app/assets/javascripts/sprangular/services/shipment.coffee b/sprangular/app/assets/javascripts/sprangular/services/shipment.coffee new file mode 100644 index 00000000..84ed298d --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/services/shipment.coffee @@ -0,0 +1,19 @@ +Sprangular.service 'Shipment', (ShippingRate) -> + + Shipment = + + id: null + rates: [] + loaded: false + + # Load shipping rates from order shipment + load: (shipment) -> + @id = shipment.id + @rates.length = 0 + for shippingRate in shipment.shipping_rates + @rates.push ShippingRate.load(shippingRate) + @loaded = true + + findRate: (shippingRateId) -> + for shippingRate in @rates + return shippingRate if shippingRate.id is shippingRateId \ No newline at end of file diff --git a/sprangular/app/assets/javascripts/sprangular/services/status.coffee b/sprangular/app/assets/javascripts/sprangular/services/status.coffee new file mode 100644 index 00000000..dd9605ae --- /dev/null +++ b/sprangular/app/assets/javascripts/sprangular/services/status.coffee @@ -0,0 +1,26 @@ +Sprangular.service "Status", ($rootScope) -> + + status = + initialized: false + pageTitle: "Home" + bodyClass: "default" + requestedPath: null + httpLoading: false + routeChanging: false + cachedProducts: [] + + isLoading: -> + @httpLoading || @routeChanging + + cacheProducts: (list) -> + status.cachedProducts = status.cachedProducts.concat(list) + + findCachedProduct: (slug) -> + _.find status.cachedProducts, (product) -> + product.slug == slug + + $rootScope.$watch (-> status.isLoading()), (loading) -> + event = if loading then 'start' else 'end' + $rootScope.$broadcast("loading.#{event}") + + status diff --git a/sprangular/app/assets/javascripts/validity.js b/sprangular/app/assets/javascripts/validity.js new file mode 100644 index 00000000..52f8db45 --- /dev/null +++ b/sprangular/app/assets/javascripts/validity.js @@ -0,0 +1,142 @@ +(function() { + window.Validity = { + RULES: { + required: function(object, attr) { + if (!object[attr]) { + return "can't be blank"; + } + }, + greaterThan: function(object, attr, arg) { + if (!(Number(object[attr]) > arg)) { + return "must be greater than " + arg; + } + }, + greaterThanOrEqual: function(object, attr, arg) { + if (!(Number(object[attr]) >= arg)) { + return "must be greater than or equal to " + arg; + } + }, + lessThan: function(object, attr, arg) { + if (!(Number(object[attr]) < arg)) { + return "must be less than " + arg; + } + }, + lessThanOrEqual: function(object, attr, arg) { + if (!(Number(object[attr]) <= arg)) { + return "must be less than or equal to " + arg; + } + }, + regex: function(object, attr, arg) { + if (!String(object[attr]).match(arg)) { + return 'is invalid'; + } + }, + length: function(object, attr, arg) { + var length, value; + value = object[attr] || ''; + if (typeof arg === 'number') { + if (value.length !== arg) { + return "length must be " + arg; + } + } else if (typeof arg === 'object') { + if (length = arg['greaterThan']) { + if (value.length < length) { + return "length must be greater than " + length; + } + } + if (length = arg['lessThan']) { + if (value.length > length) { + return "length must be less than " + length; + } + } + } + }, + number: function(object, attr) { + if (typeof object[attr] !== 'number') { + return "must be a number"; + } + } + }, + _normalizeRules: function(rules) { + var attr, def, dict, self; + self = this; + dict = {}; + for (attr in rules) { + def = rules[attr]; + self._normalizeRule(attr, def, dict); + } + return dict; + }, + _normalizeRule: function(attr, def, dict) { + var key, rule, self, val, _i, _len; + dict[attr] || (dict[attr] = {}); + switch (typeof def) { + case 'string': + dict[attr][def] = null; + break; + case 'object': + self = this; + if (Array.isArray(def)) { + for (_i = 0, _len = def.length; _i < _len; _i++) { + rule = def[_i]; + self._normalizeRule(attr, rule, dict); + } + } else { + for (key in def) { + val = def[key]; + dict[attr][key] = val; + } + } + } + return dict; + }, + define: function(klass, rules) { + if (rules == null) { + rules = {}; + } + klass.validations = this._normalizeRules(rules); + klass.prototype.validate = function() { + var arg, attr, error, fn, name, object, validations, value, _base, _ref; + object = this; + this.errors = {}; + _ref = klass.validations; + for (attr in _ref) { + validations = _ref[attr]; + value = object[attr]; + for (name in validations) { + arg = validations[name]; + error = null; + if (fn = Validity.RULES[name]) { + error = fn(object, attr, arg); + } else { + fn = object[name]; + if (!(fn && typeof fn === 'function')) { + throw "Validator " + name + " is not defined"; + } + error = fn.apply(object, [attr, arg]); + } + if (error) { + (_base = object.errors)[attr] || (_base[attr] = []); + object.errors[attr].push(error); + } + } + } + return this.errors; + }; + klass.prototype.isValid = function() { + var key, value, _ref; + this.validate(); + _ref = this.errors; + for (key in _ref) { + value = _ref[key]; + return false; + } + return true; + }; + return klass.prototype.isInvalid = function() { + return !this.isValid(); + }; + } + }; + +}).call(this); diff --git a/sprangular/app/assets/stylesheets/sprangular.scss b/sprangular/app/assets/stylesheets/sprangular.scss new file mode 100644 index 00000000..432bfb97 --- /dev/null +++ b/sprangular/app/assets/stylesheets/sprangular.scss @@ -0,0 +1,279 @@ +@import "bootstrap-sass-official/bootstrap-sprockets"; +@import "sprangular/config"; +@import "bootstrap-sass-official"; +@import "font-awesome"; +@import "angular-motion"; +@import "bootstrap-additions"; + +body { + padding: 70px 0 0 0; +} + +.row.no-padding { + [class*="col-"] { + padding-left: 0 !important; + padding-right: 0 !important; + } +} + +.img-responsive { + width: 100%; +} + +#loading { + position: fixed; + z-index: 999; + height: 4em; + width: 100%; + overflow: show; + margin: auto; + top: 0; + left: 0; + bottom: 0; + text-align: center; + + .fa { + color: $body-bg; + } + + &:before { + content: ''; + display: block; + position: fixed; + top: 0; + left: 0; + right: 0; + width: 100%; + height: 100%; + background-color: rgba($gray,0.4); + } +} + +.navbar-brand img { + max-height: 25px; +} + +a { + cursor: pointer; +} + +.btn.add-to-cart { + span { + display: inline-block; + } + + .caption { + margin-right: 5px; + font-weight: bold; + border-right: solid 2px rgba($body-bg, 0.4); + padding-right: 7px; + } + + &.btn-default { + .caption { + border-right-color: rgba($gray-dark, 0.5); + } + } +} + +.input-group { + .input-group-btn .btn .glyphicon { + line-height: 20px; + } +} + +#signin { + nav a { + display: block; + } +} + +#initializing { + text-align: center; +} + +.aside { + width: 100%; +} + +td { + &.number { + text-align: right; + } + + .total & { + font-weight: bold; + } +} + +footer { + background: $gray; + color: $gray-light; + padding: 10px 5px 5px; + + a { + color: $gray-light; + font-weight: bold; + + &:hover { + color: #fff; + } + } + + .dynamo { + .level1, .level2, .level3 { + text-align: center; + } + span { + display: inline-block; + padding: 0px 6px; + font-weight: bolder; + } + } +} + +form { + p.error { + color: $brand-danger; + } +} + +/* Sticky footer styles +-------------------------------------------------- */ +$footer-height: 80px; + +html { + position: relative; + min-height: 100%; +} +body { + /* Margin bottom by footer height */ + margin-bottom: $footer-height; +} + +#wrap { + padding-bottom: 20px; +} + +footer { + position: absolute; + bottom: 0; + width: 100%; + /* Set the fixed height of the footer here */ + height: $footer-height; +} + +.product-listing { + .product { + text-align: center; + img { + transition: opacity 0.3s ease-in; + } + + .title, .with-variants, .without-variants { + position: absolute; + width: 100%; + display: none; + padding: 15px; + } + + .with-variants, .without-variants { + bottom: 15px; + } + + .title a { + text-decoration: none; + } + + &:hover { + img { + opacity: 0.3; + } + + .title, .with-variants, .without-variants { + display: block; + z-index: 2; + } + } + } +} + +.checkout-nav { + .stripe { + background: $gray-lighter; + height: 6px; + position: absolute; + margin-top: 17px; + width: 90%; + z-index: -1; + } + + nav { + a { + text-decoration: none; + display: inline-block; + width: 33%; + text-align: center; + + &:first-child { + text-align: left; + } + + &:last-child { + text-align: right; + } + } + + &.details a.details, &.confirm a.confirm, &.done a.done { + .number { + background: $brand-info; + color: $body-bg; + } + .caption { + color: $brand-info; + } + } + + &.confirm { + a.details .number { + background: $brand-success; + color: $body-bg; + } + } + + &.done { + a.details, a.confirm { + .number { + background: $brand-success; + color: $body-bg; + } + } + } + } + + span.caption { + display: block; + margin: 0px auto; + color: $gray; + } + + span.number { + display: inline-block; + color: $gray-light; + background: $gray-lighter; + padding: 10px 16px; + border-radius: 50%; + width: auto; + } +} + +a.cart-link.visible-xs { + float: right; + padding: 15px; +} + +@media (min-width: $screen-sm-min) { + .aside { + width: 50%; + } +} diff --git a/sprangular/app/assets/stylesheets/sprangular/_config.scss b/sprangular/app/assets/stylesheets/sprangular/_config.scss new file mode 100644 index 00000000..33d152d9 --- /dev/null +++ b/sprangular/app/assets/stylesheets/sprangular/_config.scss @@ -0,0 +1,2 @@ +@import "bootstrap-sass-official/bootstrap/variables"; +// variable modifications go here diff --git a/sprangular/app/assets/templates/404.html.slim b/sprangular/app/assets/templates/404.html.slim new file mode 100644 index 00000000..1cfb276f --- /dev/null +++ b/sprangular/app/assets/templates/404.html.slim @@ -0,0 +1,2 @@ +h1 Oh Snap +p The page you've requested was not found diff --git a/sprangular/app/assets/templates/account/edit.html.slim b/sprangular/app/assets/templates/account/edit.html.slim new file mode 100644 index 00000000..53d6b1a4 --- /dev/null +++ b/sprangular/app/assets/templates/account/edit.html.slim @@ -0,0 +1,31 @@ +form(name='accountForm' ng-submit="save()" novalidate) + .form-group + label(for='email') Email + input.form-control(name="email" ng-model="user.email" required) + p.error(ng-bind="user.errors.email[0]") + + .form-group + label(for='password') Password + input.form-control(name="password" ng-model="user.password" type='password') + small Leave the password blank if you do not want to change it. + p.error(ng-bind="user.errors.password[0]") + + .form-group + label(for='password_confirmation') Password Confirmation + input.form-control(name="password_confirmation" ng-model="user.password_confirmation" type='password') + p.error(ng-bind="user.errors.password_confirmation[0]") + + .form-group + label + input.form-control(ng-model="user.one_click_enabled" type='checkbox') + | Allow 1-click checkout + + .clearfix + .pull-left + a.btn.btn-link(ng-click="stopEdit()") Cancel + + .pull-right + button.btn.btn-primary.btn-lg(type='submit') + span.glyphicon.glyphicon-floppy-disk + |   + | Update diff --git a/sprangular/app/assets/templates/account/forgot_password.html.slim b/sprangular/app/assets/templates/account/forgot_password.html.slim new file mode 100644 index 00000000..0eb0988a --- /dev/null +++ b/sprangular/app/assets/templates/account/forgot_password.html.slim @@ -0,0 +1,18 @@ +a.p-signin-close ng-click="toggleSignin()" + svg.i-ico--2.i-ui--close + use xlink:href="#i-ui--close" + +.p-sign-flash ng-show="account.flash.length > 0" + p + | {{account.flash}} + +.p-sign-forgot-sent ng-show="requestSent" + p We've sent you an email with a link to reset your password. + +.p-sign-forgot ng-hide="requestSent" + form.f-wrp name='ForgotPasswordForm' ng-submit="submit()" + input.f-input ng-model="request.email" type="email" placeholder='Email' required=true + p.f-error ng-bind="request.errors.email" + button.b--full.b-cta--full.b--green.b-cta type='submit' Reset my password + div.c-center + a ng-click="cancel()" Cancel diff --git a/sprangular/app/assets/templates/account/reset_password.html.slim b/sprangular/app/assets/templates/account/reset_password.html.slim new file mode 100644 index 00000000..d10e9606 --- /dev/null +++ b/sprangular/app/assets/templates/account/reset_password.html.slim @@ -0,0 +1,22 @@ +a.p-signin-close ng-click="toggleSignin()" + svg.i-ico--2.i-ui--close + use xlink:href="#i-ui--close" + +.p-sign-flash ng-show="account.flash.length > 0" + p + | {{account.flash}} + +.p-sign-req-sent ng-show="requestSent" + p Your password was saved. By the way, we signed you in at the same time. + +.p-sign-req ng-hide="requestSent" + .f-wrp name='ForgotPasswordForm' ng-submit="submit()" + input.f-input ng-model="request.password" placeholder='Password' type='password' required=true + p.f-error ng-bind="request.errors.password" + input.f-input ng-model="request.password_confirmation" placeholder='Password Again' type='password' required=true + p.f-error ng-bind="request.errors.password_confirmation" + p.f-error ng-bind="request.errors.reset_password_token" + + button.b--full.b-cta--full.b--green.b-cta type='submit' Update my password + div.c-center + a ng-click="cancel()" Cancel diff --git a/sprangular/app/assets/templates/account/show.html.slim b/sprangular/app/assets/templates/account/show.html.slim new file mode 100644 index 00000000..ee136c04 --- /dev/null +++ b/sprangular/app/assets/templates/account/show.html.slim @@ -0,0 +1,33 @@ +#account + h1 My Account + + .well + div ng-hide="editing" + dl + dt Email + dd + | {{user.email}} + + dt Password + dd ••••••• + + dt One-click Checkout + dd + span(ng-if='user.one_click_enabled') Enabled + span(ng-if='!user.one_click_enabled') Disabled + + .clearfix + .pull-right + a.btn.btn-primary.btn-lg(ng-click="edit()") + span.glyphicon.glyphicon-edit + |   + | Edit + + div ng-show="editing" + div ng-include="'account/edit.html'" + + div ng-include="'credit_cards/index.html'" ng-controller="CreditCardListCtrl" + + div ng-include="'addresses/index.html'" ng-controller="AddressListCtrl" + + div ng-include="'orders/index.html'" ng-controller="OrdersListCtrl" diff --git a/sprangular/app/assets/templates/account/signin.html.slim b/sprangular/app/assets/templates/account/signin.html.slim new file mode 100644 index 00000000..60248481 --- /dev/null +++ b/sprangular/app/assets/templates/account/signin.html.slim @@ -0,0 +1,34 @@ +#signin.container + .row + .well.col-lg-8.col-lg-offset-2.col-xs-12 + h1 Sign in + form(name='signinForm' role="form" ng-submit="login()" novalidate) + .form-group + label(for="email") Email + input.form-control(name="email" ng-model="user.email" type="email" autofocus) + + .form-group + label(for="password") Password + input.form-control(name="password" ng-model="user.password" type="password") + + .pull-right + button.btn.btn-primary.btn-lg(type='submit' ng-disabled="signingIn") + span(ng-hide="signingIn") Sign in + span(ng-show="signingIn") Loading... + + nav + a(href="/#!/forgot-password") Forgot your password? + a(ng-click="connectWithFacebook()") Connect with Facebook + a(href="/#!/sign-up") Create account + + #fb-root + + div(ng-show="askForEmail") + p We really need your email address... Please!!! + + form(name='EmailForm' ng-submit="connectWithFacebook()") + input(ng-model="facebookEmail" type="email" placeholder="Email") + button.btn(type='submit') Continue + + div.c-center + a ng-click="cancelEmailAsking()" Cancel diff --git a/sprangular/app/assets/templates/account/signup.html.slim b/sprangular/app/assets/templates/account/signup.html.slim new file mode 100644 index 00000000..71874df6 --- /dev/null +++ b/sprangular/app/assets/templates/account/signup.html.slim @@ -0,0 +1,30 @@ +#signup.container + .row + .well.col-lg-8.col-lg-offset-2.col-xs-12 + h1 Sign up + + form(name='signupForm' role="form" ng-submit="submit()" novalidate) + + .form-group + label(for="email") Email + input.form-control(name="email" ng-model="user.email" required autofocus) + p.error(ng-bind="user.errors.email[0]") + + .form-group + label(for="password") Password + input.form-control(name="password" ng-model="user.password" type='password' required) + p.error ng-bind="user.errors.password[0]" + + .form-group + label(for="password-confirmation") Confirm Password + input.form-control(name="password-confirmation" ng-model="user.password_confirmation" type='password' required) + p.error(ng-bind="user.errors.password_confirmation[0]") + + .pull-right + button.btn.btn-lg.btn-primary(type='submit' ng-disabled="signingUp") + span(ng-hide="signingUp") Sign up + span(ng-show="signingup") Loading... + + nav + a(href="/#!/sign-in") Sign in + a(ng-click="connectWithFacebook()") Connect with Facebook diff --git a/sprangular/app/assets/templates/addresses/address.html.slim b/sprangular/app/assets/templates/addresses/address.html.slim new file mode 100644 index 00000000..dae2ef8f --- /dev/null +++ b/sprangular/app/assets/templates/addresses/address.html.slim @@ -0,0 +1,25 @@ +.address + dl.dl-horizontal + dt Name + dd(ng-bind='address.fullName()') + + dt Address + dd + | {{address.address1}} + br(ng-if='address.address2') + | {{address.address2}} + + dt City + dd(ng-bind='address.city') + + dt State/Province + dd(ng-bind='address.state.name') + + dt Country + dd(ng-bind='address.country.name') + + dt Zip Code + dd(ng-bind='address.zipcode') + + dt Phone + dd(ng-bind='address.phone') diff --git a/sprangular/app/assets/templates/addresses/form.html.slim b/sprangular/app/assets/templates/addresses/form.html.slim new file mode 100644 index 00000000..594295cb --- /dev/null +++ b/sprangular/app/assets/templates/addresses/form.html.slim @@ -0,0 +1,51 @@ +form.address(novalidate) + .row + .col-md-12 + p.error(ng-if='address.errors && address.errors != {}') Please correct the errors below: + + .row + .col-md-6 + .form-group(ng-class="{'has-error': address.errors.firstname}") + label.control-label(for='first-name') First Name + input.form-control(type='text' name='first-name' ng-model='address.firstname' autofocus) + p.error(ng-bind='address.errors.firstname') + + .col-md-6 + .form-group(ng-class="{'has-error': address.errors.lastname}") + label.control-label(for='last-name') Last Name + input.form-control(type='text' name='last-name' ng-model='address.lastname') + p.error(ng-bind='address.errors.lastname') + + .form-group(ng-class="{'has-error': address.errors.address1}") + label.control-label(for='street') Address + textarea.form-control(type='text' name='address' ng-model='address.address1' rows=2) + p.error(ng-bind='address.errors.address1') + + .form-group(ng-class="{'has-error': address.errors.city}") + label.control-label(for='city') City + input.form-control(type='text' name='city' ng-model='address.city') + p.error(ng-bind='address.errors.city') + + .row + .col-md-5 + .form-group(ng-class="{'has-error': address.errors.country}") + label.control-label(for='country') Country + select.form-control(name='country' ng-options='c.id as c.name for c in countries' ng-model='address.countryId') + p.error(ng-bind='address.errors.country') + + .col-md-5 + .form-group(ng-class="{'has-error': address.errors.state}") + label.control-label(for='state') State/Province + select.form-control(name='state' ng-options='s.id as s.name for s in selectedCountry.states' ng-model='address.stateId') + p.error(ng-bind='address.errors.state') + + .col-md-2 + .form-group(ng-class="{'has-error': address.errors.zipcode}") + label.control-label(for='zip') Zip + input.form-control(type='text' name='zip' ng-model='address.zipcode') + p.error(ng-bind='address.errors.zipcode') + + .form-group(ng-class="{'has-error': address.errors.phone}") + label.control-label(for='phone') Phone + input.form-control(type='tel' name='phone' ng-model='address.phone' placeholder='###-###-####') + p.error(ng-bind='address.errors.phone') diff --git a/sprangular/app/assets/templates/addresses/index.html.slim b/sprangular/app/assets/templates/addresses/index.html.slim new file mode 100644 index 00000000..8a588fd6 --- /dev/null +++ b/sprangular/app/assets/templates/addresses/index.html.slim @@ -0,0 +1,9 @@ +h2 Addresses + +#addresses + .not-found(ng-if='user.addresses.length == 0') + p No addresses on file + + .found(ng-repeat="address in user.addresses") + address-view(address='address') + hr diff --git a/sprangular/app/assets/templates/addresses/selection.html.slim b/sprangular/app/assets/templates/addresses/selection.html.slim new file mode 100644 index 00000000..fab1bae9 --- /dev/null +++ b/sprangular/app/assets/templates/addresses/selection.html.slim @@ -0,0 +1,12 @@ +section.address + section.existing-address(ng-show='existingAddress') + select(ng-options='addr as addr.shortAddress() for addr in addresses' ng-model='address') + + p + a.new-address(ng-click='toggleExistingAddress()') Use new address + + section.new-address(ng-hide='existingAddress') + address-form(address='address' countries='countries') + + p + a.existing-address(ng-if='addresses.length > 0' ng-click='toggleExistingAddress()') Use existing address diff --git a/sprangular/app/assets/templates/cart/cart.html.slim b/sprangular/app/assets/templates/cart/cart.html.slim new file mode 100644 index 00000000..aa9ee709 --- /dev/null +++ b/sprangular/app/assets/templates/cart/cart.html.slim @@ -0,0 +1,85 @@ +#cart-aside.aside(role="dialog" tabindex="-1" ng-controller='CartCtrl') + .aside-dialog + .aside-content + .aside-header + button.close(ng-click="$hide()" type="button") × + h4.aside-title + span.glyphicon.glyphicon-shopping-cart + |   + | My Cart + |   + span.badge(ng-bind='cart.totalQuantity()' ng-hide='isEmpty()') + .aside-body + .empty(ng-show="isEmpty()") + p Your cart is empty + a.btn.btn-lg.btn-primary(href="#!/products" ng-click="$hide()") Start Shopping + + .with-items(ng-hide="isEmpty()") + table.table.table-striped + tr + th(colspan=2 width="50%") Item + th(width="25%") Quantity + th Price + th + + tr.item(ng-repeat='item in cart.items') + td.image + a(href="#!/products/{{item.variant.product.slug}}") + img(ng-src="{{item.variant.image.miniUrl}}") + + td.name + p + a(href="#!/products/{{item.variant.product.slug}}") + | {{item.variant.product.name}} + + section.options(ng-show='item.variant.product.hasVariants') + variant-selection(product="item.variant.product" variant="item.variant" change="cart.changeVariant(oldVariant, newVariant)") + + td.quantity + quantity-input(quantity="item.quantity" change="cart.updateItemQuantity(item.variant.id, item.quantity)") + + td.price.number + span + | {{item.price * item.quantity | currency}} + + td.actions + a(ng-click="removeItem(item)") + span.glyphicon.glyphicon-remove + + tr.item-total + td(colspan=2) Sub-total + td.number(colspan=2 ng-bind='cart.itemTotal | currency') + td + + tr.adjustment(ng-repeat='adjustment in cart.adjustments') + td(colspan=2 ng-bind='adjustment.label') + td.number(colspan=2 ng-bind='adjustment.amount | currency') + + td + a.remove(ng-click='removeAdjustment(adjustment)' ng-if='adjustment.isPromo()') + span.glyphicon.glyphicon-remove + + tr.shipping + td(colspan=2) Shipping + td.number(colspan=2 ng-bind='cart.shipTotal | currency') + td + + tr.taxes + td(colspan=2) Taxes + td.number(colspan=2 ng-bind='cart.taxTotal | currency') + td + + tr.total + td(colspan=2) Total + td.number(colspan=2 ng-bind='cart.total | currency') + td + + .aside-footer.clearfix(ng-hide='isEmpty()') + .pull-left + a.btn.btn-link(ng-click="empty()") + | Empty cart + + promo-form(order='cart') + + .pull-right + checkout-button(user='user' ng-click='$hide()') diff --git a/sprangular/app/assets/templates/checkout/complete.html.slim b/sprangular/app/assets/templates/checkout/complete.html.slim new file mode 100644 index 00000000..e1ca3085 --- /dev/null +++ b/sprangular/app/assets/templates/checkout/complete.html.slim @@ -0,0 +1,19 @@ +#checkout-complete.container + .row + .col-lg-12 + h1 All done! + + p + | Your order \#{{order.number}} was successfully submitted, you should receive an email receipt shortly. + + pre + | {{ order.state }} + + section#share + p Share your order: + + p + a Facebook + + p + a Twitter diff --git a/sprangular/app/assets/templates/checkout/confirm.html.slim b/sprangular/app/assets/templates/checkout/confirm.html.slim new file mode 100644 index 00000000..301a0457 --- /dev/null +++ b/sprangular/app/assets/templates/checkout/confirm.html.slim @@ -0,0 +1,78 @@ +#checkout-confirm.container + .row + .col-md-6.col-md-offset-3.col-xs-12 + checkout-nav(step='confirm') + .row + .col-md-4.col-xs-4 + h1 Confirm + + .col-md-8.col-xs-8 + .clearfix + .pull-right + a.btn.btn-primary.btn-lg(ng-disabled='processing' ng-click="complete()") + span(ng-if='!processing') Place Order + span(ng-if='processing') + span.fa.fa-refresh.fa-spin + |   + span.caption Processing... + + .row + .col-lg-4.col-md-6.address.billing + h2(ng-hide='order.shipToBillAddress') Billing Address + h2(ng-show='order.shipToBillAddress') Billing & Shipping Address + + address-view(address='order.billingAddress') + + .col-lg-4.col-md-6.address.shipping(ng-hide='order.shipToBillAddress') + h2 Shipping Address + + address-view(address='order.actualShippingAddress()') + + .col-lg-4.col-md-6.payment + h2 Payment + + credit-card-view(card='order.creditCard') + + .row + .col-md-12 + h2 Summary + + table.table.table-striped + tr + th Name + th(width="15%") Quantity + th Price + + tr.item(ng-repeat='item in order.items') + td.name + | {{item.variant.product.name}} + span(ng-if='item.variant.product.hasVariants()') + |  {{item.variant.options_text}} + + td.quantity.number(ng-bind='item.quantity') + td.price.number(ng-bind='item.price * item.quantity | currency') + + tr.item-total + td Sub-total + td.number(colspan=2 ng-bind='order.itemTotal | currency') + + tr.shipping + td Shipping + td.number(colspan=2 ng-bind='order.shipTotal | currency') + + tr.taxes + td Taxes + td.number(colspan=2 ng-bind='order.taxTotal | currency') + + tr.total + td Total + td.number(colspan=2 ng-bind='order.total | currency') + + .row + .col-md-12 + a.btn.btn-primary.btn-lg.btn-block(ng-disabled='processing' ng-click="complete()") + span(ng-if='!processing') Place Order + span(ng-if='processing') + span.fa.fa-refresh.fa-spin + |   + span.caption Processing... diff --git a/sprangular/app/assets/templates/checkout/index.html.slim b/sprangular/app/assets/templates/checkout/index.html.slim new file mode 100644 index 00000000..94c941a7 --- /dev/null +++ b/sprangular/app/assets/templates/checkout/index.html.slim @@ -0,0 +1,78 @@ +#checkout-details.container + .row + .col-md-6.col-md-offset-3.col-xs-12 + checkout-nav(step='details') + .row + .col-md-12 + h1 Checkout + + p.secure(ng-if='secure') + span.fa.fa-lock(ng-if='secure') + |  Secure transaction + + .row + .col-md-8.col-xs-12 + section#billing-address + h2(ng-show='order.shipToBillAddress') Billing & Shipping Address + h2(ng-hide='order.shipToBillAddress') Billing Address + + address-selection(address='order.billingAddress' addresses='user.addresses' countries='countries') + + label + input(type='checkbox' ng-model='order.shipToBillAddress') + |  Ship to billing address + + section#shipping-address(ng-hide='order.shipToBillAddress') + h2 Shipping Address + + address-selection(address='order.shippingAddress' addresses='user.addresses' countries='countries') + + section#delivery + h2 Delivery Options + + shipping-rate-selection(order='order') + + section#credit-card + h2 Credit Card + + credit-card-selection(credit-card='order.creditCard' credit-cards='user.creditCards') + + button.btn.btn-primary.btn-block.btn-lg(ng-click='submit()' ng-disabled='processing') + span(ng-if='!processing') + span.caption Confirm + |   + span.glyphicon.glyphicon-chevron-right + span(ng-if='processing') + span.fa.fa-refresh.fa-spin + |   + span.caption Loading... + + .col-md-4.hidden-xs + .well + h2 Summary + + dl.dl-horizontal + dt Sub-total + dd + | {{order.itemTotal | currency}} + + dt(ng-repeat-start="adjustment in order.adjustments") + a.remove(ng-click='removeAdjustment(adjustment)' ng-if='adjustment.isPromo()') + span.glyphicon.glyphicon-remove + | {{adjustment.label}} + dd(ng-repeat-end) + | {{adjustment.amount | currency}} + + dt Shipping + dd + | {{order.shipTotal | currency}} + + dt Tax + dd + | {{order.taxTotal | currency}} + + dt Total + dd + | {{order.total | currency}} + + promo-form(order='order') diff --git a/sprangular/app/assets/templates/checkout/nav.html.slim b/sprangular/app/assets/templates/checkout/nav.html.slim new file mode 100644 index 00000000..19ef4050 --- /dev/null +++ b/sprangular/app/assets/templates/checkout/nav.html.slim @@ -0,0 +1,12 @@ +.checkout-nav + .stripe + nav(class="{{step}}") + a.details(href="#!/checkout") + span.number 1 + span.caption Details + a.confirm(href="#!/checkout/confirm") + span.number 2 + span.caption Confirm + a.done + span.number 3 + span.caption Done diff --git a/sprangular/app/assets/templates/credit_cards/credit_card.html.slim b/sprangular/app/assets/templates/credit_cards/credit_card.html.slim new file mode 100644 index 00000000..babdc392 --- /dev/null +++ b/sprangular/app/assets/templates/credit_cards/credit_card.html.slim @@ -0,0 +1,19 @@ +.card + .col-md-4.col-xs-3 + i.fa.fa-5x.fa-credit-card(ng-show="!card.type") + i.fa.fa-5x.fa-cc-visa(ng-show="card.type == 'visa'") + i.fa.fa-5x.fa-cc-mastercard(ng-show="card.type == 'master'") + i.fa.fa-5x.fa-cc-amex(ng-show="card.type == 'amex'") + i.fa.fa-5x.fa-cc-discover(ng-show="card.type == 'discover'") + + .col-md-8.col-xs-9 + dl.dl-horizontal + dt Number + dd + | •••• •••• •••• {{card.lastDigits}} + + dt Expiration + dd + | {{card.month}} / {{card.year}} + + a.btn.btn-mini.btn-primary(ng-if='allowDelete' ng-click="delete()" ng-confirm-click="Are you sure?") Delete diff --git a/sprangular/app/assets/templates/credit_cards/form.html.slim b/sprangular/app/assets/templates/credit_cards/form.html.slim new file mode 100644 index 00000000..bf65ab93 --- /dev/null +++ b/sprangular/app/assets/templates/credit_cards/form.html.slim @@ -0,0 +1,33 @@ +form.credit-card(novalidate) + .form-group(ng-class="{'has-error': creditCard.errors.number}") + label(for='number') Number + .input-group + input.form-control(type='text' name='number' ng-model='creditCard.number') + .input-group-addon + i.fa.fa-credit-card(ng-show="!creditCard.type") + i.fa.fa-cc-visa(ng-show="creditCard.type == 'visa'") + i.fa.fa-cc-mastercard(ng-show="creditCard.type == 'master'") + i.fa.fa-cc-amex(ng-show="creditCard.type == 'amex'") + i.fa.fa-cc-discover(ng-show="creditCard.type == 'discover'") + + p.error(ng-bind='creditCard.errors.number') + + .row + .col-md-4 + .form-group(ng-class="{'has-error': creditCard.errors.month}") + label.control-label.control-label(for='month') Month + select.form-control(name='month' ng-options='m.index as (m.index + " - " + m.name) for m in months' ng-model='creditCard.month') + p.error(ng-bind='creditCard.errors.month') + + .col-md-4 + .form-group(ng-class="{'has-error': creditCard.errors.year}") + label.control-label(for='year') Year + select.form-control(name='year' ng-options='year for year in years' ng-model='creditCard.year') + p.error(ng-bind='creditCard.errors.year') + + .col-md-4 + .form-group(ng-class="{'has-error': creditCard.errors.cvc}") + label.control-label(for='cvc') + | Verification Code what's this? + input.form-control(type='number' name='cvc' min=1 max=9999 ng-model='creditCard.cvc') + p.error(ng-bind='creditCard.errors.cvc') diff --git a/sprangular/app/assets/templates/credit_cards/index.html.slim b/sprangular/app/assets/templates/credit_cards/index.html.slim new file mode 100644 index 00000000..9458ba71 --- /dev/null +++ b/sprangular/app/assets/templates/credit_cards/index.html.slim @@ -0,0 +1,8 @@ +h2 Credit Cards + +#credit-cards + .not-found(ng-if='creditCards.length == 0') + p No credits cards on file + + .found(ng-repeat="card in creditCards") + credit-card-view(card='card' allow-delete) diff --git a/sprangular/app/assets/templates/credit_cards/selection.html.slim b/sprangular/app/assets/templates/credit_cards/selection.html.slim new file mode 100644 index 00000000..13b31356 --- /dev/null +++ b/sprangular/app/assets/templates/credit_cards/selection.html.slim @@ -0,0 +1,12 @@ +section.credit-card + section.existing-credit-card(ng-show='existingCreditCard') + select(ng-options='cc as cc.label() for cc in creditCards' ng-model='creditCard') + + p + a.new-credit-card(ng-click='toggleExistingCreditCard()') Use new card + + section.new-credit-card(ng-hide='existingCreditCard') + credit-card-form(credit-card='creditCard' countries='countries') + + p + a.existing-credit-card(ng-if='creditCards.length > 0' ng-click='toggleExistingCreditCard()') Use existing card diff --git a/sprangular/app/assets/templates/directives/add_to_cart_button.html.slim b/sprangular/app/assets/templates/directives/add_to_cart_button.html.slim new file mode 100644 index 00000000..efa81f17 --- /dev/null +++ b/sprangular/app/assets/templates/directives/add_to_cart_button.html.slim @@ -0,0 +1,18 @@ +a.btn.add-to-cart(ng-click="addToCart()" ng-class="class" ng-disabled="adding || !variant") + span(ng-show="adding") + i.fa.fa-refresh.fa-spin + |  Adding ... + + span(ng-hide="adding") + span(ng-hide='variant || !product.hasVariants') + | Select option + + span(ng-show='variant || !product.hasVariants') + span.fa.fa-plus-circle + |   + span.caption + span(ng-hide="inCart()") Add to cart + span(ng-show="inCart() && quantity <= 1") Add another + span(ng-show="inCart() && quantity > 1") Add {{quantity}} more + span.price + | {{(variant || product).price * quantity | number: 0 | currency}} diff --git a/sprangular/app/assets/templates/directives/checkout_button.html.slim b/sprangular/app/assets/templates/directives/checkout_button.html.slim new file mode 100644 index 00000000..d12f8884 --- /dev/null +++ b/sprangular/app/assets/templates/directives/checkout_button.html.slim @@ -0,0 +1,24 @@ +.checkout-button + .standard + a.btn.btn-success.btn-lg.btn-block(ng-if='!allowOneClick' ng-click='standardCheckout()' ng-disabled='processing') + span(ng-hide="processing") + | Checkout + span.glyphicon.glyphicon-chevron-right + + span(ng-show="processing") + i.fa.fa-refresh.fa-spin + |  Processing ... + + .one-click(ng-if='allowOneClick') + a.btn.btn-success.btn-lg.btn-block(ng-click='oneClickCheckout()' ng-disabled='processing') + span(ng-hide="processing") + | 1-Click Checkout + span.glyphicon.glyphicon-chevron-right + + span(ng-show="processing") + i.fa.fa-refresh.fa-spin + |  Preparing ... + + a.btn.btn-link(ng-click='standardCheckout()') + | Standard Checkout + span.glyphicon.glyphicon-chevron-right diff --git a/sprangular/app/assets/templates/directives/quantity_input.html.slim b/sprangular/app/assets/templates/directives/quantity_input.html.slim new file mode 100644 index 00000000..044da2d8 --- /dev/null +++ b/sprangular/app/assets/templates/directives/quantity_input.html.slim @@ -0,0 +1,11 @@ +.quantity-input + .input-group + .input-group-btn + a.btn.btn-default.minus(ng-click="update(-1)" ng-disabled='quantity <= 1') + span.glyphicon.glyphicon-minus + + input.form-control(name="qty" type="number" min="1" max="999" maxlength="3" ng-model="quantity" value="{{quantity}}") + + .input-group-btn + a.btn.btn-default.plus(ng-click="update(1)") + span.glyphicon.glyphicon-plus diff --git a/sprangular/app/assets/templates/directives/variant_selection.html.slim b/sprangular/app/assets/templates/directives/variant_selection.html.slim new file mode 100644 index 00000000..735c33d9 --- /dev/null +++ b/sprangular/app/assets/templates/directives/variant_selection.html.slim @@ -0,0 +1,11 @@ +.option.row(ng-repeat="option in product.options" class="{{option.type.name}}") + .col-lg-12 + .values.btn-group(ng-class="class") + button.btn.btn-default.option-title(disabled) + b(ng-bind='option.type.presentation') + + button.btn.btn-default(ng-repeat="item in option.values" + ng-class="{'btn-success': isValueSelected(item.value)}" + ng-disabled="!isValueAvailable(item.value)" + ng-click="selectValue(item.value)" + ng-bind="item.value.presentation") diff --git a/sprangular/app/assets/templates/home/index.html.slim b/sprangular/app/assets/templates/home/index.html.slim new file mode 100644 index 00000000..b0c9af19 --- /dev/null +++ b/sprangular/app/assets/templates/home/index.html.slim @@ -0,0 +1,5 @@ +ng-include src="'home/jumbotron.html'" + +div(ng-include="'products/list.html'" + infinite-scroll='loadNextPage()' + infinite-scroll-disabled='loadingComplete || fetching') diff --git a/sprangular/app/assets/templates/home/jumbotron.html.slim b/sprangular/app/assets/templates/home/jumbotron.html.slim new file mode 100644 index 00000000..18f13484 --- /dev/null +++ b/sprangular/app/assets/templates/home/jumbotron.html.slim @@ -0,0 +1,13 @@ +.jumbotron + .container + h2 Welcome to DalianShops! + p Spree + Angular.js + Bootstrap + p + | To override this template, add  + code app/assets/templates/home/jumbotron.html.slim + |  to your project. + + .pull-right + a.btn.btn-primary.btn-lg(href="http://www.dalianshops.com") + | Learn More + span.glyphicon.glyphicon-chevron-right diff --git a/sprangular/app/assets/templates/layout/flash.html.slim b/sprangular/app/assets/templates/layout/flash.html.slim new file mode 100644 index 00000000..92602b50 --- /dev/null +++ b/sprangular/app/assets/templates/layout/flash.html.slim @@ -0,0 +1,6 @@ +#flash-messages.container + .message.row(ng-repeat="message in flash.messages") + .col-lg-8.col-lg-offset-2.col-sm-10.col-sm-offset-1.col-xs-10.col-xs-offset-1.alert(class="alert-{{message.type}}" role="alert") + button.close(data-dismiss="alert") × + + span.text(ng-bind="message.text") diff --git a/sprangular/app/assets/templates/layout/footer.html.slim b/sprangular/app/assets/templates/layout/footer.html.slim new file mode 100644 index 00000000..7f0570c9 --- /dev/null +++ b/sprangular/app/assets/templates/layout/footer.html.slim @@ -0,0 +1,21 @@ +footer.container-fluid(ng-controller="FooterCtrl") + .row + .col-lg-2 + small + | Powered by  + a(href="https://github.com/DynamoMTL/sprangular") Sprangular + + .col-lg-4 + ng-include(src="'layout/subscribe.html'") + + .col-lg-6.clearfix + a.dynamo(href="http://godynamo.com/") + .level1 + span.d D + span.y Y + span.n N + .level2 + span.a A + span.m M + .level3 + span.o O diff --git a/sprangular/app/assets/templates/layout/footer_abc.html.slim b/sprangular/app/assets/templates/layout/footer_abc.html.slim new file mode 100644 index 00000000..0fa07e6a --- /dev/null +++ b/sprangular/app/assets/templates/layout/footer_abc.html.slim @@ -0,0 +1,7 @@ +footer.container-fluid(ng-controller="FooterCtrl") + .row + .col + small + | Powered by  + a(href="http://www.dalianshops.com") DalianShops + diff --git a/sprangular/app/assets/templates/layout/header.html.slim b/sprangular/app/assets/templates/layout/header.html.slim new file mode 100644 index 00000000..8f34c73b --- /dev/null +++ b/sprangular/app/assets/templates/layout/header.html.slim @@ -0,0 +1,21 @@ +header(ng-controller="HeaderCtrl") + nav.navbar.navbar-default.navbar-fixed-top(role="navigation") + .container-fluid + .navbar-header + button.navbar-toggle(type="button" data-toggle="collapse" data-target="#navbar-collapse-1") + span.sr-only Toggle navigation + span.icon-bar + span.icon-bar + span.icon-bar + + a.cart-link.visible-xs(bs-aside data-template='cart/cart.html' data-container='body' data-placement='right' data-animation='am-slide-right') + span.glyphicon.glyphicon-shopping-cart + span.cart-qty.badge(ng-bind="cart.totalQuantity()" ng-show="cart.totalQuantity() > 0") + + a.navbar-brand(href="/#!/") + img(ng-src="{{env.config.logo}}") + + #navbar-collapse-1.collapse.navbar-collapse + ng-include(src="'layout/navbar_links.html'") + ng-include(src="'layout/navbar_search.html'") + ng-include(src="'layout/navbar_right.html'") diff --git a/sprangular/app/assets/templates/layout/initializing.html.slim b/sprangular/app/assets/templates/layout/initializing.html.slim new file mode 100644 index 00000000..af49c9a8 --- /dev/null +++ b/sprangular/app/assets/templates/layout/initializing.html.slim @@ -0,0 +1,2 @@ +img(ng-src="{{env.config.logo}}") +p Initializing... diff --git a/sprangular/app/assets/templates/layout/loading.html.slim b/sprangular/app/assets/templates/layout/loading.html.slim new file mode 100644 index 00000000..30a30b67 --- /dev/null +++ b/sprangular/app/assets/templates/layout/loading.html.slim @@ -0,0 +1,2 @@ +#loading + span.fa.fa-5x.fa-circle-o-notch.fa-spin diff --git a/sprangular/app/assets/templates/layout/navbar_links.html.slim b/sprangular/app/assets/templates/layout/navbar_links.html.slim new file mode 100644 index 00000000..a9686e11 --- /dev/null +++ b/sprangular/app/assets/templates/layout/navbar_links.html.slim @@ -0,0 +1,19 @@ +ul.nav.navbar-nav + li.dropdown + a(data-toggle="dropdown") + | Shop + |   + span.caret + + ul.dropdown-menu + li.dropdown-header(ng-repeat-start="taxonomy in taxonomies") + | {{taxonomy.name}} + + li(ng-repeat="taxon in taxonomy.root.taxons") + a(href="/#!/t/{{taxon.permalink}}") + | {{taxon.name}} + + li.divider(ng-repeat-end) + + li + a(href="/#!/products") All Products diff --git a/sprangular/app/assets/templates/layout/navbar_right.html.slim b/sprangular/app/assets/templates/layout/navbar_right.html.slim new file mode 100644 index 00000000..f6588dc8 --- /dev/null +++ b/sprangular/app/assets/templates/layout/navbar_right.html.slim @@ -0,0 +1,14 @@ +ul.nav.navbar-nav.navbar-right + li.my-account + a(ng-click="goToMyAccount()") My Account + + li.log-out(ng-show="account.isLogged") + a(ng-click="logout()") Log out + + li.sign-in(ng-hide="account.isLogged") + a(ng-click="login()") Sign in + + li.cart.hidden-xs + a.cart-link(bs-aside data-template='cart/cart.html' data-container='body' data-placement='right' data-animation='am-slide-right') + span.glyphicon.glyphicon-shopping-cart + span.cart-qty.badge(ng-bind="cart.totalQuantity()" ng-show="cart.totalQuantity() > 0") diff --git a/sprangular/app/assets/templates/layout/navbar_search.html.slim b/sprangular/app/assets/templates/layout/navbar_search.html.slim new file mode 100644 index 00000000..9544a624 --- /dev/null +++ b/sprangular/app/assets/templates/layout/navbar_search.html.slim @@ -0,0 +1,9 @@ +.col-sm-3.col-md-3.hidden-xs + form.navbar-form(role="search" ng-submit="doSearch()") + .input-group + input.form-control(type="text" placeholder="Search" ng-model="search.text" autofocus bs-typeahead + data-delay="500" data-min-length="3" data-template="products/typeahead.html" + ng-options="product.name as product.name for product in getProducts($viewValue)") + + .input-group-addon + span.glyphicon.glyphicon-search(ng-click="doSearch()") diff --git a/sprangular/app/assets/templates/layout/subscribe.html.slim b/sprangular/app/assets/templates/layout/subscribe.html.slim new file mode 100644 index 00000000..3fdeb2af --- /dev/null +++ b/sprangular/app/assets/templates/layout/subscribe.html.slim @@ -0,0 +1,13 @@ +section#subscribe(ng-controller='SubscriptionCtrl') + form.inline-form(name='subscriptionForm' ng-submit='subscribe()' novalidate) + .form-group + .input-group + input.form-control(name='email' type='email' placeholder='Receive our newsletter' ng-model='email') + + .input-group-addon(ng-click='subscribe()') + span.glyphicon.glyphicon-chevron-right + + p.status + span.error(ng-show='error') Sorry, there was a problem subscribing. Try again? + span.subscribing(ng-show='subscribing') Subscribing... + span.done(ng-show='done') Thank you for subscribing to our newsletter. diff --git a/sprangular/app/assets/templates/orders/index.html.slim b/sprangular/app/assets/templates/orders/index.html.slim new file mode 100644 index 00000000..f8213e86 --- /dev/null +++ b/sprangular/app/assets/templates/orders/index.html.slim @@ -0,0 +1,31 @@ +h2 Order History + +#order-history + .not-found(ng-if='user.orders.length == 0') + p No orders on file + + .order(ng-repeat="order in user.orders") + dl + dt Number + dd + | {{order.number}} + + dt Status + dd + | {{order.state}} + + dt Ordered on + dd + | {{order.completed_at | date}} + + dt Amount + dd + | {{order.total | currency}} + + dt Shipment Status + dd + | {{order.shipment_state}} + + a.btn.btn-primary.btn-small ng-click="showOrderDetails(order)" See details + + hr diff --git a/sprangular/app/assets/templates/products/gallery.html.slim b/sprangular/app/assets/templates/products/gallery.html.slim new file mode 100644 index 00000000..fca9a7b2 --- /dev/null +++ b/sprangular/app/assets/templates/products/gallery.html.slim @@ -0,0 +1,7 @@ +section.image.row + .col-sm-12.col-xs-12 + img.img-responsive(ng-src="{{selected.image.largeUrl}}") + +section.thumbs.row.no-padding(ng-show="selected.images.length > 1") + .col-sm-3.col-xs-4(ng-repeat='image in selected.images' ng-click="changeImage(image)") + img.img-thumbnail.img-responsive(ng-src="{{image.productUrl}}") diff --git a/sprangular/app/assets/templates/products/index.html.slim b/sprangular/app/assets/templates/products/index.html.slim new file mode 100644 index 00000000..e7fce9fd --- /dev/null +++ b/sprangular/app/assets/templates/products/index.html.slim @@ -0,0 +1,6 @@ +h1(ng-bind="pageTitle") +div(ng-bind-html="taxon.description") + +div(ng-include="'products/list.html'" + infinite-scroll='loadNextPage()' + infinite-scroll-disabled='loadingComplete || fetching') diff --git a/sprangular/app/assets/templates/products/list.html.slim b/sprangular/app/assets/templates/products/list.html.slim new file mode 100644 index 00000000..7fcd0ba9 --- /dev/null +++ b/sprangular/app/assets/templates/products/list.html.slim @@ -0,0 +1,28 @@ +.product-listing + .product.col-lg-3.col-sm-6.col-xs-12(ng-repeat='product in products' ng-class-odd="'odd'" ng-class-even="'even'" ng-class="{'sold-out': !product.isAvailable()}") + .col-lg-12 + h2.title + a(ng-href='{{product.permalink}}' ng-bind="product.name") + + .with-variants(ng-show="product.hasVariants") + variant-selection(product="product" variant="selectedVariants[product.id]" class="{'btn-group-xs': true}") + + p.sold-out(ng-if="selectedVariants[product.id] && !selectedVariants[product.id].isAvailable()") Sold out + + add-to-cart-button(ng-if="!selectedVariants[product.id] || selectedVariants[product.id].isAvailable()" + product="product" + variant="selectedVariants[product.id]" + quantity=1 + class="{'btn-primary': true}") + + .without-variants(ng-hide="product.hasVariants") + p.sold-out(ng-if="!product.isAvailable()") Sold out + + add-to-cart-button(ng-if="product.isAvailable()" + product="product" + variant="product.master" + quantity=1 + class="{'btn-primary': true}") + + a(ng-href='{{product.permalink}}') + img.img-responsive.full(ng-src="{{product.image.largeUrl}}") diff --git a/sprangular/app/assets/templates/products/properties.html.slim b/sprangular/app/assets/templates/products/properties.html.slim new file mode 100644 index 00000000..2a266cb0 --- /dev/null +++ b/sprangular/app/assets/templates/products/properties.html.slim @@ -0,0 +1,9 @@ +section.properties.row(ng-show="product.product_properties.length > 0") + .col-md-12 + .panel.panel-default + .panel-heading Specifications + + .panel-body + dl.dl-horizontal + dt(ng-repeat-start="property in product.product_properties" ng-bind="property.property_name") + dd(ng-repeat-end ng-bind="property.value") diff --git a/sprangular/app/assets/templates/products/show.html.slim b/sprangular/app/assets/templates/products/show.html.slim new file mode 100644 index 00000000..baf8af13 --- /dev/null +++ b/sprangular/app/assets/templates/products/show.html.slim @@ -0,0 +1,36 @@ +#product-details.container(ng-class="{'sold-out': !product.isAvailable() }") + .row + .col-sm-6.col-xs-12 + section.gallery + ng-include(src="'products/gallery.html'") + + .col-sm-6.col-xs-12 + section.details + h1(ng-bind="product.name") + + p.desc(ng-bind-html="product.description") + + section.options(ng-show='product.hasVariants') + variant-selection(product="product" variant="selected.variant" class="{'btn-group-lg': true}") + + section.add.row + .col-sm-4 + quantity-input(quantity="selected.quantity" ng-if='!selected.variant || selected.variant.isAvailable()') + .col-sm-8 + p.sold-out(ng-if="selected.variant && !selected.variant.isAvailable()") + span.fa.fa-exclamation-triangle + |  This item is sold out + + add-to-cart-button(ng-if="selected.variant.isAvailable() || product.master.isAvailable()" + product="product" + variant="selected.variant" + quantity="selected.quantity" + class="{'btn-lg': true, 'btn-block': true, 'btn-primary': !hasVariant(), 'btn-default': hasVariant()}") + + section.in-cart.row(ng-show='hasVariant()') + .col-md-12 + p Item was added to your cart + + checkout-button(user='user') + + ng-include(src="'products/properties.html'") diff --git a/sprangular/app/assets/templates/products/typeahead.html.slim b/sprangular/app/assets/templates/products/typeahead.html.slim new file mode 100644 index 00000000..16399f46 --- /dev/null +++ b/sprangular/app/assets/templates/products/typeahead.html.slim @@ -0,0 +1,7 @@ +ul#product-typeahead(tabindex="-1" class="typeahead dropdown-menu" ng-show="$isVisible()" role="select") + li(role="presentation" ng-repeat="match in $matches" ng-class="{active: $index == $activeIndex}") + a.clearfix(role="menuitem" tabindex="-1" ng-click="$select($index, $event)") + .pull-left + img(ng-src="{{match.value.image.miniUrl}}") + + span(ng-bind='match.label') diff --git a/sprangular/app/assets/templates/promos/form.html.slim b/sprangular/app/assets/templates/promos/form.html.slim new file mode 100644 index 00000000..70316648 --- /dev/null +++ b/sprangular/app/assets/templates/promos/form.html.slim @@ -0,0 +1,13 @@ +section#promo-selection + .add(ng-show='!showPromoEntry') + a(ng-click='showPromoEntry = true') Add a coupon + + section#promo-entry(ng-show='showPromoEntry') + form.form-inline(role='form' ng-submit='save()') + .form-group + label.control-label(for='promo-code') Code + input.form-control(name='promo-code' ng-model='promoCode') + + button.btn.btn-primary(type='submit') Save + + p.error(ng-bind='error' ng-show='error') diff --git a/sprangular/app/assets/templates/shipping/rates.html.slim b/sprangular/app/assets/templates/shipping/rates.html.slim new file mode 100644 index 00000000..a7da2317 --- /dev/null +++ b/sprangular/app/assets/templates/shipping/rates.html.slim @@ -0,0 +1,15 @@ +.shipping-rates + p(ng-if='loading') + span.fa.fa-refresh.fa-spin + |   + | Refreshing rates... + + div(ng-if='!loading') + p.not-found(ng-if='rates.length == 0') Shipping not available to {{order.actualShippingAddress().country.name}} + + ul.list-unstyled + li(ng-repeat='shippingRate in rates') + label + input(type='radio' ng-model='order.shippingMethodId' ng-value='shippingRate.shippingMethodId') + span + |  {{shippingRate.name}} {{shippingRate.cost | currency}} diff --git a/sprangular/app/controllers/concerns/sprangular/csrf.rb b/sprangular/app/controllers/concerns/sprangular/csrf.rb new file mode 100644 index 00000000..322746a4 --- /dev/null +++ b/sprangular/app/controllers/concerns/sprangular/csrf.rb @@ -0,0 +1,20 @@ +module Sprangular::Csrf + extend ActiveSupport::Concern + + included do + protect_from_forgery + + after_filter :set_csrf_cookie + end + +protected + + def set_csrf_cookie + cookies['XSRF-TOKEN'] = form_authenticity_token if protect_against_forgery? + end + + def verified_request? + super || form_authenticity_token == request.headers['X-XSRF-TOKEN'] + end + +end diff --git a/sprangular/app/controllers/sprangular/accounts_controller.rb b/sprangular/app/controllers/sprangular/accounts_controller.rb new file mode 100644 index 00000000..aa771821 --- /dev/null +++ b/sprangular/app/controllers/sprangular/accounts_controller.rb @@ -0,0 +1,29 @@ +class Sprangular::AccountsController < Sprangular::BaseController + before_filter :check_authorization, except: :create + + def create + user = Spree::User.new spree_user_params + if user.save + sign_in :spree_user, user + end + + respond_with user + end + + def show + authorize! :show, @user + end + + def update + authorize! :update, @user + @user.update_attributes spree_user_params + + respond_with @user + end + +private + + def spree_user_params + params.require(:spree_user).permit(Spree::PermittedAttributes.user_attributes) + end +end diff --git a/sprangular/app/controllers/sprangular/application_controller.rb b/sprangular/app/controllers/sprangular/application_controller.rb new file mode 100644 index 00000000..7014e840 --- /dev/null +++ b/sprangular/app/controllers/sprangular/application_controller.rb @@ -0,0 +1,4 @@ +module Sprangular + class ApplicationController < ActionController::Base + end +end diff --git a/sprangular/app/controllers/sprangular/base_controller.rb b/sprangular/app/controllers/sprangular/base_controller.rb new file mode 100644 index 00000000..afef6dee --- /dev/null +++ b/sprangular/app/controllers/sprangular/base_controller.rb @@ -0,0 +1,48 @@ +class Sprangular::BaseController < Spree::BaseController + include Spree::Core::ControllerHelpers::Order + include Sprangular::Csrf + + rescue_from ActiveRecord::RecordNotFound, with: :not_found + + respond_to :json + + layout false + + helper Spree::Api::ApiHelpers + + before_action :load_user_roles + + def invalid_resource!(resource) + @resource = resource + render "sprangular/errors/invalid", status: 422 + end + + def unauthorized + render "sprangular/errors/unauthorized", status: 401 + end + + def not_found + render "sprangular/errors/not_found", status: 404 + end + +protected + + def check_authorization + @user = current_spree_user + + unauthorized unless @user + end + + def current_currency + Spree::Config[:currency] + end + helper_method :current_currency + + def load_user_roles + @current_user_roles = if @current_spree_user + @current_spree_user.spree_roles.pluck(:name) + else + [] + end + end +end diff --git a/sprangular/app/controllers/sprangular/carts_controller.rb b/sprangular/app/controllers/sprangular/carts_controller.rb new file mode 100644 index 00000000..ccc09b40 --- /dev/null +++ b/sprangular/app/controllers/sprangular/carts_controller.rb @@ -0,0 +1,83 @@ +class Sprangular::CartsController < Sprangular::BaseController + + def show + @order = current_order + if @order + render 'spree/api/orders/show' + else + not_found + end + end + + # Adds a new item to the order (creating a new order if none already exists) + def add_variant + populator = Spree::OrderPopulator.new(current_order(create_order_if_necessary: true), current_currency) + if populator.populate(variants: { params[:variant_id]=> params[:quantity]}, ad_hoc_option_value_ids: [],product_customizations: [] ) + current_order.ensure_updated_shipments + @order = current_order + render 'spree/api/orders/show' + else + invalid_resource!(populator) + end + end + + def update_variant + variant_id = params[:variant_id].to_i + + @order = current_order(create_order_if_necessary: true) + + line_item = @order.line_items.detect { |li| li.variant_id == variant_id } + data = { + variant_id: variant_id, + quantity: params[:quantity] + } + data.merge!(id: line_item.id) if line_item + @order.contents.update_cart(line_items_attributes: { '0' => data }) + + render 'spree/api/orders/show' + end + + def change_variant + old_variant_id = params[:old_variant_id].to_i + new_variant_id = params[:new_variant_id].to_i + + @order = current_order(create_order_if_necessary: true) + + existing = @order.line_items.detect { |li| li.variant_id == new_variant_id } + old = @order.line_items.detect { |li| li.variant_id == old_variant_id } + + if existing + existing.update(variant_id: new_variant_id, quantity: existing.quantity + old.quantity) + old.destroy + else + old.update(variant_id: new_variant_id) + end + + @order.reload + + render 'spree/api/orders/show' + end + + def remove_adjustment + @order = current_order(create_order_if_necessary: true) + adjustment = @order.adjustments.where(id: params[:adjustment_id]).first! + promotion = @order.promotions.where('spree_promotions.id' => adjustment.source.promotion_id).first! + @order.promotions.delete(promotion) + adjustment.destroy + + @order.update_totals + + render 'spree/api/orders/show' + end + + def destroy + if @order = current_order + @order.empty! + @order.state ='cart' + @order.save! + render 'spree/api/orders/show' + else + not_found + end + end +end diff --git a/sprangular/app/controllers/sprangular/countries_controller.rb b/sprangular/app/controllers/sprangular/countries_controller.rb new file mode 100644 index 00000000..b129626e --- /dev/null +++ b/sprangular/app/controllers/sprangular/countries_controller.rb @@ -0,0 +1,7 @@ +class Sprangular::CountriesController < Sprangular::BaseController + def index + @countries = Spree::Country + .includes(:states) + .order(:name) + end +end diff --git a/sprangular/app/controllers/sprangular/credit_cards_controller.rb b/sprangular/app/controllers/sprangular/credit_cards_controller.rb new file mode 100644 index 00000000..72d22450 --- /dev/null +++ b/sprangular/app/controllers/sprangular/credit_cards_controller.rb @@ -0,0 +1,12 @@ +class Sprangular::CreditCardsController < Sprangular::BaseController + before_filter :check_authorization + + def destroy + authorize! :update, @user + + credit_card = @user.credit_cards.find params[:id] + @user.drop_payment_source(credit_card) if credit_card + + respond_with credit_card + end +end diff --git a/sprangular/app/controllers/sprangular/facebook_controller.rb b/sprangular/app/controllers/sprangular/facebook_controller.rb new file mode 100644 index 00000000..bdf7ed48 --- /dev/null +++ b/sprangular/app/controllers/sprangular/facebook_controller.rb @@ -0,0 +1,45 @@ +class Sprangular::FacebookController < Sprangular::BaseController + + def fetch + access_token = params['accessToken'] + supplied_email = params['email'] + + fb_user = FbGraph::User.me(access_token).fetch + + if fb_user + # valid token + user_authentication = Spree::UserAuthentication.find_or_create_by(uid: fb_user.identifier, provider: 'facebook') + + if user_authentication && user_authentication.user + sign_in :spree_user, user_authentication.user + render json: user_authentication.user + else + email = fb_user.email + email ||= supplied_email + if email.present? + user_authentication = Spree::UserAuthentication.find_or_create_by(uid: fb_user.identifier, provider: 'facebook') + if user_authentication.user.blank? + user = Spree::User.find_by_email email + if user.blank? + password = SecureRandom.hex(16) + user = Spree::User.create! email: email, password: password, password_confirmation: password + end + user_authentication.update_attribute(:user_id, user.id) + end + sign_in :spree_user, user_authentication.user + render json: user_authentication.user + else + error = 'no email provided by facebook' + render json: error.to_json, status: 404 + end + end + else + error = 'no facebook user' + render json: error.to_json, status: 403 + end + + rescue => ex + render json: ex.message.to_json, status: 422 + end + +end diff --git a/sprangular/app/controllers/sprangular/home_controller.rb b/sprangular/app/controllers/sprangular/home_controller.rb new file mode 100644 index 00000000..26e73ad2 --- /dev/null +++ b/sprangular/app/controllers/sprangular/home_controller.rb @@ -0,0 +1,4 @@ +class Sprangular::HomeController < Sprangular::ApplicationController + def index + end +end diff --git a/sprangular/app/controllers/sprangular/passwords_controller.rb b/sprangular/app/controllers/sprangular/passwords_controller.rb new file mode 100644 index 00000000..472aeaa6 --- /dev/null +++ b/sprangular/app/controllers/sprangular/passwords_controller.rb @@ -0,0 +1,35 @@ +class Sprangular::PasswordsController < Sprangular::BaseController + + def create + user = Spree::User.find_or_initialize_by(email: params[:spree_user][:email]) + + if user.persisted? + raw, enc = Devise.token_generator.generate(Spree::User, :reset_password_token) + + user.reset_password_token = enc + user.reset_password_sent_at = Time.now.utc + user.save(validate: false) + + reset_url = main_app.root_url+"#!/reset-password/#{raw}" # main_app.store_password_url(id: raw) + UserMailer.reset_password_instructions(user, reset_url).deliver + else + user.errors[:email] = 'Email address not found' + end + + respond_with user + end + + def update + if params[:spree_user][:password].blank? + user = Spree::User.new + user.errors[:password] = "Cannot be blank" + else + user = Spree::User.reset_password_by_token(params[:spree_user]) + if user.errors.empty? + sign_in :spree_user, user + end + end + + respond_with user + end +end diff --git a/sprangular/app/controllers/sprangular/products_controller.rb b/sprangular/app/controllers/sprangular/products_controller.rb new file mode 100644 index 00000000..fc15acb4 --- /dev/null +++ b/sprangular/app/controllers/sprangular/products_controller.rb @@ -0,0 +1,23 @@ +class Sprangular::ProductsController < Sprangular::BaseController + + def index + product_ids = template_scoped_product_ids + @products = Spree::Product.active.includes(:option_types, :taxons, master: [:images, :option_values, :prices], product_properties: [:property], variants: [:images, :option_values, :prices]) + @products = @products.where( id: product_ids) if product_ids + @products = @products.ransack(params[:q]).result if params[:q] + @products = @products.distinct.page(params[:page]).per(params[:per_page]) + + render 'spree/api/products/index' + end + + def show + @product = Spree::Product.active.where(slug: params[:id]).first! + + render 'spree/api/products/show' + end + + # for design site, show products belongs to current template_theme + def template_scoped_product_ids + Spree::Site.current.try(:template_theme).try(:mobile).try(:home_page).try(:product_ids) if Spree::Site.current.design? + end +end diff --git a/sprangular/app/controllers/sprangular/shipping_rates_controller.rb b/sprangular/app/controllers/sprangular/shipping_rates_controller.rb new file mode 100644 index 00000000..cad3c217 --- /dev/null +++ b/sprangular/app/controllers/sprangular/shipping_rates_controller.rb @@ -0,0 +1,52 @@ +class Sprangular::ShippingRatesController < Sprangular::BaseController + def index + if params[:zipcode] + country_id, state_id = lookup_location(params[:zipcode]) + zipcode = params[:zipcode] + else + country_id = params[:country_id] || Spree::Config.default_country_id + state_id = params[:state_id] + zipcode = '' + end + + if current_order.use_billing + update_address(current_order.bill_address ||= Spree::Address.new, country_id, state_id, zipcode) + else + update_address(current_order.ship_address ||= Spree::Address.new, country_id, state_id, zipcode) + end + + @shipping_rates = shipping_rates + end + +private + def lookup_location(zip) + country_id, state_id = nil, nil + results = Geocoder.search(zip) + + if results.present? + result = results.first + country_id = Spree::Country.where(iso: result.country_code).first!.id + state_id = Spree::State.where(abbr: result.state_code).first!.id + end + + return country_id, state_id + end + + def update_address(address, country_id, state_id, zipcode) + address.country_id = country_id + address.state_id = state_id + address.zipcode = zipcode + end + + def shipping_rates + packages = Spree::Stock::Coordinator.new(current_order).packages + + grouped = packages.map(&:shipping_rates).flatten.inject({}) do |memo, rate| + memo[rate.shipping_method_id] ||= Spree::ShippingRate.new(shipping_method: rate.shipping_method, cost: 0) + memo[rate.shipping_method_id].cost += rate.cost + memo + end + + grouped.values + end +end diff --git a/sprangular/app/controllers/sprangular/taxonomies_controller.rb b/sprangular/app/controllers/sprangular/taxonomies_controller.rb new file mode 100644 index 00000000..1cc3501a --- /dev/null +++ b/sprangular/app/controllers/sprangular/taxonomies_controller.rb @@ -0,0 +1,10 @@ +class Sprangular::TaxonomiesController < Sprangular::BaseController + def index + + #@taxonomies = Spree::Taxonomy.order('name').includes(root: :children) + # get configuration from mobile_theme + assigned_taxons = @theme.assigned_resources( Spree::Taxon ).compact + assigned_taxonomy_ids = assigned_taxons.map(&:taxonomy_id).uniq + @taxonomies = Spree::Taxonomy.order('name').includes(root: :children).find( assigned_taxonomy_ids ) + end +end diff --git a/sprangular/app/controllers/sprangular/taxons_controller.rb b/sprangular/app/controllers/sprangular/taxons_controller.rb new file mode 100644 index 00000000..f2fb3451 --- /dev/null +++ b/sprangular/app/controllers/sprangular/taxons_controller.rb @@ -0,0 +1,6 @@ +class Sprangular::TaxonsController < Sprangular::BaseController + def show + @taxon = Spree::Taxon.where(permalink: params[:permalink]).first! + render 'spree/api/taxons/show' + end +end diff --git a/sprangular/app/controllers/spree/api/checkouts_controller_decorator.rb b/sprangular/app/controllers/spree/api/checkouts_controller_decorator.rb new file mode 100644 index 00000000..3fdbc21f --- /dev/null +++ b/sprangular/app/controllers/spree/api/checkouts_controller_decorator.rb @@ -0,0 +1,33 @@ +Spree::Api::CheckoutsController.class_eval do + def quick_update + load_order(true) + authorize! :update, @order, order_token + + revert_to_cart + advance_to_payment + advance_to_complete if params[:complete] + + respond_with(@order, default_template: 'spree/api/orders/show') + end + +private + def revert_to_cart + @order.update(state: 'cart') unless @order.cart? + end + + def advance_to_payment + until @order.payment? + update_order + @order.next! + end + end + + def advance_to_complete + update_order + @order.finalize! + end + + def update_order + @order.update_from_params(params, permitted_checkout_attributes, request.headers.env) + end +end diff --git a/sprangular/app/controllers/spree/base_controller_decorator.rb b/sprangular/app/controllers/spree/base_controller_decorator.rb new file mode 100644 index 00000000..e2a59d64 --- /dev/null +++ b/sprangular/app/controllers/spree/base_controller_decorator.rb @@ -0,0 +1,17 @@ +# TODO: should be just Spree::BaseController once base class is fixed here: +# https://github.com/DynamoMTL/spree_chimpy/blob/master/app/controllers/spree/chimpy/subscribers_controller.rb#L1 +[ApplicationController, Spree::BaseController].each do |klass| + klass.class_eval do + after_filter :set_csrf_cookie_for_ng + + protected + + def set_csrf_cookie_for_ng + cookies['XSRF-TOKEN'] = form_authenticity_token if protect_against_forgery? + end + + def verified_request? + super || form_authenticity_token == request.headers['X-XSRF-TOKEN'] + end + end +end diff --git a/sprangular/app/controllers/spree/user_sessions_controller.rb b/sprangular/app/controllers/spree/user_sessions_controller.rb new file mode 100644 index 00000000..33fdc06a --- /dev/null +++ b/sprangular/app/controllers/spree/user_sessions_controller.rb @@ -0,0 +1,54 @@ +class Spree::UserSessionsController < Devise::SessionsController + helper 'spree/base', 'spree/store' + if Spree::Auth::Engine.dash_available? + helper 'spree/analytics' + end + + include Spree::Core::ControllerHelpers::Auth + include Spree::Core::ControllerHelpers::Common + include Spree::Core::ControllerHelpers::Order + include Spree::Core::ControllerHelpers::SSL + include Spree::Core::ControllerHelpers::Store + include Sprangular::Csrf + + ssl_required :new, :create, :destroy, :update + ssl_allowed :login_bar + + def create + authenticate_spree_user! + + if spree_user_signed_in? + respond_to do |format| + format.html { + flash[:success] = Spree.t(:logged_in_succesfully) + redirect_back_or_default(after_sign_in_path_for(spree_current_user)) + } + format.js { + render :json => {:user => spree_current_user, + :ship_address => spree_current_user.ship_address, + :bill_address => spree_current_user.bill_address}.to_json + } + end + else + respond_to do |format| + format.html { + flash.now[:error] = t('devise.failure.invalid') + render :new + } + format.js { + render :json => { error: t('devise.failure.invalid') }, status: :unprocessable_entity + } + end + end + end + + private + def accurate_title + Spree.t(:login) + end + + def redirect_back_or_default(default) + redirect_to(session["spree_user_return_to"] || default) + session["spree_user_return_to"] = nil + end +end diff --git a/sprangular/app/helpers/sprangular/api_helpers_decorator.rb b/sprangular/app/helpers/sprangular/api_helpers_decorator.rb new file mode 100644 index 00000000..c00c1640 --- /dev/null +++ b/sprangular/app/helpers/sprangular/api_helpers_decorator.rb @@ -0,0 +1,14 @@ +module Spree + module Api + module ApiHelpers + def taxon_attributes + extra_attributes = [:description] + if @@taxon_attributes.include?( extra_attributes.first ) + @@taxon_attributes + else + @@taxon_attributes + extra_attributes + end + end + end + end +end \ No newline at end of file diff --git a/sprangular/app/helpers/sprangular/base_helper_decorator.rb b/sprangular/app/helpers/sprangular/base_helper_decorator.rb new file mode 100644 index 00000000..9014075d --- /dev/null +++ b/sprangular/app/helpers/sprangular/base_helper_decorator.rb @@ -0,0 +1,69 @@ +module Spree + module BaseHelper + def payment_methods + hash = {} + methods = (Spree::PaymentMethod.available(:front_end) + Spree::PaymentMethod.available(:both)).uniq + methods.map do |method| + hash[method.method_type] = { + id: method.id, + name: method.name, + publishable_key: method.preferences[:publishable_key] + } + end + hash + end + + def js_environment + config = ::Spree::Config + store = Spree::Store.current + templates = Hash[ + Rails.application.assets.each_logical_path. + select { |file| file.end_with?('html') }. + map do |file| + path = digest_assets? ? File.join('/assets', Rails.application.assets[file].digest_path) : asset_path(file) + + [file, path] + end + ] + + {env: Rails.env, + config: { + site_name: store.seo_title || store.name, + logo: asset_path(config.logo), + default_country_id: config.default_country_id, + facebook_app_id: ENV['FACEBOOK_APP_ID'], + payment_methods: payment_methods, + image_sizes: Spree::Image.attachment_definitions[:attachment][:styles].keys + }, + templates: templates + } + end + + def cached_templates + Sprangular::Engine.config.cached_paths.inject({}) do |files, dir| + cached_templates_for_dir(files, dir) + end + end + + def cached_templates_for_dir(files, dir) + root = Sprangular::Engine.root + + files = Dir[root + "app/assets/templates/#{dir}/**"].inject(files) do |hash, path| + asset_path = asset_path path.gsub(root.to_s + "/app/assets/templates/", "") + local_path = 'app/assets/templates/' + asset_path + + hash[asset_path.gsub(/.slim$/, '')] = Tilt.new(path).render.html_safe if !File.exists?(local_path) + + hash + end + + Dir["app/assets/templates/#{dir}/**"].inject(files) do |hash, path| + asset_path = asset_path(path.gsub("/app/assets/templates/", "")) + asset_path = asset_path.gsub(/^\/app\/assets\/templates/, '/assets').gsub(/.slim$/, '') + + hash[asset_path] = Tilt.new(path).render.html_safe + hash + end + end + end +end diff --git a/sprangular/app/models/spree/user_decorator.rb b/sprangular/app/models/spree/user_decorator.rb new file mode 100644 index 00000000..b8aa9d26 --- /dev/null +++ b/sprangular/app/models/spree/user_decorator.rb @@ -0,0 +1,32 @@ +Spree.user_class.class_eval do + + has_many :user_authentications, :dependent => :destroy + + def past_bill_addresses + past_addresses :bill_address + end + + def past_ship_addresses + past_addresses :ship_address + end + + def completed_orders + orders.complete.order('updated_at DESC') + end + +private + + def past_addresses(address_type) + addresses = (past_orders_with_most_recent_first(address_type).map(&address_type) + [send(address_type)]).compact + addresses.uniq do |a| + [a.lastname.to_s, a.firstname.to_s, a.address1.to_s, a.address2.to_s, a.city.to_s, a.zipcode.to_s, a.phone.to_s, + a.state_id.to_s, a.state_name.to_s, a.country_id.to_s] + end + end + + def past_orders_with_most_recent_first(address_type) + completed_orders.includes(address_type => [:state, :country]) + end + +end + diff --git a/sprangular/app/views/layouts/sprangular/application.slim b/sprangular/app/views/layouts/sprangular/application.slim new file mode 100644 index 00000000..31d55d9b --- /dev/null +++ b/sprangular/app/views/layouts/sprangular/application.slim @@ -0,0 +1,32 @@ +html ng-app="Sprangular" ng-controller="GlobalCtrl" + head + title(ng-bind="title()") + meta name="fragment" content="!" + meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" + + = csrf_meta_tags + = stylesheet_link_tag "sprangular", media: "all" + + link rel="stylesheet" href="#{@website.public_path('css')}" type="text/css" + + = render 'sprangular/shared/templates' + + body(ng-class="status.bodyClass") + #initializing(ng-hide='status.initialized' ng-cloak) + ng-include(src="'assets/layout/initializing.html'") + + #initialized(ng-show='status.initialized' ng-cloak) + ng-include(src="'assets/layout/loading.html'" ng-show="status.isLoading()") + ng-include(src="'assets/layout/flash.html'" ng-show="flash.hasMessages()") + + #wrap + ng-include(src="'assets/layout/header.html'") + + #main.container-fluid(ng-view autoscroll="true" ng-cloak) + + ng-include(src="'assets/layout/footer_abc.html'") + + = javascript_include_tag "sprangular" + = render 'sprangular/shared/analytics' + + script Sprangular.constant('Env', #{ js_environment.to_json.html_safe }) diff --git a/sprangular/app/views/sprangular/accounts/show.json.rabl b/sprangular/app/views/sprangular/accounts/show.json.rabl new file mode 100644 index 00000000..666b1fc7 --- /dev/null +++ b/sprangular/app/views/sprangular/accounts/show.json.rabl @@ -0,0 +1,14 @@ +object @user +extends 'sprangular/spree/users/base' + +child(current_order => :current_order) do + extends 'sprangular/spree/orders/base' +end + +child(:past_ship_addresses => :shipping_addresses) do + extends 'sprangular/spree/addresses/base' +end + +child(:past_bill_addresses => :billing_addresses) do + extends 'sprangular/spree/addresses/base' +end diff --git a/sprangular/app/views/sprangular/countries/index.rabl b/sprangular/app/views/sprangular/countries/index.rabl new file mode 100644 index 00000000..457af199 --- /dev/null +++ b/sprangular/app/views/sprangular/countries/index.rabl @@ -0,0 +1,2 @@ +collection @countries +extends "spree/api/countries/show" diff --git a/sprangular/app/views/sprangular/errors/invalid.json.rabl b/sprangular/app/views/sprangular/errors/invalid.json.rabl new file mode 100644 index 00000000..e36643d1 --- /dev/null +++ b/sprangular/app/views/sprangular/errors/invalid.json.rabl @@ -0,0 +1,3 @@ +object false +node(:error) { I18n.t(:invalid_resource, scope: "spree.api") } +node(:errors) { @resource.errors } diff --git a/sprangular/app/views/sprangular/errors/not_found.json.rabl b/sprangular/app/views/sprangular/errors/not_found.json.rabl new file mode 100644 index 00000000..258a0b1f --- /dev/null +++ b/sprangular/app/views/sprangular/errors/not_found.json.rabl @@ -0,0 +1,2 @@ +object false +node(:error) { I18n.t(:resource_not_found, scope: "spree.api") } diff --git a/sprangular/app/views/sprangular/errors/unauthorized.json.rabl b/sprangular/app/views/sprangular/errors/unauthorized.json.rabl new file mode 100644 index 00000000..dbeb04dc --- /dev/null +++ b/sprangular/app/views/sprangular/errors/unauthorized.json.rabl @@ -0,0 +1,2 @@ +object false +node(:error) { I18n.t(:unauthorized, scope: "spree.api") } diff --git a/sprangular/app/views/sprangular/home/index.slim b/sprangular/app/views/sprangular/home/index.slim new file mode 100644 index 00000000..e69de29b diff --git a/sprangular/app/views/sprangular/products/index.json.rabl b/sprangular/app/views/sprangular/products/index.json.rabl new file mode 100644 index 00000000..6c0809e8 --- /dev/null +++ b/sprangular/app/views/sprangular/products/index.json.rabl @@ -0,0 +1,5 @@ +object false + +child(@products => :products) do + extends "/sprangular/spree/products/base" +end diff --git a/sprangular/app/views/sprangular/shared/_analytics.slim b/sprangular/app/views/sprangular/shared/_analytics.slim new file mode 100644 index 00000000..d9435afb --- /dev/null +++ b/sprangular/app/views/sprangular/shared/_analytics.slim @@ -0,0 +1,8 @@ +- if tracker = Spree::Tracker.current + javascript: + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', '#{tracker.analytics_id}', location.host); diff --git a/sprangular/app/views/sprangular/shared/_templates.html.slim b/sprangular/app/views/sprangular/shared/_templates.html.slim new file mode 100644 index 00000000..a590bef0 --- /dev/null +++ b/sprangular/app/views/sprangular/shared/_templates.html.slim @@ -0,0 +1,2 @@ +- cached_templates.each do |path, html| + script(type="text/ng-template" id=path)= html diff --git a/sprangular/app/views/sprangular/shipping_rates/index.rabl b/sprangular/app/views/sprangular/shipping_rates/index.rabl new file mode 100644 index 00000000..c9f3b1b9 --- /dev/null +++ b/sprangular/app/views/sprangular/shipping_rates/index.rabl @@ -0,0 +1,2 @@ +collection @shipping_rates +extends "sprangular/shipping_rates/show" diff --git a/sprangular/app/views/sprangular/shipping_rates/show.rabl b/sprangular/app/views/sprangular/shipping_rates/show.rabl new file mode 100644 index 00000000..a96d4072 --- /dev/null +++ b/sprangular/app/views/sprangular/shipping_rates/show.rabl @@ -0,0 +1 @@ +attributes :id, :name, :cost, :shipping_method_id diff --git a/sprangular/app/views/sprangular/spree/addresses/base.json.rabl b/sprangular/app/views/sprangular/spree/addresses/base.json.rabl new file mode 100644 index 00000000..54d8617b --- /dev/null +++ b/sprangular/app/views/sprangular/spree/addresses/base.json.rabl @@ -0,0 +1,8 @@ +attributes *address_attributes + +child(:country) do |address| + attributes *country_attributes +end +child(:state) do |address| + attributes *state_attributes +end diff --git a/sprangular/app/views/sprangular/spree/credit_cards/base.json.rabl b/sprangular/app/views/sprangular/spree/credit_cards/base.json.rabl new file mode 100644 index 00000000..9d48abe7 --- /dev/null +++ b/sprangular/app/views/sprangular/spree/credit_cards/base.json.rabl @@ -0,0 +1 @@ +attributes *creditcard_attributes diff --git a/sprangular/app/views/sprangular/spree/orders/_order.json.rabl b/sprangular/app/views/sprangular/spree/orders/_order.json.rabl new file mode 100644 index 00000000..9697f21f --- /dev/null +++ b/sprangular/app/views/sprangular/spree/orders/_order.json.rabl @@ -0,0 +1,2 @@ +object @order +extends '/sprangular/spree/orders/base' diff --git a/sprangular/app/views/sprangular/spree/orders/base.json.rabl b/sprangular/app/views/sprangular/spree/orders/base.json.rabl new file mode 100644 index 00000000..c84db705 --- /dev/null +++ b/sprangular/app/views/sprangular/spree/orders/base.json.rabl @@ -0,0 +1,5 @@ +attributes *order_attributes + +child line_items: :line_items do + attributes *line_item_attributes +end \ No newline at end of file diff --git a/sprangular/app/views/sprangular/spree/products/base.json.rabl b/sprangular/app/views/sprangular/spree/products/base.json.rabl new file mode 100644 index 00000000..bdd84a0e --- /dev/null +++ b/sprangular/app/views/sprangular/spree/products/base.json.rabl @@ -0,0 +1,19 @@ +object @product +attributes *product_attributes +node(:has_variants) { |p| p.has_variants? } + +child master: :master do + extends "/sprangular/spree/variants/base" +end + +child variants: :variants do + extends "/sprangular/spree/variants/base" +end + +child option_types: :option_types do + attributes *option_type_attributes +end + +child product_properties: :product_properties do + attributes *product_property_attributes +end diff --git a/sprangular/app/views/sprangular/spree/users/base.json.rabl b/sprangular/app/views/sprangular/spree/users/base.json.rabl new file mode 100644 index 00000000..c1b137d6 --- /dev/null +++ b/sprangular/app/views/sprangular/spree/users/base.json.rabl @@ -0,0 +1,17 @@ +attributes *user_attributes + +child completed_orders: :orders do + attributes *order_attributes +end + +child shipping_address: :shipping_address do + extends '/sprangular/spree/addresses/base' +end + +child billing_address: :billing_address do + extends '/sprangular/spree/addresses/base' +end + +child payment_sources: :payment_sources do + extends '/sprangular/spree/credit_cards/base' +end diff --git a/sprangular/app/views/sprangular/spree/variants/base.json.rabl b/sprangular/app/views/sprangular/spree/variants/base.json.rabl new file mode 100644 index 00000000..5777305b --- /dev/null +++ b/sprangular/app/views/sprangular/spree/variants/base.json.rabl @@ -0,0 +1,11 @@ +attributes *variant_attributes + +node(:display_price) { |p| p.display_price.to_s } +node(:options_text) { |v| v.options_text } +node(:in_stock) { |v| v.can_supply? } + +child option_values: :option_values do + attributes *option_value_attributes +end + +child(images: :images) { extends "spree/api/images/show" } diff --git a/sprangular/app/views/sprangular/taxonomies/index.rabl b/sprangular/app/views/sprangular/taxonomies/index.rabl new file mode 100644 index 00000000..fd50e55c --- /dev/null +++ b/sprangular/app/views/sprangular/taxonomies/index.rabl @@ -0,0 +1,2 @@ +collection @taxonomies +extends "spree/api/taxonomies/show" diff --git a/sprangular/app/views/spree/api/orders/show.rabl b/sprangular/app/views/spree/api/orders/show.rabl new file mode 100644 index 00000000..13c013de --- /dev/null +++ b/sprangular/app/views/spree/api/orders/show.rabl @@ -0,0 +1,44 @@ +object @order +extends "spree/api/orders/order" + +node(:use_billing) { @order.bill_address == @order.ship_address } + +if lookup_context.find_all("spree/api/orders/#{root_object.state}").present? + extends "spree/api/orders/#{root_object.state}" +end + +child :billing_address => :bill_address do + extends "spree/api/addresses/show" +end + +child :shipping_address => :ship_address do + extends "spree/api/addresses/show" +end + +child :line_items => :line_items do + extends "spree/api/line_items/show" +end + +child :payments => :payments do + attributes *payment_attributes + + child :payment_method => :payment_method do + attributes :id, :name, :environment + end + + child :source => :source do + attributes *payment_source_attributes + end +end + +child :shipments => :shipments do + extends "spree/api/shipments/small" +end + +child :adjustments => :adjustments do + extends "spree/api/adjustments/show" +end + +child :products => :products do + extends "spree/api/products/show" +end diff --git a/sprangular/bin/rails b/sprangular/bin/rails new file mode 100644 index 00000000..dde14253 --- /dev/null +++ b/sprangular/bin/rails @@ -0,0 +1,12 @@ +#!/usr/bin/env ruby +# This command will automatically be run when you run "rails" with Rails 4 gems installed from the root of your application. + +ENGINE_ROOT = File.expand_path('../..', __FILE__) +ENGINE_PATH = File.expand_path('../../lib/sprangular/engine', __FILE__) + +# Set up gems listed in the Gemfile. +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) +require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE']) + +require 'rails/all' +require 'rails/engine/commands' diff --git a/sprangular/config/routes.rb b/sprangular/config/routes.rb new file mode 100644 index 00000000..53e2e7f7 --- /dev/null +++ b/sprangular/config/routes.rb @@ -0,0 +1,30 @@ +Sprangular::Engine.routes.draw do + scope module: 'sprangular' do + + + # root to: 'home#index' + + scope '/api', defaults: {format: :json} do + post 'facebook/fetch' + + resources :taxonomies0, only: :index, controller: :taxonomies + get 'taxons/*permalink', to: 'taxons#show' + resources :products0, only: [:index, :show], controller: :products + resource :cart do + post :add_variant + put :update_variant + put :change_variant + put :remove_adjustment + delete :remove_variant + end + resource :account + # resources :passwords + # resources :credit_cards + # resources :countries, only: :index + # resources :shipping_rates, only: :index + end + end + + put 'api/checkouts/:id/quick_update', to: 'spree/api/checkouts#quick_update' +end + diff --git a/sprangular/lib/generators/sprangular/install/USAGE b/sprangular/lib/generators/sprangular/install/USAGE new file mode 100644 index 00000000..44143ee0 --- /dev/null +++ b/sprangular/lib/generators/sprangular/install/USAGE @@ -0,0 +1,10 @@ +Description: + Installs sprangular + +Example: + rails generate sprangular:install + + This will update: + config/routes.rb + application.css + application.js diff --git a/sprangular/lib/generators/sprangular/install/install_generator.rb b/sprangular/lib/generators/sprangular/install/install_generator.rb new file mode 100644 index 00000000..2993274d --- /dev/null +++ b/sprangular/lib/generators/sprangular/install/install_generator.rb @@ -0,0 +1,21 @@ +class Sprangular::InstallGenerator < Rails::Generators::Base + source_root File.expand_path('../templates', __FILE__) + + def add_routes + route "mount Sprangular::Engine => '/'" + route "mount Spree::Core::Engine => '/spree'" + end + + def add_assets + inject_into_file 'app/assets/stylesheets/application.css', " *= require sprangular\n", before: /\*\//, verbose: true + append_file 'app/assets/javascripts/application.js', <<-eos +//= require sprangular +//= require sprangular/extraRoutes +eos + + copy_file 'extraRoutes.coffee', 'app/assets/javascripts/sprangular/extraRoutes.coffee' + copy_file 'about.html.slim', 'app/assets/templates/static/about.html.slim' + copy_file 'terms.html.slim', 'app/assets/templates/static/terms.html.slim' + copy_file 'privacy.html.slim', 'app/assets/templates/static/privacy.html.slim' + end +end diff --git a/sprangular/lib/generators/sprangular/install/templates/about.html.slim b/sprangular/lib/generators/sprangular/install/templates/about.html.slim new file mode 100644 index 00000000..b850f3d7 --- /dev/null +++ b/sprangular/lib/generators/sprangular/install/templates/about.html.slim @@ -0,0 +1,5 @@ +#about.container + .col-lg-12 + h1 About + + p Find me in app/assets/templates/static/about.html.slim diff --git a/sprangular/lib/generators/sprangular/install/templates/extraRoutes.coffee b/sprangular/lib/generators/sprangular/install/templates/extraRoutes.coffee new file mode 100644 index 00000000..b2b53df4 --- /dev/null +++ b/sprangular/lib/generators/sprangular/install/templates/extraRoutes.coffee @@ -0,0 +1,11 @@ +Sprangular.config ($routeProvider) -> + + $routeProvider + .when '/about', + templateUrl: 'static/about.html' + + .when '/terms', + templateUrl: 'static/terms.html' + + .when '/privacy', + templateUrl: 'static/privacy.html' diff --git a/sprangular/lib/generators/sprangular/install/templates/privacy.html.slim b/sprangular/lib/generators/sprangular/install/templates/privacy.html.slim new file mode 100644 index 00000000..957117a5 --- /dev/null +++ b/sprangular/lib/generators/sprangular/install/templates/privacy.html.slim @@ -0,0 +1,5 @@ +#privacy.container + .col-lg-12 + h1 Privacy + + p Find me in app/assets/templates/static/privacy.html.slim diff --git a/sprangular/lib/generators/sprangular/install/templates/terms.html.slim b/sprangular/lib/generators/sprangular/install/templates/terms.html.slim new file mode 100644 index 00000000..8494ca53 --- /dev/null +++ b/sprangular/lib/generators/sprangular/install/templates/terms.html.slim @@ -0,0 +1,5 @@ +#terms.container + .col-lg-12 + h1 Terms & Conditions + + p Find me in app/assets/templates/static/terms.html.slim diff --git a/sprangular/lib/sprangular.rb b/sprangular/lib/sprangular.rb new file mode 100644 index 00000000..cc369316 --- /dev/null +++ b/sprangular/lib/sprangular.rb @@ -0,0 +1,23 @@ +require 'spree_core' +require 'spree_api' +require 'spree_backend' +require 'spree_auth_devise' +require 'geocoder' +require 'slim' +require 'rabl' +require 'jquery-rails' +require 'angularjs-rails' +require 'rails-assets-bootstrap-sass-official' +require 'rails-assets-underscore' +require 'rails-assets-underscore.string' +require 'rails-assets-angular-bootstrap' +require 'rails-assets-angular-strap' +require 'rails-assets-angular-motion' +require 'rails-assets-bootstrap-additions' +require 'rails-assets-ngInfiniteScroll' +require 'rails-assets-angularytics' +require 'rack/rewrite' +require "sprangular/engine" + +module Sprangular +end diff --git a/sprangular/lib/sprangular/engine.rb b/sprangular/lib/sprangular/engine.rb new file mode 100644 index 00000000..48cb1899 --- /dev/null +++ b/sprangular/lib/sprangular/engine.rb @@ -0,0 +1,35 @@ +module Sprangular + class Engine < ::Rails::Engine + config.cached_paths = %w(layout directives products home cart promos) + + initializer "sprangular.assets.configure" do |app| + assets = Rails.application.assets + + assets.register_mime_type 'text/html', '.html' + assets.register_engine '.slim', Slim::Template + + Rails.application.config.assets.precompile += %w( sprangular.js sprangular.css bootstrap/* ) + end + + #initializer "sprangular.add_middleware" do |app| + # app.middleware.insert_before(Rack::Runtime, Rack::Rewrite) do + # r301 '/products', '/#!/products' + # r301 %r{^/products/(.+)$}, '/#!/products/$1' + # r301 %r{^/t/(.+)$}, '/#!/t/$1' + # r301 '/sign_in', '/#!/sign-in' + # #spree_theme is using /cart + # #r301 '/cart', '/#!/cart' + # r301 '/account', '/#!/account' + # r301 '/spree/login', '/#!/sign-in?redirect=y' + # end + #end + + def self.activate + Dir.glob(File.join(File.dirname(__FILE__), "../../app/**/*_decorator*.rb")) do |c| + Rails.configuration.cache_classes ? require(c) : load(c) + end + end + config.to_prepare &method(:activate).to_proc + + end +end diff --git a/sprangular/lib/sprangular/version.rb b/sprangular/lib/sprangular/version.rb new file mode 100644 index 00000000..10ed05f7 --- /dev/null +++ b/sprangular/lib/sprangular/version.rb @@ -0,0 +1,3 @@ +module Sprangular + VERSION = "0.0.1" +end diff --git a/sprangular/lib/tasks/sprangular_tasks.rake b/sprangular/lib/tasks/sprangular_tasks.rake new file mode 100644 index 00000000..9fa40655 --- /dev/null +++ b/sprangular/lib/tasks/sprangular_tasks.rake @@ -0,0 +1,4 @@ +# desc "Explaining what the task does" +# task :sprangular do +# # Task goes here +# end diff --git a/sprangular/spec/controllers/env_controller_spec.rb b/sprangular/spec/controllers/env_controller_spec.rb new file mode 100644 index 00000000..aa5dde3a --- /dev/null +++ b/sprangular/spec/controllers/env_controller_spec.rb @@ -0,0 +1,12 @@ +require 'rails_helper' + +describe Sprangular::EnvController do + context "GET show" do + before do + get :show + end + + specify { expect(assigns[:config]).to eql(Spree::Config) } + specify { expect(response).to be_success } + end +end diff --git a/sprangular/spec/controllers/home_controller_spec.rb b/sprangular/spec/controllers/home_controller_spec.rb new file mode 100644 index 00000000..801e3026 --- /dev/null +++ b/sprangular/spec/controllers/home_controller_spec.rb @@ -0,0 +1,11 @@ +require 'rails_helper' + +describe Sprangular::HomeController do + context "GET index" do + before do + get :index + end + + specify { expect(response).to be_success } + end +end diff --git a/sprangular/spec/dummy/README.rdoc b/sprangular/spec/dummy/README.rdoc new file mode 100644 index 00000000..dd4e97e2 --- /dev/null +++ b/sprangular/spec/dummy/README.rdoc @@ -0,0 +1,28 @@ +== README + +This README would normally document whatever steps are necessary to get the +application up and running. + +Things you may want to cover: + +* Ruby version + +* System dependencies + +* Configuration + +* Database creation + +* Database initialization + +* How to run the test suite + +* Services (job queues, cache servers, search engines, etc.) + +* Deployment instructions + +* ... + + +Please feel free to use a different markup language if you do not plan to run +rake doc:app. diff --git a/sprangular/spec/dummy/Rakefile b/sprangular/spec/dummy/Rakefile new file mode 100644 index 00000000..ba6b733d --- /dev/null +++ b/sprangular/spec/dummy/Rakefile @@ -0,0 +1,6 @@ +# Add your own tasks in files placed in lib/tasks ending in .rake, +# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. + +require File.expand_path('../config/application', __FILE__) + +Rails.application.load_tasks diff --git a/sprangular/spec/dummy/app/assets/images/.keep b/sprangular/spec/dummy/app/assets/images/.keep new file mode 100644 index 00000000..e69de29b diff --git a/sprangular/spec/dummy/app/assets/javascripts/application.js b/sprangular/spec/dummy/app/assets/javascripts/application.js new file mode 100644 index 00000000..b4609f1e --- /dev/null +++ b/sprangular/spec/dummy/app/assets/javascripts/application.js @@ -0,0 +1,17 @@ +// This is a manifest file that'll be compiled into application.js, which will include all the files +// listed below. +// +// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, +// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path. +// +// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the +// compiled file. +// +// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details +// about supported directives. +// +//= require jquery +//= require bootstrap-sass-official +//= require sprangular +//= require sprangular/extraRoutes +//= require_tree . diff --git a/sprangular/spec/dummy/app/assets/javascripts/sprangular/extraRoutes.coffee b/sprangular/spec/dummy/app/assets/javascripts/sprangular/extraRoutes.coffee new file mode 100644 index 00000000..b2b53df4 --- /dev/null +++ b/sprangular/spec/dummy/app/assets/javascripts/sprangular/extraRoutes.coffee @@ -0,0 +1,11 @@ +Sprangular.config ($routeProvider) -> + + $routeProvider + .when '/about', + templateUrl: 'static/about.html' + + .when '/terms', + templateUrl: 'static/terms.html' + + .when '/privacy', + templateUrl: 'static/privacy.html' diff --git a/sprangular/spec/dummy/app/assets/stylesheets/application.css b/sprangular/spec/dummy/app/assets/stylesheets/application.css new file mode 100644 index 00000000..5d84599a --- /dev/null +++ b/sprangular/spec/dummy/app/assets/stylesheets/application.css @@ -0,0 +1,15 @@ +/* + * This is a manifest file that'll be compiled into application.css, which will include all the files + * listed below. + * + * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, + * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path. + * + * You're free to add application-wide styles to this file and they'll appear at the bottom of the + * compiled file so the styles you add here take precedence over styles defined in any styles + * defined in the other CSS/SCSS files in this directory. It is generally better to create a new + * file per style scope. + * + *= require sprangular + *= require_self + */ diff --git a/sprangular/spec/dummy/app/assets/templates/static/about.html.slim b/sprangular/spec/dummy/app/assets/templates/static/about.html.slim new file mode 100644 index 00000000..b850f3d7 --- /dev/null +++ b/sprangular/spec/dummy/app/assets/templates/static/about.html.slim @@ -0,0 +1,5 @@ +#about.container + .col-lg-12 + h1 About + + p Find me in app/assets/templates/static/about.html.slim diff --git a/sprangular/spec/dummy/app/assets/templates/static/privacy.html.slim b/sprangular/spec/dummy/app/assets/templates/static/privacy.html.slim new file mode 100644 index 00000000..957117a5 --- /dev/null +++ b/sprangular/spec/dummy/app/assets/templates/static/privacy.html.slim @@ -0,0 +1,5 @@ +#privacy.container + .col-lg-12 + h1 Privacy + + p Find me in app/assets/templates/static/privacy.html.slim diff --git a/sprangular/spec/dummy/app/assets/templates/static/terms.html.slim b/sprangular/spec/dummy/app/assets/templates/static/terms.html.slim new file mode 100644 index 00000000..8494ca53 --- /dev/null +++ b/sprangular/spec/dummy/app/assets/templates/static/terms.html.slim @@ -0,0 +1,5 @@ +#terms.container + .col-lg-12 + h1 Terms & Conditions + + p Find me in app/assets/templates/static/terms.html.slim diff --git a/sprangular/spec/dummy/app/controllers/application_controller.rb b/sprangular/spec/dummy/app/controllers/application_controller.rb new file mode 100644 index 00000000..d83690e1 --- /dev/null +++ b/sprangular/spec/dummy/app/controllers/application_controller.rb @@ -0,0 +1,5 @@ +class ApplicationController < ActionController::Base + # Prevent CSRF attacks by raising an exception. + # For APIs, you may want to use :null_session instead. + protect_from_forgery with: :exception +end diff --git a/sprangular/spec/dummy/app/controllers/concerns/.keep b/sprangular/spec/dummy/app/controllers/concerns/.keep new file mode 100644 index 00000000..e69de29b diff --git a/sprangular/spec/dummy/app/helpers/application_helper.rb b/sprangular/spec/dummy/app/helpers/application_helper.rb new file mode 100644 index 00000000..de6be794 --- /dev/null +++ b/sprangular/spec/dummy/app/helpers/application_helper.rb @@ -0,0 +1,2 @@ +module ApplicationHelper +end diff --git a/sprangular/spec/dummy/app/mailers/.keep b/sprangular/spec/dummy/app/mailers/.keep new file mode 100644 index 00000000..e69de29b diff --git a/sprangular/spec/dummy/app/models/.keep b/sprangular/spec/dummy/app/models/.keep new file mode 100644 index 00000000..e69de29b diff --git a/sprangular/spec/dummy/app/models/concerns/.keep b/sprangular/spec/dummy/app/models/concerns/.keep new file mode 100644 index 00000000..e69de29b diff --git a/sprangular/spec/dummy/app/views/layouts/application.html.erb b/sprangular/spec/dummy/app/views/layouts/application.html.erb new file mode 100644 index 00000000..593a778b --- /dev/null +++ b/sprangular/spec/dummy/app/views/layouts/application.html.erb @@ -0,0 +1,14 @@ + + + + Dummy + <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> + <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> + <%= csrf_meta_tags %> + + + +<%= yield %> + + + diff --git a/sprangular/spec/dummy/bin/bundle b/sprangular/spec/dummy/bin/bundle new file mode 100644 index 00000000..66e9889e --- /dev/null +++ b/sprangular/spec/dummy/bin/bundle @@ -0,0 +1,3 @@ +#!/usr/bin/env ruby +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) +load Gem.bin_path('bundler', 'bundle') diff --git a/sprangular/spec/dummy/bin/rails b/sprangular/spec/dummy/bin/rails new file mode 100644 index 00000000..728cd85a --- /dev/null +++ b/sprangular/spec/dummy/bin/rails @@ -0,0 +1,4 @@ +#!/usr/bin/env ruby +APP_PATH = File.expand_path('../../config/application', __FILE__) +require_relative '../config/boot' +require 'rails/commands' diff --git a/sprangular/spec/dummy/bin/rake b/sprangular/spec/dummy/bin/rake new file mode 100644 index 00000000..17240489 --- /dev/null +++ b/sprangular/spec/dummy/bin/rake @@ -0,0 +1,4 @@ +#!/usr/bin/env ruby +require_relative '../config/boot' +require 'rake' +Rake.application.run diff --git a/sprangular/spec/dummy/config.ru b/sprangular/spec/dummy/config.ru new file mode 100644 index 00000000..5bc2a619 --- /dev/null +++ b/sprangular/spec/dummy/config.ru @@ -0,0 +1,4 @@ +# This file is used by Rack-based servers to start the application. + +require ::File.expand_path('../config/environment', __FILE__) +run Rails.application diff --git a/sprangular/spec/dummy/config/application.rb b/sprangular/spec/dummy/config/application.rb new file mode 100644 index 00000000..afd11325 --- /dev/null +++ b/sprangular/spec/dummy/config/application.rb @@ -0,0 +1,42 @@ +require File.expand_path('../boot', __FILE__) + +# Pick the frameworks you want: +require "active_record/railtie" +require "action_controller/railtie" +require "action_mailer/railtie" +require "action_view/railtie" +require "sprockets/railtie" +# require "rails/test_unit/railtie" + +Bundler.require(*Rails.groups) +require "sprangular" + +module Dummy + class Application < Rails::Application + + config.to_prepare do + # Load application's model / class decorators + Dir.glob(File.join(File.dirname(__FILE__), "../app/**/*_decorator*.rb")) do |c| + Rails.configuration.cache_classes ? require(c) : load(c) + end + + # Load application's view overrides + Dir.glob(File.join(File.dirname(__FILE__), "../app/overrides/*.rb")) do |c| + Rails.configuration.cache_classes ? require(c) : load(c) + end + end + + # Settings in config/environments/* take precedence over those specified here. + # Application configuration should go into files in config/initializers + # -- all .rb files in that directory are automatically loaded. + + # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. + # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. + # config.time_zone = 'Central Time (US & Canada)' + + # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. + # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] + # config.i18n.default_locale = :de + end +end + diff --git a/sprangular/spec/dummy/config/boot.rb b/sprangular/spec/dummy/config/boot.rb new file mode 100644 index 00000000..6266cfc5 --- /dev/null +++ b/sprangular/spec/dummy/config/boot.rb @@ -0,0 +1,5 @@ +# Set up gems listed in the Gemfile. +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../../Gemfile', __FILE__) + +require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE']) +$LOAD_PATH.unshift File.expand_path('../../../../lib', __FILE__) diff --git a/sprangular/spec/dummy/config/database.yml b/sprangular/spec/dummy/config/database.yml new file mode 100644 index 00000000..1c1a37ca --- /dev/null +++ b/sprangular/spec/dummy/config/database.yml @@ -0,0 +1,25 @@ +# SQLite version 3.x +# gem install sqlite3 +# +# Ensure the SQLite 3 gem is defined in your Gemfile +# gem 'sqlite3' +# +default: &default + adapter: sqlite3 + pool: 5 + timeout: 5000 + +development: + <<: *default + database: db/development.sqlite3 + +# Warning: The database defined as "test" will be erased and +# re-generated from your development database when you run "rake". +# Do not set this db to the same as development or production. +test: + <<: *default + database: db/test.sqlite3 + +production: + <<: *default + database: db/production.sqlite3 diff --git a/sprangular/spec/dummy/config/environment.rb b/sprangular/spec/dummy/config/environment.rb new file mode 100644 index 00000000..ee8d90dc --- /dev/null +++ b/sprangular/spec/dummy/config/environment.rb @@ -0,0 +1,5 @@ +# Load the Rails application. +require File.expand_path('../application', __FILE__) + +# Initialize the Rails application. +Rails.application.initialize! diff --git a/sprangular/spec/dummy/config/environments/development.rb b/sprangular/spec/dummy/config/environments/development.rb new file mode 100644 index 00000000..ddf0e90c --- /dev/null +++ b/sprangular/spec/dummy/config/environments/development.rb @@ -0,0 +1,37 @@ +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # In the development environment your application's code is reloaded on + # every request. This slows down response time but is perfect for development + # since you don't have to restart the web server when you make code changes. + config.cache_classes = false + + # Do not eager load code on boot. + config.eager_load = false + + # Show full error reports and disable caching. + config.consider_all_requests_local = true + config.action_controller.perform_caching = false + + # Don't care if the mailer can't send. + config.action_mailer.raise_delivery_errors = false + + # Print deprecation notices to the Rails logger. + config.active_support.deprecation = :log + + # Raise an error on page load if there are pending migrations. + config.active_record.migration_error = :page_load + + # Debug mode disables concatenation and preprocessing of assets. + # This option may cause significant delays in view rendering with a large + # number of complex assets. + config.assets.debug = true + + # Adds additional error checking when serving assets at runtime. + # Checks for improperly declared sprockets dependencies. + # Raises helpful error messages. + config.assets.raise_runtime_errors = true + + # Raises error for missing translations + # config.action_view.raise_on_missing_translations = true +end diff --git a/sprangular/spec/dummy/config/environments/production.rb b/sprangular/spec/dummy/config/environments/production.rb new file mode 100644 index 00000000..a8836c36 --- /dev/null +++ b/sprangular/spec/dummy/config/environments/production.rb @@ -0,0 +1,82 @@ +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # Code is not reloaded between requests. + config.cache_classes = true + + # Eager load code on boot. This eager loads most of Rails and + # your application in memory, allowing both threaded web servers + # and those relying on copy on write to perform better. + # Rake tasks automatically ignore this option for performance. + config.eager_load = true + + # Full error reports are disabled and caching is turned on. + config.consider_all_requests_local = false + config.action_controller.perform_caching = true + + # Enable Rack::Cache to put a simple HTTP cache in front of your application + # Add `rack-cache` to your Gemfile before enabling this. + # For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid. + # config.action_dispatch.rack_cache = true + + # Disable Rails's static asset server (Apache or nginx will already do this). + config.serve_static_assets = false + + # Compress JavaScripts and CSS. + config.assets.js_compressor = :uglifier + # config.assets.css_compressor = :sass + + # Do not fallback to assets pipeline if a precompiled asset is missed. + config.assets.compile = false + + # Generate digests for assets URLs. + config.assets.digest = true + + # `config.assets.precompile` has moved to config/initializers/assets.rb + + # Specifies the header that your server uses for sending files. + # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache + # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx + + # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. + # config.force_ssl = true + + # Set to :debug to see everything in the log. + config.log_level = :info + + # Prepend all log lines with the following tags. + # config.log_tags = [ :subdomain, :uuid ] + + # Use a different logger for distributed setups. + # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) + + # Use a different cache store in production. + # config.cache_store = :mem_cache_store + + # Enable serving of images, stylesheets, and JavaScripts from an asset server. + # config.action_controller.asset_host = "http://assets.example.com" + + # Precompile additional assets. + # application.js, application.css, and all non-JS/CSS in app/assets folder are already added. + # config.assets.precompile += %w( search.js ) + + # Ignore bad email addresses and do not raise email delivery errors. + # Set this to true and configure the email server for immediate delivery to raise delivery errors. + # config.action_mailer.raise_delivery_errors = false + + # Enable locale fallbacks for I18n (makes lookups for any locale fall back to + # the I18n.default_locale when a translation cannot be found). + config.i18n.fallbacks = true + + # Send deprecation notices to registered listeners. + config.active_support.deprecation = :notify + + # Disable automatic flushing of the log to improve performance. + # config.autoflush_log = false + + # Use default logging formatter so that PID and timestamp are not suppressed. + config.log_formatter = ::Logger::Formatter.new + + # Do not dump schema after migrations. + config.active_record.dump_schema_after_migration = false +end diff --git a/sprangular/spec/dummy/config/environments/test.rb b/sprangular/spec/dummy/config/environments/test.rb new file mode 100644 index 00000000..053f5b66 --- /dev/null +++ b/sprangular/spec/dummy/config/environments/test.rb @@ -0,0 +1,39 @@ +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # The test environment is used exclusively to run your application's + # test suite. You never need to work with it otherwise. Remember that + # your test database is "scratch space" for the test suite and is wiped + # and recreated between test runs. Don't rely on the data there! + config.cache_classes = true + + # Do not eager load code on boot. This avoids loading your whole application + # just for the purpose of running a single test. If you are using a tool that + # preloads Rails for running tests, you may have to set it to true. + config.eager_load = false + + # Configure static asset server for tests with Cache-Control for performance. + config.serve_static_assets = true + config.static_cache_control = 'public, max-age=3600' + + # Show full error reports and disable caching. + config.consider_all_requests_local = true + config.action_controller.perform_caching = false + + # Raise exceptions instead of rendering exception templates. + config.action_dispatch.show_exceptions = false + + # Disable request forgery protection in test environment. + config.action_controller.allow_forgery_protection = false + + # Tell Action Mailer not to deliver emails to the real world. + # The :test delivery method accumulates sent emails in the + # ActionMailer::Base.deliveries array. + config.action_mailer.delivery_method = :test + + # Print deprecation notices to the stderr. + config.active_support.deprecation = :stderr + + # Raises error for missing translations + # config.action_view.raise_on_missing_translations = true +end diff --git a/sprangular/spec/dummy/config/initializers/assets.rb b/sprangular/spec/dummy/config/initializers/assets.rb new file mode 100644 index 00000000..d2f4ec33 --- /dev/null +++ b/sprangular/spec/dummy/config/initializers/assets.rb @@ -0,0 +1,8 @@ +# Be sure to restart your server when you modify this file. + +# Version of your assets, change this if you want to expire all your assets. +Rails.application.config.assets.version = '1.0' + +# Precompile additional assets. +# application.js, application.css, and all non-JS/CSS in app/assets folder are already added. +# Rails.application.config.assets.precompile += %w( search.js ) diff --git a/sprangular/spec/dummy/config/initializers/backtrace_silencers.rb b/sprangular/spec/dummy/config/initializers/backtrace_silencers.rb new file mode 100644 index 00000000..59385cdf --- /dev/null +++ b/sprangular/spec/dummy/config/initializers/backtrace_silencers.rb @@ -0,0 +1,7 @@ +# Be sure to restart your server when you modify this file. + +# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. +# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } + +# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. +# Rails.backtrace_cleaner.remove_silencers! diff --git a/sprangular/spec/dummy/config/initializers/cookies_serializer.rb b/sprangular/spec/dummy/config/initializers/cookies_serializer.rb new file mode 100644 index 00000000..7a06a89f --- /dev/null +++ b/sprangular/spec/dummy/config/initializers/cookies_serializer.rb @@ -0,0 +1,3 @@ +# Be sure to restart your server when you modify this file. + +Rails.application.config.action_dispatch.cookies_serializer = :json \ No newline at end of file diff --git a/sprangular/spec/dummy/config/initializers/filter_parameter_logging.rb b/sprangular/spec/dummy/config/initializers/filter_parameter_logging.rb new file mode 100644 index 00000000..4a994e1e --- /dev/null +++ b/sprangular/spec/dummy/config/initializers/filter_parameter_logging.rb @@ -0,0 +1,4 @@ +# Be sure to restart your server when you modify this file. + +# Configure sensitive parameters which will be filtered from the log file. +Rails.application.config.filter_parameters += [:password] diff --git a/sprangular/spec/dummy/config/initializers/inflections.rb b/sprangular/spec/dummy/config/initializers/inflections.rb new file mode 100644 index 00000000..ac033bf9 --- /dev/null +++ b/sprangular/spec/dummy/config/initializers/inflections.rb @@ -0,0 +1,16 @@ +# Be sure to restart your server when you modify this file. + +# Add new inflection rules using the following format. Inflections +# are locale specific, and you may define rules for as many different +# locales as you wish. All of these examples are active by default: +# ActiveSupport::Inflector.inflections(:en) do |inflect| +# inflect.plural /^(ox)$/i, '\1en' +# inflect.singular /^(ox)en/i, '\1' +# inflect.irregular 'person', 'people' +# inflect.uncountable %w( fish sheep ) +# end + +# These inflection rules are supported but not enabled by default: +# ActiveSupport::Inflector.inflections(:en) do |inflect| +# inflect.acronym 'RESTful' +# end diff --git a/sprangular/spec/dummy/config/initializers/mime_types.rb b/sprangular/spec/dummy/config/initializers/mime_types.rb new file mode 100644 index 00000000..dc189968 --- /dev/null +++ b/sprangular/spec/dummy/config/initializers/mime_types.rb @@ -0,0 +1,4 @@ +# Be sure to restart your server when you modify this file. + +# Add new mime types for use in respond_to blocks: +# Mime::Type.register "text/richtext", :rtf diff --git a/sprangular/spec/dummy/config/initializers/session_store.rb b/sprangular/spec/dummy/config/initializers/session_store.rb new file mode 100644 index 00000000..e766b67b --- /dev/null +++ b/sprangular/spec/dummy/config/initializers/session_store.rb @@ -0,0 +1,3 @@ +# Be sure to restart your server when you modify this file. + +Rails.application.config.session_store :cookie_store, key: '_dummy_session' diff --git a/sprangular/spec/dummy/config/initializers/spree.rb b/sprangular/spec/dummy/config/initializers/spree.rb new file mode 100644 index 00000000..80905058 --- /dev/null +++ b/sprangular/spec/dummy/config/initializers/spree.rb @@ -0,0 +1,14 @@ +# Configure Spree Preferences +# +# Note: Initializing preferences available within the Admin will overwrite any changes that were made through the user interface when you restart. +# If you would like users to be able to update a setting with the Admin it should NOT be set here. +# +# In order to initialize a setting do: +# config.setting_name = 'new value' +Spree.config do |config| + # Example: + # Uncomment to stop tracking inventory levels in the application + # config.track_inventory_levels = false +end + +Spree.user_class = "Spree::LegacyUser" diff --git a/sprangular/spec/dummy/config/initializers/wrap_parameters.rb b/sprangular/spec/dummy/config/initializers/wrap_parameters.rb new file mode 100644 index 00000000..33725e95 --- /dev/null +++ b/sprangular/spec/dummy/config/initializers/wrap_parameters.rb @@ -0,0 +1,14 @@ +# Be sure to restart your server when you modify this file. + +# This file contains settings for ActionController::ParamsWrapper which +# is enabled by default. + +# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. +ActiveSupport.on_load(:action_controller) do + wrap_parameters format: [:json] if respond_to?(:wrap_parameters) +end + +# To enable root element in JSON for ActiveRecord objects. +# ActiveSupport.on_load(:active_record) do +# self.include_root_in_json = true +# end diff --git a/sprangular/spec/dummy/config/locales/en.yml b/sprangular/spec/dummy/config/locales/en.yml new file mode 100644 index 00000000..06539571 --- /dev/null +++ b/sprangular/spec/dummy/config/locales/en.yml @@ -0,0 +1,23 @@ +# Files in the config/locales directory are used for internationalization +# and are automatically loaded by Rails. If you want to use locales other +# than English, add the necessary files in this directory. +# +# To use the locales, use `I18n.t`: +# +# I18n.t 'hello' +# +# In views, this is aliased to just `t`: +# +# <%= t('hello') %> +# +# To use a different locale, set it with `I18n.locale`: +# +# I18n.locale = :es +# +# This would use the information in config/locales/es.yml. +# +# To learn more, please read the Rails Internationalization guide +# available at http://guides.rubyonrails.org/i18n.html. + +en: + hello: "Hello world" diff --git a/sprangular/spec/dummy/config/routes.rb b/sprangular/spec/dummy/config/routes.rb new file mode 100644 index 00000000..6b664809 --- /dev/null +++ b/sprangular/spec/dummy/config/routes.rb @@ -0,0 +1,4 @@ +Rails.application.routes.draw do + mount Sprangular::Engine => '/' + mount Spree::Core::Engine => '/spree' +end diff --git a/sprangular/spec/dummy/config/secrets.yml b/sprangular/spec/dummy/config/secrets.yml new file mode 100644 index 00000000..1703475d --- /dev/null +++ b/sprangular/spec/dummy/config/secrets.yml @@ -0,0 +1,22 @@ +# Be sure to restart your server when you modify this file. + +# Your secret key is used for verifying the integrity of signed cookies. +# If you change this key, all old signed cookies will become invalid! + +# Make sure the secret is at least 30 characters and all random, +# no regular words or you'll be exposed to dictionary attacks. +# You can use `rake secret` to generate a secure secret key. + +# Make sure the secrets in this file are kept private +# if you're sharing your code publicly. + +development: + secret_key_base: dfb17a6bd8c6f548939065712bd51b8eb9d051c39b9ac5df7fe770ceb7a9a6812f77fd60a7c4a1e4bb7b1cd34f26d79985c205c6e8b29be26c540ac592ebc6d6 + +test: + secret_key_base: 8ddaa2cc0aa058d7ca9f732a96f08993e4d90592a326d9c10d28cb96e4c0fc61d3cc504c0f7e07ca52843b3b6a48d895fdd43af6010cb9c2eb938bae668ffd79 + +# Do not keep production secrets in the repository, +# instead read values from the environment. +production: + secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> diff --git a/sprangular/spec/dummy/config/spree.yml b/sprangular/spec/dummy/config/spree.yml new file mode 100644 index 00000000..4f08bec2 --- /dev/null +++ b/sprangular/spec/dummy/config/spree.yml @@ -0,0 +1,2 @@ +--- +version: 2.3.1 diff --git a/sprangular/spec/dummy/db/migrate/20140814105631_spree_one_two.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105631_spree_one_two.spree.rb new file mode 100644 index 00000000..ad81bfea --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105631_spree_one_two.spree.rb @@ -0,0 +1,482 @@ +# This migration comes from spree (originally 20120831092320) +class SpreeOneTwo < ActiveRecord::Migration + def up + # This migration is just a compressed version of all the previous + # migrations for spree_core. Do not run it if one of the core tables + # already exists. Assume the best. + return if table_exists?(:spree_addresses) + + + create_table :spree_activators do |t| + t.string :description + t.datetime :expires_at + t.datetime :starts_at + t.string :name + t.string :event_name + t.string :type + t.integer :usage_limit + t.string :match_policy, :default => 'all' + t.string :code + t.boolean :advertise, :default => false + t.string :path + t.timestamps + end + + create_table :spree_addresses do |t| + t.string :firstname + t.string :lastname + t.string :address1 + t.string :address2 + t.string :city + t.string :zipcode + t.string :phone + t.string :state_name + t.string :alternative_phone + t.string :company + t.references :state + t.references :country + t.timestamps + end + + add_index :spree_addresses, [:firstname], :name => 'index_addresses_on_firstname' + add_index :spree_addresses, [:lastname], :name => 'index_addresses_on_lastname' + + create_table :spree_adjustments do |t| + t.references :source, :polymorphic => true + t.references :adjustable, :polymorphic => true + t.references :originator, :polymorphic => true + t.decimal :amount, :precision => 8, :scale => 2 + t.string :label + t.boolean :mandatory + t.boolean :locked + t.boolean :eligible, :default => true + t.timestamps + end + + add_index :spree_adjustments, [:adjustable_id], :name => 'index_adjustments_on_order_id' + + create_table :spree_assets do |t| + t.references :viewable, :polymorphic => true + t.integer :attachment_width + t.integer :attachment_height + t.integer :attachment_file_size + t.integer :position + t.string :attachment_content_type + t.string :attachment_file_name + t.string :type, :limit => 75 + t.datetime :attachment_updated_at + t.text :alt + end + + add_index :spree_assets, [:viewable_id], :name => 'index_assets_on_viewable_id' + add_index :spree_assets, [:viewable_type, :type], :name => 'index_assets_on_viewable_type_and_type' + + create_table :spree_calculators do |t| + t.string :type + t.references :calculable, :polymorphic => true + t.timestamps + end + + create_table :spree_configurations do |t| + t.string :name + t.string :type, :limit => 50 + t.timestamps + end + + add_index :spree_configurations, [:name, :type], :name => 'index_spree_configurations_on_name_and_type' + + create_table :spree_countries do |t| + t.string :iso_name + t.string :iso + t.string :iso3 + t.string :name + t.integer :numcode + end + + create_table :spree_credit_cards do |t| + t.string :month + t.string :year + t.string :cc_type + t.string :last_digits + t.string :first_name + t.string :last_name + t.string :start_month + t.string :start_year + t.string :issue_number + t.references :address + t.string :gateway_customer_profile_id + t.string :gateway_payment_profile_id + t.timestamps + end + + create_table :spree_gateways do |t| + t.string :type + t.string :name + t.text :description + t.boolean :active, :default => true + t.string :environment, :default => 'development' + t.string :server, :default => 'test' + t.boolean :test_mode, :default => true + t.timestamps + end + + create_table :spree_inventory_units do |t| + t.integer :lock_version, :default => 0 + t.string :state + t.references :variant + t.references :order + t.references :shipment + t.references :return_authorization + t.timestamps + end + + add_index :spree_inventory_units, [:order_id], :name => 'index_inventory_units_on_order_id' + add_index :spree_inventory_units, [:shipment_id], :name => 'index_inventory_units_on_shipment_id' + add_index :spree_inventory_units, [:variant_id], :name => 'index_inventory_units_on_variant_id' + + create_table :spree_line_items do |t| + t.references :variant + t.references :order + t.integer :quantity, :null => false + t.decimal :price, :precision => 8, :scale => 2, :null => false + t.timestamps + end + + add_index :spree_line_items, [:order_id], :name => 'index_spree_line_items_on_order_id' + add_index :spree_line_items, [:variant_id], :name => 'index_spree_line_items_on_variant_id' + + create_table :spree_log_entries do |t| + t.references :source, :polymorphic => true + t.text :details + t.timestamps + end + + create_table :spree_mail_methods do |t| + t.string :environment + t.boolean :active, :default => true + t.timestamps + end + + create_table :spree_option_types do |t| + t.string :name, :limit => 100 + t.string :presentation, :limit => 100 + t.integer :position, :default => 0, :null => false + t.timestamps + end + + create_table :spree_option_types_prototypes, :id => false do |t| + t.references :prototype + t.references :option_type + end + + create_table :spree_option_values do |t| + t.integer :position + t.string :name + t.string :presentation + t.references :option_type + t.timestamps + end + + create_table :spree_option_values_variants, :id => false do |t| + t.references :variant + t.references :option_value + end + + add_index :spree_option_values_variants, [:variant_id, :option_value_id], :name => 'index_option_values_variants_on_variant_id_and_option_value_id' + add_index :spree_option_values_variants, [:variant_id], :name => 'index_spree_option_values_variants_on_variant_id' + + create_table :spree_orders do |t| + t.string :number, :limit => 15 + t.decimal :item_total, :precision => 8, :scale => 2, :default => 0.0, :null => false + t.decimal :total, :precision => 8, :scale => 2, :default => 0.0, :null => false + t.string :state + t.decimal :adjustment_total, :precision => 8, :scale => 2, :default => 0.0, :null => false + t.references :user + t.datetime :completed_at + t.references :bill_address + t.references :ship_address + t.decimal :payment_total, :precision => 8, :scale => 2, :default => 0.0 + t.references :shipping_method + t.string :shipment_state + t.string :payment_state + t.string :email + t.text :special_instructions + t.timestamps + end + + add_index :spree_orders, [:number], :name => 'index_spree_orders_on_number' + + create_table :spree_payment_methods do |t| + t.string :type + t.string :name + t.text :description + t.boolean :active, :default => true + t.string :environment, :default => 'development' + t.datetime :deleted_at + t.string :display_on + t.timestamps + end + + create_table :spree_payments do |t| + t.decimal :amount, :precision => 8, :scale => 2, :default => 0.0, :null => false + t.references :order + t.references :source, :polymorphic => true + t.references :payment_method + t.string :state + t.string :response_code + t.string :avs_response + t.timestamps + end + + create_table :spree_preferences do |t| + t.string :name, :limit => 100 + t.references :owner, :polymorphic => true + t.text :value + t.string :key + t.string :value_type + t.timestamps + end + + add_index :spree_preferences, [:key], :name => 'index_spree_preferences_on_key', :unique => true + + create_table :spree_product_option_types do |t| + t.integer :position + t.references :product + t.references :option_type + t.timestamps + end + + create_table :spree_product_properties do |t| + t.string :value + t.references :product + t.references :property + t.timestamps + end + + add_index :spree_product_properties, [:product_id], :name => 'index_product_properties_on_product_id' + + create_table :spree_products do |t| + t.string :name, :default => '', :null => false + t.text :description + t.datetime :available_on + t.datetime :deleted_at + t.string :permalink + t.string :meta_description + t.string :meta_keywords + t.references :tax_category + t.references :shipping_category + t.integer :count_on_hand, :default => 0, :null => false + t.timestamps + end + + add_index :spree_products, [:available_on], :name => 'index_spree_products_on_available_on' + add_index :spree_products, [:deleted_at], :name => 'index_spree_products_on_deleted_at' + add_index :spree_products, [:name], :name => 'index_spree_products_on_name' + add_index :spree_products, [:permalink], :name => 'index_spree_products_on_permalink' + + create_table :spree_products_taxons, :id => false do |t| + t.references :product + t.references :taxon + end + + add_index :spree_products_taxons, [:product_id], :name => 'index_spree_products_taxons_on_product_id' + add_index :spree_products_taxons, [:taxon_id], :name => 'index_spree_products_taxons_on_taxon_id' + + create_table :spree_properties do |t| + t.string :name + t.string :presentation, :null => false + t.timestamps + end + + create_table :spree_properties_prototypes, :id => false do |t| + t.references :prototype + t.references :property + end + + create_table :spree_prototypes do |t| + t.string :name + t.timestamps + end + + create_table :spree_return_authorizations do |t| + t.string :number + t.string :state + t.decimal :amount, :precision => 8, :scale => 2, :default => 0.0, :null => false + t.references :order + t.text :reason + t.timestamps + end + + create_table :spree_roles do |t| + t.string :name + end + + create_table :spree_roles_users, :id => false do |t| + t.references :role + t.references :user + end + + add_index :spree_roles_users, [:role_id], :name => 'index_spree_roles_users_on_role_id' + add_index :spree_roles_users, [:user_id], :name => 'index_spree_roles_users_on_user_id' + + create_table :spree_shipments do |t| + t.string :tracking + t.string :number + t.decimal :cost, :precision => 8, :scale => 2 + t.datetime :shipped_at + t.references :order + t.references :shipping_method + t.references :address + t.string :state + t.timestamps + end + + add_index :spree_shipments, [:number], :name => 'index_shipments_on_number' + + create_table :spree_shipping_categories do |t| + t.string :name + t.timestamps + end + + create_table :spree_shipping_methods do |t| + t.string :name + t.references :zone + t.string :display_on + t.references :shipping_category + t.boolean :match_none + t.boolean :match_all + t.boolean :match_one + t.datetime :deleted_at + t.timestamps + end + + create_table :spree_state_changes do |t| + t.string :name + t.string :previous_state + t.references :stateful + t.references :user + t.string :stateful_type + t.string :next_state + t.timestamps + end + + create_table :spree_states do |t| + t.string :name + t.string :abbr + t.references :country + end + + create_table :spree_tax_categories do |t| + t.string :name + t.string :description + t.boolean :is_default, :default => false + t.datetime :deleted_at + t.timestamps + end + + create_table :spree_tax_rates do |t| + t.decimal :amount, :precision => 8, :scale => 5 + t.references :zone + t.references :tax_category + t.boolean :included_in_price, :default => false + t.timestamps + end + + create_table :spree_taxonomies do |t| + t.string :name, :null => false + t.timestamps + end + + create_table :spree_taxons do |t| + t.references :parent + t.integer :position, :default => 0 + t.string :name, :null => false + t.string :permalink + t.references :taxonomy + t.integer :lft + t.integer :rgt + t.string :icon_file_name + t.string :icon_content_type + t.integer :icon_file_size + t.datetime :icon_updated_at + t.text :description + t.timestamps + end + + add_index :spree_taxons, [:parent_id], :name => 'index_taxons_on_parent_id' + add_index :spree_taxons, [:permalink], :name => 'index_taxons_on_permalink' + add_index :spree_taxons, [:taxonomy_id], :name => 'index_taxons_on_taxonomy_id' + + create_table :spree_tokenized_permissions, :force => true do |t| + t.references :permissable, :polymorphic => true + t.string :token + t.timestamps + end + + add_index :spree_tokenized_permissions, [:permissable_id, :permissable_type], :name => 'index_tokenized_name_and_type' + + create_table :spree_trackers do |t| + t.string :environment + t.string :analytics_id + t.boolean :active, :default => true + t.timestamps + end + + create_table :spree_users do |t| + t.string :encrypted_password, :limit => 128 + t.string :password_salt, :limit => 128 + t.string :email + t.string :remember_token + t.string :persistence_token + t.string :reset_password_token + t.string :perishable_token + t.integer :sign_in_count, :default => 0, :null => false + t.integer :failed_attempts, :default => 0, :null => false + t.datetime :last_request_at + t.datetime :current_sign_in_at + t.datetime :last_sign_in_at + t.string :current_sign_in_ip + t.string :last_sign_in_ip + t.string :login + t.references :ship_address + t.references :bill_address + t.string :authentication_token + t.string :unlock_token + t.datetime :locked_at + t.datetime :remember_created_at + t.datetime :reset_password_sent_at + t.timestamps + end + + create_table :spree_variants do |t| + t.string :sku, :default => '', :null => false + t.decimal :price, :precision => 8, :scale => 2, :null => false + t.decimal :weight, :precision => 8, :scale => 2 + t.decimal :height, :precision => 8, :scale => 2 + t.decimal :width, :precision => 8, :scale => 2 + t.decimal :depth, :precision => 8, :scale => 2 + t.datetime :deleted_at + t.boolean :is_master, :default => false + t.references :product + t.integer :count_on_hand, :default => 0, :null => false + t.decimal :cost_price, :precision => 8, :scale => 2 + t.integer :position + end + + add_index :spree_variants, [:product_id], :name => 'index_spree_variants_on_product_id' + + create_table :spree_zone_members do |t| + t.references :zoneable, :polymorphic => true + t.references :zone + t.timestamps + end + + create_table :spree_zones do |t| + t.string :name + t.string :description + t.boolean :default_tax, :default => false + t.integer :zone_members_count, :default => 0 + t.timestamps + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105632_spree_promo_one_two.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105632_spree_promo_one_two.spree.rb new file mode 100644 index 00000000..85171018 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105632_spree_promo_one_two.spree.rb @@ -0,0 +1,46 @@ +# This migration comes from spree (originally 20120831092359) +class SpreePromoOneTwo < ActiveRecord::Migration + def up + # This migration is just a compressed migration for all previous versions of spree_promo + return if table_exists?(:spree_products_promotion_rules) + + create_table :spree_products_promotion_rules, :id => false, :force => true do |t| + t.references :product + t.references :promotion_rule + end + + add_index :spree_products_promotion_rules, [:product_id], :name => 'index_products_promotion_rules_on_product_id' + add_index :spree_products_promotion_rules, [:promotion_rule_id], :name => 'index_products_promotion_rules_on_promotion_rule_id' + + create_table :spree_promotion_action_line_items, :force => true do |t| + t.references :promotion_action + t.references :variant + t.integer :quantity, :default => 1 + end + + create_table :spree_promotion_actions, :force => true do |t| + t.references :activator + t.integer :position + t.string :type + end + + create_table :spree_promotion_rules, :force => true do |t| + t.references :activator + t.references :user + t.references :product_group + t.string :type + t.timestamps + end + + add_index :spree_promotion_rules, [:product_group_id], :name => 'index_promotion_rules_on_product_group_id' + add_index :spree_promotion_rules, [:user_id], :name => 'index_promotion_rules_on_user_id' + + create_table :spree_promotion_rules_users, :id => false, :force => true do |t| + t.references :user + t.references :promotion_rule + end + + add_index :spree_promotion_rules_users, [:promotion_rule_id], :name => 'index_promotion_rules_users_on_promotion_rule_id' + add_index :spree_promotion_rules_users, [:user_id], :name => 'index_promotion_rules_users_on_user_id' + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105633_add_tax_rate_label.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105633_add_tax_rate_label.spree.rb new file mode 100644 index 00000000..c39a83c5 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105633_add_tax_rate_label.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20120905145253) +class AddTaxRateLabel < ActiveRecord::Migration + def change + add_column :spree_tax_rates, :name, :string + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105634_add_toggle_tax_rate_display.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105634_add_toggle_tax_rate_display.spree.rb new file mode 100644 index 00000000..83da18b4 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105634_add_toggle_tax_rate_display.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20120905151823) +class AddToggleTaxRateDisplay < ActiveRecord::Migration + def change + add_column :spree_tax_rates, :show_rate_in_label, :boolean, :default => true + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105635_remove_unused_preference_columns.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105635_remove_unused_preference_columns.spree.rb new file mode 100644 index 00000000..6c049daa --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105635_remove_unused_preference_columns.spree.rb @@ -0,0 +1,9 @@ +# This migration comes from spree (originally 20120929093553) +class RemoveUnusedPreferenceColumns < ActiveRecord::Migration + def change + # Columns have already been removed if the application was upgraded from an older version, but must be removed from new apps. + remove_column :spree_preferences, :name if ActiveRecord::Base.connection.column_exists?(:spree_preferences, :name) + remove_column :spree_preferences, :owner_id if ActiveRecord::Base.connection.column_exists?(:spree_preferences, :owner_id) + remove_column :spree_preferences, :owner_type if ActiveRecord::Base.connection.column_exists?(:spree_preferences, :owner_type) + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105636_add_lock_version_to_variant.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105636_add_lock_version_to_variant.spree.rb new file mode 100644 index 00000000..0e8cc923 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105636_add_lock_version_to_variant.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20121009142519) +class AddLockVersionToVariant < ActiveRecord::Migration + def change + add_column :spree_variants, :lock_version, :integer, :default => 0 + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105637_add_states_required_to_countries.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105637_add_states_required_to_countries.spree.rb new file mode 100644 index 00000000..415001d1 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105637_add_states_required_to_countries.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20121010142909) +class AddStatesRequiredToCountries < ActiveRecord::Migration + def change + add_column :spree_countries, :states_required, :boolean,:default => true + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105638_add_on_demand_to_product_and_variant.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105638_add_on_demand_to_product_and_variant.spree.rb new file mode 100644 index 00000000..ba258ebf --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105638_add_on_demand_to_product_and_variant.spree.rb @@ -0,0 +1,7 @@ +# This migration comes from spree (originally 20121012071449) +class AddOnDemandToProductAndVariant < ActiveRecord::Migration + def change + add_column :spree_products, :on_demand, :boolean, :default => false + add_column :spree_variants, :on_demand, :boolean, :default => false + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105639_remove_not_null_constraint_from_products_on_hand.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105639_remove_not_null_constraint_from_products_on_hand.spree.rb new file mode 100644 index 00000000..acbebfc6 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105639_remove_not_null_constraint_from_products_on_hand.spree.rb @@ -0,0 +1,12 @@ +# This migration comes from spree (originally 20121017010007) +class RemoveNotNullConstraintFromProductsOnHand < ActiveRecord::Migration + def up + change_column :spree_products, :count_on_hand, :integer, :null => true + change_column :spree_variants, :count_on_hand, :integer, :null => true + end + + def down + change_column :spree_products, :count_on_hand, :integer, :null => false + change_column :spree_variants, :count_on_hand, :integer, :null => false + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105640_split_prices_from_variants.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105640_split_prices_from_variants.spree.rb new file mode 100644 index 00000000..f2275347 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105640_split_prices_from_variants.spree.rb @@ -0,0 +1,32 @@ +# This migration comes from spree (originally 20121031162139) +class SplitPricesFromVariants < ActiveRecord::Migration + def up + create_table :spree_prices do |t| + t.integer :variant_id, :null => false + t.decimal :amount, :precision => 8, :scale => 2, :null => false + t.string :currency + end + + Spree::Variant.all.each do |variant| + Spree::Price.create!( + :variant_id => variant.id, + :amount => variant[:price], + :currency => Spree::Config[:currency] + ) + end + + remove_column :spree_variants, :price + end + + def down + prices = ActiveRecord::Base.connection.execute("select variant_id, amount from spree_prices") + add_column :spree_variants, :price, :decimal, :after => :sku, :scale => 2, :precision => 8 + + prices.each do |price| + ActiveRecord::Base.connection.execute("update spree_variants set price = #{price['amount']} where id = #{price['variant_id']}") + end + + change_column :spree_variants, :price, :decimal, :after => :sku, :scale => 2, :precision => 8, :null => false + drop_table :spree_prices + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105641_remove_not_null_from_spree_prices_amount.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105641_remove_not_null_from_spree_prices_amount.spree.rb new file mode 100644 index 00000000..beb5f7a8 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105641_remove_not_null_from_spree_prices_amount.spree.rb @@ -0,0 +1,10 @@ +# This migration comes from spree (originally 20121107003422) +class RemoveNotNullFromSpreePricesAmount < ActiveRecord::Migration + def up + change_column :spree_prices, :amount, :decimal, :precision => 8, :scale => 2, :null => true + end + + def down + change_column :spree_prices, :amount, :decimal, :precision => 8, :scale => 2, :null => false + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105642_add_currency_to_line_items.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105642_add_currency_to_line_items.spree.rb new file mode 100644 index 00000000..b0732ee6 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105642_add_currency_to_line_items.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20121107184631) +class AddCurrencyToLineItems < ActiveRecord::Migration + def change + add_column :spree_line_items, :currency, :string + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105643_add_currency_to_orders.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105643_add_currency_to_orders.spree.rb new file mode 100644 index 00000000..d84bc3b7 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105643_add_currency_to_orders.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20121107194006) +class AddCurrencyToOrders < ActiveRecord::Migration + def change + add_column :spree_orders, :currency, :string + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105644_add_cost_currency_to_variants.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105644_add_cost_currency_to_variants.spree.rb new file mode 100644 index 00000000..a31b9649 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105644_add_cost_currency_to_variants.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20121109173623) +class AddCostCurrencyToVariants < ActiveRecord::Migration + def change + add_column :spree_variants, :cost_currency, :string, :after => :cost_price + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105645_remove_display_on_from_payment_methods.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105645_remove_display_on_from_payment_methods.spree.rb new file mode 100644 index 00000000..c45e413c --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105645_remove_display_on_from_payment_methods.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20121111231553) +class RemoveDisplayOnFromPaymentMethods < ActiveRecord::Migration + def up + remove_column :spree_payment_methods, :display_on + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105646_add_position_to_taxonomies.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105646_add_position_to_taxonomies.spree.rb new file mode 100644 index 00000000..177870b4 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105646_add_position_to_taxonomies.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20121124203911) +class AddPositionToTaxonomies < ActiveRecord::Migration + def change + add_column :spree_taxonomies, :position, :integer, :default => 0 + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105647_add_last_ip_to_spree_orders.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105647_add_last_ip_to_spree_orders.spree.rb new file mode 100644 index 00000000..e85fc41f --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105647_add_last_ip_to_spree_orders.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20121126040517) +class AddLastIpToSpreeOrders < ActiveRecord::Migration + def change + add_column :spree_orders, :last_ip_address, :string + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105648_add_state_to_spree_adjustments.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105648_add_state_to_spree_adjustments.spree.rb new file mode 100644 index 00000000..a4224678 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105648_add_state_to_spree_adjustments.spree.rb @@ -0,0 +1,7 @@ +# This migration comes from spree (originally 20121213162028) +class AddStateToSpreeAdjustments < ActiveRecord::Migration + def change + add_column :spree_adjustments, :state, :string + remove_column :spree_adjustments, :locked + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105649_add_display_on_to_spree_payment_methods.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105649_add_display_on_to_spree_payment_methods.spree.rb new file mode 100644 index 00000000..240870bb --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105649_add_display_on_to_spree_payment_methods.spree.rb @@ -0,0 +1,10 @@ +# This migration comes from spree (originally 20130114053446) +class AddDisplayOnToSpreePaymentMethods < ActiveRecord::Migration + def self.up + add_column :spree_payment_methods, :display_on, :string + end + + def self.down + remove_column :spree_payment_methods, :display_on + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105650_add_position_to_product_properties.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105650_add_position_to_product_properties.spree.rb new file mode 100644 index 00000000..93da5d87 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105650_add_position_to_product_properties.spree.rb @@ -0,0 +1,7 @@ +# This migration comes from spree (originally 20130120201805) +class AddPositionToProductProperties < ActiveRecord::Migration + def change + add_column :spree_product_properties, :position, :integer, :default => 0 + end +end + diff --git a/sprangular/spec/dummy/db/migrate/20140814105651_add_identifier_to_spree_payments.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105651_add_identifier_to_spree_payments.spree.rb new file mode 100644 index 00000000..91a65d92 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105651_add_identifier_to_spree_payments.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130203232234) +class AddIdentifierToSpreePayments < ActiveRecord::Migration + def change + add_column :spree_payments, :identifier, :string + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105652_add_order_id_index_to_payments.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105652_add_order_id_index_to_payments.spree.rb new file mode 100644 index 00000000..49b378ab --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105652_add_order_id_index_to_payments.spree.rb @@ -0,0 +1,10 @@ +# This migration comes from spree (originally 20130207155350) +class AddOrderIdIndexToPayments < ActiveRecord::Migration + def self.up + add_index :spree_payments, :order_id + end + + def self.down + remove_index :spree_payments, :order_id + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105653_add_primary_to_spree_products_taxons.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105653_add_primary_to_spree_products_taxons.spree.rb new file mode 100644 index 00000000..fd438d5c --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105653_add_primary_to_spree_products_taxons.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130208032954) +class AddPrimaryToSpreeProductsTaxons < ActiveRecord::Migration + def change + add_column :spree_products_taxons, :id, :primary_key + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105654_create_spree_stock_items.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105654_create_spree_stock_items.spree.rb new file mode 100644 index 00000000..cd6f3497 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105654_create_spree_stock_items.spree.rb @@ -0,0 +1,15 @@ +# This migration comes from spree (originally 20130211190146) +class CreateSpreeStockItems < ActiveRecord::Migration + def change + create_table :spree_stock_items do |t| + t.belongs_to :stock_location + t.belongs_to :variant + t.integer :count_on_hand, null: false, default: 0 + t.integer :lock_version + + t.timestamps + end + add_index :spree_stock_items, :stock_location_id + add_index :spree_stock_items, [:stock_location_id, :variant_id], :name => 'stock_item_by_loc_and_var_id' + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105655_create_spree_stock_locations.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105655_create_spree_stock_locations.spree.rb new file mode 100644 index 00000000..a3e4d1a4 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105655_create_spree_stock_locations.spree.rb @@ -0,0 +1,12 @@ +# This migration comes from spree (originally 20130211191120) +class CreateSpreeStockLocations < ActiveRecord::Migration + def change + create_table :spree_stock_locations do |t| + t.string :name + t.belongs_to :address + + t.timestamps + end + add_index :spree_stock_locations, :address_id + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105656_create_default_stock.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105656_create_default_stock.spree.rb new file mode 100644 index 00000000..f76e132a --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105656_create_default_stock.spree.rb @@ -0,0 +1,31 @@ +# This migration comes from spree (originally 20130213191427) +class CreateDefaultStock < ActiveRecord::Migration + def up + Spree::StockLocation.skip_callback(:create, :after, :create_stock_items) + Spree::StockItem.skip_callback(:save, :after, :process_backorders) + location = Spree::StockLocation.new(name: 'default') + location.save(validate: false) + + Spree::Variant.find_each do |variant| + stock_item = Spree::StockItem.unscoped.build(stock_location: location, variant: variant) + stock_item.send(:count_on_hand=, variant.count_on_hand) + # Avoid running default_scope defined by acts_as_paranoid, related to #3805, + # validations would run a query with a delete_at column that might not be present yet + stock_item.save! validate: false + end + + remove_column :spree_variants, :count_on_hand + end + + def down + add_column :spree_variants, :count_on_hand, :integer + + Spree::StockItem.find_each do |stock_item| + stock_item.variant.update_column :count_on_hand, stock_item.count_on_hand + end + + Spree::StockLocation.delete_all + Spree::StockItem.delete_all + end +end + diff --git a/sprangular/spec/dummy/db/migrate/20140814105657_add_order_id_index_to_shipments.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105657_add_order_id_index_to_shipments.spree.rb new file mode 100644 index 00000000..5d0ebdbc --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105657_add_order_id_index_to_shipments.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130222032153) +class AddOrderIdIndexToShipments < ActiveRecord::Migration + def change + add_index :spree_shipments, :order_id + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105658_change_meta_description_on_spree_products_to_text.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105658_change_meta_description_on_spree_products_to_text.spree.rb new file mode 100644 index 00000000..66fff521 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105658_change_meta_description_on_spree_products_to_text.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130226032817) +class ChangeMetaDescriptionOnSpreeProductsToText < ActiveRecord::Migration + def change + change_column :spree_products, :meta_description, :text, :limit => nil + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105659_add_stock_location_id_to_spree_shipments.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105659_add_stock_location_id_to_spree_shipments.spree.rb new file mode 100644 index 00000000..e102d7fe --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105659_add_stock_location_id_to_spree_shipments.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130226191231) +class AddStockLocationIdToSpreeShipments < ActiveRecord::Migration + def change + add_column :spree_shipments, :stock_location_id, :integer + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105660_add_pending_to_inventory_unit.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105660_add_pending_to_inventory_unit.spree.rb new file mode 100644 index 00000000..c3879d36 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105660_add_pending_to_inventory_unit.spree.rb @@ -0,0 +1,7 @@ +# This migration comes from spree (originally 20130227143905) +class AddPendingToInventoryUnit < ActiveRecord::Migration + def change + add_column :spree_inventory_units, :pending, :boolean, :default => true + Spree::InventoryUnit.update_all(:pending => false) + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105661_remove_on_demand_from_product_and_variant.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105661_remove_on_demand_from_product_and_variant.spree.rb new file mode 100644 index 00000000..72ac77b9 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105661_remove_on_demand_from_product_and_variant.spree.rb @@ -0,0 +1,7 @@ +# This migration comes from spree (originally 20130228164411) +class RemoveOnDemandFromProductAndVariant < ActiveRecord::Migration + def change + remove_column :spree_products, :on_demand + remove_column :spree_variants, :on_demand + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105662_create_shipping_method_zone.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105662_create_shipping_method_zone.spree.rb new file mode 100644 index 00000000..2d99447b --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105662_create_shipping_method_zone.spree.rb @@ -0,0 +1,23 @@ +# This migration comes from spree (originally 20130228210442) +class CreateShippingMethodZone < ActiveRecord::Migration + def up + create_table :shipping_methods_zones, :id => false do |t| + t.integer :shipping_method_id + t.integer :zone_id + end + # This association has been corrected in a latter migration + # but when this database migration runs, the table is still incorrectly named + # 'shipping_methods_zones' instead of 'spre_shipping_methods_zones' + Spree::ShippingMethod.has_and_belongs_to_many :zones, :join_table => 'shipping_methods_zones', + :class_name => 'Spree::Zone', + :foreign_key => 'shipping_method_id' + Spree::ShippingMethod.all.each{|sm| sm.zones << Spree::Zone.find(sm.zone_id)} + + remove_column :spree_shipping_methods, :zone_id + end + + def down + drop_table :shipping_methods_zones + add_column :spree_shipping_methods, :zone_id, :integer + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105663_remove_shipping_category_id_from_shipping_method.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105663_remove_shipping_category_id_from_shipping_method.spree.rb new file mode 100644 index 00000000..f686ac4a --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105663_remove_shipping_category_id_from_shipping_method.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130301162745) +class RemoveShippingCategoryIdFromShippingMethod < ActiveRecord::Migration + def change + remove_column :spree_shipping_methods, :shipping_category_id + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105664_create_shipping_method_categories.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105664_create_shipping_method_categories.spree.rb new file mode 100644 index 00000000..2af03a7e --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105664_create_shipping_method_categories.spree.rb @@ -0,0 +1,14 @@ +# This migration comes from spree (originally 20130301162924) +class CreateShippingMethodCategories < ActiveRecord::Migration + def change + create_table :spree_shipping_method_categories do |t| + t.integer :shipping_method_id, :null => false + t.integer :shipping_category_id, :null => false + + t.timestamps + end + + add_index :spree_shipping_method_categories, :shipping_method_id + add_index :spree_shipping_method_categories, :shipping_category_id + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105665_add_tracking_url_to_spree_shipping_methods.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105665_add_tracking_url_to_spree_shipping_methods.spree.rb new file mode 100644 index 00000000..28a98071 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105665_add_tracking_url_to_spree_shipping_methods.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130301205200) +class AddTrackingUrlToSpreeShippingMethods < ActiveRecord::Migration + def change + add_column :spree_shipping_methods, :tracking_url, :string + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105666_create_spree_shipping_rates.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105666_create_spree_shipping_rates.spree.rb new file mode 100644 index 00000000..f2932a57 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105666_create_spree_shipping_rates.spree.rb @@ -0,0 +1,25 @@ +# This migration comes from spree (originally 20130304162240) +class CreateSpreeShippingRates < ActiveRecord::Migration + def up + create_table :spree_shipping_rates do |t| + t.belongs_to :shipment + t.belongs_to :shipping_method + t.boolean :selected, :default => false + t.decimal :cost, :precision => 8, :scale => 2 + t.timestamps + end + add_index(:spree_shipping_rates, [:shipment_id, :shipping_method_id], + :name => 'spree_shipping_rates_join_index', + :unique => true) + + # Spree::Shipment.all.each do |shipment| + # shipping_method = Spree::ShippingMethod.find(shipment.shipment_method_id) + # shipment.add_shipping_method(shipping_method, true) + # end + end + + def down + # add_column :spree_shipments, :shipping_method_id, :integer + drop_table :spree_shipping_rates + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105667_remove_category_match_attributes_from_shipping_method.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105667_remove_category_match_attributes_from_shipping_method.spree.rb new file mode 100644 index 00000000..1562aecd --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105667_remove_category_match_attributes_from_shipping_method.spree.rb @@ -0,0 +1,8 @@ +# This migration comes from spree (originally 20130304192936) +class RemoveCategoryMatchAttributesFromShippingMethod < ActiveRecord::Migration + def change + remove_column :spree_shipping_methods, :match_none + remove_column :spree_shipping_methods, :match_one + remove_column :spree_shipping_methods, :match_all + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105668_create_stock_movements.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105668_create_stock_movements.spree.rb new file mode 100644 index 00000000..d7c8cb88 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105668_create_stock_movements.spree.rb @@ -0,0 +1,13 @@ +# This migration comes from spree (originally 20130305143310) +class CreateStockMovements < ActiveRecord::Migration + def change + create_table :spree_stock_movements do |t| + t.belongs_to :stock_item + t.integer :quantity + t.string :action + + t.timestamps + end + add_index :spree_stock_movements, :stock_item_id + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105669_add_address_fields_to_stock_location.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105669_add_address_fields_to_stock_location.spree.rb new file mode 100644 index 00000000..4a16efeb --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105669_add_address_fields_to_stock_location.spree.rb @@ -0,0 +1,23 @@ +# This migration comes from spree (originally 20130306181701) +class AddAddressFieldsToStockLocation < ActiveRecord::Migration + def change + remove_column :spree_stock_locations, :address_id + + add_column :spree_stock_locations, :address1, :string + add_column :spree_stock_locations, :address2, :string + add_column :spree_stock_locations, :city, :string + add_column :spree_stock_locations, :state_id, :integer + add_column :spree_stock_locations, :state_name, :string + add_column :spree_stock_locations, :country_id, :integer + add_column :spree_stock_locations, :zipcode, :string + add_column :spree_stock_locations, :phone, :string + + + usa = Spree::Country.where(:iso => 'US').first + # In case USA isn't found. + # See #3115 + country = usa || Spree::Country.first + Spree::Country.reset_column_information + Spree::StockLocation.update_all(:country_id => country) + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105670_add_active_field_to_stock_locations.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105670_add_active_field_to_stock_locations.spree.rb new file mode 100644 index 00000000..0e69642d --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105670_add_active_field_to_stock_locations.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130306191917) +class AddActiveFieldToStockLocations < ActiveRecord::Migration + def change + add_column :spree_stock_locations, :active, :boolean, :default => true + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105671_add_backorderable_to_stock_item.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105671_add_backorderable_to_stock_item.spree.rb new file mode 100644 index 00000000..839e3b3d --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105671_add_backorderable_to_stock_item.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130306195650) +class AddBackorderableToStockItem < ActiveRecord::Migration + def change + add_column :spree_stock_items, :backorderable, :boolean, :default => true + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105672_add_default_quantity_to_stock_movement.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105672_add_default_quantity_to_stock_movement.spree.rb new file mode 100644 index 00000000..c991b94e --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105672_add_default_quantity_to_stock_movement.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130307161754) +class AddDefaultQuantityToStockMovement < ActiveRecord::Migration + def change + change_column :spree_stock_movements, :quantity, :integer, :default => 0 + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105673_add_source_and_destination_to_stock_movements.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105673_add_source_and_destination_to_stock_movements.spree.rb new file mode 100644 index 00000000..7e0f0987 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105673_add_source_and_destination_to_stock_movements.spree.rb @@ -0,0 +1,9 @@ +# This migration comes from spree (originally 20130318151756) +class AddSourceAndDestinationToStockMovements < ActiveRecord::Migration + def change + change_table :spree_stock_movements do |t| + t.references :source, polymorphic: true + t.references :destination, polymorphic: true + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105674_change_orders_total_precision.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105674_change_orders_total_precision.spree.rb new file mode 100644 index 00000000..cfb1c81e --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105674_change_orders_total_precision.spree.rb @@ -0,0 +1,9 @@ +# This migration comes from spree (originally 20130319062004) +class ChangeOrdersTotalPrecision < ActiveRecord::Migration + def change + change_column :spree_orders, :item_total, :decimal, :precision => 10, :scale => 2, :default => 0.0, :null => false + change_column :spree_orders, :total, :decimal, :precision => 10, :scale => 2, :default => 0.0, :null => false + change_column :spree_orders, :adjustment_total, :decimal, :precision => 10, :scale => 2, :default => 0.0, :null => false + change_column :spree_orders, :payment_total, :decimal, :precision => 10, :scale => 2, :default => 0.0 + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105675_change_spree_payments_amount_precision.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105675_change_spree_payments_amount_precision.spree.rb new file mode 100644 index 00000000..2ac46308 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105675_change_spree_payments_amount_precision.spree.rb @@ -0,0 +1,8 @@ +# This migration comes from spree (originally 20130319063911) +class ChangeSpreePaymentsAmountPrecision < ActiveRecord::Migration + def change + + change_column :spree_payments, :amount, :decimal, :precision => 10, :scale => 2, :default => 0.0, :null => false + + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105676_change_spree_return_authorization_amount_precision.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105676_change_spree_return_authorization_amount_precision.spree.rb new file mode 100644 index 00000000..cf6cc4b3 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105676_change_spree_return_authorization_amount_precision.spree.rb @@ -0,0 +1,8 @@ +# This migration comes from spree (originally 20130319064308) +class ChangeSpreeReturnAuthorizationAmountPrecision < ActiveRecord::Migration + def change + + change_column :spree_return_authorizations, :amount, :decimal, :precision => 10, :scale => 2, :default => 0.0, :null => false + + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105677_change_adjustments_amount_precision.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105677_change_adjustments_amount_precision.spree.rb new file mode 100644 index 00000000..f391987c --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105677_change_adjustments_amount_precision.spree.rb @@ -0,0 +1,8 @@ +# This migration comes from spree (originally 20130319082943) +class ChangeAdjustmentsAmountPrecision < ActiveRecord::Migration + def change + + change_column :spree_adjustments, :amount, :decimal, :precision => 10, :scale => 2 + + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105678_add_originator_to_stock_movement.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105678_add_originator_to_stock_movement.spree.rb new file mode 100644 index 00000000..7c1a7467 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105678_add_originator_to_stock_movement.spree.rb @@ -0,0 +1,8 @@ +# This migration comes from spree (originally 20130319183250) +class AddOriginatorToStockMovement < ActiveRecord::Migration + def change + change_table :spree_stock_movements do |t| + t.references :originator, polymorphic: true + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105679_drop_source_and_destination_from_stock_movement.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105679_drop_source_and_destination_from_stock_movement.spree.rb new file mode 100644 index 00000000..6735614f --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105679_drop_source_and_destination_from_stock_movement.spree.rb @@ -0,0 +1,16 @@ +# This migration comes from spree (originally 20130319190507) +class DropSourceAndDestinationFromStockMovement < ActiveRecord::Migration + def up + change_table :spree_stock_movements do |t| + t.remove_references :source, :polymorphic => true + t.remove_references :destination, :polymorphic => true + end + end + + def down + change_table :spree_stock_movements do |t| + t.references :source, polymorphic: true + t.references :destination, polymorphic: true + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105680_migrate_inventory_unit_sold_to_on_hand.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105680_migrate_inventory_unit_sold_to_on_hand.spree.rb new file mode 100644 index 00000000..4f759427 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105680_migrate_inventory_unit_sold_to_on_hand.spree.rb @@ -0,0 +1,10 @@ +# This migration comes from spree (originally 20130325163316) +class MigrateInventoryUnitSoldToOnHand < ActiveRecord::Migration + def up + Spree::InventoryUnit.where(:state => 'sold').update_all(:state => 'on_hand') + end + + def down + Spree::InventoryUnit.where(:state => 'on_hand').update_all(:state => 'sold') + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105681_add_stock_location_to_rma.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105681_add_stock_location_to_rma.spree.rb new file mode 100644 index 00000000..54d85f76 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105681_add_stock_location_to_rma.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130326175857) +class AddStockLocationToRma < ActiveRecord::Migration + def change + add_column :spree_return_authorizations, :stock_location_id, :integer + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105682_update_shipment_state_for_canceled_orders.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105682_update_shipment_state_for_canceled_orders.spree.rb new file mode 100644 index 00000000..f5c1b5a0 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105682_update_shipment_state_for_canceled_orders.spree.rb @@ -0,0 +1,16 @@ +# This migration comes from spree (originally 20130328130308) +class UpdateShipmentStateForCanceledOrders < ActiveRecord::Migration + def up + shipments = Spree::Shipment.joins(:order). + where("spree_orders.state = 'canceled'") + case Spree::Shipment.connection.adapter_name + when "SQLite3" + shipments.update_all("state = 'cancelled'") + when "MySQL" || "PostgreSQL" + shipments.update_all("spree_shipments.state = 'cancelled'") + end + end + + def down + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105683_add_seo_metas_to_taxons.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105683_add_seo_metas_to_taxons.spree.rb new file mode 100644 index 00000000..a947764a --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105683_add_seo_metas_to_taxons.spree.rb @@ -0,0 +1,10 @@ +# This migration comes from spree (originally 20130328195253) +class AddSeoMetasToTaxons < ActiveRecord::Migration + def change + change_table :spree_taxons do |t| + t.string :meta_title + t.string :meta_description + t.string :meta_keywords + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105684_remove_stock_item_and_variant_lock.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105684_remove_stock_item_and_variant_lock.spree.rb new file mode 100644 index 00000000..c522a765 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105684_remove_stock_item_and_variant_lock.spree.rb @@ -0,0 +1,15 @@ +# This migration comes from spree (originally 20130329134939) +class RemoveStockItemAndVariantLock < ActiveRecord::Migration + def up + # we are moving to pessimistic locking on stock_items + remove_column :spree_stock_items, :lock_version + + # variants no longer manage their count_on_hand so we are removing their lock + remove_column :spree_variants, :lock_version + end + + def down + add_column :spree_stock_items, :lock_version, :integer + add_column :spree_variants, :lock_version, :integer + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105685_add_name_to_spree_credit_cards.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105685_add_name_to_spree_credit_cards.spree.rb new file mode 100644 index 00000000..cb765fc5 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105685_add_name_to_spree_credit_cards.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130413230529) +class AddNameToSpreeCreditCards < ActiveRecord::Migration + def change + add_column :spree_credit_cards, :name, :string + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105686_update_name_fields_on_spree_credit_cards.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105686_update_name_fields_on_spree_credit_cards.spree.rb new file mode 100644 index 00000000..84258bff --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105686_update_name_fields_on_spree_credit_cards.spree.rb @@ -0,0 +1,14 @@ +# This migration comes from spree (originally 20130414000512) +class UpdateNameFieldsOnSpreeCreditCards < ActiveRecord::Migration + def up + if ActiveRecord::Base.connection.adapter_name.downcase.include? "mysql" + execute "UPDATE spree_credit_cards SET name = CONCAT(first_name, ' ', last_name)" + else + execute "UPDATE spree_credit_cards SET name = first_name || ' ' || last_name" + end + end + + def down + execute "UPDATE spree_credit_cards SET name = NULL" + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105687_add_index_to_source_columns_on_adjustments.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105687_add_index_to_source_columns_on_adjustments.spree.rb new file mode 100644 index 00000000..0de2f59b --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105687_add_index_to_source_columns_on_adjustments.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130417120034) +class AddIndexToSourceColumnsOnAdjustments < ActiveRecord::Migration + def change + add_index :spree_adjustments, [:source_type, :source_id] + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105688_update_adjustment_states.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105688_update_adjustment_states.spree.rb new file mode 100644 index 00000000..90407097 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105688_update_adjustment_states.spree.rb @@ -0,0 +1,17 @@ +# This migration comes from spree (originally 20130417120035) +class UpdateAdjustmentStates < ActiveRecord::Migration + def up + Spree::Order.complete.find_each do |order| + order.adjustments.update_all(:state => 'closed') + end + + Spree::Shipment.shipped.includes(:adjustment).find_each do |shipment| + shipment.adjustment.update_column(:state, 'finalized') if shipment.adjustment + end + + Spree::Adjustment.where(:state => nil).update_all(:state => 'open') + end + + def down + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105689_add_shipping_rates_to_shipments.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105689_add_shipping_rates_to_shipments.spree.rb new file mode 100644 index 00000000..89c31641 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105689_add_shipping_rates_to_shipments.spree.rb @@ -0,0 +1,16 @@ +# This migration comes from spree (originally 20130417123427) +class AddShippingRatesToShipments < ActiveRecord::Migration + def up + Spree::Shipment.find_each do |shipment| + shipment.shipping_rates.create(:shipping_method_id => shipment.shipping_method_id, + :cost => shipment.cost, + :selected => true) + end + + remove_column :spree_shipments, :shipping_method_id + end + + def down + add_column :spree_shipments, :shipping_method_id, :integer + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105690_create_spree_stock_transfers.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105690_create_spree_stock_transfers.spree.rb new file mode 100644 index 00000000..1b73d9b1 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105690_create_spree_stock_transfers.spree.rb @@ -0,0 +1,15 @@ +# This migration comes from spree (originally 20130418125341) +class CreateSpreeStockTransfers < ActiveRecord::Migration + def change + create_table :spree_stock_transfers do |t| + t.string :type + t.string :reference_number + t.integer :source_location_id + t.integer :destination_location_id + t.timestamps + end + + add_index :spree_stock_transfers, :source_location_id + add_index :spree_stock_transfers, :destination_location_id + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105691_drop_products_count_on_hand.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105691_drop_products_count_on_hand.spree.rb new file mode 100644 index 00000000..29cb947a --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105691_drop_products_count_on_hand.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130423110707) +class DropProductsCountOnHand < ActiveRecord::Migration + def up + remove_column :spree_products, :count_on_hand + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105692_set_default_shipping_rate_cost.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105692_set_default_shipping_rate_cost.spree.rb new file mode 100644 index 00000000..64b9ccb1 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105692_set_default_shipping_rate_cost.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130423223847) +class SetDefaultShippingRateCost < ActiveRecord::Migration + def change + change_column :spree_shipping_rates, :cost, :decimal, default: 0, precision: 8, scale: 2 + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105693_add_number_to_stock_transfer.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105693_add_number_to_stock_transfer.spree.rb new file mode 100644 index 00000000..42a96ced --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105693_add_number_to_stock_transfer.spree.rb @@ -0,0 +1,24 @@ +# This migration comes from spree (originally 20130509115210) +class AddNumberToStockTransfer < ActiveRecord::Migration + def up + remove_index :spree_stock_transfers, :source_location_id + remove_index :spree_stock_transfers, :destination_location_id + + rename_column :spree_stock_transfers, :reference_number, :reference + add_column :spree_stock_transfers, :number, :string + + Spree::StockTransfer.find_each do |transfer| + transfer.send(:generate_stock_transfer_number) + transfer.save! + end + + add_index :spree_stock_transfers, :number + add_index :spree_stock_transfers, :source_location_id + add_index :spree_stock_transfers, :destination_location_id + end + + def down + rename_column :spree_stock_transfers, :reference, :reference_number + remove_column :spree_stock_transfers, :number, :string + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105694_add_sku_index_to_spree_variants.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105694_add_sku_index_to_spree_variants.spree.rb new file mode 100644 index 00000000..cd089f84 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105694_add_sku_index_to_spree_variants.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130514151929) +class AddSkuIndexToSpreeVariants < ActiveRecord::Migration + def change + add_index :spree_variants, :sku + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105695_add_backorderable_default_to_spree_stock_location.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105695_add_backorderable_default_to_spree_stock_location.spree.rb new file mode 100644 index 00000000..29939c59 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105695_add_backorderable_default_to_spree_stock_location.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130515180736) +class AddBackorderableDefaultToSpreeStockLocation < ActiveRecord::Migration + def change + add_column :spree_stock_locations, :backorderable_default, :boolean, default: true + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105696_add_propage_all_variants_to_spree_stock_location.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105696_add_propage_all_variants_to_spree_stock_location.spree.rb new file mode 100644 index 00000000..bfc55eac --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105696_add_propage_all_variants_to_spree_stock_location.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130516151222) +class AddPropageAllVariantsToSpreeStockLocation < ActiveRecord::Migration + def change + add_column :spree_stock_locations, :propagate_all_variants, :boolean, default: true + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105697_rename_shipping_methods_zones_to_spree_shipping_methods_zones.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105697_rename_shipping_methods_zones_to_spree_shipping_methods_zones.spree.rb new file mode 100644 index 00000000..5c7ee6dd --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105697_rename_shipping_methods_zones_to_spree_shipping_methods_zones.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130611054351) +class RenameShippingMethodsZonesToSpreeShippingMethodsZones < ActiveRecord::Migration + def change + rename_table :shipping_methods_zones, :spree_shipping_methods_zones + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105698_add_user_id_index_to_spree_orders.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105698_add_user_id_index_to_spree_orders.spree.rb new file mode 100644 index 00000000..e8d17db9 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105698_add_user_id_index_to_spree_orders.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130611185927) +class AddUserIdIndexToSpreeOrders < ActiveRecord::Migration + def change + add_index :spree_orders, :user_id + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105699_add_updated_at_to_spree_countries.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105699_add_updated_at_to_spree_countries.spree.rb new file mode 100644 index 00000000..6df31e26 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105699_add_updated_at_to_spree_countries.spree.rb @@ -0,0 +1,10 @@ +# This migration comes from spree (originally 20130618041418) +class AddUpdatedAtToSpreeCountries < ActiveRecord::Migration + def up + add_column :spree_countries, :updated_at, :datetime + end + + def down + remove_column :spree_countries, :updated_at + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105700_add_updated_at_to_spree_states.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105700_add_updated_at_to_spree_states.spree.rb new file mode 100644 index 00000000..0bb972be --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105700_add_updated_at_to_spree_states.spree.rb @@ -0,0 +1,10 @@ +# This migration comes from spree (originally 20130619012236) +class AddUpdatedAtToSpreeStates < ActiveRecord::Migration + def up + add_column :spree_states, :updated_at, :datetime + end + + def down + remove_column :spree_states, :updated_at + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105701_add_cvv_result_code_and_cvv_result_message_to_spree_payments.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105701_add_cvv_result_code_and_cvv_result_message_to_spree_payments.spree.rb new file mode 100644 index 00000000..0f611c63 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105701_add_cvv_result_code_and_cvv_result_message_to_spree_payments.spree.rb @@ -0,0 +1,7 @@ +# This migration comes from spree (originally 20130626232741) +class AddCvvResultCodeAndCvvResultMessageToSpreePayments < ActiveRecord::Migration + def change + add_column :spree_payments, :cvv_response_code, :string + add_column :spree_payments, :cvv_response_message, :string + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105702_add_unique_index_to_permalink_on_spree_products.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105702_add_unique_index_to_permalink_on_spree_products.spree.rb new file mode 100644 index 00000000..310d4871 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105702_add_unique_index_to_permalink_on_spree_products.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130628021056) +class AddUniqueIndexToPermalinkOnSpreeProducts < ActiveRecord::Migration + def change + add_index "spree_products", ["permalink"], :name => "permalink_idx_unique", :unique => true + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105703_add_unique_index_to_orders_shipments_and_stock_transfers.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105703_add_unique_index_to_orders_shipments_and_stock_transfers.spree.rb new file mode 100644 index 00000000..e551ac3e --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105703_add_unique_index_to_orders_shipments_and_stock_transfers.spree.rb @@ -0,0 +1,8 @@ +# This migration comes from spree (originally 20130628022817) +class AddUniqueIndexToOrdersShipmentsAndStockTransfers < ActiveRecord::Migration + def add + add_index "spree_orders", ["number"], :name => "number_idx_unique", :unique => true + add_index "spree_shipments", ["number"], :name => "number_idx_unique", :unique => true + add_index "spree_stock_transfers", ["number"], :name => "number_idx_unique", :unique => true + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105704_add_deleted_at_to_spree_tax_rates.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105704_add_deleted_at_to_spree_tax_rates.spree.rb new file mode 100644 index 00000000..c804d9a1 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105704_add_deleted_at_to_spree_tax_rates.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130708052307) +class AddDeletedAtToSpreeTaxRates < ActiveRecord::Migration + def change + add_column :spree_tax_rates, :deleted_at, :datetime + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105705_remove_lock_version_from_inventory_units.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105705_remove_lock_version_from_inventory_units.spree.rb new file mode 100644 index 00000000..42c60bd3 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105705_remove_lock_version_from_inventory_units.spree.rb @@ -0,0 +1,7 @@ +# This migration comes from spree (originally 20130711200933) +class RemoveLockVersionFromInventoryUnits < ActiveRecord::Migration + def change + # we are moving to pessimistic locking on stock_items + remove_column :spree_inventory_units, :lock_version + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105706_add_cost_price_to_line_item.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105706_add_cost_price_to_line_item.spree.rb new file mode 100644 index 00000000..d54222f5 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105706_add_cost_price_to_line_item.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130718042445) +class AddCostPriceToLineItem < ActiveRecord::Migration + def change + add_column :spree_line_items, :cost_price, :decimal, :precision => 8, :scale => 2 + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105707_set_backorderable_to_default_to_false.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105707_set_backorderable_to_default_to_false.spree.rb new file mode 100644 index 00000000..a05f4279 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105707_set_backorderable_to_default_to_false.spree.rb @@ -0,0 +1,7 @@ +# This migration comes from spree (originally 20130718233855) +class SetBackorderableToDefaultToFalse < ActiveRecord::Migration + def change + change_column :spree_stock_items, :backorderable, :boolean, :default => false + change_column :spree_stock_locations, :backorderable_default, :boolean, :default => false + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105708_add_created_by_id_to_spree_orders.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105708_add_created_by_id_to_spree_orders.spree.rb new file mode 100644 index 00000000..fe59c0fc --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105708_add_created_by_id_to_spree_orders.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130725031716) +class AddCreatedByIdToSpreeOrders < ActiveRecord::Migration + def change + add_column :spree_orders, :created_by_id, :integer + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105709_index_completed_at_on_spree_orders.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105709_index_completed_at_on_spree_orders.spree.rb new file mode 100644 index 00000000..c4c279ca --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105709_index_completed_at_on_spree_orders.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130729214043) +class IndexCompletedAtOnSpreeOrders < ActiveRecord::Migration + def change + add_index :spree_orders, :completed_at + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105710_add_tax_category_id_to_spree_line_items.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105710_add_tax_category_id_to_spree_line_items.spree.rb new file mode 100644 index 00000000..2b7e1a51 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105710_add_tax_category_id_to_spree_line_items.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130802014537) +class AddTaxCategoryIdToSpreeLineItems < ActiveRecord::Migration + def change + add_column :spree_line_items, :tax_category_id, :integer + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105711_migrate_tax_categories_to_line_items.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105711_migrate_tax_categories_to_line_items.spree.rb new file mode 100644 index 00000000..b84f3ecf --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105711_migrate_tax_categories_to_line_items.spree.rb @@ -0,0 +1,11 @@ +# This migration comes from spree (originally 20130802022321) +class MigrateTaxCategoriesToLineItems < ActiveRecord::Migration + def change + Spree::LineItem.find_each do |line_item| + next if line_item.variant.nil? + next if line_item.variant.product.nil? + next if line_item.product.nil? + line_item.update_column(:tax_category_id, line_item.product.tax_category_id) + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105712_drop_spree_mail_methods.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105712_drop_spree_mail_methods.spree.rb new file mode 100644 index 00000000..69c9f332 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105712_drop_spree_mail_methods.spree.rb @@ -0,0 +1,13 @@ +# This migration comes from spree (originally 20130806022521) +class DropSpreeMailMethods < ActiveRecord::Migration + def up + drop_table :spree_mail_methods + end + + def down + create_table(:spree_mail_methods) do |t| + t.string :environment + t.boolean :active + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105713_set_default_stock_location_on_shipments.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105713_set_default_stock_location_on_shipments.spree.rb new file mode 100644 index 00000000..2e032b00 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105713_set_default_stock_location_on_shipments.spree.rb @@ -0,0 +1,9 @@ +# This migration comes from spree (originally 20130806145853) +class SetDefaultStockLocationOnShipments < ActiveRecord::Migration + def change + if Spree::Shipment.where('stock_location_id IS NULL').count > 0 + location = Spree::StockLocation.find_by(name: 'default') || Spree::StockLocation.first + Spree::Shipment.where('stock_location_id IS NULL').update_all(stock_location_id: location.id) + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105714_upgrade_adjustments.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105714_upgrade_adjustments.spree.rb new file mode 100644 index 00000000..467e7b5f --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105714_upgrade_adjustments.spree.rb @@ -0,0 +1,40 @@ +# This migration comes from spree (originally 20130807024301) +class UpgradeAdjustments < ActiveRecord::Migration + def up + # Temporarily make originator association available + Spree::Adjustment.class_eval do + belongs_to :originator, polymorphic: true + end + # Shipping adjustments are now tracked as fields on the object + Spree::Adjustment.where(:source_type => "Spree::Shipment").find_each do |adjustment| + # Account for possible invalid data + next if adjustment.source.nil? + adjustment.source.update_column(:cost, adjustment.amount) + adjustment.destroy + end + + # Tax adjustments have their sources altered + Spree::Adjustment.where(:originator_type => "Spree::TaxRate").find_each do |adjustment| + adjustment.source = adjustment.originator + adjustment.save + end + + # Promotion adjustments have their source altered also + Spree::Adjustment.where(:originator_type => "Spree::PromotionAction").find_each do |adjustment| + next if adjustment.originator.nil? + adjustment.source = adjustment.originator + begin + if adjustment.source.calculator_type == "Spree::Calculator::FreeShipping" + # Previously this was a Spree::Promotion::Actions::CreateAdjustment + # And it had a calculator to work out FreeShipping + # In Spree 2.2, the "calculator" is now the action itself. + adjustment.source.becomes(Spree::Promotion::Actions::FreeShipping) + end + rescue + # Fail silently. This is primarily in instances where the calculator no longer exists + end + + adjustment.save + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105715_rename_adjustment_fields.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105715_rename_adjustment_fields.spree.rb new file mode 100644 index 00000000..10a942f0 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105715_rename_adjustment_fields.spree.rb @@ -0,0 +1,18 @@ +# This migration comes from spree (originally 20130807024302) +class RenameAdjustmentFields < ActiveRecord::Migration + def up + remove_column :spree_adjustments, :originator_id + remove_column :spree_adjustments, :originator_type + + add_column :spree_adjustments, :order_id, :integer unless column_exists?(:spree_adjustments, :order_id) + + # This enables the Spree::Order#all_adjustments association to work correctly + Spree::Adjustment.reset_column_information + Spree::Adjustment.find_each do |adjustment| + if adjustment.adjustable.is_a?(Spree::Order) + adjustment.order = adjustment.adjustable + adjustment.save + end + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105716_add_admin_name_column_to_spree_shipping_methods.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105716_add_admin_name_column_to_spree_shipping_methods.spree.rb new file mode 100644 index 00000000..70bec5b1 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105716_add_admin_name_column_to_spree_shipping_methods.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130809164245) +class AddAdminNameColumnToSpreeShippingMethods < ActiveRecord::Migration + def change + add_column :spree_shipping_methods, :admin_name, :string + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105717_add_admin_name_column_to_spree_stock_locations.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105717_add_admin_name_column_to_spree_stock_locations.spree.rb new file mode 100644 index 00000000..819acfea --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105717_add_admin_name_column_to_spree_stock_locations.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130809164330) +class AddAdminNameColumnToSpreeStockLocations < ActiveRecord::Migration + def change + add_column :spree_stock_locations, :admin_name, :string + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105718_add_shipment_total_to_spree_orders.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105718_add_shipment_total_to_spree_orders.spree.rb new file mode 100644 index 00000000..d1d9ea4b --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105718_add_shipment_total_to_spree_orders.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130813004002) +class AddShipmentTotalToSpreeOrders < ActiveRecord::Migration + def change + add_column :spree_orders, :shipment_total, :decimal, :precision => 10, :scale => 2, :default => 0.0, :null => false + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105719_expand_order_number_size.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105719_expand_order_number_size.spree.rb new file mode 100644 index 00000000..51facc1c --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105719_expand_order_number_size.spree.rb @@ -0,0 +1,10 @@ +# This migration comes from spree (originally 20130813140619) +class ExpandOrderNumberSize < ActiveRecord::Migration + def up + change_column :spree_orders, :number, :string, :limit => 32 + end + + def down + change_column :spree_orders, :number, :string, :limit => 15 + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105720_rename_activators_to_promotions.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105720_rename_activators_to_promotions.spree.rb new file mode 100644 index 00000000..f5182ac3 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105720_rename_activators_to_promotions.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130813232134) +class RenameActivatorsToPromotions < ActiveRecord::Migration + def change + rename_table :spree_activators, :spree_promotions + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105721_add_adjustment_total_to_line_items.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105721_add_adjustment_total_to_line_items.spree.rb new file mode 100644 index 00000000..d2c84e7c --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105721_add_adjustment_total_to_line_items.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130815000406) +class AddAdjustmentTotalToLineItems < ActiveRecord::Migration + def change + add_column :spree_line_items, :adjustment_total, :decimal, :precision => 10, :scale => 2, :default => 0.0 + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105722_add_adjustment_total_to_shipments.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105722_add_adjustment_total_to_shipments.spree.rb new file mode 100644 index 00000000..9c5a382b --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105722_add_adjustment_total_to_shipments.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130815024413) +class AddAdjustmentTotalToShipments < ActiveRecord::Migration + def change + add_column :spree_shipments, :adjustment_total, :decimal, :precision => 10, :scale => 2, :default => 0.0 + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105723_add_depth_to_spree_taxons.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105723_add_depth_to_spree_taxons.spree.rb new file mode 100644 index 00000000..15fd9ec2 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105723_add_depth_to_spree_taxons.spree.rb @@ -0,0 +1,17 @@ +# This migration comes from spree (originally 20130826062534) +class AddDepthToSpreeTaxons < ActiveRecord::Migration + def up + if !Spree::Taxon.column_names.include?('depth') + add_column :spree_taxons, :depth, :integer + + say_with_time 'Update depth on all taxons' do + Spree::Taxon.reset_column_information + Spree::Taxon.all.each { |t| t.save } + end + end + end + + def down + remove_column :spree_taxons, :depth + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105724_add_tax_total_to_line_items_shipments_and_orders.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105724_add_tax_total_to_line_items_shipments_and_orders.spree.rb new file mode 100644 index 00000000..d97e645d --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105724_add_tax_total_to_line_items_shipments_and_orders.spree.rb @@ -0,0 +1,9 @@ +# This migration comes from spree (originally 20130828234942) +class AddTaxTotalToLineItemsShipmentsAndOrders < ActiveRecord::Migration + def change + add_column :spree_line_items, :tax_total, :decimal, precision: 10, scale: 2, default: 0.0 + add_column :spree_shipments, :tax_total, :decimal, precision: 10, scale: 2, default: 0.0 + # This column may already be here from a 2.1.x migration + add_column :spree_orders, :tax_total, :decimal, precision: 10, scale: 2, default: 0.0 unless Spree::Order.column_names.include?("tax_total") + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105725_add_shipping_category_to_shipping_methods_and_products.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105725_add_shipping_category_to_shipping_methods_and_products.spree.rb new file mode 100644 index 00000000..5572ed09 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105725_add_shipping_category_to_shipping_methods_and_products.spree.rb @@ -0,0 +1,16 @@ +# This migration comes from spree (originally 20130830001033) +class AddShippingCategoryToShippingMethodsAndProducts < ActiveRecord::Migration + def up + default_category = Spree::ShippingCategory.first + default_category ||= Spree::ShippingCategory.create!(:name => "Default") + + Spree::ShippingMethod.all.each do |method| + method.shipping_categories << default_category if method.shipping_categories.blank? + end + + Spree::Product.where(shipping_category_id: nil).update_all(shipping_category_id: default_category.id) + end + + def down + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105726_migrate_old_shipping_calculators.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105726_migrate_old_shipping_calculators.spree.rb new file mode 100644 index 00000000..f6e7e756 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105726_migrate_old_shipping_calculators.spree.rb @@ -0,0 +1,20 @@ +# This migration comes from spree (originally 20130830001159) +class MigrateOldShippingCalculators < ActiveRecord::Migration + def up + Spree::ShippingMethod.all.each do |shipping_method| + old_calculator = shipping_method.calculator + next if old_calculator.class < Spree::ShippingCalculator # We don't want to mess with new shipping calculators + new_calculator = eval(old_calculator.class.name.sub("::Calculator::", "::Calculator::Shipping::")).new + new_calculator.preferences.keys.each do |pref| + # Preferences can't be read/set by name, you have to prefix preferred_ + pref_method = "preferred_#{pref}" + new_calculator.send("#{pref_method}=", old_calculator.send(pref_method)) + end + new_calculator.calculable = old_calculator.calculable + new_calculator.save + end + end + + def down + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105727_add_code_to_spree_promotion_rules.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105727_add_code_to_spree_promotion_rules.spree.rb new file mode 100644 index 00000000..a99e79db --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105727_add_code_to_spree_promotion_rules.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130903183026) +class AddCodeToSpreePromotionRules < ActiveRecord::Migration + def change + add_column :spree_promotion_rules, :code, :string + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105728_change_states_required_for_countries.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105728_change_states_required_for_countries.spree.rb new file mode 100644 index 00000000..902b442f --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105728_change_states_required_for_countries.spree.rb @@ -0,0 +1,10 @@ +# This migration comes from spree (originally 20130909115621) +class ChangeStatesRequiredForCountries < ActiveRecord::Migration + def up + change_column_default :spree_countries, :states_required, false + end + + def down + change_column_default :spree_countries, :states_required, true + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105729_add_deleted_at_to_spree_stock_items.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105729_add_deleted_at_to_spree_stock_items.spree.rb new file mode 100644 index 00000000..c44b0b73 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105729_add_deleted_at_to_spree_stock_items.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130915032339) +class AddDeletedAtToSpreeStockItems < ActiveRecord::Migration + def change + add_column :spree_stock_items, :deleted_at, :datetime + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105730_remove_promotions_event_name_field.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105730_remove_promotions_event_name_field.spree.rb new file mode 100644 index 00000000..83ce1c2e --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105730_remove_promotions_event_name_field.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20130917024658) +class RemovePromotionsEventNameField < ActiveRecord::Migration + def change + remove_column :spree_promotions, :event_name + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105731_add_promo_total_to_line_items_and_shipments_and_orders.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105731_add_promo_total_to_line_items_and_shipments_and_orders.spree.rb new file mode 100644 index 00000000..b402194b --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105731_add_promo_total_to_line_items_and_shipments_and_orders.spree.rb @@ -0,0 +1,8 @@ +# This migration comes from spree (originally 20130924040529) +class AddPromoTotalToLineItemsAndShipmentsAndOrders < ActiveRecord::Migration + def change + add_column :spree_line_items, :promo_total, :decimal, precision: 10, scale: 2, default: 0.0 + add_column :spree_shipments, :promo_total, :decimal, precision: 10, scale: 2, default: 0.0 + add_column :spree_orders, :promo_total, :decimal, precision: 10, scale: 2, default: 0.0 + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105732_remove_unused_credit_card_fields.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105732_remove_unused_credit_card_fields.spree.rb new file mode 100644 index 00000000..821d36ff --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105732_remove_unused_credit_card_fields.spree.rb @@ -0,0 +1,17 @@ +# This migration comes from spree (originally 20131001013410) +class RemoveUnusedCreditCardFields < ActiveRecord::Migration + def up + remove_column :spree_credit_cards, :start_month if column_exists?(:spree_credit_cards, :start_month) + remove_column :spree_credit_cards, :start_year if column_exists?(:spree_credit_cards, :start_year) + remove_column :spree_credit_cards, :issue_number if column_exists?(:spree_credit_cards, :issue_number) + end + def down + add_column :spree_credit_cards, :start_month, :string + add_column :spree_credit_cards, :start_year, :string + add_column :spree_credit_cards, :issue_number, :string + end + + def column_exists?(table, column) + ActiveRecord::Base.connection.column_exists?(table, column) + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105733_add_track_inventory_to_variant.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105733_add_track_inventory_to_variant.spree.rb new file mode 100644 index 00000000..d5a03f35 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105733_add_track_inventory_to_variant.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20131026154747) +class AddTrackInventoryToVariant < ActiveRecord::Migration + def change + add_column :spree_variants, :track_inventory, :boolean, :default => true + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105734_add_tax_category_to_variants.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105734_add_tax_category_to_variants.spree.rb new file mode 100644 index 00000000..5667e063 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105734_add_tax_category_to_variants.spree.rb @@ -0,0 +1,7 @@ +# This migration comes from spree (originally 20131107132123) +class AddTaxCategoryToVariants < ActiveRecord::Migration + def change + add_column :spree_variants, :tax_category_id, :integer + add_index :spree_variants, :tax_category_id + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105735_add_channel_to_spree_orders.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105735_add_channel_to_spree_orders.spree.rb new file mode 100644 index 00000000..c7f6d631 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105735_add_channel_to_spree_orders.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20131113035136) +class AddChannelToSpreeOrders < ActiveRecord::Migration + def change + add_column :spree_orders, :channel, :string, default: "spree" + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105736_add_included_to_adjustments.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105736_add_included_to_adjustments.spree.rb new file mode 100644 index 00000000..13b17edb --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105736_add_included_to_adjustments.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20131118043959) +class AddIncludedToAdjustments < ActiveRecord::Migration + def change + add_column :spree_adjustments, :included, :boolean, :default => false unless Spree::Adjustment.column_names.include?("included") + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105737_rename_tax_total_fields.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105737_rename_tax_total_fields.spree.rb new file mode 100644 index 00000000..786cbd49 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105737_rename_tax_total_fields.spree.rb @@ -0,0 +1,12 @@ +# This migration comes from spree (originally 20131118050234) +class RenameTaxTotalFields < ActiveRecord::Migration + def change + rename_column :spree_line_items, :tax_total, :additional_tax_total + rename_column :spree_shipments, :tax_total, :additional_tax_total + rename_column :spree_orders, :tax_total, :additional_tax_total + + add_column :spree_line_items, :included_tax_total, :decimal, precision: 10, scale: 2, null: false, default: 0.0 + add_column :spree_shipments, :included_tax_total, :decimal, precision: 10, scale: 2, null: false, default: 0.0 + add_column :spree_orders, :included_tax_total, :decimal, precision: 10, scale: 2, null: false, default: 0.0 + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105738_add_line_item_id_to_spree_inventory_units.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105738_add_line_item_id_to_spree_inventory_units.spree.rb new file mode 100644 index 00000000..5b2fb0a4 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105738_add_line_item_id_to_spree_inventory_units.spree.rb @@ -0,0 +1,22 @@ +# This migration comes from spree (originally 20131118183431) +class AddLineItemIdToSpreeInventoryUnits < ActiveRecord::Migration + def change + # Stores running the product-assembly extension already have a line_item_id column + unless column_exists? Spree::InventoryUnit.table_name, :line_item_id + add_column :spree_inventory_units, :line_item_id, :integer + add_index :spree_inventory_units, :line_item_id + + shipments = Spree::Shipment.includes(:inventory_units, :order) + + shipments.find_each do |shipment| + shipment.inventory_units.group_by(&:variant_id).each do |variant_id, units| + + line_item = shipment.order.line_items.find_by(variant_id: variant_id) + next unless line_item + + Spree::InventoryUnit.where(id: units.map(&:id)).update_all(line_item_id: line_item.id) + end + end + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105739_add_updated_at_to_variants.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105739_add_updated_at_to_variants.spree.rb new file mode 100644 index 00000000..2fa010bf --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105739_add_updated_at_to_variants.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20131120234456) +class AddUpdatedAtToVariants < ActiveRecord::Migration + def change + add_column :spree_variants, :updated_at, :datetime + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105740_add_position_to_classifications.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105740_add_position_to_classifications.spree.rb new file mode 100644 index 00000000..85b40061 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105740_add_position_to_classifications.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20131127001002) +class AddPositionToClassifications < ActiveRecord::Migration + def change + add_column :spree_products_taxons, :position, :integer + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105741_create_spree_orders_promotions.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105741_create_spree_orders_promotions.spree.rb new file mode 100644 index 00000000..c8ffd2e1 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105741_create_spree_orders_promotions.spree.rb @@ -0,0 +1,9 @@ +# This migration comes from spree (originally 20131211112807) +class CreateSpreeOrdersPromotions < ActiveRecord::Migration + def change + create_table :spree_orders_promotions, :id => false do |t| + t.references :order + t.references :promotion + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105742_unique_shipping_method_categories.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105742_unique_shipping_method_categories.spree.rb new file mode 100644 index 00000000..8415eda4 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105742_unique_shipping_method_categories.spree.rb @@ -0,0 +1,25 @@ +# This migration comes from spree (originally 20131211192741) +class UniqueShippingMethodCategories < ActiveRecord::Migration + def change + klass = Spree::ShippingMethodCategory + columns = %w[shipping_category_id shipping_method_id] + + say "Find duplicate #{klass} records" + duplicates = klass. + select((columns + %w[COUNT(*)]).join(',')). + group(columns.join(',')). + having('COUNT(*) > 1'). + map { |row| row.attributes.slice(*columns) } + + say "Delete all but the oldest duplicate #{klass} record" + duplicates.each do |conditions| + klass.where(conditions).order(:created_at).drop(1).each(&:destroy) + end + + say "Add unique index to #{klass.table_name} for #{columns.inspect}" + add_index klass.table_name, columns, unique: true, name: 'unique_spree_shipping_method_categories' + + say "Remove redundant simple index on #{klass.table_name}" + remove_index klass.table_name, name: 'index_spree_shipping_method_categories_on_shipping_category_id' + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105743_add_item_count_to_spree_orders.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105743_add_item_count_to_spree_orders.spree.rb new file mode 100644 index 00000000..428a38c9 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105743_add_item_count_to_spree_orders.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20131218054603) +class AddItemCountToSpreeOrders < ActiveRecord::Migration + def change + add_column :spree_orders, :item_count, :integer, :default => 0 + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105744_remove_value_type_from_spree_preferences.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105744_remove_value_type_from_spree_preferences.spree.rb new file mode 100644 index 00000000..a747857b --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105744_remove_value_type_from_spree_preferences.spree.rb @@ -0,0 +1,9 @@ +# This migration comes from spree (originally 20140106065820) +class RemoveValueTypeFromSpreePreferences < ActiveRecord::Migration + def up + remove_column :spree_preferences, :value_type + end + def down + raise ActiveRecord::IrreversableMigration + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105745_rename_permalink_to_slug_for_products.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105745_rename_permalink_to_slug_for_products.spree.rb new file mode 100644 index 00000000..614f8e76 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105745_rename_permalink_to_slug_for_products.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20140106224208) +class RenamePermalinkToSlugForProducts < ActiveRecord::Migration + def change + rename_column :spree_products, :permalink, :slug + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105746_add_index_to_variant_id_and_currency_on_prices.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105746_add_index_to_variant_id_and_currency_on_prices.spree.rb new file mode 100644 index 00000000..c7e6c81f --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105746_add_index_to_variant_id_and_currency_on_prices.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20140120160805) +class AddIndexToVariantIdAndCurrencyOnPrices < ActiveRecord::Migration + def change + add_index :spree_prices, [:variant_id, :currency] + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105747_rename_activator_id_in_rules_and_actions_to_promotion_id.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105747_rename_activator_id_in_rules_and_actions_to_promotion_id.spree.rb new file mode 100644 index 00000000..98a5ee4d --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105747_rename_activator_id_in_rules_and_actions_to_promotion_id.spree.rb @@ -0,0 +1,7 @@ +# This migration comes from spree (originally 20140124023232) +class RenameActivatorIdInRulesAndActionsToPromotionId < ActiveRecord::Migration + def change + rename_column :spree_promotion_rules, :activator_id, :promotion_id + rename_column :spree_promotion_actions, :activator_id, :promotion_id + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105748_add_deleted_at_to_spree_prices.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105748_add_deleted_at_to_spree_prices.spree.rb new file mode 100644 index 00000000..9f070d17 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105748_add_deleted_at_to_spree_prices.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20140129024326) +class AddDeletedAtToSpreePrices < ActiveRecord::Migration + def change + add_column :spree_prices, :deleted_at, :datetime + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105749_add_approver_id_and_approved_at_to_orders.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105749_add_approver_id_and_approved_at_to_orders.spree.rb new file mode 100644 index 00000000..8f3761b3 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105749_add_approver_id_and_approved_at_to_orders.spree.rb @@ -0,0 +1,7 @@ +# This migration comes from spree (originally 20140203161722) +class AddApproverIdAndApprovedAtToOrders < ActiveRecord::Migration + def change + add_column :spree_orders, :approver_id, :integer + add_column :spree_orders, :approved_at, :datetime + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105750_add_confirmation_delivered_to_spree_orders.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105750_add_confirmation_delivered_to_spree_orders.spree.rb new file mode 100644 index 00000000..3ab7b9ea --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105750_add_confirmation_delivered_to_spree_orders.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20140204115338) +class AddConfirmationDeliveredToSpreeOrders < ActiveRecord::Migration + def change + add_column :spree_orders, :confirmation_delivered, :boolean, default: false + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105751_add_auto_capture_to_payment_methods.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105751_add_auto_capture_to_payment_methods.spree.rb new file mode 100644 index 00000000..7dcfda8d --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105751_add_auto_capture_to_payment_methods.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20140204192230) +class AddAutoCaptureToPaymentMethods < ActiveRecord::Migration + def change + add_column :spree_payment_methods, :auto_capture, :boolean + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105752_create_spree_payment_capture_events.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105752_create_spree_payment_capture_events.spree.rb new file mode 100644 index 00000000..d9f6758b --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105752_create_spree_payment_capture_events.spree.rb @@ -0,0 +1,13 @@ +# This migration comes from spree (originally 20140205120320) +class CreateSpreePaymentCaptureEvents < ActiveRecord::Migration + def change + create_table :spree_payment_capture_events do |t| + t.decimal :amount, precision: 10, scale: 2, default: 0.0 + t.integer :payment_id + + t.timestamps + end + + add_index :spree_payment_capture_events, :payment_id + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105753_add_uncaptured_amount_to_payments.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105753_add_uncaptured_amount_to_payments.spree.rb new file mode 100644 index 00000000..2bf2a639 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105753_add_uncaptured_amount_to_payments.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20140205144710) +class AddUncapturedAmountToPayments < ActiveRecord::Migration + def change + add_column :spree_payments, :uncaptured_amount, :decimal, precision: 10, scale: 2, default: 0.0 + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105754_default_variant_weight_to_zero.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105754_default_variant_weight_to_zero.spree.rb new file mode 100644 index 00000000..97cfb53b --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105754_default_variant_weight_to_zero.spree.rb @@ -0,0 +1,12 @@ +# This migration comes from spree (originally 20140205181631) +class DefaultVariantWeightToZero < ActiveRecord::Migration + def up + Spree::Variant.unscoped.where(weight: nil).update_all("weight = 0.0") + + change_column :spree_variants, :weight, :decimal, precision: 8, scale: 2, default: 0.0 + end + + def down + change_column :spree_variants, :weight, :decimal, precision: 8, scale: 2 + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105755_add_tax_category_id_to_shipping_methods.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105755_add_tax_category_id_to_shipping_methods.spree.rb new file mode 100644 index 00000000..882be781 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105755_add_tax_category_id_to_shipping_methods.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20140207085910) +class AddTaxCategoryIdToShippingMethods < ActiveRecord::Migration + def change + add_column :spree_shipping_methods, :tax_category_id, :integer + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105756_add_tax_rate_id_to_shipping_rates.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105756_add_tax_rate_id_to_shipping_rates.spree.rb new file mode 100644 index 00000000..2896fc53 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105756_add_tax_rate_id_to_shipping_rates.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20140207093021) +class AddTaxRateIdToShippingRates < ActiveRecord::Migration + def change + add_column :spree_shipping_rates, :tax_rate_id, :integer + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105757_add_pre_tax_amount_to_line_items_and_shipments.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105757_add_pre_tax_amount_to_line_items_and_shipments.spree.rb new file mode 100644 index 00000000..f927fe54 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105757_add_pre_tax_amount_to_line_items_and_shipments.spree.rb @@ -0,0 +1,7 @@ +# This migration comes from spree (originally 20140211040159) +class AddPreTaxAmountToLineItemsAndShipments < ActiveRecord::Migration + def change + add_column :spree_line_items, :pre_tax_amount, :decimal, precision: 8, scale: 2 + add_column :spree_shipments, :pre_tax_amount, :decimal, precision: 8, scale: 2 + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105758_add_more_indexes.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105758_add_more_indexes.spree.rb new file mode 100644 index 00000000..00610343 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105758_add_more_indexes.spree.rb @@ -0,0 +1,14 @@ +# This migration comes from spree (originally 20140213184916) +class AddMoreIndexes < ActiveRecord::Migration + def change + add_index :spree_payment_methods, [:id, :type] + add_index :spree_calculators, [:id, :type] + add_index :spree_calculators, [:calculable_id, :calculable_type] + add_index :spree_payments, :payment_method_id + add_index :spree_promotion_actions, [:id, :type] + add_index :spree_promotion_actions, :promotion_id + add_index :spree_promotions, [:id, :type] + add_index :spree_option_values, :option_type_id + add_index :spree_shipments, :stock_location_id + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105759_add_considered_risky_to_orders.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105759_add_considered_risky_to_orders.spree.rb new file mode 100644 index 00000000..7d737a2d --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105759_add_considered_risky_to_orders.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20140219060952) +class AddConsideredRiskyToOrders < ActiveRecord::Migration + def change + add_column :spree_orders, :considered_risky, :boolean, :default => false + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105760_add_preference_store_to_everything.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105760_add_preference_store_to_everything.spree.rb new file mode 100644 index 00000000..9f033859 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105760_add_preference_store_to_everything.spree.rb @@ -0,0 +1,9 @@ +# This migration comes from spree (originally 20140227112348) +class AddPreferenceStoreToEverything < ActiveRecord::Migration + def change + add_column :spree_calculators, :preferences, :text + add_column :spree_gateways, :preferences, :text + add_column :spree_payment_methods, :preferences, :text + add_column :spree_promotion_rules, :preferences, :text + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105761_add_user_id_to_spree_credit_cards.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105761_add_user_id_to_spree_credit_cards.spree.rb new file mode 100644 index 00000000..ebdde9cd --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105761_add_user_id_to_spree_credit_cards.spree.rb @@ -0,0 +1,14 @@ +# This migration comes from spree (originally 20140307235515) +class AddUserIdToSpreeCreditCards < ActiveRecord::Migration + def change + unless Spree::CreditCard.column_names.include? "user_id" + add_column :spree_credit_cards, :user_id, :integer + add_index :spree_credit_cards, :user_id + end + + unless Spree::CreditCard.column_names.include? "payment_method_id" + add_column :spree_credit_cards, :payment_method_id, :integer + add_index :spree_credit_cards, :payment_method_id + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105762_migrate_old_preferences.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105762_migrate_old_preferences.spree.rb new file mode 100644 index 00000000..7cdd9efe --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105762_migrate_old_preferences.spree.rb @@ -0,0 +1,24 @@ +# This migration comes from spree (originally 20140309023735) +class MigrateOldPreferences < ActiveRecord::Migration + def up + migrate_preferences(Spree::Calculator) + migrate_preferences(Spree::PaymentMethod) + migrate_preferences(Spree::PromotionRule) + end + + def down + end + + private + def migrate_preferences klass + klass.reset_column_information + klass.find_each do |record| + store = Spree::Preferences::ScopedStore.new(record.class.name.underscore, record.id) + record.defined_preferences.each do |key| + value = store.fetch(key){} + record.preferences[key] = value unless value.nil? + end + record.save! + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105763_create_spree_stores.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105763_create_spree_stores.spree.rb new file mode 100644 index 00000000..bcc2015c --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105763_create_spree_stores.spree.rb @@ -0,0 +1,26 @@ +# This migration comes from spree (originally 20140309024355) +class CreateSpreeStores < ActiveRecord::Migration + def change + if table_exists?(:spree_stores) + rename_column :spree_stores, :domains, :url + rename_column :spree_stores, :email, :mail_from_address + add_column :spree_stores, :meta_description, :text + add_column :spree_stores, :meta_keywords, :text + add_column :spree_stores, :seo_title, :string + else + create_table :spree_stores do |t| + t.string :name + t.string :url + t.text :meta_description + t.text :meta_keywords + t.string :seo_title + t.string :mail_from_address + t.string :default_currency + t.string :code + t.boolean :default, default: false, null: false + + t.timestamps + end + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105764_create_store_from_preferences.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105764_create_store_from_preferences.spree.rb new file mode 100644 index 00000000..6b4b952f --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105764_create_store_from_preferences.spree.rb @@ -0,0 +1,31 @@ +# This migration comes from spree (originally 20140309033438) +class CreateStoreFromPreferences < ActiveRecord::Migration + def change + preference_store = Spree::Preferences::Store.instance + if store = Spree::Store.where(default: true).first + store.meta_description = preference_store.get('spree/app_configuration/default_meta_description') {} + store.meta_keywords = preference_store.get('spree/app_configuration/default_meta_keywords') {} + store.seo_title = preference_store.get('spree/app_configuration/default_seo_title') {} + store.save! + else + # we set defaults for the things we now require + Spree::Store.new do |s| + s.name = preference_store.get 'spree/app_configuration/site_name' do + 'Spree Demo Site' + end + s.url = preference_store.get 'spree/app_configuration/site_url' do + 'demo.spreecommerce.com' + end + s.mail_from_address = preference_store.get 'spree/app_configuration/mails_from' do + 'spree@example.com' + end + + s.meta_description = preference_store.get('spree/app_configuration/default_meta_description') {} + s.meta_keywords = preference_store.get('spree/app_configuration/default_meta_keywords') {} + s.seo_title = preference_store.get('spree/app_configuration/default_seo_title') {} + s.default_currency = preference_store.get('spree/app_configuration/currency') {} + s.code = 'spree' + end.save! + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105765_add_timestamps_to_spree_assets.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105765_add_timestamps_to_spree_assets.spree.rb new file mode 100644 index 00000000..5e5ae048 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105765_add_timestamps_to_spree_assets.spree.rb @@ -0,0 +1,7 @@ +# This migration comes from spree (originally 20140315053743) +class AddTimestampsToSpreeAssets < ActiveRecord::Migration + def change + add_column :spree_assets, :created_at, :datetime + add_column :spree_assets, :updated_at, :datetime + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105766_add_additional_store_fields.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105766_add_additional_store_fields.spree.rb new file mode 100644 index 00000000..9ac1168f --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105766_add_additional_store_fields.spree.rb @@ -0,0 +1,9 @@ +# This migration comes from spree (originally 20140331100557) +class AddAdditionalStoreFields < ActiveRecord::Migration + def change + add_column :spree_stores, :code, :string unless column_exists?(:spree_stores, :code) + add_column :spree_stores, :default, :boolean, default: false, null: false unless column_exists?(:spree_stores, :default) + add_index :spree_stores, :code + add_index :spree_stores, :default + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105767_add_many_missing_indexes.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105767_add_many_missing_indexes.spree.rb new file mode 100644 index 00000000..cfa0d0e2 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105767_add_many_missing_indexes.spree.rb @@ -0,0 +1,19 @@ +# This migration comes from spree (originally 20140410141842) +class AddManyMissingIndexes < ActiveRecord::Migration + def change + add_index :spree_adjustments, [:adjustable_id, :adjustable_type] + add_index :spree_adjustments, :eligible + add_index :spree_adjustments, :order_id + add_index :spree_promotions, :code + add_index :spree_promotions, :expires_at + add_index :spree_states, :country_id + add_index :spree_stock_items, :deleted_at + add_index :spree_option_types, :position + add_index :spree_option_values, :position + add_index :spree_product_option_types, :option_type_id + add_index :spree_product_option_types, :product_id + add_index :spree_products_taxons, :position + add_index :spree_promotions, :starts_at + add_index :spree_stores, :url + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105768_correct_some_polymorphic_index_and_add_more_missing.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105768_correct_some_polymorphic_index_and_add_more_missing.spree.rb new file mode 100644 index 00000000..6f711f6b --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105768_correct_some_polymorphic_index_and_add_more_missing.spree.rb @@ -0,0 +1,67 @@ +# This migration comes from spree (originally 20140410150358) +class CorrectSomePolymorphicIndexAndAddMoreMissing < ActiveRecord::Migration + def change + add_index :spree_addresses, :country_id + add_index :spree_addresses, :state_id + remove_index :spree_adjustments, [:source_type, :source_id] + add_index :spree_adjustments, [:source_id, :source_type] + add_index :spree_credit_cards, :address_id + add_index :spree_gateways, :active + add_index :spree_gateways, :test_mode + add_index :spree_inventory_units, :return_authorization_id + add_index :spree_line_items, :tax_category_id + add_index :spree_log_entries, [:source_id, :source_type] + add_index :spree_orders, :approver_id + add_index :spree_orders, :bill_address_id + add_index :spree_orders, :confirmation_delivered + add_index :spree_orders, :considered_risky + add_index :spree_orders, :created_by_id + add_index :spree_orders, :ship_address_id + add_index :spree_orders, :shipping_method_id + add_index :spree_orders_promotions, [:order_id, :promotion_id] + add_index :spree_payments, [:source_id, :source_type] + add_index :spree_prices, :deleted_at + add_index :spree_product_option_types, :position + add_index :spree_product_properties, :position + add_index :spree_product_properties, :property_id + add_index :spree_products, :shipping_category_id + add_index :spree_products, :tax_category_id + add_index :spree_promotion_action_line_items, :promotion_action_id + add_index :spree_promotion_action_line_items, :variant_id + add_index :spree_promotion_rules, :promotion_id + add_index :spree_promotions, :advertise + add_index :spree_return_authorizations, :number + add_index :spree_return_authorizations, :order_id + add_index :spree_return_authorizations, :stock_location_id + add_index :spree_shipments, :address_id + add_index :spree_shipping_methods, :deleted_at + add_index :spree_shipping_methods, :tax_category_id + add_index :spree_shipping_rates, :selected + add_index :spree_shipping_rates, :tax_rate_id + add_index :spree_state_changes, [:stateful_id, :stateful_type] + add_index :spree_state_changes, :user_id + add_index :spree_stock_items, :backorderable + add_index :spree_stock_locations, :active + add_index :spree_stock_locations, :backorderable_default + add_index :spree_stock_locations, :country_id + add_index :spree_stock_locations, :propagate_all_variants + add_index :spree_stock_locations, :state_id + add_index :spree_tax_categories, :deleted_at + add_index :spree_tax_categories, :is_default + add_index :spree_tax_rates, :deleted_at + add_index :spree_tax_rates, :included_in_price + add_index :spree_tax_rates, :show_rate_in_label + add_index :spree_tax_rates, :tax_category_id + add_index :spree_tax_rates, :zone_id + add_index :spree_taxonomies, :position + add_index :spree_taxons, :position + add_index :spree_trackers, :active + add_index :spree_variants, :deleted_at + add_index :spree_variants, :is_master + add_index :spree_variants, :position + add_index :spree_variants, :track_inventory + add_index :spree_zone_members, :zone_id + add_index :spree_zone_members, [:zoneable_id, :zoneable_type] + add_index :spree_zones, :default_tax + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105769_add_user_id_created_by_id_index_to_order.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105769_add_user_id_created_by_id_index_to_order.spree.rb new file mode 100644 index 00000000..b2d648d2 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105769_add_user_id_created_by_id_index_to_order.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20140415041315) +class AddUserIdCreatedByIdIndexToOrder < ActiveRecord::Migration + def change + add_index :spree_orders, [:user_id, :created_by_id] + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105770_change_spree_price_amount_precision.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105770_change_spree_price_amount_precision.spree.rb new file mode 100644 index 00000000..8a02e8c0 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105770_change_spree_price_amount_precision.spree.rb @@ -0,0 +1,9 @@ +# This migration comes from spree (originally 20140508151342) +class ChangeSpreePriceAmountPrecision < ActiveRecord::Migration + def change + change_column :spree_prices, :amount, :decimal, :precision => 10, :scale => 2 + change_column :spree_line_items, :price, :decimal, :precision => 10, :scale => 2 + change_column :spree_line_items, :cost_price, :decimal, :precision => 10, :scale => 2 + change_column :spree_variants, :cost_price, :decimal, :precision => 10, :scale => 2 + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105771_add_token_to_spree_orders.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105771_add_token_to_spree_orders.spree.rb new file mode 100644 index 00000000..5ecc87e8 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105771_add_token_to_spree_orders.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20140518174634) +class AddTokenToSpreeOrders < ActiveRecord::Migration + def change + add_column :spree_orders, :guest_token, :string + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105772_move_order_token_from_tokenized_permission.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105772_move_order_token_from_tokenized_permission.spree.rb new file mode 100644 index 00000000..0ed95a6a --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105772_move_order_token_from_tokenized_permission.spree.rb @@ -0,0 +1,30 @@ +# This migration comes from spree (originally 20140530024945) +class MoveOrderTokenFromTokenizedPermission < ActiveRecord::Migration + class Spree::TokenizedPermission < Spree::Base + belongs_to :permissable, polymorphic: true + end + + def up + case Spree::Order.connection.adapter_name + when 'SQLite' + Spree::Order.has_one :tokenized_permission, :as => :permissable + Spree::Order.includes(:tokenized_permission).each do |o| + o.update_column :guest_token, o.tokenized_permission.token + end + when 'Mysql2' + execute "UPDATE spree_orders, spree_tokenized_permissions + SET spree_orders.guest_token = spree_tokenized_permissions.token + WHERE spree_tokenized_permissions.permissable_id = spree_orders.id + AND spree_tokenized_permissions.permissable_type = 'Spree::Order'" + else + execute "UPDATE spree_orders + SET guest_token = spree_tokenized_permissions.token + FROM spree_tokenized_permissions + WHERE spree_tokenized_permissions.permissable_id = spree_orders.id + AND spree_tokenized_permissions.permissable_type = 'Spree::Order'" + end + end + + def down + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105773_set_shipment_total_for_users_upgrading.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105773_set_shipment_total_for_users_upgrading.spree.rb new file mode 100644 index 00000000..4d26fd71 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105773_set_shipment_total_for_users_upgrading.spree.rb @@ -0,0 +1,13 @@ +# This migration comes from spree (originally 20140601011216) +class SetShipmentTotalForUsersUpgrading < ActiveRecord::Migration + def up + # NOTE You might not need this at all unless you're upgrading from Spree 2.1.x + # or below. For those upgrading this should populate the Order#shipment_total + # for legacy orders + execute "UPDATE spree_orders + SET shipment_total = (SELECT SUM(spree_shipments.cost) AS sum_id + FROM spree_shipments + WHERE spree_shipments.order_id = spree_orders.id) + WHERE spree_orders.completed_at IS NOT NULL AND spree_orders.shipment_total = 0" + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105774_drop_credit_card_first_name_and_last_name.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105774_drop_credit_card_first_name_and_last_name.spree.rb new file mode 100644 index 00000000..e563b0fb --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105774_drop_credit_card_first_name_and_last_name.spree.rb @@ -0,0 +1,7 @@ +# This migration comes from spree (originally 20140604135309) +class DropCreditCardFirstNameAndLastName < ActiveRecord::Migration + def change + remove_column :spree_credit_cards, :first_name, :string + remove_column :spree_credit_cards, :last_name, :string + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105775_add_deleted_at_to_spree_promotion_actions.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105775_add_deleted_at_to_spree_promotion_actions.spree.rb new file mode 100644 index 00000000..870e6e69 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105775_add_deleted_at_to_spree_promotion_actions.spree.rb @@ -0,0 +1,7 @@ +# This migration comes from spree (originally 20140609201656) +class AddDeletedAtToSpreePromotionActions < ActiveRecord::Migration + def change + add_column :spree_promotion_actions, :deleted_at, :datetime + add_index :spree_promotion_actions, :deleted_at + end +end diff --git a/sprangular/spec/dummy/db/migrate/20140814105776_remove_uncaptured_amount_from_spree_payments.spree.rb b/sprangular/spec/dummy/db/migrate/20140814105776_remove_uncaptured_amount_from_spree_payments.spree.rb new file mode 100644 index 00000000..e12eb3ab --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20140814105776_remove_uncaptured_amount_from_spree_payments.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20140616202624) +class RemoveUncapturedAmountFromSpreePayments < ActiveRecord::Migration + def change + remove_column :spree_payments, :uncaptured_amount + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183757_create_spree_taxons_promotion_rules.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183757_create_spree_taxons_promotion_rules.spree.rb new file mode 100644 index 00000000..07d07f7c --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183757_create_spree_taxons_promotion_rules.spree.rb @@ -0,0 +1,9 @@ +# This migration comes from spree (originally 20140318191500) +class CreateSpreeTaxonsPromotionRules < ActiveRecord::Migration + def change + create_table :spree_taxons_promotion_rules do |t| + t.references :taxon, index: true + t.references :promotion_rule, index: true + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183758_create_spree_refunds.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183758_create_spree_refunds.spree.rb new file mode 100644 index 00000000..dd6d95d3 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183758_create_spree_refunds.spree.rb @@ -0,0 +1,13 @@ +# This migration comes from spree (originally 20140625214618) +class CreateSpreeRefunds < ActiveRecord::Migration + def change + create_table :spree_refunds do |t| + t.integer :payment_id + t.integer :return_authorization_id + t.decimal :amount, precision: 10, scale: 2, default: 0.0, null: false + t.string :transaction_id + + t.timestamps + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183759_create_spree_return_authorization_inventory_unit.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183759_create_spree_return_authorization_inventory_unit.spree.rb new file mode 100644 index 00000000..c99df88c --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183759_create_spree_return_authorization_inventory_unit.spree.rb @@ -0,0 +1,13 @@ +# This migration comes from spree (originally 20140702140656) +class CreateSpreeReturnAuthorizationInventoryUnit < ActiveRecord::Migration + def change + create_table :spree_return_authorization_inventory_units do |t| + t.integer :return_authorization_id + t.integer :inventory_unit_id + t.integer :exchange_variant_id + t.datetime :received_at + + t.timestamps + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183760_rename_return_authorization_inventory_unit_to_return_items.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183760_rename_return_authorization_inventory_unit_to_return_items.spree.rb new file mode 100644 index 00000000..d9fb50ca --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183760_rename_return_authorization_inventory_unit_to_return_items.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20140707125621) +class RenameReturnAuthorizationInventoryUnitToReturnItems < ActiveRecord::Migration + def change + rename_table :spree_return_authorization_inventory_units, :spree_return_items + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183761_backfill_line_item_pre_tax_amount.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183761_backfill_line_item_pre_tax_amount.spree.rb new file mode 100644 index 00000000..6897a88c --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183761_backfill_line_item_pre_tax_amount.spree.rb @@ -0,0 +1,11 @@ +# This migration comes from spree (originally 20140709160534) +class BackfillLineItemPreTaxAmount < ActiveRecord::Migration + def change + # set pre_tax_amount to discounted_amount - included_tax_total + execute(<<-SQL) + UPDATE spree_line_items + SET pre_tax_amount = ((price * quantity) + promo_total) - included_tax_total + WHERE pre_tax_amount IS NULL; + SQL + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183762_recreate_spree_return_authorizations.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183762_recreate_spree_return_authorizations.spree.rb new file mode 100644 index 00000000..b59c2a34 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183762_recreate_spree_return_authorizations.spree.rb @@ -0,0 +1,56 @@ +# This migration comes from spree (originally 20140710041921) +class RecreateSpreeReturnAuthorizations < ActiveRecord::Migration + def up + # If the app has any legacy return authorizations then rename the table & columns and leave them there + # for the spree_legacy_return_authorizations extension to pick up with. + # Otherwise just drop the tables/columns as they are no longer used in stock spree. The spree_legacy_return_authorizations + # extension will recreate these tables for dev environments & etc as needed. + if Spree::ReturnAuthorization.exists? + rename_table :spree_return_authorizations, :spree_legacy_return_authorizations + rename_column :spree_inventory_units, :return_authorization_id, :legacy_return_authorization_id + else + drop_table :spree_return_authorizations + remove_column :spree_inventory_units, :return_authorization_id + end + + Spree::Adjustment.where(source_type: 'Spree::ReturnAuthorization').update_all(source_type: 'Spree::LegacyReturnAuthorization') + + # For now just recreate the table as it was. Future changes to the schema (including dropping "amount") will be coming in a + # separate commit. + create_table :spree_return_authorizations do |t| + t.string "number" + t.string "state" + t.decimal "amount", precision: 10, scale: 2, default: 0.0, null: false + t.integer "order_id" + t.text "reason" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "stock_location_id" + end + + end + + def down + drop_table :spree_return_authorizations + + Spree::Adjustment.where(source_type: 'Spree::LegacyReturnAuthorization').update_all(source_type: 'Spree::ReturnAuthorization') + + if table_exists?(:spree_legacy_return_authorizations) + rename_table :spree_legacy_return_authorizations, :spree_return_authorizations + rename_column :spree_inventory_units, :legacy_return_authorization_id, :return_authorization_id + else + create_table :spree_return_authorizations do |t| + t.string "number" + t.string "state" + t.decimal "amount", precision: 10, scale: 2, default: 0.0, null: false + t.integer "order_id" + t.text "reason" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "stock_location_id" + end + add_column :spree_inventory_units, :return_authorization_id, :integer, after: :shipment_id + add_index :spree_inventory_units, :return_authorization_id + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183763_add_amount_fields_to_return_items.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183763_add_amount_fields_to_return_items.spree.rb new file mode 100644 index 00000000..87bb8296 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183763_add_amount_fields_to_return_items.spree.rb @@ -0,0 +1,8 @@ +# This migration comes from spree (originally 20140710181204) +class AddAmountFieldsToReturnItems < ActiveRecord::Migration + def change + add_column :spree_return_items, :pre_tax_amount, :decimal, precision: 10, scale: 2, default: 0.0, null: false + add_column :spree_return_items, :included_tax_total, :decimal, precision: 10, scale: 2, default: 0.0, null: false + add_column :spree_return_items, :additional_tax_total, :decimal, precision: 10, scale: 2, default: 0.0, null: false + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183764_drop_return_authorization_amount.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183764_drop_return_authorization_amount.spree.rb new file mode 100644 index 00000000..6c86f2be --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183764_drop_return_authorization_amount.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20140710190048) +class DropReturnAuthorizationAmount < ActiveRecord::Migration + def change + remove_column :spree_return_authorizations, :amount + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183765_create_spree_return_authorization_reasons.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183765_create_spree_return_authorization_reasons.spree.rb new file mode 100644 index 00000000..bafcd24e --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183765_create_spree_return_authorization_reasons.spree.rb @@ -0,0 +1,29 @@ +# This migration comes from spree (originally 20140713140455) +class CreateSpreeReturnAuthorizationReasons < ActiveRecord::Migration + def change + create_table :spree_return_authorization_reasons do |t| + t.string :name + t.boolean :active, default: true + t.boolean :mutable, default: true + + t.timestamps + end + + reversible do |direction| + direction.up do + Spree::ReturnAuthorizationReason.create!(name: 'Better price available') + Spree::ReturnAuthorizationReason.create!(name: 'Missed estimated delivery date') + Spree::ReturnAuthorizationReason.create!(name: 'Missing parts or accessories') + Spree::ReturnAuthorizationReason.create!(name: 'Damaged/Defective') + Spree::ReturnAuthorizationReason.create!(name: 'Different from what was ordered') + Spree::ReturnAuthorizationReason.create!(name: 'Different from description') + Spree::ReturnAuthorizationReason.create!(name: 'No longer needed/wanted') + Spree::ReturnAuthorizationReason.create!(name: 'Accidental order') + Spree::ReturnAuthorizationReason.create!(name: 'Unauthorized purchase') + end + end + + add_column :spree_return_authorizations, :return_authorization_reason_id, :integer + add_index :spree_return_authorizations, :return_authorization_reason_id, name: 'index_return_authorizations_on_return_authorization_reason_id' + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183766_create_spree_refund_reasons.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183766_create_spree_refund_reasons.spree.rb new file mode 100644 index 00000000..2b769bff --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183766_create_spree_refund_reasons.spree.rb @@ -0,0 +1,15 @@ +# This migration comes from spree (originally 20140713140527) +class CreateSpreeRefundReasons < ActiveRecord::Migration + def change + create_table :spree_refund_reasons do |t| + t.string :name + t.boolean :active, default: true + t.boolean :mutable, default: true + + t.timestamps + end + + add_column :spree_refunds, :refund_reason_id, :integer + add_index :spree_refunds, :refund_reason_id, name: 'index_refunds_on_refund_reason_id' + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183767_rename_return_authorization_reason.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183767_rename_return_authorization_reason.spree.rb new file mode 100644 index 00000000..cd3658af --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183767_rename_return_authorization_reason.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20140713142214) +class RenameReturnAuthorizationReason < ActiveRecord::Migration + def change + rename_column :spree_return_authorizations, :reason, :memo + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183768_create_spree_promotion_categories.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183768_create_spree_promotion_categories.spree.rb new file mode 100644 index 00000000..63a8dc3f --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183768_create_spree_promotion_categories.spree.rb @@ -0,0 +1,12 @@ +# This migration comes from spree (originally 20140715182625) +class CreateSpreePromotionCategories < ActiveRecord::Migration + def change + create_table :spree_promotion_categories do |t| + t.string :name + t.timestamps + end + + add_column :spree_promotions, :promotion_category_id, :integer + add_index :spree_promotions, :promotion_category_id + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183769_drop_received_at_on_return_items.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183769_drop_received_at_on_return_items.spree.rb new file mode 100644 index 00000000..29b54b88 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183769_drop_received_at_on_return_items.spree.rb @@ -0,0 +1,10 @@ +# This migration comes from spree (originally 20140716204111) +class DropReceivedAtOnReturnItems < ActiveRecord::Migration + def up + remove_column :spree_return_items, :received_at + end + + def down + add_column :spree_return_items, :received_at, :datetime + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183770_add_reception_and_acceptance_status_to_return_items.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183770_add_reception_and_acceptance_status_to_return_items.spree.rb new file mode 100644 index 00000000..2190962f --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183770_add_reception_and_acceptance_status_to_return_items.spree.rb @@ -0,0 +1,7 @@ +# This migration comes from spree (originally 20140716212330) +class AddReceptionAndAcceptanceStatusToReturnItems < ActiveRecord::Migration + def change + add_column :spree_return_items, :reception_status, :string + add_column :spree_return_items, :acceptance_status, :string + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183771_create_default_refund_reason.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183771_create_default_refund_reason.spree.rb new file mode 100644 index 00000000..5de95bb4 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183771_create_default_refund_reason.spree.rb @@ -0,0 +1,10 @@ +# This migration comes from spree (originally 20140717155155) +class CreateDefaultRefundReason < ActiveRecord::Migration + def up + Spree::RefundReason.create!(name: Spree::RefundReason::RETURN_PROCESSING_REASON, mutable: false) + end + + def down + Spree::RefundReason.find_by(name: Spree::RefundReason::RETURN_PROCESSING_REASON, mutable: false).destroy + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183772_add_default_to_spree_stock_locations.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183772_add_default_to_spree_stock_locations.spree.rb new file mode 100644 index 00000000..2ed7de68 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183772_add_default_to_spree_stock_locations.spree.rb @@ -0,0 +1,8 @@ +# This migration comes from spree (originally 20140717185932) +class AddDefaultToSpreeStockLocations < ActiveRecord::Migration + def change + unless column_exists? :spree_stock_locations, :default + add_column :spree_stock_locations, :default, :boolean, null: false, default: false + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183773_create_spree_customer_returns.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183773_create_spree_customer_returns.spree.rb new file mode 100644 index 00000000..5208784b --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183773_create_spree_customer_returns.spree.rb @@ -0,0 +1,10 @@ +# This migration comes from spree (originally 20140718133010) +class CreateSpreeCustomerReturns < ActiveRecord::Migration + def change + create_table :spree_customer_returns do |t| + t.string :number + t.integer :stock_location_id + t.timestamps + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183774_add_customer_return_id_to_return_item.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183774_add_customer_return_id_to_return_item.spree.rb new file mode 100644 index 00000000..304cf79e --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183774_add_customer_return_id_to_return_item.spree.rb @@ -0,0 +1,7 @@ +# This migration comes from spree (originally 20140718133349) +class AddCustomerReturnIdToReturnItem < ActiveRecord::Migration + def change + add_column :spree_return_items, :customer_return_id, :integer + add_index :spree_return_items, :customer_return_id, name: 'index_return_items_on_customer_return_id' + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183775_create_friendly_id_slugs.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183775_create_friendly_id_slugs.spree.rb new file mode 100644 index 00000000..6717789c --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183775_create_friendly_id_slugs.spree.rb @@ -0,0 +1,16 @@ +# This migration comes from spree (originally 20140718195325) +class CreateFriendlyIdSlugs < ActiveRecord::Migration + def change + create_table :friendly_id_slugs do |t| + t.string :slug, :null => false + t.integer :sluggable_id, :null => false + t.string :sluggable_type, :limit => 50 + t.string :scope + t.datetime :created_at + end + add_index :friendly_id_slugs, :sluggable_id + add_index :friendly_id_slugs, [:slug, :sluggable_type] + add_index :friendly_id_slugs, [:slug, :sluggable_type, :scope], :unique => true + add_index :friendly_id_slugs, :sluggable_type + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183776_rename_spree_refund_return_authorization_id.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183776_rename_spree_refund_return_authorization_id.spree.rb new file mode 100644 index 00000000..0bacaebc --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183776_rename_spree_refund_return_authorization_id.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20140723004419) +class RenameSpreeRefundReturnAuthorizationId < ActiveRecord::Migration + def change + rename_column :spree_refunds, :return_authorization_id, :customer_return_id + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183777_increase_return_item_pre_tax_amount_precision.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183777_increase_return_item_pre_tax_amount_precision.spree.rb new file mode 100644 index 00000000..7d930586 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183777_increase_return_item_pre_tax_amount_precision.spree.rb @@ -0,0 +1,14 @@ +# This migration comes from spree (originally 20140723152808) +class IncreaseReturnItemPreTaxAmountPrecision < ActiveRecord::Migration + def up + change_column :spree_return_items, :pre_tax_amount, :decimal, precision: 12, scale: 4, default: 0.0, null: false + change_column :spree_return_items, :included_tax_total, :decimal, precision: 12, scale: 4, default: 0.0, null: false + change_column :spree_return_items, :additional_tax_total, :decimal, precision: 12, scale: 4, default: 0.0, null: false + end + + def down + change_column :spree_return_items, :pre_tax_amount, :decimal, precision: 10, scale: 2, default: 0.0, null: false + change_column :spree_return_items, :included_tax_total, :decimal, precision: 10, scale: 2, default: 0.0, null: false + change_column :spree_return_items, :additional_tax_total, :decimal, precision: 10, scale: 2, default: 0.0, null: false + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183778_copy_product_slugs_to_slug_history.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183778_copy_product_slugs_to_slug_history.spree.rb new file mode 100644 index 00000000..21cb01b3 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183778_copy_product_slugs_to_slug_history.spree.rb @@ -0,0 +1,16 @@ +# This migration comes from spree (originally 20140723214541) +class CopyProductSlugsToSlugHistory < ActiveRecord::Migration + def change + + # do what sql does best: copy all slugs into history table in a single query + # rather than load potentially millions of products into memory + Spree::Product.connection.execute <<-SQL +INSERT INTO #{FriendlyId::Slug.table_name} (slug, sluggable_id, sluggable_type, created_at) + SELECT slug, id, '#{Spree::Product.to_s}', #{ActiveRecord::Base.send(:sanitize_sql_array, ['?', Time.current])} + FROM #{Spree::Product.table_name} + WHERE slug IS NOT NULL + ORDER BY id +SQL + + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183779_create_spree_reimbursements.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183779_create_spree_reimbursements.spree.rb new file mode 100644 index 00000000..54ac761f --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183779_create_spree_reimbursements.spree.rb @@ -0,0 +1,22 @@ +# This migration comes from spree (originally 20140725131539) +class CreateSpreeReimbursements < ActiveRecord::Migration + def change + create_table :spree_reimbursements do |t| + t.string :number + t.string :reimbursement_status + t.integer :customer_return_id + t.integer :order_id + t.decimal :total, precision: 10, scale: 2 + + t.timestamps + end + + add_index :spree_reimbursements, :customer_return_id + add_index :spree_reimbursements, :order_id + + remove_column :spree_refunds, :customer_return_id, :integer + add_column :spree_refunds, :reimbursement_id, :integer + + add_column :spree_return_items, :reimbursement_id, :integer + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183780_add_promotionable_to_spree_products.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183780_add_promotionable_to_spree_products.spree.rb new file mode 100644 index 00000000..11b4038e --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183780_add_promotionable_to_spree_products.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20140728225422) +class AddPromotionableToSpreeProducts < ActiveRecord::Migration + def change + add_column :spree_products, :promotionable, :boolean, default: true + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183781_add_exchange_inventory_unit_foreign_keys.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183781_add_exchange_inventory_unit_foreign_keys.spree.rb new file mode 100644 index 00000000..3ff2eb52 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183781_add_exchange_inventory_unit_foreign_keys.spree.rb @@ -0,0 +1,8 @@ +# This migration comes from spree (originally 20140729133613) +class AddExchangeInventoryUnitForeignKeys < ActiveRecord::Migration + def change + add_column :spree_return_items, :exchange_inventory_unit_id, :integer + + add_index :spree_return_items, :exchange_inventory_unit_id + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183782_add_acceptance_status_errors_to_return_item.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183782_add_acceptance_status_errors_to_return_item.spree.rb new file mode 100644 index 00000000..a5d69d64 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183782_add_acceptance_status_errors_to_return_item.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20140730155938) +class AddAcceptanceStatusErrorsToReturnItem < ActiveRecord::Migration + def change + add_column :spree_return_items, :acceptance_status_errors, :text + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183783_create_spree_reimbursement_types.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183783_create_spree_reimbursement_types.spree.rb new file mode 100644 index 00000000..8434b20c --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183783_create_spree_reimbursement_types.spree.rb @@ -0,0 +1,21 @@ +# This migration comes from spree (originally 20140731150017) +class CreateSpreeReimbursementTypes < ActiveRecord::Migration + def change + create_table :spree_reimbursement_types do |t| + t.string :name + t.boolean :active, default: true + t.boolean :mutable, default: true + + t.timestamps + end + + reversible do |direction| + direction.up do + Spree::ReimbursementType.create!(name: Spree::ReimbursementType::ORIGINAL) + end + end + + add_column :spree_return_items, :preferred_reimbursement_type_id, :integer + add_column :spree_return_items, :override_reimbursement_type_id, :integer + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183784_add_default_to_shipment_cost.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183784_add_default_to_shipment_cost.spree.rb new file mode 100644 index 00000000..6adffa8f --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183784_add_default_to_shipment_cost.spree.rb @@ -0,0 +1,11 @@ +# This migration comes from spree (originally 20140804185157) +class AddDefaultToShipmentCost < ActiveRecord::Migration + def up + change_column :spree_shipments, :cost, :decimal, precision: 10, scale: 2, default: 0.0 + Spree::Shipment.where(cost: nil).update_all(cost: 0) + end + + def down + change_column :spree_shipments, :cost, :decimal, precision: 10, scale: 2 + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183785_add_default_to_spree_credit_cards.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183785_add_default_to_spree_credit_cards.spree.rb new file mode 100644 index 00000000..9ed541e7 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183785_add_default_to_spree_credit_cards.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20140805171035) +class AddDefaultToSpreeCreditCards < ActiveRecord::Migration + def change + add_column :spree_credit_cards, :default, :boolean, null: false, default: false + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183786_make_existing_credit_cards_default.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183786_make_existing_credit_cards_default.spree.rb new file mode 100644 index 00000000..df68c8e9 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183786_make_existing_credit_cards_default.spree.rb @@ -0,0 +1,11 @@ +# This migration comes from spree (originally 20140805171219) +class MakeExistingCreditCardsDefault < ActiveRecord::Migration + def up + # set the newest credit card for every user to be the default; SQL technique from + # http://stackoverflow.com/questions/121387/fetch-the-row-which-has-the-max-value-for-a-column + Spree::CreditCard.where.not(user_id: nil).joins("LEFT OUTER JOIN spree_credit_cards cc2 ON cc2.user_id = spree_credit_cards.user_id AND spree_credit_cards.created_at < cc2.created_at").where("cc2.user_id IS NULL").update_all(default: true) + end + def down + # do nothing + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183787_add_type_to_reimbursement_type.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183787_add_type_to_reimbursement_type.spree.rb new file mode 100644 index 00000000..72d468c3 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183787_add_type_to_reimbursement_type.spree.rb @@ -0,0 +1,10 @@ +# This migration comes from spree (originally 20140806144901) +class AddTypeToReimbursementType < ActiveRecord::Migration + def change + add_column :spree_reimbursement_types, :type, :string + add_index :spree_reimbursement_types, :type + + Spree::ReimbursementType.reset_column_information + Spree::ReimbursementType.find_by(name: Spree::ReimbursementType::ORIGINAL).update_attributes!(type: 'Spree::ReimbursementType::OriginalPayment') + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183788_create_spree_reimbursement_credits.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183788_create_spree_reimbursement_credits.spree.rb new file mode 100644 index 00000000..79d0ec3a --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183788_create_spree_reimbursement_credits.spree.rb @@ -0,0 +1,11 @@ +# This migration comes from spree (originally 20140808184039) +class CreateSpreeReimbursementCredits < ActiveRecord::Migration + def change + create_table :spree_reimbursement_credits do |t| + t.decimal :amount, precision: 10, scale: 2, default: 0.0, null: false + t.integer :reimbursement_id + t.integer :creditable_id + t.string :creditable_type + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183789_add_meta_title_to_spree_products.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183789_add_meta_title_to_spree_products.spree.rb new file mode 100644 index 00000000..cc776f7f --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183789_add_meta_title_to_spree_products.spree.rb @@ -0,0 +1,8 @@ +# This migration comes from spree (originally 20140827170513) +class AddMetaTitleToSpreeProducts < ActiveRecord::Migration + def change + change_table :spree_products do |t| + t.string :meta_title + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183790_add_code_to_spree_tax_categories.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183790_add_code_to_spree_tax_categories.spree.rb new file mode 100644 index 00000000..e5f07933 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183790_add_code_to_spree_tax_categories.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20140924164824) +class AddCodeToSpreeTaxCategories < ActiveRecord::Migration + def change + add_column :spree_tax_categories, :tax_code, :string + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183791_default_pre_tax_amount_should_be_zero.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183791_default_pre_tax_amount_should_be_zero.spree.rb new file mode 100644 index 00000000..0f0e0248 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183791_default_pre_tax_amount_should_be_zero.spree.rb @@ -0,0 +1,7 @@ +# This migration comes from spree (originally 20140927193717) +class DefaultPreTaxAmountShouldBeZero < ActiveRecord::Migration + def change + change_column :spree_line_items, :pre_tax_amount, :decimal, precision: 8, scale: 2, default: 0 + change_column :spree_shipments, :pre_tax_amount, :decimal, precision: 8, scale: 2, default: 0 + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183792_add_code_to_spree_shipping_methods.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183792_add_code_to_spree_shipping_methods.spree.rb new file mode 100644 index 00000000..121bcb06 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183792_add_code_to_spree_shipping_methods.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20141002191113) +class AddCodeToSpreeShippingMethods < ActiveRecord::Migration + def change + add_column :spree_shipping_methods, :code, :string + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183793_add_cancel_audit_fields_to_spree_orders.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183793_add_cancel_audit_fields_to_spree_orders.spree.rb new file mode 100644 index 00000000..d8af420e --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183793_add_cancel_audit_fields_to_spree_orders.spree.rb @@ -0,0 +1,7 @@ +# This migration comes from spree (originally 20141007230328) +class AddCancelAuditFieldsToSpreeOrders < ActiveRecord::Migration + def change + add_column :spree_orders, :canceled_at, :datetime + add_column :spree_orders, :canceler_id, :integer + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183794_add_store_id_to_orders.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183794_add_store_id_to_orders.spree.rb new file mode 100644 index 00000000..af67742f --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183794_add_store_id_to_orders.spree.rb @@ -0,0 +1,9 @@ +# This migration comes from spree (originally 20141009204607) +class AddStoreIdToOrders < ActiveRecord::Migration + def change + add_column :spree_orders, :store_id, :integer + if Spree::Store.default.persisted? + Spree::Order.where(store_id: nil).update_all(store_id: Spree::Store.default.id) + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183795_create_spree_taxons_prototypes.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183795_create_spree_taxons_prototypes.spree.rb new file mode 100644 index 00000000..32f14801 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183795_create_spree_taxons_prototypes.spree.rb @@ -0,0 +1,9 @@ +# This migration comes from spree (originally 20141012083513) +class CreateSpreeTaxonsPrototypes < ActiveRecord::Migration + def change + create_table :spree_taxons_prototypes do |t| + t.belongs_to :taxon, index: true + t.belongs_to :prototype, index: true + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183796_add_state_lock_version_to_order.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183796_add_state_lock_version_to_order.spree.rb new file mode 100644 index 00000000..3f781d13 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183796_add_state_lock_version_to_order.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20141021194502) +class AddStateLockVersionToOrder < ActiveRecord::Migration + def change + add_column :spree_orders, :state_lock_version, :integer, default: 0, null: false + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183797_add_counter_cache_from_spree_variants_to_spree_stock_items.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183797_add_counter_cache_from_spree_variants_to_spree_stock_items.spree.rb new file mode 100644 index 00000000..03634069 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183797_add_counter_cache_from_spree_variants_to_spree_stock_items.spree.rb @@ -0,0 +1,14 @@ +# This migration comes from spree (originally 20141023005240) +class AddCounterCacheFromSpreeVariantsToSpreeStockItems < ActiveRecord::Migration + def up + add_column :spree_variants, :stock_items_count, :integer, default: 0, null: false + + Spree::Variant.find_each do |variant| + Spree::Variant.reset_counters(variant.id, :stock_items) + end + end + + def down + remove_column :spree_variants, :stock_items_count + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183798_fix_adjustment_order_presence.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183798_fix_adjustment_order_presence.spree.rb new file mode 100644 index 00000000..22a8a3ee --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183798_fix_adjustment_order_presence.spree.rb @@ -0,0 +1,14 @@ +# This migration comes from spree (originally 20141101231208) +class FixAdjustmentOrderPresence < ActiveRecord::Migration + def change + say 'Fixing adjustments without direct order reference' + Spree::Adjustment.where(order: nil).find_each do |adjustment| + adjustable = adjustment.adjustable + if adjustable.is_a? Spree::Order + adjustment.update_attributes!(order_id: adjustable.id) + else + adjustment.update_attributes!(adjustable: adjustable.order) + end + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183799_update_classifications_positions.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183799_update_classifications_positions.spree.rb new file mode 100644 index 00000000..ac18a997 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183799_update_classifications_positions.spree.rb @@ -0,0 +1,10 @@ +# This migration comes from spree (originally 20141105213646) +class UpdateClassificationsPositions < ActiveRecord::Migration + def up + Spree::Taxon.all.each do |taxon| + taxon.classifications.each_with_index do |c12n, i| + c12n.set_list_position(i + 1) + end + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183800_add_guest_token_index_to_spree_orders.spree.rb b/sprangular/spec/dummy/db/migrate/20141203183800_add_guest_token_index_to_spree_orders.spree.rb new file mode 100644 index 00000000..18ad9d9b --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183800_add_guest_token_index_to_spree_orders.spree.rb @@ -0,0 +1,6 @@ +# This migration comes from spree (originally 20141120135441) +class AddGuestTokenIndexToSpreeOrders < ActiveRecord::Migration + def change + add_index :spree_orders, :guest_token + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183801_add_api_key_to_spree_users.spree_api.rb b/sprangular/spec/dummy/db/migrate/20141203183801_add_api_key_to_spree_users.spree_api.rb new file mode 100644 index 00000000..b9e3fe38 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183801_add_api_key_to_spree_users.spree_api.rb @@ -0,0 +1,8 @@ +# This migration comes from spree_api (originally 20100107141738) +class AddApiKeyToSpreeUsers < ActiveRecord::Migration + def change + unless defined?(User) + add_column :spree_users, :api_key, :string, :limit => 40 + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183802_resize_api_key_field.spree_api.rb b/sprangular/spec/dummy/db/migrate/20141203183802_resize_api_key_field.spree_api.rb new file mode 100644 index 00000000..778c1056 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183802_resize_api_key_field.spree_api.rb @@ -0,0 +1,8 @@ +# This migration comes from spree_api (originally 20120411123334) +class ResizeApiKeyField < ActiveRecord::Migration + def change + unless defined?(User) + change_column :spree_users, :api_key, :string, :limit => 48 + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183803_rename_api_key_to_spree_api_key.spree_api.rb b/sprangular/spec/dummy/db/migrate/20141203183803_rename_api_key_to_spree_api_key.spree_api.rb new file mode 100644 index 00000000..7fd09d3b --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183803_rename_api_key_to_spree_api_key.spree_api.rb @@ -0,0 +1,8 @@ +# This migration comes from spree_api (originally 20120530054546) +class RenameApiKeyToSpreeApiKey < ActiveRecord::Migration + def change + unless defined?(User) + rename_column :spree_users, :api_key, :spree_api_key + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183804_add_index_to_user_spree_api_key.spree_api.rb b/sprangular/spec/dummy/db/migrate/20141203183804_add_index_to_user_spree_api_key.spree_api.rb new file mode 100644 index 00000000..757fa675 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183804_add_index_to_user_spree_api_key.spree_api.rb @@ -0,0 +1,8 @@ +# This migration comes from spree_api (originally 20131017162334) +class AddIndexToUserSpreeApiKey < ActiveRecord::Migration + def change + unless defined?(User) + add_index :spree_users, :spree_api_key + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183805_create_users.spree_auth.rb b/sprangular/spec/dummy/db/migrate/20141203183805_create_users.spree_auth.rb new file mode 100644 index 00000000..a4e8e602 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183805_create_users.spree_auth.rb @@ -0,0 +1,30 @@ +# This migration comes from spree_auth (originally 20101026184949) +class CreateUsers < ActiveRecord::Migration + def up + unless table_exists?("spree_users") + create_table "spree_users", :force => true do |t| + t.string "crypted_password", :limit => 128 + t.string "salt", :limit => 128 + t.string "email" + t.string "remember_token" + t.string "remember_token_expires_at" + t.string "persistence_token" + t.string "single_access_token" + t.string "perishable_token" + t.integer "login_count", :default => 0, :null => false + t.integer "failed_login_count", :default => 0, :null => false + t.datetime "last_request_at" + t.datetime "current_login_at" + t.datetime "last_login_at" + t.string "current_login_ip" + t.string "last_login_ip" + t.string "login" + t.integer "ship_address_id" + t.integer "bill_address_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "openid_identifier" + end + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183806_rename_columns_for_devise.spree_auth.rb b/sprangular/spec/dummy/db/migrate/20141203183806_rename_columns_for_devise.spree_auth.rb new file mode 100644 index 00000000..6aa647e4 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183806_rename_columns_for_devise.spree_auth.rb @@ -0,0 +1,38 @@ +# This migration comes from spree_auth (originally 20101026184950) +class RenameColumnsForDevise < ActiveRecord::Migration + def up + return if column_exists?(:spree_users, :password_salt) + rename_column :spree_users, :crypted_password, :encrypted_password + rename_column :spree_users, :salt, :password_salt + rename_column :spree_users, :remember_token_expires_at, :remember_created_at + rename_column :spree_users, :login_count, :sign_in_count + rename_column :spree_users, :failed_login_count, :failed_attempts + rename_column :spree_users, :single_access_token, :reset_password_token + rename_column :spree_users, :current_login_at, :current_sign_in_at + rename_column :spree_users, :last_login_at, :last_sign_in_at + rename_column :spree_users, :current_login_ip, :current_sign_in_ip + rename_column :spree_users, :last_login_ip, :last_sign_in_ip + add_column :spree_users, :authentication_token, :string + add_column :spree_users, :unlock_token, :string + add_column :spree_users, :locked_at, :datetime + remove_column :spree_users, :openid_identifier + end + + def down + remove_column :spree_users, :authentication_token + remove_column :spree_users, :locked_at + remove_column :spree_users, :unlock_token + rename_column :spree_users, :last_sign_in_ip, :last_login_ip + rename_column :spree_users, :current_sign_in_ip, :current_login_ip + rename_column :spree_users, :last_sign_in_at, :last_login_at + rename_column :spree_users, :current_sign_in_at, :current_login_at + rename_column :spree_users, :reset_password_token, :single_access_token + rename_column :spree_users, :failed_attempts, :failed_login_count + rename_column :spree_users, :sign_in_count, :login_count + rename_column :spree_users, :remember_created_at, :remember_token_expires_at + rename_column :spree_users, :password_salt, :salt + rename_column :spree_users, :encrypted_password, :crypted_password + add_column :spree_users, :unlock_token, :string + add_column :spree_users, :openid_identifier, :string + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183807_convert_user_remember_field.spree_auth.rb b/sprangular/spec/dummy/db/migrate/20141203183807_convert_user_remember_field.spree_auth.rb new file mode 100644 index 00000000..9e6a94ff --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183807_convert_user_remember_field.spree_auth.rb @@ -0,0 +1,12 @@ +# This migration comes from spree_auth (originally 20101214150824) +class ConvertUserRememberField < ActiveRecord::Migration + def up + remove_column :spree_users, :remember_created_at + add_column :spree_users, :remember_created_at, :datetime + end + + def down + remove_column :spree_users, :remember_created_at + add_column :spree_users, :remember_created_at, :string + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183808_add_reset_password_sent_at_to_spree_users.spree_auth.rb b/sprangular/spec/dummy/db/migrate/20141203183808_add_reset_password_sent_at_to_spree_users.spree_auth.rb new file mode 100644 index 00000000..262727e4 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183808_add_reset_password_sent_at_to_spree_users.spree_auth.rb @@ -0,0 +1,9 @@ +# This migration comes from spree_auth (originally 20120203010234) +class AddResetPasswordSentAtToSpreeUsers < ActiveRecord::Migration + def change + Spree::User.reset_column_information + unless Spree::User.column_names.include?("reset_password_sent_at") + add_column :spree_users, :reset_password_sent_at, :datetime + end + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183809_make_users_email_index_unique.spree_auth.rb b/sprangular/spec/dummy/db/migrate/20141203183809_make_users_email_index_unique.spree_auth.rb new file mode 100644 index 00000000..00f6f14b --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183809_make_users_email_index_unique.spree_auth.rb @@ -0,0 +1,10 @@ +# This migration comes from spree_auth (originally 20120605211305) +class MakeUsersEmailIndexUnique < ActiveRecord::Migration + def up + add_index "spree_users", ["email"], :name => "email_idx_unique", :unique => true + end + + def down + remove_index "spree_users", :name => "email_idx_unique" + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183810_add_deleted_at_to_users.spree_auth.rb b/sprangular/spec/dummy/db/migrate/20141203183810_add_deleted_at_to_users.spree_auth.rb new file mode 100644 index 00000000..67960242 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183810_add_deleted_at_to_users.spree_auth.rb @@ -0,0 +1,7 @@ +# This migration comes from spree_auth (originally 20140904000425) +class AddDeletedAtToUsers < ActiveRecord::Migration + def change + add_column :spree_users, :deleted_at, :datetime + add_index :spree_users, :deleted_at + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183811_add_confirmable_to_users.spree_auth.rb b/sprangular/spec/dummy/db/migrate/20141203183811_add_confirmable_to_users.spree_auth.rb new file mode 100644 index 00000000..7521e274 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183811_add_confirmable_to_users.spree_auth.rb @@ -0,0 +1,8 @@ +# This migration comes from spree_auth (originally 20141002154641) +class AddConfirmableToUsers < ActiveRecord::Migration + def change + add_column :spree_users, :confirmation_token, :string + add_column :spree_users, :confirmed_at, :datetime + add_column :spree_users, :confirmation_sent_at, :datetime + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183812_create_skrill_transactions.spree_gateway.rb b/sprangular/spec/dummy/db/migrate/20141203183812_create_skrill_transactions.spree_gateway.rb new file mode 100644 index 00000000..aa0985d9 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183812_create_skrill_transactions.spree_gateway.rb @@ -0,0 +1,15 @@ +# This migration comes from spree_gateway (originally 20111118164631) +class CreateSkrillTransactions < ActiveRecord::Migration + def change + create_table :spree_skrill_transactions do |t| + t.string :email + t.float :amount + t.string :currency + t.integer :transaction_id + t.integer :customer_id + t.string :payment_type + t.timestamps + end + end +end + diff --git a/sprangular/spec/dummy/db/migrate/20141203183813_update_braintree_payment_method_type.spree_gateway.rb b/sprangular/spec/dummy/db/migrate/20141203183813_update_braintree_payment_method_type.spree_gateway.rb new file mode 100644 index 00000000..1232b6d4 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183813_update_braintree_payment_method_type.spree_gateway.rb @@ -0,0 +1,10 @@ +# This migration comes from spree_gateway (originally 20121017004102) +class UpdateBraintreePaymentMethodType < ActiveRecord::Migration + def up + Spree::PaymentMethod.where(:type => "Spree::Gateway::Braintree").update_all(:type => "Spree::Gateway::BraintreeGateway") + end + + def down + Spree::PaymentMethod.where(:type => "Spree::Gateway::BraintreeGateway").update_all(:type => "Spree::Gateway::Braintree") + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183814_update_stripe_payment_method_type.spree_gateway.rb b/sprangular/spec/dummy/db/migrate/20141203183814_update_stripe_payment_method_type.spree_gateway.rb new file mode 100644 index 00000000..04d41609 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183814_update_stripe_payment_method_type.spree_gateway.rb @@ -0,0 +1,10 @@ +# This migration comes from spree_gateway (originally 20130213222555) +class UpdateStripePaymentMethodType < ActiveRecord::Migration + def up + Spree::PaymentMethod.where(:type => "Spree::Gateway::Stripe").update_all(:type => "Spree::Gateway::StripeGateway") + end + + def down + Spree::PaymentMethod.where(:type => "Spree::Gateway::StripeGateway").update_all(:type => "Spree::Gateway::Stripe") + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183815_update_balanced_payment_method_type.spree_gateway.rb b/sprangular/spec/dummy/db/migrate/20141203183815_update_balanced_payment_method_type.spree_gateway.rb new file mode 100644 index 00000000..5da7474c --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183815_update_balanced_payment_method_type.spree_gateway.rb @@ -0,0 +1,10 @@ +# This migration comes from spree_gateway (originally 20130415222802) +class UpdateBalancedPaymentMethodType < ActiveRecord::Migration + def up + Spree::PaymentMethod.where(:type => "Spree::Gateway::Balanced").update_all(:type => "Spree::Gateway::BalancedGateway") + end + + def down + Spree::PaymentMethod.where(:type => "Spree::Gateway::BalancedGateway").update_all(:type => "Spree::Gateway::Balanced") + end +end \ No newline at end of file diff --git a/sprangular/spec/dummy/db/migrate/20141203183816_update_paypal_payment_method_type.spree_gateway.rb b/sprangular/spec/dummy/db/migrate/20141203183816_update_paypal_payment_method_type.spree_gateway.rb new file mode 100644 index 00000000..4e6ec770 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183816_update_paypal_payment_method_type.spree_gateway.rb @@ -0,0 +1,10 @@ +# This migration comes from spree_gateway (originally 20131008221012) +class UpdatePaypalPaymentMethodType < ActiveRecord::Migration + def up + Spree::PaymentMethod.where(:type => "Spree::Gateway::PayPal").update_all(:type => "Spree::Gateway::PayPalGateway") + end + + def down + Spree::PaymentMethod.where(:type => "Spree::Gateway::PayPalGateway").update_all(:type => "Spree::Gateway::PayPal") + end +end diff --git a/sprangular/spec/dummy/db/migrate/20141203183817_migrate_stripe_preferences.spree_gateway.rb b/sprangular/spec/dummy/db/migrate/20141203183817_migrate_stripe_preferences.spree_gateway.rb new file mode 100644 index 00000000..25aef436 --- /dev/null +++ b/sprangular/spec/dummy/db/migrate/20141203183817_migrate_stripe_preferences.spree_gateway.rb @@ -0,0 +1,9 @@ +# This migration comes from spree_gateway (originally 20131112133401) +class MigrateStripePreferences < ActiveRecord::Migration + def up + Spree::Preference.where("#{ActiveRecord::Base.connection.quote_column_name("key")} LIKE 'spree/gateway/stripe_gateway/login%'").each do |pref| + pref.key = pref.key.gsub('login', 'secret_key') + pref.save + end + end +end diff --git a/sprangular/spec/dummy/db/schema.rb b/sprangular/spec/dummy/db/schema.rb new file mode 100644 index 00000000..86b1c535 --- /dev/null +++ b/sprangular/spec/dummy/db/schema.rb @@ -0,0 +1,1026 @@ +# encoding: UTF-8 +# This file is auto-generated from the current state of the database. Instead +# of editing this file, please use the migrations feature of Active Record to +# incrementally modify your database, and then regenerate this schema definition. +# +# Note that this schema.rb definition is the authoritative source for your +# database schema. If you need to create the application database on another +# system, you should be using db:schema:load, not running all the migrations +# from scratch. The latter is a flawed and unsustainable approach (the more migrations +# you'll amass, the slower it'll run and the greater likelihood for issues). +# +# It's strongly recommended that you check this file into your version control system. + +ActiveRecord::Schema.define(version: 20141203183817) do + + create_table "friendly_id_slugs", force: true do |t| + t.string "slug", null: false + t.integer "sluggable_id", null: false + t.string "sluggable_type", limit: 50 + t.string "scope" + t.datetime "created_at" + end + + add_index "friendly_id_slugs", ["slug", "sluggable_type", "scope"], name: "index_friendly_id_slugs_on_slug_and_sluggable_type_and_scope", unique: true + add_index "friendly_id_slugs", ["slug", "sluggable_type"], name: "index_friendly_id_slugs_on_slug_and_sluggable_type" + add_index "friendly_id_slugs", ["sluggable_id"], name: "index_friendly_id_slugs_on_sluggable_id" + add_index "friendly_id_slugs", ["sluggable_type"], name: "index_friendly_id_slugs_on_sluggable_type" + + create_table "spree_addresses", force: true do |t| + t.string "firstname" + t.string "lastname" + t.string "address1" + t.string "address2" + t.string "city" + t.string "zipcode" + t.string "phone" + t.string "state_name" + t.string "alternative_phone" + t.string "company" + t.integer "state_id" + t.integer "country_id" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "spree_addresses", ["country_id"], name: "index_spree_addresses_on_country_id" + add_index "spree_addresses", ["firstname"], name: "index_addresses_on_firstname" + add_index "spree_addresses", ["lastname"], name: "index_addresses_on_lastname" + add_index "spree_addresses", ["state_id"], name: "index_spree_addresses_on_state_id" + + create_table "spree_adjustments", force: true do |t| + t.integer "source_id" + t.string "source_type" + t.integer "adjustable_id" + t.string "adjustable_type" + t.decimal "amount", precision: 10, scale: 2 + t.string "label" + t.boolean "mandatory" + t.boolean "eligible", default: true + t.datetime "created_at" + t.datetime "updated_at" + t.string "state" + t.integer "order_id" + t.boolean "included", default: false + end + + add_index "spree_adjustments", ["adjustable_id", "adjustable_type"], name: "index_spree_adjustments_on_adjustable_id_and_adjustable_type" + add_index "spree_adjustments", ["adjustable_id"], name: "index_adjustments_on_order_id" + add_index "spree_adjustments", ["eligible"], name: "index_spree_adjustments_on_eligible" + add_index "spree_adjustments", ["order_id"], name: "index_spree_adjustments_on_order_id" + add_index "spree_adjustments", ["source_id", "source_type"], name: "index_spree_adjustments_on_source_id_and_source_type" + + create_table "spree_assets", force: true do |t| + t.integer "viewable_id" + t.string "viewable_type" + t.integer "attachment_width" + t.integer "attachment_height" + t.integer "attachment_file_size" + t.integer "position" + t.string "attachment_content_type" + t.string "attachment_file_name" + t.string "type", limit: 75 + t.datetime "attachment_updated_at" + t.text "alt" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "spree_assets", ["viewable_id"], name: "index_assets_on_viewable_id" + add_index "spree_assets", ["viewable_type", "type"], name: "index_assets_on_viewable_type_and_type" + + create_table "spree_calculators", force: true do |t| + t.string "type" + t.integer "calculable_id" + t.string "calculable_type" + t.datetime "created_at" + t.datetime "updated_at" + t.text "preferences" + end + + add_index "spree_calculators", ["calculable_id", "calculable_type"], name: "index_spree_calculators_on_calculable_id_and_calculable_type" + add_index "spree_calculators", ["id", "type"], name: "index_spree_calculators_on_id_and_type" + + create_table "spree_chimpy_order_sources", force: true do |t| + t.integer "order_id" + t.string "campaign_id" + t.string "email_id" + t.datetime "created_at" + t.datetime "updated_at" + end + + create_table "spree_chimpy_subscribers", force: true do |t| + t.string "email", null: false + t.boolean "subscribed", default: true + t.datetime "created_at" + t.datetime "updated_at" + end + + create_table "spree_configurations", force: true do |t| + t.string "name" + t.string "type", limit: 50 + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "spree_configurations", ["name", "type"], name: "index_spree_configurations_on_name_and_type" + + create_table "spree_countries", force: true do |t| + t.string "iso_name" + t.string "iso" + t.string "iso3" + t.string "name" + t.integer "numcode" + t.boolean "states_required", default: false + t.datetime "updated_at" + end + + create_table "spree_credit_cards", force: true do |t| + t.string "month" + t.string "year" + t.string "cc_type" + t.string "last_digits" + t.integer "address_id" + t.string "gateway_customer_profile_id" + t.string "gateway_payment_profile_id" + t.datetime "created_at" + t.datetime "updated_at" + t.string "name" + t.integer "user_id" + t.integer "payment_method_id" + t.boolean "default", default: false, null: false + end + + add_index "spree_credit_cards", ["address_id"], name: "index_spree_credit_cards_on_address_id" + add_index "spree_credit_cards", ["payment_method_id"], name: "index_spree_credit_cards_on_payment_method_id" + add_index "spree_credit_cards", ["user_id"], name: "index_spree_credit_cards_on_user_id" + + create_table "spree_customer_returns", force: true do |t| + t.string "number" + t.integer "stock_location_id" + t.datetime "created_at" + t.datetime "updated_at" + end + + create_table "spree_gateways", force: true do |t| + t.string "type" + t.string "name" + t.text "description" + t.boolean "active", default: true + t.string "environment", default: "development" + t.string "server", default: "test" + t.boolean "test_mode", default: true + t.datetime "created_at" + t.datetime "updated_at" + t.text "preferences" + end + + add_index "spree_gateways", ["active"], name: "index_spree_gateways_on_active" + add_index "spree_gateways", ["test_mode"], name: "index_spree_gateways_on_test_mode" + + create_table "spree_inventory_units", force: true do |t| + t.string "state" + t.integer "variant_id" + t.integer "order_id" + t.integer "shipment_id" + t.datetime "created_at" + t.datetime "updated_at" + t.boolean "pending", default: true + t.integer "line_item_id" + end + + add_index "spree_inventory_units", ["line_item_id"], name: "index_spree_inventory_units_on_line_item_id" + add_index "spree_inventory_units", ["order_id"], name: "index_inventory_units_on_order_id" + add_index "spree_inventory_units", ["shipment_id"], name: "index_inventory_units_on_shipment_id" + add_index "spree_inventory_units", ["variant_id"], name: "index_inventory_units_on_variant_id" + + create_table "spree_line_items", force: true do |t| + t.integer "variant_id" + t.integer "order_id" + t.integer "quantity", null: false + t.decimal "price", precision: 10, scale: 2, null: false + t.datetime "created_at" + t.datetime "updated_at" + t.string "currency" + t.decimal "cost_price", precision: 10, scale: 2 + t.integer "tax_category_id" + t.decimal "adjustment_total", precision: 10, scale: 2, default: 0.0 + t.decimal "additional_tax_total", precision: 10, scale: 2, default: 0.0 + t.decimal "promo_total", precision: 10, scale: 2, default: 0.0 + t.decimal "included_tax_total", precision: 10, scale: 2, default: 0.0, null: false + t.decimal "pre_tax_amount", precision: 8, scale: 2, default: 0.0 + end + + add_index "spree_line_items", ["order_id"], name: "index_spree_line_items_on_order_id" + add_index "spree_line_items", ["tax_category_id"], name: "index_spree_line_items_on_tax_category_id" + add_index "spree_line_items", ["variant_id"], name: "index_spree_line_items_on_variant_id" + + create_table "spree_log_entries", force: true do |t| + t.integer "source_id" + t.string "source_type" + t.text "details" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "spree_log_entries", ["source_id", "source_type"], name: "index_spree_log_entries_on_source_id_and_source_type" + + create_table "spree_option_types", force: true do |t| + t.string "name", limit: 100 + t.string "presentation", limit: 100 + t.integer "position", default: 0, null: false + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "spree_option_types", ["position"], name: "index_spree_option_types_on_position" + + create_table "spree_option_types_prototypes", id: false, force: true do |t| + t.integer "prototype_id" + t.integer "option_type_id" + end + + create_table "spree_option_values", force: true do |t| + t.integer "position" + t.string "name" + t.string "presentation" + t.integer "option_type_id" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "spree_option_values", ["option_type_id"], name: "index_spree_option_values_on_option_type_id" + add_index "spree_option_values", ["position"], name: "index_spree_option_values_on_position" + + create_table "spree_option_values_variants", id: false, force: true do |t| + t.integer "variant_id" + t.integer "option_value_id" + end + + add_index "spree_option_values_variants", ["variant_id", "option_value_id"], name: "index_option_values_variants_on_variant_id_and_option_value_id" + add_index "spree_option_values_variants", ["variant_id"], name: "index_spree_option_values_variants_on_variant_id" + + create_table "spree_orders", force: true do |t| + t.string "number", limit: 32 + t.decimal "item_total", precision: 10, scale: 2, default: 0.0, null: false + t.decimal "total", precision: 10, scale: 2, default: 0.0, null: false + t.string "state" + t.decimal "adjustment_total", precision: 10, scale: 2, default: 0.0, null: false + t.integer "user_id" + t.datetime "completed_at" + t.integer "bill_address_id" + t.integer "ship_address_id" + t.decimal "payment_total", precision: 10, scale: 2, default: 0.0 + t.integer "shipping_method_id" + t.string "shipment_state" + t.string "payment_state" + t.string "email" + t.text "special_instructions" + t.datetime "created_at" + t.datetime "updated_at" + t.string "currency" + t.string "last_ip_address" + t.integer "created_by_id" + t.decimal "shipment_total", precision: 10, scale: 2, default: 0.0, null: false + t.decimal "additional_tax_total", precision: 10, scale: 2, default: 0.0 + t.decimal "promo_total", precision: 10, scale: 2, default: 0.0 + t.string "channel", default: "spree" + t.decimal "included_tax_total", precision: 10, scale: 2, default: 0.0, null: false + t.integer "item_count", default: 0 + t.integer "approver_id" + t.datetime "approved_at" + t.boolean "confirmation_delivered", default: false + t.boolean "considered_risky", default: false + t.string "guest_token" + t.datetime "canceled_at" + t.integer "canceler_id" + t.integer "store_id" + t.integer "state_lock_version", default: 0, null: false + end + + add_index "spree_orders", ["approver_id"], name: "index_spree_orders_on_approver_id" + add_index "spree_orders", ["bill_address_id"], name: "index_spree_orders_on_bill_address_id" + add_index "spree_orders", ["completed_at"], name: "index_spree_orders_on_completed_at" + add_index "spree_orders", ["confirmation_delivered"], name: "index_spree_orders_on_confirmation_delivered" + add_index "spree_orders", ["considered_risky"], name: "index_spree_orders_on_considered_risky" + add_index "spree_orders", ["created_by_id"], name: "index_spree_orders_on_created_by_id" + add_index "spree_orders", ["guest_token"], name: "index_spree_orders_on_guest_token" + add_index "spree_orders", ["number"], name: "index_spree_orders_on_number" + add_index "spree_orders", ["ship_address_id"], name: "index_spree_orders_on_ship_address_id" + add_index "spree_orders", ["shipping_method_id"], name: "index_spree_orders_on_shipping_method_id" + add_index "spree_orders", ["user_id", "created_by_id"], name: "index_spree_orders_on_user_id_and_created_by_id" + add_index "spree_orders", ["user_id"], name: "index_spree_orders_on_user_id" + + create_table "spree_orders_promotions", id: false, force: true do |t| + t.integer "order_id" + t.integer "promotion_id" + end + + add_index "spree_orders_promotions", ["order_id", "promotion_id"], name: "index_spree_orders_promotions_on_order_id_and_promotion_id" + + create_table "spree_payment_capture_events", force: true do |t| + t.decimal "amount", precision: 10, scale: 2, default: 0.0 + t.integer "payment_id" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "spree_payment_capture_events", ["payment_id"], name: "index_spree_payment_capture_events_on_payment_id" + + create_table "spree_payment_methods", force: true do |t| + t.string "type" + t.string "name" + t.text "description" + t.boolean "active", default: true + t.string "environment", default: "development" + t.datetime "deleted_at" + t.datetime "created_at" + t.datetime "updated_at" + t.string "display_on" + t.boolean "auto_capture" + t.text "preferences" + end + + add_index "spree_payment_methods", ["id", "type"], name: "index_spree_payment_methods_on_id_and_type" + + create_table "spree_payments", force: true do |t| + t.decimal "amount", precision: 10, scale: 2, default: 0.0, null: false + t.integer "order_id" + t.integer "source_id" + t.string "source_type" + t.integer "payment_method_id" + t.string "state" + t.string "response_code" + t.string "avs_response" + t.datetime "created_at" + t.datetime "updated_at" + t.string "identifier" + t.string "cvv_response_code" + t.string "cvv_response_message" + end + + add_index "spree_payments", ["order_id"], name: "index_spree_payments_on_order_id" + add_index "spree_payments", ["payment_method_id"], name: "index_spree_payments_on_payment_method_id" + add_index "spree_payments", ["source_id", "source_type"], name: "index_spree_payments_on_source_id_and_source_type" + + create_table "spree_preferences", force: true do |t| + t.text "value" + t.string "key" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "spree_preferences", ["key"], name: "index_spree_preferences_on_key", unique: true + + create_table "spree_prices", force: true do |t| + t.integer "variant_id", null: false + t.decimal "amount", precision: 10, scale: 2 + t.string "currency" + t.datetime "deleted_at" + end + + add_index "spree_prices", ["deleted_at"], name: "index_spree_prices_on_deleted_at" + add_index "spree_prices", ["variant_id", "currency"], name: "index_spree_prices_on_variant_id_and_currency" + + create_table "spree_product_option_types", force: true do |t| + t.integer "position" + t.integer "product_id" + t.integer "option_type_id" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "spree_product_option_types", ["option_type_id"], name: "index_spree_product_option_types_on_option_type_id" + add_index "spree_product_option_types", ["position"], name: "index_spree_product_option_types_on_position" + add_index "spree_product_option_types", ["product_id"], name: "index_spree_product_option_types_on_product_id" + + create_table "spree_product_properties", force: true do |t| + t.string "value" + t.integer "product_id" + t.integer "property_id" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "position", default: 0 + end + + add_index "spree_product_properties", ["position"], name: "index_spree_product_properties_on_position" + add_index "spree_product_properties", ["product_id"], name: "index_product_properties_on_product_id" + add_index "spree_product_properties", ["property_id"], name: "index_spree_product_properties_on_property_id" + + create_table "spree_products", force: true do |t| + t.string "name", default: "", null: false + t.text "description" + t.datetime "available_on" + t.datetime "deleted_at" + t.string "slug" + t.text "meta_description" + t.string "meta_keywords" + t.integer "tax_category_id" + t.integer "shipping_category_id" + t.datetime "created_at" + t.datetime "updated_at" + t.boolean "promotionable", default: true + t.string "meta_title" + end + + add_index "spree_products", ["available_on"], name: "index_spree_products_on_available_on" + add_index "spree_products", ["deleted_at"], name: "index_spree_products_on_deleted_at" + add_index "spree_products", ["name"], name: "index_spree_products_on_name" + add_index "spree_products", ["shipping_category_id"], name: "index_spree_products_on_shipping_category_id" + add_index "spree_products", ["slug"], name: "index_spree_products_on_slug" + add_index "spree_products", ["slug"], name: "permalink_idx_unique", unique: true + add_index "spree_products", ["tax_category_id"], name: "index_spree_products_on_tax_category_id" + + create_table "spree_products_promotion_rules", id: false, force: true do |t| + t.integer "product_id" + t.integer "promotion_rule_id" + end + + add_index "spree_products_promotion_rules", ["product_id"], name: "index_products_promotion_rules_on_product_id" + add_index "spree_products_promotion_rules", ["promotion_rule_id"], name: "index_products_promotion_rules_on_promotion_rule_id" + + create_table "spree_products_taxons", force: true do |t| + t.integer "product_id" + t.integer "taxon_id" + t.integer "position" + end + + add_index "spree_products_taxons", ["position"], name: "index_spree_products_taxons_on_position" + add_index "spree_products_taxons", ["product_id"], name: "index_spree_products_taxons_on_product_id" + add_index "spree_products_taxons", ["taxon_id"], name: "index_spree_products_taxons_on_taxon_id" + + create_table "spree_promotion_action_line_items", force: true do |t| + t.integer "promotion_action_id" + t.integer "variant_id" + t.integer "quantity", default: 1 + end + + add_index "spree_promotion_action_line_items", ["promotion_action_id"], name: "index_spree_promotion_action_line_items_on_promotion_action_id" + add_index "spree_promotion_action_line_items", ["variant_id"], name: "index_spree_promotion_action_line_items_on_variant_id" + + create_table "spree_promotion_actions", force: true do |t| + t.integer "promotion_id" + t.integer "position" + t.string "type" + t.datetime "deleted_at" + end + + add_index "spree_promotion_actions", ["deleted_at"], name: "index_spree_promotion_actions_on_deleted_at" + add_index "spree_promotion_actions", ["id", "type"], name: "index_spree_promotion_actions_on_id_and_type" + add_index "spree_promotion_actions", ["promotion_id"], name: "index_spree_promotion_actions_on_promotion_id" + + create_table "spree_promotion_categories", force: true do |t| + t.string "name" + t.datetime "created_at" + t.datetime "updated_at" + end + + create_table "spree_promotion_rules", force: true do |t| + t.integer "promotion_id" + t.integer "user_id" + t.integer "product_group_id" + t.string "type" + t.datetime "created_at" + t.datetime "updated_at" + t.string "code" + t.text "preferences" + end + + add_index "spree_promotion_rules", ["product_group_id"], name: "index_promotion_rules_on_product_group_id" + add_index "spree_promotion_rules", ["promotion_id"], name: "index_spree_promotion_rules_on_promotion_id" + add_index "spree_promotion_rules", ["user_id"], name: "index_promotion_rules_on_user_id" + + create_table "spree_promotion_rules_users", id: false, force: true do |t| + t.integer "user_id" + t.integer "promotion_rule_id" + end + + add_index "spree_promotion_rules_users", ["promotion_rule_id"], name: "index_promotion_rules_users_on_promotion_rule_id" + add_index "spree_promotion_rules_users", ["user_id"], name: "index_promotion_rules_users_on_user_id" + + create_table "spree_promotions", force: true do |t| + t.string "description" + t.datetime "expires_at" + t.datetime "starts_at" + t.string "name" + t.string "type" + t.integer "usage_limit" + t.string "match_policy", default: "all" + t.string "code" + t.boolean "advertise", default: false + t.string "path" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "promotion_category_id" + end + + add_index "spree_promotions", ["advertise"], name: "index_spree_promotions_on_advertise" + add_index "spree_promotions", ["code"], name: "index_spree_promotions_on_code" + add_index "spree_promotions", ["expires_at"], name: "index_spree_promotions_on_expires_at" + add_index "spree_promotions", ["id", "type"], name: "index_spree_promotions_on_id_and_type" + add_index "spree_promotions", ["promotion_category_id"], name: "index_spree_promotions_on_promotion_category_id" + add_index "spree_promotions", ["starts_at"], name: "index_spree_promotions_on_starts_at" + + create_table "spree_properties", force: true do |t| + t.string "name" + t.string "presentation", null: false + t.datetime "created_at" + t.datetime "updated_at" + end + + create_table "spree_properties_prototypes", id: false, force: true do |t| + t.integer "prototype_id" + t.integer "property_id" + end + + create_table "spree_prototypes", force: true do |t| + t.string "name" + t.datetime "created_at" + t.datetime "updated_at" + end + + create_table "spree_refund_reasons", force: true do |t| + t.string "name" + t.boolean "active", default: true + t.boolean "mutable", default: true + t.datetime "created_at" + t.datetime "updated_at" + end + + create_table "spree_refunds", force: true do |t| + t.integer "payment_id" + t.decimal "amount", precision: 10, scale: 2, default: 0.0, null: false + t.string "transaction_id" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "refund_reason_id" + t.integer "reimbursement_id" + end + + add_index "spree_refunds", ["refund_reason_id"], name: "index_refunds_on_refund_reason_id" + + create_table "spree_reimbursement_credits", force: true do |t| + t.decimal "amount", precision: 10, scale: 2, default: 0.0, null: false + t.integer "reimbursement_id" + t.integer "creditable_id" + t.string "creditable_type" + end + + create_table "spree_reimbursement_types", force: true do |t| + t.string "name" + t.boolean "active", default: true + t.boolean "mutable", default: true + t.datetime "created_at" + t.datetime "updated_at" + t.string "type" + end + + add_index "spree_reimbursement_types", ["type"], name: "index_spree_reimbursement_types_on_type" + + create_table "spree_reimbursements", force: true do |t| + t.string "number" + t.string "reimbursement_status" + t.integer "customer_return_id" + t.integer "order_id" + t.decimal "total", precision: 10, scale: 2 + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "spree_reimbursements", ["customer_return_id"], name: "index_spree_reimbursements_on_customer_return_id" + add_index "spree_reimbursements", ["order_id"], name: "index_spree_reimbursements_on_order_id" + + create_table "spree_return_authorization_reasons", force: true do |t| + t.string "name" + t.boolean "active", default: true + t.boolean "mutable", default: true + t.datetime "created_at" + t.datetime "updated_at" + end + + create_table "spree_return_authorizations", force: true do |t| + t.string "number" + t.string "state" + t.integer "order_id" + t.text "memo" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "stock_location_id" + t.integer "return_authorization_reason_id" + end + + add_index "spree_return_authorizations", ["return_authorization_reason_id"], name: "index_return_authorizations_on_return_authorization_reason_id" + + create_table "spree_return_items", force: true do |t| + t.integer "return_authorization_id" + t.integer "inventory_unit_id" + t.integer "exchange_variant_id" + t.datetime "created_at" + t.datetime "updated_at" + t.decimal "pre_tax_amount", precision: 12, scale: 4, default: 0.0, null: false + t.decimal "included_tax_total", precision: 12, scale: 4, default: 0.0, null: false + t.decimal "additional_tax_total", precision: 12, scale: 4, default: 0.0, null: false + t.string "reception_status" + t.string "acceptance_status" + t.integer "customer_return_id" + t.integer "reimbursement_id" + t.integer "exchange_inventory_unit_id" + t.text "acceptance_status_errors" + t.integer "preferred_reimbursement_type_id" + t.integer "override_reimbursement_type_id" + end + + add_index "spree_return_items", ["customer_return_id"], name: "index_return_items_on_customer_return_id" + add_index "spree_return_items", ["exchange_inventory_unit_id"], name: "index_spree_return_items_on_exchange_inventory_unit_id" + + create_table "spree_roles", force: true do |t| + t.string "name" + end + + create_table "spree_roles_users", id: false, force: true do |t| + t.integer "role_id" + t.integer "user_id" + end + + add_index "spree_roles_users", ["role_id"], name: "index_spree_roles_users_on_role_id" + add_index "spree_roles_users", ["user_id"], name: "index_spree_roles_users_on_user_id" + + create_table "spree_shipments", force: true do |t| + t.string "tracking" + t.string "number" + t.decimal "cost", precision: 10, scale: 2, default: 0.0 + t.datetime "shipped_at" + t.integer "order_id" + t.integer "address_id" + t.string "state" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "stock_location_id" + t.decimal "adjustment_total", precision: 10, scale: 2, default: 0.0 + t.decimal "additional_tax_total", precision: 10, scale: 2, default: 0.0 + t.decimal "promo_total", precision: 10, scale: 2, default: 0.0 + t.decimal "included_tax_total", precision: 10, scale: 2, default: 0.0, null: false + t.decimal "pre_tax_amount", precision: 8, scale: 2, default: 0.0 + end + + add_index "spree_shipments", ["address_id"], name: "index_spree_shipments_on_address_id" + add_index "spree_shipments", ["number"], name: "index_shipments_on_number" + add_index "spree_shipments", ["order_id"], name: "index_spree_shipments_on_order_id" + add_index "spree_shipments", ["stock_location_id"], name: "index_spree_shipments_on_stock_location_id" + + create_table "spree_shipping_categories", force: true do |t| + t.string "name" + t.datetime "created_at" + t.datetime "updated_at" + end + + create_table "spree_shipping_method_categories", force: true do |t| + t.integer "shipping_method_id", null: false + t.integer "shipping_category_id", null: false + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "spree_shipping_method_categories", ["shipping_category_id", "shipping_method_id"], name: "unique_spree_shipping_method_categories", unique: true + add_index "spree_shipping_method_categories", ["shipping_method_id"], name: "index_spree_shipping_method_categories_on_shipping_method_id" + + create_table "spree_shipping_methods", force: true do |t| + t.string "name" + t.string "display_on" + t.datetime "deleted_at" + t.datetime "created_at" + t.datetime "updated_at" + t.string "tracking_url" + t.string "admin_name" + t.integer "tax_category_id" + t.string "code" + end + + add_index "spree_shipping_methods", ["deleted_at"], name: "index_spree_shipping_methods_on_deleted_at" + add_index "spree_shipping_methods", ["tax_category_id"], name: "index_spree_shipping_methods_on_tax_category_id" + + create_table "spree_shipping_methods_zones", id: false, force: true do |t| + t.integer "shipping_method_id" + t.integer "zone_id" + end + + create_table "spree_shipping_rates", force: true do |t| + t.integer "shipment_id" + t.integer "shipping_method_id" + t.boolean "selected", default: false + t.decimal "cost", precision: 8, scale: 2, default: 0.0 + t.datetime "created_at" + t.datetime "updated_at" + t.integer "tax_rate_id" + end + + add_index "spree_shipping_rates", ["selected"], name: "index_spree_shipping_rates_on_selected" + add_index "spree_shipping_rates", ["shipment_id", "shipping_method_id"], name: "spree_shipping_rates_join_index", unique: true + add_index "spree_shipping_rates", ["tax_rate_id"], name: "index_spree_shipping_rates_on_tax_rate_id" + + create_table "spree_skrill_transactions", force: true do |t| + t.string "email" + t.float "amount" + t.string "currency" + t.integer "transaction_id" + t.integer "customer_id" + t.string "payment_type" + t.datetime "created_at" + t.datetime "updated_at" + end + + create_table "spree_state_changes", force: true do |t| + t.string "name" + t.string "previous_state" + t.integer "stateful_id" + t.integer "user_id" + t.string "stateful_type" + t.string "next_state" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "spree_state_changes", ["stateful_id", "stateful_type"], name: "index_spree_state_changes_on_stateful_id_and_stateful_type" + add_index "spree_state_changes", ["user_id"], name: "index_spree_state_changes_on_user_id" + + create_table "spree_states", force: true do |t| + t.string "name" + t.string "abbr" + t.integer "country_id" + t.datetime "updated_at" + end + + add_index "spree_states", ["country_id"], name: "index_spree_states_on_country_id" + + create_table "spree_stock_items", force: true do |t| + t.integer "stock_location_id" + t.integer "variant_id" + t.integer "count_on_hand", default: 0, null: false + t.datetime "created_at" + t.datetime "updated_at" + t.boolean "backorderable", default: false + t.datetime "deleted_at" + end + + add_index "spree_stock_items", ["backorderable"], name: "index_spree_stock_items_on_backorderable" + add_index "spree_stock_items", ["deleted_at"], name: "index_spree_stock_items_on_deleted_at" + add_index "spree_stock_items", ["stock_location_id", "variant_id"], name: "stock_item_by_loc_and_var_id" + add_index "spree_stock_items", ["stock_location_id"], name: "index_spree_stock_items_on_stock_location_id" + + create_table "spree_stock_locations", force: true do |t| + t.string "name" + t.datetime "created_at" + t.datetime "updated_at" + t.string "address1" + t.string "address2" + t.string "city" + t.integer "state_id" + t.string "state_name" + t.integer "country_id" + t.string "zipcode" + t.string "phone" + t.boolean "active", default: true + t.boolean "backorderable_default", default: false + t.boolean "propagate_all_variants", default: true + t.string "admin_name" + t.boolean "default", default: false, null: false + end + + add_index "spree_stock_locations", ["active"], name: "index_spree_stock_locations_on_active" + add_index "spree_stock_locations", ["backorderable_default"], name: "index_spree_stock_locations_on_backorderable_default" + add_index "spree_stock_locations", ["country_id"], name: "index_spree_stock_locations_on_country_id" + add_index "spree_stock_locations", ["propagate_all_variants"], name: "index_spree_stock_locations_on_propagate_all_variants" + add_index "spree_stock_locations", ["state_id"], name: "index_spree_stock_locations_on_state_id" + + create_table "spree_stock_movements", force: true do |t| + t.integer "stock_item_id" + t.integer "quantity", default: 0 + t.string "action" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "originator_id" + t.string "originator_type" + end + + add_index "spree_stock_movements", ["stock_item_id"], name: "index_spree_stock_movements_on_stock_item_id" + + create_table "spree_stock_transfers", force: true do |t| + t.string "type" + t.string "reference" + t.integer "source_location_id" + t.integer "destination_location_id" + t.datetime "created_at" + t.datetime "updated_at" + t.string "number" + end + + add_index "spree_stock_transfers", ["destination_location_id"], name: "index_spree_stock_transfers_on_destination_location_id" + add_index "spree_stock_transfers", ["number"], name: "index_spree_stock_transfers_on_number" + add_index "spree_stock_transfers", ["source_location_id"], name: "index_spree_stock_transfers_on_source_location_id" + + create_table "spree_stores", force: true do |t| + t.string "name" + t.string "url" + t.text "meta_description" + t.text "meta_keywords" + t.string "seo_title" + t.string "mail_from_address" + t.string "default_currency" + t.string "code" + t.boolean "default", default: false, null: false + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "spree_stores", ["code"], name: "index_spree_stores_on_code" + add_index "spree_stores", ["default"], name: "index_spree_stores_on_default" + add_index "spree_stores", ["url"], name: "index_spree_stores_on_url" + + create_table "spree_tax_categories", force: true do |t| + t.string "name" + t.string "description" + t.boolean "is_default", default: false + t.datetime "deleted_at" + t.datetime "created_at" + t.datetime "updated_at" + t.string "tax_code" + end + + add_index "spree_tax_categories", ["deleted_at"], name: "index_spree_tax_categories_on_deleted_at" + add_index "spree_tax_categories", ["is_default"], name: "index_spree_tax_categories_on_is_default" + + create_table "spree_tax_rates", force: true do |t| + t.decimal "amount", precision: 8, scale: 5 + t.integer "zone_id" + t.integer "tax_category_id" + t.boolean "included_in_price", default: false + t.datetime "created_at" + t.datetime "updated_at" + t.string "name" + t.boolean "show_rate_in_label", default: true + t.datetime "deleted_at" + end + + add_index "spree_tax_rates", ["deleted_at"], name: "index_spree_tax_rates_on_deleted_at" + add_index "spree_tax_rates", ["included_in_price"], name: "index_spree_tax_rates_on_included_in_price" + add_index "spree_tax_rates", ["show_rate_in_label"], name: "index_spree_tax_rates_on_show_rate_in_label" + add_index "spree_tax_rates", ["tax_category_id"], name: "index_spree_tax_rates_on_tax_category_id" + add_index "spree_tax_rates", ["zone_id"], name: "index_spree_tax_rates_on_zone_id" + + create_table "spree_taxonomies", force: true do |t| + t.string "name", null: false + t.datetime "created_at" + t.datetime "updated_at" + t.integer "position", default: 0 + end + + add_index "spree_taxonomies", ["position"], name: "index_spree_taxonomies_on_position" + + create_table "spree_taxons", force: true do |t| + t.integer "parent_id" + t.integer "position", default: 0 + t.string "name", null: false + t.string "permalink" + t.integer "taxonomy_id" + t.integer "lft" + t.integer "rgt" + t.string "icon_file_name" + t.string "icon_content_type" + t.integer "icon_file_size" + t.datetime "icon_updated_at" + t.text "description" + t.datetime "created_at" + t.datetime "updated_at" + t.string "meta_title" + t.string "meta_description" + t.string "meta_keywords" + t.integer "depth" + end + + add_index "spree_taxons", ["parent_id"], name: "index_taxons_on_parent_id" + add_index "spree_taxons", ["permalink"], name: "index_taxons_on_permalink" + add_index "spree_taxons", ["position"], name: "index_spree_taxons_on_position" + add_index "spree_taxons", ["taxonomy_id"], name: "index_taxons_on_taxonomy_id" + + create_table "spree_taxons_promotion_rules", force: true do |t| + t.integer "taxon_id" + t.integer "promotion_rule_id" + end + + add_index "spree_taxons_promotion_rules", ["promotion_rule_id"], name: "index_spree_taxons_promotion_rules_on_promotion_rule_id" + add_index "spree_taxons_promotion_rules", ["taxon_id"], name: "index_spree_taxons_promotion_rules_on_taxon_id" + + create_table "spree_taxons_prototypes", force: true do |t| + t.integer "taxon_id" + t.integer "prototype_id" + end + + add_index "spree_taxons_prototypes", ["prototype_id"], name: "index_spree_taxons_prototypes_on_prototype_id" + add_index "spree_taxons_prototypes", ["taxon_id"], name: "index_spree_taxons_prototypes_on_taxon_id" + + create_table "spree_tokenized_permissions", force: true do |t| + t.integer "permissable_id" + t.string "permissable_type" + t.string "token" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "spree_tokenized_permissions", ["permissable_id", "permissable_type"], name: "index_tokenized_name_and_type" + + create_table "spree_trackers", force: true do |t| + t.string "environment" + t.string "analytics_id" + t.boolean "active", default: true + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "spree_trackers", ["active"], name: "index_spree_trackers_on_active" + + create_table "spree_users", force: true do |t| + t.string "encrypted_password", limit: 128 + t.string "password_salt", limit: 128 + t.string "email" + t.string "remember_token" + t.string "persistence_token" + t.string "reset_password_token" + t.string "perishable_token" + t.integer "sign_in_count", default: 0, null: false + t.integer "failed_attempts", default: 0, null: false + t.datetime "last_request_at" + t.datetime "current_sign_in_at" + t.datetime "last_sign_in_at" + t.string "current_sign_in_ip" + t.string "last_sign_in_ip" + t.string "login" + t.integer "ship_address_id" + t.integer "bill_address_id" + t.string "authentication_token" + t.string "unlock_token" + t.datetime "locked_at" + t.datetime "reset_password_sent_at" + t.datetime "created_at" + t.datetime "updated_at" + t.boolean "subscribed" + t.string "spree_api_key", limit: 48 + t.datetime "remember_created_at" + t.datetime "deleted_at" + t.string "confirmation_token" + t.datetime "confirmed_at" + t.datetime "confirmation_sent_at" + end + + add_index "spree_users", ["deleted_at"], name: "index_spree_users_on_deleted_at" + add_index "spree_users", ["email"], name: "email_idx_unique", unique: true + add_index "spree_users", ["spree_api_key"], name: "index_spree_users_on_spree_api_key" + + create_table "spree_variants", force: true do |t| + t.string "sku", default: "", null: false + t.decimal "weight", precision: 8, scale: 2, default: 0.0 + t.decimal "height", precision: 8, scale: 2 + t.decimal "width", precision: 8, scale: 2 + t.decimal "depth", precision: 8, scale: 2 + t.datetime "deleted_at" + t.boolean "is_master", default: false + t.integer "product_id" + t.decimal "cost_price", precision: 10, scale: 2 + t.integer "position" + t.string "cost_currency" + t.boolean "track_inventory", default: true + t.integer "tax_category_id" + t.datetime "updated_at" + t.integer "stock_items_count", default: 0, null: false + end + + add_index "spree_variants", ["deleted_at"], name: "index_spree_variants_on_deleted_at" + add_index "spree_variants", ["is_master"], name: "index_spree_variants_on_is_master" + add_index "spree_variants", ["position"], name: "index_spree_variants_on_position" + add_index "spree_variants", ["product_id"], name: "index_spree_variants_on_product_id" + add_index "spree_variants", ["sku"], name: "index_spree_variants_on_sku" + add_index "spree_variants", ["tax_category_id"], name: "index_spree_variants_on_tax_category_id" + add_index "spree_variants", ["track_inventory"], name: "index_spree_variants_on_track_inventory" + + create_table "spree_zone_members", force: true do |t| + t.integer "zoneable_id" + t.string "zoneable_type" + t.integer "zone_id" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "spree_zone_members", ["zone_id"], name: "index_spree_zone_members_on_zone_id" + add_index "spree_zone_members", ["zoneable_id", "zoneable_type"], name: "index_spree_zone_members_on_zoneable_id_and_zoneable_type" + + create_table "spree_zones", force: true do |t| + t.string "name" + t.string "description" + t.boolean "default_tax", default: false + t.integer "zone_members_count", default: 0 + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "spree_zones", ["default_tax"], name: "index_spree_zones_on_default_tax" + +end diff --git a/sprangular/spec/dummy/db/seeds.rb b/sprangular/spec/dummy/db/seeds.rb new file mode 100644 index 00000000..72053e52 --- /dev/null +++ b/sprangular/spec/dummy/db/seeds.rb @@ -0,0 +1,4 @@ + + +Spree::Core::Engine.load_seed if defined?(Spree::Core) +Spree::Auth::Engine.load_seed if defined?(Spree::Auth) diff --git a/sprangular/spec/dummy/lib/assets/.keep b/sprangular/spec/dummy/lib/assets/.keep new file mode 100644 index 00000000..e69de29b diff --git a/sprangular/spec/dummy/public/404.html b/sprangular/spec/dummy/public/404.html new file mode 100644 index 00000000..b612547f --- /dev/null +++ b/sprangular/spec/dummy/public/404.html @@ -0,0 +1,67 @@ + + + + The page you were looking for doesn't exist (404) + + + + + + +
+
+

The page you were looking for doesn't exist.

+

You may have mistyped the address or the page may have moved.

+
+

If you are the application owner check the logs for more information.

+
+ + diff --git a/sprangular/spec/dummy/public/422.html b/sprangular/spec/dummy/public/422.html new file mode 100644 index 00000000..a21f82b3 --- /dev/null +++ b/sprangular/spec/dummy/public/422.html @@ -0,0 +1,67 @@ + + + + The change you wanted was rejected (422) + + + + + + +
+
+

The change you wanted was rejected.

+

Maybe you tried to change something you didn't have access to.

+
+

If you are the application owner check the logs for more information.

+
+ + diff --git a/sprangular/spec/dummy/public/500.html b/sprangular/spec/dummy/public/500.html new file mode 100644 index 00000000..061abc58 --- /dev/null +++ b/sprangular/spec/dummy/public/500.html @@ -0,0 +1,66 @@ + + + + We're sorry, but something went wrong (500) + + + + + + +
+
+

We're sorry, but something went wrong.

+
+

If you are the application owner check the logs for more information.

+
+ + diff --git a/sprangular/spec/dummy/public/favicon.ico b/sprangular/spec/dummy/public/favicon.ico new file mode 100644 index 00000000..e69de29b diff --git a/sprangular/spec/dummy/public/spree/products/1/large/ror_baseball_jersey_red.png b/sprangular/spec/dummy/public/spree/products/1/large/ror_baseball_jersey_red.png new file mode 100644 index 00000000..dc06d349 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/1/large/ror_baseball_jersey_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/1/mini/ror_baseball_jersey_red.png b/sprangular/spec/dummy/public/spree/products/1/mini/ror_baseball_jersey_red.png new file mode 100644 index 00000000..b648553e Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/1/mini/ror_baseball_jersey_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/1/original/ror_baseball_jersey_red.png b/sprangular/spec/dummy/public/spree/products/1/original/ror_baseball_jersey_red.png new file mode 100644 index 00000000..4deb99a1 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/1/original/ror_baseball_jersey_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/1/product/ror_baseball_jersey_red.png b/sprangular/spec/dummy/public/spree/products/1/product/ror_baseball_jersey_red.png new file mode 100644 index 00000000..dc06d349 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/1/product/ror_baseball_jersey_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/1/small/ror_baseball_jersey_red.png b/sprangular/spec/dummy/public/spree/products/1/small/ror_baseball_jersey_red.png new file mode 100644 index 00000000..471881bb Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/1/small/ror_baseball_jersey_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/10/large/ror_baseball_jersey_back_blue.png b/sprangular/spec/dummy/public/spree/products/10/large/ror_baseball_jersey_back_blue.png new file mode 100644 index 00000000..f286553f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/10/large/ror_baseball_jersey_back_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/10/mini/ror_baseball_jersey_back_blue.png b/sprangular/spec/dummy/public/spree/products/10/mini/ror_baseball_jersey_back_blue.png new file mode 100644 index 00000000..6e35f3f8 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/10/mini/ror_baseball_jersey_back_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/10/original/ror_baseball_jersey_back_blue.png b/sprangular/spec/dummy/public/spree/products/10/original/ror_baseball_jersey_back_blue.png new file mode 100644 index 00000000..2f023f23 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/10/original/ror_baseball_jersey_back_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/10/product/ror_baseball_jersey_back_blue.png b/sprangular/spec/dummy/public/spree/products/10/product/ror_baseball_jersey_back_blue.png new file mode 100644 index 00000000..f286553f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/10/product/ror_baseball_jersey_back_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/10/small/ror_baseball_jersey_back_blue.png b/sprangular/spec/dummy/public/spree/products/10/small/ror_baseball_jersey_back_blue.png new file mode 100644 index 00000000..fcd211e2 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/10/small/ror_baseball_jersey_back_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/11/large/ror_baseball_jersey_green.png b/sprangular/spec/dummy/public/spree/products/11/large/ror_baseball_jersey_green.png new file mode 100644 index 00000000..eba327ab Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/11/large/ror_baseball_jersey_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/11/mini/ror_baseball_jersey_green.png b/sprangular/spec/dummy/public/spree/products/11/mini/ror_baseball_jersey_green.png new file mode 100644 index 00000000..119443bd Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/11/mini/ror_baseball_jersey_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/11/original/ror_baseball_jersey_green.png b/sprangular/spec/dummy/public/spree/products/11/original/ror_baseball_jersey_green.png new file mode 100644 index 00000000..4bd8c0ae Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/11/original/ror_baseball_jersey_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/11/product/ror_baseball_jersey_green.png b/sprangular/spec/dummy/public/spree/products/11/product/ror_baseball_jersey_green.png new file mode 100644 index 00000000..eba327ab Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/11/product/ror_baseball_jersey_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/11/small/ror_baseball_jersey_green.png b/sprangular/spec/dummy/public/spree/products/11/small/ror_baseball_jersey_green.png new file mode 100644 index 00000000..3fe0f17a Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/11/small/ror_baseball_jersey_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/12/large/ror_baseball_jersey_back_green.png b/sprangular/spec/dummy/public/spree/products/12/large/ror_baseball_jersey_back_green.png new file mode 100644 index 00000000..b5890a75 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/12/large/ror_baseball_jersey_back_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/12/mini/ror_baseball_jersey_back_green.png b/sprangular/spec/dummy/public/spree/products/12/mini/ror_baseball_jersey_back_green.png new file mode 100644 index 00000000..151386fc Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/12/mini/ror_baseball_jersey_back_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/12/original/ror_baseball_jersey_back_green.png b/sprangular/spec/dummy/public/spree/products/12/original/ror_baseball_jersey_back_green.png new file mode 100644 index 00000000..c769e351 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/12/original/ror_baseball_jersey_back_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/12/product/ror_baseball_jersey_back_green.png b/sprangular/spec/dummy/public/spree/products/12/product/ror_baseball_jersey_back_green.png new file mode 100644 index 00000000..b5890a75 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/12/product/ror_baseball_jersey_back_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/12/small/ror_baseball_jersey_back_green.png b/sprangular/spec/dummy/public/spree/products/12/small/ror_baseball_jersey_back_green.png new file mode 100644 index 00000000..1c15a1b9 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/12/small/ror_baseball_jersey_back_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/13/large/ror_baseball_jersey_red.png b/sprangular/spec/dummy/public/spree/products/13/large/ror_baseball_jersey_red.png new file mode 100644 index 00000000..dc06d349 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/13/large/ror_baseball_jersey_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/13/mini/ror_baseball_jersey_red.png b/sprangular/spec/dummy/public/spree/products/13/mini/ror_baseball_jersey_red.png new file mode 100644 index 00000000..b648553e Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/13/mini/ror_baseball_jersey_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/13/original/ror_baseball_jersey_red.png b/sprangular/spec/dummy/public/spree/products/13/original/ror_baseball_jersey_red.png new file mode 100644 index 00000000..4deb99a1 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/13/original/ror_baseball_jersey_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/13/product/ror_baseball_jersey_red.png b/sprangular/spec/dummy/public/spree/products/13/product/ror_baseball_jersey_red.png new file mode 100644 index 00000000..dc06d349 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/13/product/ror_baseball_jersey_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/13/small/ror_baseball_jersey_red.png b/sprangular/spec/dummy/public/spree/products/13/small/ror_baseball_jersey_red.png new file mode 100644 index 00000000..471881bb Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/13/small/ror_baseball_jersey_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/14/large/ror_baseball_jersey_back_red.png b/sprangular/spec/dummy/public/spree/products/14/large/ror_baseball_jersey_back_red.png new file mode 100644 index 00000000..60dd13c3 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/14/large/ror_baseball_jersey_back_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/14/mini/ror_baseball_jersey_back_red.png b/sprangular/spec/dummy/public/spree/products/14/mini/ror_baseball_jersey_back_red.png new file mode 100644 index 00000000..884f722a Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/14/mini/ror_baseball_jersey_back_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/14/original/ror_baseball_jersey_back_red.png b/sprangular/spec/dummy/public/spree/products/14/original/ror_baseball_jersey_back_red.png new file mode 100644 index 00000000..2be2275f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/14/original/ror_baseball_jersey_back_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/14/product/ror_baseball_jersey_back_red.png b/sprangular/spec/dummy/public/spree/products/14/product/ror_baseball_jersey_back_red.png new file mode 100644 index 00000000..60dd13c3 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/14/product/ror_baseball_jersey_back_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/14/small/ror_baseball_jersey_back_red.png b/sprangular/spec/dummy/public/spree/products/14/small/ror_baseball_jersey_back_red.png new file mode 100644 index 00000000..fdc2a3e7 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/14/small/ror_baseball_jersey_back_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/15/large/ror_baseball_jersey_blue.png b/sprangular/spec/dummy/public/spree/products/15/large/ror_baseball_jersey_blue.png new file mode 100644 index 00000000..7b8e5394 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/15/large/ror_baseball_jersey_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/15/mini/ror_baseball_jersey_blue.png b/sprangular/spec/dummy/public/spree/products/15/mini/ror_baseball_jersey_blue.png new file mode 100644 index 00000000..3dbf91ff Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/15/mini/ror_baseball_jersey_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/15/original/ror_baseball_jersey_blue.png b/sprangular/spec/dummy/public/spree/products/15/original/ror_baseball_jersey_blue.png new file mode 100644 index 00000000..ad15f9f0 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/15/original/ror_baseball_jersey_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/15/product/ror_baseball_jersey_blue.png b/sprangular/spec/dummy/public/spree/products/15/product/ror_baseball_jersey_blue.png new file mode 100644 index 00000000..7b8e5394 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/15/product/ror_baseball_jersey_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/15/small/ror_baseball_jersey_blue.png b/sprangular/spec/dummy/public/spree/products/15/small/ror_baseball_jersey_blue.png new file mode 100644 index 00000000..891d3f20 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/15/small/ror_baseball_jersey_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/16/large/ror_baseball_jersey_back_blue.png b/sprangular/spec/dummy/public/spree/products/16/large/ror_baseball_jersey_back_blue.png new file mode 100644 index 00000000..f286553f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/16/large/ror_baseball_jersey_back_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/16/mini/ror_baseball_jersey_back_blue.png b/sprangular/spec/dummy/public/spree/products/16/mini/ror_baseball_jersey_back_blue.png new file mode 100644 index 00000000..6e35f3f8 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/16/mini/ror_baseball_jersey_back_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/16/original/ror_baseball_jersey_back_blue.png b/sprangular/spec/dummy/public/spree/products/16/original/ror_baseball_jersey_back_blue.png new file mode 100644 index 00000000..2f023f23 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/16/original/ror_baseball_jersey_back_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/16/product/ror_baseball_jersey_back_blue.png b/sprangular/spec/dummy/public/spree/products/16/product/ror_baseball_jersey_back_blue.png new file mode 100644 index 00000000..f286553f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/16/product/ror_baseball_jersey_back_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/16/small/ror_baseball_jersey_back_blue.png b/sprangular/spec/dummy/public/spree/products/16/small/ror_baseball_jersey_back_blue.png new file mode 100644 index 00000000..fcd211e2 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/16/small/ror_baseball_jersey_back_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/17/large/ror_baseball_jersey_green.png b/sprangular/spec/dummy/public/spree/products/17/large/ror_baseball_jersey_green.png new file mode 100644 index 00000000..eba327ab Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/17/large/ror_baseball_jersey_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/17/mini/ror_baseball_jersey_green.png b/sprangular/spec/dummy/public/spree/products/17/mini/ror_baseball_jersey_green.png new file mode 100644 index 00000000..119443bd Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/17/mini/ror_baseball_jersey_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/17/original/ror_baseball_jersey_green.png b/sprangular/spec/dummy/public/spree/products/17/original/ror_baseball_jersey_green.png new file mode 100644 index 00000000..4bd8c0ae Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/17/original/ror_baseball_jersey_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/17/product/ror_baseball_jersey_green.png b/sprangular/spec/dummy/public/spree/products/17/product/ror_baseball_jersey_green.png new file mode 100644 index 00000000..eba327ab Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/17/product/ror_baseball_jersey_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/17/small/ror_baseball_jersey_green.png b/sprangular/spec/dummy/public/spree/products/17/small/ror_baseball_jersey_green.png new file mode 100644 index 00000000..3fe0f17a Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/17/small/ror_baseball_jersey_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/18/large/ror_baseball_jersey_back_green.png b/sprangular/spec/dummy/public/spree/products/18/large/ror_baseball_jersey_back_green.png new file mode 100644 index 00000000..b5890a75 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/18/large/ror_baseball_jersey_back_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/18/mini/ror_baseball_jersey_back_green.png b/sprangular/spec/dummy/public/spree/products/18/mini/ror_baseball_jersey_back_green.png new file mode 100644 index 00000000..151386fc Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/18/mini/ror_baseball_jersey_back_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/18/original/ror_baseball_jersey_back_green.png b/sprangular/spec/dummy/public/spree/products/18/original/ror_baseball_jersey_back_green.png new file mode 100644 index 00000000..c769e351 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/18/original/ror_baseball_jersey_back_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/18/product/ror_baseball_jersey_back_green.png b/sprangular/spec/dummy/public/spree/products/18/product/ror_baseball_jersey_back_green.png new file mode 100644 index 00000000..b5890a75 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/18/product/ror_baseball_jersey_back_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/18/small/ror_baseball_jersey_back_green.png b/sprangular/spec/dummy/public/spree/products/18/small/ror_baseball_jersey_back_green.png new file mode 100644 index 00000000..1c15a1b9 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/18/small/ror_baseball_jersey_back_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/19/large/ror_baseball_jersey_green.png b/sprangular/spec/dummy/public/spree/products/19/large/ror_baseball_jersey_green.png new file mode 100644 index 00000000..eba327ab Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/19/large/ror_baseball_jersey_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/19/mini/ror_baseball_jersey_green.png b/sprangular/spec/dummy/public/spree/products/19/mini/ror_baseball_jersey_green.png new file mode 100644 index 00000000..119443bd Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/19/mini/ror_baseball_jersey_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/19/original/ror_baseball_jersey_green.png b/sprangular/spec/dummy/public/spree/products/19/original/ror_baseball_jersey_green.png new file mode 100644 index 00000000..4bd8c0ae Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/19/original/ror_baseball_jersey_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/19/product/ror_baseball_jersey_green.png b/sprangular/spec/dummy/public/spree/products/19/product/ror_baseball_jersey_green.png new file mode 100644 index 00000000..eba327ab Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/19/product/ror_baseball_jersey_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/19/small/ror_baseball_jersey_green.png b/sprangular/spec/dummy/public/spree/products/19/small/ror_baseball_jersey_green.png new file mode 100644 index 00000000..3fe0f17a Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/19/small/ror_baseball_jersey_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/2/large/ror_baseball_jersey_back_red.png b/sprangular/spec/dummy/public/spree/products/2/large/ror_baseball_jersey_back_red.png new file mode 100644 index 00000000..60dd13c3 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/2/large/ror_baseball_jersey_back_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/2/mini/ror_baseball_jersey_back_red.png b/sprangular/spec/dummy/public/spree/products/2/mini/ror_baseball_jersey_back_red.png new file mode 100644 index 00000000..884f722a Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/2/mini/ror_baseball_jersey_back_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/2/original/ror_baseball_jersey_back_red.png b/sprangular/spec/dummy/public/spree/products/2/original/ror_baseball_jersey_back_red.png new file mode 100644 index 00000000..2be2275f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/2/original/ror_baseball_jersey_back_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/2/product/ror_baseball_jersey_back_red.png b/sprangular/spec/dummy/public/spree/products/2/product/ror_baseball_jersey_back_red.png new file mode 100644 index 00000000..60dd13c3 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/2/product/ror_baseball_jersey_back_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/2/small/ror_baseball_jersey_back_red.png b/sprangular/spec/dummy/public/spree/products/2/small/ror_baseball_jersey_back_red.png new file mode 100644 index 00000000..fdc2a3e7 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/2/small/ror_baseball_jersey_back_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/20/large/ror_baseball_jersey_back_green.png b/sprangular/spec/dummy/public/spree/products/20/large/ror_baseball_jersey_back_green.png new file mode 100644 index 00000000..b5890a75 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/20/large/ror_baseball_jersey_back_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/20/mini/ror_baseball_jersey_back_green.png b/sprangular/spec/dummy/public/spree/products/20/mini/ror_baseball_jersey_back_green.png new file mode 100644 index 00000000..151386fc Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/20/mini/ror_baseball_jersey_back_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/20/original/ror_baseball_jersey_back_green.png b/sprangular/spec/dummy/public/spree/products/20/original/ror_baseball_jersey_back_green.png new file mode 100644 index 00000000..c769e351 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/20/original/ror_baseball_jersey_back_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/20/product/ror_baseball_jersey_back_green.png b/sprangular/spec/dummy/public/spree/products/20/product/ror_baseball_jersey_back_green.png new file mode 100644 index 00000000..b5890a75 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/20/product/ror_baseball_jersey_back_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/20/small/ror_baseball_jersey_back_green.png b/sprangular/spec/dummy/public/spree/products/20/small/ror_baseball_jersey_back_green.png new file mode 100644 index 00000000..1c15a1b9 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/20/small/ror_baseball_jersey_back_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/21/large/ror_tote.jpeg b/sprangular/spec/dummy/public/spree/products/21/large/ror_tote.jpeg new file mode 100644 index 00000000..f338b78f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/21/large/ror_tote.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/21/mini/ror_tote.jpeg b/sprangular/spec/dummy/public/spree/products/21/mini/ror_tote.jpeg new file mode 100644 index 00000000..89580f58 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/21/mini/ror_tote.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/21/original/ror_tote.jpeg b/sprangular/spec/dummy/public/spree/products/21/original/ror_tote.jpeg new file mode 100644 index 00000000..38eb0f54 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/21/original/ror_tote.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/21/product/ror_tote.jpeg b/sprangular/spec/dummy/public/spree/products/21/product/ror_tote.jpeg new file mode 100644 index 00000000..23ae88a9 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/21/product/ror_tote.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/21/small/ror_tote.jpeg b/sprangular/spec/dummy/public/spree/products/21/small/ror_tote.jpeg new file mode 100644 index 00000000..061e0d71 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/21/small/ror_tote.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/22/large/ror_tote_back.jpeg b/sprangular/spec/dummy/public/spree/products/22/large/ror_tote_back.jpeg new file mode 100644 index 00000000..ab848ca3 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/22/large/ror_tote_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/22/mini/ror_tote_back.jpeg b/sprangular/spec/dummy/public/spree/products/22/mini/ror_tote_back.jpeg new file mode 100644 index 00000000..c24060d4 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/22/mini/ror_tote_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/22/original/ror_tote_back.jpeg b/sprangular/spec/dummy/public/spree/products/22/original/ror_tote_back.jpeg new file mode 100644 index 00000000..0410ebbc Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/22/original/ror_tote_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/22/product/ror_tote_back.jpeg b/sprangular/spec/dummy/public/spree/products/22/product/ror_tote_back.jpeg new file mode 100644 index 00000000..a6951e30 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/22/product/ror_tote_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/22/small/ror_tote_back.jpeg b/sprangular/spec/dummy/public/spree/products/22/small/ror_tote_back.jpeg new file mode 100644 index 00000000..cc50049f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/22/small/ror_tote_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/23/large/ror_bag.jpeg b/sprangular/spec/dummy/public/spree/products/23/large/ror_bag.jpeg new file mode 100644 index 00000000..9cef7a8b Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/23/large/ror_bag.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/23/mini/ror_bag.jpeg b/sprangular/spec/dummy/public/spree/products/23/mini/ror_bag.jpeg new file mode 100644 index 00000000..7d8fe6c5 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/23/mini/ror_bag.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/23/original/ror_bag.jpeg b/sprangular/spec/dummy/public/spree/products/23/original/ror_bag.jpeg new file mode 100644 index 00000000..5c88aa7f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/23/original/ror_bag.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/23/product/ror_bag.jpeg b/sprangular/spec/dummy/public/spree/products/23/product/ror_bag.jpeg new file mode 100644 index 00000000..9ff8d610 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/23/product/ror_bag.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/23/small/ror_bag.jpeg b/sprangular/spec/dummy/public/spree/products/23/small/ror_bag.jpeg new file mode 100644 index 00000000..5fe69ff7 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/23/small/ror_bag.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/24/large/ror_baseball.jpeg b/sprangular/spec/dummy/public/spree/products/24/large/ror_baseball.jpeg new file mode 100644 index 00000000..643f2b6f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/24/large/ror_baseball.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/24/mini/ror_baseball.jpeg b/sprangular/spec/dummy/public/spree/products/24/mini/ror_baseball.jpeg new file mode 100644 index 00000000..0c13bad3 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/24/mini/ror_baseball.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/24/original/ror_baseball.jpeg b/sprangular/spec/dummy/public/spree/products/24/original/ror_baseball.jpeg new file mode 100644 index 00000000..d76f979e Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/24/original/ror_baseball.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/24/product/ror_baseball.jpeg b/sprangular/spec/dummy/public/spree/products/24/product/ror_baseball.jpeg new file mode 100644 index 00000000..6f99a15a Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/24/product/ror_baseball.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/24/small/ror_baseball.jpeg b/sprangular/spec/dummy/public/spree/products/24/small/ror_baseball.jpeg new file mode 100644 index 00000000..9cf6e431 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/24/small/ror_baseball.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/25/large/ror_baseball_back.jpeg b/sprangular/spec/dummy/public/spree/products/25/large/ror_baseball_back.jpeg new file mode 100644 index 00000000..0c1aa21c Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/25/large/ror_baseball_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/25/mini/ror_baseball_back.jpeg b/sprangular/spec/dummy/public/spree/products/25/mini/ror_baseball_back.jpeg new file mode 100644 index 00000000..6a01e952 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/25/mini/ror_baseball_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/25/original/ror_baseball_back.jpeg b/sprangular/spec/dummy/public/spree/products/25/original/ror_baseball_back.jpeg new file mode 100644 index 00000000..a05a14d2 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/25/original/ror_baseball_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/25/product/ror_baseball_back.jpeg b/sprangular/spec/dummy/public/spree/products/25/product/ror_baseball_back.jpeg new file mode 100644 index 00000000..e6fe749e Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/25/product/ror_baseball_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/25/small/ror_baseball_back.jpeg b/sprangular/spec/dummy/public/spree/products/25/small/ror_baseball_back.jpeg new file mode 100644 index 00000000..33d08e72 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/25/small/ror_baseball_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/26/large/ror_jr_spaghetti.jpeg b/sprangular/spec/dummy/public/spree/products/26/large/ror_jr_spaghetti.jpeg new file mode 100644 index 00000000..0e236eaa Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/26/large/ror_jr_spaghetti.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/26/mini/ror_jr_spaghetti.jpeg b/sprangular/spec/dummy/public/spree/products/26/mini/ror_jr_spaghetti.jpeg new file mode 100644 index 00000000..0c284061 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/26/mini/ror_jr_spaghetti.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/26/original/ror_jr_spaghetti.jpeg b/sprangular/spec/dummy/public/spree/products/26/original/ror_jr_spaghetti.jpeg new file mode 100644 index 00000000..51712dd4 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/26/original/ror_jr_spaghetti.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/26/product/ror_jr_spaghetti.jpeg b/sprangular/spec/dummy/public/spree/products/26/product/ror_jr_spaghetti.jpeg new file mode 100644 index 00000000..9c9170bc Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/26/product/ror_jr_spaghetti.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/26/small/ror_jr_spaghetti.jpeg b/sprangular/spec/dummy/public/spree/products/26/small/ror_jr_spaghetti.jpeg new file mode 100644 index 00000000..6ffe4239 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/26/small/ror_jr_spaghetti.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/27/large/ror_mug.jpeg b/sprangular/spec/dummy/public/spree/products/27/large/ror_mug.jpeg new file mode 100644 index 00000000..e342a695 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/27/large/ror_mug.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/27/mini/ror_mug.jpeg b/sprangular/spec/dummy/public/spree/products/27/mini/ror_mug.jpeg new file mode 100644 index 00000000..015ba40f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/27/mini/ror_mug.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/27/original/ror_mug.jpeg b/sprangular/spec/dummy/public/spree/products/27/original/ror_mug.jpeg new file mode 100644 index 00000000..1569a376 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/27/original/ror_mug.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/27/product/ror_mug.jpeg b/sprangular/spec/dummy/public/spree/products/27/product/ror_mug.jpeg new file mode 100644 index 00000000..d1d4c689 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/27/product/ror_mug.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/27/small/ror_mug.jpeg b/sprangular/spec/dummy/public/spree/products/27/small/ror_mug.jpeg new file mode 100644 index 00000000..b14e9d05 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/27/small/ror_mug.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/28/large/ror_mug_back.jpeg b/sprangular/spec/dummy/public/spree/products/28/large/ror_mug_back.jpeg new file mode 100644 index 00000000..ddb26180 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/28/large/ror_mug_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/28/mini/ror_mug_back.jpeg b/sprangular/spec/dummy/public/spree/products/28/mini/ror_mug_back.jpeg new file mode 100644 index 00000000..71c78a07 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/28/mini/ror_mug_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/28/original/ror_mug_back.jpeg b/sprangular/spec/dummy/public/spree/products/28/original/ror_mug_back.jpeg new file mode 100644 index 00000000..688861c1 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/28/original/ror_mug_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/28/product/ror_mug_back.jpeg b/sprangular/spec/dummy/public/spree/products/28/product/ror_mug_back.jpeg new file mode 100644 index 00000000..c56935e7 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/28/product/ror_mug_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/28/small/ror_mug_back.jpeg b/sprangular/spec/dummy/public/spree/products/28/small/ror_mug_back.jpeg new file mode 100644 index 00000000..c1fb5ab5 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/28/small/ror_mug_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/29/large/ror_ringer.jpeg b/sprangular/spec/dummy/public/spree/products/29/large/ror_ringer.jpeg new file mode 100644 index 00000000..ef445020 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/29/large/ror_ringer.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/29/mini/ror_ringer.jpeg b/sprangular/spec/dummy/public/spree/products/29/mini/ror_ringer.jpeg new file mode 100644 index 00000000..3935d266 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/29/mini/ror_ringer.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/29/original/ror_ringer.jpeg b/sprangular/spec/dummy/public/spree/products/29/original/ror_ringer.jpeg new file mode 100644 index 00000000..c26f9922 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/29/original/ror_ringer.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/29/product/ror_ringer.jpeg b/sprangular/spec/dummy/public/spree/products/29/product/ror_ringer.jpeg new file mode 100644 index 00000000..2296ef5a Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/29/product/ror_ringer.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/29/small/ror_ringer.jpeg b/sprangular/spec/dummy/public/spree/products/29/small/ror_ringer.jpeg new file mode 100644 index 00000000..6309adcc Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/29/small/ror_ringer.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/3/large/ror_baseball_jersey_blue.png b/sprangular/spec/dummy/public/spree/products/3/large/ror_baseball_jersey_blue.png new file mode 100644 index 00000000..7b8e5394 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/3/large/ror_baseball_jersey_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/3/mini/ror_baseball_jersey_blue.png b/sprangular/spec/dummy/public/spree/products/3/mini/ror_baseball_jersey_blue.png new file mode 100644 index 00000000..3dbf91ff Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/3/mini/ror_baseball_jersey_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/3/original/ror_baseball_jersey_blue.png b/sprangular/spec/dummy/public/spree/products/3/original/ror_baseball_jersey_blue.png new file mode 100644 index 00000000..ad15f9f0 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/3/original/ror_baseball_jersey_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/3/product/ror_baseball_jersey_blue.png b/sprangular/spec/dummy/public/spree/products/3/product/ror_baseball_jersey_blue.png new file mode 100644 index 00000000..7b8e5394 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/3/product/ror_baseball_jersey_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/3/small/ror_baseball_jersey_blue.png b/sprangular/spec/dummy/public/spree/products/3/small/ror_baseball_jersey_blue.png new file mode 100644 index 00000000..891d3f20 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/3/small/ror_baseball_jersey_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/30/large/ror_ringer_back.jpeg b/sprangular/spec/dummy/public/spree/products/30/large/ror_ringer_back.jpeg new file mode 100644 index 00000000..2ea1b217 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/30/large/ror_ringer_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/30/mini/ror_ringer_back.jpeg b/sprangular/spec/dummy/public/spree/products/30/mini/ror_ringer_back.jpeg new file mode 100644 index 00000000..16acd7b1 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/30/mini/ror_ringer_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/30/original/ror_ringer_back.jpeg b/sprangular/spec/dummy/public/spree/products/30/original/ror_ringer_back.jpeg new file mode 100644 index 00000000..b8aa9d6c Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/30/original/ror_ringer_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/30/product/ror_ringer_back.jpeg b/sprangular/spec/dummy/public/spree/products/30/product/ror_ringer_back.jpeg new file mode 100644 index 00000000..b220aafe Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/30/product/ror_ringer_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/30/small/ror_ringer_back.jpeg b/sprangular/spec/dummy/public/spree/products/30/small/ror_ringer_back.jpeg new file mode 100644 index 00000000..cd6e8473 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/30/small/ror_ringer_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/31/large/ror_stein.jpeg b/sprangular/spec/dummy/public/spree/products/31/large/ror_stein.jpeg new file mode 100644 index 00000000..1214e8be Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/31/large/ror_stein.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/31/mini/ror_stein.jpeg b/sprangular/spec/dummy/public/spree/products/31/mini/ror_stein.jpeg new file mode 100644 index 00000000..1227546f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/31/mini/ror_stein.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/31/original/ror_stein.jpeg b/sprangular/spec/dummy/public/spree/products/31/original/ror_stein.jpeg new file mode 100644 index 00000000..126072f4 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/31/original/ror_stein.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/31/product/ror_stein.jpeg b/sprangular/spec/dummy/public/spree/products/31/product/ror_stein.jpeg new file mode 100644 index 00000000..8bdff8ea Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/31/product/ror_stein.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/31/small/ror_stein.jpeg b/sprangular/spec/dummy/public/spree/products/31/small/ror_stein.jpeg new file mode 100644 index 00000000..5bb444a9 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/31/small/ror_stein.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/32/large/ror_stein_back.jpeg b/sprangular/spec/dummy/public/spree/products/32/large/ror_stein_back.jpeg new file mode 100644 index 00000000..258ad652 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/32/large/ror_stein_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/32/mini/ror_stein_back.jpeg b/sprangular/spec/dummy/public/spree/products/32/mini/ror_stein_back.jpeg new file mode 100644 index 00000000..7a45fe7c Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/32/mini/ror_stein_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/32/original/ror_stein_back.jpeg b/sprangular/spec/dummy/public/spree/products/32/original/ror_stein_back.jpeg new file mode 100644 index 00000000..cba4f27f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/32/original/ror_stein_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/32/product/ror_stein_back.jpeg b/sprangular/spec/dummy/public/spree/products/32/product/ror_stein_back.jpeg new file mode 100644 index 00000000..fd5bc9d9 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/32/product/ror_stein_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/32/small/ror_stein_back.jpeg b/sprangular/spec/dummy/public/spree/products/32/small/ror_stein_back.jpeg new file mode 100644 index 00000000..33486312 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/32/small/ror_stein_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/33/large/apache_baseball.png b/sprangular/spec/dummy/public/spree/products/33/large/apache_baseball.png new file mode 100644 index 00000000..88504e75 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/33/large/apache_baseball.png differ diff --git a/sprangular/spec/dummy/public/spree/products/33/mini/apache_baseball.png b/sprangular/spec/dummy/public/spree/products/33/mini/apache_baseball.png new file mode 100644 index 00000000..89bcae47 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/33/mini/apache_baseball.png differ diff --git a/sprangular/spec/dummy/public/spree/products/33/original/apache_baseball.png b/sprangular/spec/dummy/public/spree/products/33/original/apache_baseball.png new file mode 100644 index 00000000..40d68d1f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/33/original/apache_baseball.png differ diff --git a/sprangular/spec/dummy/public/spree/products/33/product/apache_baseball.png b/sprangular/spec/dummy/public/spree/products/33/product/apache_baseball.png new file mode 100644 index 00000000..51e2f5cf Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/33/product/apache_baseball.png differ diff --git a/sprangular/spec/dummy/public/spree/products/33/small/apache_baseball.png b/sprangular/spec/dummy/public/spree/products/33/small/apache_baseball.png new file mode 100644 index 00000000..7e4f6cbf Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/33/small/apache_baseball.png differ diff --git a/sprangular/spec/dummy/public/spree/products/34/large/ruby_baseball.png b/sprangular/spec/dummy/public/spree/products/34/large/ruby_baseball.png new file mode 100644 index 00000000..4583330a Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/34/large/ruby_baseball.png differ diff --git a/sprangular/spec/dummy/public/spree/products/34/mini/ruby_baseball.png b/sprangular/spec/dummy/public/spree/products/34/mini/ruby_baseball.png new file mode 100644 index 00000000..7ecc4e4b Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/34/mini/ruby_baseball.png differ diff --git a/sprangular/spec/dummy/public/spree/products/34/original/ruby_baseball.png b/sprangular/spec/dummy/public/spree/products/34/original/ruby_baseball.png new file mode 100644 index 00000000..9801dcb3 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/34/original/ruby_baseball.png differ diff --git a/sprangular/spec/dummy/public/spree/products/34/product/ruby_baseball.png b/sprangular/spec/dummy/public/spree/products/34/product/ruby_baseball.png new file mode 100644 index 00000000..b1f78472 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/34/product/ruby_baseball.png differ diff --git a/sprangular/spec/dummy/public/spree/products/34/small/ruby_baseball.png b/sprangular/spec/dummy/public/spree/products/34/small/ruby_baseball.png new file mode 100644 index 00000000..ede3fceb Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/34/small/ruby_baseball.png differ diff --git a/sprangular/spec/dummy/public/spree/products/35/large/spree_bag.jpeg b/sprangular/spec/dummy/public/spree/products/35/large/spree_bag.jpeg new file mode 100644 index 00000000..b889f569 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/35/large/spree_bag.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/35/mini/spree_bag.jpeg b/sprangular/spec/dummy/public/spree/products/35/mini/spree_bag.jpeg new file mode 100644 index 00000000..1b5549f6 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/35/mini/spree_bag.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/35/original/spree_bag.jpeg b/sprangular/spec/dummy/public/spree/products/35/original/spree_bag.jpeg new file mode 100644 index 00000000..af60cee5 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/35/original/spree_bag.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/35/product/spree_bag.jpeg b/sprangular/spec/dummy/public/spree/products/35/product/spree_bag.jpeg new file mode 100644 index 00000000..be3c8774 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/35/product/spree_bag.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/35/small/spree_bag.jpeg b/sprangular/spec/dummy/public/spree/products/35/small/spree_bag.jpeg new file mode 100644 index 00000000..f1514a24 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/35/small/spree_bag.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/36/large/spree_tote_front.jpeg b/sprangular/spec/dummy/public/spree/products/36/large/spree_tote_front.jpeg new file mode 100644 index 00000000..0c8e523b Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/36/large/spree_tote_front.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/36/mini/spree_tote_front.jpeg b/sprangular/spec/dummy/public/spree/products/36/mini/spree_tote_front.jpeg new file mode 100644 index 00000000..ca6e462e Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/36/mini/spree_tote_front.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/36/original/spree_tote_front.jpeg b/sprangular/spec/dummy/public/spree/products/36/original/spree_tote_front.jpeg new file mode 100644 index 00000000..5c56a066 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/36/original/spree_tote_front.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/36/product/spree_tote_front.jpeg b/sprangular/spec/dummy/public/spree/products/36/product/spree_tote_front.jpeg new file mode 100644 index 00000000..58d50b72 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/36/product/spree_tote_front.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/36/small/spree_tote_front.jpeg b/sprangular/spec/dummy/public/spree/products/36/small/spree_tote_front.jpeg new file mode 100644 index 00000000..6845ca61 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/36/small/spree_tote_front.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/37/large/spree_tote_back.jpeg b/sprangular/spec/dummy/public/spree/products/37/large/spree_tote_back.jpeg new file mode 100644 index 00000000..c3ffbb13 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/37/large/spree_tote_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/37/mini/spree_tote_back.jpeg b/sprangular/spec/dummy/public/spree/products/37/mini/spree_tote_back.jpeg new file mode 100644 index 00000000..94a17c6f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/37/mini/spree_tote_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/37/original/spree_tote_back.jpeg b/sprangular/spec/dummy/public/spree/products/37/original/spree_tote_back.jpeg new file mode 100644 index 00000000..846adc8f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/37/original/spree_tote_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/37/product/spree_tote_back.jpeg b/sprangular/spec/dummy/public/spree/products/37/product/spree_tote_back.jpeg new file mode 100644 index 00000000..1ed17cf3 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/37/product/spree_tote_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/37/small/spree_tote_back.jpeg b/sprangular/spec/dummy/public/spree/products/37/small/spree_tote_back.jpeg new file mode 100644 index 00000000..206e5d7e Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/37/small/spree_tote_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/38/large/spree_ringer_t.jpeg b/sprangular/spec/dummy/public/spree/products/38/large/spree_ringer_t.jpeg new file mode 100644 index 00000000..a8c7c44b Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/38/large/spree_ringer_t.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/38/mini/spree_ringer_t.jpeg b/sprangular/spec/dummy/public/spree/products/38/mini/spree_ringer_t.jpeg new file mode 100644 index 00000000..c855e7aa Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/38/mini/spree_ringer_t.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/38/original/spree_ringer_t.jpeg b/sprangular/spec/dummy/public/spree/products/38/original/spree_ringer_t.jpeg new file mode 100644 index 00000000..69c641ac Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/38/original/spree_ringer_t.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/38/product/spree_ringer_t.jpeg b/sprangular/spec/dummy/public/spree/products/38/product/spree_ringer_t.jpeg new file mode 100644 index 00000000..88a28a43 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/38/product/spree_ringer_t.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/38/small/spree_ringer_t.jpeg b/sprangular/spec/dummy/public/spree/products/38/small/spree_ringer_t.jpeg new file mode 100644 index 00000000..547f6a00 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/38/small/spree_ringer_t.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/39/large/spree_ringer_t_back.jpeg b/sprangular/spec/dummy/public/spree/products/39/large/spree_ringer_t_back.jpeg new file mode 100644 index 00000000..e63b33cf Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/39/large/spree_ringer_t_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/39/mini/spree_ringer_t_back.jpeg b/sprangular/spec/dummy/public/spree/products/39/mini/spree_ringer_t_back.jpeg new file mode 100644 index 00000000..eff75245 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/39/mini/spree_ringer_t_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/39/original/spree_ringer_t_back.jpeg b/sprangular/spec/dummy/public/spree/products/39/original/spree_ringer_t_back.jpeg new file mode 100644 index 00000000..76f18a50 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/39/original/spree_ringer_t_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/39/product/spree_ringer_t_back.jpeg b/sprangular/spec/dummy/public/spree/products/39/product/spree_ringer_t_back.jpeg new file mode 100644 index 00000000..7ed0d10f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/39/product/spree_ringer_t_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/39/small/spree_ringer_t_back.jpeg b/sprangular/spec/dummy/public/spree/products/39/small/spree_ringer_t_back.jpeg new file mode 100644 index 00000000..8f15f8ed Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/39/small/spree_ringer_t_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/4/large/ror_baseball_jersey_back_blue.png b/sprangular/spec/dummy/public/spree/products/4/large/ror_baseball_jersey_back_blue.png new file mode 100644 index 00000000..f286553f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/4/large/ror_baseball_jersey_back_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/4/mini/ror_baseball_jersey_back_blue.png b/sprangular/spec/dummy/public/spree/products/4/mini/ror_baseball_jersey_back_blue.png new file mode 100644 index 00000000..6e35f3f8 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/4/mini/ror_baseball_jersey_back_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/4/original/ror_baseball_jersey_back_blue.png b/sprangular/spec/dummy/public/spree/products/4/original/ror_baseball_jersey_back_blue.png new file mode 100644 index 00000000..2f023f23 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/4/original/ror_baseball_jersey_back_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/4/product/ror_baseball_jersey_back_blue.png b/sprangular/spec/dummy/public/spree/products/4/product/ror_baseball_jersey_back_blue.png new file mode 100644 index 00000000..f286553f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/4/product/ror_baseball_jersey_back_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/4/small/ror_baseball_jersey_back_blue.png b/sprangular/spec/dummy/public/spree/products/4/small/ror_baseball_jersey_back_blue.png new file mode 100644 index 00000000..fcd211e2 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/4/small/ror_baseball_jersey_back_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/40/large/spree_spaghetti.jpeg b/sprangular/spec/dummy/public/spree/products/40/large/spree_spaghetti.jpeg new file mode 100644 index 00000000..bb8dad91 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/40/large/spree_spaghetti.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/40/mini/spree_spaghetti.jpeg b/sprangular/spec/dummy/public/spree/products/40/mini/spree_spaghetti.jpeg new file mode 100644 index 00000000..c8d883e4 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/40/mini/spree_spaghetti.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/40/original/spree_spaghetti.jpeg b/sprangular/spec/dummy/public/spree/products/40/original/spree_spaghetti.jpeg new file mode 100644 index 00000000..64723e45 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/40/original/spree_spaghetti.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/40/product/spree_spaghetti.jpeg b/sprangular/spec/dummy/public/spree/products/40/product/spree_spaghetti.jpeg new file mode 100644 index 00000000..648ce289 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/40/product/spree_spaghetti.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/40/small/spree_spaghetti.jpeg b/sprangular/spec/dummy/public/spree/products/40/small/spree_spaghetti.jpeg new file mode 100644 index 00000000..dedaca0b Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/40/small/spree_spaghetti.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/41/large/spree_jersey.jpeg b/sprangular/spec/dummy/public/spree/products/41/large/spree_jersey.jpeg new file mode 100644 index 00000000..98785371 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/41/large/spree_jersey.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/41/mini/spree_jersey.jpeg b/sprangular/spec/dummy/public/spree/products/41/mini/spree_jersey.jpeg new file mode 100644 index 00000000..98418829 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/41/mini/spree_jersey.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/41/original/spree_jersey.jpeg b/sprangular/spec/dummy/public/spree/products/41/original/spree_jersey.jpeg new file mode 100644 index 00000000..f58ebb1c Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/41/original/spree_jersey.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/41/product/spree_jersey.jpeg b/sprangular/spec/dummy/public/spree/products/41/product/spree_jersey.jpeg new file mode 100644 index 00000000..2bd96284 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/41/product/spree_jersey.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/41/small/spree_jersey.jpeg b/sprangular/spec/dummy/public/spree/products/41/small/spree_jersey.jpeg new file mode 100644 index 00000000..d9f126d1 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/41/small/spree_jersey.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/42/large/spree_jersey_back.jpeg b/sprangular/spec/dummy/public/spree/products/42/large/spree_jersey_back.jpeg new file mode 100644 index 00000000..7495102f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/42/large/spree_jersey_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/42/mini/spree_jersey_back.jpeg b/sprangular/spec/dummy/public/spree/products/42/mini/spree_jersey_back.jpeg new file mode 100644 index 00000000..fd12096f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/42/mini/spree_jersey_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/42/original/spree_jersey_back.jpeg b/sprangular/spec/dummy/public/spree/products/42/original/spree_jersey_back.jpeg new file mode 100644 index 00000000..3e48587d Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/42/original/spree_jersey_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/42/product/spree_jersey_back.jpeg b/sprangular/spec/dummy/public/spree/products/42/product/spree_jersey_back.jpeg new file mode 100644 index 00000000..c84d3c94 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/42/product/spree_jersey_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/42/small/spree_jersey_back.jpeg b/sprangular/spec/dummy/public/spree/products/42/small/spree_jersey_back.jpeg new file mode 100644 index 00000000..92b5b4a7 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/42/small/spree_jersey_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/43/large/spree_stein.jpeg b/sprangular/spec/dummy/public/spree/products/43/large/spree_stein.jpeg new file mode 100644 index 00000000..9ab9f6f0 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/43/large/spree_stein.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/43/mini/spree_stein.jpeg b/sprangular/spec/dummy/public/spree/products/43/mini/spree_stein.jpeg new file mode 100644 index 00000000..748c69a4 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/43/mini/spree_stein.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/43/original/spree_stein.jpeg b/sprangular/spec/dummy/public/spree/products/43/original/spree_stein.jpeg new file mode 100644 index 00000000..e5ebe3b2 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/43/original/spree_stein.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/43/product/spree_stein.jpeg b/sprangular/spec/dummy/public/spree/products/43/product/spree_stein.jpeg new file mode 100644 index 00000000..3497a7e9 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/43/product/spree_stein.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/43/small/spree_stein.jpeg b/sprangular/spec/dummy/public/spree/products/43/small/spree_stein.jpeg new file mode 100644 index 00000000..76442aeb Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/43/small/spree_stein.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/44/large/spree_stein_back.jpeg b/sprangular/spec/dummy/public/spree/products/44/large/spree_stein_back.jpeg new file mode 100644 index 00000000..6b98c83d Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/44/large/spree_stein_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/44/mini/spree_stein_back.jpeg b/sprangular/spec/dummy/public/spree/products/44/mini/spree_stein_back.jpeg new file mode 100644 index 00000000..c6b70685 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/44/mini/spree_stein_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/44/original/spree_stein_back.jpeg b/sprangular/spec/dummy/public/spree/products/44/original/spree_stein_back.jpeg new file mode 100644 index 00000000..7b1e9419 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/44/original/spree_stein_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/44/product/spree_stein_back.jpeg b/sprangular/spec/dummy/public/spree/products/44/product/spree_stein_back.jpeg new file mode 100644 index 00000000..dba22820 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/44/product/spree_stein_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/44/small/spree_stein_back.jpeg b/sprangular/spec/dummy/public/spree/products/44/small/spree_stein_back.jpeg new file mode 100644 index 00000000..dba4b936 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/44/small/spree_stein_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/45/large/spree_mug.jpeg b/sprangular/spec/dummy/public/spree/products/45/large/spree_mug.jpeg new file mode 100644 index 00000000..9f143e1d Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/45/large/spree_mug.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/45/mini/spree_mug.jpeg b/sprangular/spec/dummy/public/spree/products/45/mini/spree_mug.jpeg new file mode 100644 index 00000000..fcebed19 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/45/mini/spree_mug.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/45/original/spree_mug.jpeg b/sprangular/spec/dummy/public/spree/products/45/original/spree_mug.jpeg new file mode 100644 index 00000000..478cd9f2 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/45/original/spree_mug.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/45/product/spree_mug.jpeg b/sprangular/spec/dummy/public/spree/products/45/product/spree_mug.jpeg new file mode 100644 index 00000000..9f143e1d Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/45/product/spree_mug.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/45/small/spree_mug.jpeg b/sprangular/spec/dummy/public/spree/products/45/small/spree_mug.jpeg new file mode 100644 index 00000000..83f04cd0 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/45/small/spree_mug.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/46/large/spree_mug_back.jpeg b/sprangular/spec/dummy/public/spree/products/46/large/spree_mug_back.jpeg new file mode 100644 index 00000000..83e598d2 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/46/large/spree_mug_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/46/mini/spree_mug_back.jpeg b/sprangular/spec/dummy/public/spree/products/46/mini/spree_mug_back.jpeg new file mode 100644 index 00000000..75530408 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/46/mini/spree_mug_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/46/original/spree_mug_back.jpeg b/sprangular/spec/dummy/public/spree/products/46/original/spree_mug_back.jpeg new file mode 100644 index 00000000..6c54d2a4 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/46/original/spree_mug_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/46/product/spree_mug_back.jpeg b/sprangular/spec/dummy/public/spree/products/46/product/spree_mug_back.jpeg new file mode 100644 index 00000000..83e598d2 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/46/product/spree_mug_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/46/small/spree_mug_back.jpeg b/sprangular/spec/dummy/public/spree/products/46/small/spree_mug_back.jpeg new file mode 100644 index 00000000..6e8b02f5 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/46/small/spree_mug_back.jpeg differ diff --git a/sprangular/spec/dummy/public/spree/products/5/large/ror_baseball_jersey_green.png b/sprangular/spec/dummy/public/spree/products/5/large/ror_baseball_jersey_green.png new file mode 100644 index 00000000..eba327ab Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/5/large/ror_baseball_jersey_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/5/mini/ror_baseball_jersey_green.png b/sprangular/spec/dummy/public/spree/products/5/mini/ror_baseball_jersey_green.png new file mode 100644 index 00000000..119443bd Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/5/mini/ror_baseball_jersey_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/5/original/ror_baseball_jersey_green.png b/sprangular/spec/dummy/public/spree/products/5/original/ror_baseball_jersey_green.png new file mode 100644 index 00000000..4bd8c0ae Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/5/original/ror_baseball_jersey_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/5/product/ror_baseball_jersey_green.png b/sprangular/spec/dummy/public/spree/products/5/product/ror_baseball_jersey_green.png new file mode 100644 index 00000000..eba327ab Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/5/product/ror_baseball_jersey_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/5/small/ror_baseball_jersey_green.png b/sprangular/spec/dummy/public/spree/products/5/small/ror_baseball_jersey_green.png new file mode 100644 index 00000000..3fe0f17a Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/5/small/ror_baseball_jersey_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/6/large/ror_baseball_jersey_back_green.png b/sprangular/spec/dummy/public/spree/products/6/large/ror_baseball_jersey_back_green.png new file mode 100644 index 00000000..b5890a75 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/6/large/ror_baseball_jersey_back_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/6/mini/ror_baseball_jersey_back_green.png b/sprangular/spec/dummy/public/spree/products/6/mini/ror_baseball_jersey_back_green.png new file mode 100644 index 00000000..151386fc Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/6/mini/ror_baseball_jersey_back_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/6/original/ror_baseball_jersey_back_green.png b/sprangular/spec/dummy/public/spree/products/6/original/ror_baseball_jersey_back_green.png new file mode 100644 index 00000000..c769e351 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/6/original/ror_baseball_jersey_back_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/6/product/ror_baseball_jersey_back_green.png b/sprangular/spec/dummy/public/spree/products/6/product/ror_baseball_jersey_back_green.png new file mode 100644 index 00000000..b5890a75 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/6/product/ror_baseball_jersey_back_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/6/small/ror_baseball_jersey_back_green.png b/sprangular/spec/dummy/public/spree/products/6/small/ror_baseball_jersey_back_green.png new file mode 100644 index 00000000..1c15a1b9 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/6/small/ror_baseball_jersey_back_green.png differ diff --git a/sprangular/spec/dummy/public/spree/products/7/large/ror_baseball_jersey_red.png b/sprangular/spec/dummy/public/spree/products/7/large/ror_baseball_jersey_red.png new file mode 100644 index 00000000..dc06d349 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/7/large/ror_baseball_jersey_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/7/mini/ror_baseball_jersey_red.png b/sprangular/spec/dummy/public/spree/products/7/mini/ror_baseball_jersey_red.png new file mode 100644 index 00000000..b648553e Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/7/mini/ror_baseball_jersey_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/7/original/ror_baseball_jersey_red.png b/sprangular/spec/dummy/public/spree/products/7/original/ror_baseball_jersey_red.png new file mode 100644 index 00000000..4deb99a1 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/7/original/ror_baseball_jersey_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/7/product/ror_baseball_jersey_red.png b/sprangular/spec/dummy/public/spree/products/7/product/ror_baseball_jersey_red.png new file mode 100644 index 00000000..dc06d349 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/7/product/ror_baseball_jersey_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/7/small/ror_baseball_jersey_red.png b/sprangular/spec/dummy/public/spree/products/7/small/ror_baseball_jersey_red.png new file mode 100644 index 00000000..471881bb Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/7/small/ror_baseball_jersey_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/8/large/ror_baseball_jersey_back_red.png b/sprangular/spec/dummy/public/spree/products/8/large/ror_baseball_jersey_back_red.png new file mode 100644 index 00000000..60dd13c3 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/8/large/ror_baseball_jersey_back_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/8/mini/ror_baseball_jersey_back_red.png b/sprangular/spec/dummy/public/spree/products/8/mini/ror_baseball_jersey_back_red.png new file mode 100644 index 00000000..884f722a Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/8/mini/ror_baseball_jersey_back_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/8/original/ror_baseball_jersey_back_red.png b/sprangular/spec/dummy/public/spree/products/8/original/ror_baseball_jersey_back_red.png new file mode 100644 index 00000000..2be2275f Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/8/original/ror_baseball_jersey_back_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/8/product/ror_baseball_jersey_back_red.png b/sprangular/spec/dummy/public/spree/products/8/product/ror_baseball_jersey_back_red.png new file mode 100644 index 00000000..60dd13c3 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/8/product/ror_baseball_jersey_back_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/8/small/ror_baseball_jersey_back_red.png b/sprangular/spec/dummy/public/spree/products/8/small/ror_baseball_jersey_back_red.png new file mode 100644 index 00000000..fdc2a3e7 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/8/small/ror_baseball_jersey_back_red.png differ diff --git a/sprangular/spec/dummy/public/spree/products/9/large/ror_baseball_jersey_blue.png b/sprangular/spec/dummy/public/spree/products/9/large/ror_baseball_jersey_blue.png new file mode 100644 index 00000000..7b8e5394 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/9/large/ror_baseball_jersey_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/9/mini/ror_baseball_jersey_blue.png b/sprangular/spec/dummy/public/spree/products/9/mini/ror_baseball_jersey_blue.png new file mode 100644 index 00000000..3dbf91ff Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/9/mini/ror_baseball_jersey_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/9/original/ror_baseball_jersey_blue.png b/sprangular/spec/dummy/public/spree/products/9/original/ror_baseball_jersey_blue.png new file mode 100644 index 00000000..ad15f9f0 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/9/original/ror_baseball_jersey_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/9/product/ror_baseball_jersey_blue.png b/sprangular/spec/dummy/public/spree/products/9/product/ror_baseball_jersey_blue.png new file mode 100644 index 00000000..7b8e5394 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/9/product/ror_baseball_jersey_blue.png differ diff --git a/sprangular/spec/dummy/public/spree/products/9/small/ror_baseball_jersey_blue.png b/sprangular/spec/dummy/public/spree/products/9/small/ror_baseball_jersey_blue.png new file mode 100644 index 00000000..891d3f20 Binary files /dev/null and b/sprangular/spec/dummy/public/spree/products/9/small/ror_baseball_jersey_blue.png differ diff --git a/sprangular/spec/dummy/vendor/assets/javascripts/spree/backend/all.js b/sprangular/spec/dummy/vendor/assets/javascripts/spree/backend/all.js new file mode 100644 index 00000000..3b675c75 --- /dev/null +++ b/sprangular/spec/dummy/vendor/assets/javascripts/spree/backend/all.js @@ -0,0 +1,12 @@ +// This is a manifest file that'll be compiled into including all the files listed below. +// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically +// be included in the compiled file accessible from http://example.com/assets/application.js +// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the +// the compiled file. +// +//= require jquery +//= require jquery_ujs + +//= require spree/backend + +//= require_tree . diff --git a/sprangular/spec/dummy/vendor/assets/javascripts/spree/frontend/all.js b/sprangular/spec/dummy/vendor/assets/javascripts/spree/frontend/all.js new file mode 100644 index 00000000..cde971d4 --- /dev/null +++ b/sprangular/spec/dummy/vendor/assets/javascripts/spree/frontend/all.js @@ -0,0 +1,12 @@ +// This is a manifest file that'll be compiled into including all the files listed below. +// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically +// be included in the compiled file accessible from http://example.com/assets/application.js +// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the +// the compiled file. +// +//= require jquery +//= require jquery_ujs + +//= require spree/frontend + +//= require_tree . diff --git a/sprangular/spec/dummy/vendor/assets/stylesheets/spree/backend/all.css b/sprangular/spec/dummy/vendor/assets/stylesheets/spree/backend/all.css new file mode 100644 index 00000000..41d64256 --- /dev/null +++ b/sprangular/spec/dummy/vendor/assets/stylesheets/spree/backend/all.css @@ -0,0 +1,11 @@ +/* + * This is a manifest file that'll automatically include all the stylesheets available in this directory + * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at + * the top of the compiled file, but it's generally better to create a new file per style scope. + * + + *= require spree/backend + + *= require_self + *= require_tree . +*/ diff --git a/sprangular/spec/dummy/vendor/assets/stylesheets/spree/frontend/all.css b/sprangular/spec/dummy/vendor/assets/stylesheets/spree/frontend/all.css new file mode 100644 index 00000000..57a390d8 --- /dev/null +++ b/sprangular/spec/dummy/vendor/assets/stylesheets/spree/frontend/all.css @@ -0,0 +1,11 @@ +/* + * This is a manifest file that'll automatically include all the stylesheets available in this directory + * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at + * the top of the compiled file, but it's generally better to create a new file per style scope. + * + + *= require spree/frontend + + *= require_self + *= require_tree . +*/ diff --git a/sprangular/spec/rails_helper.rb b/sprangular/spec/rails_helper.rb new file mode 100644 index 00000000..db637ab1 --- /dev/null +++ b/sprangular/spec/rails_helper.rb @@ -0,0 +1,43 @@ +# This file is copied to spec/ when you run 'rails generate rspec:install' +ENV["RAILS_ENV"] ||= 'test' +require 'spec_helper' +require File.expand_path("../dummy/config/environment", __FILE__) +require 'rspec/rails' + +# Requires supporting ruby files with custom matchers and macros, etc, in +# spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are +# run as spec files by default. This means that files in spec/support that end +# in _spec.rb will both be required and run as specs, causing the specs to be +# run twice. It is recommended that you do not name files matching this glob to +# end with _spec.rb. You can configure this pattern with with the --pattern +# option on the command line or in ~/.rspec, .rspec or `.rspec-local`. +Dir[Rails.root.join("../../spec/support/*.rb")].each { |f| require f } + +# Checks for pending migrations before tests are run. +# If you are not using ActiveRecord, you can remove this line. +ActiveRecord::Migration.maintain_test_schema! + +RSpec.configure do |config| + # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures + config.fixture_path = "#{::Rails.root}/spec/fixtures" + + # If you're not using ActiveRecord, or you'd prefer not to run each of your + # examples within a transaction, remove the following line or assign false + # instead of true. + config.use_transactional_fixtures = true + + # RSpec Rails can automatically mix in different behaviours to your tests + # based on their file location, for example enabling you to call `get` and + # `post` in specs under `spec/controllers`. + # + # You can disable this behaviour by removing the line below, and instead + # explicitly tag your specs with their type, e.g.: + # + # RSpec.describe UsersController, :type => :controller do + # # ... + # end + # + # The different available types are documented in the features, such as in + # https://relishapp.com/rspec/rspec-rails/docs + config.infer_spec_type_from_file_location! +end diff --git a/sprangular/spec/spec_helper.rb b/sprangular/spec/spec_helper.rb new file mode 100644 index 00000000..cfb18dcd --- /dev/null +++ b/sprangular/spec/spec_helper.rb @@ -0,0 +1,78 @@ +# This file was generated by the `rails generate rspec:install` command. Conventionally, all +# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`. +# The generated `.rspec` file contains `--require spec_helper` which will cause this +# file to always be loaded, without a need to explicitly require it in any files. +# +# Given that it is always loaded, you are encouraged to keep this file as +# light-weight as possible. Requiring heavyweight dependencies from this file +# will add to the boot time of your test suite on EVERY test run, even for an +# individual file that may not need all of that loaded. Instead, make a +# separate helper file that requires this one and then use it only in the specs +# that actually need it. +# +# The `.rspec` file also contains a few flags that are not defaults but that +# users commonly want. +# +# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration +RSpec.configure do |config| +# The settings below are suggested to provide a good initial experience +# with RSpec, but feel free to customize to your heart's content. +=begin + # These two settings work together to allow you to limit a spec run + # to individual examples or groups you care about by tagging them with + # `:focus` metadata. When nothing is tagged with `:focus`, all examples + # get run. + config.filter_run :focus + config.run_all_when_everything_filtered = true + + # Many RSpec users commonly either run the entire suite or an individual + # file, and it's useful to allow more verbose output when running an + # individual spec file. + if config.files_to_run.one? + # Use the documentation formatter for detailed output, + # unless a formatter has already been configured + # (e.g. via a command-line flag). + config.default_formatter = 'doc' + end + + # Print the 10 slowest examples and example groups at the + # end of the spec run, to help surface which specs are running + # particularly slow. + config.profile_examples = 10 + + # Run specs in random order to surface order dependencies. If you find an + # order dependency and want to debug it, you can fix the order by providing + # the seed, which is printed after each run. + # --seed 1234 + config.order = :random + + # Seed global randomization in this process using the `--seed` CLI option. + # Setting this allows you to use `--seed` to deterministically reproduce + # test failures related to randomization by passing the same `--seed` value + # as the one that triggered the failure. + Kernel.srand config.seed + + # rspec-expectations config goes here. You can use an alternate + # assertion/expectation library such as wrong or the stdlib/minitest + # assertions if you prefer. + config.expect_with :rspec do |expectations| + # Enable only the newer, non-monkey-patching expect syntax. + # For more details, see: + # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax + expectations.syntax = :expect + end + + # rspec-mocks config goes here. You can use an alternate test double + # library (such as bogus or mocha) by changing the `mock_with` option here. + config.mock_with :rspec do |mocks| + # Enable only the newer, non-monkey-patching expect syntax. + # For more details, see: + # - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/ + mocks.syntax = :expect + + # Prevents you from mocking or stubbing a method that does not exist on + # a real object. This is generally recommended. + mocks.verify_partial_doubles = true + end +=end +end diff --git a/sprangular/sprangular.gemspec b/sprangular/sprangular.gemspec new file mode 100644 index 00000000..040c10df --- /dev/null +++ b/sprangular/sprangular.gemspec @@ -0,0 +1,48 @@ +$:.push File.expand_path("../lib", __FILE__) + +# Maintain your gem's version: +require "sprangular/version" + +# Describe your gem and declare its dependencies: +Gem::Specification.new do |s| + s.name = "sprangular" + s.version = Sprangular::VERSION + s.authors = ["Simon Walsh", "Hugo Frappier", "Josh Nussbaum"] + s.email = ["simon@walsh.si", "hugo@godynamo.com", "josh@godynamo.com"] + s.homepage = "http://www.godynamo.com" + s.summary = "Spree + Angular.js frontend" + s.description = "Spree frontend using angular.js" + s.license = "MIT" + + s.files = Dir["{app,config,db,lib}/**/*", "MIT-LICENSE", "Rakefile", "README.rdoc"] + s.test_files = Dir["test/**/*"] + + s.add_dependency 'rails' + s.add_dependency 'spree_core', '>= 2.4' + s.add_dependency 'spree_api', '>= 2.4' + s.add_dependency 'slim-rails' + s.add_dependency 'coffee-rails' + s.add_dependency 'jquery-rails' + s.add_dependency 'sass-rails' + s.add_dependency 'angularjs-rails' + s.add_dependency 'rack-rewrite' + s.add_dependency 'geocoder' + s.add_dependency 'font-awesome-rails', '~> 4.2' + s.add_dependency 'rails-assets-bootstrap-sass-official' + s.add_dependency 'rails-assets-angular-bootstrap' + s.add_dependency 'rails-assets-angular-strap' + s.add_dependency 'rails-assets-angular-motion' + s.add_dependency 'rails-assets-bootstrap-additions' + s.add_dependency 'rails-assets-ngInfiniteScroll' + s.add_dependency 'rails-assets-underscore' + s.add_dependency 'rails-assets-underscore.string' + s.add_dependency 'rails-assets-angularytics' + s.add_dependency 'rails-assets-jasmine-sinon' + s.add_dependency 'rails-assets-sinon' + + s.add_development_dependency "sqlite3" + s.add_development_dependency "rspec-rails" + s.add_development_dependency "spree_sample" + s.add_development_dependency "spree_auth_devise" + s.add_development_dependency "pry" +end diff --git a/spree_china_checkout/app/assets/javascripts/single_page_checkout/index.js.coffee b/spree_china_checkout/app/assets/javascripts/single_page_checkout/index.js.coffee new file mode 100644 index 00000000..fd7f9302 --- /dev/null +++ b/spree_china_checkout/app/assets/javascripts/single_page_checkout/index.js.coffee @@ -0,0 +1,10 @@ +#= require single_page_checkout/step_handler + +$ -> + ($ '#checkout').delegate 'a.previous', 'click', -> + SinglePageCheckout.StepHandler.enableStep $(this).parents('.checkout-content') + return false + + ($ '#checkout').delegate '#checkout_form_payment', 'submit', (event) -> + $(".dialog_content" ).html( $("#checkout .wait-for-payment").clone() ); + $(".u_dialog").simplemodal({appendTo:'#page-inner',closeHTML:'', escClose:true, overlayClose:true}); diff --git a/spree_china_checkout/app/assets/javascripts/single_page_checkout/index.mobile.js.coffee b/spree_china_checkout/app/assets/javascripts/single_page_checkout/index.mobile.js.coffee new file mode 100644 index 00000000..ef6cb612 --- /dev/null +++ b/spree_china_checkout/app/assets/javascripts/single_page_checkout/index.mobile.js.coffee @@ -0,0 +1,10 @@ +#= require single_page_checkout/step_handler + +$ -> + ($ '#checkout').delegate 'a.previous', 'click', -> + SinglePageCheckout.StepHandler.enableStep $(this).parents('.checkout-content') + return false + +# ($ '#checkout').delegate '#checkout_form_payment', 'submit', (event) -> +# $(".dialog_content" ).html( $("#checkout .wait-for-payment").clone() ); +# $(".u_dialog").simplemodal({appendTo:'#page-inner',closeHTML:'', escClose:true, overlayClose:true}); diff --git a/spree_china_checkout/app/assets/javascripts/single_page_checkout/step_handler.js.coffee b/spree_china_checkout/app/assets/javascripts/single_page_checkout/step_handler.js.coffee new file mode 100644 index 00000000..eb6f95ef --- /dev/null +++ b/spree_china_checkout/app/assets/javascripts/single_page_checkout/step_handler.js.coffee @@ -0,0 +1,49 @@ +window.SinglePageCheckout ||= {} + +class SinglePageCheckout.StepHandler + constructor: (@$step, @partial, @error, @previous_partials) -> + #@constructor.disableSteps ($ '.checkout-content') + + #Class Methods + @_toggleElements: ($elements, status) -> + $elements.toggleClass 'disabled-step', status + $elements.find('#checkout-summary, .errorExplanation').toggle !status + + + @disableSteps: ($elements) -> + @_toggleElements $elements, true + + @enableStep: ($element) -> + css_classes = 'current-step enabled-step disabled-step' + $element.removeClass(css_classes).addClass( 'current-step') + $element.prevAll().removeClass(css_classes).addClass('enabled-step' ) + $element.nextAll().removeClass(css_classes).addClass('disabled-step' ) + + Spree.onAddress() if $element.data('step') is 'address' + Spree.onPayment() if $element.data('step') is 'payment' + + #$element.find('.summary-wrapper').hide(); + $element.find('.form-wrapper').slideDown(300); + + $element.siblings('.disabled-step, .enabled-step').find('.form-wrapper').slideUp(300); + + + #Instance Methods + _prependError: -> + $p = ($ '

', class: 'checkout-error', text: @error) + @$step.find('form.edit_order'). + prepend $p + + _renderPartial: -> + @$step.html @partial + # support summary for step address/delivery + for own step, partial of @previous_partials + $('#checkout-summary-'+step).html( partial ); + + + replaceCheckoutStep: -> + @_renderPartial() + @_prependError() if !!@error + @constructor.enableStep @$step + + \ No newline at end of file diff --git a/spree_china_checkout/app/assets/javascripts/store/spree_china_checkout.js b/spree_china_checkout/app/assets/javascripts/store/spree_china_checkout.js index 62de012e..926f0e2a 100644 --- a/spree_china_checkout/app/assets/javascripts/store/spree_china_checkout.js +++ b/spree_china_checkout/app/assets/javascripts/store/spree_china_checkout.js @@ -1 +1,2 @@ //= require store/checkout_city +//= require single_page_checkout/index \ No newline at end of file diff --git a/spree_china_checkout/app/assets/javascripts/store/spree_china_checkout.mobile.js b/spree_china_checkout/app/assets/javascripts/store/spree_china_checkout.mobile.js new file mode 100644 index 00000000..9371a3c0 --- /dev/null +++ b/spree_china_checkout/app/assets/javascripts/store/spree_china_checkout.mobile.js @@ -0,0 +1,2 @@ +//= require store/checkout_city +//= require single_page_checkout/index.mobile diff --git a/spree_china_checkout/app/assets/stylesheets/store/spree_china_checkout.css b/spree_china_checkout/app/assets/stylesheets/store/spree_china_checkout.css index 94dbe33a..ae017691 100644 --- a/spree_china_checkout/app/assets/stylesheets/store/spree_china_checkout.css +++ b/spree_china_checkout/app/assets/stylesheets/store/spree_china_checkout.css @@ -1,3 +1,22 @@ -/* - *= require store/spree_core -*/ + +.checkout-content{ + border: 1px solid #e5e5e5; + margin: 0 0 10px 0; +} +.checkout-content h2{ + background-color: #f7f7f7; + margin: 0; + padding: 2px 10px; + } +.checkout-content .form-wrapper{ + padding:10px; + } + +.checkout-content h2 a { display: none; } +.checkout-content .summary-wrapper { padding:10px; display: none; } +.checkout-content.enabled-step .summary-wrapper{ display: block; } +.checkout-content.enabled-step h2 a { display: inline-block; } +.checkout-content.disabled-step .form-wrapper{ position: relative; display: none; } +.checkout-content.disabled-step .summary-wrapper{ position: relative; display: none; } + +#checkout .wait-for-payment { display:none; } diff --git a/spree_china_checkout/app/controllers/spree/orders_controller_decorator.rb b/spree_china_checkout/app/controllers/spree/orders_controller_decorator.rb new file mode 100644 index 00000000..f7ae6f11 --- /dev/null +++ b/spree_china_checkout/app/controllers/spree/orders_controller_decorator.rb @@ -0,0 +1,10 @@ +Spree::OrdersController.class_eval do + def show + @order = Spree::Order.find_by_number!(params[:id]) + + unless @order.complete? + redirect_to checkout_state_path( @order.state ) + end + + end +end diff --git a/spree_china_checkout/app/helpers/spree/checkout_helper_decorator.rb b/spree_china_checkout/app/helpers/spree/checkout_helper_decorator.rb new file mode 100644 index 00000000..4bf6e43e --- /dev/null +++ b/spree_china_checkout/app/helpers/spree/checkout_helper_decorator.rb @@ -0,0 +1,18 @@ +module Spree + module CheckoutHelper + + def order_states + %w{ address delivery payment confirm } + end + + def step_class state + state = 'disabled-step' unless @order.send("#{state}?") + %Q|checkout-content #{state}| + end + + def confirm? state + state == 'confirm' + end + end +end + diff --git a/spree_china_checkout/app/models/spree/address_decorator.rb b/spree_china_checkout/app/models/spree/address_decorator.rb index cf923910..f6721478 100644 --- a/spree_china_checkout/app/models/spree/address_decorator.rb +++ b/spree_china_checkout/app/models/spree/address_decorator.rb @@ -2,11 +2,11 @@ #attr_accessible :city_name, :city_id # follow state before_validation :set_city, :only=>[:city] - def self.default + def self.build_default country = Spree::Country.find(Spree::Config[:default_country_id]) rescue Spree::Country.first # add default state into default address state = country.states.first - new({:country => country,:state=>state}, :without_protection => true) + new({:country => country,:state=>state}) end @@ -14,7 +14,7 @@ def self.default private # Address.city should be present def set_city() - selected_city = Spree::City.first(:conditions=>["id=?",city_id]) + selected_city = Spree::City.where(id: city_id).first self.city = selected_city.present? ? selected_city.name : city_name end diff --git a/spree_china_checkout/app/views/spree/admin/shared/_address_form.html.erb b/spree_china_checkout/app/views/spree/admin/shared/_address_form.html.erb new file mode 100644 index 00000000..10e6478a --- /dev/null +++ b/spree_china_checkout/app/views/spree/admin/shared/_address_form.html.erb @@ -0,0 +1,60 @@ +<% s_or_b = type.chars.first %> +

+ <%= f.hidden_field :lastname, :class => '', :value=>'unused' %> +
"> + <%= f.label :firstname, Spree.t('china_address.firstname') %> + <%= f.text_field :firstname, :class => 'fullwidth' %> +
+ + <% if Spree::Config[:company] %> +
"> + <%= f.label :company, Spree.t(:company) %> + <%= f.text_field :company, :class => 'fullwidth' %> +
+ <% end %> + +
"> + <%= f.label :address1, Spree.t(:street_address) %> + <%= f.text_field :address1, :class => 'fullwidth' %> +
+ +
"> + <%= f.label :city_name, Spree.t(:city) %> + <%= f.text_field :city_name, :class => 'fullwidth' %> +
+ +
"> + <%= f.label :zipcode, Spree.t(:zip) %> + <%= f.text_field :zipcode, :class => 'fullwidth' %> +
+ +
"> + <%= f.label :country_id, Spree.t(:country) %> + + <%= f.collection_select :country_id, available_countries, :id, :name, {}, {:class => 'select2 fullwidth'} %> + +
+ +
"> + <%= f.label :state_id, Spree.t(:state) %> + + <%= f.text_field :state_name, + :style => "display: #{f.object.country.states.empty? ? 'block' : 'none' };", + :disabled => !f.object.country.states.empty?, :class => 'fullwidth state_name' %> + <%= f.collection_select :state_id, f.object.country.states.sort, :id, :name, {:include_blank => true}, {:class => 'select2 fullwidth', :style => "display: #{f.object.country.states.empty? ? 'none' : 'block' };", :disabled => f.object.country.states.empty?} %> + +
+ +
"> + <%= f.label :phone, Spree.t(:phone) %> + <%= f.phone_field :phone, :class => 'fullwidth' %> +
+
+ +<% content_for :head do %> + <%= javascript_tag do -%> + $(document).ready(function(){ + $('span#<%= s_or_b %>country .select2').on('change', function() { update_state('<%= s_or_b %>'); }); + }); + <% end -%> +<% end %> diff --git a/spree_china_checkout/app/views/spree/checkout/_address.html.erb b/spree_china_checkout/app/views/spree/checkout/_address.html.erb index d45639b3..eca7e7bc 100644 --- a/spree_china_checkout/app/views/spree/checkout/_address.html.erb +++ b/spree_china_checkout/app/views/spree/checkout/_address.html.erb @@ -1,113 +1,19 @@ -<% - #copy from spree_core/app/view/spree/checkout/_address.html.erb - #override it for china address requirement. -%> +

<%= Spree.t("shipping_address") %>

-
- <%= form.fields_for :bill_address do |bill_form| %> - <%= t(:shipping_address) %> -
-

- <%= bill_form.label :firstname, t('china_address.firstname') %>*
- <%= bill_form.text_field :firstname, :class => 'required' %> -

- -

- <%= bill_form.label :phone, t('china_address.phone') %>*
- <%= bill_form.phone_field :phone, :class => 'required' %> -

- <% if Spree::Config[:company] %> -

- <%= bill_form.label :company, t(:company) %>
- <%= bill_form.text_field :company %> -

- <% end %> + <%= form.fields_for :bill_address do |bill_form| %> + <%= render :partial => 'spree/address/form', :locals => { :form => bill_form, :address_type => 'billing', :address => @order.bill_address } %> + <% end %> - -

- - <% have_states = !@order.bill_address.country.states.empty? %> - <%= bill_form.label :state, t('china_address.state') %>*
- <% state_elements = [ - bill_form.collection_select(:state_id, @order.bill_address.country.states, - :id, :name, - {:class => have_states ? 'required' : 'hidden', - :disabled => !have_states}) + - bill_form.text_field(:state_name, - :class => !have_states ? 'required' : 'hidden', - :disabled => have_states) - ].join.gsub('"', "'").gsub("\n", "") - %> - <%= javascript_tag do -%> - document.write("<%== state_elements %>"); - <% end -%> -
- - - <% have_cities = !@order.bill_address.state.cities.empty? %> - <% city_elements = [ - bill_form.collection_select(:city_id, @order.bill_address.state.cities, - :id, :name, - {:class => have_cities ? 'required' : 'hidden', - :disabled => !have_cities}) + - bill_form.text_field(:city_name, - :class => !have_cities ? 'required' : 'hidden', - :disabled => have_cities) - ].join.gsub('"', "'").gsub("\n", "") - %> - <%= javascript_tag do -%> - document.write("<%== city_elements %>"); - <% end -%> - - -

-

- <%= bill_form.label :address1, t(:street_address) %>*
- <%= bill_form.text_field :address1, :class => 'required' %> -

+ <%= hidden_field_tag 'order[use_billing]', '1' %> + <% if try_spree_current_user.respond_to?(:persist_order_address) %> + <%= hidden_field_tag 'save_user_address', '1' %> + <% end %> -

- <%= bill_form.label :zipcode, t(:zip) %>*
- <%= bill_form.text_field :zipcode, :class => 'required' %> -

- <% if Spree::Config[:alternative_billing_phone] %> -

- <%= bill_form.label :alternative_phone, t(:alternative_phone) %>
- <%= bill_form.phone_field :alternative_phone %> -

- <% end %> +
+ <%= form.button Spree.t(:save_and_continue), :class => 'continue button primary' %>
- <% end %> -
-
- -
-
- <%= submit_tag t(:save_and_continue), :class => 'continue button primary' %>
+ diff --git a/spree_china_checkout/app/views/spree/checkout/_address_bootstrap.html b/spree_china_checkout/app/views/spree/checkout/_address_bootstrap.html new file mode 100644 index 00000000..75a7ec16 --- /dev/null +++ b/spree_china_checkout/app/views/spree/checkout/_address_bootstrap.html @@ -0,0 +1,18 @@ +

<%= Spree.t("shipping_address") %>

+ +
+ <%= form.fields_for :bill_address do |bill_form| %> + <%= render :partial => 'spree/address/form_bootstrap', :locals => { :form => bill_form, :address_type => 'billing', :address => @order.bill_address } %> + <% end %> + + <%= hidden_field_tag 'order[use_billing]', '1' %> + <% if try_spree_current_user.respond_to?(:persist_order_address) %> + <%= hidden_field_tag 'save_user_address', '1' %> + <% end %> + + +
+ <%= form.button Spree.t(:save_and_continue), :class => 'continue button primary' %> +
+ +
diff --git a/spree_china_checkout/app/views/spree/checkout/_address_summary.html.erb b/spree_china_checkout/app/views/spree/checkout/_address_summary.html.erb new file mode 100644 index 00000000..e7ea82ef --- /dev/null +++ b/spree_china_checkout/app/views/spree/checkout/_address_summary.html.erb @@ -0,0 +1,29 @@ +<% address = order.ship_address %> +
+ <%= address.firstname %> + <% unless address.company.blank? %> + + <%= address.company %> + + <% end %> + + + <%= address.state.name %> <%= address.city %> + <%= address.address1 %> + <%= address.zipcode %> + + + + <% unless address.phone.blank? %> + + <%= Spree.t(:phone) %> + <%= address.phone %> + + <% end %> + <% unless address.alternative_phone.blank? %> + + <%= Spree.t(:alternative_phone) %> + <%= address.alternative_phone %> + + <% end %> +
diff --git a/spree_china_checkout/app/views/spree/checkout/_delivery.html.erb b/spree_china_checkout/app/views/spree/checkout/_delivery.html.erb new file mode 100644 index 00000000..d8a91e4f --- /dev/null +++ b/spree_china_checkout/app/views/spree/checkout/_delivery.html.erb @@ -0,0 +1,98 @@ +
+
+ <%= form.fields_for :shipments do |ship_form| %> + +
+

+ <%= Spree.t(:package_from) %> + <%= ship_form.object.stock_location.name %> +

+ + + + + + + + + + + + + + + + + + <% ship_form.object.manifest.each do |item| %> + + + + + + + + <% end %> + +
<%= Spree.t(:item) %><%= Spree.t(:price) %><%= Spree.t(:qty) %><%= Spree.t(:total) %>
<%= mini_image(item.variant) %><%= item.variant.name %><%= display_price(item.variant) %><%= item.quantity %><%= item.line_item.display_amount.to_html %>
+ +
<%= Spree.t(:shipping_method) %>
+
    + <% ship_form.object.shipping_rates.each do |rate| %> +
  • + +
  • + <% end %> +
+
+ + <% end %> + + <% if @differentiator.try(:missing?) %> +
+

+ <%= Spree.t(:unshippable_items) %> +

+ + + + + + + + + + + + + + + <% @differentiator.missing.each do |variant, quantity| %> + + + + + + + <% end %> + +
<%= Spree.t(:item) %><%= Spree.t(:qty) %><%= Spree.t(:price) %>
<%= mini_image(variant) %><%= variant.name %><%= quantity %><%= display_price(variant) %>
+
+ <% end %> + +
+ <% if Spree::Config[:shipping_instructions] %> +

+ <%= form.label :special_instructions, Spree.t(:shipping_instructions) %>
+ <%= form.text_area :special_instructions, :cols => 40, :rows => 7 %> +

+ <% end %> +
+ +
+ <%= form.button Spree.t(:save_and_continue), :class => 'continue button primary' %> +
diff --git a/spree_china_checkout/app/views/spree/checkout/_delivery_bootstrap.html b/spree_china_checkout/app/views/spree/checkout/_delivery_bootstrap.html new file mode 100644 index 00000000..f5d65d35 --- /dev/null +++ b/spree_china_checkout/app/views/spree/checkout/_delivery_bootstrap.html @@ -0,0 +1,98 @@ +
+
+ <%= form.fields_for :shipments do |ship_form| %> + +
+

+ <%= Spree.t(:package_from) %> + <%= ship_form.object.stock_location.name %> +

+ + + + + + + + + + + + + + + + + + <% ship_form.object.manifest.each do |item| %> + + + + + + + + <% end %> + +
<%= Spree.t(:item) %><%= Spree.t(:price) %><%= Spree.t(:qty) %><%= Spree.t(:total) %>
<%= mini_image(item.variant) %><%= item.variant.name %><%= display_price(item.variant) %><%= item.quantity %><%= item.line_item.display_amount.to_html %>
+ +
<%= Spree.t(:shipping_method) %>
+
    + <% ship_form.object.shipping_rates.each do |rate| %> +
  • + +
  • + <% end %> +
+
+ + <% end %> + + <% if @differentiator.try(:missing?) %> +
+

+ <%= Spree.t(:unshippable_items) %> +

+ + + + + + + + + + + + + + + <% @differentiator.missing.each do |variant, quantity| %> + + + + + + + <% end %> + +
<%= Spree.t(:item) %><%= Spree.t(:qty) %><%= Spree.t(:price) %>
<%= mini_image(variant) %><%= variant.name %><%= quantity %><%= display_price(variant) %>
+
+ <% end %> + +
+ <% if Spree::Config[:shipping_instructions] %> +

+ <%= form.label :special_instructions, Spree.t(:shipping_instructions) %>
+ <%= form.text_area :special_instructions, :cols => 40, :rows => 7 %> +

+ <% end %> +
+ +
+ <%= form.button Spree.t(:save_and_continue), :class => 'continue button primary' %> +
diff --git a/spree_china_checkout/app/views/spree/checkout/_delivery_summary.html.erb b/spree_china_checkout/app/views/spree/checkout/_delivery_summary.html.erb new file mode 100644 index 00000000..4f83616a --- /dev/null +++ b/spree_china_checkout/app/views/spree/checkout/_delivery_summary.html.erb @@ -0,0 +1,62 @@ +<% # copy from order_items + order = @order +%> + + + + + + + + + + + + + + + + + + <% order.line_items.each do |item| %> + + + + + + + + <% end %> + + + + + + + + + + + + + + + + + <% order.shipments.group_by { |s| s.selected_shipping_rate.name }.each do |name, shipments| %> + + + + + <% end %> + +
<%= Spree.t(:item) %><%= Spree.t(:price) %><%= Spree.t(:qty) %><%= Spree.t(:total) %>
+ <% if item.variant.images.length == 0 %> + <%= link_to small_image(item.variant.product), item.variant.product %> + <% else %> + <%= link_to image_tag(item.variant.images.first.attachment.url(:mini)), item.variant.product %> + <% end %> + +

<%= item.variant.product.name %>

+ <%= "(" + item.variant.options_text + ")" unless item.variant.option_values.empty? %> +
<%= item.single_money.to_html %><%= item.quantity %><%= item.display_amount.to_html %>
<%= Spree.t(:order_total) %>:<%= order.display_total.to_html %>
<%= Spree.t(:subtotal) %>:<%= order.display_item_total.to_html %>
<%= Spree.t(:shipping) %>: <%= name %><%= Spree::Money.new(shipments.sum(&:discounted_cost), currency: order.currency).to_html %>
diff --git a/spree_china_checkout/app/views/spree/checkout/_form_wrapper.html.erb b/spree_china_checkout/app/views/spree/checkout/_form_wrapper.html.erb new file mode 100644 index 00000000..1ffc39cc --- /dev/null +++ b/spree_china_checkout/app/views/spree/checkout/_form_wrapper.html.erb @@ -0,0 +1,26 @@ +<% # do not support confirm anymore + + form_html_options = { :id => "checkout_form_#{state}", :class=>"single_page_edit_order" } + form_html_options[:target] = '_blank' if state == 'payment' +%> + + +

<%= Spree.t("order_state.#{state}") %> + <%= link_to Spree.t(:edit), checkout_state_path(state), class: 'previous' %> +

+
+
+ <%= render :partial => 'spree/shared/error_messages', :locals => { :target => order } %> + <% # override default form class :edit_order with :single_page_edit_order, disableSaveOnClick cause button disabled even form validation failure %> + <%= form_for order, :url => update_checkout_path(state), :remote => (state != 'payment'), :html => form_html_options do |form| %> + <%= render state, :form => form %> + <% end %> +
+ +
+
+ <% if order.passed_checkout_step? state %> + <%= render :partial => "#{state}_summary", :locals => { :order => order } %> + <% end %> +
+ diff --git a/spree_china_checkout/app/views/spree/checkout/_form_wrapper_bootstrap.html b/spree_china_checkout/app/views/spree/checkout/_form_wrapper_bootstrap.html new file mode 100644 index 00000000..a1f83f8b --- /dev/null +++ b/spree_china_checkout/app/views/spree/checkout/_form_wrapper_bootstrap.html @@ -0,0 +1,24 @@ +<% # do not support confirm anymore + # do not open new window for mobile terminal. + form_html_options = { :id => "checkout_form_#{state}", :class=>"single_page_edit_order" } +%> + + +
<%= Spree.t("order_state.#{state}") %> + <%= link_to Spree.t(:edit), checkout_state_path(state), class: 'previous' %> +
+
+
+ <%= render :partial => 'spree/shared/error_messages', :locals => { :target => order } %> + <% # override default form class :edit_order with :single_page_edit_order, disableSaveOnClick cause button disabled even form validation failure %> + <%= form_for order, :url => update_checkout_path(state), :remote => (state != 'payment'), :html => form_html_options do |form| %> + <%= render "#{state}_bootstrap", :form => form %> + <% end %> +
+ +
+
+ <% if order.passed_checkout_step? state %> + <%= render :partial => "#{state}_summary", :locals => { :order => order } %> + <% end %> +
diff --git a/spree_china_checkout/app/views/spree/checkout/_payment.html.erb b/spree_china_checkout/app/views/spree/checkout/_payment.html.erb new file mode 100644 index 00000000..18a09bed --- /dev/null +++ b/spree_china_checkout/app/views/spree/checkout/_payment.html.erb @@ -0,0 +1,64 @@ + +
+ + <% if @payment_sources.present? %> +
+ <%= radio_button_tag 'use_existing_card', 'yes', true %> + +
+ <%= radio_button_tag 'use_existing_card', 'no' %> + +
+ +
+

+ + + <% @payment_sources.each do |card| %> + + + + + + + + <% end %> + +
<%= card.name %><%= card.display_number %><%= card.month %><%= card.year %> + <%= radio_button_tag "order[existing_card]", card.id, (card == @payment_sources.first), { class: "existing-cc-radio" } %> +
+

+
+ <% end %> + +
+ <% @order.available_payment_methods.each do |method| %> +

+ +

+ <% end %> +
+ +
    + <% @order.available_payment_methods.each do |method| %> +
  • +
    + <%= render :partial => "spree/checkout/payment/#{method.method_type}", :locals => { :payment_method => method } %> +
    +
  • + <% end %> +
+
+

+ <%= form.label :coupon_code %>
+ <%= form.text_field :coupon_code %> +

+
+ +
+ <%= form.button Spree.t(:pay), :class => 'continue button primary' %> + +
diff --git a/spree_china_checkout/app/views/spree/checkout/_payment_bootstrap.html b/spree_china_checkout/app/views/spree/checkout/_payment_bootstrap.html new file mode 100644 index 00000000..b8f6e0bd --- /dev/null +++ b/spree_china_checkout/app/views/spree/checkout/_payment_bootstrap.html @@ -0,0 +1,64 @@ + +
+ + <% if @payment_sources.present? %> +
+ <%= radio_button_tag 'use_existing_card', 'yes', true %> + +
+ <%= radio_button_tag 'use_existing_card', 'no' %> + +
+ +
+

+ + + <% @payment_sources.each do |card| %> + + + + + + + + <% end %> + +
<%= card.name %><%= card.display_number %><%= card.month %><%= card.year %> + <%= radio_button_tag "order[existing_card]", card.id, (card == @payment_sources.first), { class: "existing-cc-radio" } %> +
+

+
+ <% end %> + +
+ <% @order.available_payment_methods.each do |method| %> +

+ +

+ <% end %> +
+ +
    + <% @order.available_payment_methods.each do |method| %> +
  • +
    + <%= render :partial => "spree/checkout/payment/#{method.method_type}", :locals => { :payment_method => method } %> +
    +
  • + <% end %> +
+
+

+ <%= form.label :coupon_code %>
+ <%= form.text_field :coupon_code %> +

+
+ +
+ <%= form.button Spree.t(:pay), :class => 'continue button primary' %> + +
diff --git a/spree_china_checkout/app/views/spree/checkout/_summary.html.erb b/spree_china_checkout/app/views/spree/checkout/_summary.html.erb new file mode 100644 index 00000000..a7bc8b61 --- /dev/null +++ b/spree_china_checkout/app/views/spree/checkout/_summary.html.erb @@ -0,0 +1,65 @@ +

<%= Spree.t(:order_summary) %>

+ + + + + + + + + <% if order.line_item_adjustments.nonzero.exists? %> + + <% order.line_item_adjustments.nonzero.promotion.eligible.group_by(&:label).each do |label, adjustments| %> + + + + + <% end %> + + <% end %> + + + <% order.all_adjustments.nonzero.tax.eligible.group_by(&:label).each do |label, adjustments| %> + + + + + <% end %> + + + <% if order.passed_checkout_step?("delivery") && order.shipments.any? %> + + + + + + <% if order.shipment_adjustments.nonzero.exists? %> + + <% order.shipment_adjustments.nonzero.promotion.eligible.group_by(&:label).each do |label, adjustments| %> + + + + + <% end %> + + <% end %> + <% end %> + + <% if order.adjustments.nonzero.eligible.exists? %> + + <% order.adjustments.nonzero.eligible.each do |adjustment| %> + <% next if (adjustment.source_type == 'Spree::TaxRate') and (adjustment.amount == 0) %> + + + + + <% end %> + + <% end %> + + + + + + +
<%= Spree.t(:item_total) %>:<%= order.display_item_total.to_html %>
<%= label %><%= Spree::Money.new(adjustments.sum(&:amount), currency: order.currency).to_html %>
<%= label %><%= Spree::Money.new(adjustments.sum(&:amount), currency: order.currency).to_html %>
<%= Spree.t(:shipping_total) %>:<%= Spree::Money.new(order.shipments.to_a.sum(&:cost), currency: order.currency).to_html %>
<%= label %>:<%= Spree::Money.new(adjustments.sum(&:amount), currency: order.currency).to_html %>
<%= adjustment.label %>:<%= adjustment.display_amount.to_html %>
<%= Spree.t(:order_total) %>:<%= order.display_total.to_html %>
diff --git a/spree_china_checkout/app/views/spree/checkout/_wait_for_payment.html.erb b/spree_china_checkout/app/views/spree/checkout/_wait_for_payment.html.erb new file mode 100644 index 00000000..cdeadb10 --- /dev/null +++ b/spree_china_checkout/app/views/spree/checkout/_wait_for_payment.html.erb @@ -0,0 +1,11 @@ +
+

请您在新打开的页面上完成付款。

+

付款完成前请不要关闭此窗口。
完成付款后请根据您的情况点击下面的按钮:

+

+ <%= form_for @order, :url => spree.order_path( @order ), html: {method: :get} do |form| %> + <%= form.button "已完成付款" %> + + <% end %> +

+

返回选择其他支付方式

+
diff --git a/spree_china_checkout/app/views/spree/checkout/edit.html.erb b/spree_china_checkout/app/views/spree/checkout/edit.html.erb new file mode 100644 index 00000000..0e9e7408 --- /dev/null +++ b/spree_china_checkout/app/views/spree/checkout/edit.html.erb @@ -0,0 +1,15 @@ +
+ <% @order.checkout_steps[0...-1].each do |state| %> +
+ <%= render :partial => ( @client_info.is_mobile ? 'form_wrapper_bootstrap' : 'form_wrapper'), :locals => { :order => @order, :state => state } %> +
+ <% end %> + + <%= render partial: 'wait_for_payment' %> + +
+ + diff --git a/spree_china_checkout/app/views/spree/checkout/edit.js.coffee b/spree_china_checkout/app/views/spree/checkout/edit.js.coffee new file mode 100644 index 00000000..c55f9ce5 --- /dev/null +++ b/spree_china_checkout/app/views/spree/checkout/edit.js.coffee @@ -0,0 +1,20 @@ +# add feature, show address/delivery summary + +previous_partials = {} +<% checkout_step_index = @order.checkout_step_index(@order.state) %> +<% if checkout_step_index >0 %> + <% last_step = @order.checkout_steps[checkout_step_index-1] %> +previous_partials.<%= last_step%> = "<%=j( render :partial => "#{last_step}_summary", :format => :html, :locals => { :state => last_step, :order => @order } ) %>" +<% end %> +partial = "<%=j render :partial => (@client_info.is_mobile ? 'form_wrapper_bootstrap':'form_wrapper'), :format => :html, :locals => { :state => @order.state, :order => @order } %>" +$step = ($ '#checkout_<%= @order.state %>') +error = "<%= flash[:error] %>" + +stepHandler = new SinglePageCheckout.StepHandler $step, partial, error, previous_partials +stepHandler.replaceCheckoutStep() + +$step.find('button.previous').click (event)-> + SinglePageCheckout.StepHandler.enableStep $step.prev() + +# if order.complete? redirect_to thankyou page, ex. pay by check +# if payment is alipay, spree_alipay should support ajax? diff --git a/spree_china_checkout/app/views/spree/shared/_order_details.html.erb b/spree_china_checkout/app/views/spree/shared/_order_details.html.erb deleted file mode 100644 index 23d2c2ae..00000000 --- a/spree_china_checkout/app/views/spree/shared/_order_details.html.erb +++ /dev/null @@ -1,103 +0,0 @@ -<% # @theme - show order detail - # copy from spree/core/app/views/shared/_order_details.html.erb - # just removed bill_address -%> -
-
- <% if order.has_step?("address") %> -
<%= Spree.t(:shipping_address) %> <%= link_to "(#{Spree.t(:edit)})", checkout_state_path(:address) unless @order.completed? %>
-
- <%= render :partial => 'spree/shared/address', :locals => { :address => order.ship_address } %> -
- - <% if @order.has_step?("delivery") %> -
<%= Spree.t(:shipping_method) %> <%= link_to "(#{Spree.t(:edit)})", checkout_state_path(:delivery) unless @order.completed? %>
-
- <% order.shipments.each do |shipment| %> -
- <%= shipment.stock_location.name %> - <%= shipment.shipping_method.name %> -
- <% end %> -
- <% end %> - <% end %> - -
<%= Spree.t(:payment_information) %> <%= link_to "(#{Spree.t(:edit)})", checkout_state_path(:payment) unless @order.completed? %>
-
- <% order.payments.valid.each do |payment| %> -
<%= render payment%>
- <% end %> -
-
-
- - - - - - - - - - - - - - - - - - - <% @order.line_items.each do |item| %> - - - - - - - - <% end %> - - - - - - - - <% if order.price_adjustment_totals.present? %> - - <% @order.price_adjustment_totals.keys.each do |key| %> - - - - - <% end %> - - <% end %> - - - - - - - - <% @order.adjustments.eligible.each do |adjustment| %> - <% next if (adjustment.originator_type == 'Spree::TaxRate') and (adjustment.amount == 0) %> - - - - - <% end %> - -
<%= Spree.t(:item) %><%= Spree.t(:price) %><%= Spree.t(:qty) %><%= Spree.t(:total) %>
- <% if item.variant.images.length == 0 %> - <%= link_to small_image(item.variant.product), item.variant.product %> - <% else %> - <%= link_to image_tag(item.variant.images.first.attachment.url(:small)), item.variant.product %> - <% end %> - -

<%= item.variant.product.name %>

- <%= truncated_product_description(item.variant.product) %> - <%= "(" + variant_options(item.variant) + ")" unless item.variant .option_values.empty? %> -
<%= money item.price %><%= item.quantity %><%= money(item.price * item.quantity) %>
<%= Spree.t(:order_total) %>:<%= money @order.total %>
<%= key %><%= money @order.price_adjustment_totals[key] %>
<%= Spree.t(:subtotal) %>:<%= money @order.item_total %>
<%= adjustment.label %><%= money adjustment.amount %>
diff --git a/spree_china_checkout/config/routes.rb b/spree_china_checkout/config/routes.rb index 035c005e..9cd99f44 100644 --- a/spree_china_checkout/config/routes.rb +++ b/spree_china_checkout/config/routes.rb @@ -1,4 +1,5 @@ Spree::Core::Engine.routes.draw do + # Add your extension routes here namespace :api, :defaults => { :format => 'json' } do resources :cities, :only => :index diff --git a/spree_comments/app/models/spree/order_decorator.rb b/spree_comments/app/models/spree/order_decorator.rb deleted file mode 100644 index 774cfb4a..00000000 --- a/spree_comments/app/models/spree/order_decorator.rb +++ /dev/null @@ -1,3 +0,0 @@ -Spree::Order.class_eval do - acts_as_commentable -end \ No newline at end of file diff --git a/spree_comments/app/models/spree/shipment_decorator.rb b/spree_comments/app/models/spree/shipment_decorator.rb deleted file mode 100644 index 2aa0a3bb..00000000 --- a/spree_comments/app/models/spree/shipment_decorator.rb +++ /dev/null @@ -1,3 +0,0 @@ -Spree::Shipment.class_eval do - acts_as_commentable -end \ No newline at end of file diff --git a/spree_comments/app/models/spree/site_decorator.rb b/spree_comments/app/models/spree/site_decorator.rb deleted file mode 100644 index 1b327bcb..00000000 --- a/spree_comments/app/models/spree/site_decorator.rb +++ /dev/null @@ -1,3 +0,0 @@ -Spree::Site.class_eval do - acts_as_commentable -end \ No newline at end of file diff --git a/spree_comments/app/models/spree/template_theme_decorator.rb b/spree_comments/app/models/spree/template_theme_decorator.rb deleted file mode 100644 index 8beb6b0f..00000000 --- a/spree_comments/app/models/spree/template_theme_decorator.rb +++ /dev/null @@ -1,3 +0,0 @@ -Spree::TemplateTheme.class_eval do - acts_as_commentable -end \ No newline at end of file diff --git a/spree_comments/app/views/spree/admin/comment_types/index.html.erb b/spree_comments/app/views/spree/admin/comment_types/index.html.erb deleted file mode 100644 index 9daf5051..00000000 --- a/spree_comments/app/views/spree/admin/comment_types/index.html.erb +++ /dev/null @@ -1,40 +0,0 @@ -<%= render :partial => 'spree/admin/shared/configuration_menu' %> - -<% content_for :page_title do %> - <%= Spree.t(:comment_types) %> -<% end %> - -<% content_for :page_actions do %> -
  • - <%= button_link_to Spree.t(:new_comment_type), new_object_url, :icon => 'icon-plus', :id => 'admin_new_comment_type_link' %> -
  • -<% end %> - - - - - - - - - - - - - - - - <% @comment_types.each do |comment_type| %> - - - - - - - <% end %> - -
    <%= Spree.t(:name) %><%= Spree.t(:applies_to) %>
    <%= comment_type.name %><%= comment_type.applies_to %> - <%= link_to_edit comment_type, :no_text => true %> - <%= link_to_delete comment_type, :no_text => true %> -
    - diff --git a/spree_comments/app/views/spree/admin/comment_types/new.html.erb b/spree_comments/app/views/spree/admin/comment_types/new.html.erb deleted file mode 100644 index 41c5f088..00000000 --- a/spree_comments/app/views/spree/admin/comment_types/new.html.erb +++ /dev/null @@ -1,22 +0,0 @@ -<%= render :partial => 'spree/admin/shared/configuration_menu' %> - -<% content_for :page_title do %> - <%= Spree.t(:new_comment_type) %> -<% end %> - -<% content_for :page_actions do %> -
  • - <%= button_link_to Spree.t(:back_to_comment_types_list), admin_comment_types_path, :icon => 'icon-arrow-left' %> -
  • -<% end %> - -<%= render :partial => 'spree/shared/error_messages', :locals => { :target => @comment_type } %> - -<%= form_for(:comment_type, :url => collection_url) do |f| %> -
    - <%= render :partial => 'form', :locals => { :f => f } %> -
    - <%= button Spree.t(:create), 'icon-ok' %> -
    -
    -<% end %> diff --git a/spree_essential_blog/app/assets/javascripts/store/spree_essential_blog.js b/spree_essential_blog/app/assets/javascripts/store/spree_essential_blog.js index d10fba7f..fa0a16ee 100644 --- a/spree_essential_blog/app/assets/javascripts/store/spree_essential_blog.js +++ b/spree_essential_blog/app/assets/javascripts/store/spree_essential_blog.js @@ -1 +1 @@ -//= require store/spree_frontend +//= require spree/frontend diff --git a/spree_essential_blog/app/controllers/spree/blogs/admin/post_files_controller.rb b/spree_essential_blog/app/controllers/spree/blogs/admin/post_files_controller.rb new file mode 100644 index 00000000..b4ec5064 --- /dev/null +++ b/spree_essential_blog/app/controllers/spree/blogs/admin/post_files_controller.rb @@ -0,0 +1,27 @@ +class Spree::Blogs::Admin::PostFilesController < Spree::Admin::ResourceController + + before_filter :load_data + + create.before :set_viewable + update.before :set_viewable + destroy.before :destroy_before + + private + + def location_after_save + admin_post_files_url(@post) + end + + def load_data + @post = Spree::Post.find_by_permalink!(params[:post_id]) + end + + def set_viewable + @post_file.viewable = @post + end + + def destroy_before + @viewable = @post_file.viewable + end + +end diff --git a/spree_essential_blog/app/controllers/spree/blogs/admin/post_images_controller.rb b/spree_essential_blog/app/controllers/spree/blogs/admin/post_images_controller.rb deleted file mode 100644 index 683c7c73..00000000 --- a/spree_essential_blog/app/controllers/spree/blogs/admin/post_images_controller.rb +++ /dev/null @@ -1,37 +0,0 @@ -class Spree::Blogs::Admin::PostImagesController < Spree::Admin::ResourceController - - before_filter :load_data - - create.before :set_viewable - update.before :set_viewable - destroy.before :destroy_before - - def update_positions - params[:positions].each do |id, index| - Spree::PostImage.update_all(['position=?', index], ['id=?', id]) - end - - respond_to do |format| - format.js { render :text => 'Ok' } - end - end - - private - - def location_after_save - admin_post_images_url(@post) - end - - def load_data - @post = Spree::Post.find_by_path(params[:post_id]) - end - - def set_viewable - @post_image.viewable = @post - end - - def destroy_before - @viewable = @post_image.viewable - end - -end \ No newline at end of file diff --git a/spree_essential_blog/app/controllers/spree/blogs/admin/posts_controller.rb b/spree_essential_blog/app/controllers/spree/blogs/admin/posts_controller.rb index c4bd3ac0..3769a172 100644 --- a/spree_essential_blog/app/controllers/spree/blogs/admin/posts_controller.rb +++ b/spree_essential_blog/app/controllers/spree/blogs/admin/posts_controller.rb @@ -2,6 +2,11 @@ class Spree::Blogs::Admin::PostsController < Spree::Admin::ResourceController update.before :set_category_ids + def index + session[:return_to] = request.url + respond_with(@collection) + end + def new @post = Spree::Post.new @post.posted_at ||= Time.now @@ -16,7 +21,8 @@ def set_category_ids end def location_after_save - admin_posts_url + #in this way keep current page of posts after save. + session[:return_to] || admin_posts_url end def find_resource diff --git a/spree_essential_blog/app/helpers/spree/admin/spree_essentials_helper.rb b/spree_essential_blog/app/helpers/spree/admin/spree_essentials_helper.rb index 5c921c2a..7d80c9ec 100644 --- a/spree_essential_blog/app/helpers/spree/admin/spree_essentials_helper.rb +++ b/spree_essential_blog/app/helpers/spree/admin/spree_essentials_helper.rb @@ -10,6 +10,16 @@ def contents_tab end end + def mini_cover( post ) + options = {:alt=> 'post mini image'} + if post.cover.present? + image_tag post.cover.url(:mini), options + else + image_tag "noimage/mini.png", options + end + + end + private def extension_routes diff --git a/spree_essential_blog/app/models/spree/blog.rb b/spree_essential_blog/app/models/spree/blog.rb index 9b55422a..5b7c6a73 100644 --- a/spree_essential_blog/app/models/spree/blog.rb +++ b/spree_essential_blog/app/models/spree/blog.rb @@ -3,10 +3,10 @@ class Spree::Blog < ActiveRecord::Base #attr_accessible :name, :permalink has_many :posts, :class_name => "Spree::Post", :dependent => :destroy - has_many :categories, :through => :posts, :source => :post_categories, :uniq => true + has_many :categories, :through => :posts, :source => :post_categories validates :name, :presence => true - validates :permalink, :uniqueness => true, :format => { :with => /^[a-z0-9\-\_\/]+$/i }, :length => { :within => 3..40 } + validates :permalink, :uniqueness => true, :format => { :with => /\A[a-z0-9\-\_\/]+\z/i }, :length => { :within => 3..40 } before_validation :normalize_permalink diff --git a/spree_essential_blog/app/models/spree/post.rb b/spree_essential_blog/app/models/spree/post.rb index 5f2655dd..d08b8554 100644 --- a/spree_essential_blog/app/models/spree/post.rb +++ b/spree_essential_blog/app/models/spree/post.rb @@ -1,39 +1,50 @@ module Spree class Post < ActiveRecord::Base - #attr_accessible :title, :cover, :teaser, :body, :posted_at, :author, :live, :tag_list, :taxon_ids, :product_ids_string - + acts_as_taggable - - # for flash messages + + # for flash messages alias_attribute :name, :title - - has_and_belongs_to_many :taxons, :join_table => "spree_posts_taxons", :class_name => "Spree::Taxon" + + has_many :post_classifications, dependent: :delete_all, inverse_of: :post + has_many :taxons, through: :post_classifications + #has_and_belongs_to_many :taxons, :join_table => "spree_posts_taxons", :class_name => "Spree::Taxon" alias_attribute :categories, :taxons - + #belongs_to :blog, :class_name => "Spree::Taxon" #has_many :taxons, :dependent => :destroy has_many :products, :through => :post_products - + has_many :files, :as => :viewable, :class_name => "Spree::PostFile", :dependent => :destroy + #validates :blog_id, :title, :presence => true validates :permalink, :presence => true, :uniqueness =>{ :scope=>:site_id }, :if => proc{ |record| !record.title.blank? } validates :body, :presence => true validates :posted_at, :datetime => true + #has_attached_file :cover, + # styles: { small: '180x120>', normal: '280x190>', big: '670x370>'}, + # default_style: :normal, + # url: '/spree/posts/:id/:style/:basename.:extension', + # path: ':rails_root/public/spree/posts/:id/:style/:basename.:extension', + # default_url: '/assets/default_post.png' has_attached_file :cover, - styles: { small: '180x120>', normal: '280x190>', big: '670x370>'}, - default_style: :normal, - url: '/spree/posts/:id/:style/:basename.:extension', - path: ':rails_root/public/spree/posts/:id/:style/:basename.:extension', + styles: { :mini => '60x60>', small: '180x120>', medium: '280x190>', large: '670x370>'}, + default_style: :mini, + url: '/shops/:rails_env/:site/posts/:id/:basename_:style.:extension', + path: ':rails_root/public/shops/:rails_env/:site/posts/:id/:basename_:style.:extension', default_url: '/assets/default_post.png' - + + validates_attachment :cover, + content_type: { content_type: ["image/jpg", "image/jpeg", "image/png", "image/gif"] } + scope :ordered, -> { order("posted_at DESC") } scope :future, -> { where("posted_at > ?", Time.now).order("posted_at ASC") } scope :past, -> { where("posted_at <= ?", Time.now).ordered } scope :live, -> { where(:live => true ) } - + make_permalink - + # add search related cattr_accessor :searcher_class do SpreeEssentialBlog::Search @@ -41,7 +52,7 @@ class Post < ActiveRecord::Base cattr_accessor :search_scopes do [] end - + def self.add_search_scope(name, &block) self.singleton_class.send(:define_method, name.to_sym, &block) search_scopes << name.to_sym @@ -54,56 +65,61 @@ def self.add_search_scope(name, &block) where( Taxon.table_name => { :id => taxon.self_and_descendants.pluck(:id) }) ) end - # end search - + # end search + # Creates date-part accessors for the posted_at timestamp for grouping purposes. %w(day month year).each do |method| define_method method do self.posted_at.send(method) end end - - # all post belongs to taxon which context is blog, in this way, we cuold list all post of website. ex. page blogs list recent posts + + # all post belongs to taxon which context is blog, in this way, we cuold list all post of website. ex. page blogs list recent posts def taxon - + end - + alias_method :blog, :taxon - + + def summary( truncate_at=100) + #copy from Action View Sanitize Helpers + HTML::FullSanitizer.new.sanitize( body ).truncate( truncate_at ) + end + def rendered_preview preview = body.split("")[0] render(preview) end - + def rendered_body render(body.gsub("", "")) end - + def preview_image - images.first if has_images? + images.first if has_images? end - + def has_images? images && !images.empty? end - - + + def live? live && live == true end - + def product_ids_string product_ids.join(',') end - + def product_ids_string=(s) self.product_ids = s.to_s.split(',').map(&:strip) end - + def to_param permalink.present? ? permalink : (permalink_was || title.to_s.to_url) end end - -end \ No newline at end of file + +end diff --git a/spree_essential_blog/app/models/spree/post_classification.rb b/spree_essential_blog/app/models/spree/post_classification.rb index a532c2bf..d5c4777a 100644 --- a/spree_essential_blog/app/models/spree/post_classification.rb +++ b/spree_essential_blog/app/models/spree/post_classification.rb @@ -2,8 +2,9 @@ module Spree class PostClassification < ActiveRecord::Base self.table_name = 'spree_posts_taxons' - belongs_to :post, class_name: "Spree::Post" - belongs_to :taxon, class_name: "Spree::Taxon" + acts_as_list scope: :taxon + belongs_to :post, class_name: "Spree::Post", inverse_of: :post_classifications, touch: true + belongs_to :taxon, class_name: "Spree::Taxon", touch: true # For #3494 validates_uniqueness_of :taxon_id, :scope => :post_id, :message => :already_linked diff --git a/spree_essential_blog/app/models/spree/post_file.rb b/spree_essential_blog/app/models/spree/post_file.rb new file mode 100644 index 00000000..b15a8896 --- /dev/null +++ b/spree_essential_blog/app/models/spree/post_file.rb @@ -0,0 +1,17 @@ +# a post could have several attachments +class Spree::PostFile < Spree::Asset + + #attr_accessible :alt, :attachment + + has_attached_file :attachment, + :url => "/shops/:rails_env/:class/:id/:filename", + :path => ":rails_root/public/shops/:rails_env/:class/:id/:filename" + + validates_attachment :attachment, presence: true, + content_type: { content_type: %w(image/jpeg image/gif image/png text/plain application/vnd.ms-powerpoint application/msword aplication/zip application/pdf) }, + size: { in: 0..10.megabytes } + + def url_thumb + @url_thumb ||= Ckeditor::Utils.filethumb(attachment_file_name) + end +end diff --git a/spree_essential_blog/app/models/spree/post_image.rb b/spree_essential_blog/app/models/spree/post_image.rb index 8444d09a..9604856c 100644 --- a/spree_essential_blog/app/models/spree/post_image.rb +++ b/spree_essential_blog/app/models/spree/post_image.rb @@ -1,23 +1,14 @@ +# a post could have several attachments class Spree::PostImage < Spree::Asset #attr_accessible :alt, :attachment - validates_attachment_presence :attachment - has_attached_file :attachment, - :styles => Proc.new{ |clip| clip.instance.attachment_sizes }, - :default_style => :medium, - :url => '/spree/posts/:id/:style/:basename.:extension', - :path => ':rails_root/public/spree/posts/:id/:style/:basename.:extension' + :url => '/shops/:rails_env/:site/:class/:id/:basename_:style.:extension', + :path => ':rails_root/public/shops/:rails_env/:site/:class/:id/:basename_:style.:extension' + validates_attachment :attachment, + :presence => true, + :content_type => { :content_type => %w(image/jpeg image/jpg image/png image/gif) } + - def image_content? - attachment_content_type.to_s.match(/\/(jpeg|png|gif|tiff|x-photoshop)/) - end - - def attachment_sizes - hash = {} - hash.merge!(:mini => '48x48>', :small => '150x150>', :medium => '600x600>', :large => '950x700>') if image_content? - hash - end - end diff --git a/spree_essential_blog/app/views/spree/blogs/admin/post_files/_form.html.erb b/spree_essential_blog/app/views/spree/blogs/admin/post_files/_form.html.erb new file mode 100644 index 00000000..30929c92 --- /dev/null +++ b/spree_essential_blog/app/views/spree/blogs/admin/post_files/_form.html.erb @@ -0,0 +1,16 @@ + +
    +
    +
    + <%= f.label :attachment, Spree.t(:filename) %>
    + <%= f.file_field :attachment %> +
    + +
    +
    + <%= f.label :alt, Spree.t(:alt_text) %>
    + <%= f.text_area :alt, rows: 4, class: 'fullwidth' %> +
    +
    + +
    diff --git a/spree_essential_blog/app/views/spree/blogs/admin/post_files/edit.html.erb b/spree_essential_blog/app/views/spree/blogs/admin/post_files/edit.html.erb new file mode 100644 index 00000000..88eba9f9 --- /dev/null +++ b/spree_essential_blog/app/views/spree/blogs/admin/post_files/edit.html.erb @@ -0,0 +1,26 @@ +<%= render :partial => 'spree/blogs/admin/shared/post_tabs', :locals => {:current => "Post Files"} %> + +<% if @post_file.try(:errors).present? %> + <%= render 'spree/shared/error_messages', :target => @post_file %> +<% end %> + +<%= form_for([:admin, @post.id, @post_file], :url => admin_post_file_url(@post, @post_file), :html => { :multipart => true }) do |f| %> + +
    + <%= @post_file.attachment_file_name%> +
    + <%= f.label Spree.t(:thumbnail) %>
    + <%= link_to image_tag(@post_file.url_thumb), @post_file.attachment.url() %> +
    + +
    + <%= render :partial => 'form', :locals => { :f => f } %> +
    +
    +
    + <%= button Spree.t('actions.update'), 'refresh' %> + <%= Spree.t(:or) %> + <%= link_to Spree.t('actions.cancel'), admin_product_images_url(@post), :id => 'cancel_link', :class => 'button remove' %> +
    +
    +<% end %> diff --git a/spree_essential_blog/app/views/spree/blogs/admin/post_files/index.html.erb b/spree_essential_blog/app/views/spree/blogs/admin/post_files/index.html.erb new file mode 100644 index 00000000..8cd09688 --- /dev/null +++ b/spree_essential_blog/app/views/spree/blogs/admin/post_files/index.html.erb @@ -0,0 +1,46 @@ +<%= render :partial => 'spree/blogs/admin/shared/post_tabs', :locals => {:current => "Post Files"} %> + +<% content_for :page_actions do %> +
  • <%= link_to_with_icon('plus', Spree.t(:new_post_file), new_admin_post_file_url(@post), :id => 'new_image_link', :class => 'button') %>
  • +<% end %> + +
    +<% unless @post.files.any? %> +
    + <%= Spree.t(:no_post_files_found) %>. +
    +<% else %> + + + + + + + + + + + + + + + + + + <% @post.files.each do |image| %> + + + + + + + <% end %> + +
    <%= Spree.t(:thumbnail) %><%= Spree.t("alt_text") %>
    + + <%= link_to(image_tag(image.url_thumb), image.attachment.url ) %> <%= image.alt %> + <%= link_to_with_icon('edit', Spree.t("edit"), edit_admin_post_file_url(@post, image), :no_text => true, :data => {:action => 'edit'}) %> +   + <%= link_to_delete image, {:url => admin_post_file_url(@post, image), :no_text => true }%> +
    +<% end %> diff --git a/spree_essential_blog/app/views/spree/blogs/admin/post_files/new.html.erb b/spree_essential_blog/app/views/spree/blogs/admin/post_files/new.html.erb new file mode 100644 index 00000000..8950d263 --- /dev/null +++ b/spree_essential_blog/app/views/spree/blogs/admin/post_files/new.html.erb @@ -0,0 +1,17 @@ +<%= render :partial => 'spree/blogs/admin/shared/post_tabs', :locals => {:current => "Post Files"} unless request.xhr? %> + +<%= render 'spree/shared/error_messages', :target => @post_file %> + +<%= form_for(@post_file, :url => admin_post_files_path(@post), :html => { :multipart => true }) do |f| %> +
    + <%= Spree.t(:new_post_file) %> + <%= render :partial => 'form', :locals => { :f => f } %> + +
    + <%= button Spree.t('actions.update'), 'refresh' %> + <%= Spree.t(:or) %> + <%= link_to_with_icon 'remove', Spree.t('actions.cancel'), admin_post_files_url(@post), :id => 'cancel_link', :class => 'button' %> +
    +
    + +<% end %> diff --git a/spree_essential_blog/app/views/spree/blogs/admin/post_images/_form.html.erb b/spree_essential_blog/app/views/spree/blogs/admin/post_images/_form.html.erb deleted file mode 100644 index beeb23f3..00000000 --- a/spree_essential_blog/app/views/spree/blogs/admin/post_images/_form.html.erb +++ /dev/null @@ -1,8 +0,0 @@ -

    - <%= form.label :attachment %>:
    - <%= form.file_field :attachment %> -

    -

    - <%= form.label :alt %>:
    - <%= form.text_field :alt, :class => 'text' %> -

    diff --git a/spree_essential_blog/app/views/spree/blogs/admin/post_images/edit.html.erb b/spree_essential_blog/app/views/spree/blogs/admin/post_images/edit.html.erb deleted file mode 100644 index b944af8e..00000000 --- a/spree_essential_blog/app/views/spree/blogs/admin/post_images/edit.html.erb +++ /dev/null @@ -1,18 +0,0 @@ -<%= render :partial => 'spree/blogs/admin/shared/post_tabs', :locals => {:current => "Images"} %> - -<% if @post_image.try(:errors).present? %> - <%= render 'spree/shared/error_messages', :target => @post_image %> -<% end %> - -<%= form_for([:admin, @post.id, @post_image], :url => admin_post_image_url(@post, @post_image), :html => { :multipart => true }) do |f| %> -

    - <%= label_tag ("thumbnail") %>:
    - <%= link_to(image_tag(@post_image.attachment.url(:mini)), @post_image.attachment.url(:product)) %> -

    - <%= render "form", :form => f %> - -

    - <%= button t("update") %> - or <%= link_to t("cancel"), admin_post_images_url(@post), :id => "cancel_link" %> -

    -<% end %> diff --git a/spree_essential_blog/app/views/spree/blogs/admin/post_images/index.html.erb b/spree_essential_blog/app/views/spree/blogs/admin/post_images/index.html.erb deleted file mode 100644 index 01b14235..00000000 --- a/spree_essential_blog/app/views/spree/blogs/admin/post_images/index.html.erb +++ /dev/null @@ -1,44 +0,0 @@ -<%= render :partial => 'spree/blogs/admin/shared/post_tabs', :locals => {:current => "Images"} %> - - - - - - - - - - - <% @post.images.each do |image| %> - - - - - - <% end %> - -
    <%= t("thumbnail") %><%= t("alt_text") %><%= t("action") %>
       <%= link_to(image_tag(image.attachment.url(:mini)), image.attachment.url(:large)) %><%= image.alt %> - <%= link_to_with_icon('edit', t("edit"), edit_admin_post_image_url(@post, image)) %> -   - <%= link_to_delete image, {:url => admin_post_image_url(@post, image) }%> -
    - -
    -
    -

    - <%= link_to icon('add') + ' ' + t("new_image"), new_admin_post_image_url(@post), :id => "new_image_link" %> -

    - -<% content_for :head do %> - -<% end %> diff --git a/spree_essential_blog/app/views/spree/blogs/admin/post_images/new.html.erb b/spree_essential_blog/app/views/spree/blogs/admin/post_images/new.html.erb deleted file mode 100644 index d8e582a8..00000000 --- a/spree_essential_blog/app/views/spree/blogs/admin/post_images/new.html.erb +++ /dev/null @@ -1,22 +0,0 @@ -<%= render :partial => 'spree/blogs/admin/shared/post_tabs', :locals => {:current => "Images"} unless request.xhr? %> - -

    <%= t("new_image") %>

    - -<%= render 'spree/shared/error_messages', :target => @post_image %> - -<%= form_for(@post_image, :url => admin_post_images_path(@post), :html => { :multipart => true }) do |form| %> - - <%= render "form", :form => form %> -
    -

    - <%= button t("create") %> - or <%= link_to t("cancel"), "#", :id => "cancel_link" %> -

    -<% end %> - - diff --git a/spree_essential_blog/app/views/spree/blogs/admin/posts/_form.html.erb b/spree_essential_blog/app/views/spree/blogs/admin/posts/_form.html.erb index 3569ebbb..59b74929 100644 --- a/spree_essential_blog/app/views/spree/blogs/admin/posts/_form.html.erb +++ b/spree_essential_blog/app/views/spree/blogs/admin/posts/_form.html.erb @@ -1,30 +1,41 @@ <%= form.field_container :title do %> - <%= form.label :title, t("activerecord.attributes.post.title") %>
    + <%= form.label :title %>
    <%= form.text_field :title, :class => 'title fullwidth' %> <%= error_message_on :post, :title %> <% end %> -<%= form.field_container :posted_at do %> - <%= form.label :posted_at, t("activerecord.attributes.post.posted_at") %>
    - <%= form.text_field :posted_at, :class => 'datetime fullwidth' %> - - <%= error_message_on :post, :posted_at %> -<% end %> +
    +
    + <%= form.field_container :author do %> + <%= form.label :author %>
    + <%= form.text_field :author, :class => 'datetime fullwidth' %> + <%= error_message_on :post, :author %> + <% end %> +
    + +
    + <%= form.field_container :posted_at do %> + <%= form.label :posted_at %>
    + <%= form.text_field :posted_at, :class => 'datetime fullwidth' %> + <%= error_message_on :post, :posted_at %> + <% end %> +
    +
    <%= form.field_container :cover do %> <%= form.label :cover, Spree.t(:icon) %>
    <%= form.file_field :cover %> <%= error_message_on :post, :cover %> <% end %> - + <%= form.field_container :body do %> - <%= form.label :body, t("activerecord.attributes.post.body") %>
    + <%= form.label :body %>
    <%= form.text_area :body, :class => 'fullwidth' %> <%= error_message_on :post, :body %> <% end %> <%= form.field_container :tag_list do %> - <%= form.label :tag_list, t("activerecord.attributes.post.tags") %>
    + <%= form.label :tags %>
    <%= form.text_field :tag_list, :class => 'text fullwidth' %>
    <%= error_message_on :post, :tag_list %> <% end %> @@ -34,8 +45,20 @@ <%= form.hidden_field :taxon_ids, :value => @post.taxon_ids.join(','), :class => 'text fullwidth' %> <% end %> +
    + <%= form.field_container :meta_keywords do %> + <%= form.label :meta_keywords, Spree.t(:meta_keywords) %> + <%= form.text_field :meta_keywords, :class => 'fullwidth' %> + <% end %> +
    + +
    + <%= form.field_container :meta_description do %> + <%= form.label :meta_description, Spree.t(:meta_description) %> + <%= form.text_field :meta_description, :class => 'fullwidth' %> + <% end %> +
    <%= form.field_container :live do %> - <%= form.check_box :live %> <%= form.label :live, t("activerecord.attributes.post.live") %>
    + <%= form.check_box :live %> <%= form.label :live %>
    <% end %> - diff --git a/spree_essential_blog/app/views/spree/blogs/admin/posts/edit.html.erb b/spree_essential_blog/app/views/spree/blogs/admin/posts/edit.html.erb index 3cd6f7c4..7dd4c143 100644 --- a/spree_essential_blog/app/views/spree/blogs/admin/posts/edit.html.erb +++ b/spree_essential_blog/app/views/spree/blogs/admin/posts/edit.html.erb @@ -1,12 +1,10 @@ -<% content_for :page_title do %> - <%= Spree.t("edit_post") %> “<%= @post.title %>” -<% end %> +<%= render partial: 'spree/blogs/admin/shared/post_tabs', locals: {current: 'Post Details'} %> <% content_for :page_actions do %> -
  • <%= button_link_to Spree.t(:back_to_post_list), admin_posts_url, :icon => 'icon-arrow-left' %>
  • +
  • <%= button_link_to Spree.t(:back_to_post_list), session[:return_to] || admin_posts_url, :icon => 'arrow-left' %>
  • <% if can?(:create, Spree::Product) %>
  • - <%= button_link_to Spree.t(:new_post), new_object_url, { :icon => 'icon-plus', :id => 'admin_new_post' } %> + <%= button_link_to Spree.t(:new_post), new_object_url, { :icon => 'plus', :id => 'admin_new_post' } %>
  • <% end %> <% end %> @@ -17,7 +15,7 @@ <%= form_for([:admin, @post]) do |f| %> <%= render "form", :form => f %> - + <%= render :partial => 'spree/admin/shared/edit_resource_links' %> <% end %> diff --git a/spree_essential_blog/app/views/spree/blogs/admin/posts/index.html.erb b/spree_essential_blog/app/views/spree/blogs/admin/posts/index.html.erb index 85b5f465..b8a62973 100644 --- a/spree_essential_blog/app/views/spree/blogs/admin/posts/index.html.erb +++ b/spree_essential_blog/app/views/spree/blogs/admin/posts/index.html.erb @@ -4,7 +4,7 @@ <% content_for :page_actions do %>
  • - <%= button_link_to Spree.t('new_post'), new_admin_post_url, :icon => 'icon-plus', :id => 'admin_new_post' %> + <%= button_link_to Spree.t('new_post'), new_admin_post_url, :icon => 'plus', :id => 'admin_new_post' %>
  • <% end if can? :edit, Spree::Post.new %> @@ -18,9 +18,9 @@ <%= search_form_for [:admin, @search] do |f| %>
    -
    +
    - <%= f.label :title_cont, t("activerecord.attributes.post.title") %>
    + <%= f.label :title_cont, Spree.t("title") %>
    <%= f.text_field :title_cont, :size => 25 %>
    @@ -29,7 +29,7 @@
    - <%= button Spree.t(:search), 'icon-search' %> + <%= button Spree.t(:search), 'search' %>
    <% end %>
    @@ -41,22 +41,24 @@ - - - - - + + + + + + - - - + + + <%- @collection.each do |post|%> + @@ -77,4 +79,3 @@ <% end %> <%= paginate @collection %> - diff --git a/spree_essential_blog/app/views/spree/blogs/admin/posts/new.html.erb b/spree_essential_blog/app/views/spree/blogs/admin/posts/new.html.erb index 61047fb9..1e1489b3 100644 --- a/spree_essential_blog/app/views/spree/blogs/admin/posts/new.html.erb +++ b/spree_essential_blog/app/views/spree/blogs/admin/posts/new.html.erb @@ -1,9 +1,9 @@ <% content_for :page_title do %> - <%= Spree.t("post.new") %> + <%= Spree.t("new_post") %> <% end %> <% content_for :page_actions do %> -
  • <%= button_link_to Spree.t(:back_to_post_list), admin_posts_url, :icon => 'icon-arrow-left' %>
  • +
  • <%= button_link_to Spree.t(:back_to_post_list), session[:return_to] || admin_posts_url, :icon => 'arrow-left' %>
  • <% end %> <%= render :partial => 'spree/shared/error_messages', :locals => { :target => @post } %> diff --git a/spree_essential_blog/app/views/spree/blogs/admin/posts/show.html.erb b/spree_essential_blog/app/views/spree/blogs/admin/posts/show.html.erb index 3dadb2d7..d0642a71 100644 --- a/spree_essential_blog/app/views/spree/blogs/admin/posts/show.html.erb +++ b/spree_essential_blog/app/views/spree/blogs/admin/posts/show.html.erb @@ -11,11 +11,11 @@
    - <%= button_link_to Spree.t('actions.edit'), edit_object_url(@post) , :icon => 'icon-edit' %> + <%= button_link_to Spree.t('actions.edit'), edit_object_url(@post) , :icon => 'edit' %> <%= Spree.t(:or) %> - <%= button_link_to Spree.t('actions.list'), collection_url, :icon => 'icon-arrow-left' %> + <%= button_link_to Spree.t('actions.list'), collection_url, :icon => 'arrow-left' %> <%= Spree.t(:or) %> - <%= button_link_to Spree.t('actions.delete'), collection_url, :icon => 'icon-remove' %> + <%= button_link_to Spree.t('actions.delete'), collection_url, :icon => 'remove' %>
    diff --git a/spree_essential_blog/app/views/spree/blogs/admin/shared/_post_tabs.html.erb b/spree_essential_blog/app/views/spree/blogs/admin/shared/_post_tabs.html.erb index dfb8da93..e2bcf03f 100644 --- a/spree_essential_blog/app/views/spree/blogs/admin/shared/_post_tabs.html.erb +++ b/spree_essential_blog/app/views/spree/blogs/admin/shared/_post_tabs.html.erb @@ -1,21 +1,22 @@ -

    <%== t(".editing_post") + " “#{@post.title}”".html_safe %>

    +<% content_for :page_title do %> + <%= Spree.t("edit_post") %> “<%= @post.title %>” +<% end %> -<% content_for :sidebar do %> +<% content_for :sidebar_title do %> + <%= @post.title.truncate(10) %> +<% end %> -

    <%= @post.title %><%= l (@post.posted_at || Time.now), :format => :date_only %>

    -
    +<% content_for :sidebar do %> + <% end %> diff --git a/spree_essential_blog/config/locales/en.yml b/spree_essential_blog/config/locales/en.yml index 74f2a894..f2adf07a 100644 --- a/spree_essential_blog/config/locales/en.yml +++ b/spree_essential_blog/config/locales/en.yml @@ -16,6 +16,7 @@ en: body: Body live: Published tags: Tags + author: Author post_category: model_name: Category name: Name diff --git a/spree_essential_blog/config/locales/zh-CN.yml b/spree_essential_blog/config/locales/zh-CN.yml index 8cfe5fad..b3cdd761 100644 --- a/spree_essential_blog/config/locales/zh-CN.yml +++ b/spree_essential_blog/config/locales/zh-CN.yml @@ -7,13 +7,15 @@ zh-CN: model_name: Blog name: Name permalink: Permalink - post: + spree/post: model_name: 文章 title: 标题 posted_at: 发布时间 body: 正文 + cover: 图片 live: 是否发布 tags: 标签 + author: 作者 post_category: model_name: Category name: Name @@ -22,12 +24,15 @@ zh-CN: spree/post: one: 文章 other: 文章 + spree/post_file: + one: 文件 + other: 文件 spree: back_to_post_list: 回到文章列表 post_list: 文章列表 new_post: 新建文章 - edit_post: 编辑文章 + edit_post: 编辑文章 admin: tab: posts: 文章 @@ -39,10 +44,10 @@ zh-CN: post: index: post_list: 文章列表 - new: + new: new_post: 新建文章 edit: - edit_post: 编辑文章 + edit_post: 编辑文章 post_products: index: add_related_product: Add Related Products @@ -59,7 +64,10 @@ zh-CN: home: title: Recent Posts archive: Blog Archive + files: 文件 + new_post_file: 新建文件 no_posts: No posts found! + no_post_files_found: 找不到任何文件! posts: 文章 post: index: @@ -72,6 +80,8 @@ zh-CN: back_to_posts: "Back to the blog" show: tagged: Tagged + post_details: 文章详细 + post_files: 文件 settings: blogs: Manage Blogs explain_blogs: Add or Edit Blogs for posts. @@ -94,6 +104,7 @@ zh-CN: post_categories: Categories subnav: posts: Blog Posts + title: 标题 time: formats: diff --git a/spree_essential_blog/config/routes.rb b/spree_essential_blog/config/routes.rb index f3ef4975..4f2e2bd9 100644 --- a/spree_essential_blog/config/routes.rb +++ b/spree_essential_blog/config/routes.rb @@ -1,40 +1,45 @@ Spree::Core::Engine.routes.append do scope(:module => "blogs") do namespace :admin do - resources :posts do + resources :posts do + resources :files, :controller => "post_files" do + collection do + post :update_positions + end + end resources :products, :controller => "post_products" resources :categories, :controller => "post_categories" end end - end + end # scope(:module => "blogs") do -# namespace :admin do -# resources :blogs, :constraints => { :id => /[a-z0-9\-\_\/]{3,}/ } -# resources :posts do -# resources :images, :controller => "post_images" do +# namespace :admin do +# resources :blogs, :constraints => { :id => /[a-z0-9\-\_\/]{3,}/ } +# resources :posts do +# resources :images, :controller => "post_files" do # collection do # post :update_positions # end # end # resources :products, :controller => "post_products" # resources :categories, :controller => "post_categories" -# end -# resource :disqus_settings -# end -# constraints :blog_id => /([a-z0-9\-\_\/]{3,})/ do +# end +# resource :disqus_settings +# end +# constraints :blog_id => /([a-z0-9\-\_\/]{3,})/ do # constraints( # :year => /\d{4}/, # :month => /\d{1,2}/, # :day => /\d{1,2}/ -# ) do +# ) do # get ":blog_id/:year(/:month(/:day))" => "posts#index", :as => :post_date # get ":blog_id/:year/:month/:day/:id" => "posts#show", :as => :full_post -# end +# end # get ":blog_id/category/:id" => "post_categories#show", :as => :post_category, :constraints => { :id => /.*/ } # get ":blog_id/search/:query" => "posts#search", :as => :search_posts, :query => /.*/ # get ":blog_id/archive" => "posts#archive", :as => :archive_posts -# get ":blog_id" => "posts#index", :as => :blog_posts -# end +# get ":blog_id" => "posts#index", :as => :blog_posts +# end # end end diff --git a/spree_essential_blog/db/migrate/20140806185750_acts_as_taggable_on_posts.rb b/spree_essential_blog/db/migrate/20140806185750_acts_as_taggable_on_posts.rb index c94cfefa..5d8af0ba 100644 --- a/spree_essential_blog/db/migrate/20140806185750_acts_as_taggable_on_posts.rb +++ b/spree_essential_blog/db/migrate/20140806185750_acts_as_taggable_on_posts.rb @@ -1,8 +1,8 @@ class ActsAsTaggableOnPosts < ActiveRecord::Migration def self.up - #table tags, tagings are part of gem acts-as-taggable-on, no spree namespace + #table tags, tagings are part of gem acts-as-taggable-on, no spree namespace return if table_exists? :tags - + create_table :tags do |t| t.string :name end @@ -13,7 +13,9 @@ def self.up # long enough to store the required class names. t.references :taggable, :polymorphic => true t.references :tagger, :polymorphic => true - t.string :context + # Limit is created to prevent MySQL error on index + # length for MyISAM table type: http://bit.ly/vgW2Ql + t.string :context, limit: 128 t.datetime :created_at end @@ -26,5 +28,5 @@ def self.down drop_table :tags drop_table :taggings end - + end diff --git a/spree_essential_blog/db/migrate/20150429074372_add_position_to_posts_taxons.spree.rb b/spree_essential_blog/db/migrate/20150429074372_add_position_to_posts_taxons.spree.rb new file mode 100644 index 00000000..72c627dd --- /dev/null +++ b/spree_essential_blog/db/migrate/20150429074372_add_position_to_posts_taxons.spree.rb @@ -0,0 +1,10 @@ +# This migration comes from spree (originally 20131127001002) +class AddPositionToPostsTaxons < ActiveRecord::Migration + def change + add_column :spree_posts_taxons, :id, :primary_key + add_column :spree_posts_taxons, :position, :integer + Spree::PostClassification.all.reverse.each{|classfication| + classfication.insert_at( ) + } + end +end diff --git a/spree_essential_blog/db/migrate/20150511195253_add_seo_metas_to_posts.rb b/spree_essential_blog/db/migrate/20150511195253_add_seo_metas_to_posts.rb new file mode 100644 index 00000000..15a28195 --- /dev/null +++ b/spree_essential_blog/db/migrate/20150511195253_add_seo_metas_to_posts.rb @@ -0,0 +1,9 @@ +class AddSeoMetasToPosts < ActiveRecord::Migration + def change + change_table :spree_posts do |t| + t.string :meta_title + t.string :meta_description + t.string :meta_keywords + end + end +end diff --git a/spree_essential_blog/lib/spree_essential_blog.rb b/spree_essential_blog/lib/spree_essential_blog.rb index 85f7fe30..2dd71e5a 100644 --- a/spree_essential_blog/lib/spree_essential_blog.rb +++ b/spree_essential_blog/lib/spree_essential_blog.rb @@ -5,6 +5,7 @@ require "spree_essential_blog/engine" require "spree_essential_blog/search" require "spree_essential_blog/permitted_attributes_for_blog" +require "spree_essential_blog/paper_clip_interpolate_site" module SpreeEssentialBlog mattr_accessor :site_class, :taxon_class diff --git a/spree_essential_blog/lib/spree_essential_blog/paper_clip_interpolate_site.rb b/spree_essential_blog/lib/spree_essential_blog/paper_clip_interpolate_site.rb new file mode 100644 index 00000000..09139da1 --- /dev/null +++ b/spree_essential_blog/lib/spree_essential_blog/paper_clip_interpolate_site.rb @@ -0,0 +1,5 @@ +unless Paperclip::Interpolations.all.include? :site + Paperclip.interpolates :site do |attachment, style_name| + attachment.instance.site_id # site.current do not work anymore, since we assign theme product to taxon of shop1. + end +end \ No newline at end of file diff --git a/spree_essential_blog/lib/spree_essential_blog/permitted_attributes_for_blog.rb b/spree_essential_blog/lib/spree_essential_blog/permitted_attributes_for_blog.rb index 6ee79353..fe536cba 100644 --- a/spree_essential_blog/lib/spree_essential_blog/permitted_attributes_for_blog.rb +++ b/spree_essential_blog/lib/spree_essential_blog/permitted_attributes_for_blog.rb @@ -1,11 +1,11 @@ module Spree module PermittedAttributes - ATTRIBUTES_FOR_BLOG=[:blog_attributes, :post_attributes, :post_image_attributes, :post_product_attributes] + ATTRIBUTES_FOR_BLOG=[:blog_attributes, :post_attributes, :post_file_attributes, :post_product_attributes] mattr_reader *ATTRIBUTES_FOR_BLOG @@blog_attributes = [:name, :permalink] - @@post_attributes = [ :title, :cover, :teaser, :body, :posted_at, :author, :live, :tag_list, :taxon_ids, :product_ids_string] - @@post_image_attributes = [:alt, :attachment] + @@post_attributes = [ :title, :cover, :teaser, :body, :posted_at, :author, :live, :tag_list, :taxon_ids, :product_ids_string, :meta_keywords, :meta_description] + @@post_file_attributes = [:alt, :attachment] @@post_product_attributes = [:post_id, :product_id, :position] end end \ No newline at end of file diff --git a/spree_essential_blog/test/integration/spree/blogs/admin/post_images_integration_test.rb b/spree_essential_blog/test/integration/spree/blogs/admin/post_images_integration_test.rb index db9fc256..5d08a204 100644 --- a/spree_essential_blog/test/integration/spree/blogs/admin/post_images_integration_test.rb +++ b/spree_essential_blog/test/integration/spree/blogs/admin/post_images_integration_test.rb @@ -1,30 +1,30 @@ require 'test_helper' -class Spree::Admin::PostImagesIntegrationTest < SpreeEssentials::IntegrationCase +class Spree::Admin::PostFilesIntegrationTest < SpreeEssentials::IntegrationCase setup do - Spree::PostImage.destroy_all + Spree::PostFile.destroy_all @post = Spree::Post.first || Factory.create(:spree_post) end should "have a link to new post image" do - visit spree.admin_post_images_path(@post) + visit spree.admin_post_files_path(@post) btn = find("#new_image_link").native - assert_match /#{spree.new_admin_post_image_path(@post)}$/, btn.attribute('href') + assert_match /#{spree.new_admin_post_file_path(@post)}$/, btn.attribute('href') assert_equal "New Image", btn.text end should "get new post image" do - visit spree.new_admin_post_image_path(@post) + visit spree.new_admin_post_file_path(@post) assert_seen "New Image" - within "#new_post_image" do + within "#new_post_file" do assert has_field?("Attachment") assert has_field?("Alt") end end should "validate post image" do - visit spree.new_admin_post_image_path(@post) + visit spree.new_admin_post_file_path(@post) click_button "Create" within "#errorExplanation" do assert_seen "2 errors prohibited this record from being saved:" @@ -34,35 +34,35 @@ class Spree::Admin::PostImagesIntegrationTest < SpreeEssentials::IntegrationCase end should "create post image" do - visit spree.admin_post_images_path(@post) + visit spree.admin_post_files_path(@post) click_link "New Image" - within "#new_post_image" do + within "#new_post_file" do attach_file "Attachment", sample_image_path fill_in "Alt", :with => "alt text!" end click_button "Create" - assert_equal spree.admin_post_images_path(@post), current_path + assert_equal spree.admin_post_files_path(@post), current_path assert_flash :notice, "Post image has been successfully created!" end context "existing post image" do setup do - @post_image = Factory.create(:spree_post_image, :viewable => @post) + @post_file = Factory.create(:spree_post_file, :viewable => @post) end should "edit and update" do - visit spree.edit_admin_post_image_path(@post, @post_image) - within "#edit_post_image_#{@post_image.id}" do + visit spree.edit_admin_post_file_path(@post, @post_file) + within "#edit_post_file_#{@post_file.id}" do attach_file "Attachment", sample_image_path("2.jpg") fill_in "Alt", :with => "omg!" end click_button "Update" - assert_equal spree.admin_post_images_path(@post), current_path + assert_equal spree.admin_post_files_path(@post), current_path assert_flash :notice, "Post image has been successfully updated!" end should "get destroyed" do - visit spree.admin_post_images_path(@post) + visit spree.admin_post_files_path(@post) within "table.index" do find("a[href='#']").click end @@ -74,17 +74,17 @@ class Spree::Admin::PostImagesIntegrationTest < SpreeEssentials::IntegrationCase context "several post images" do setup do - setup_action_controller_behaviour(Spree::Blogs::Admin::PostImagesController) - @post_images = Array.new(2) {|i| Factory(:spree_post_image, :alt => "Image ##{i + 1}", :viewable => @post, :position => i) } + setup_action_controller_behaviour(Spree::Blogs::Admin::PostFilesController) + @post_files = Array.new(2) {|i| Factory(:spree_post_file, :alt => "Image ##{i + 1}", :viewable => @post, :position => i) } end should "update positions" do - positions = Hash[@post_images.map{|i| [i.id, 2 - i.position ]}] - visit spree.admin_post_images_path(@post) + positions = Hash[@post_files.map{|i| [i.id, 2 - i.position ]}] + visit spree.admin_post_files_path(@post) assert_seen "Image #1", :within => "tbody tr:first" assert_seen "Image #2", :within => "tbody tr:last" xhr :post, :update_positions, { :post_id => @post.to_param, :positions => positions } - visit spree.admin_post_images_path(@post) + visit spree.admin_post_files_path(@post) assert_seen "Image #2", :within => "tbody tr:first" assert_seen "Image #1", :within => "tbody tr:last" end diff --git a/spree_essential_blog/test/support/factories.rb b/spree_essential_blog/test/support/factories.rb index c4b68923..12435d31 100644 --- a/spree_essential_blog/test/support/factories.rb +++ b/spree_essential_blog/test/support/factories.rb @@ -17,7 +17,7 @@ name "Jellies" end - factory :spree_post_image, :class => Spree::PostImage do + factory :spree_post_file, :class => Spree::PostFile do viewable { Spree::Post.first } attachment { sample_image } end diff --git a/spree_essential_blog/test/unit/spree/post_image_test.rb b/spree_essential_blog/test/unit/spree/post_image_test.rb index a0bef48a..48ec98b5 100644 --- a/spree_essential_blog/test/unit/spree/post_image_test.rb +++ b/spree_essential_blog/test/unit/spree/post_image_test.rb @@ -1,9 +1,9 @@ require 'test_helper' -class Spree::PostImageTest < ActiveSupport::TestCase +class Spree::PostFileTest < ActiveSupport::TestCase setup do - @post_image = Spree::PostImage.new + @post_file = Spree::PostFile.new end should belong_to(:viewable) @@ -11,28 +11,28 @@ class Spree::PostImageTest < ActiveSupport::TestCase %w(image/jpeg image/gif image/png image/tiff).each do |mime| should "return true for #{mime} as image content" do - @post_image.attachment_content_type = mime - assert @post_image.image_content? + @post_file.attachment_content_type = mime + assert @post_file.image_content? end end %w(application/pdf text/css).each do |mime| should "return false for #{mime} as image content" do - @post_image.attachment_content_type = mime - assert !@post_image.image_content? + @post_file.attachment_content_type = mime + assert !@post_file.image_content? end end should "have blank attachment sizes hash if post is not image content" do hash = {} - assert_equal hash, @post_image.attachment_sizes + assert_equal hash, @post_file.attachment_sizes end %w(image/jpeg image/gif image/png image/tiff).each do |mime| should "have attachment sizes hash for #{mime}" do - @post_image.attachment_content_type = mime + @post_file.attachment_content_type = mime hash = { :mini => '48x48>', :small => '150x150>', :medium => '600x600>', :large => '950x700>' } - assert_equal hash, @post_image.attachment_sizes + assert_equal hash, @post_file.attachment_sizes end end diff --git a/spree_flexi_variants/app/assets/javascripts/store/spree_flexi_variants.js b/spree_flexi_variants/app/assets/javascripts/store/spree_flexi_variants.js index 5d4322d7..db7cab81 100644 --- a/spree_flexi_variants/app/assets/javascripts/store/spree_flexi_variants.js +++ b/spree_flexi_variants/app/assets/javascripts/store/spree_flexi_variants.js @@ -1,4 +1,4 @@ -//= require store/spree_frontend +//= require spree/frontend //= require jquery.formatCurrency-1.4.0.min //= require i18n/jquery.formatCurrency.all //= require_self diff --git a/spree_flexi_variants/app/assets/stylesheets/store/spree_flexi_variants.css b/spree_flexi_variants/app/assets/stylesheets/store/spree_flexi_variants.css index b6e718b5..2a711634 100644 --- a/spree_flexi_variants/app/assets/stylesheets/store/spree_flexi_variants.css +++ b/spree_flexi_variants/app/assets/stylesheets/store/spree_flexi_variants.css @@ -1,4 +1,4 @@ /* - *= require store/spree_frontend + *= require spree/frontend *= require_self */ diff --git a/spree_flexi_variants/app/controllers/spree/orders_controller_decorator.rb b/spree_flexi_variants/app/controllers/spree/orders_controller_decorator.rb index a33c200e..f9c9d3d4 100644 --- a/spree_flexi_variants/app/controllers/spree/orders_controller_decorator.rb +++ b/spree_flexi_variants/app/controllers/spree/orders_controller_decorator.rb @@ -10,22 +10,18 @@ module Spree # needs to occur in the cart partial for this to be done 'right' # # Adds a new item to the order (creating a new order if none already exists) - def populate - populator = Spree::OrderPopulator.new(current_order(create_order_if_necessary: true), current_currency) - flexi_hash = {ad_hoc_option_value_ids: ad_hoc_option_value_ids, product_customizations: product_customizations} - - if populator.populate(params.slice(:products, :variants, :quantity).merge(flexi_hash)) - current_order.ensure_updated_shipments - - fire_event('spree.cart.add') - fire_event('spree.order.contents_changed') - respond_with(@order) do |format| - format.html { redirect_to cart_path } - end - else - flash[:error] = populator.errors.full_messages.join(" ") - redirect_to :back - end - end +# def populate +# populator = Spree::OrderPopulator.new(current_order(create_order_if_necessary: true), current_currency) +# flexi_hash = {ad_hoc_option_value_ids: ad_hoc_option_value_ids, product_customizations: product_customizations} +# +# if populator.populate(params.slice(:products, :variants, :quantity).merge(flexi_hash)) +# respond_with(@order) do |format| +# format.html { redirect_to cart_path } +# end +# else +# flash[:error] = populator.errors.full_messages.join(" ") +# redirect_to :back +# end +# end end end diff --git a/spree_flexi_variants/app/models/spree/ad_hoc_option_type.rb b/spree_flexi_variants/app/models/spree/ad_hoc_option_type.rb index 086dcae5..873f70dc 100644 --- a/spree_flexi_variants/app/models/spree/ad_hoc_option_type.rb +++ b/spree_flexi_variants/app/models/spree/ad_hoc_option_type.rb @@ -10,7 +10,7 @@ class AdHocOptionType < ActiveRecord::Base # currently no controller for normal users present #attr_accessible :is_required, :ad_hoc_option_values_attributes, :product_id, :option_type_id, :position - default_scope order(:position) + default_scope { order(:position) } # price_modifier_type # is_required diff --git a/spree_flexi_variants/app/models/spree/ad_hoc_option_value.rb b/spree_flexi_variants/app/models/spree/ad_hoc_option_value.rb index 4720d406..53d5d6ae 100644 --- a/spree_flexi_variants/app/models/spree/ad_hoc_option_value.rb +++ b/spree_flexi_variants/app/models/spree/ad_hoc_option_value.rb @@ -6,7 +6,7 @@ class AdHocOptionValue < ActiveRecord::Base has_many :excluded_ad_hoc_option_values, :dependent => :destroy # currently no controller for normal users present - attr_accessible :price_modifier, :ad_hoc_option_type_id, :option_value_id, :selected, :cost_price_modifier + #attr_accessible :price_modifier, :ad_hoc_option_type_id, :option_value_id, :selected, :cost_price_modifier # this opens up a can of worms..deleting option values and having historical data still intact...ugh...what to do?...add 'deleted_at' somewhere along the chain? # has_many :ad_hoc_option_values_line_items, :dependent => :destroy @@ -14,7 +14,7 @@ class AdHocOptionValue < ActiveRecord::Base # price_modifier alias :option_type :ad_hoc_option_type acts_as_list :scope => :ad_hoc_option_type - default_scope order("position asc") + default_scope { order("position asc") } delegate :name, :to => :option_value delegate :presentation, :to => :option_value diff --git a/spree_flexi_variants/app/models/spree/line_item_decorator.rb b/spree_flexi_variants/app/models/spree/decorators/line_item_decorator.rb similarity index 100% rename from spree_flexi_variants/app/models/spree/line_item_decorator.rb rename to spree_flexi_variants/app/models/spree/decorators/line_item_decorator.rb diff --git a/spree_flexi_variants/app/models/spree/option_type_decorator.rb b/spree_flexi_variants/app/models/spree/decorators/option_type_decorator.rb similarity index 100% rename from spree_flexi_variants/app/models/spree/option_type_decorator.rb rename to spree_flexi_variants/app/models/spree/decorators/option_type_decorator.rb diff --git a/spree_flexi_variants/app/models/spree/option_value_decorator.rb b/spree_flexi_variants/app/models/spree/decorators/option_value_decorator.rb similarity index 100% rename from spree_flexi_variants/app/models/spree/option_value_decorator.rb rename to spree_flexi_variants/app/models/spree/decorators/option_value_decorator.rb diff --git a/spree_flexi_variants/app/models/spree/decorators/order_contents_decorator.rb b/spree_flexi_variants/app/models/spree/decorators/order_contents_decorator.rb new file mode 100644 index 00000000..e79a91c2 --- /dev/null +++ b/spree_flexi_variants/app/models/spree/decorators/order_contents_decorator.rb @@ -0,0 +1,67 @@ +module Spree + OrderContents.class_eval do + # Get current line item for variant if exists + # Add variant qty to line_item + def add(variant, quantity = 1, currency = nil, shipment = nil, ad_hoc_option_value_ids = [], product_customizations = []) + line_item = add_to_line_item(variant, quantity, currency, shipment, ad_hoc_option_value_ids, product_customizations) + reload_totals + PromotionHandler::Cart.new(order, line_item).activate + ItemAdjustments.new(line_item).update + reload_totals + line_item + end + + private + def add_to_line_item(variant, quantity, currency=nil, shipment=nil, ad_hoc_option_value_ids = [], product_customizations = []) + line_item = grab_line_item_by_variant(variant, false, ad_hoc_option_value_ids, product_customizations) + + if line_item + line_item.target_shipment = shipment + line_item.quantity += quantity.to_i + line_item.currency = currency unless currency.nil? + else + line_item = order.line_items.new(quantity: quantity, variant: variant) + line_item.target_shipment = shipment + + line_item.product_customizations = product_customizations + product_customizations.each {|pc| pc.line_item = line_item} + + product_customizations.map(&:save) # it is now safe to save the customizations we built + + # find, and add the configurations, if any. these have not been fetched from the db yet. line_items.first.variant_id + # we postponed it (performance reasons) until we actaully knew we needed them + povs=[] + ad_hoc_option_value_ids.each do |cid| + povs << AdHocOptionValue.find(cid) + end + line_item.ad_hoc_option_values = povs + + offset_price = povs.map(&:price_modifier).compact.sum + product_customizations.map {|pc| pc.price(variant)}.sum +Rails.logger.debug "start to get price...." +a = variant.price_in(currency) +b = variant.price_in(currency).amount + Rails.logger.debug "currency=#{currency.inspect},#{currency}, a = #{a.inspect}, b=#{b.inspect}, offset_price=#{offset_price} variant.price_in(currency)=#{variant.price_in(currency)}" + + if currency + line_item.currency = currency unless currency.nil? + line_item.price = variant.price_in(currency).amount + offset_price + else + line_item.price = variant.price + offset_price + end + end + + line_item.save + line_item + end + + def grab_line_item_by_variant(variant, raise_error = false, ad_hoc_option_value_ids = [], product_customizations = []) + line_item = order.find_line_item_by_variant(variant, ad_hoc_option_value_ids, product_customizations) + + if !line_item.present? && raise_error + raise ActiveRecord::RecordNotFound, "Line item not found for variant #{variant.sku}" + end + + line_item + end + end +end diff --git a/spree_flexi_variants/app/models/spree/decorators/order_decorator.rb b/spree_flexi_variants/app/models/spree/decorators/order_decorator.rb new file mode 100644 index 00000000..08b5567e --- /dev/null +++ b/spree_flexi_variants/app/models/spree/decorators/order_decorator.rb @@ -0,0 +1,90 @@ +module Spree + Order.class_eval do + def add_variant(variant, quantity = 1, ad_hoc_option_value_ids=[], product_customizations=[]) + current_item = find_line_item_by_variant(variant, ad_hoc_option_value_ids, product_customizations) + if current_item + current_item.quantity += quantity + current_item.save + else + current_item = LineItem.new(:quantity => quantity) + current_item.variant = variant + + # add the product_customizations, if any + # TODO: is this an unnecessary step? + product_customizations.map(&:save) # it is now safe to save the customizations we created in the OrdersController.populate + + current_item.product_customizations = product_customizations + + # find, and add the configurations, if any. these have not been fetched from the db yet. line_items.first.variant_id + # we postponed it (performance reasons) until we actaully knew we needed them + povs=[] + ad_hoc_option_value_ids.each do |cid| + povs << AdHocOptionValue.find(cid) + end + current_item.ad_hoc_option_values = povs + + current_item.price = variant.price + povs.map(&:price_modifier).compact.sum + product_customizations.map {|pc| pc.price(variant)}.sum + self.line_items << current_item + end + current_item + end + + def contains?(variant, ad_hoc_option_value_ids, product_customizations) + find_line_item_by_variant(variant, ad_hoc_option_value_ids, product_customizations).present? + end + + def find_line_item_by_variant(variant, ad_hoc_option_value_ids, product_customizations) + line_items.detect do |li| + li.variant_id == variant.id && + matching_configurations(li.ad_hoc_option_values,ad_hoc_option_value_ids) && + matching_customizations(li.product_customizations,product_customizations) + end + end + + def merge!(order, user = nil) + order.line_items.each do |line_item| + self.add_variant(line_item.variant, line_item.quantity, line_item.ad_hoc_option_value_ids, line_item.product_customizations) + end + + self.associate_user!(user) if !self.user && !user.blank? + + # So that the destroy doesn't take out line items which may have been re-assigned + order.line_items.reload + order.destroy + end + + private + + # produces a list of [customizable_product_option.id,value] pairs for subsequent comparison + def customization_pairs(product_customizations) + pairs= product_customizations.map(&:customized_product_options).flatten.map do |m| + [m.customizable_product_option.id, m.value.present? ? m.value : m.customization_image.to_s ] + end + + Set.new pairs + end + + def matching_configurations(existing_povs,new_povs) + # if there aren't any povs, there's a 'match' + return true if existing_povs.empty? && new_povs.empty? + + existing_povs.map(&:id).sort == new_povs.map(&:to_i).sort + end + + def matching_customizations(existing_customizations,new_customizations) + + # if there aren't any customizations, there's a 'match' + return true if existing_customizations.empty? && new_customizations.empty? + + # exact match of all customization types? + return false unless existing_customizations.map(&:product_customization_type_id).sort == new_customizations.map(&:product_customization_type_id).sort + + # get a list of [customizable_product_option.id,value] pairs + existing_vals = customization_pairs existing_customizations + new_vals = customization_pairs new_customizations + + # do a set-compare here + existing_vals == new_vals + end + end +end diff --git a/spree_flexi_variants/app/models/spree/order_populator_decorator.rb b/spree_flexi_variants/app/models/spree/decorators/order_populator_decorator.rb similarity index 100% rename from spree_flexi_variants/app/models/spree/order_populator_decorator.rb rename to spree_flexi_variants/app/models/spree/decorators/order_populator_decorator.rb diff --git a/spree_flexi_variants/app/models/spree/product_decorator.rb b/spree_flexi_variants/app/models/spree/decorators/product_decorator.rb similarity index 100% rename from spree_flexi_variants/app/models/spree/product_decorator.rb rename to spree_flexi_variants/app/models/spree/decorators/product_decorator.rb diff --git a/spree_flexi_variants/app/models/spree/excluded_ad_hoc_option_value.rb b/spree_flexi_variants/app/models/spree/excluded_ad_hoc_option_value.rb index 46259d47..f150bf77 100644 --- a/spree_flexi_variants/app/models/spree/excluded_ad_hoc_option_value.rb +++ b/spree_flexi_variants/app/models/spree/excluded_ad_hoc_option_value.rb @@ -3,6 +3,6 @@ class ExcludedAdHocOptionValue < ActiveRecord::Base belongs_to :ad_hoc_variant_exclusion belongs_to :ad_hoc_option_value - attr_accessible :ad_hoc_variant_exclusion, :ad_hoc_option_value_id + #attr_accessible :ad_hoc_variant_exclusion, :ad_hoc_option_value_id end end diff --git a/spree_flexi_variants/app/models/spree/order_contents_decorator.rb b/spree_flexi_variants/app/models/spree/order_contents_decorator.rb deleted file mode 100644 index 2a70709d..00000000 --- a/spree_flexi_variants/app/models/spree/order_contents_decorator.rb +++ /dev/null @@ -1,49 +0,0 @@ -module Spree - OrderContents.class_eval do - # Get current line item for variant if exists - # Add variant qty to line_item - def add(variant, quantity = 1, currency = nil, shipment = nil, ad_hoc_option_value_ids = [], product_customizations = []) - line_item = order.find_line_item_by_variant(variant, ad_hoc_option_value_ids, product_customizations) - add_to_line_item(line_item, variant, quantity, currency, shipment, ad_hoc_option_value_ids, product_customizations) - end - - private - def add_to_line_item(line_item, variant, quantity, currency=nil, shipment=nil, ad_hoc_option_value_ids = [], product_customizations = []) - if line_item - line_item.target_shipment = shipment - line_item.quantity += quantity.to_i - line_item.currency = currency unless currency.nil? - else - line_item = order.line_items.new(quantity: quantity, variant_id: variant.id) - line_item.target_shipment = shipment - - product_customizations.map(&:save) # it is now safe to save the customizations we built - - line_item.product_customizations = product_customizations - - # find, and add the configurations, if any. these have not been fetched from the db yet. line_items.first.variant_id - # we postponed it (performance reasons) until we actaully knew we needed them - povs=[] - ad_hoc_option_value_ids.each do |cid| - povs << AdHocOptionValue.find(cid) - end - line_item.ad_hoc_option_values = povs - - offset_price = povs.map(&:price_modifier).compact.sum + product_customizations.map {|pc| pc.price(variant)}.sum - - if currency - line_item.currency = currency unless currency.nil? - line_item.price = variant.price_in(currency).amount + offset_price - else - line_item.price = variant.price + adjusted_price - end - end - - line_item.save - order.reload - - line_item - end - - end -end diff --git a/spree_flexi_variants/app/models/spree/order_decorator.rb b/spree_flexi_variants/app/models/spree/order_decorator.rb deleted file mode 100644 index b25b2b87..00000000 --- a/spree_flexi_variants/app/models/spree/order_decorator.rb +++ /dev/null @@ -1,68 +0,0 @@ -module Spree - Order.class_eval do - - def find_line_item_by_variant(variant, ad_hoc_option_value_ids=[], product_customizations=[]) - line_items.detect do |li| - li.variant_id == variant.id && - matching_configurations(li.ad_hoc_option_values,ad_hoc_option_value_ids) && - matching_customizations(li.product_customizations,product_customizations) - end - end - - # copy original method merge! here, only change the way get current_line_item - def merge!(order, user = nil) - order.line_items.each do |line_item| - next unless line_item.currency == currency - # change the way get current_line_item - current_line_item = find_line_item_by_variant( line_item.variant, line_item.ad_hoc_option_value_ids, line_item.product_customizations ) - if current_line_item - current_line_item.quantity += line_item.quantity - current_line_item.save - else - line_item.order_id = self.id - line_item.save - end - end - - self.associate_user!(user) if !self.user && !user.blank? - - # So that the destroy doesn't take out line items which may have been re-assigned - order.line_items.reload - order.destroy - end - - private - - # produces a list of [customizable_product_option.id,value] pairs for subsequent comparison - def customization_pairs(product_customizations) - pairs= product_customizations.map(&:customized_product_options).flatten.map do |m| - [m.customizable_product_option.id, m.value.present? ? m.value : m.customization_image.to_s ] - end - - Set.new pairs - end - - def matching_configurations(existing_povs,new_povs) - # if there aren't any povs, there's a 'match' - return true if existing_povs.empty? && new_povs.empty? - - existing_povs.map(&:id).sort == new_povs.map(&:to_i).sort - end - - def matching_customizations(existing_customizations,new_customizations) - - # if there aren't any customizations, there's a 'match' - return true if existing_customizations.empty? && new_customizations.empty? - - # exact match of all customization types? - return false unless existing_customizations.map(&:product_customization_type_id).sort == new_customizations.map(&:product_customization_type_id).sort - - # get a list of [customizable_product_option.id,value] pairs - existing_vals = customization_pairs existing_customizations - new_vals = customization_pairs new_customizations - - # do a set-compare here - existing_vals == new_vals - end - end -end diff --git a/spree_flexi_variants/app/views/spree/admin/ad_hoc_option_types/_option_value_fields.html.erb b/spree_flexi_variants/app/views/spree/admin/ad_hoc_option_types/_option_value_fields.html.erb index 8ba37c67..ca0dc33c 100644 --- a/spree_flexi_variants/app/views/spree/admin/ad_hoc_option_types/_option_value_fields.html.erb +++ b/spree_flexi_variants/app/views/spree/admin/ad_hoc_option_types/_option_value_fields.html.erb @@ -8,7 +8,7 @@ <%#link_to_remove_nested_fields t("remove"), f, :no_text => true, :nest => "ad_hoc_option_type" %> <%= link_to_with_icon( - 'icon-trash', '', + 'trash', '', admin_ad_hoc_option_value_path(f.object), :method => :delete, :class => "remove_fields no-text with-tip" diff --git a/spree_flexi_variants/app/views/spree/admin/ad_hoc_option_types/_selected.html.erb b/spree_flexi_variants/app/views/spree/admin/ad_hoc_option_types/_selected.html.erb index d7db851d..147054ff 100644 --- a/spree_flexi_variants/app/views/spree/admin/ad_hoc_option_types/_selected.html.erb +++ b/spree_flexi_variants/app/views/spree/admin/ad_hoc_option_types/_selected.html.erb @@ -38,5 +38,5 @@
    - <%= button_link_to t("add_option_type"), available_ad_hoc_admin_product_option_types_url(@product), :remote => :true, :class => 'iconlink', :icon => 'icon-plus' %> + <%= button_link_to t("add_option_type"), available_ad_hoc_admin_product_option_types_url(@product), :remote => :true, :class => 'iconlink', :icon => 'plus' %> diff --git a/spree_flexi_variants/app/views/spree/admin/ad_hoc_option_types/edit.html.erb b/spree_flexi_variants/app/views/spree/admin/ad_hoc_option_types/edit.html.erb index 6a0273df..5bb5db28 100644 --- a/spree_flexi_variants/app/views/spree/admin/ad_hoc_option_types/edit.html.erb +++ b/spree_flexi_variants/app/views/spree/admin/ad_hoc_option_types/edit.html.erb @@ -42,9 +42,9 @@ <% end %>
    - <%= button t("update"), 'icon-refresh' %> + <%= button t("update"), 'refresh' %> <%= t("or") %> - <%= button_link_to t("cancel"), selected_admin_product_ad_hoc_option_types_url(@ad_hoc_option_type.product), :icon => 'icon-remove' %> + <%= button_link_to t("cancel"), selected_admin_product_ad_hoc_option_types_url(@ad_hoc_option_type.product), :icon => 'remove' %>
    <% end %> diff --git a/spree_flexi_variants/app/views/spree/admin/option_types/_available_ad_hoc.html.erb b/spree_flexi_variants/app/views/spree/admin/option_types/_available_ad_hoc.html.erb index e4d785f9..9c50f548 100644 --- a/spree_flexi_variants/app/views/spree/admin/option_types/_available_ad_hoc.html.erb +++ b/spree_flexi_variants/app/views/spree/admin/option_types/_available_ad_hoc.html.erb @@ -12,7 +12,7 @@ - + + + + + + + +<% end -%> diff --git a/spree_theme/app/views/spree/orders/_order_items.html.erb b/spree_theme/app/views/spree/orders/_order_items.html.erb index dc1c49f1..cce63ba3 100644 --- a/spree_theme/app/views/spree/orders/_order_items.html.erb +++ b/spree_theme/app/views/spree/orders/_order_items.html.erb @@ -1,67 +1,97 @@ -
    <%= sort_link @search, :title, t("activerecord.attributes.post.title") %><%= sort_link @search, :posted_at, t("activerecord.attributes.post.posted_at") %><%= sort_link @search, :live, t("activerecord.attributes.post.live") %><%= sort_link @search, :title, Spree.t("title") %><%= sort_link @search, :posted_at, t("activerecord.attributes.spree/post.posted_at") %><%= sort_link @search, :live, t("activerecord.attributes.spree/post.live") %>
    <%= mini_cover(post) %> <%= post.title %> <%= pretty_time post.posted_at %> <%= post.live ? Spree.t('say_yes') : Spree.t('not') %>
    <%=ot.name %> <%=ot.presentation %><%= link_to_with_icon 'icon-plus', t("select"), + <%= link_to_with_icon 'plus', t("select"), url_for(:controller => "admin/option_types", :id => ot, :product_id => @product.permalink, diff --git a/spree_flexi_variants/app/views/spree/admin/product_customization_types/edit.html.erb b/spree_flexi_variants/app/views/spree/admin/product_customization_types/edit.html.erb index ccbf1f2a..76729356 100644 --- a/spree_flexi_variants/app/views/spree/admin/product_customization_types/edit.html.erb +++ b/spree_flexi_variants/app/views/spree/admin/product_customization_types/edit.html.erb @@ -6,7 +6,7 @@ <% content_for :page_actions do %>
  • - <%= button_link_to Spree.t(:product_customization_types_list), spree.admin_product_customization_types_path, :icon => 'icon-arrow-left' %> + <%= button_link_to Spree.t(:product_customization_types_list), spree.admin_product_customization_types_path, :icon => 'arrow-left' %>
  • <% end %> diff --git a/spree_flexi_variants/app/views/spree/admin/product_customization_types/index.html.erb b/spree_flexi_variants/app/views/spree/admin/product_customization_types/index.html.erb index f78fe76c..ca7b06ea 100644 --- a/spree_flexi_variants/app/views/spree/admin/product_customization_types/index.html.erb +++ b/spree_flexi_variants/app/views/spree/admin/product_customization_types/index.html.erb @@ -3,7 +3,7 @@ <% content_for(:page_title, Spree.t("product_customization_types")) %> <% content_for(:page_actions) do %> <% end %> diff --git a/spree_multi_site/Gemfile b/spree_multi_site/Gemfile index 5581d11c..6e58e57d 100644 --- a/spree_multi_site/Gemfile +++ b/spree_multi_site/Gemfile @@ -3,11 +3,12 @@ source 'http://ruby.taobao.org' group :development,:test do - gem 'mail_view' + gem 'mysql2' + #gem 'mail_view' # Provides basic authentication functionality for testing parts of your engine gem 'spree', '~>2.4' # required to create dummy - #gem 'spree_auth_devise', github: 'spree/spree_auth_devise', branch: '2-0-stable' + #test require it. site create user + #gem 'spree_auth_devise', github: 'spree/spree_auth_devise', branch: '2-4-stable' end gemspec - diff --git a/spree_multi_site/app/assets/javascripts/store/spree_multi_site.js b/spree_multi_site/app/assets/javascripts/store/spree_multi_site.js index d10fba7f..fa0a16ee 100644 --- a/spree_multi_site/app/assets/javascripts/store/spree_multi_site.js +++ b/spree_multi_site/app/assets/javascripts/store/spree_multi_site.js @@ -1 +1 @@ -//= require store/spree_frontend +//= require spree/frontend diff --git a/spree_multi_site/app/assets/stylesheets/store/spree_multi_site.css b/spree_multi_site/app/assets/stylesheets/store/spree_multi_site.css index bce0f84f..ad7db303 100644 --- a/spree_multi_site/app/assets/stylesheets/store/spree_multi_site.css +++ b/spree_multi_site/app/assets/stylesheets/store/spree_multi_site.css @@ -1,3 +1,3 @@ /* - *= require store/spree_frontend + *= require spree/frontend */ diff --git a/spree_multi_site/app/controllers/spree/admin/general_settings_controller_decorator.rb b/spree_multi_site/app/controllers/spree/admin/general_settings_controller_decorator.rb index 94e6da54..05e7e04f 100644 --- a/spree_multi_site/app/controllers/spree/admin/general_settings_controller_decorator.rb +++ b/spree_multi_site/app/controllers/spree/admin/general_settings_controller_decorator.rb @@ -1,18 +1,28 @@ Spree::Admin::GeneralSettingsController.class_eval do #override original, update site model + def edit + @preferences_security = [:allow_ssl_in_production, + :allow_ssl_in_staging, :allow_ssl_in_development_and_test, + :check_for_spree_alerts] + @preferences_currency = [:display_currency, :hide_cents] + end + + def update - params.each do |name, value| - next unless Spree::Config.has_preference? name - Spree::Config[name] = value - if name =='site_name' - Spree::Site.current.update_attribute(:name, value) - end - if name =='site_url' - Spree::Site.current.update_attribute(:domain, value) - end - end - flash[:success] = Spree.t(:successfully_updated, :resource => Spree.t(:general_settings)) + #params.each do |name, value| + # next unless Spree::Config.has_preference? name + # Spree::Config[name] = value + #end + current_store.update_attributes store_params + + current_store.site.update_attributes site_params + flash[:success] = Spree.t(:successfully_updated, resource: Spree.t(:general_settings)) redirect_to edit_admin_general_settings_path end + + def site_params + params.require(:site).permit(Spree::PermittedAttributes.site_attributes) + end + end \ No newline at end of file diff --git a/spree_multi_site/app/controllers/spree/admin/images_controller_decorator.rb b/spree_multi_site/app/controllers/spree/admin/images_controller_decorator.rb index af1212d3..e65ebeee 100644 --- a/spree_multi_site/app/controllers/spree/admin/images_controller_decorator.rb +++ b/spree_multi_site/app/controllers/spree/admin/images_controller_decorator.rb @@ -1,24 +1,24 @@ Spree::Admin::ImagesController.class_eval do - create.before :update_paperclip_settings - update.before :update_paperclip_settings + #create.before :update_paperclip_settings + #update.before :update_paperclip_settings private + # we do not support this feature now. # copy from image_settings_controller # by default Spree::Image.attachment_definitions is set before site initialize, we need reset it after get site. - def update_paperclip_settings - if Spree::Config[:use_s3] - s3_creds = { :access_key_id => Spree::Config[:s3_access_key], :secret_access_key => Spree::Config[:s3_secret], :bucket => Spree::Config[:s3_bucket] } - Spree::Image.attachment_definitions[:attachment][:storage] = :s3 - Spree::Image.attachment_definitions[:attachment][:s3_credentials] = s3_creds - Spree::Image.attachment_definitions[:attachment][:s3_headers] = ActiveSupport::JSON.decode(Spree::Config[:s3_headers]) - Spree::Image.attachment_definitions[:attachment][:bucket] = Spree::Config[:s3_bucket] - else - Spree::Image.attachment_definitions[:attachment].delete :storage - end - - Spree::Image.attachment_definitions[:attachment][:styles] = ActiveSupport::JSON.decode(Spree::Config[:attachment_styles]).symbolize_keys! - Spree::Image.attachment_definitions[:attachment][:path] = Spree::Config[:attachment_path] - Spree::Image.attachment_definitions[:attachment][:default_url] = Spree::Config[:attachment_default_url] - Spree::Image.attachment_definitions[:attachment][:default_style] = Spree::Config[:attachment_default_style] - end + #def update_paperclip_settings + # if Spree::Config[:use_s3] + # s3_creds = { :access_key_id => Spree::Config[:s3_access_key], :secret_access_key => Spree::Config[:s3_secret], :bucket => Spree::Config[:s3_bucket] } + # Spree::Image.attachment_definitions[:attachment][:storage] = :s3 + # Spree::Image.attachment_definitions[:attachment][:s3_credentials] = s3_creds + # Spree::Image.attachment_definitions[:attachment][:s3_headers] = ActiveSupport::JSON.decode(Spree::Config[:s3_headers]) + # Spree::Image.attachment_definitions[:attachment][:bucket] = Spree::Config[:s3_bucket] + # else + # Spree::Image.attachment_definitions[:attachment].delete :storage + # end + # Spree::Image.attachment_definitions[:attachment][:styles] = ActiveSupport::JSON.decode(Spree::Config[:attachment_styles]).symbolize_keys! + # Spree::Image.attachment_definitions[:attachment][:path] = Spree::Config[:attachment_path] + # Spree::Image.attachment_definitions[:attachment][:default_url] = Spree::Config[:attachment_default_url] + # Spree::Image.attachment_definitions[:attachment][:default_style] = Spree::Config[:attachment_default_style] + #end end diff --git a/spree_multi_site/app/controllers/spree/admin/products_controller_decorator.rb b/spree_multi_site/app/controllers/spree/admin/products_controller_decorator.rb index c8a2f691..acd9a0f3 100644 --- a/spree_multi_site/app/controllers/spree/admin/products_controller_decorator.rb +++ b/spree_multi_site/app/controllers/spree/admin/products_controller_decorator.rb @@ -2,20 +2,17 @@ update.before :prepare_more_params create.before :prepare_more_params around_filter :only=>[:create,:edit, :update, :destroy] do |controller, action_block| - Spree::MultiSiteSystem.with_context_admin_site_product{ - action_block.call + Spree::MultiSiteSystem.with_context_free_taxon{ + action_block.call } end - - + + private def prepare_more_params if params[:product][:global_taxon_ids].present? params[:product][:global_taxon_ids] = params[:product][:global_taxon_ids].split(',') end - end - - #def prepare_multi_site_context - # Spree::MultiSiteSystem.setup_context('admin_site_product') - #end - end \ No newline at end of file + end + + end diff --git a/spree_multi_site/app/controllers/spree/api/variants_controller_decorator.rb b/spree_multi_site/app/controllers/spree/api/variants_controller_decorator.rb new file mode 100644 index 00000000..60044fcd --- /dev/null +++ b/spree_multi_site/app/controllers/spree/api/variants_controller_decorator.rb @@ -0,0 +1,8 @@ +Spree::Api::VariantsController.class_eval do + def index + # since variant have no site_id, we should join product here + @variants = scope.joins(:product).includes({ option_values: :option_type }, :product, :default_price, :images, { stock_items: :stock_location }) + .ransack(params[:q]).result.page(params[:page]).per(params[:per_page]) + respond_with(@variants) + end +end diff --git a/spree_multi_site/app/controllers/spree/sites_controller.rb b/spree_multi_site/app/controllers/spree/sites_controller.rb index 248521e0..f1eeecbb 100644 --- a/spree_multi_site/app/controllers/spree/sites_controller.rb +++ b/spree_multi_site/app/controllers/spree/sites_controller.rb @@ -7,14 +7,15 @@ def new if params[:template_theme_id].present? @template_theme = Spree::TemplateTheme.foreign.find params[:template_theme_id] end - @site = Site.new + @site = Site.new @user = @site.users.build + @store = @site.stores.build end # called from dalianshops home page def quick_lunch - params[:user][:password_confirmation] = params[:user][:password] - @site = create_site( params[:site], params[:user] ) + + @site = create_site( permitted_resource_params ) if @site.persisted? redirect_to @site.admin_url else @@ -28,7 +29,7 @@ def show end def create - @site = create_site( params[:site], params[:user] ) + @site = create_site( permitted_resource_params ) if @site.persisted? flash[:success] = Spree.t(:site_successfully_opened, :site_name => @site.name) #redirect_to @site.admin_url, format: 'js', status: 303 @@ -44,13 +45,9 @@ def create end # options - def create_site( site_params, user_params, options= {}) - site = Site.new(site_params) - user = Spree.user_class.new(user_params) - site.users << user + def create_site( permitted_site_params) + site = Site.new(permitted_site_params) if site.save - site.users.first.spree_roles << Spree::Role.find_by_name('admin') - shipping_category = site.shipping_categories.create!( :name=>Spree.t(:default)) # should not add @site.name as suffix of role.name, User.admin require :name="admin" if site.has_sample? site.load_sample @@ -63,7 +60,14 @@ def create_site( site_params, user_params, options= {}) end site end - + + def permitted_resource_params + params[object_name].present? ? params.require(object_name).permit! : ActionController::Parameters.new + end + + def object_name + 'site' + end end end \ No newline at end of file diff --git a/spree_multi_site/app/helpers/spree/base_helper_decorator.rb b/spree_multi_site/app/helpers/spree/base_helper_decorator.rb new file mode 100644 index 00000000..e75ded08 --- /dev/null +++ b/spree_multi_site/app/helpers/spree/base_helper_decorator.rb @@ -0,0 +1,15 @@ +module Spree + module BaseHelper + private + # override original, always return style for feature :aliyun_oss + # Returns style of image or nil + def image_style_from_method_name(method_name) + if method_name.to_s.match(/_image$/) && style = method_name.to_s.sub(/_image$/, '') + #possible_styles = Spree::Image.attachment_definitions[:attachment][:styles] + #style if style.in? possible_styles.with_indifferent_access + style + end + end + + end +end diff --git a/spree_multi_site/app/jobs/sample_seed_job.rb b/spree_multi_site/app/jobs/sample_seed_job.rb index df3fd168..7efe4e38 100644 --- a/spree_multi_site/app/jobs/sample_seed_job.rb +++ b/spree_multi_site/app/jobs/sample_seed_job.rb @@ -1,14 +1,13 @@ class SampleSeedJob < Struct.new(:site) def perform - Spree::Site.current = site + Spree::Site.current = site #site.users.first, it require `spree_users`.`site_id` =current_site.id admin_user = site.users.first - site.load_sample -Rails.logger.info "user=#{admin_user.id}" + site.load_sample Spree::UserMailer.load_sample(admin_user).deliver end def success(job) site.update_attributes!(:loading_sample=>false) end -end \ No newline at end of file +end diff --git a/spree_multi_site/app/models/spree/decorator/taxon_decorator.rb b/spree_multi_site/app/models/spree/decorator/taxon_decorator.rb new file mode 100644 index 00000000..076290b8 --- /dev/null +++ b/spree_multi_site/app/models/spree/decorator/taxon_decorator.rb @@ -0,0 +1,3 @@ +Spree::Taxon.class_eval do + +end diff --git a/spree_multi_site/app/models/spree/image_decorator.rb b/spree_multi_site/app/models/spree/image_decorator.rb index d35777c6..6b4fa1aa 100644 --- a/spree_multi_site/app/models/spree/image_decorator.rb +++ b/spree_multi_site/app/models/spree/image_decorator.rb @@ -1,30 +1,46 @@ Spree::Image.class_eval do -#override attachement[:path] - Spree::Image.attachment_definitions[:attachment][:url] = '/shops/:rails_env/:site/products/:id/:basename_:style.:extension' - Spree::Image.attachment_definitions[:attachment][:path] = ':rails_root/public/shops/:rails_env/:site/products/:id/:basename_:style.:extension' + #override attachement[:path] + attachment_definitions[:attachment][:url] = '/shops/:rails_env/:site/products/:id/:basename_:style.:extension' + attachment_definitions[:attachment][:path] = ':rails_root/public/shops/:rails_env/:site/products/:id/:basename_:style.:extension' + attachment_definitions[:attachment][:styles] = { mini: '48x48>', small: '100x100>', product: '240x240>', medium: '350x350>', large: '600x600>' } - Spree::Image.attachment_definitions[:attachment][:styles] = { mini: '48x48>', small: '100x100>', product: '240x240>', medium: '350x350>', large: '600x600>' } + extend SpreeMultiSite::PaperclipAliyunOssHelper end Spree::Taxon.class_eval do - #override attachement[:path] + #override attachement[:path] attachment_definitions[:icon][:url] = '/shops/:rails_env/:site/taxons/:id/:style/:basename.:extension' attachment_definitions[:icon][:path] = ':rails_root/public/shops/:rails_env/:site/taxons/:id/:style/:basename.:extension' + + extend SpreeMultiSite::PaperclipAliyunOssHelper end #Spree::Post.class_eval do -# #override attachement[:path] -# attachment_definitions[:cover][:url] = '/shops/:rails_env/:site/posts/:id/:style/:basename.:extension' -# attachment_definitions[:cover][:path] = ':rails_root/public/shops/:rails_env/:site/posts/:id/:style/:basename.:extension' +# #override attachement[:path] +# attachment_definitions[:cover][:url] = '/shops/:rails_env/:site/posts/:id/:basename_:style.:extension' +# attachment_definitions[:cover][:path] = ':rails_root/public/shops/:rails_env/:site/posts/:id/:basename_:style.:extension' +# extend SpreeMultiSite::PaperclipAliyunOssHelper #end -Rails.application.config.spree_multi_site.site_scope_required_classes_with_image_from_other_gems.each do |attachement_name_symbol, extra_class| - extra_class.class_eval do - include Spree::MultiSiteSystem - # Spree::Post => 'posts' - attachment_definitions[attachement_name_symbol][:url] = "/shops/:rails_env/:site/#{extra_class.to_s.demodulize.underscore.pluralize}/:id/:style/:basename.:extension" - attachment_definitions[attachement_name_symbol][:path] = ':rails_root/public/shops/:rails_env/:site/#{extra_class.to_s.demodulize.underscore.pluralize}/:id/:style/:basename.:extension' +#Spree::TemplateFile.class_eval do +# attachment_definitions[:attachment][:url] = "/shops/:rails_env/:site/:class/:id/:basename_:style.:extension" +# attachment_definitions[:attachment][:path] = ":rails_root/public/shops/:rails_env/:site/:class/:id/:basename_:style.:extension" +# extend SpreeMultiSite::PaperclipAliyunOssHelper +#end - end +# these class do not define in spree and spree_multi_site, we should specify in +# site_scope_required_classes_with_image_from_other_gems, or cause error uninitialized constant +# eventhough spree_multi_site is in spree_abc, tests in spree_multi_site would not work. +# [['Spree::Post',:cover],['Spree::TemplateFile',:attachment]] +Rails.application.config.spree_multi_site.site_scope_required_classes_with_image_from_other_gems.each do | klass, attachement_name_symbol| +# extra_class.class_eval do +# include Spree::MultiSiteSystem +# end + klass.constantize.class_eval do + # Spree::Post => 'posts' class.to_s.demodulize.underscore.pluralize + attachment_definitions[attachement_name_symbol][:url] = "/shops/:rails_env/:site/:class/:id/:basename_:style.:extension" + attachment_definitions[attachement_name_symbol][:path] = ':rails_root/public/shops/:rails_env/:site/:class/:id/:basename_:style.:extension' + extend SpreeMultiSite::PaperclipAliyunOssHelper + end end diff --git a/spree_multi_site/app/models/spree/multi_site_configuration.rb b/spree_multi_site/app/models/spree/multi_site_configuration.rb index dd2cac21..524d2ac0 100644 --- a/spree_multi_site/app/models/spree/multi_site_configuration.rb +++ b/spree_multi_site/app/models/spree/multi_site_configuration.rb @@ -1,10 +1,4 @@ -# I have to create own configuration class, -# because that app_configuration_decorator is loaded after initialize, -# so in config/initializers/spree.rb, could not get seed_dir -# this new class would work module Spree class MultiSiteConfiguration < Preferences::Configuration - #description start with global means it is for whole application, not just one site - preference :seed_dir, :string, :default => File.join(SpreeMultiSite::Engine.root,'db') end end diff --git a/spree_multi_site/app/models/spree/site.rb b/spree_multi_site/app/models/spree/site.rb index 6ba7c129..3653212b 100644 --- a/spree_multi_site/app/models/spree/site.rb +++ b/spree_multi_site/app/models/spree/site.rb @@ -1,13 +1,14 @@ #encoding: utf-8 class Spree::Site < ActiveRecord::Base - cattr_accessor :unknown,:subdomain_regexp, :loading_fake_order_with_sample + cattr_accessor :subdomain_regexp + has_many :taxonomies,:inverse_of =>:site,:dependent=>:destroy has_many :products,:inverse_of =>:site,:dependent=>:destroy has_many :orders,:inverse_of =>:site,:dependent=>:destroy - has_many :users,:dependent=>:destroy, :class_name=>"Spree::User" #Spree.user_class.to_s - #FIXME,:inverse_of =>:site, it cause uninitialized constant Spree::Site::, + has_many :users,:dependent=>:destroy, :class_name=>Spree.user_class.to_s + #FIXME,:inverse_of =>:site, it cause uninitialized constant Spree::Site::, has_many :tax_categories,:inverse_of =>:site,:dependent=>:destroy - + has_many :shipping_categories,:dependent=>:destroy has_many :shipping_methods,:dependent=>:destroy has_many :prototypes,:dependent=>:destroy @@ -16,62 +17,70 @@ class Spree::Site < ActiveRecord::Base has_many :payment_methods,:dependent=>:destroy has_many :assets,:dependent=>:destroy has_many :zones,:dependent=>:destroy - has_many :state_changes,:dependent=>:destroy + has_many :state_changes,:dependent=>:destroy + + has_many :stores, :dependent=>:destroy #acts_as_nested_set + accepts_nested_attributes_for :stores accepts_nested_attributes_for :users - - #app_configuration require site_id - self.unknown = Struct.new(:id).new(0) + # it is load before create site table. self.new would trigger error "Table spree_sites' doesn't exist" # db/migrate/some_migration is using Spree::Product, it has default_scope using Site.current.id # so it require a default value. self.subdomain_regexp = /\A([a-z0-9\-])*\Z/ - self.loading_fake_order_with_sample = false + + #these attr is only used when create site, it is unavailabe in other case. + attr_accessor :email, :password, :password_confirmation + validates :name, length: 4..32 #"中国".length=> 2 validates :short_name, uniqueness: true, presence: true, length: 4..32, format: {with: subdomain_regexp} #, unless: "domain.blank?" - validates_uniqueness_of :domain, :allow_blank=>true + validates_uniqueness_of :domain, :allow_blank=>true #attr_accessible :name, :domain, :short_name, :has_sample #generate short name fro name before_validation :set_short_name - + after_create :add_default_data + class << self def dalianshops #in development, we may change site domain - find_by_short_name('first')#find_by_domain + find_by_short_name('www')#find_by_domain end - + def current - ::Thread.current[:spree_site] || self.unknown + Spree::Store.current.site end - + def current=(some_site) - ::Thread.current[:spree_site] = some_site + if some_site # durring test, add_default_data cause some_site nil + Spree::Store.current = Spree::Store.unscoped.where( site_id: some_site.id ).first + end + some_site end - + # execute block with given site def with_site(new_site) original_current = self.current begin self.current = new_site - yield + yield( new_site ) ensure - self.current = original_current + self.current = original_current end end + + def system_top_domain + Rails.application.config.spree_multi_site.system_top_domain + end end - + def dalianshops? - self == self.class.dalianshops + self == self.class.dalianshops end - + def current? self == self.class.current end - - def unknown? - !(self.id>0) - end - + def load_sample( ) require 'ffaker' # global tables @@ -85,7 +94,7 @@ def load_sample( ) # [properties(site), prototypes(site)] -> properties_prototypes # , option_types(site)] ->option_type_prototypes # ->products(site)->variants(site?)->assets(site) - # payment_methods(site)->payments->adjustments + # payment_methods(site)->payments->adjustments # ->payment_capture_events # ->alipay_transactions( source ) # preference(site) @@ -95,36 +104,36 @@ def load_sample( ) # to be confirm # spree_tracker, state_changes # return_authorizations - # mail_methods, + # mail_methods, # friendly_id_slugs # promotion_categories -> promotions -> promotion_rules - # -> promotion_actions - # product_promotion_rules, taxons_promotion_rules, - # + # -> promotion_actions + # product_promotion_rules, taxons_promotion_rules, + # # stores #:spree_refunds #:spree_return_authorization_inventory_units #:spree_return_authorizations #:spree_refund_reasons #:spree_customer_returns - + #:spree_reimbursements #:spree_reimbursement_types #:spree_reimbursement_credits #:spree_taxons_prototypes - + # unused table # credit_cards(site?), gateways(site?) # raise "exists products" if self.products.any? - self.class.with_site( self ) do - load_sample_products + self.class.with_site( self ) do + load_sample_products end self end - + def unload_sample - self.class.with_site( self ) do + self.class.with_site( self ) do self.orders.each{|order| order.state_changes.clear order.inventory_units.clear @@ -145,12 +154,12 @@ def unload_sample taxonomy.root.destroy # remove taxons taxonomy.destroy } - + self.zones.each{|zone| zone.destroy } self.shipping_methods.clear - + #TODO fix taxons.taconomy_id self.users.includes(:ship_address,:bill_address).offset(1).each{|user| user.bill_address.destroy @@ -160,39 +169,48 @@ def unload_sample #shipping_method, calculator, creditcard, inventory_units, state_change,tokenized_permission #TODO remove image files self.assets.clear - #FIXME seems it do not work - self.clear_preferences #remove preferences #TODO clear those tables # creditcarts,preferences - self.state_changes.clear + self.state_changes.clear end self end - + # current site'subdomain => short_name.dalianshops.com def subdomain - return self.domain if dalianshops? #fix: first.dalianshops.com - ([self.short_name] + self.class.dalianshops.domain.split('.')[1..-1]).join('.') + short_name + '.' + self.class.system_top_domain end - + def admin_url "http://"+subdomain+"/admin" end - + private + + def add_default_data + #current site is first, self is another. + self.class.with_site( self ) do| site | + site.stores.create!( name: site.name, code: site.short_name ) + user_attributes = { email: site.email, password: site.password, password_confirmation: password_confirmation } + user = site.users.create!(user_attributes) + user.spree_roles << Spree::Role.find_by_name('admin') + site.shipping_categories.create!( name: Spree.t(:default) ) + end + end + def load_sample_products - file = Pathname.new(File.join(SpreeMultiSite::Config.seed_dir, 'samples', "seed.rb")) + file = File.join( Rails.application.root, 'db', 'samples', "seed.rb") load file end - + def load_sample_orders - file = Pathname.new(File.join(SpreeMultiSite::Config.seed_dir, 'fake_order', "seed.rb")) + file = File.join( Rails.application.root, 'db', 'fake_order', "seed.rb") load file end - + def set_short_name if short_name.blank? - self.short_name = name.to_url + self.short_name = name.to_url if self.class.exists?(:short_name=> self.short_name) self.short_name << "-#{(self.class.last.id+1).to_s}" end diff --git a/spree_multi_site/app/models/spree/site_decorator.rb b/spree_multi_site/app/models/spree/site_decorator.rb index 41a4ee28..6839890b 100644 --- a/spree_multi_site/app/models/spree/site_decorator.rb +++ b/spree_multi_site/app/models/spree/site_decorator.rb @@ -3,19 +3,24 @@ Spree::Asset.class_eval do include Spree::MultiSiteSystem end + Spree::Configuration.class_eval do belongs_to :site default_scope { where(:site_id => Spree::Site.current.id) } -end +end Spree::LogEntry.class_eval do belongs_to :site default_scope { where(:site_id => Spree::Site.current.id) } -end +end Spree::OptionType.class_eval do belongs_to :site default_scope { where(:site_id => Spree::Site.current.id) } -end + clear_validators! + # Add new validates_uniqueness_of with correct scope + validates :name, :uniqueness => { :scope => [:site_id] } + +end Spree::Order.class_eval do include Spree::MultiSiteSystem @@ -23,34 +28,37 @@ # we should never call LineItem.find or LineItem.new # use @order.line_items, @order.add_variant instead -Spree::LineItem.class_eval do - #this cause ActiveRecord::ReadOnlyRecord, while modify lineitem - #default_scope :joins => :order - #default_scope {where("spree_orders.site_id=?", Spree::Site.current.id)} -end Spree::Prototype.class_eval do belongs_to :site default_scope { where(:site_id => Spree::Site.current.id) } -end +end Spree::Preference.class_eval do - belongs_to :site - default_scope { where(:site_id => Spree::Site.current.id) } -end + include Spree::MultiSiteSystem +end Spree::PaymentMethod.class_eval do - belongs_to :site - default_scope { where(:site_id => Spree::Site.current.id) } -end + include Spree::MultiSiteSystem +end Spree::Product.class_eval do include Spree::MultiSiteSystem include Spree::ProductExtraScope - + has_many :global_classifications, dependent: :delete_all has_many :global_taxons, through: :global_classifications, source: :taxon + + # Try building a slug based on the following fields in increasing order of specificity. + def slug_candidates + [ + :name, + [:name, :sku], + [:name, :sku, :site_id] + ] + end + end Spree::Property.class_eval do @@ -61,18 +69,16 @@ #TODO add site_id into shipments? Spree::ShippingCategory.class_eval do - belongs_to :site - default_scope { where(:site_id => Spree::Site.current.id) } + include Spree::MultiSiteSystem end Spree::ShippingMethod.class_eval do - belongs_to :site - default_scope { where(:site_id => Spree::Site.current.id) } + include Spree::MultiSiteSystem end + Spree::Taxonomy.class_eval do - belongs_to :site - default_scope { where(:site_id => Spree::Site.current.id) } + include Spree::MultiSiteSystem end @@ -81,24 +87,24 @@ has_many :global_classifications, dependent: :delete_all has_many :global_products, through: :global_classifications, source: :product - + end Spree::TaxCategory.class_eval do - + belongs_to :site default_scope { where(:site_id => Spree::Site.current.id) } clear_validators! # Add new validates_uniqueness_of with correct scope - validates :name, :uniqueness => { :scope => [:site_id,:deleted_at] } + validates :name, :uniqueness => { scope: [:site_id,:deleted_at], allow_blank: true } end # TaxRate is join table, include tax_catory_id and zone_id # in TaxRate.match it called method :all, so we have to add joins=>tax_category -# in fact, we should never use TaxRate in spree_abc for now. +# in fact, we should never use TaxRate in spree_abc for now. Spree::TaxRate.class_eval do default_scope { joins( :tax_category). where("spree_tax_categories.site_id=?", Spree::Site.current.id) } end @@ -113,22 +119,34 @@ # 1. we required dalianshops user have unique email, # 2. we allow user modify their password after sign up. # fix unique with scope [site_id] would conflict with 1 - belongs_to :site - default_scope { where(:site_id => Spree::Site.current.id) } + include Spree::MultiSiteSystem +end + +Spree::Variant.class_eval do + clear_validators! + # copy original validates + #validate :check_price + + validates :cost_price, numericality: { greater_than_or_equal_to: 0, allow_nil: true } + validates :price, numericality: { greater_than_or_equal_to: 0, allow_nil: true } + # disable uniqueness_of :sku + validates_uniqueness_of :sku, allow_blank: true, conditions: -> { joins(:product).where( spree_variants: { deleted_at: nil}, spree_products: {site_id: Spree::Site.current.id } ) } + end Spree::Zone.class_eval do belongs_to :site default_scope { where(:site_id => Spree::Site.current.id) } - + clear_validators! # Add new validates_uniqueness_of with correct scope validates :name, :presence => true, :uniqueness => { :scope => [:site_id] } -end +end + Rails.application.config.spree_multi_site.site_scope_required_classes_from_other_gems.each do |extra_class| - extra_class.class_eval do + extra_class.constantize.class_eval do belongs_to :site default_scope { where(:site_id => Spree::Site.current.id) } - end + end end diff --git a/spree_multi_site/app/models/spree/store_decorator.rb b/spree_multi_site/app/models/spree/store_decorator.rb new file mode 100644 index 00000000..e1437409 --- /dev/null +++ b/spree_multi_site/app/models/spree/store_decorator.rb @@ -0,0 +1,55 @@ +Spree::Store.class_eval do + # Do not use default_scope, in view template_theme/foreign, we want to get store of template_theme. + # include Spree::MultiSiteSystem + belongs_to :site + + clear_validators! + + #override original current + def self.current(domain = nil) + #UnknownStore.instance is for test only + ::Thread.current[:spree_store] || UnknownStore.instance + end + + def self.current=(some_store) + ::Thread.current[:spree_store] = some_store + end + + def self.by_domain( domain ) + current_store = if domain.is_a? String + if domain.end_with? Spree::Site.system_top_domain + short_name = domain.split('.').first + self.find_by_code(short_name) + else + self.by_url(domain).first + end + else + self.first + end + current_store + end + + # we can not easily modify cookies except firefox, we'll add default_site for debug page on other browser. + # we could set default site for missing site as well. + def self.default + where( default: true ).first + end + + # current site'subdomain => short_name.dalianshops.com + def subdomain + code + '.' + Spree::Site.system_top_domain + end + + #app_configuration require site_id + class UnknownStore + include Singleton + def id + 0 + end + + def site + #app_configuration require site_id + Struct.new(:id).new(0) + end + end +end diff --git a/spree_multi_site/app/views/spree/admin/general_settings/edit.html.erb b/spree_multi_site/app/views/spree/admin/general_settings/edit.html.erb new file mode 100644 index 00000000..9de4e0d8 --- /dev/null +++ b/spree_multi_site/app/views/spree/admin/general_settings/edit.html.erb @@ -0,0 +1,129 @@ +<%= render :partial => 'spree/admin/shared/configuration_menu' %> + +<% content_for :page_title do %> + <%= Spree.t(:general_settings) %> +<% end %> + +<%= form_tag admin_general_settings_path, method: :put do %> +
    + +
    + + <%= fields_for :store do |f| %> +
    + <%= f.label :name %> +
    + <%= f.text_field :name, class: 'fullwidth' %> +
    + +
    + <%= f.label :seo_title %> +
    + <%= f.text_field :seo_title, class: 'fullwidth' %> +
    + +
    + <%= f.label :meta_keywords %> +
    + <%= f.text_field :meta_keywords, class: 'fullwidth' %> +
    + +
    + <%= f.label :meta_description %> +
    + <%= f.text_field :meta_description, class: 'fullwidth' %> +
    + +
    + <%= f.label :url %> +
    + <%= f.text_field :url, class: 'fullwidth' %> +
    + +
    + <%= f.label :mail_from_address %> +
    + <%= f.text_field :mail_from_address, class: 'fullwidth' %> +
    + <% end %> + + <%= fields_for :site, @store.site do |f| %> +
    +
    +
    + <%= Spree.t(:security_settings)%> + <% @preferences_security.each do |key| %> +
    + <%= f.check_box key %> + <%= label_tag(key, Spree.t(key)) + tag(:br) %> +
    + <% end %> +
    +
    + <%= Spree.t(:clear_cache)%> +
    + <%= Spree.t(:clear_cache_warning) %> +
    +
    + <%= button Spree.t(:clear_cache), '', 'button', id: "clear_cache" %> +
    +
    +
    +
    +
    + <%= Spree.t(:currency_settings)%> + <% @preferences_currency.each do |key| %> +
    + <%= f.check_box key %> + <%= label_tag(key, Spree.t(key)) + tag(:br) %> +
    + <% end %> +
    + <%= label_tag :currency, Spree.t(:choose_currency) %>
    + <%= f.select :currency, currency_options, {},:class => 'fullwidth' %> +
    +
    + <%= label_tag Spree.t(:currency_symbol_position) %>
    +
    +
      +
    • + <%= f.radio_button :currency_symbol_position, "before" %> + <%= label_tag :currency_symbol_position_before, Spree::Money.new(10, :symbol_position => "before") %> +
    • +
    • + <%= f.radio_button :currency_symbol_position, "after" %> + <%= label_tag :currency_symbol_position_after, Spree::Money.new(10, :symbol_position => "after") %> +
    • +
    +
    +
    +
    + <%= label_tag :currency_decimal_mark, Spree.t(:currency_decimal_mark) %>
    + <%= f.text_field :currency_decimal_mark, :size => 3 %> +
    +
    + <%= label_tag :currency_thousands_separator, Spree.t(:currency_thousands_separator) %>
    + <%= f.text_field :currency_thousands_separator, :size => 3 %> +
    +
    +
    +
    + <% end %> + +
    + <%= button Spree.t('actions.update'), 'refresh' %> + <%= Spree.t(:or) %> + <%= link_to_with_icon 'remove', Spree.t('actions.cancel'), edit_admin_general_settings_url, :class => 'button' %> +
    + +
    + +
    + + +<% end %> + + diff --git a/spree_multi_site/app/views/spree/admin/sites/index.html.erb b/spree_multi_site/app/views/spree/admin/sites/index.html.erb index 14ac1442..dc8f2755 100644 --- a/spree_multi_site/app/views/spree/admin/sites/index.html.erb +++ b/spree_multi_site/app/views/spree/admin/sites/index.html.erb @@ -1,5 +1,5 @@ <% content_for :page_title do %> - <%= Spree.t('site.index') %> + <%= Spree.t('site.index') %> <% end %> @@ -19,18 +19,17 @@ - + <% end %>
    <%= site.name %> <%= site.subdomain %><%= site.users.admin.first.email %> + <%= Spree::MultiSiteSystem.with_context_admin_sites{ site.users.admin.first.email }%> + <%= pretty_time site.created_at %> - <%= link_to_with_icon 'icon-eye', Spree.t(:admin_store), site.admin_url, {:target=>'_blank',:no_text => true} %> + <%= link_to_with_icon 'eye', Spree.t(:admin_store), site.admin_url, {:target=>'_blank',:no_text => true} %>
    - -<%= paginate @sites %> - - +<%= paginate @sites %> diff --git a/spree_multi_site/app/views/spree/sites/_form.html.erb b/spree_multi_site/app/views/spree/sites/_form.html.erb index 83b2c9d5..e6376e5d 100644 --- a/spree_multi_site/app/views/spree/sites/_form.html.erb +++ b/spree_multi_site/app/views/spree/sites/_form.html.erb @@ -3,25 +3,25 @@

    <%= f.label :name %>
    - <%= f.text_field :name, :class => 'fullwidth title', :minlength=>4, :maxlength=>30, :required=>"" %> + <%= f.text_field :name, :minlength=>4, :maxlength=>30, :required=>"" %>

    -

    - <%= f.label :short_name %>
    - <%= f.text_field :short_name, :class => 'fullwidth title', :minlength=>4, :maxlength=>30, :required=>"" %> - .dalianshops.com -

    - - <% if @site.new_record? %> - <%= render :partial => 'spree/sites/user', :locals => { :user => @user } %> - <% end %> +

    + <%= f.label :email, Spree.t(:email) %>
    + <%= f.email_field :email %> +

    + +

    + <%= f.label :password, Spree.t(:password) %>
    + <%= f.password_field :password, :minlength=>6, :maxlength=>30, :required=>"" %> +

    <% if @template_theme.present? %>

    <%= f.label :foreign_theme_id %>
    - <%= f.hidden_field :foreign_theme_id, :value=>@template_theme.id %> - <%= text_field_tag :template_theme_name, @template_theme.title, :class => 'fullwidth title', :readonly=>true, :size=>30 %> -

    + <%= f.hidden_field :foreign_theme_id, :value=>@template_theme.id %> + <%= text_field_tag :template_theme_name, @template_theme.title, :readonly=>true, :size=>30 %> +

    <% end %>
    diff --git a/spree_multi_site/app/views/spree/sites/_form_for_spree_theme.html.erb b/spree_multi_site/app/views/spree/sites/_form_for_spree_theme.html.erb deleted file mode 100644 index 2b164f0d..00000000 --- a/spree_multi_site/app/views/spree/sites/_form_for_spree_theme.html.erb +++ /dev/null @@ -1,37 +0,0 @@ -<% - @site ||= SpreeTheme.site_class.new - @user ||= @site.users.build -%> -<%= form_for :site, :url => quick_lunch_path, :html=>{:id=>"site_form"} do |f| %> -
    -

    - <%= f.text_field :name, :class => 'fullwidth title', :placeholder => Spree.t(:name_store), :minlength=>4, :maxlength=>24, :required=>"" %> -

    -

    - <%= email_field :user, :email, :placeholder => Spree.t(:email)%> -

    -

    - <%= password_field :user,:password, :placeholder=>Spree.t(:password), :minlength=>6, :maxlength=>24, :required=>"" %> -

    -

    <%= f.button Spree.t(:new_site), :class => 'button primary' %>

    -
    -<% end %> - diff --git a/spree_multi_site/app/views/spree/sites/after_new.html.erb b/spree_multi_site/app/views/spree/sites/after_new.html.erb index 68adf890..06d56629 100644 --- a/spree_multi_site/app/views/spree/sites/after_new.html.erb +++ b/spree_multi_site/app/views/spree/sites/after_new.html.erb @@ -1,6 +1,6 @@ <%= t 'successfully_created',:resource=> "#{t('site')}:#{@site.name} "%>
    -网站地址 <%=link_to @site.subdomain, :host=>@site.subdomain,:controller=>"home"%>
    +网站地址 <%=link_to @site.subdomain, :host=>@site.subdomain %>
    管理地址 <%=link_to @site.subdomain+'/admin', 'http://'+@site.subdomain+'/admin' %> <% if @site.loading_sample? %> <%= t :loading_sample %> diff --git a/spree_multi_site/app/views/spree/sites/new.html.erb b/spree_multi_site/app/views/spree/sites/new.html.erb index 02fd1cec..07bffd71 100644 --- a/spree_multi_site/app/views/spree/sites/new.html.erb +++ b/spree_multi_site/app/views/spree/sites/new.html.erb @@ -1,7 +1,7 @@ <%= render :partial => 'spree/shared/error_messages', :locals => { :target => @site } %>
    <%= t(:new_site) %>
    -<%= form_for :site, :url => new_site_path do |f| %> +<%= form_for @site, :url => create_site_path do |f| %> <%= render :partial => "form", :locals => { :f => f } %>

    <%= f.submit Spree.t(:create), :class => 'button primary' %>

    <% end %> diff --git a/spree_multi_site/config/locales/zh-CN.yml b/spree_multi_site/config/locales/zh-CN.yml index 34df2ca1..b177aaf1 100644 --- a/spree_multi_site/config/locales/zh-CN.yml +++ b/spree_multi_site/config/locales/zh-CN.yml @@ -17,6 +17,10 @@ zh-CN: domain: 网店域名 created_at: 创建时间 foreign_theme_id: 模板 + spree/site/users: + email: 电子邮箱 + password: 密码 + password_confirmation: 密码 spree: admin_store: 管理商店 errors: diff --git a/spree_multi_site/config/routes.rb b/spree_multi_site/config/routes.rb index ee7f3074..671e5a17 100644 --- a/spree_multi_site/config/routes.rb +++ b/spree_multi_site/config/routes.rb @@ -3,12 +3,18 @@ namespace :admin do resources :sites end - post '/quick_lunch',:to => 'sites#quick_lunch', :as => :quick_lunch + # one click get form to trial + get 'one_click_trial' => 'sites#one_click_trial', :as => :one_click_trial + + # bottom signup form + post 'quick_lunch',:to => 'sites#quick_lunch', :as => :quick_lunch + + # create site with template_theme get 'new_site' => 'sites#new', :as => :new_site post 'create_site' => 'sites#create', :as => :create_site resources :sites, :only => [:show] - if Rails.env.development? - mount Spree::UserMailer::Preview => 'mail_view' - end + #if Rails.env.development? + # mount Spree::UserMailer::Preview => 'mail_view' + #end end diff --git a/spree_multi_site/db/default/spree/countries.rb b/spree_multi_site/db/default/spree/countries.rb index 32483fac..da6c4ba1 100644 --- a/spree_multi_site/db/default/spree/countries.rb +++ b/spree_multi_site/db/default/spree/countries.rb @@ -1,229 +1,229 @@ -Spree::Country.create!({"name"=>"Chad", "iso3"=>"TCD", "iso"=>"TD", "iso_name"=>"CHAD", "numcode"=>"148"}, :without_protection => true) -Spree::Country.create!({"name"=>"Faroe Islands", "iso3"=>"FRO", "iso"=>"FO", "iso_name"=>"FAROE ISLANDS", "numcode"=>"234"}, :without_protection => true) -Spree::Country.create!({"name"=>"India", "iso3"=>"IND", "iso"=>"IN", "iso_name"=>"INDIA", "numcode"=>"356"}, :without_protection => true) -Spree::Country.create!({"name"=>"Nicaragua", "iso3"=>"NIC", "iso"=>"NI", "iso_name"=>"NICARAGUA", "numcode"=>"558"}, :without_protection => true) -Spree::Country.create!({"name"=>"Saint Lucia", "iso3"=>"LCA", "iso"=>"LC", "iso_name"=>"SAINT LUCIA", "numcode"=>"662"}, :without_protection => true) -Spree::Country.create!({"name"=>"Fiji", "iso3"=>"FJI", "iso"=>"FJ", "iso_name"=>"FIJI", "numcode"=>"242"}, :without_protection => true) -Spree::Country.create!({"name"=>"Indonesia", "iso3"=>"IDN", "iso"=>"ID", "iso_name"=>"INDONESIA", "numcode"=>"360"}, :without_protection => true) -Spree::Country.create!({"name"=>"Niger", "iso3"=>"NER", "iso"=>"NE", "iso_name"=>"NIGER", "numcode"=>"562"}, :without_protection => true) -Spree::Country.create!({"name"=>"Saint Pierre and Miquelon", "iso3"=>"SPM", "iso"=>"PM", "iso_name"=>"SAINT PIERRE AND MIQUELON", "numcode"=>"666"}, :without_protection => true) -Spree::Country.create!({"name"=>"Finland", "iso3"=>"FIN", "iso"=>"FI", "iso_name"=>"FINLAND", "numcode"=>"246"}, :without_protection => true) -Spree::Country.create!({"name"=>"Nigeria", "iso3"=>"NGA", "iso"=>"NG", "iso_name"=>"NIGERIA", "numcode"=>"566"}, :without_protection => true) -Spree::Country.create!({"name"=>"Saint Vincent and the Grenadines", "iso3"=>"VCT", "iso"=>"VC", "iso_name"=>"SAINT VINCENT AND THE GRENADINES", "numcode"=>"670"}, :without_protection => true) -Spree::Country.create!({"name"=>"France", "iso3"=>"FRA", "iso"=>"FR", "iso_name"=>"FRANCE", "numcode"=>"250"}, :without_protection => true) -Spree::Country.create!({"name"=>"Iran, Islamic Republic of", "iso3"=>"IRN", "iso"=>"IR", "iso_name"=>"IRAN, ISLAMIC REPUBLIC OF", "numcode"=>"364"}, :without_protection => true) -Spree::Country.create!({"name"=>"Niue", "iso3"=>"NIU", "iso"=>"NU", "iso_name"=>"NIUE", "numcode"=>"570"}, :without_protection => true) -Spree::Country.create!({"name"=>"Samoa", "iso3"=>"WSM", "iso"=>"WS", "iso_name"=>"SAMOA", "numcode"=>"882"}, :without_protection => true) -Spree::Country.create!({"name"=>"French Guiana", "iso3"=>"GUF", "iso"=>"GF", "iso_name"=>"FRENCH GUIANA", "numcode"=>"254"}, :without_protection => true) -Spree::Country.create!({"name"=>"Iraq", "iso3"=>"IRQ", "iso"=>"IQ", "iso_name"=>"IRAQ", "numcode"=>"368"}, :without_protection => true) -Spree::Country.create!({"name"=>"San Marino", "iso3"=>"SMR", "iso"=>"SM", "iso_name"=>"SAN MARINO", "numcode"=>"674"}, :without_protection => true) -Spree::Country.create!({"name"=>"Ireland", "iso3"=>"IRL", "iso"=>"IE", "iso_name"=>"IRELAND", "numcode"=>"372"}, :without_protection => true) -Spree::Country.create!({"name"=>"Sao Tome and Principe", "iso3"=>"STP", "iso"=>"ST", "iso_name"=>"SAO TOME AND PRINCIPE", "numcode"=>"678"}, :without_protection => true) -Spree::Country.create!({"name"=>"Israel", "iso3"=>"ISR", "iso"=>"IL", "iso_name"=>"ISRAEL", "numcode"=>"376"}, :without_protection => true) -Spree::Country.create!({"name"=>"Saudi Arabia", "iso3"=>"SAU", "iso"=>"SA", "iso_name"=>"SAUDI ARABIA", "numcode"=>"682"}, :without_protection => true) -Spree::Country.create!({"name"=>"Italy", "iso3"=>"ITA", "iso"=>"IT", "iso_name"=>"ITALY", "numcode"=>"380"}, :without_protection => true) -Spree::Country.create!({"name"=>"Senegal", "iso3"=>"SEN", "iso"=>"SN", "iso_name"=>"SENEGAL", "numcode"=>"686"}, :without_protection => true) -Spree::Country.create!({"name"=>"Jamaica", "iso3"=>"JAM", "iso"=>"JM", "iso_name"=>"JAMAICA", "numcode"=>"388"}, :without_protection => true) -Spree::Country.create!({"name"=>"Japan", "iso3"=>"JPN", "iso"=>"JP", "iso_name"=>"JAPAN", "numcode"=>"392"}, :without_protection => true) -Spree::Country.create!({"name"=>"Jordan", "iso3"=>"JOR", "iso"=>"JO", "iso_name"=>"JORDAN", "numcode"=>"400"}, :without_protection => true) -Spree::Country.create!({"name"=>"Belgium", "iso3"=>"BEL", "iso"=>"BE", "iso_name"=>"BELGIUM", "numcode"=>"56"}, :without_protection => true) -Spree::Country.create!({"name"=>"Belize", "iso3"=>"BLZ", "iso"=>"BZ", "iso_name"=>"BELIZE", "numcode"=>"84"}, :without_protection => true) -Spree::Country.create!({"name"=>"Kazakhstan", "iso3"=>"KAZ", "iso"=>"KZ", "iso_name"=>"KAZAKHSTAN", "numcode"=>"398"}, :without_protection => true) -Spree::Country.create!({"name"=>"Uganda", "iso3"=>"UGA", "iso"=>"UG", "iso_name"=>"UGANDA", "numcode"=>"800"}, :without_protection => true) -Spree::Country.create!({"name"=>"Benin", "iso3"=>"BEN", "iso"=>"BJ", "iso_name"=>"BENIN", "numcode"=>"204"}, :without_protection => true) -Spree::Country.create!({"name"=>"Kenya", "iso3"=>"KEN", "iso"=>"KE", "iso_name"=>"KENYA", "numcode"=>"404"}, :without_protection => true) -Spree::Country.create!({"name"=>"Ukraine", "iso3"=>"UKR", "iso"=>"UA", "iso_name"=>"UKRAINE", "numcode"=>"804"}, :without_protection => true) -Spree::Country.create!({"name"=>"Bermuda", "iso3"=>"BMU", "iso"=>"BM", "iso_name"=>"BERMUDA", "numcode"=>"60"}, :without_protection => true) -Spree::Country.create!({"name"=>"Kiribati", "iso3"=>"KIR", "iso"=>"KI", "iso_name"=>"KIRIBATI", "numcode"=>"296"}, :without_protection => true) -Spree::Country.create!({"name"=>"Mexico", "iso3"=>"MEX", "iso"=>"MX", "iso_name"=>"MEXICO", "numcode"=>"484"}, :without_protection => true) -Spree::Country.create!({"name"=>"United Arab Emirates", "iso3"=>"ARE", "iso"=>"AE", "iso_name"=>"UNITED ARAB EMIRATES", "numcode"=>"784"}, :without_protection => true) -Spree::Country.create!({"name"=>"Bhutan", "iso3"=>"BTN", "iso"=>"BT", "iso_name"=>"BHUTAN", "numcode"=>"64"}, :without_protection => true) -Spree::Country.create!({"name"=>"Cuba", "iso3"=>"CUB", "iso"=>"CU", "iso_name"=>"CUBA", "numcode"=>"192"}, :without_protection => true) -Spree::Country.create!({"name"=>"North Korea", "iso3"=>"PRK", "iso"=>"KP", "iso_name"=>"KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF", "numcode"=>"408"}, :without_protection => true) -Spree::Country.create!({"name"=>"Micronesia, Federated States of", "iso3"=>"FSM", "iso"=>"FM", "iso_name"=>"MICRONESIA, FEDERATED STATES OF", "numcode"=>"583"}, :without_protection => true) -Spree::Country.create!({"name"=>"United Kingdom", "iso3"=>"GBR", "iso"=>"GB", "iso_name"=>"UNITED KINGDOM", "numcode"=>"826"}, :without_protection => true) -Spree::Country.create!({"name"=>"Bolivia", "iso3"=>"BOL", "iso"=>"BO", "iso_name"=>"BOLIVIA", "numcode"=>"68"}, :without_protection => true) -Spree::Country.create!({"name"=>"Cyprus", "iso3"=>"CYP", "iso"=>"CY", "iso_name"=>"CYPRUS", "numcode"=>"196"}, :without_protection => true) -Spree::Country.create!({"name"=>"South Korea", "iso3"=>"KOR", "iso"=>"KR", "iso_name"=>"KOREA, REPUBLIC OF", "numcode"=>"410"}, :without_protection => true) -Spree::Country.create!({"name"=>"Moldova, Republic of", "iso3"=>"MDA", "iso"=>"MD", "iso_name"=>"MOLDOVA, REPUBLIC OF", "numcode"=>"498"}, :without_protection => true) -Spree::Country.create!({"name"=>"United States", "iso3"=>"USA", "iso"=>"US", "iso_name"=>"UNITED STATES", "numcode"=>"840"}, :without_protection => true) -Spree::Country.create!({"name"=>"Bosnia and Herzegovina", "iso3"=>"BIH", "iso"=>"BA", "iso_name"=>"BOSNIA AND HERZEGOVINA", "numcode"=>"70"}, :without_protection => true) -Spree::Country.create!({"name"=>"Czech Republic", "iso3"=>"CZE", "iso"=>"CZ", "iso_name"=>"CZECH REPUBLIC", "numcode"=>"203"}, :without_protection => true) -Spree::Country.create!({"name"=>"Kuwait", "iso3"=>"KWT", "iso"=>"KW", "iso_name"=>"KUWAIT", "numcode"=>"414"}, :without_protection => true) -Spree::Country.create!({"name"=>"Monaco", "iso3"=>"MCO", "iso"=>"MC", "iso_name"=>"MONACO", "numcode"=>"492"}, :without_protection => true) -Spree::Country.create!({"name"=>"Uruguay", "iso3"=>"URY", "iso"=>"UY", "iso_name"=>"URUGUAY", "numcode"=>"858"}, :without_protection => true) -Spree::Country.create!({"name"=>"Botswana", "iso3"=>"BWA", "iso"=>"BW", "iso_name"=>"BOTSWANA", "numcode"=>"72"}, :without_protection => true) -Spree::Country.create!({"name"=>"Denmark", "iso3"=>"DNK", "iso"=>"DK", "iso_name"=>"DENMARK", "numcode"=>"208"}, :without_protection => true) -Spree::Country.create!({"name"=>"Guadeloupe", "iso3"=>"GLP", "iso"=>"GP", "iso_name"=>"GUADELOUPE", "numcode"=>"312"}, :without_protection => true) -Spree::Country.create!({"name"=>"Kyrgyzstan", "iso3"=>"KGZ", "iso"=>"KG", "iso_name"=>"KYRGYZSTAN", "numcode"=>"417"}, :without_protection => true) -Spree::Country.create!({"name"=>"Mongolia", "iso3"=>"MNG", "iso"=>"MN", "iso_name"=>"MONGOLIA", "numcode"=>"496"}, :without_protection => true) -Spree::Country.create!({"name"=>"Philippines", "iso3"=>"PHL", "iso"=>"PH", "iso_name"=>"PHILIPPINES", "numcode"=>"608"}, :without_protection => true) -Spree::Country.create!({"name"=>"Brazil", "iso3"=>"BRA", "iso"=>"BR", "iso_name"=>"BRAZIL", "numcode"=>"76"}, :without_protection => true) -Spree::Country.create!({"name"=>"Djibouti", "iso3"=>"DJI", "iso"=>"DJ", "iso_name"=>"DJIBOUTI", "numcode"=>"262"}, :without_protection => true) -Spree::Country.create!({"name"=>"Guam", "iso3"=>"GUM", "iso"=>"GU", "iso_name"=>"GUAM", "numcode"=>"316"}, :without_protection => true) -Spree::Country.create!({"name"=>"Lao People's Democratic Republic", "iso3"=>"LAO", "iso"=>"LA", "iso_name"=>"LAO PEOPLE'S DEMOCRATIC REPUBLIC", "numcode"=>"418"}, :without_protection => true) -Spree::Country.create!({"name"=>"Montserrat", "iso3"=>"MSR", "iso"=>"MS", "iso_name"=>"MONTSERRAT", "numcode"=>"500"}, :without_protection => true) -Spree::Country.create!({"name"=>"Pitcairn", "iso3"=>"PCN", "iso"=>"PN", "iso_name"=>"PITCAIRN", "numcode"=>"612"}, :without_protection => true) -Spree::Country.create!({"name"=>"Uzbekistan", "iso3"=>"UZB", "iso"=>"UZ", "iso_name"=>"UZBEKISTAN", "numcode"=>"860"}, :without_protection => true) -Spree::Country.create!({"name"=>"Brunei Darussalam", "iso3"=>"BRN", "iso"=>"BN", "iso_name"=>"BRUNEI DARUSSALAM", "numcode"=>"96"}, :without_protection => true) -Spree::Country.create!({"name"=>"Dominica", "iso3"=>"DMA", "iso"=>"DM", "iso_name"=>"DOMINICA", "numcode"=>"212"}, :without_protection => true) -Spree::Country.create!({"name"=>"Guatemala", "iso3"=>"GTM", "iso"=>"GT", "iso_name"=>"GUATEMALA", "numcode"=>"320"}, :without_protection => true) -Spree::Country.create!({"name"=>"Morocco", "iso3"=>"MAR", "iso"=>"MA", "iso_name"=>"MOROCCO", "numcode"=>"504"}, :without_protection => true) -Spree::Country.create!({"name"=>"Poland", "iso3"=>"POL", "iso"=>"PL", "iso_name"=>"POLAND", "numcode"=>"616"}, :without_protection => true) -Spree::Country.create!({"name"=>"Vanuatu", "iso3"=>"VUT", "iso"=>"VU", "iso_name"=>"VANUATU", "numcode"=>"548"}, :without_protection => true) -Spree::Country.create!({"name"=>"Dominican Republic", "iso3"=>"DOM", "iso"=>"DO", "iso_name"=>"DOMINICAN REPUBLIC", "numcode"=>"214"}, :without_protection => true) -Spree::Country.create!({"name"=>"Mozambique", "iso3"=>"MOZ", "iso"=>"MZ", "iso_name"=>"MOZAMBIQUE", "numcode"=>"508"}, :without_protection => true) -Spree::Country.create!({"name"=>"Portugal", "iso3"=>"PRT", "iso"=>"PT", "iso_name"=>"PORTUGAL", "numcode"=>"620"}, :without_protection => true) -Spree::Country.create!({"name"=>"Sudan", "iso3"=>"SDN", "iso"=>"SD", "iso_name"=>"SUDAN", "numcode"=>"736"}, :without_protection => true) -Spree::Country.create!({"name"=>"Venezuela", "iso3"=>"VEN", "iso"=>"VE", "iso_name"=>"VENEZUELA", "numcode"=>"862"}, :without_protection => true) -Spree::Country.create!({"name"=>"Ecuador", "iso3"=>"ECU", "iso"=>"EC", "iso_name"=>"ECUADOR", "numcode"=>"218"}, :without_protection => true) -Spree::Country.create!({"name"=>"Guinea", "iso3"=>"GIN", "iso"=>"GN", "iso_name"=>"GUINEA", "numcode"=>"324"}, :without_protection => true) -Spree::Country.create!({"name"=>"Myanmar", "iso3"=>"MMR", "iso"=>"MM", "iso_name"=>"MYANMAR", "numcode"=>"104"}, :without_protection => true) -Spree::Country.create!({"name"=>"Puerto Rico", "iso3"=>"PRI", "iso"=>"PR", "iso_name"=>"PUERTO RICO", "numcode"=>"630"}, :without_protection => true) -Spree::Country.create!({"name"=>"Suriname", "iso3"=>"SUR", "iso"=>"SR", "iso_name"=>"SURINAME", "numcode"=>"740"}, :without_protection => true) -Spree::Country.create!({"name"=>"Viet Nam", "iso3"=>"VNM", "iso"=>"VN", "iso_name"=>"VIET NAM", "numcode"=>"704"}, :without_protection => true) -Spree::Country.create!({"name"=>"Egypt", "iso3"=>"EGY", "iso"=>"EG", "iso_name"=>"EGYPT", "numcode"=>"818"}, :without_protection => true) -Spree::Country.create!({"name"=>"Guinea-Bissau", "iso3"=>"GNB", "iso"=>"GW", "iso_name"=>"GUINEA-BISSAU", "numcode"=>"624"}, :without_protection => true) -Spree::Country.create!({"name"=>"Namibia", "iso3"=>"NAM", "iso"=>"NA", "iso_name"=>"NAMIBIA", "numcode"=>"516"}, :without_protection => true) -Spree::Country.create!({"name"=>"Qatar", "iso3"=>"QAT", "iso"=>"QA", "iso_name"=>"QATAR", "numcode"=>"634"}, :without_protection => true) -Spree::Country.create!({"name"=>"Svalbard and Jan Mayen", "iso3"=>"SJM", "iso"=>"SJ", "iso_name"=>"SVALBARD AND JAN MAYEN", "numcode"=>"744"}, :without_protection => true) -Spree::Country.create!({"name"=>"El Salvador", "iso3"=>"SLV", "iso"=>"SV", "iso_name"=>"EL SALVADOR", "numcode"=>"222"}, :without_protection => true) -Spree::Country.create!({"name"=>"Guyana", "iso3"=>"GUY", "iso"=>"GY", "iso_name"=>"GUYANA", "numcode"=>"328"}, :without_protection => true) -Spree::Country.create!({"name"=>"Reunion", "iso3"=>"REU", "iso"=>"RE", "iso_name"=>"REUNION", "numcode"=>"638"}, :without_protection => true) -Spree::Country.create!({"name"=>"Haiti", "iso3"=>"HTI", "iso"=>"HT", "iso_name"=>"HAITI", "numcode"=>"332"}, :without_protection => true) -Spree::Country.create!({"name"=>"Romania", "iso3"=>"ROM", "iso"=>"RO", "iso_name"=>"ROMANIA", "numcode"=>"642"}, :without_protection => true) -Spree::Country.create!({"name"=>"Swaziland", "iso3"=>"SWZ", "iso"=>"SZ", "iso_name"=>"SWAZILAND", "numcode"=>"748"}, :without_protection => true) -Spree::Country.create!({"name"=>"Holy See (Vatican City State)", "iso3"=>"VAT", "iso"=>"VA", "iso_name"=>"HOLY SEE (VATICAN CITY STATE)", "numcode"=>"336"}, :without_protection => true) -Spree::Country.create!({"name"=>"Russian Federation", "iso3"=>"RUS", "iso"=>"RU", "iso_name"=>"RUSSIAN FEDERATION", "numcode"=>"643"}, :without_protection => true) -Spree::Country.create!({"name"=>"Sweden", "iso3"=>"SWE", "iso"=>"SE", "iso_name"=>"SWEDEN", "numcode"=>"752"}, :without_protection => true) -Spree::Country.create!({"name"=>"Honduras", "iso3"=>"HND", "iso"=>"HN", "iso_name"=>"HONDURAS", "numcode"=>"340"}, :without_protection => true) -Spree::Country.create!({"name"=>"Rwanda", "iso3"=>"RWA", "iso"=>"RW", "iso_name"=>"RWANDA", "numcode"=>"646"}, :without_protection => true) -Spree::Country.create!({"name"=>"Switzerland", "iso3"=>"CHE", "iso"=>"CH", "iso_name"=>"SWITZERLAND", "numcode"=>"756"}, :without_protection => true) -Spree::Country.create!({"name"=>"Hong Kong", "iso3"=>"HKG", "iso"=>"HK", "iso_name"=>"HONG KONG", "numcode"=>"344"}, :without_protection => true) -Spree::Country.create!({"name"=>"Syrian Arab Republic", "iso3"=>"SYR", "iso"=>"SY", "iso_name"=>"SYRIAN ARAB REPUBLIC", "numcode"=>"760"}, :without_protection => true) -Spree::Country.create!({"name"=>"Taiwan", "iso3"=>"TWN", "iso"=>"TW", "iso_name"=>"TAIWAN, PROVINCE OF CHINA", "numcode"=>"158"}, :without_protection => true) -Spree::Country.create!({"name"=>"Tajikistan", "iso3"=>"TJK", "iso"=>"TJ", "iso_name"=>"TAJIKISTAN", "numcode"=>"762"}, :without_protection => true) -Spree::Country.create!({"name"=>"Tanzania, United Republic of", "iso3"=>"TZA", "iso"=>"TZ", "iso_name"=>"TANZANIA, UNITED REPUBLIC OF", "numcode"=>"834"}, :without_protection => true) -Spree::Country.create!({"name"=>"Armenia", "iso3"=>"ARM", "iso"=>"AM", "iso_name"=>"ARMENIA", "numcode"=>"51"}, :without_protection => true) -Spree::Country.create!({"name"=>"Aruba", "iso3"=>"ABW", "iso"=>"AW", "iso_name"=>"ARUBA", "numcode"=>"533"}, :without_protection => true) -Spree::Country.create!({"name"=>"Australia", "iso3"=>"AUS", "iso"=>"AU", "iso_name"=>"AUSTRALIA", "numcode"=>"36"}, :without_protection => true) -Spree::Country.create!({"name"=>"Thailand", "iso3"=>"THA", "iso"=>"TH", "iso_name"=>"THAILAND", "numcode"=>"764"}, :without_protection => true) -Spree::Country.create!({"name"=>"Austria", "iso3"=>"AUT", "iso"=>"AT", "iso_name"=>"AUSTRIA", "numcode"=>"40"}, :without_protection => true) -Spree::Country.create!({"name"=>"Madagascar", "iso3"=>"MDG", "iso"=>"MG", "iso_name"=>"MADAGASCAR", "numcode"=>"450"}, :without_protection => true) -Spree::Country.create!({"name"=>"Togo", "iso3"=>"TGO", "iso"=>"TG", "iso_name"=>"TOGO", "numcode"=>"768"}, :without_protection => true) -Spree::Country.create!({"name"=>"Azerbaijan", "iso3"=>"AZE", "iso"=>"AZ", "iso_name"=>"AZERBAIJAN", "numcode"=>"31"}, :without_protection => true) -Spree::Country.create!({"name"=>"Chile", "iso3"=>"CHL", "iso"=>"CL", "iso_name"=>"CHILE", "numcode"=>"152"}, :without_protection => true) -Spree::Country.create!({"name"=>"Malawi", "iso3"=>"MWI", "iso"=>"MW", "iso_name"=>"MALAWI", "numcode"=>"454"}, :without_protection => true) -Spree::Country.create!({"name"=>"Tokelau", "iso3"=>"TKL", "iso"=>"TK", "iso_name"=>"TOKELAU", "numcode"=>"772"}, :without_protection => true) -Spree::Country.create!({"name"=>"Bahamas", "iso3"=>"BHS", "iso"=>"BS", "iso_name"=>"BAHAMAS", "numcode"=>"44"}, :without_protection => true) -Spree::Country.create!({"name"=>"China", "iso3"=>"CHN", "iso"=>"CN", "iso_name"=>"CHINA", "numcode"=>"156"}, :without_protection => true) -Spree::Country.create!({"name"=>"Malaysia", "iso3"=>"MYS", "iso"=>"MY", "iso_name"=>"MALAYSIA", "numcode"=>"458"}, :without_protection => true) -Spree::Country.create!({"name"=>"Tonga", "iso3"=>"TON", "iso"=>"TO", "iso_name"=>"TONGA", "numcode"=>"776"}, :without_protection => true) -Spree::Country.create!({"name"=>"Bahrain", "iso3"=>"BHR", "iso"=>"BH", "iso_name"=>"BAHRAIN", "numcode"=>"48"}, :without_protection => true) -Spree::Country.create!({"name"=>"Colombia", "iso3"=>"COL", "iso"=>"CO", "iso_name"=>"COLOMBIA", "numcode"=>"170"}, :without_protection => true) -Spree::Country.create!({"name"=>"Maldives", "iso3"=>"MDV", "iso"=>"MV", "iso_name"=>"MALDIVES", "numcode"=>"462"}, :without_protection => true) -Spree::Country.create!({"name"=>"Trinidad and Tobago", "iso3"=>"TTO", "iso"=>"TT", "iso_name"=>"TRINIDAD AND TOBAGO", "numcode"=>"780"}, :without_protection => true) -Spree::Country.create!({"name"=>"Bangladesh", "iso3"=>"BGD", "iso"=>"BD", "iso_name"=>"BANGLADESH", "numcode"=>"50"}, :without_protection => true) -Spree::Country.create!({"name"=>"Comoros", "iso3"=>"COM", "iso"=>"KM", "iso_name"=>"COMOROS", "numcode"=>"174"}, :without_protection => true) -Spree::Country.create!({"name"=>"French Polynesia", "iso3"=>"PYF", "iso"=>"PF", "iso_name"=>"FRENCH POLYNESIA", "numcode"=>"258"}, :without_protection => true) -Spree::Country.create!({"name"=>"Mali", "iso3"=>"MLI", "iso"=>"ML", "iso_name"=>"MALI", "numcode"=>"466"}, :without_protection => true) -Spree::Country.create!({"name"=>"Norfolk Island", "iso3"=>"NFK", "iso"=>"NF", "iso_name"=>"NORFOLK ISLAND", "numcode"=>"574"}, :without_protection => true) -Spree::Country.create!({"name"=>"Tunisia", "iso3"=>"TUN", "iso"=>"TN", "iso_name"=>"TUNISIA", "numcode"=>"788"}, :without_protection => true) -Spree::Country.create!({"name"=>"Barbados", "iso3"=>"BRB", "iso"=>"BB", "iso_name"=>"BARBADOS", "numcode"=>"52"}, :without_protection => true) -Spree::Country.create!({"name"=>"Congo", "iso3"=>"COG", "iso"=>"CG", "iso_name"=>"CONGO", "numcode"=>"178"}, :without_protection => true) -Spree::Country.create!({"name"=>"Gabon", "iso3"=>"GAB", "iso"=>"GA", "iso_name"=>"GABON", "numcode"=>"266"}, :without_protection => true) -Spree::Country.create!({"name"=>"Malta", "iso3"=>"MLT", "iso"=>"MT", "iso_name"=>"MALTA", "numcode"=>"470"}, :without_protection => true) -Spree::Country.create!({"name"=>"Northern Mariana Islands", "iso3"=>"MNP", "iso"=>"MP", "iso_name"=>"NORTHERN MARIANA ISLANDS", "numcode"=>"580"}, :without_protection => true) -Spree::Country.create!({"name"=>"Turkey", "iso3"=>"TUR", "iso"=>"TR", "iso_name"=>"TURKEY", "numcode"=>"792"}, :without_protection => true) -Spree::Country.create!({"name"=>"Congo, the Democratic Republic of the", "iso3"=>"COD", "iso"=>"CD", "iso_name"=>"CONGO, THE DEMOCRATIC REPUBLIC OF THE", "numcode"=>"180"}, :without_protection => true) -Spree::Country.create!({"name"=>"Marshall Islands", "iso3"=>"MHL", "iso"=>"MH", "iso_name"=>"MARSHALL ISLANDS", "numcode"=>"584"}, :without_protection => true) -Spree::Country.create!({"name"=>"Norway", "iso3"=>"NOR", "iso"=>"NO", "iso_name"=>"NORWAY", "numcode"=>"578"}, :without_protection => true) -Spree::Country.create!({"name"=>"Turkmenistan", "iso3"=>"TKM", "iso"=>"TM", "iso_name"=>"TURKMENISTAN", "numcode"=>"795"}, :without_protection => true) -Spree::Country.create!({"name"=>"Belarus", "iso3"=>"BLR", "iso"=>"BY", "iso_name"=>"BELARUS", "numcode"=>"112"}, :without_protection => true) -Spree::Country.create!({"name"=>"Cook Islands", "iso3"=>"COK", "iso"=>"CK", "iso_name"=>"COOK ISLANDS", "numcode"=>"184"}, :without_protection => true) -Spree::Country.create!({"name"=>"Gambia", "iso3"=>"GMB", "iso"=>"GM", "iso_name"=>"GAMBIA", "numcode"=>"270"}, :without_protection => true) -Spree::Country.create!({"name"=>"Martinique", "iso3"=>"MTQ", "iso"=>"MQ", "iso_name"=>"MARTINIQUE", "numcode"=>"474"}, :without_protection => true) -Spree::Country.create!({"name"=>"Oman", "iso3"=>"OMN", "iso"=>"OM", "iso_name"=>"OMAN", "numcode"=>"512"}, :without_protection => true) -Spree::Country.create!({"name"=>"Seychelles", "iso3"=>"SYC", "iso"=>"SC", "iso_name"=>"SEYCHELLES", "numcode"=>"690"}, :without_protection => true) -Spree::Country.create!({"name"=>"Turks and Caicos Islands", "iso3"=>"TCA", "iso"=>"TC", "iso_name"=>"TURKS AND CAICOS ISLANDS", "numcode"=>"796"}, :without_protection => true) -Spree::Country.create!({"name"=>"Georgia", "iso3"=>"GEO", "iso"=>"GE", "iso_name"=>"GEORGIA", "numcode"=>"268"}, :without_protection => true) -Spree::Country.create!({"name"=>"Mauritania", "iso3"=>"MRT", "iso"=>"MR", "iso_name"=>"MAURITANIA", "numcode"=>"478"}, :without_protection => true) -Spree::Country.create!({"name"=>"Pakistan", "iso3"=>"PAK", "iso"=>"PK", "iso_name"=>"PAKISTAN", "numcode"=>"586"}, :without_protection => true) -Spree::Country.create!({"name"=>"Sierra Leone", "iso3"=>"SLE", "iso"=>"SL", "iso_name"=>"SIERRA LEONE", "numcode"=>"694"}, :without_protection => true) -Spree::Country.create!({"name"=>"Tuvalu", "iso3"=>"TUV", "iso"=>"TV", "iso_name"=>"TUVALU", "numcode"=>"798"}, :without_protection => true) -Spree::Country.create!({"name"=>"Costa Rica", "iso3"=>"CRI", "iso"=>"CR", "iso_name"=>"COSTA RICA", "numcode"=>"188"}, :without_protection => true) -Spree::Country.create!({"name"=>"Germany", "iso3"=>"DEU", "iso"=>"DE", "iso_name"=>"GERMANY", "numcode"=>"276"}, :without_protection => true) -Spree::Country.create!({"name"=>"Mauritius", "iso3"=>"MUS", "iso"=>"MU", "iso_name"=>"MAURITIUS", "numcode"=>"480"}, :without_protection => true) -Spree::Country.create!({"name"=>"Palau", "iso3"=>"PLW", "iso"=>"PW", "iso_name"=>"PALAU", "numcode"=>"585"}, :without_protection => true) -Spree::Country.create!({"name"=>"Cote D'Ivoire", "iso3"=>"CIV", "iso"=>"CI", "iso_name"=>"COTE D'IVOIRE", "numcode"=>"384"}, :without_protection => true) -Spree::Country.create!({"name"=>"Panama", "iso3"=>"PAN", "iso"=>"PA", "iso_name"=>"PANAMA", "numcode"=>"591"}, :without_protection => true) -Spree::Country.create!({"name"=>"Singapore", "iso3"=>"SGP", "iso"=>"SG", "iso_name"=>"SINGAPORE", "numcode"=>"702"}, :without_protection => true) -Spree::Country.create!({"name"=>"Croatia", "iso3"=>"HRV", "iso"=>"HR", "iso_name"=>"CROATIA", "numcode"=>"191"}, :without_protection => true) -Spree::Country.create!({"name"=>"Ghana", "iso3"=>"GHA", "iso"=>"GH", "iso_name"=>"GHANA", "numcode"=>"288"}, :without_protection => true) -Spree::Country.create!({"name"=>"Papua New Guinea", "iso3"=>"PNG", "iso"=>"PG", "iso_name"=>"PAPUA NEW GUINEA", "numcode"=>"598"}, :without_protection => true) -Spree::Country.create!({"name"=>"Slovakia", "iso3"=>"SVK", "iso"=>"SK", "iso_name"=>"SLOVAKIA", "numcode"=>"703"}, :without_protection => true) -Spree::Country.create!({"name"=>"Gibraltar", "iso3"=>"GIB", "iso"=>"GI", "iso_name"=>"GIBRALTAR", "numcode"=>"292"}, :without_protection => true) -Spree::Country.create!({"name"=>"Paraguay", "iso3"=>"PRY", "iso"=>"PY", "iso_name"=>"PARAGUAY", "numcode"=>"600"}, :without_protection => true) -Spree::Country.create!({"name"=>"Slovenia", "iso3"=>"SVN", "iso"=>"SI", "iso_name"=>"SLOVENIA", "numcode"=>"705"}, :without_protection => true) -Spree::Country.create!({"name"=>"Greece", "iso3"=>"GRC", "iso"=>"GR", "iso_name"=>"GREECE", "numcode"=>"300"}, :without_protection => true) -Spree::Country.create!({"name"=>"Peru", "iso3"=>"PER", "iso"=>"PE", "iso_name"=>"PERU", "numcode"=>"604"}, :without_protection => true) -Spree::Country.create!({"name"=>"Solomon Islands", "iso3"=>"SLB", "iso"=>"SB", "iso_name"=>"SOLOMON ISLANDS", "numcode"=>"90"}, :without_protection => true) -Spree::Country.create!({"name"=>"Greenland", "iso3"=>"GRL", "iso"=>"GL", "iso_name"=>"GREENLAND", "numcode"=>"304"}, :without_protection => true) -Spree::Country.create!({"name"=>"Somalia", "iso3"=>"SOM", "iso"=>"SO", "iso_name"=>"SOMALIA", "numcode"=>"706"}, :without_protection => true) -Spree::Country.create!({"name"=>"Grenada", "iso3"=>"GRD", "iso"=>"GD", "iso_name"=>"GRENADA", "numcode"=>"308"}, :without_protection => true) -Spree::Country.create!({"name"=>"South Africa", "iso3"=>"ZAF", "iso"=>"ZA", "iso_name"=>"SOUTH AFRICA", "numcode"=>"710"}, :without_protection => true) -Spree::Country.create!({"name"=>"Spain", "iso3"=>"ESP", "iso"=>"ES", "iso_name"=>"SPAIN", "numcode"=>"724"}, :without_protection => true) -Spree::Country.create!({"name"=>"Sri Lanka", "iso3"=>"LKA", "iso"=>"LK", "iso_name"=>"SRI LANKA", "numcode"=>"144"}, :without_protection => true) -Spree::Country.create!({"name"=>"Afghanistan", "iso3"=>"AFG", "iso"=>"AF", "iso_name"=>"AFGHANISTAN", "numcode"=>"4"}, :without_protection => true) -Spree::Country.create!({"name"=>"Albania", "iso3"=>"ALB", "iso"=>"AL", "iso_name"=>"ALBANIA", "numcode"=>"8"}, :without_protection => true) -Spree::Country.create!({"name"=>"Algeria", "iso3"=>"DZA", "iso"=>"DZ", "iso_name"=>"ALGERIA", "numcode"=>"12"}, :without_protection => true) -Spree::Country.create!({"name"=>"Latvia", "iso3"=>"LVA", "iso"=>"LV", "iso_name"=>"LATVIA", "numcode"=>"428"}, :without_protection => true) -Spree::Country.create!({"name"=>"American Samoa", "iso3"=>"ASM", "iso"=>"AS", "iso_name"=>"AMERICAN SAMOA", "numcode"=>"16"}, :without_protection => true) -Spree::Country.create!({"name"=>"Bulgaria", "iso3"=>"BGR", "iso"=>"BG", "iso_name"=>"BULGARIA", "numcode"=>"100"}, :without_protection => true) -Spree::Country.create!({"name"=>"Lebanon", "iso3"=>"LBN", "iso"=>"LB", "iso_name"=>"LEBANON", "numcode"=>"422"}, :without_protection => true) -Spree::Country.create!({"name"=>"Andorra", "iso3"=>"AND", "iso"=>"AD", "iso_name"=>"ANDORRA", "numcode"=>"20"}, :without_protection => true) -Spree::Country.create!({"name"=>"Burkina Faso", "iso3"=>"BFA", "iso"=>"BF", "iso_name"=>"BURKINA FASO", "numcode"=>"854"}, :without_protection => true) -Spree::Country.create!({"name"=>"Lesotho", "iso3"=>"LSO", "iso"=>"LS", "iso_name"=>"LESOTHO", "numcode"=>"426"}, :without_protection => true) -Spree::Country.create!({"name"=>"Angola", "iso3"=>"AGO", "iso"=>"AO", "iso_name"=>"ANGOLA", "numcode"=>"24"}, :without_protection => true) -Spree::Country.create!({"name"=>"Burundi", "iso3"=>"BDI", "iso"=>"BI", "iso_name"=>"BURUNDI", "numcode"=>"108"}, :without_protection => true) -Spree::Country.create!({"name"=>"Liberia", "iso3"=>"LBR", "iso"=>"LR", "iso_name"=>"LIBERIA", "numcode"=>"430"}, :without_protection => true) -Spree::Country.create!({"name"=>"Virgin Islands, British", "iso3"=>"VGB", "iso"=>"VG", "iso_name"=>"VIRGIN ISLANDS, BRITISH", "numcode"=>"92"}, :without_protection => true) -Spree::Country.create!({"name"=>"Anguilla", "iso3"=>"AIA", "iso"=>"AI", "iso_name"=>"ANGUILLA", "numcode"=>"660"}, :without_protection => true) -Spree::Country.create!({"name"=>"Cambodia", "iso3"=>"KHM", "iso"=>"KH", "iso_name"=>"CAMBODIA", "numcode"=>"116"}, :without_protection => true) -Spree::Country.create!({"name"=>"Equatorial Guinea", "iso3"=>"GNQ", "iso"=>"GQ", "iso_name"=>"EQUATORIAL GUINEA", "numcode"=>"226"}, :without_protection => true) -Spree::Country.create!({"name"=>"Libyan Arab Jamahiriya", "iso3"=>"LBY", "iso"=>"LY", "iso_name"=>"LIBYAN ARAB JAMAHIRIYA", "numcode"=>"434"}, :without_protection => true) -Spree::Country.create!({"name"=>"Nauru", "iso3"=>"NRU", "iso"=>"NR", "iso_name"=>"NAURU", "numcode"=>"520"}, :without_protection => true) -Spree::Country.create!({"name"=>"Virgin Islands, U.S.", "iso3"=>"VIR", "iso"=>"VI", "iso_name"=>"VIRGIN ISLANDS, U.S.", "numcode"=>"850"}, :without_protection => true) -Spree::Country.create!({"name"=>"Antigua and Barbuda", "iso3"=>"ATG", "iso"=>"AG", "iso_name"=>"ANTIGUA AND BARBUDA", "numcode"=>"28"}, :without_protection => true) -Spree::Country.create!({"name"=>"Cameroon", "iso3"=>"CMR", "iso"=>"CM", "iso_name"=>"CAMEROON", "numcode"=>"120"}, :without_protection => true) -Spree::Country.create!({"name"=>"Liechtenstein", "iso3"=>"LIE", "iso"=>"LI", "iso_name"=>"LIECHTENSTEIN", "numcode"=>"438"}, :without_protection => true) -Spree::Country.create!({"name"=>"Nepal", "iso3"=>"NPL", "iso"=>"NP", "iso_name"=>"NEPAL", "numcode"=>"524"}, :without_protection => true) -Spree::Country.create!({"name"=>"Wallis and Futuna", "iso3"=>"WLF", "iso"=>"WF", "iso_name"=>"WALLIS AND FUTUNA", "numcode"=>"876"}, :without_protection => true) -Spree::Country.create!({"name"=>"Western Sahara", "iso3"=>"ESH", "iso"=>"EH", "iso_name"=>"WESTERN SAHARA", "numcode"=>"732"}, :without_protection => true) -Spree::Country.create!({"name"=>"Argentina", "iso3"=>"ARG", "iso"=>"AR", "iso_name"=>"ARGENTINA", "numcode"=>"32"}, :without_protection => true) -Spree::Country.create!({"name"=>"Canada", "iso3"=>"CAN", "iso"=>"CA", "iso_name"=>"CANADA", "numcode"=>"124"}, :without_protection => true) -Spree::Country.create!({"name"=>"Eritrea", "iso3"=>"ERI", "iso"=>"ER", "iso_name"=>"ERITREA", "numcode"=>"232"}, :without_protection => true) -Spree::Country.create!({"name"=>"Lithuania", "iso3"=>"LTU", "iso"=>"LT", "iso_name"=>"LITHUANIA", "numcode"=>"440"}, :without_protection => true) -Spree::Country.create!({"name"=>"Netherlands", "iso3"=>"NLD", "iso"=>"NL", "iso_name"=>"NETHERLANDS", "numcode"=>"528"}, :without_protection => true) -Spree::Country.create!({"name"=>"Yemen", "iso3"=>"YEM", "iso"=>"YE", "iso_name"=>"YEMEN", "numcode"=>"887"}, :without_protection => true) -Spree::Country.create!({"name"=>"Cape Verde", "iso3"=>"CPV", "iso"=>"CV", "iso_name"=>"CAPE VERDE", "numcode"=>"132"}, :without_protection => true) -Spree::Country.create!({"name"=>"Estonia", "iso3"=>"EST", "iso"=>"EE", "iso_name"=>"ESTONIA", "numcode"=>"233"}, :without_protection => true) -Spree::Country.create!({"name"=>"Luxembourg", "iso3"=>"LUX", "iso"=>"LU", "iso_name"=>"LUXEMBOURG", "numcode"=>"442"}, :without_protection => true) -Spree::Country.create!({"name"=>"Netherlands Antilles", "iso3"=>"ANT", "iso"=>"AN", "iso_name"=>"NETHERLANDS ANTILLES", "numcode"=>"530"}, :without_protection => true) -Spree::Country.create!({"name"=>"Saint Helena", "iso3"=>"SHN", "iso"=>"SH", "iso_name"=>"SAINT HELENA", "numcode"=>"654"}, :without_protection => true) -Spree::Country.create!({"name"=>"Zambia", "iso3"=>"ZMB", "iso"=>"ZM", "iso_name"=>"ZAMBIA", "numcode"=>"894"}, :without_protection => true) -Spree::Country.create!({"name"=>"Cayman Islands", "iso3"=>"CYM", "iso"=>"KY", "iso_name"=>"CAYMAN ISLANDS", "numcode"=>"136"}, :without_protection => true) -Spree::Country.create!({"name"=>"Ethiopia", "iso3"=>"ETH", "iso"=>"ET", "iso_name"=>"ETHIOPIA", "numcode"=>"231"}, :without_protection => true) -Spree::Country.create!({"name"=>"Hungary", "iso3"=>"HUN", "iso"=>"HU", "iso_name"=>"HUNGARY", "numcode"=>"348"}, :without_protection => true) -Spree::Country.create!({"name"=>"Macao", "iso3"=>"MAC", "iso"=>"MO", "iso_name"=>"MACAO", "numcode"=>"446"}, :without_protection => true) -Spree::Country.create!({"name"=>"New Caledonia", "iso3"=>"NCL", "iso"=>"NC", "iso_name"=>"NEW CALEDONIA", "numcode"=>"540"}, :without_protection => true) -Spree::Country.create!({"name"=>"Zimbabwe", "iso3"=>"ZWE", "iso"=>"ZW", "iso_name"=>"ZIMBABWE", "numcode"=>"716"}, :without_protection => true) -Spree::Country.create!({"name"=>"Central African Republic", "iso3"=>"CAF", "iso"=>"CF", "iso_name"=>"CENTRAL AFRICAN REPUBLIC", "numcode"=>"140"}, :without_protection => true) -Spree::Country.create!({"name"=>"Falkland Islands (Malvinas)", "iso3"=>"FLK", "iso"=>"FK", "iso_name"=>"FALKLAND ISLANDS (MALVINAS)", "numcode"=>"238"}, :without_protection => true) -Spree::Country.create!({"name"=>"Iceland", "iso3"=>"ISL", "iso"=>"IS", "iso_name"=>"ICELAND", "numcode"=>"352"}, :without_protection => true) -Spree::Country.create!({"name"=>"Macedonia", "iso3"=>"MKD", "iso"=>"MK", "iso_name"=>"MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF", "numcode"=>"807"}, :without_protection => true) -Spree::Country.create!({"name"=>"New Zealand", "iso3"=>"NZL", "iso"=>"NZ", "iso_name"=>"NEW ZEALAND", "numcode"=>"554"}, :without_protection => true) -Spree::Country.create!({"name"=>"Saint Kitts and Nevis", "iso3"=>"KNA", "iso"=>"KN", "iso_name"=>"SAINT KITTS AND NEVIS", "numcode"=>"659"}, :without_protection => true) -Spree::Country.create!({"name"=>"Serbia", "iso3"=>"SRB", "iso"=>"RS", "iso_name" => "SERBIA", "numcode"=>"999"}, :without_protection => true) +Spree::Country.create!({"name"=>"Chad", "iso3"=>"TCD", "iso"=>"TD", "iso_name"=>"CHAD", "numcode"=>"148"}) +Spree::Country.create!({"name"=>"Faroe Islands", "iso3"=>"FRO", "iso"=>"FO", "iso_name"=>"FAROE ISLANDS", "numcode"=>"234"}) +Spree::Country.create!({"name"=>"India", "iso3"=>"IND", "iso"=>"IN", "iso_name"=>"INDIA", "numcode"=>"356"}) +Spree::Country.create!({"name"=>"Nicaragua", "iso3"=>"NIC", "iso"=>"NI", "iso_name"=>"NICARAGUA", "numcode"=>"558"}) +Spree::Country.create!({"name"=>"Saint Lucia", "iso3"=>"LCA", "iso"=>"LC", "iso_name"=>"SAINT LUCIA", "numcode"=>"662"}) +Spree::Country.create!({"name"=>"Fiji", "iso3"=>"FJI", "iso"=>"FJ", "iso_name"=>"FIJI", "numcode"=>"242"}) +Spree::Country.create!({"name"=>"Indonesia", "iso3"=>"IDN", "iso"=>"ID", "iso_name"=>"INDONESIA", "numcode"=>"360"}) +Spree::Country.create!({"name"=>"Niger", "iso3"=>"NER", "iso"=>"NE", "iso_name"=>"NIGER", "numcode"=>"562"}) +Spree::Country.create!({"name"=>"Saint Pierre and Miquelon", "iso3"=>"SPM", "iso"=>"PM", "iso_name"=>"SAINT PIERRE AND MIQUELON", "numcode"=>"666"}) +Spree::Country.create!({"name"=>"Finland", "iso3"=>"FIN", "iso"=>"FI", "iso_name"=>"FINLAND", "numcode"=>"246"}) +Spree::Country.create!({"name"=>"Nigeria", "iso3"=>"NGA", "iso"=>"NG", "iso_name"=>"NIGERIA", "numcode"=>"566"}) +Spree::Country.create!({"name"=>"Saint Vincent and the Grenadines", "iso3"=>"VCT", "iso"=>"VC", "iso_name"=>"SAINT VINCENT AND THE GRENADINES", "numcode"=>"670"}) +Spree::Country.create!({"name"=>"France", "iso3"=>"FRA", "iso"=>"FR", "iso_name"=>"FRANCE", "numcode"=>"250"}) +Spree::Country.create!({"name"=>"Iran, Islamic Republic of", "iso3"=>"IRN", "iso"=>"IR", "iso_name"=>"IRAN, ISLAMIC REPUBLIC OF", "numcode"=>"364"}) +Spree::Country.create!({"name"=>"Niue", "iso3"=>"NIU", "iso"=>"NU", "iso_name"=>"NIUE", "numcode"=>"570"}) +Spree::Country.create!({"name"=>"Samoa", "iso3"=>"WSM", "iso"=>"WS", "iso_name"=>"SAMOA", "numcode"=>"882"}) +Spree::Country.create!({"name"=>"French Guiana", "iso3"=>"GUF", "iso"=>"GF", "iso_name"=>"FRENCH GUIANA", "numcode"=>"254"}) +Spree::Country.create!({"name"=>"Iraq", "iso3"=>"IRQ", "iso"=>"IQ", "iso_name"=>"IRAQ", "numcode"=>"368"}) +Spree::Country.create!({"name"=>"San Marino", "iso3"=>"SMR", "iso"=>"SM", "iso_name"=>"SAN MARINO", "numcode"=>"674"}) +Spree::Country.create!({"name"=>"Ireland", "iso3"=>"IRL", "iso"=>"IE", "iso_name"=>"IRELAND", "numcode"=>"372"}) +Spree::Country.create!({"name"=>"Sao Tome and Principe", "iso3"=>"STP", "iso"=>"ST", "iso_name"=>"SAO TOME AND PRINCIPE", "numcode"=>"678"}) +Spree::Country.create!({"name"=>"Israel", "iso3"=>"ISR", "iso"=>"IL", "iso_name"=>"ISRAEL", "numcode"=>"376"}) +Spree::Country.create!({"name"=>"Saudi Arabia", "iso3"=>"SAU", "iso"=>"SA", "iso_name"=>"SAUDI ARABIA", "numcode"=>"682"}) +Spree::Country.create!({"name"=>"Italy", "iso3"=>"ITA", "iso"=>"IT", "iso_name"=>"ITALY", "numcode"=>"380"}) +Spree::Country.create!({"name"=>"Senegal", "iso3"=>"SEN", "iso"=>"SN", "iso_name"=>"SENEGAL", "numcode"=>"686"}) +Spree::Country.create!({"name"=>"Jamaica", "iso3"=>"JAM", "iso"=>"JM", "iso_name"=>"JAMAICA", "numcode"=>"388"}) +Spree::Country.create!({"name"=>"Japan", "iso3"=>"JPN", "iso"=>"JP", "iso_name"=>"JAPAN", "numcode"=>"392"}) +Spree::Country.create!({"name"=>"Jordan", "iso3"=>"JOR", "iso"=>"JO", "iso_name"=>"JORDAN", "numcode"=>"400"}) +Spree::Country.create!({"name"=>"Belgium", "iso3"=>"BEL", "iso"=>"BE", "iso_name"=>"BELGIUM", "numcode"=>"56"}) +Spree::Country.create!({"name"=>"Belize", "iso3"=>"BLZ", "iso"=>"BZ", "iso_name"=>"BELIZE", "numcode"=>"84"}) +Spree::Country.create!({"name"=>"Kazakhstan", "iso3"=>"KAZ", "iso"=>"KZ", "iso_name"=>"KAZAKHSTAN", "numcode"=>"398"}) +Spree::Country.create!({"name"=>"Uganda", "iso3"=>"UGA", "iso"=>"UG", "iso_name"=>"UGANDA", "numcode"=>"800"}) +Spree::Country.create!({"name"=>"Benin", "iso3"=>"BEN", "iso"=>"BJ", "iso_name"=>"BENIN", "numcode"=>"204"}) +Spree::Country.create!({"name"=>"Kenya", "iso3"=>"KEN", "iso"=>"KE", "iso_name"=>"KENYA", "numcode"=>"404"}) +Spree::Country.create!({"name"=>"Ukraine", "iso3"=>"UKR", "iso"=>"UA", "iso_name"=>"UKRAINE", "numcode"=>"804"}) +Spree::Country.create!({"name"=>"Bermuda", "iso3"=>"BMU", "iso"=>"BM", "iso_name"=>"BERMUDA", "numcode"=>"60"}) +Spree::Country.create!({"name"=>"Kiribati", "iso3"=>"KIR", "iso"=>"KI", "iso_name"=>"KIRIBATI", "numcode"=>"296"}) +Spree::Country.create!({"name"=>"Mexico", "iso3"=>"MEX", "iso"=>"MX", "iso_name"=>"MEXICO", "numcode"=>"484"}) +Spree::Country.create!({"name"=>"United Arab Emirates", "iso3"=>"ARE", "iso"=>"AE", "iso_name"=>"UNITED ARAB EMIRATES", "numcode"=>"784"}) +Spree::Country.create!({"name"=>"Bhutan", "iso3"=>"BTN", "iso"=>"BT", "iso_name"=>"BHUTAN", "numcode"=>"64"}) +Spree::Country.create!({"name"=>"Cuba", "iso3"=>"CUB", "iso"=>"CU", "iso_name"=>"CUBA", "numcode"=>"192"}) +Spree::Country.create!({"name"=>"North Korea", "iso3"=>"PRK", "iso"=>"KP", "iso_name"=>"KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF", "numcode"=>"408"}) +Spree::Country.create!({"name"=>"Micronesia, Federated States of", "iso3"=>"FSM", "iso"=>"FM", "iso_name"=>"MICRONESIA, FEDERATED STATES OF", "numcode"=>"583"}) +Spree::Country.create!({"name"=>"United Kingdom", "iso3"=>"GBR", "iso"=>"GB", "iso_name"=>"UNITED KINGDOM", "numcode"=>"826"}) +Spree::Country.create!({"name"=>"Bolivia", "iso3"=>"BOL", "iso"=>"BO", "iso_name"=>"BOLIVIA", "numcode"=>"68"}) +Spree::Country.create!({"name"=>"Cyprus", "iso3"=>"CYP", "iso"=>"CY", "iso_name"=>"CYPRUS", "numcode"=>"196"}) +Spree::Country.create!({"name"=>"South Korea", "iso3"=>"KOR", "iso"=>"KR", "iso_name"=>"KOREA, REPUBLIC OF", "numcode"=>"410"}) +Spree::Country.create!({"name"=>"Moldova, Republic of", "iso3"=>"MDA", "iso"=>"MD", "iso_name"=>"MOLDOVA, REPUBLIC OF", "numcode"=>"498"}) +Spree::Country.create!({"name"=>"United States", "iso3"=>"USA", "iso"=>"US", "iso_name"=>"UNITED STATES", "numcode"=>"840"}) +Spree::Country.create!({"name"=>"Bosnia and Herzegovina", "iso3"=>"BIH", "iso"=>"BA", "iso_name"=>"BOSNIA AND HERZEGOVINA", "numcode"=>"70"}) +Spree::Country.create!({"name"=>"Czech Republic", "iso3"=>"CZE", "iso"=>"CZ", "iso_name"=>"CZECH REPUBLIC", "numcode"=>"203"}) +Spree::Country.create!({"name"=>"Kuwait", "iso3"=>"KWT", "iso"=>"KW", "iso_name"=>"KUWAIT", "numcode"=>"414"}) +Spree::Country.create!({"name"=>"Monaco", "iso3"=>"MCO", "iso"=>"MC", "iso_name"=>"MONACO", "numcode"=>"492"}) +Spree::Country.create!({"name"=>"Uruguay", "iso3"=>"URY", "iso"=>"UY", "iso_name"=>"URUGUAY", "numcode"=>"858"}) +Spree::Country.create!({"name"=>"Botswana", "iso3"=>"BWA", "iso"=>"BW", "iso_name"=>"BOTSWANA", "numcode"=>"72"}) +Spree::Country.create!({"name"=>"Denmark", "iso3"=>"DNK", "iso"=>"DK", "iso_name"=>"DENMARK", "numcode"=>"208"}) +Spree::Country.create!({"name"=>"Guadeloupe", "iso3"=>"GLP", "iso"=>"GP", "iso_name"=>"GUADELOUPE", "numcode"=>"312"}) +Spree::Country.create!({"name"=>"Kyrgyzstan", "iso3"=>"KGZ", "iso"=>"KG", "iso_name"=>"KYRGYZSTAN", "numcode"=>"417"}) +Spree::Country.create!({"name"=>"Mongolia", "iso3"=>"MNG", "iso"=>"MN", "iso_name"=>"MONGOLIA", "numcode"=>"496"}) +Spree::Country.create!({"name"=>"Philippines", "iso3"=>"PHL", "iso"=>"PH", "iso_name"=>"PHILIPPINES", "numcode"=>"608"}) +Spree::Country.create!({"name"=>"Brazil", "iso3"=>"BRA", "iso"=>"BR", "iso_name"=>"BRAZIL", "numcode"=>"76"}) +Spree::Country.create!({"name"=>"Djibouti", "iso3"=>"DJI", "iso"=>"DJ", "iso_name"=>"DJIBOUTI", "numcode"=>"262"}) +Spree::Country.create!({"name"=>"Guam", "iso3"=>"GUM", "iso"=>"GU", "iso_name"=>"GUAM", "numcode"=>"316"}) +Spree::Country.create!({"name"=>"Lao People's Democratic Republic", "iso3"=>"LAO", "iso"=>"LA", "iso_name"=>"LAO PEOPLE'S DEMOCRATIC REPUBLIC", "numcode"=>"418"}) +Spree::Country.create!({"name"=>"Montserrat", "iso3"=>"MSR", "iso"=>"MS", "iso_name"=>"MONTSERRAT", "numcode"=>"500"}) +Spree::Country.create!({"name"=>"Pitcairn", "iso3"=>"PCN", "iso"=>"PN", "iso_name"=>"PITCAIRN", "numcode"=>"612"}) +Spree::Country.create!({"name"=>"Uzbekistan", "iso3"=>"UZB", "iso"=>"UZ", "iso_name"=>"UZBEKISTAN", "numcode"=>"860"}) +Spree::Country.create!({"name"=>"Brunei Darussalam", "iso3"=>"BRN", "iso"=>"BN", "iso_name"=>"BRUNEI DARUSSALAM", "numcode"=>"96"}) +Spree::Country.create!({"name"=>"Dominica", "iso3"=>"DMA", "iso"=>"DM", "iso_name"=>"DOMINICA", "numcode"=>"212"}) +Spree::Country.create!({"name"=>"Guatemala", "iso3"=>"GTM", "iso"=>"GT", "iso_name"=>"GUATEMALA", "numcode"=>"320"}) +Spree::Country.create!({"name"=>"Morocco", "iso3"=>"MAR", "iso"=>"MA", "iso_name"=>"MOROCCO", "numcode"=>"504"}) +Spree::Country.create!({"name"=>"Poland", "iso3"=>"POL", "iso"=>"PL", "iso_name"=>"POLAND", "numcode"=>"616"}) +Spree::Country.create!({"name"=>"Vanuatu", "iso3"=>"VUT", "iso"=>"VU", "iso_name"=>"VANUATU", "numcode"=>"548"}) +Spree::Country.create!({"name"=>"Dominican Republic", "iso3"=>"DOM", "iso"=>"DO", "iso_name"=>"DOMINICAN REPUBLIC", "numcode"=>"214"}) +Spree::Country.create!({"name"=>"Mozambique", "iso3"=>"MOZ", "iso"=>"MZ", "iso_name"=>"MOZAMBIQUE", "numcode"=>"508"}) +Spree::Country.create!({"name"=>"Portugal", "iso3"=>"PRT", "iso"=>"PT", "iso_name"=>"PORTUGAL", "numcode"=>"620"}) +Spree::Country.create!({"name"=>"Sudan", "iso3"=>"SDN", "iso"=>"SD", "iso_name"=>"SUDAN", "numcode"=>"736"}) +Spree::Country.create!({"name"=>"Venezuela", "iso3"=>"VEN", "iso"=>"VE", "iso_name"=>"VENEZUELA", "numcode"=>"862"}) +Spree::Country.create!({"name"=>"Ecuador", "iso3"=>"ECU", "iso"=>"EC", "iso_name"=>"ECUADOR", "numcode"=>"218"}) +Spree::Country.create!({"name"=>"Guinea", "iso3"=>"GIN", "iso"=>"GN", "iso_name"=>"GUINEA", "numcode"=>"324"}) +Spree::Country.create!({"name"=>"Myanmar", "iso3"=>"MMR", "iso"=>"MM", "iso_name"=>"MYANMAR", "numcode"=>"104"}) +Spree::Country.create!({"name"=>"Puerto Rico", "iso3"=>"PRI", "iso"=>"PR", "iso_name"=>"PUERTO RICO", "numcode"=>"630"}) +Spree::Country.create!({"name"=>"Suriname", "iso3"=>"SUR", "iso"=>"SR", "iso_name"=>"SURINAME", "numcode"=>"740"}) +Spree::Country.create!({"name"=>"Viet Nam", "iso3"=>"VNM", "iso"=>"VN", "iso_name"=>"VIET NAM", "numcode"=>"704"}) +Spree::Country.create!({"name"=>"Egypt", "iso3"=>"EGY", "iso"=>"EG", "iso_name"=>"EGYPT", "numcode"=>"818"}) +Spree::Country.create!({"name"=>"Guinea-Bissau", "iso3"=>"GNB", "iso"=>"GW", "iso_name"=>"GUINEA-BISSAU", "numcode"=>"624"}) +Spree::Country.create!({"name"=>"Namibia", "iso3"=>"NAM", "iso"=>"NA", "iso_name"=>"NAMIBIA", "numcode"=>"516"}) +Spree::Country.create!({"name"=>"Qatar", "iso3"=>"QAT", "iso"=>"QA", "iso_name"=>"QATAR", "numcode"=>"634"}) +Spree::Country.create!({"name"=>"Svalbard and Jan Mayen", "iso3"=>"SJM", "iso"=>"SJ", "iso_name"=>"SVALBARD AND JAN MAYEN", "numcode"=>"744"}) +Spree::Country.create!({"name"=>"El Salvador", "iso3"=>"SLV", "iso"=>"SV", "iso_name"=>"EL SALVADOR", "numcode"=>"222"}) +Spree::Country.create!({"name"=>"Guyana", "iso3"=>"GUY", "iso"=>"GY", "iso_name"=>"GUYANA", "numcode"=>"328"}) +Spree::Country.create!({"name"=>"Reunion", "iso3"=>"REU", "iso"=>"RE", "iso_name"=>"REUNION", "numcode"=>"638"}) +Spree::Country.create!({"name"=>"Haiti", "iso3"=>"HTI", "iso"=>"HT", "iso_name"=>"HAITI", "numcode"=>"332"}) +Spree::Country.create!({"name"=>"Romania", "iso3"=>"ROM", "iso"=>"RO", "iso_name"=>"ROMANIA", "numcode"=>"642"}) +Spree::Country.create!({"name"=>"Swaziland", "iso3"=>"SWZ", "iso"=>"SZ", "iso_name"=>"SWAZILAND", "numcode"=>"748"}) +Spree::Country.create!({"name"=>"Holy See (Vatican City State)", "iso3"=>"VAT", "iso"=>"VA", "iso_name"=>"HOLY SEE (VATICAN CITY STATE)", "numcode"=>"336"}) +Spree::Country.create!({"name"=>"Russian Federation", "iso3"=>"RUS", "iso"=>"RU", "iso_name"=>"RUSSIAN FEDERATION", "numcode"=>"643"}) +Spree::Country.create!({"name"=>"Sweden", "iso3"=>"SWE", "iso"=>"SE", "iso_name"=>"SWEDEN", "numcode"=>"752"}) +Spree::Country.create!({"name"=>"Honduras", "iso3"=>"HND", "iso"=>"HN", "iso_name"=>"HONDURAS", "numcode"=>"340"}) +Spree::Country.create!({"name"=>"Rwanda", "iso3"=>"RWA", "iso"=>"RW", "iso_name"=>"RWANDA", "numcode"=>"646"}) +Spree::Country.create!({"name"=>"Switzerland", "iso3"=>"CHE", "iso"=>"CH", "iso_name"=>"SWITZERLAND", "numcode"=>"756"}) +Spree::Country.create!({"name"=>"Hong Kong", "iso3"=>"HKG", "iso"=>"HK", "iso_name"=>"HONG KONG", "numcode"=>"344"}) +Spree::Country.create!({"name"=>"Syrian Arab Republic", "iso3"=>"SYR", "iso"=>"SY", "iso_name"=>"SYRIAN ARAB REPUBLIC", "numcode"=>"760"}) +Spree::Country.create!({"name"=>"Taiwan", "iso3"=>"TWN", "iso"=>"TW", "iso_name"=>"TAIWAN, PROVINCE OF CHINA", "numcode"=>"158"}) +Spree::Country.create!({"name"=>"Tajikistan", "iso3"=>"TJK", "iso"=>"TJ", "iso_name"=>"TAJIKISTAN", "numcode"=>"762"}) +Spree::Country.create!({"name"=>"Tanzania, United Republic of", "iso3"=>"TZA", "iso"=>"TZ", "iso_name"=>"TANZANIA, UNITED REPUBLIC OF", "numcode"=>"834"}) +Spree::Country.create!({"name"=>"Armenia", "iso3"=>"ARM", "iso"=>"AM", "iso_name"=>"ARMENIA", "numcode"=>"51"}) +Spree::Country.create!({"name"=>"Aruba", "iso3"=>"ABW", "iso"=>"AW", "iso_name"=>"ARUBA", "numcode"=>"533"}) +Spree::Country.create!({"name"=>"Australia", "iso3"=>"AUS", "iso"=>"AU", "iso_name"=>"AUSTRALIA", "numcode"=>"36"}) +Spree::Country.create!({"name"=>"Thailand", "iso3"=>"THA", "iso"=>"TH", "iso_name"=>"THAILAND", "numcode"=>"764"}) +Spree::Country.create!({"name"=>"Austria", "iso3"=>"AUT", "iso"=>"AT", "iso_name"=>"AUSTRIA", "numcode"=>"40"}) +Spree::Country.create!({"name"=>"Madagascar", "iso3"=>"MDG", "iso"=>"MG", "iso_name"=>"MADAGASCAR", "numcode"=>"450"}) +Spree::Country.create!({"name"=>"Togo", "iso3"=>"TGO", "iso"=>"TG", "iso_name"=>"TOGO", "numcode"=>"768"}) +Spree::Country.create!({"name"=>"Azerbaijan", "iso3"=>"AZE", "iso"=>"AZ", "iso_name"=>"AZERBAIJAN", "numcode"=>"31"}) +Spree::Country.create!({"name"=>"Chile", "iso3"=>"CHL", "iso"=>"CL", "iso_name"=>"CHILE", "numcode"=>"152"}) +Spree::Country.create!({"name"=>"Malawi", "iso3"=>"MWI", "iso"=>"MW", "iso_name"=>"MALAWI", "numcode"=>"454"}) +Spree::Country.create!({"name"=>"Tokelau", "iso3"=>"TKL", "iso"=>"TK", "iso_name"=>"TOKELAU", "numcode"=>"772"}) +Spree::Country.create!({"name"=>"Bahamas", "iso3"=>"BHS", "iso"=>"BS", "iso_name"=>"BAHAMAS", "numcode"=>"44"}) +Spree::Country.create!({"name"=>"China", "iso3"=>"CHN", "iso"=>"CN", "iso_name"=>"CHINA", "numcode"=>"156"}) +Spree::Country.create!({"name"=>"Malaysia", "iso3"=>"MYS", "iso"=>"MY", "iso_name"=>"MALAYSIA", "numcode"=>"458"}) +Spree::Country.create!({"name"=>"Tonga", "iso3"=>"TON", "iso"=>"TO", "iso_name"=>"TONGA", "numcode"=>"776"}) +Spree::Country.create!({"name"=>"Bahrain", "iso3"=>"BHR", "iso"=>"BH", "iso_name"=>"BAHRAIN", "numcode"=>"48"}) +Spree::Country.create!({"name"=>"Colombia", "iso3"=>"COL", "iso"=>"CO", "iso_name"=>"COLOMBIA", "numcode"=>"170"}) +Spree::Country.create!({"name"=>"Maldives", "iso3"=>"MDV", "iso"=>"MV", "iso_name"=>"MALDIVES", "numcode"=>"462"}) +Spree::Country.create!({"name"=>"Trinidad and Tobago", "iso3"=>"TTO", "iso"=>"TT", "iso_name"=>"TRINIDAD AND TOBAGO", "numcode"=>"780"}) +Spree::Country.create!({"name"=>"Bangladesh", "iso3"=>"BGD", "iso"=>"BD", "iso_name"=>"BANGLADESH", "numcode"=>"50"}) +Spree::Country.create!({"name"=>"Comoros", "iso3"=>"COM", "iso"=>"KM", "iso_name"=>"COMOROS", "numcode"=>"174"}) +Spree::Country.create!({"name"=>"French Polynesia", "iso3"=>"PYF", "iso"=>"PF", "iso_name"=>"FRENCH POLYNESIA", "numcode"=>"258"}) +Spree::Country.create!({"name"=>"Mali", "iso3"=>"MLI", "iso"=>"ML", "iso_name"=>"MALI", "numcode"=>"466"}) +Spree::Country.create!({"name"=>"Norfolk Island", "iso3"=>"NFK", "iso"=>"NF", "iso_name"=>"NORFOLK ISLAND", "numcode"=>"574"}) +Spree::Country.create!({"name"=>"Tunisia", "iso3"=>"TUN", "iso"=>"TN", "iso_name"=>"TUNISIA", "numcode"=>"788"}) +Spree::Country.create!({"name"=>"Barbados", "iso3"=>"BRB", "iso"=>"BB", "iso_name"=>"BARBADOS", "numcode"=>"52"}) +Spree::Country.create!({"name"=>"Congo", "iso3"=>"COG", "iso"=>"CG", "iso_name"=>"CONGO", "numcode"=>"178"}) +Spree::Country.create!({"name"=>"Gabon", "iso3"=>"GAB", "iso"=>"GA", "iso_name"=>"GABON", "numcode"=>"266"}) +Spree::Country.create!({"name"=>"Malta", "iso3"=>"MLT", "iso"=>"MT", "iso_name"=>"MALTA", "numcode"=>"470"}) +Spree::Country.create!({"name"=>"Northern Mariana Islands", "iso3"=>"MNP", "iso"=>"MP", "iso_name"=>"NORTHERN MARIANA ISLANDS", "numcode"=>"580"}) +Spree::Country.create!({"name"=>"Turkey", "iso3"=>"TUR", "iso"=>"TR", "iso_name"=>"TURKEY", "numcode"=>"792"}) +Spree::Country.create!({"name"=>"Congo, the Democratic Republic of the", "iso3"=>"COD", "iso"=>"CD", "iso_name"=>"CONGO, THE DEMOCRATIC REPUBLIC OF THE", "numcode"=>"180"}) +Spree::Country.create!({"name"=>"Marshall Islands", "iso3"=>"MHL", "iso"=>"MH", "iso_name"=>"MARSHALL ISLANDS", "numcode"=>"584"}) +Spree::Country.create!({"name"=>"Norway", "iso3"=>"NOR", "iso"=>"NO", "iso_name"=>"NORWAY", "numcode"=>"578"}) +Spree::Country.create!({"name"=>"Turkmenistan", "iso3"=>"TKM", "iso"=>"TM", "iso_name"=>"TURKMENISTAN", "numcode"=>"795"}) +Spree::Country.create!({"name"=>"Belarus", "iso3"=>"BLR", "iso"=>"BY", "iso_name"=>"BELARUS", "numcode"=>"112"}) +Spree::Country.create!({"name"=>"Cook Islands", "iso3"=>"COK", "iso"=>"CK", "iso_name"=>"COOK ISLANDS", "numcode"=>"184"}) +Spree::Country.create!({"name"=>"Gambia", "iso3"=>"GMB", "iso"=>"GM", "iso_name"=>"GAMBIA", "numcode"=>"270"}) +Spree::Country.create!({"name"=>"Martinique", "iso3"=>"MTQ", "iso"=>"MQ", "iso_name"=>"MARTINIQUE", "numcode"=>"474"}) +Spree::Country.create!({"name"=>"Oman", "iso3"=>"OMN", "iso"=>"OM", "iso_name"=>"OMAN", "numcode"=>"512"}) +Spree::Country.create!({"name"=>"Seychelles", "iso3"=>"SYC", "iso"=>"SC", "iso_name"=>"SEYCHELLES", "numcode"=>"690"}) +Spree::Country.create!({"name"=>"Turks and Caicos Islands", "iso3"=>"TCA", "iso"=>"TC", "iso_name"=>"TURKS AND CAICOS ISLANDS", "numcode"=>"796"}) +Spree::Country.create!({"name"=>"Georgia", "iso3"=>"GEO", "iso"=>"GE", "iso_name"=>"GEORGIA", "numcode"=>"268"}) +Spree::Country.create!({"name"=>"Mauritania", "iso3"=>"MRT", "iso"=>"MR", "iso_name"=>"MAURITANIA", "numcode"=>"478"}) +Spree::Country.create!({"name"=>"Pakistan", "iso3"=>"PAK", "iso"=>"PK", "iso_name"=>"PAKISTAN", "numcode"=>"586"}) +Spree::Country.create!({"name"=>"Sierra Leone", "iso3"=>"SLE", "iso"=>"SL", "iso_name"=>"SIERRA LEONE", "numcode"=>"694"}) +Spree::Country.create!({"name"=>"Tuvalu", "iso3"=>"TUV", "iso"=>"TV", "iso_name"=>"TUVALU", "numcode"=>"798"}) +Spree::Country.create!({"name"=>"Costa Rica", "iso3"=>"CRI", "iso"=>"CR", "iso_name"=>"COSTA RICA", "numcode"=>"188"}) +Spree::Country.create!({"name"=>"Germany", "iso3"=>"DEU", "iso"=>"DE", "iso_name"=>"GERMANY", "numcode"=>"276"}) +Spree::Country.create!({"name"=>"Mauritius", "iso3"=>"MUS", "iso"=>"MU", "iso_name"=>"MAURITIUS", "numcode"=>"480"}) +Spree::Country.create!({"name"=>"Palau", "iso3"=>"PLW", "iso"=>"PW", "iso_name"=>"PALAU", "numcode"=>"585"}) +Spree::Country.create!({"name"=>"Cote D'Ivoire", "iso3"=>"CIV", "iso"=>"CI", "iso_name"=>"COTE D'IVOIRE", "numcode"=>"384"}) +Spree::Country.create!({"name"=>"Panama", "iso3"=>"PAN", "iso"=>"PA", "iso_name"=>"PANAMA", "numcode"=>"591"}) +Spree::Country.create!({"name"=>"Singapore", "iso3"=>"SGP", "iso"=>"SG", "iso_name"=>"SINGAPORE", "numcode"=>"702"}) +Spree::Country.create!({"name"=>"Croatia", "iso3"=>"HRV", "iso"=>"HR", "iso_name"=>"CROATIA", "numcode"=>"191"}) +Spree::Country.create!({"name"=>"Ghana", "iso3"=>"GHA", "iso"=>"GH", "iso_name"=>"GHANA", "numcode"=>"288"}) +Spree::Country.create!({"name"=>"Papua New Guinea", "iso3"=>"PNG", "iso"=>"PG", "iso_name"=>"PAPUA NEW GUINEA", "numcode"=>"598"}) +Spree::Country.create!({"name"=>"Slovakia", "iso3"=>"SVK", "iso"=>"SK", "iso_name"=>"SLOVAKIA", "numcode"=>"703"}) +Spree::Country.create!({"name"=>"Gibraltar", "iso3"=>"GIB", "iso"=>"GI", "iso_name"=>"GIBRALTAR", "numcode"=>"292"}) +Spree::Country.create!({"name"=>"Paraguay", "iso3"=>"PRY", "iso"=>"PY", "iso_name"=>"PARAGUAY", "numcode"=>"600"}) +Spree::Country.create!({"name"=>"Slovenia", "iso3"=>"SVN", "iso"=>"SI", "iso_name"=>"SLOVENIA", "numcode"=>"705"}) +Spree::Country.create!({"name"=>"Greece", "iso3"=>"GRC", "iso"=>"GR", "iso_name"=>"GREECE", "numcode"=>"300"}) +Spree::Country.create!({"name"=>"Peru", "iso3"=>"PER", "iso"=>"PE", "iso_name"=>"PERU", "numcode"=>"604"}) +Spree::Country.create!({"name"=>"Solomon Islands", "iso3"=>"SLB", "iso"=>"SB", "iso_name"=>"SOLOMON ISLANDS", "numcode"=>"90"}) +Spree::Country.create!({"name"=>"Greenland", "iso3"=>"GRL", "iso"=>"GL", "iso_name"=>"GREENLAND", "numcode"=>"304"}) +Spree::Country.create!({"name"=>"Somalia", "iso3"=>"SOM", "iso"=>"SO", "iso_name"=>"SOMALIA", "numcode"=>"706"}) +Spree::Country.create!({"name"=>"Grenada", "iso3"=>"GRD", "iso"=>"GD", "iso_name"=>"GRENADA", "numcode"=>"308"}) +Spree::Country.create!({"name"=>"South Africa", "iso3"=>"ZAF", "iso"=>"ZA", "iso_name"=>"SOUTH AFRICA", "numcode"=>"710"}) +Spree::Country.create!({"name"=>"Spain", "iso3"=>"ESP", "iso"=>"ES", "iso_name"=>"SPAIN", "numcode"=>"724"}) +Spree::Country.create!({"name"=>"Sri Lanka", "iso3"=>"LKA", "iso"=>"LK", "iso_name"=>"SRI LANKA", "numcode"=>"144"}) +Spree::Country.create!({"name"=>"Afghanistan", "iso3"=>"AFG", "iso"=>"AF", "iso_name"=>"AFGHANISTAN", "numcode"=>"4"}) +Spree::Country.create!({"name"=>"Albania", "iso3"=>"ALB", "iso"=>"AL", "iso_name"=>"ALBANIA", "numcode"=>"8"}) +Spree::Country.create!({"name"=>"Algeria", "iso3"=>"DZA", "iso"=>"DZ", "iso_name"=>"ALGERIA", "numcode"=>"12"}) +Spree::Country.create!({"name"=>"Latvia", "iso3"=>"LVA", "iso"=>"LV", "iso_name"=>"LATVIA", "numcode"=>"428"}) +Spree::Country.create!({"name"=>"American Samoa", "iso3"=>"ASM", "iso"=>"AS", "iso_name"=>"AMERICAN SAMOA", "numcode"=>"16"}) +Spree::Country.create!({"name"=>"Bulgaria", "iso3"=>"BGR", "iso"=>"BG", "iso_name"=>"BULGARIA", "numcode"=>"100"}) +Spree::Country.create!({"name"=>"Lebanon", "iso3"=>"LBN", "iso"=>"LB", "iso_name"=>"LEBANON", "numcode"=>"422"}) +Spree::Country.create!({"name"=>"Andorra", "iso3"=>"AND", "iso"=>"AD", "iso_name"=>"ANDORRA", "numcode"=>"20"}) +Spree::Country.create!({"name"=>"Burkina Faso", "iso3"=>"BFA", "iso"=>"BF", "iso_name"=>"BURKINA FASO", "numcode"=>"854"}) +Spree::Country.create!({"name"=>"Lesotho", "iso3"=>"LSO", "iso"=>"LS", "iso_name"=>"LESOTHO", "numcode"=>"426"}) +Spree::Country.create!({"name"=>"Angola", "iso3"=>"AGO", "iso"=>"AO", "iso_name"=>"ANGOLA", "numcode"=>"24"}) +Spree::Country.create!({"name"=>"Burundi", "iso3"=>"BDI", "iso"=>"BI", "iso_name"=>"BURUNDI", "numcode"=>"108"}) +Spree::Country.create!({"name"=>"Liberia", "iso3"=>"LBR", "iso"=>"LR", "iso_name"=>"LIBERIA", "numcode"=>"430"}) +Spree::Country.create!({"name"=>"Virgin Islands, British", "iso3"=>"VGB", "iso"=>"VG", "iso_name"=>"VIRGIN ISLANDS, BRITISH", "numcode"=>"92"}) +Spree::Country.create!({"name"=>"Anguilla", "iso3"=>"AIA", "iso"=>"AI", "iso_name"=>"ANGUILLA", "numcode"=>"660"}) +Spree::Country.create!({"name"=>"Cambodia", "iso3"=>"KHM", "iso"=>"KH", "iso_name"=>"CAMBODIA", "numcode"=>"116"}) +Spree::Country.create!({"name"=>"Equatorial Guinea", "iso3"=>"GNQ", "iso"=>"GQ", "iso_name"=>"EQUATORIAL GUINEA", "numcode"=>"226"}) +Spree::Country.create!({"name"=>"Libyan Arab Jamahiriya", "iso3"=>"LBY", "iso"=>"LY", "iso_name"=>"LIBYAN ARAB JAMAHIRIYA", "numcode"=>"434"}) +Spree::Country.create!({"name"=>"Nauru", "iso3"=>"NRU", "iso"=>"NR", "iso_name"=>"NAURU", "numcode"=>"520"}) +Spree::Country.create!({"name"=>"Virgin Islands, U.S.", "iso3"=>"VIR", "iso"=>"VI", "iso_name"=>"VIRGIN ISLANDS, U.S.", "numcode"=>"850"}) +Spree::Country.create!({"name"=>"Antigua and Barbuda", "iso3"=>"ATG", "iso"=>"AG", "iso_name"=>"ANTIGUA AND BARBUDA", "numcode"=>"28"}) +Spree::Country.create!({"name"=>"Cameroon", "iso3"=>"CMR", "iso"=>"CM", "iso_name"=>"CAMEROON", "numcode"=>"120"}) +Spree::Country.create!({"name"=>"Liechtenstein", "iso3"=>"LIE", "iso"=>"LI", "iso_name"=>"LIECHTENSTEIN", "numcode"=>"438"}) +Spree::Country.create!({"name"=>"Nepal", "iso3"=>"NPL", "iso"=>"NP", "iso_name"=>"NEPAL", "numcode"=>"524"}) +Spree::Country.create!({"name"=>"Wallis and Futuna", "iso3"=>"WLF", "iso"=>"WF", "iso_name"=>"WALLIS AND FUTUNA", "numcode"=>"876"}) +Spree::Country.create!({"name"=>"Western Sahara", "iso3"=>"ESH", "iso"=>"EH", "iso_name"=>"WESTERN SAHARA", "numcode"=>"732"}) +Spree::Country.create!({"name"=>"Argentina", "iso3"=>"ARG", "iso"=>"AR", "iso_name"=>"ARGENTINA", "numcode"=>"32"}) +Spree::Country.create!({"name"=>"Canada", "iso3"=>"CAN", "iso"=>"CA", "iso_name"=>"CANADA", "numcode"=>"124"}) +Spree::Country.create!({"name"=>"Eritrea", "iso3"=>"ERI", "iso"=>"ER", "iso_name"=>"ERITREA", "numcode"=>"232"}) +Spree::Country.create!({"name"=>"Lithuania", "iso3"=>"LTU", "iso"=>"LT", "iso_name"=>"LITHUANIA", "numcode"=>"440"}) +Spree::Country.create!({"name"=>"Netherlands", "iso3"=>"NLD", "iso"=>"NL", "iso_name"=>"NETHERLANDS", "numcode"=>"528"}) +Spree::Country.create!({"name"=>"Yemen", "iso3"=>"YEM", "iso"=>"YE", "iso_name"=>"YEMEN", "numcode"=>"887"}) +Spree::Country.create!({"name"=>"Cape Verde", "iso3"=>"CPV", "iso"=>"CV", "iso_name"=>"CAPE VERDE", "numcode"=>"132"}) +Spree::Country.create!({"name"=>"Estonia", "iso3"=>"EST", "iso"=>"EE", "iso_name"=>"ESTONIA", "numcode"=>"233"}) +Spree::Country.create!({"name"=>"Luxembourg", "iso3"=>"LUX", "iso"=>"LU", "iso_name"=>"LUXEMBOURG", "numcode"=>"442"}) +Spree::Country.create!({"name"=>"Netherlands Antilles", "iso3"=>"ANT", "iso"=>"AN", "iso_name"=>"NETHERLANDS ANTILLES", "numcode"=>"530"}) +Spree::Country.create!({"name"=>"Saint Helena", "iso3"=>"SHN", "iso"=>"SH", "iso_name"=>"SAINT HELENA", "numcode"=>"654"}) +Spree::Country.create!({"name"=>"Zambia", "iso3"=>"ZMB", "iso"=>"ZM", "iso_name"=>"ZAMBIA", "numcode"=>"894"}) +Spree::Country.create!({"name"=>"Cayman Islands", "iso3"=>"CYM", "iso"=>"KY", "iso_name"=>"CAYMAN ISLANDS", "numcode"=>"136"}) +Spree::Country.create!({"name"=>"Ethiopia", "iso3"=>"ETH", "iso"=>"ET", "iso_name"=>"ETHIOPIA", "numcode"=>"231"}) +Spree::Country.create!({"name"=>"Hungary", "iso3"=>"HUN", "iso"=>"HU", "iso_name"=>"HUNGARY", "numcode"=>"348"}) +Spree::Country.create!({"name"=>"Macao", "iso3"=>"MAC", "iso"=>"MO", "iso_name"=>"MACAO", "numcode"=>"446"}) +Spree::Country.create!({"name"=>"New Caledonia", "iso3"=>"NCL", "iso"=>"NC", "iso_name"=>"NEW CALEDONIA", "numcode"=>"540"}) +Spree::Country.create!({"name"=>"Zimbabwe", "iso3"=>"ZWE", "iso"=>"ZW", "iso_name"=>"ZIMBABWE", "numcode"=>"716"}) +Spree::Country.create!({"name"=>"Central African Republic", "iso3"=>"CAF", "iso"=>"CF", "iso_name"=>"CENTRAL AFRICAN REPUBLIC", "numcode"=>"140"}) +Spree::Country.create!({"name"=>"Falkland Islands (Malvinas)", "iso3"=>"FLK", "iso"=>"FK", "iso_name"=>"FALKLAND ISLANDS (MALVINAS)", "numcode"=>"238"}) +Spree::Country.create!({"name"=>"Iceland", "iso3"=>"ISL", "iso"=>"IS", "iso_name"=>"ICELAND", "numcode"=>"352"}) +Spree::Country.create!({"name"=>"Macedonia", "iso3"=>"MKD", "iso"=>"MK", "iso_name"=>"MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF", "numcode"=>"807"}) +Spree::Country.create!({"name"=>"New Zealand", "iso3"=>"NZL", "iso"=>"NZ", "iso_name"=>"NEW ZEALAND", "numcode"=>"554"}) +Spree::Country.create!({"name"=>"Saint Kitts and Nevis", "iso3"=>"KNA", "iso"=>"KN", "iso_name"=>"SAINT KITTS AND NEVIS", "numcode"=>"659"}) +Spree::Country.create!({"name"=>"Serbia", "iso3"=>"SRB", "iso"=>"RS", "iso_name" => "SERBIA", "numcode"=>"999"}) Spree::Config[:default_country_id] = Spree::Country.find_by_name("United States").id diff --git a/spree_multi_site/db/default/spree/states.rb b/spree_multi_site/db/default/spree/states.rb index 01c7468b..0a43f780 100644 --- a/spree_multi_site/db/default/spree/states.rb +++ b/spree_multi_site/db/default/spree/states.rb @@ -1,57 +1,57 @@ # encoding: utf-8 country = Spree::Country.find_by_name('United States') -Spree::State.create!({"name"=>"Michigan", "abbr"=>"MI", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"South Dakota", "abbr"=>"SD", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Washington", "abbr"=>"WA", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Wisconsin", "abbr"=>"WI", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Arizona", "abbr"=>"AZ", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Illinois", "abbr"=>"IL", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"New Hampshire", "abbr"=>"NH", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"North Carolina", "abbr"=>"NC", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Kansas", "abbr"=>"KS", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Missouri", "abbr"=>"MO", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Arkansas", "abbr"=>"AR", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Nevada", "abbr"=>"NV", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"District of Columbia", "abbr"=>"DC", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Idaho", "abbr"=>"ID", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Nebraska", "abbr"=>"NE", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Pennsylvania", "abbr"=>"PA", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Hawaii", "abbr"=>"HI", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Utah", "abbr"=>"UT", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Vermont", "abbr"=>"VT", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Delaware", "abbr"=>"DE", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Rhode Island", "abbr"=>"RI", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Oklahoma", "abbr"=>"OK", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Louisiana", "abbr"=>"LA", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Montana", "abbr"=>"MT", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Tennessee", "abbr"=>"TN", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Maryland", "abbr"=>"MD", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Florida", "abbr"=>"FL", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Virginia", "abbr"=>"VA", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Minnesota", "abbr"=>"MN", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"New Jersey", "abbr"=>"NJ", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Ohio", "abbr"=>"OH", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"California", "abbr"=>"CA", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"North Dakota", "abbr"=>"ND", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Maine", "abbr"=>"ME", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Indiana", "abbr"=>"IN", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Texas", "abbr"=>"TX", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Oregon", "abbr"=>"OR", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Wyoming", "abbr"=>"WY", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Alabama", "abbr"=>"AL", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Iowa", "abbr"=>"IA", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Mississippi", "abbr"=>"MS", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Kentucky", "abbr"=>"KY", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"New Mexico", "abbr"=>"NM", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Georgia", "abbr"=>"GA", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Colorado", "abbr"=>"CO", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Massachusetts", "abbr"=>"MA", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Connecticut", "abbr"=>"CT", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"New York", "abbr"=>"NY", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"South Carolina", "abbr"=>"SC", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"Alaska", "abbr"=>"AK", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"West Virginia", "abbr"=>"WV", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"U.S. Armed Forces – Americas", "abbr"=>"AA", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"U.S. Armed Forces – Europe", "abbr"=>"AE", :country=>country}, :without_protection => true) -Spree::State.create!({"name"=>"U.S. Armed Forces – Pacific", "abbr"=>"AP", :country=>country}, :without_protection => true) +Spree::State.create!({"name"=>"Michigan", "abbr"=>"MI", :country=>country}) +Spree::State.create!({"name"=>"South Dakota", "abbr"=>"SD", :country=>country}) +Spree::State.create!({"name"=>"Washington", "abbr"=>"WA", :country=>country}) +Spree::State.create!({"name"=>"Wisconsin", "abbr"=>"WI", :country=>country}) +Spree::State.create!({"name"=>"Arizona", "abbr"=>"AZ", :country=>country}) +Spree::State.create!({"name"=>"Illinois", "abbr"=>"IL", :country=>country}) +Spree::State.create!({"name"=>"New Hampshire", "abbr"=>"NH", :country=>country}) +Spree::State.create!({"name"=>"North Carolina", "abbr"=>"NC", :country=>country}) +Spree::State.create!({"name"=>"Kansas", "abbr"=>"KS", :country=>country}) +Spree::State.create!({"name"=>"Missouri", "abbr"=>"MO", :country=>country}) +Spree::State.create!({"name"=>"Arkansas", "abbr"=>"AR", :country=>country}) +Spree::State.create!({"name"=>"Nevada", "abbr"=>"NV", :country=>country}) +Spree::State.create!({"name"=>"District of Columbia", "abbr"=>"DC", :country=>country}) +Spree::State.create!({"name"=>"Idaho", "abbr"=>"ID", :country=>country}) +Spree::State.create!({"name"=>"Nebraska", "abbr"=>"NE", :country=>country}) +Spree::State.create!({"name"=>"Pennsylvania", "abbr"=>"PA", :country=>country}) +Spree::State.create!({"name"=>"Hawaii", "abbr"=>"HI", :country=>country}) +Spree::State.create!({"name"=>"Utah", "abbr"=>"UT", :country=>country}) +Spree::State.create!({"name"=>"Vermont", "abbr"=>"VT", :country=>country}) +Spree::State.create!({"name"=>"Delaware", "abbr"=>"DE", :country=>country}) +Spree::State.create!({"name"=>"Rhode Island", "abbr"=>"RI", :country=>country}) +Spree::State.create!({"name"=>"Oklahoma", "abbr"=>"OK", :country=>country}) +Spree::State.create!({"name"=>"Louisiana", "abbr"=>"LA", :country=>country}) +Spree::State.create!({"name"=>"Montana", "abbr"=>"MT", :country=>country}) +Spree::State.create!({"name"=>"Tennessee", "abbr"=>"TN", :country=>country}) +Spree::State.create!({"name"=>"Maryland", "abbr"=>"MD", :country=>country}) +Spree::State.create!({"name"=>"Florida", "abbr"=>"FL", :country=>country}) +Spree::State.create!({"name"=>"Virginia", "abbr"=>"VA", :country=>country}) +Spree::State.create!({"name"=>"Minnesota", "abbr"=>"MN", :country=>country}) +Spree::State.create!({"name"=>"New Jersey", "abbr"=>"NJ", :country=>country}) +Spree::State.create!({"name"=>"Ohio", "abbr"=>"OH", :country=>country}) +Spree::State.create!({"name"=>"California", "abbr"=>"CA", :country=>country}) +Spree::State.create!({"name"=>"North Dakota", "abbr"=>"ND", :country=>country}) +Spree::State.create!({"name"=>"Maine", "abbr"=>"ME", :country=>country}) +Spree::State.create!({"name"=>"Indiana", "abbr"=>"IN", :country=>country}) +Spree::State.create!({"name"=>"Texas", "abbr"=>"TX", :country=>country}) +Spree::State.create!({"name"=>"Oregon", "abbr"=>"OR", :country=>country}) +Spree::State.create!({"name"=>"Wyoming", "abbr"=>"WY", :country=>country}) +Spree::State.create!({"name"=>"Alabama", "abbr"=>"AL", :country=>country}) +Spree::State.create!({"name"=>"Iowa", "abbr"=>"IA", :country=>country}) +Spree::State.create!({"name"=>"Mississippi", "abbr"=>"MS", :country=>country}) +Spree::State.create!({"name"=>"Kentucky", "abbr"=>"KY", :country=>country}) +Spree::State.create!({"name"=>"New Mexico", "abbr"=>"NM", :country=>country}) +Spree::State.create!({"name"=>"Georgia", "abbr"=>"GA", :country=>country}) +Spree::State.create!({"name"=>"Colorado", "abbr"=>"CO", :country=>country}) +Spree::State.create!({"name"=>"Massachusetts", "abbr"=>"MA", :country=>country}) +Spree::State.create!({"name"=>"Connecticut", "abbr"=>"CT", :country=>country}) +Spree::State.create!({"name"=>"New York", "abbr"=>"NY", :country=>country}) +Spree::State.create!({"name"=>"South Carolina", "abbr"=>"SC", :country=>country}) +Spree::State.create!({"name"=>"Alaska", "abbr"=>"AK", :country=>country}) +Spree::State.create!({"name"=>"West Virginia", "abbr"=>"WV", :country=>country}) +Spree::State.create!({"name"=>"U.S. Armed Forces – Americas", "abbr"=>"AA", :country=>country}) +Spree::State.create!({"name"=>"U.S. Armed Forces – Europe", "abbr"=>"AE", :country=>country}) +Spree::State.create!({"name"=>"U.S. Armed Forces – Pacific", "abbr"=>"AP", :country=>country}) diff --git a/spree_multi_site/db/fake_order1.2.0/spree/payments.rb b/spree_multi_site/db/fake_order1.2.0/spree/payments.rb index 68d8c63b..4ad79cc0 100644 --- a/spree_multi_site/db/fake_order1.2.0/spree/payments.rb +++ b/spree_multi_site/db/fake_order1.2.0/spree/payments.rb @@ -11,13 +11,13 @@ def self.current creditcard = Spree::CreditCard.create({:cc_type => 'visa', :month => 12, :year => 2014, :last_digits => '1111', :first_name => 'Sean', :last_name => 'Schofield', - :gateway_customer_profile_id => 'BGS-1234'}, :without_protection => true) + :gateway_customer_profile_id => 'BGS-1234'}) Spree::Order.all.each_with_index do |order,index| printf "\rProcessing order #{index}" STDOUT.flush order.update! - payment = order.payments.create({:amount => order.total, :payment_method => method}, :without_protection => true) # :source => creditcard.clone, + payment = order.payments.create({:amount => order.total, :payment_method => method}) # :source => creditcard.clone, payment.update_attributes_without_callbacks({ :state => 'pending', :response_code => '12345' diff --git a/spree_multi_site/db/firstshop/users.rb b/spree_multi_site/db/firstshop/users.rb deleted file mode 100644 index da550829..00000000 --- a/spree_multi_site/db/firstshop/users.rb +++ /dev/null @@ -1,77 +0,0 @@ -#copy from spree_auth_devise/db/defaults/users -require 'highline/import' - -# see last line where we create an admin if there is none, asking for email and password -def prompt_for_admin_password - if ENV['ADMIN_PASSWORD'] - password = ENV['ADMIN_PASSWORD'].dup - say "Admin Password #{password}" - else - password = ask('Password [spree123]: ') do |q| - q.echo = false - q.validate = /^(|.{5,40})$/ - q.responses[:not_valid] = 'Invalid password. Must be at least 5 characters long.' - q.whitespace = :strip - end - password = 'spree123' if password.blank? - end - - password -end - -def prompt_for_admin_email - if ENV['ADMIN_EMAIL'] - email = ENV['ADMIN_EMAIL'].dup - say "Admin User #{email}" - else - email = ask('Email [spree@example.com]: ') do |q| - q.echo = true - q.whitespace = :strip - end - email = 'spree@example.com' if email.blank? - end - - email -end - -def create_admin_user - if ENV['AUTO_ACCEPT'] - password = 'spree123' - email = 'spree@example.com' - else - puts 'Create the admin user (press enter for defaults).' - #name = prompt_for_admin_name unless name - email = prompt_for_admin_email - password = prompt_for_admin_password - end - attributes = { - :password => password, - :password_confirmation => password, - :email => email, - :login => email - } - -# load 'spree/user.rb' - - if Spree.user_class.find_by_email(email) - say "\nWARNING: There is already a user with the email: #{email}, so no account changes were made. If you wish to create an additional admin user, please run rake db:admin:create again with a different email.\n\n" - else - admin = Spree.user_class.create(attributes,:without_protection => true) - # create an admin role and and assign the admin user to that role - role = Spree::Role.find_or_create_by_name 'admin' - admin.spree_roles << role - admin.save - end -end - -unless Spree.user_class.exists? - create_admin_user -else - puts 'Admin user has already been previously created.' - if agree('Would you like to create a new admin user? (yes/no)') - create_admin_user - else - puts 'No admin user created.' - end -end - diff --git a/spree_multi_site/db/migrate/20120415215214_create_sites.rb b/spree_multi_site/db/migrate/20120415215214_create_sites.rb index d1ef0f79..24e4547b 100644 --- a/spree_multi_site/db/migrate/20120415215214_create_sites.rb +++ b/spree_multi_site/db/migrate/20120415215214_create_sites.rb @@ -1,5 +1,8 @@ class CreateSites < ActiveRecord::Migration def self.up + # disable default site during migration, + # or default :site cause error before site_id added. + Spree::MultiSiteSystem.multi_site_context = 'admin_sites' create_table :spree_sites do |t| t.string :name t.string :domain diff --git a/spree_multi_site/db/migrate/20150108135747_associate_store_with_site.rb b/spree_multi_site/db/migrate/20150108135747_associate_store_with_site.rb new file mode 100644 index 00000000..2631ee99 --- /dev/null +++ b/spree_multi_site/db/migrate/20150108135747_associate_store_with_site.rb @@ -0,0 +1,12 @@ +class AssociateStoreWithSite < ActiveRecord::Migration + def change + add_column :spree_stores, :site_id, :integer, :default=>0 + Spree::Site.all.each{|site| + if site.stores.blank? + site.stores.create!( url: site.domain, name: site.name, code: site.short_name ) + end + } + end + + +end diff --git a/spree_multi_site/db/migrate/20150316135747_move_app_configuration_to_site.rb b/spree_multi_site/db/migrate/20150316135747_move_app_configuration_to_site.rb new file mode 100644 index 00000000..39a50ad6 --- /dev/null +++ b/spree_multi_site/db/migrate/20150316135747_move_app_configuration_to_site.rb @@ -0,0 +1,18 @@ +class MoveAppConfigurationToSite < ActiveRecord::Migration + def change + add_column :spree_sites, :allow_ssl_in_production, :boolean, :default=>false + add_column :spree_sites, :allow_ssl_in_development_and_test, :boolean, :default=>false + add_column :spree_sites, :allow_ssl_in_staging, :boolean, :default=>false + add_column :spree_sites, :check_for_spree_alerts, :boolean, :default=>false + + add_column :spree_sites, :display_currency, :boolean, :default=>false + add_column :spree_sites, :hide_cents, :boolean, :default=>false + + add_column :spree_sites, :currency, :string, :default=>'CNY' + add_column :spree_sites, :currency_symbol_position, :string, :default=>"before" + add_column :spree_sites, :currency_decimal_mark, :string, :default=>"." + add_column :spree_sites, :currency_thousands_separator, :string, :default=>"," + end + + +end diff --git a/spree_multi_site/db/sample1.2.0/spree/inventory_units.rb b/spree_multi_site/db/sample1.2.0/spree/inventory_units.rb index c2efa2c1..cd624871 100644 --- a/spree_multi_site/db/sample1.2.0/spree/inventory_units.rb +++ b/spree_multi_site/db/sample1.2.0/spree/inventory_units.rb @@ -1,4 +1,4 @@ # create the inventory units associated with the line item (we need to do this after the fixture b/c quantity is random) Spree::LineItem.all.each do |li| - li.quantity.times { li.order.inventory_units.create({:variant => li.variant, :state => 'sold', :shipment => li.order.shipment}, :without_protection => true) } + li.quantity.times { li.order.inventory_units.create({:variant => li.variant, :state => 'sold', :shipment => li.order.shipment}) } end diff --git a/spree_multi_site/db/samples/addresses.rb b/spree_multi_site/db/samples/addresses.rb index 7899c5f8..a7b9070d 100644 --- a/spree_multi_site/db/samples/addresses.rb +++ b/spree_multi_site/db/samples/addresses.rb @@ -12,7 +12,7 @@ :zipcode => 16804, :country => united_states, :phone => Faker::PhoneNumber.phone_number -}, :without_protection => true) +}) #Shipping address Spree::Address.create!({ @@ -25,4 +25,4 @@ :zipcode => 16804, :country => united_states, :phone => Faker::PhoneNumber.phone_number -}, :without_protection => true) +}) diff --git a/spree_multi_site/db/samples/adjustments.rb b/spree_multi_site/db/samples/adjustments.rb index e635bae0..b802e236 100644 --- a/spree_multi_site/db/samples/adjustments.rb +++ b/spree_multi_site/db/samples/adjustments.rb @@ -10,7 +10,7 @@ :label => "Tax", :state => "open", :mandatory => true -}, :without_protection => true) +}) last_order.adjustments.create!({ :amount => 0, @@ -19,7 +19,7 @@ :label => "Tax", :state => "open", :mandatory => true -}, :without_protection => true) +}) first_order.adjustments.create!({ :amount => 0, @@ -28,7 +28,7 @@ :label => "Shipping", :state => "finalized", :mandatory => true -}, :without_protection => true) +}) last_order.adjustments.create!({ :amount => 0, @@ -37,4 +37,4 @@ :label => "Shipping", :state => "finalized", :mandatory => true -}, :without_protection => true) +}) diff --git a/spree_multi_site/db/samples/option_types.rb b/spree_multi_site/db/samples/option_types.rb index 0e15384f..f862173f 100644 --- a/spree_multi_site/db/samples/option_types.rb +++ b/spree_multi_site/db/samples/option_types.rb @@ -12,5 +12,5 @@ ] option_types.each do |option_type_attrs| - Spree::OptionType.create!(option_type_attrs, :without_protection => true) + Spree::OptionType.create!(option_type_attrs) end diff --git a/spree_multi_site/db/samples/option_values.rb b/spree_multi_site/db/samples/option_values.rb index 36c87cba..34aaac8b 100644 --- a/spree_multi_site/db/samples/option_values.rb +++ b/spree_multi_site/db/samples/option_values.rb @@ -49,5 +49,5 @@ ] option_values.each do |option_value_attrs| - Spree::OptionValue.create!(option_values, :without_protection => true) + Spree::OptionValue.create!(option_values) end diff --git a/spree_multi_site/db/samples/orders.rb b/spree_multi_site/db/samples/orders.rb index 08515db1..c0f143a9 100644 --- a/spree_multi_site/db/samples/orders.rb +++ b/spree_multi_site/db/samples/orders.rb @@ -9,7 +9,7 @@ :total => 301.90, :shipping_address => Spree::Address.first, :billing_address => Spree::Address.last -}, :without_protection => true) +}) orders << Spree::Order.create!({ :number => "R987654321", @@ -19,19 +19,19 @@ :total => 31.90, :shipping_address => Spree::Address.first, :billing_address => Spree::Address.last -}, :without_protection => true) +}) orders[0].line_items.create!({ :variant => Spree::Product.find_by_name!("Ruby on Rails Tote").master, :quantity => 1, :price => 15.99 -}, :without_protection => true) +}) orders[1].line_items.create!({ :variant => Spree::Product.find_by_name!("Ruby on Rails Bag").master, :quantity => 1, :price => 22.99 -}, :without_protection => true) +}) orders.each(&:create_proposed_shipments) diff --git a/spree_multi_site/db/samples/payments.rb b/spree_multi_site/db/samples/payments.rb index 66992f19..a61d1795 100644 --- a/spree_multi_site/db/samples/payments.rb +++ b/spree_multi_site/db/samples/payments.rb @@ -14,11 +14,11 @@ def self.current creditcard = Spree::CreditCard.create({ :cc_type => 'visa', :month => 12, :year => 2014, :last_digits => '1111', :first_name => 'Sean', :last_name => 'Schofield', - :gateway_customer_profile_id => 'BGS-1234' }, :without_protection => true) + :gateway_customer_profile_id => 'BGS-1234' }) Spree::Order.all.each_with_index do |order, index| order.update! - payment = order.payments.create!({ :amount => order.total, :source => creditcard.clone, :payment_method => method }, :without_protection => true) + payment = order.payments.create!({ :amount => order.total, :source => creditcard.clone, :payment_method => method }) payment.update_attributes_without_callbacks({ :state => 'pending', :response_code => '12345' diff --git a/spree_multi_site/db/samples/products.rb b/spree_multi_site/db/samples/products.rb index c7d53d55..e2e11457 100644 --- a/spree_multi_site/db/samples/products.rb +++ b/spree_multi_site/db/samples/products.rb @@ -126,7 +126,7 @@ Spree::Config[:currency] = "USD" default_shipping_category = Spree::ShippingCategory.find_by_name!("Default Shipping") - product = Spree::Product.create!(default_attrs.merge(product_attrs), :without_protection => true) + product = Spree::Product.create!(default_attrs.merge(product_attrs)) Spree::Config[:currency] = "EUR" product.reload product.price = eur_price diff --git a/spree_multi_site/db/samples/shipping_methods.rb b/spree_multi_site/db/samples/shipping_methods.rb index f099c5b2..efa94bd8 100644 --- a/spree_multi_site/db/samples/shipping_methods.rb +++ b/spree_multi_site/db/samples/shipping_methods.rb @@ -7,7 +7,7 @@ end europe_vat = Spree::Zone.find_by_name!("EU_VAT") -shipping_category = Spree::ShippingCategory.find_or_create_by_name!('Default') +shipping_category = Spree::ShippingCategory.find_or_create_by!( name: 'Default') shipping_methods = [ { @@ -37,7 +37,7 @@ ] shipping_methods.each do |shipping_method_attrs| - Spree::ShippingMethod.create!(shipping_method_attrs, :without_protection => true) + Spree::ShippingMethod.create!(shipping_method_attrs) end { diff --git a/spree_multi_site/db/samples/taxons.rb b/spree_multi_site/db/samples/taxons.rb index f5942da6..4233d100 100644 --- a/spree_multi_site/db/samples/taxons.rb +++ b/spree_multi_site/db/samples/taxons.rb @@ -116,6 +116,6 @@ taxons.each do |taxon_attrs| if taxon_attrs[:parent] taxon_attrs[:parent] = Spree::Taxon.find_by_name!(taxon_attrs[:parent]) - Spree::Taxon.create!(taxon_attrs, :without_protection => true) + Spree::Taxon.create!(taxon_attrs) end end diff --git a/spree_multi_site/db/samples/variants.rb b/spree_multi_site/db/samples/variants.rb index 8c06ad5e..75a7f3c0 100644 --- a/spree_multi_site/db/samples/variants.rb +++ b/spree_multi_site/db/samples/variants.rb @@ -160,7 +160,7 @@ } variants.each do |variant_attrs| - Spree::Variant.create!(variant_attrs, :without_protection => true) + Spree::Variant.create!(variant_attrs) end masters.each do |product, variant_attrs| diff --git a/spree_multi_site/db/seeds.rb b/spree_multi_site/db/seeds.rb index 92c8d14f..e69de29b 100644 --- a/spree_multi_site/db/seeds.rb +++ b/spree_multi_site/db/seeds.rb @@ -1,10 +0,0 @@ - -default_path = File.join(SpreeMultiSite::Config.seed_dir, 'default') -# This first resets the task's already_invoked state, allowing the task to then be executed again, dependencies and all: -Rake::Task['db:load_dir'].reenable -Rake::Task['db:load_dir'].invoke(default_path) - -# For easy to test, load first shop while load seeds. -#default_path = File.join(SpreeMultiSite::Config.seed_dir, 'firstshop') -#Rake::Task['db:load_dir'].reenable -#Rake::Task['db:load_dir'].invoke(default_path) \ No newline at end of file diff --git a/spree_multi_site/lib/spree_multi_site.rb b/spree_multi_site/lib/spree_multi_site.rb index c8628e96..c9df5851 100644 --- a/spree_multi_site/lib/spree_multi_site.rb +++ b/spree_multi_site/lib/spree_multi_site.rb @@ -6,3 +6,11 @@ require 'spree_multi_site/middleware' require 'spree_multi_site/environment' require 'spree_multi_site/permitted_attributes_for_site' +require 'spree_multi_site/paperclip_aliyun_oss_helper' + + +module SpreeMultiSite + # these keys are alipay oss folder names + AttachmentClassEnum = Struct.new(:spree_taxon, :spree_post, :spree_image, :ckeditor_picture, :ckeditor_file, :spree_template_file, :spree_post_files )\ + ['Spree::Taxon','Spree::Post','Spree::Image', 'Ckeditor::Picture','Ckeditor::AttachmentFile', 'Spree::TemplateFile','Spree::PostFile'] +end diff --git a/spree_multi_site/lib/spree_multi_site/custom_fixtures.rb b/spree_multi_site/lib/spree_multi_site/custom_fixtures.rb index 686fb641..e69de29b 100644 --- a/spree_multi_site/lib/spree_multi_site/custom_fixtures.rb +++ b/spree_multi_site/lib/spree_multi_site/custom_fixtures.rb @@ -1,254 +0,0 @@ -require 'active_record/fixtures' - -module SpreeMultiSite - - class Fixtures < ActiveRecord::Fixtures - - @@all_cached_models = Hash.new { |h,k| h[k] = {} } - #handle has_and_belongs_to_many join table , key is association_reflection - @@all_cached_habtm_rows = Hash.new { |h,k| h[k] = [] } - - def self.cache_for_table(table_name) - @@all_cached_models[table_name] - end - def self.cache_models(table_name, models_map) - cache_for_table(table_name).update(models_map) - end - def self.cache_habtm_rows(habtm_association, rows) - @@all_cached_habtm_rows[habtm_association].concat rows - end - # Since create sample for each site, original key generating in Fixtures - # would not work. We should load fixture in proper order, all created model - # instances are cached, then the right foreign id could be set while create - # model instance which contains belongs_to association. - # ex. assets belongs_to variant, variant should be loaded before assets. - # Replace this method to prevent the table being emptied on each call. Needed - # when both core & auth have user fixtures, see below for code commented out. - # - def self.create_fixtures(fixtures_directory, table_names, class_names = {}) - table_names = [table_names].flatten.map { |n| n.to_s } - if class_names.empty? - table_names.each { |n| - class_names[n.tr('/', '_').to_sym] = n.classify if n.include?('/') - } - end - # FIXME: Apparently JK uses this. - connection = block_given? ? yield : ActiveRecord::Base.connection - - files_to_read = table_names.reject { |table_name| - fixture_is_cached?(connection, table_name) - } - - unless files_to_read.empty? - connection.disable_referential_integrity do - fixtures_map = {} - - fixture_files = files_to_read.map do |path| - table_name = path.tr '/', '_' - - fixtures_map[path] = self.new( - connection, - table_name, - class_names[table_name.to_sym] || table_name.classify, - ::File.join(fixtures_directory, path)) - end - - all_loaded_fixtures.update(fixtures_map) - - connection.transaction(:requires_new => true) do - fixture_files.each do |ff| - models_map = {} - conn = ff.model_class.respond_to?(:connection) ? ff.model_class.connection : connection - client_connection = conn.instance_variable_get(:@connection) - table_rows = ff.table_rows - model_class= ff.model_class - # REMOVED BY SPREE - # table_rows.keys.each do |table| - # conn.delete "DELETE FROM #{conn.quote_table_name(table)}", 'Fixture Delete' - # end - habtm_association = model_class.reflect_on_all_associations(:has_and_belongs_to_many).first - - table_rows.each do |table_name,rows| - #handle join table separately, assume one model only have one HABTM association - next if habtm_association.present? and table_name == habtm_association.options[:join_table] - #correct it after create all objects. - rows.each do |row| - #conn.insert_fixture(row, table_name) - primary_key = ff.identify_primary_key(row) - row.delete( "id" ) - - if row['parent_id'].present? # nested set, taxon - parent_key = ActiveRecord::Fixtures.identify(row['parent_id']) - row['parent_id'] = models_map[parent_key] - if row['parent_id']==0 -Rails.logger.debug "model_class=#{ff.model_class},primary_key=#{primary_key},table_name=#{table_name},parent_id=#{row['parent_id']}" - raise "can not find parent reference: #{row.inspect},parent_key=#{parent_key},models_map=#{models_map.inspect}" - end - end -Rails.logger.debug "model_class=#{ff.model_class},primary_key=#{primary_key},table_name=#{table_name},parent_id=#{row['parent_id']}" - model_instance = model_class.new() - model_instance.assign_attributes(row,:without_protection => true) - if table_name=~/taxonomies|tax_rates|shipping_methods|products|users|shipments/ - # taxonomies has :after_save to create taxon root, insert_fixture would avoid that. - # tax_rate has one calculator, calculator belongs to tax_rate, - # we have to create tax_rate before calculator since calculator require tax_rate.id - # tax_rate has calculator presence validation, so set validate=>false here. so does shipping_method - # TODO for product price validation - #model_instance.save!(:validate => false), it may not work, - conn.insert_fixture(row, table_name) - models_map[primary_key] = client_connection.last_id - else - model_instance.save! - models_map[primary_key] = model_instance.id - end -#puts "primary_key=#{primary_key},model_instance=#{model_instance.inspect}" - end - end - #create HABTM join talbe record with real foreign_key and mock association_foreign_key - #because association may not be created yet - #correct it after load all fixtures - if habtm_association.present? - habtm_rows =table_rows[habtm_association.options[:join_table]] -#Rails.logger.debug "cache habtm_association=#{habtm_association.options[:join_table]},#{habtm_rows.length}---------------------" - cache_habtm_rows(habtm_association, habtm_rows) - end - cache_models(ff.table_name, models_map) - end - - # Cap primary key sequences to max(pk). - if connection.respond_to?(:reset_pk_sequence!) - table_names.each do |table_name| - connection.reset_pk_sequence!(table_name.tr('/', '_')) - end - end - end - - cache_fixtures(connection, fixtures_map) - end - end - cached_fixtures(connection, table_names) - end - - #we have to create join table record after normal fixtures created. - def self.create_habtm_records - @@all_cached_habtm_rows.each_pair{|habtm_association, rows| - foreign_models_map = cache_for_table(habtm_association.active_record.table_name) - association_foreign_models_map = cache_for_table(habtm_association.klass.table_name) - association_klass = habtm_association.klass - rows.each{|row| - #set real foreign_key from created models -# puts "original_row=#{row.inspect},\nmodel_class=#{association_klass}" - row[ habtm_association.foreign_key ] = foreign_models_map[ row[ habtm_association.foreign_key ]] - row[ habtm_association.association_foreign_key ] = association_foreign_models_map[ row[ habtm_association.association_foreign_key ]] -if row[ habtm_association.foreign_key ].nil? or row[ habtm_association.association_foreign_key ].nil? - #puts "row[#{habtm_association.foreign_key}]=#{row[ habtm_association.foreign_key ]},#{foreign_models_map.length}" - #puts "row[#{habtm_association.association_foreign_key}]=#{row[ habtm_association.association_foreign_key ]},#{association_foreign_models_map.keys.inspect} " - raise "can not find foreign reference" -end - association_klass.connection.insert_fixture(row, habtm_association.options[:join_table]) - } - } - @@all_cached_habtm_rows.clear - end - - - # Replace this method to handle associations in yml. - # Return a hash of rows to be inserted. The key is the table, the value is - # a list of rows to insert to that table. - def table_rows - now = ActiveRecord::Base.default_timezone == :utc ? Time.now.utc : Time.now - now = now.to_s(:db) - site_column = 'site_id' - # allow a standard key to be used for doing defaults in YAML - fixtures.delete('DEFAULTS') - - # track any join tables we need to insert later - rows = Hash.new { |h,table| h[table] = [] } - - rows[table_name] = fixtures.map do |label, fixture| - row = fixture.to_hash - - if model_class && model_class < ActiveRecord::Base - # fill in timestamp columns if they aren't specified and the model is set to record_timestamps - if model_class.record_timestamps - timestamp_column_names.each do |name| - row[name] = now unless row.key?(name) - end - end - #set current site id if they aren't specified - if model_class.column_names.include? site_column - row[site_column] = Spree::Site.current.id unless row.key?(site_column) - end - # interpolate the fixture label - row.each do |key, value| - row[key] = label if value == "$LABEL" - end - - # generate a primary key if necessary - if has_primary_key_column? && !row.include?(primary_key_name) -#Rails.logger.debug "label=#{label},identify=#{ActiveRecord::Fixtures.identify(label)}" - row[primary_key_name] = ActiveRecord::Fixtures.identify(label) - end - - # If STI is used, find the correct subclass for association reflection - reflection_class = - if row.include?(inheritance_column_name) - row[inheritance_column_name].constantize rescue model_class - else - model_class - end - - reflection_class.reflect_on_all_associations.each do |association| - case association.macro - when :belongs_to - # Do not replace association name with association foreign key if they are named the same - fk_name = (association.options[:foreign_key] || "#{association.name}_id").to_s -#puts "association.name=#{association.name}, " - if association.name.to_s != fk_name && value = row.delete(association.name.to_s) - - if association.options[:polymorphic] - if value.sub!(/\s*\(([^\)]*)\)\s*$/, "") - # support polymorphic belongs_to as "label (Type)" - row[association.foreign_type] = $1 - end - #puts "cached_table=#{self.class.cache_for_table(row[association.foreign_type].constantize.table_name).inspect}" - #puts "row[association.foreign_type].constantize.table_name=#{row[association.foreign_type].constantize.table_name}" - row[fk_name] = self.class.cache_for_table(row[association.foreign_type].constantize.table_name)[ActiveRecord::Fixtures.identify(value)] - else - row[fk_name] = self.class.cache_for_table(association.klass.table_name)[ActiveRecord::Fixtures.identify(value)] - end - if row[fk_name].nil? - puts "looking for #{table_name},row=#{row.inspect}" - #puts "self.class.cache_for_table('spree_variants')=#{self.class.cache_for_table('spree_variants').keys.inspect}" - puts "@@all_cached_models=#{@@all_cached_models.keys.inspect}" - raise "can not find foreign reference: #{reflection_class}.#{fk_name}" - end - #row[fk_name] = ActiveRecord::Fixtures.identify(value) - end - when :has_and_belongs_to_many - if (targets = row.delete(association.name.to_s)) - targets = targets.is_a?(Array) ? targets : targets.split(/\s*,\s*/) - table_name = association.options[:join_table] - rows[table_name].concat targets.map { |target| -# Rails.logger.debug "target=#{target},#{ActiveRecord::Fixtures.identify(target)}" - { association.foreign_key => row[primary_key_name], - association.association_foreign_key => ActiveRecord::Fixtures.identify(target) } - } - end - end - end - end - - row - end - rows - end - - # generate a primary key if necessary - def identify_primary_key(row) - # Rails.logger.debug "primary_key_name=#{primary_key_name},val=#{row[primary_key_name]}, has_primary_key_column?=#{has_primary_key_column?} " - row[primary_key_name] if has_primary_key_column? && row.include?(primary_key_name) - end - end - -end \ No newline at end of file diff --git a/spree_multi_site/lib/spree_multi_site/engine.rb b/spree_multi_site/lib/spree_multi_site/engine.rb index 827868d2..bb736e12 100644 --- a/spree_multi_site/lib/spree_multi_site/engine.rb +++ b/spree_multi_site/lib/spree_multi_site/engine.rb @@ -9,41 +9,41 @@ class Engine < Rails::Engine g.test_framework :rspec end - initializer "spree.multisite.environment", :before => "spree.environment" do |app| + initializer "spree.multisite.environment", :before => :load_environment_config do |app| app.config.spree_multi_site = SpreeMultiSite::Environment.new - SpreeMultiSite::Config = app.config.spree_multi_site.preferences #legacy access - app.config.spree_multi_site.site_scope_required_classes_from_other_gems = [] - + #SpreeMultiSite::Config = app.config.spree_multi_site.preferences + #app.config.spree_multi_site.site_scope_required_classes_from_other_gems = [] + # use site.attributes instead # preferences contains two kind of records # 1. override AppConfiguration's default value. - # a. some preferences in AppConfiguration are for whole application, so override record site_id=0, like seed_dir + # a. some preferences in AppConfiguration are for whole application, so override record site_id=0 # this kind preference's description start with 'global' - # b. some preferences are for one site, so override record site_id>0, like :default_seo_title - # - # 2. preference in other models, site_id>0, key contain model instance id. - - #hack this class before :load_config_initializers, Spree::Config is using while initialize - Spree::AppConfiguration.class_eval do - #replace original :preference_cache_key, add current_site.id as part of key - #fix error Duplicate entry 'spree/app_configuration/site_url/1' - def preference_cache_key(name) - global_preferences = ["seed_dir"] - some_key = nil - if global_preferences.include? name#preference_description( name ).to_s.start_with? "global_" - some_key =[self.class.name, name, 0].join('::').underscore - else - some_key =[self.class.name, name, Spree::Site.current.id].join('::').underscore - end - some_key - end - end + # b. some preferences are for one site, so override record site_id>0, like :default_seo_title + # + # 2. preference in other models, site_id>0, key contain model instance id. + + #hack this class before :load_config_initializers, Spree::Config is using while initialize + #Spree::AppConfiguration.class_eval do + # #replace original :preference_cache_key, add current_site.id as part of key + # #fix error Duplicate entry 'spree/app_configuration/site_url/1' + # def preference_cache_key(name) + # global_preferences = [] + # some_key = nil + # if global_preferences.include? name#preference_description( name ).to_s.start_with? "global_" + # some_key =[self.class.name, name, 0].join('::').underscore + # else + # some_key =[self.class.name, name, Spree::Site.current.id].join('::').underscore + # end + # some_key + # end + #end end - + initializer "spree.multisite.add_middleware" do |app| app.middleware.use SpreeMultiSite::Middleware - end - + end + def self.activate Dir.glob(File.join(File.dirname(__FILE__), "../../app/**/*_decorator*.rb")) do |c| Rails.configuration.cache_classes ? require(c) : load(c) @@ -51,9 +51,9 @@ def self.activate end #spree_abc require #{config.root}/app/mailers config.autoload_paths += %W(#{config.root}/app/models/spree #{config.root}/app/jobs) - #Defines generic callbacks to run before after_initialize. + #Defines generic callbacks to run before after_initialize. config.to_prepare &method(:activate).to_proc - - + + end end diff --git a/spree_multi_site/lib/spree_multi_site/environment.rb b/spree_multi_site/lib/spree_multi_site/environment.rb index 0b8a3077..d80004ef 100644 --- a/spree_multi_site/lib/spree_multi_site/environment.rb +++ b/spree_multi_site/lib/spree_multi_site/environment.rb @@ -4,12 +4,17 @@ class Environment include Spree::Core::EnvironmentExtension attr_accessor :site_scope_required_classes_from_other_gems, :site_scope_required_classes_with_image_from_other_gems, :preferences + # system_top_domain is required, in middleware, we compare it with request.host, + # it tell us to initialize site by short_name or domain. + attr_accessor :system_top_domain def initialize - @preferences = Spree::MultiSiteConfiguration.new + #@preferences = Spree::MultiSiteConfiguration.new + #"Spree.user_class MUST be a String or Symbol object, not a Class object." + # it has to be in Environment, it vary in env + @system_top_domain = "dalianshops.com" @site_scope_required_classes_from_other_gems = [] - @site_scope_required_classes_with_image_from_other_gems ={} + @site_scope_required_classes_with_image_from_other_gems = [] end end end - diff --git a/spree_multi_site/lib/spree_multi_site/middleware.rb b/spree_multi_site/lib/spree_multi_site/middleware.rb index d0d59e76..a84fbc32 100644 --- a/spree_multi_site/lib/spree_multi_site/middleware.rb +++ b/spree_multi_site/lib/spree_multi_site/middleware.rb @@ -7,39 +7,40 @@ def initialize(app) def call(env) request = Rack::Request.new(env) - unless request.path.include?('.') # ignore .css, .js, .img - site = get_site_from_request(request) - Spree::Site.current = ( site || Spree::Site.first) + resource_extension = request.path[/\.[\w]+/] + # ignore .css, .js, .img, except .json + if resource_extension.nil? || resource_extension=='.json' + Spree::Store.current = get_store_from_request(request) end status, headers, body = @app.call(env) [status, headers, body] end - def get_site_from_request( request ) - site = nil - # test.david.com => www.david.com/?n=test.david.com + def get_store_from_request( request ) + # test.david.com => localhost:8080/?n=test.david.com # our domain is www.dalianshops.com - if request.params['n'].try(:split,'.') # support short_name.dalianshops.com - short_name = request.params['n'].split('.').first - site = Spree::Site.find_by_short_name(short_name) - end - - if site.blank? - # support domain, ex. www.david.com - # TODO should use public_suffix_service handle example.com.cn - site = Spree::Site.find_by_domain(request.host) - end - if(( Rails.env !~ /prduction/ ) && ( site.blank? ) ) + store = Spree::Store.by_domain( request.host ) + + # support domain, ex. www.david.com + # apache rewrite test.david.com => localhost:8080/?n=test.david.com, request.host is 'test.david.com' + # TODO should use public_suffix_service handle example.com.cn + + if(( Rails.env !~ /prduction/ ) && ( store.blank? ) ) # for development or test, enable get site from cookie - #Rails.logger.debug "request.cookie_jar=#{request.cookie_jar.inspect},#{request.cookie_jar[:abc_development_domain]},#{request.cookie_jar['abc_development_domain']}" - #string and symbol both OK. cookie.domain should be exactly same as host, www.domain.com != domain.com - cookie_domain = request.cookies['_dalianshops_domain'] - if cookie_domain.present? - site = Spree::Site.find_by_domain( cookie_domain ) - end + # string and symbol both OK. cookie.domain should be exactly same as host, www.domain.com != domain.com + # disable domain, some site have no domain, short_name always exists. + # we can not easily modify cookies except firefox, we'll add default_site for debug page on other browser. + # we could set default site for missing site as well. + short_name = request.cookies['_dalianshops_short_name'] + if short_name.present? + store = Spree::Store.unscoped.find_by_code( short_name ) + end + #support request.host for development + store ||= Spree::Store.default + end - site + store end end diff --git a/spree_multi_site/lib/spree_multi_site/multi_site_system.rb b/spree_multi_site/lib/spree_multi_site/multi_site_system.rb index 82315578..0a947033 100644 --- a/spree_multi_site/lib/spree_multi_site/multi_site_system.rb +++ b/spree_multi_site/lib/spree_multi_site/multi_site_system.rb @@ -1,63 +1,59 @@ # Spree::BaseController.class_eval would not work # Spree::UserSessionsController derive from Devise::SessionsController, it included Spree::Core::ControllerHelpers -require 'spree/core/controller_helpers/common' -class<< Spree::Core::ControllerHelpers::Common - #def included_with_site_support(receiver) - # receiver.send :include, Spree::MultiSiteSystem - # included_without_site_support(receiver) - # #receiver.prepend_before_filter :get_site #initialize site before authorize user in Spree::UserSessionsController.create - #end - #alias_method_chain :included, :site_support - - #Spree::Api::BaseController would include MultiSiteSystem, get_layout should not in it. - #override original methods - def get_layout - Spree::Site.current.layout.present? ? Spree::Site.current.layout : Spree::Config[:layout] - end -end - +#require 'spree/core/controller_helpers/common' +#class<< Spree::Core::ControllerHelpers::Common +# #Spree::Api::BaseController would include MultiSiteSystem, get_layout should not in it. +# #override original methods +# def get_layout +# Spree::Site.current.layout.present? ? Spree::Site.current.layout : Spree::Config[:layout] +# end +#end + module Spree module MultiSiteSystem extend ActiveSupport::Concern mattr_accessor :multi_site_context - + included do belongs_to :site # rails 3.2.19 # fix: Spree::Taxon.create!({ taxonomy_id: 0, name: 'name' }, without_protection: true) => - # - before_create {|record| record.site_id||= Spree::Site.current.id } - + # + # before_create {|record| record.site_id||= Spree::Site.current.id } + default_scope { - # admin_site_product, create or update global taxon. - if self == Spree::Taxon && multi_site_context=='admin_site_product' - scoped - # first site list template themes + # design shop create theme product, assign it to global taxon( taxon in site 1) + # enable getting taxon from site 1 + # user import theme from design site, we support import theme with taxon. + # enable geting taxon from design site + if ( self == Spree::Taxon || self == Spree::Taxonomy ) && multi_site_context=='free_taxon' + where(nil) + # first site list template themes elsif self == Spree::Product && multi_site_context=='site1_themes' - scoped - # first site list product images - elsif self == Spree::Image && multi_site_context=='site_product_images' - scoped - elsif multi_site_context=='admin_migration' - scoped - else + where(nil) + # first site list product images + elsif multi_site_context=='site_product_images' + where(nil) + # admin sites, site.users site.stores .. + elsif multi_site_context=='admin_sites' + where(nil) + else where(:site_id => Spree::Site.current.id) - end + end } - + end - + module ClassMethods - # remove it after upgrade to rails 4.0 def multi_site_context MultiSiteSystem.multi_site_context - end + end end - + def self.setup_context( new_multi_site_context = nil) self.multi_site_context = new_multi_site_context end - + # do block with given context def self.with_context( new_context, &block ) original_context = self.multi_site_context @@ -68,17 +64,22 @@ def self.with_context( new_context, &block ) self.multi_site_context = original_context end end - - def self.with_context_admin_site_product(&block) - with_context( 'admin_site_product', &block ) + + def self.with_context_free_taxon(&block) + with_context( 'free_taxon', &block ) end def self.with_context_site1_themes(&block) with_context( 'site1_themes', &block ) end + def self.with_context_site_product_images(&block) with_context( 'site_product_images', &block ) end - + + def self.with_context_admin_sites(&block) + with_context( 'admin_sites', &block ) + end + end -end \ No newline at end of file +end diff --git a/spree_multi_site/lib/spree_multi_site/paper_clip_interpolate_site.rb b/spree_multi_site/lib/spree_multi_site/paper_clip_interpolate_site.rb index 09139da1..80e13311 100644 --- a/spree_multi_site/lib/spree_multi_site/paper_clip_interpolate_site.rb +++ b/spree_multi_site/lib/spree_multi_site/paper_clip_interpolate_site.rb @@ -1,5 +1,76 @@ -unless Paperclip::Interpolations.all.include? :site - Paperclip.interpolates :site do |attachment, style_name| - attachment.instance.site_id # site.current do not work anymore, since we assign theme product to taxon of shop1. +module SpreeMultiSite + + unless Paperclip::Interpolations.all.include? :site + + Paperclip.interpolates :site do |attachment, style_name| + attachment.instance.site_id # site.current do not work anymore, since we assign theme product to taxon of shop1. + end + # Paperclip support :class, Spree::Taxon => spree/taxon, with simple_class, Spree::Taxon => taxon + Paperclip.interpolates :simple_class do |attachment, style_name| + + AttachmentClassEnum.to_h.key( attachment.instance.class.name ) || 'unkown' + #attachment.instance.class.name.demodulize.underscore + end + + Paperclip.interpolates :aliyun_host do |attachment, style_name| + #style_name is symbol + case style_name + when :original + Paperclip::Attachment.default_options[:aliyun][:oss_host] + else + Paperclip::Attachment.default_options[:aliyun][:img_host] + end + end + + # support aliyun image resize service + # product image { mini: '48x48>', small: '100x100>', product: '240x240>', medium: '350x350>', large: '600x600>' } + # post image { mini: '60x60>', small: '180x120>', medium: '280x190>', large: '670x370>'}, + # http://userdomain/object.jpg@100w_100h_90Q.jpg + Paperclip.interpolates :aliyun_style do |attachment, style_name| + extension = '.jpg' + style_symbol = style_name.to_sym + if attachment.instance.class.name == AttachmentClassEnum.spree_image + case style_symbol + when :mini + '@48w_48h_1x' + extension + when :small + '@100w_100h_1x' + extension + when :product + '@240w_240h_1x' + extension + when :medium + '@350w_350h_1x' + extension + when :large + '@600w_600h_1x' + extension + end + elsif attachment.instance.class.name == AttachmentClassEnum.spree_post + case style_symbol + when :mini # post cover + '@60w_60h_1x' + extension + when :small + '@180w_120h_1x' + extension + when :medium + '@280w_190h_1x' + extension + when :large + '@670w_370h_1x' + extension + end + elsif attachment.instance.class.name == AttachmentClassEnum.ckeditor_picture + case style_symbol + when :thumb # ckeditor image, '118x100#', as list item + #先把图按短边优先缩略,然后再用指定颜色填充剩余区域 + '@118w_100h_4e' + extension + when :content # ckeditor image, '800>' , as editor content + '@800w_l1' + extension + end + elsif attachment.instance.class.name == AttachmentClassEnum.spree_template_file + case style_symbol + when :mini + #将图按短边缩略到48x48, 然后按白色填充 + '@48w_48h_4e' + extension + end + + end + + end # :aliyun_style end -end \ No newline at end of file + +end # SpreeMultiSite diff --git a/spree_multi_site/lib/spree_multi_site/paperclip_aliyun_oss_helper.rb b/spree_multi_site/lib/spree_multi_site/paperclip_aliyun_oss_helper.rb new file mode 100644 index 00000000..9b4bcc0a --- /dev/null +++ b/spree_multi_site/lib/spree_multi_site/paperclip_aliyun_oss_helper.rb @@ -0,0 +1,35 @@ +module SpreeMultiSite + + # include into model + module PaperclipAliyunOssHelper + # original path and url + # :url => "/shops/:rails_env/:site/ckeditor_assets/pictures/:id/:style_:basename.:extension", + # :path => ":rails_root/public/shops/:rails_env/:site/ckeditor_assets/pictures/:id/:style_:basename.:extension", + + def self.extended( base ) + if base.storage_aliyun? + base.fix_path_for_aliyun_oss + end + end + + def fix_path_for_aliyun_oss + # ex. Spree::Taxon path = 1/taxon/1_test.jpg, :aliyun_style start with @ + # taxon/post/ + path = ":site/:simple_class/:id_:filename" + #make sure each + attachment_key = :attachment # spree_image/ spree_template_file + attachment_key = :icon if self.name == AttachmentClassEnum.spree_taxon + attachment_key = :cover if self.name == AttachmentClassEnum.spree_post + attachment_key = :data if self.name == AttachmentClassEnum.ckeditor_picture #Ckeditor::Picture, + attachment_key = :data if self.name == AttachmentClassEnum.ckeditor_file #Ckeditor::AttachmentFile + attachment_definitions[attachment_key][:path] = path + attachment_definitions[attachment_key][:url] = 'http://:aliyun_host/'+path+':aliyun_style' + attachment_definitions[attachment_key][:styles] = {} #no need styles anymore. it is supproted by oss style + end + + def storage_aliyun? + (attachment_definitions[:storage]||Paperclip::Attachment.default_options[:storage]) == :aliyun + end + end + +end diff --git a/spree_multi_site/lib/spree_multi_site/permitted_attributes_for_site.rb b/spree_multi_site/lib/spree_multi_site/permitted_attributes_for_site.rb index 2bc1d1c2..9d50285b 100644 --- a/spree_multi_site/lib/spree_multi_site/permitted_attributes_for_site.rb +++ b/spree_multi_site/lib/spree_multi_site/permitted_attributes_for_site.rb @@ -4,6 +4,9 @@ module PermittedAttributes ATTRIBUTES_FOR_SITE=[:site_attributes] mattr_reader *ATTRIBUTES_FOR_SITE - @@site_attributes = [:name, :domain, :short_name, :has_sample, :index_page,:theme_id,:foreign_theme_id] + @@site_attributes = [:name, :domain, :short_name, :has_sample, :index_page,:theme_id,:foreign_theme_id, :email, :password,:password_confirmation, + # from app_configuration + :allow_ssl_in_production, :allow_ssl_in_development_and_test, :allow_ssl_in_staging, :check_for_spree_alerts, :display_currency, :hide_cents, :currency, :currency_symbol_position, :currency_decimal_mark, :currency_thousands_separator + ] end end \ No newline at end of file diff --git a/spree_multi_site/lib/spree_multi_site/testing_support/factories.rb b/spree_multi_site/lib/spree_multi_site/testing_support/factories.rb new file mode 100644 index 00000000..a36a5d0b --- /dev/null +++ b/spree_multi_site/lib/spree_multi_site/testing_support/factories.rb @@ -0,0 +1,3 @@ +Dir["#{File.dirname(__FILE__)}/factories/**"].each do |f| + load File.expand_path(f) +end diff --git a/spree_multi_site/lib/spree_multi_site/testing_support/factories/site_factory.rb b/spree_multi_site/lib/spree_multi_site/testing_support/factories/site_factory.rb new file mode 100644 index 00000000..6c0b2588 --- /dev/null +++ b/spree_multi_site/lib/spree_multi_site/testing_support/factories/site_factory.rb @@ -0,0 +1,25 @@ +FactoryGirl.define do + factory :site1, class: Spree::Site do + name 'first' + email 'first@dalianshops.com' + password 'password' + + before(:create) do + Spree::Role.find_by(name: 'admin') || create(:role, name: 'admin') + end + + after(:create) do| site | + store = create(:store, site: site, is_public: true ) + #it is not work. + #store.is_public = true + #store.save! + end + + factory :site2 do + name 'design' + email 'design@dalianshops.com' + end + + end + +end diff --git a/spree_multi_site/lib/tasks/multi_site_extension_tasks.rake b/spree_multi_site/lib/tasks/multi_site_extension_tasks.rake index f89b054a..d67b288f 100644 --- a/spree_multi_site/lib/tasks/multi_site_extension_tasks.rake +++ b/spree_multi_site/lib/tasks/multi_site_extension_tasks.rake @@ -1,18 +1,25 @@ def rename_multi_site_migrations puts "calling spree_multi_site:install:migrations enhance" - #default migration sequence is spree's migration -> extension's migration - #we need to create site first, or User.find will cause error, so change name to reset order - #1create_site -> spree_zero_nine_zero -> other_spree_multi_site_migrations + # default migration sequence is spree's migration -> extension's migration + # we need to create site first, or User.find will cause error, so change name to reset order + # + # 1create_site -> + # -> spree_zero_nine_zero -> other_spree_multi_site_migrations spree_zero_nine_zero_migration = nil - spree_multi_site_migrations = [] + special_migration_regex = /create_sites/ + #add_site_orders| + #add_short_name_and_parent_id_to_site| + #add_has_sample| + #add_site_taxons/ + spree_multi_site_migrations = [] Dir[File.join(Rails.root,'db','migrate','*.rb')].sort.each{|file| spree_zero_nine_zero_migration = file if file =~/spree_one_two/ - spree_multi_site_migrations<< file if file=~/spree_multi_site.rb$/ && file !~/_last_/ #z: load it at last. - #leave this file 'add_site_payment_methods' at the end + spree_multi_site_migrations<< file if file=~/spree_multi_site.rb$/ && file =~special_migration_regex #z: load it at last. + #leave this file 'add_site_payment_methods' at the end } - #puts "--spree_zero_nine_zero_migration=#{spree_zero_nine_zero_migration}" - #puts "--spree_multi_site_migrations=#{spree_multi_site_migrations}" - if spree_zero_nine_zero_migration.present? and spree_multi_site_migrations.present? + #puts "--spree_zero_nine_zero_migration=#{spree_zero_nine_zero_migration}" + #puts "--spree_multi_site_migrations=#{spree_multi_site_migrations}" + if spree_zero_nine_zero_migration.present? && spree_multi_site_migrations.present? spree_zero_file_name = File.basename(spree_zero_nine_zero_migration,'.rb') # spree_zero_nine_zero_migration is full path migration_start_number = spree_zero_file_name.to_i - spree_multi_site_migrations.size create_site_migration = spree_multi_site_migrations.shift @@ -23,12 +30,12 @@ def rename_multi_site_migrations File.rename(spree_zero_nine_zero_migration, spree_zero_nine_zero_migration.sub(/\d+/,(migration_start_number+1).to_s)) spree_multi_site_migrations.each_index{|i| migration_file = spree_multi_site_migrations[i] - File.rename(migration_file, migration_file.sub(/\d+/,(migration_start_number+2+i).to_s)) + File.rename(migration_file, migration_file.sub(/\d+/,(migration_start_number+2+i).to_s)) } - end + end end - puts "complete renaming spree_multi_site's migration" - + puts "complete renaming spree_multi_site's migration" + end # task test_app call railties:install:migrations @@ -38,7 +45,7 @@ end #namespace :spree_multi_site do # namespace :install do -# namespace :migrations do +# namespace :migrations do # end # end #end @@ -56,13 +63,13 @@ namespace :spree do mkdir_p RAILS_ROOT + directory cp file, RAILS_ROOT + path end - end + end desc "remove multi_site's migrations first,then install again, useful for modifing some existing migration file!" task :reinstall_migrations => :environment do Dir[File.join(Rails.root,'db','migrate','*.rb')].sort.each{|file| if file=~/spree_multi_site.rb$/ File.delete(file) - end + end } Rake::Task['spree_multi_site:install:migrations'].invoke end @@ -74,7 +81,7 @@ namespace :spree do #site.taxonomies = Spree::Taxonomy.find(:all) #site.orders = Spree::Order.find(:all) #site.save - #end + #end end end -end \ No newline at end of file +end diff --git a/spree_multi_site/spec/controllers/spree/site_controller_spec.rb b/spree_multi_site/spec/controllers/spree/site_controller_spec.rb deleted file mode 100644 index 2b9e2c69..00000000 --- a/spree_multi_site/spec/controllers/spree/site_controller_spec.rb +++ /dev/null @@ -1,13 +0,0 @@ -require 'spec_helper' - -describe Spree::SitesController do - - it "should create site" do - spree_post :quick_lunch,{:site=>{:name=>"a test"}, :user=>{:email=>'test@test.com',:password=>'123456'}} - site = assigns(:site) - site.should be_kind_of Spree::Site - site.shipping_categories.count.should eq 1 - site.users.count.should eq 1 - response.should redirect_to(site.admin_url) - end -end diff --git a/spree_multi_site/spec/controllers/spree/sites_controller_spec.rb b/spree_multi_site/spec/controllers/spree/sites_controller_spec.rb new file mode 100644 index 00000000..ef745c51 --- /dev/null +++ b/spree_multi_site/spec/controllers/spree/sites_controller_spec.rb @@ -0,0 +1,28 @@ +require 'spec_helper' + +describe Spree::SitesController do + #let!(:user) { mock_model(Spree::User, :spree_api_key => 'fake', :last_incomplete_spree_order => nil) } + let!(:role) { create(:admin_role) } + + before do + Spree::Site.current = create(:site1) + end + #Delete this example and add some real ones + it "should use Spree::SitesController" do + controller.should be_an_instance_of(Spree::SitesController) + end + #{"utf8"=>"✓", "authenticity_token"=>"Klllros8vRbKw1rGMzq33yHRXJ2ioTyaXV0Uy2YlsUw=", "site"=>{"name"=>"test", "short_name"=>"test", "has_sample"=>"1"}, "user"=>{"email"=>"test@gmail.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"创建"} + it "should create a site successfully" do + spree_post :create, { "site"=>{"name"=>"test", "short_name"=>"test", "email"=>"test@gmail.com", "password"=>"123456", "password_confirmation"=>"123456"} } + expect(assigns(:site)).to be_kind_of Spree::Site + expect(response).to redirect_to( assigns(:site).admin_url ) + end + + it "should quick lunch a site successfully" do + spree_post :quick_lunch, { "site"=>{"name"=>"test", "short_name"=>"test", "email"=>"test@gmail.com", "password"=>"123456"}} + expect(assigns(:site)).to be_kind_of Spree::Site + expect(response).to redirect_to( assigns(:site).admin_url ) + end + + +end diff --git a/spree_multi_site/spec/controllers/spree/store_controller_spec.rb b/spree_multi_site/spec/controllers/spree/store_controller_spec.rb deleted file mode 100644 index be44744c..00000000 --- a/spree_multi_site/spec/controllers/spree/store_controller_spec.rb +++ /dev/null @@ -1,17 +0,0 @@ -require 'spec_helper' - -describe Spree::StoreController do - - #Delete this example and add some real ones - it "should use Spree::StoreController" do - controller.should be_an_instance_of(Spree::StoreController) - expect( controller.methods).to include(:get_site_and_products) - - end -#{"utf8"=>"✓", "authenticity_token"=>"Klllros8vRbKw1rGMzq33yHRXJ2ioTyaXV0Uy2YlsUw=", "site"=>{"name"=>"test", "short_name"=>"test", "has_sample"=>"1"}, "user"=>{"email"=>"test@gmail.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"创建"} - it "should create a site successfully with an HTTP 200 status code" do - post :new - expect(response).to be_success - expect(response.status).to eq(200) - end -end diff --git a/spree_multi_site/spec/fixtures/qinghe.jpg b/spree_multi_site/spec/fixtures/qinghe.jpg new file mode 100644 index 00000000..6e647b70 Binary files /dev/null and b/spree_multi_site/spec/fixtures/qinghe.jpg differ diff --git a/spree_multi_site/spec/models/site_spec.rb b/spree_multi_site/spec/models/site_spec.rb index 8b820260..6168eb55 100644 --- a/spree_multi_site/spec/models/site_spec.rb +++ b/spree_multi_site/spec/models/site_spec.rb @@ -2,87 +2,76 @@ require 'spec_helper' describe Spree::Site do before(:each) do - @site = Spree::Site.new(:name=>'ABCD',:domain=>'www.abc.net') + create(:admin_role) + @site = Spree::Site.new(:name=>'ABCD',:domain=>'www.abc.net', :email=>'test@dalianshops.com', :password=>'123456') end - it "should be valid" do - @site.should be_valid - @site.domain = '' - @site.should be_valid - + it "should be valid with blank domain" do @site.domain = nil @site.should be_valid - - @site.domain = 'www.abc.net' - @site.save! - - site2 = @site.dup - site2.should be_invalid - site2.short_name = nil - site2.domain = nil - site2.should be_valid - site2.save.should be_true - site2.short_name.should start_with( @site.short_name) - site2.short_name.should_not == @site.short_name end - - - - it "should not be valid" do + + it "named 'ABC' should not be valid" do @site.name = 'ABC' @site.short_name = nil - @site.valid?.should be_false - + @site.valid?.should be_falsy + end + + it "generate 'da-lian-and-bai-jiu' from name '大连&白酒!'" do @site.name = '大连&白酒!' @site.short_name = nil - @site.valid?.should be_true + @site.valid?.should be_truthy @site.short_name.should eq "da-lian-and-bai-jiu" - @site.save.should be_true - end - - it "should create site and user" do - user_attributes = {"email"=>"test@abc.com", "password"=>"a12345z", "password_confirmation"=>"a12345z"} - @site.users<< Spree::User.new(user_attributes) - @site.save - @site.should_not be_new_record - @site.users.first.email.should eq(user_attributes['email']) + @site.save.should be_truthy end - - it "shold load samples" do + + it "should create site with store, user and shipping_category" do + #user_attributes = {"email"=>"test@abc.com", "password"=>"a12345z", "password_confirmation"=>"a12345z"} + #@site.users<< Spree::User.new(user_attributes) @site.save! - @site.load_sample - @site.shipping_categories.should be_present + @site.should be_persisted + Spree::Site.current = @site + @site.users.should be_present + @site.stores.should be_present end - - it "should has associations" do - @site.users.build.should be_present - @site.products.build.should be_present - @site.zones.build.should be_present - - end - + + # raise error ./app/models/spree/site.rb:56:in `current' + #it "should create site and admin user" do + # site_params = { "name"=>"test", "short_name"=>"test", + # "users_attributes"=>{"0"=>{"email"=>"test@dalianshops.com", "password"=>"123456", "password_confirmation"=>"123456"}} + # } + # site = Spree::Site.new(site_params) + # site.save + # site.should_not be_new_record + #end + + #it "shold load samples" do + # @site.save! + # @site.load_sample + # @site.shipping_categories.should be_present + # @site.users.first.should be_persisted + # @site.users.first.should be_admin + #end + it "shold remove samples" do - @site.save! - @site.load_sample(false) + @site.unload_sample Spree::Site.current = @site Spree::Product.count.should eq(0) - Spree::Variant.count.should eq(0) Spree::Zone.count.should eq(0) - Spree::ZoneMember.count.should eq(0) Spree::StateChange.count.should eq(0) #product variants #taxonomy, taxon #zone,zone_member #state_changes end - + it "shold create two site and load samples for them" do - @site1 = Spree::Site.create!(:name=>'Site1',:domain=>'www.site1.net',:short_name=>'site1') - @site2 = Spree::Site.create!(:name=>'Site1',:domain=>'www.site2.net',:short_name=>'site2') - @site1.load_sample - @site2.load_sample + #@site1 = Spree::Site.create!(:name=>'Site1',:domain=>'www.site1.net',:short_name=>'site1', :email=>'site1@dalianshops.com', :password=>'123456') + #@site2 = Spree::Site.create!(:name=>'Site1',:domain=>'www.site2.net',:short_name=>'site2', :email=>'site2@dalianshops.com', :password=>'123456') + #@site1.load_sample + #@site2.load_sample #product image copied and in right folder. end - + end diff --git a/spree_multi_site/spec/models/taxon_spec.rb b/spree_multi_site/spec/models/taxon_spec.rb deleted file mode 100644 index 02f2773f..00000000 --- a/spree_multi_site/spec/models/taxon_spec.rb +++ /dev/null @@ -1,12 +0,0 @@ -#encoding: utf-8 -require 'spec_helper' -describe Spree::Taxon do - before(:each) do - Spree::Site.current = Spree::Site.create!(:name=>'ABCD',:domain=>'www.abc.net') - @taxon = Spree::Taxon.new(:name=>'ABCD') - end - it "should create taxon with valid site!" do - new_taxon = Spree::Taxon.create!({ taxonomy_id: 0, name: 'name' }) - new_taxon.site.should eq Spree::Site.current - end -end diff --git a/spree_multi_site/spec/spec_helper.rb b/spree_multi_site/spec/spec_helper.rb index 453981c7..2dec8323 100644 --- a/spree_multi_site/spec/spec_helper.rb +++ b/spree_multi_site/spec/spec_helper.rb @@ -15,6 +15,7 @@ require File.expand_path('../dummy/config/environment.rb', __FILE__) require 'rspec/rails' +require 'database_cleaner' require 'ffaker' # Requires supporting ruby files with custom matchers and macros, etc, @@ -23,10 +24,16 @@ # Requires factories and other useful helpers defined in spree_core. require 'spree/testing_support/authorization_helpers' -require 'spree/testing_support/capybara_ext' -require 'spree/testing_support/controller_requests' require 'spree/testing_support/factories' +require 'spree/testing_support/preferences' +require 'spree/testing_support/controller_requests' +require 'spree/testing_support/flash' require 'spree/testing_support/url_helpers' +require 'spree/testing_support/order_walkthrough' +require 'spree/testing_support/capybara_ext' + +# Requires factories defined in lib/spree_multi_site/factories.rb +require 'spree_multi_site/testing_support/factories' RSpec.configure do |config| config.include FactoryGirl::Syntax::Methods @@ -40,8 +47,10 @@ # # visit spree.admin_path # current_path.should eql(spree.products_path) + config.include Spree::TestingSupport::Preferences config.include Spree::TestingSupport::UrlHelpers - + config.include Spree::TestingSupport::ControllerRequests + config.include Spree::TestingSupport::Flash # == Mock Framework # # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line: @@ -63,7 +72,7 @@ # Ensure Suite is set to use transactions for speed. config.before :suite do DatabaseCleaner.strategy = :transaction - DatabaseCleaner.clean_with :truncation + #DatabaseCleaner.clean_with :truncation end # Before each spec check if it is a Javascript test and switch between using database transactions or not where necessary. diff --git a/spree_pingpp/.gitignore b/spree_pingpp/.gitignore new file mode 100644 index 00000000..a3fc71a1 --- /dev/null +++ b/spree_pingpp/.gitignore @@ -0,0 +1,36 @@ +*.rbc +capybara-*.html +.rspec +/log +/tmp +/db/*.sqlite3 +/db/*.sqlite3-journal +/public/system +/coverage/ +/spec/tmp +/spec/dummy +**.orig +rerun.txt +pickle-email-*.html + +# TODO Comment out these rules if you are OK with secrets being uploaded to the repo +config/initializers/secret_token.rb +config/secrets.yml + +## Environment normalisation: +/.bundle +/vendor/bundle + +# these should all be checked in to normalise the environment: +# Gemfile.lock, .ruby-version, .ruby-gemset + +# unless supporting rvm < 1.11.0 or doing something fancy, ignore this: +.rvmrc + +# if using bower-rails ignore default bower_components path bower.json files +/vendor/assets/bower_components +*.bowerrc +bower.json + +# Ignore pow environment settings +.powenv diff --git a/spree_pingpp/Gemfile b/spree_pingpp/Gemfile new file mode 100644 index 00000000..4e3f60fb --- /dev/null +++ b/spree_pingpp/Gemfile @@ -0,0 +1,8 @@ +source 'https://rubygems.org' + +eval(File.read(File.dirname(__FILE__) + '/../common_spree_dependencies.rb')) + +gem 'pingpp', '~> 2.0.8' + + +gemspec diff --git a/spree_pingpp/LICENSE b/spree_pingpp/LICENSE new file mode 100644 index 00000000..84112151 --- /dev/null +++ b/spree_pingpp/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 RuanShan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/spree_pingpp/README.md b/spree_pingpp/README.md new file mode 100644 index 00000000..43421dbc --- /dev/null +++ b/spree_pingpp/README.md @@ -0,0 +1,51 @@ +SpreePingppHtml5 +================ + +Integrate pingpp-html5 into spree, +It is working in progress... + +Installation +------------ + +Add spree_pingpp to your Gemfile: + +```ruby +gem 'spree_pingpp' +``` + +Bundle your dependencies and run the installation generator: + +```shell +bundle +bundle exec rails g spree_pingpp:install +``` + +Testing +------- + +First bundle your dependencies, then run `rake`. `rake` will default to building the dummy app if it does not exist, then it will run specs. The dummy app can be regenerated by using `rake test_app`. + +```shell +bundle +bundle exec rake +``` + +When testing your applications integration with this extension you may use it's factories. +Simply add this require statement to your spec_helper: + +```ruby +require 'spree_pingpp/factories' +``` + +Related project +--------------- + +Spree https://github.com/spree/spree +PingPlusPlus https://github.com/PingPlusPlus + +Copyright (c) 2015 [name of extension creator], released under the New BSD License + + + + + diff --git a/spree_pingpp/Rakefile b/spree_pingpp/Rakefile new file mode 100644 index 00000000..e42ff482 --- /dev/null +++ b/spree_pingpp/Rakefile @@ -0,0 +1,21 @@ +require 'bundler' +Bundler::GemHelper.install_tasks + +require 'rspec/core/rake_task' +require 'spree/testing_support/extension_rake' + +RSpec::Core::RakeTask.new + +task :default do + if Dir["spec/dummy"].empty? + Rake::Task[:test_app].invoke + Dir.chdir("../../") + end + Rake::Task[:spec].invoke +end + +desc 'Generates a dummy app for testing' +task :test_app do + ENV['LIB_NAME'] = 'spree_pingpp' + Rake::Task['extension:test_app'].invoke +end diff --git a/spree_pingpp/app/assets/images/billing_integrations/pingpp/alipay_pc_direct.jpg b/spree_pingpp/app/assets/images/billing_integrations/pingpp/alipay_pc_direct.jpg new file mode 100644 index 00000000..e34d5d82 Binary files /dev/null and b/spree_pingpp/app/assets/images/billing_integrations/pingpp/alipay_pc_direct.jpg differ diff --git a/spree_pingpp/app/assets/images/billing_integrations/pingpp/alipay_wap.jpg b/spree_pingpp/app/assets/images/billing_integrations/pingpp/alipay_wap.jpg new file mode 100644 index 00000000..e34d5d82 Binary files /dev/null and b/spree_pingpp/app/assets/images/billing_integrations/pingpp/alipay_wap.jpg differ diff --git a/spree_pingpp/app/assets/images/billing_integrations/pingpp/upacp_pc.jpg b/spree_pingpp/app/assets/images/billing_integrations/pingpp/upacp_pc.jpg new file mode 100644 index 00000000..1254869a Binary files /dev/null and b/spree_pingpp/app/assets/images/billing_integrations/pingpp/upacp_pc.jpg differ diff --git a/spree_pingpp/app/assets/javascripts/pingpp-pc.js b/spree_pingpp/app/assets/javascripts/pingpp-pc.js new file mode 100644 index 00000000..98e08393 --- /dev/null +++ b/spree_pingpp/app/assets/javascripts/pingpp-pc.js @@ -0,0 +1,171 @@ +(function(){ +var + version = "2.0.7", + hasOwn = {}.hasOwnProperty, + PingppSDK = function(){}, + cfg = { + PINGPP_NOTIFY_URL: 'https://api.pingxx.com/notify/charges/', + PINGPP_MOCK_URL: 'http://sissi.pingxx.com/mock.php', + ALIPAY_PC_DIRECT_URL: 'https://mapi.alipay.com/gateway.do', + UPACP_PC_URL: 'https://gateway.95516.com/gateway/api/frontTransReq.do' + }, + channels = { + alipay_pc_direct: 'alipay_pc_direct', + upacp_pc: 'upacp_pc' + }; + +PingppSDK.prototype = { + + version: version, + + _resultCallback: undefined, + + _debug: false, + + createPayment: function(charge_json, callback, debug) { + if (typeof callback == "function") { + this._resultCallback = callback; + } + if (typeof debug == "boolean") { + this._debug = debug; + } + var charge; + if(typeof charge_json == "string"){ + try{ + charge = JSON.parse(charge_json); + }catch(err){ + this._innerCallback("fail", this._error("json_decode_fail")); + return; + } + }else{ + charge = charge_json; + } + if(typeof charge == "undefined"){ + this._innerCallback("fail", this._error("json_decode_fail")); + return; + } + if(!hasOwn.call(charge, 'id')){ + this._innerCallback("fail", this._error("invalid_charge", "no_charge_id")); + return; + } + if(!hasOwn.call(charge, 'channel')){ + this._innerCallback("fail", this._error("invalid_charge", "no_channel")); + return; + } + var channel = charge['channel']; + if(!hasOwn.call(charge, 'credential')){ + this._innerCallback("fail", this._error("invalid_charge", "no_credential")); + return; + } + if (!charge['credential']) { + this._innerCallback("fail", this._error("invalid_credential", "credential_is_undefined")); + return; + } + if (!hasOwn.call(channels, channel)) { + this._innerCallback("fail", this._error("invalid_charge", "no_such_channel:" + channel)); + return; + } + if (!hasOwn.call(charge['credential'], channel)) { + this._innerCallback("fail", this._error("invalid_credential", "no_valid_channel_credential")); + return; + } + if(!hasOwn.call(charge, 'livemode')){ + this._innerCallback("fail", this._error("invalid_charge", "no_livemode")); + return; + } + if (charge['livemode'] == false) { + this._testModeNotify(charge); + return; + } + var credential = charge['credential'][channel]; + if (channel == channels.upacp_pc) { + form_submit(cfg.UPACP_PC_URL, 'post', credential); + } else if (channel == channels.alipay_pc_direct) { + if (!hasOwn.call(credential, "_input_charset")) { + credential["_input_charset"] = 'utf-8'; + } + var query = stringify_data(credential, channel, true); + window.location.href = cfg.ALIPAY_PC_DIRECT_URL + "?" + query; + } + }, + + _error: function(msg, extra) { + msg = (typeof msg == "undefined") ? "" : msg; + extra = (typeof extra == "undefined") ? "" : extra; + return { + msg:msg, + extra:extra + }; + }, + + _innerCallback: function(result, err) { + if (typeof this._resultCallback == "function") { + if (typeof err == "undefined") { + err = this._error(); + } + this._resultCallback(result, err); + } + }, + + _testModeNotify: function(charge) { + var params = { + 'ch_id': charge['id'], + 'scheme': 'http', + 'channel': charge['channel'] + }; + if (hasOwn.call(charge, 'order_no')) { + params['order_no'] = charge['order_no']; + } else if (hasOwn.call(charge, 'orderNo')) { + params['order_no'] = charge['orderNo']; + } + if (hasOwn.call(charge, 'time_expire')) { + params['time_expire'] = charge['time_expire']; + } else if (hasOwn.call(charge, 'timeExpire')) { + params['time_expire'] = charge['timeExpire']; + } + if (hasOwn.call(charge, 'extra')) { + params['extra'] = encodeURIComponent(JSON.stringify(charge['extra'])); + } + location.href = cfg.PINGPP_MOCK_URL+'?'+stringify_data(params); + } +}; + +function form_submit(url, method, params) { + var form = document.createElement("form"); + form.setAttribute("method", method); + form.setAttribute("action", url); + + for (var key in params) { + if (hasOwn.call(params, key)) { + var hiddenField = document.createElement("input"); + hiddenField.setAttribute("type", "hidden"); + hiddenField.setAttribute("name", key); + hiddenField.setAttribute("value", params[key]); + form.appendChild(hiddenField); + } + } + + document.body.appendChild(form); + form.submit(); +} + +function stringify_data(data, channel, urlencode) { + if (typeof urlencode == "undefined") { + urlencode = false; + } + var output = []; + for (var i in data) { + if (channel == "bfb_wap" && i == "url") { + continue; + } + if (channel == "yeepay_wap" && i == "mode") { + continue; + } + output.push(i + '=' + (urlencode ? encodeURIComponent(data[i]) : data[i])); + } + return output.join('&'); +} + +PingppSDK.prototype.payment = PingppSDK.prototype.createPayment; +window.pingppPc = new PingppSDK(); +})(); diff --git a/spree_pingpp/app/assets/javascripts/pingpp.js b/spree_pingpp/app/assets/javascripts/pingpp.js new file mode 100644 index 00000000..48ab1ac6 --- /dev/null +++ b/spree_pingpp/app/assets/javascripts/pingpp.js @@ -0,0 +1,322 @@ +(function(){ +var + version = "2.0.7", + hasOwn = {}.hasOwnProperty, + PingppSDK = function(){}, + cfg = { + PINGPP_NOTIFY_URL: 'https://api.pingxx.com/notify/charges/', + UPACP_WAP_URL: 'https://gateway.95516.com/gateway/api/frontTransReq.do', + ALIPAY_WAP_URL: 'http://wappaygw.alipay.com/service/rest.htm', + UPMP_WAP_URL: 'uppay://uppayservice/?style=token&paydata=', + JDPAY_WAP_URL: 'https://m.jdpay.com/wepay/web/pay', + YEEPAY_WAP_URL: 'https://ok.yeepay.com/paymobile/api/pay/request', + YEEPAY_WAP_TEST_URL: 'http://mobiletest.yeepay.com/paymobile/api/pay/request', + PINGPP_MOCK_URL: 'http://sissi.pingxx.com/mock.php' + }, + channels = { + alipay_wap: 'alipay_wap', + upmp_wap: 'upmp_wap', + upacp_wap: 'upacp_wap', + bfb_wap: 'bfb_wap', + wx_pub: 'wx_pub', + yeepay_wap: 'yeepay_wap', + jdpay_wap: 'jdpay_wap' + }; + +PingppSDK.prototype = { + + version: version, + + _resultCallback: undefined, + + _jsApiParameters: {}, + + _debug: false, + + _signature: undefined, + + createPayment: function(charge_json, callback, signature, debug) { + if (typeof callback == "function") { + this._resultCallback = callback; + } + if (typeof signature != "undefined") { + this._signature = signature; + } + if (typeof debug == "boolean") { + this._debug = debug; + } + var charge; + if(typeof charge_json == "string"){ + try{ + charge = JSON.parse(charge_json); + }catch(err){ + this._innerCallback("fail", this._error("json_decode_fail")); + return; + } + }else{ + charge = charge_json; + } + if(typeof charge == "undefined"){ + this._innerCallback("fail", this._error("json_decode_fail")); + return; + } + if(!hasOwn.call(charge, 'id')){ + this._innerCallback("fail", this._error("invalid_charge", "no_charge_id")); + return; + } + if(!hasOwn.call(charge, 'channel')){ + this._innerCallback("fail", this._error("invalid_charge", "no_channel")); + return; + } + var channel = charge['channel']; + if(!hasOwn.call(charge, 'credential')){ + this._innerCallback("fail", this._error("invalid_charge", "no_credential")); + return; + } + if (!charge['credential']) { + this._innerCallback("fail", this._error("invalid_credential", "credential_is_undefined")); + return; + } + if (!hasOwn.call(channels, channel)) { + this._innerCallback("fail", this._error("invalid_charge", "no_such_channel:" + channel)); + return; + } + if (!hasOwn.call(charge['credential'], channel)) { + this._innerCallback("fail", this._error("invalid_credential", "no_valid_channel_credential")); + return; + } + if(!hasOwn.call(charge, 'livemode')){ + this._innerCallback("fail", this._error("invalid_charge", "no_livemode")); + return; + } + if (charge['livemode'] == false) { + this._testModeNotify(charge); + return; + } + var credential = charge['credential'][channel]; + if (channel == channels.upmp_wap) { // 调起银联支付控件,客户端需要安装银联支付控件才能调起 + location.href = cfg.UPMP_WAP_URL + credential['paydata']; + } else if (channel == channels.upacp_wap) { + form_submit(cfg.UPACP_WAP_URL, 'post', credential); + } else if (channel == channels.alipay_wap) { // 调起支付宝手机网页支付 + credential['_input_charset'] = 'utf-8'; + if (typeof _AP != "undefined") { + var query = stringify_data(credential, channel, true); + _AP.pay(cfg.ALIPAY_WAP_URL + "?" + query); + } else { + form_submit(cfg.ALIPAY_WAP_URL, 'get', credential); + } + } else if (channel == channels.bfb_wap) { + if (!hasOwn.call(credential, 'url')) { + this._innerCallback("fail", this._error("invalid_credential", "missing_field:url")); + return; + } + location.href = credential['url'] + '?' + stringify_data(credential, channel); + } else if (channel == channels.yeepay_wap) { + var fields = ["merchantaccount", "encryptkey", "data"]; + for (var k = 0; k < fields.length; k++) { + if(!hasOwn.call(credential, fields[k])){ + this._innerCallback("fail", this._error("invalid_credential", "missing_field_"+fields[k])); + return; + } + } + if (hasOwn.call(credential, "mode") && credential["mode"] == "test") { + location.href = cfg.YEEPAY_WAP_TEST_URL + '?' + stringify_data(credential, channel, true); + } else { + location.href = cfg.YEEPAY_WAP_URL + '?' + stringify_data(credential, channel, true); + } + } else if (channel == channels.wx_pub) { + var fields = ["appId", "timeStamp", "nonceStr", "package", "signType", "paySign"]; + for (var k = 0; k < fields.length; k++) { + if (!hasOwn.call(credential, fields[k])) { + this._innerCallback("fail", this._error("invalid_credential", "missing_field_"+fields[k])); + return; + } + } + this._jsApiParameters = credential; + this._callpay(); + } else if (channel == channels.jdpay_wap) { + form_submit(cfg.JDPAY_WAP_URL, 'post', credential); + } + }, + + _jsApiCall: function(){ + var self = this; + if(self._jsApiParameters != {}){ + WeixinJSBridge.invoke( + 'getBrandWCPayRequest', + self._jsApiParameters, + function(res){ + if(res.err_msg == 'get_brand_wcpay_request:ok'){ + self._innerCallback("success"); + }else if(res.err_msg == 'get_brand_wcpay_request:cancel'){ + self._innerCallback("cancel"); + }else{ + self._innerCallback("fail", self._error("wx_result_fail", res.err_msg)); + } + } + ); + } + }, + + _callpay: function(){ + var self = this; + if (typeof wx != "undefined" && typeof self._signature != "undefined") { + var wxConfigFailed = false; + wx.config({ + debug: self._debug, + appId: self._jsApiParameters["appId"], + timestamp: self._jsApiParameters["timeStamp"], + nonceStr: self._jsApiParameters["nonceStr"], + signature: self._signature, + jsApiList: ['chooseWXPay'] + }); + wx.ready(function(){ + if (wxConfigFailed) { + return; + } + wx.chooseWXPay({ + timestamp: self._jsApiParameters["timeStamp"], + nonceStr: self._jsApiParameters["nonceStr"], + "package": self._jsApiParameters["package"], + signType: self._jsApiParameters["signType"], + paySign: self._jsApiParameters["paySign"], + success: function(res) { + if (res.errMsg == "chooseWXPay:ok") { + self._innerCallback("success"); + } else { + self._innerCallback("fail", self._error("wx_result_fail", res.errMsg)); + } + }, + cancel: function(res) { + self._innerCallback("cancel"); + }, + fail: function(res) { + self._innerCallback("fail", self._error("wx_result_fail", res.errMsg)); + } + }); + }); + wx.error(function(res){ + wxConfigFailed = true; + self._innerCallback("fail", self._error("wx_config_error", res.errMsg)); + }); + } else if (typeof WeixinJSBridge == "undefined") { + function eventCallback(){ + self._jsApiCall(); + } + if (document.addEventListener) { + document.addEventListener('WeixinJSBridgeReady', eventCallback, false); + } else if(document.attachEvent) { + document.attachEvent('WeixinJSBridgeReady', eventCallback); + document.attachEvent('onWeixinJSBridgeReady', eventCallback); + } + }else{ + this._jsApiCall(); + } + }, + + _error: function(msg, extra) { + msg = (typeof msg == "undefined") ? "" : msg; + extra = (typeof extra == "undefined") ? "" : extra; + return { + msg:msg, + extra:extra + }; + }, + + _innerCallback: function(result, err) { + if (typeof this._resultCallback == "function") { + if (typeof err == "undefined") { + err = this._error(); + } + this._resultCallback(result, err); + } + }, + + _testModeNotify: function(charge) { + var self = this; + if (charge['channel'] == channels.wx_pub) { + var dopay = confirm("模拟付款?"); + if (dopay) { + var request = new XMLHttpRequest(); + request.open('GET', cfg.PINGPP_NOTIFY_URL+charge['id']+'?livemode=false', true); + request.onload = function() { + if (request.status >= 200 && request.status < 400 && request.responseText == "success"){ + self._innerCallback("success"); + } else { + var extra = 'http_code:'+request.status+';response:'+request.responseText; + self._innerCallback("fail", self._error("testmode_notify_fail", extra)); + } + }; + request.onerror = function() { + self._innerCallback("fail", self._error("network_err")); + }; + request.send(); + } else { + self._innerCallback("cancel"); + } + } else { + var params = { + 'ch_id': charge['id'], + 'scheme': 'http', + 'channel': charge['channel'] + }; + if (hasOwn.call(charge, 'order_no')) { + params['order_no'] = charge['order_no']; + } else if (hasOwn.call(charge, 'orderNo')) { + params['order_no'] = charge['orderNo']; + } + if (hasOwn.call(charge, 'time_expire')) { + params['time_expire'] = charge['time_expire']; + } else if (hasOwn.call(charge, 'timeExpire')) { + params['time_expire'] = charge['timeExpire']; + } + if (hasOwn.call(charge, 'extra')) { + params['extra'] = encodeURIComponent(JSON.stringify(charge['extra'])); + } + location.href = cfg.PINGPP_MOCK_URL+'?'+stringify_data(params); + } + } +}; + +function form_submit(url, method, params) { + var form = document.createElement("form"); + form.setAttribute("method", method); + form.setAttribute("action", url); + + for (var key in params) { + if (hasOwn.call(params, key)) { + var hiddenField = document.createElement("input"); + hiddenField.setAttribute("type", "hidden"); + hiddenField.setAttribute("name", key); + hiddenField.setAttribute("value", params[key]); + form.appendChild(hiddenField); + } + } + + document.body.appendChild(form); + form.submit(); +} + +function stringify_data(data, channel, urlencode) { + if (typeof urlencode == "undefined") { + urlencode = false; + } + var output = []; + for (var i in data) { + if (channel == "bfb_wap" && i == "url") { + continue; + } + if (channel == "yeepay_wap" && i == "mode") { + continue; + } + output.push(i + '=' + (urlencode ? encodeURIComponent(data[i]) : data[i])); + } + return output.join('&'); +} + +PingppSDK.prototype.payment = PingppSDK.prototype.createPayment; +window.pingpp = new PingppSDK(); +// aliases +window.PINGPP_PAY_SDK = window.PINGPP_WX_PUB = window.pingpp; +})(); diff --git a/spree_pingpp/app/assets/javascripts/spree/backend/spree_pingpp.js b/spree_pingpp/app/assets/javascripts/spree/backend/spree_pingpp.js new file mode 100644 index 00000000..8aa3b014 --- /dev/null +++ b/spree_pingpp/app/assets/javascripts/spree/backend/spree_pingpp.js @@ -0,0 +1,2 @@ +// Placeholder manifest file. +// the installer will append this file to the app vendored assets here: vendor/assets/javascripts/spree/backend/all.js' \ No newline at end of file diff --git a/spree_pingpp/app/assets/javascripts/spree/frontend/spree_pingpp.js b/spree_pingpp/app/assets/javascripts/spree/frontend/spree_pingpp.js new file mode 100644 index 00000000..f116f26c --- /dev/null +++ b/spree_pingpp/app/assets/javascripts/spree/frontend/spree_pingpp.js @@ -0,0 +1,2 @@ +//= require 'pingpp-pc' +//= require 'pingpp' diff --git a/spree_pingpp/app/assets/stylesheets/spree/backend/spree_pingpp.css b/spree_pingpp/app/assets/stylesheets/spree/backend/spree_pingpp.css new file mode 100644 index 00000000..e3c23662 --- /dev/null +++ b/spree_pingpp/app/assets/stylesheets/spree/backend/spree_pingpp.css @@ -0,0 +1,4 @@ +/* +Placeholder manifest file. +the installer will append this file to the app vendored assets here: 'vendor/assets/stylesheets/spree/backend/all.css' +*/ diff --git a/spree_pingpp/app/assets/stylesheets/spree/frontend/spree_pingpp.css b/spree_pingpp/app/assets/stylesheets/spree/frontend/spree_pingpp.css new file mode 100644 index 00000000..da236237 --- /dev/null +++ b/spree_pingpp/app/assets/stylesheets/spree/frontend/spree_pingpp.css @@ -0,0 +1,4 @@ +/* +Placeholder manifest file. +the installer will append this file to the app vendored assets here: 'vendor/assets/stylesheets/spree/frontend/all.css' +*/ diff --git a/spree_pingpp/app/controllers/spree/checkout_controller_decorator.rb b/spree_pingpp/app/controllers/spree/checkout_controller_decorator.rb new file mode 100644 index 00000000..2e05551c --- /dev/null +++ b/spree_pingpp/app/controllers/spree/checkout_controller_decorator.rb @@ -0,0 +1,48 @@ +#encoding: utf-8 +module Spree + CheckoutController.class_eval do + before_filter :payment_pingpp_hook, :only => [:update] + + def payment_pingpp_hook + @pingpp_base_class = Spree::Gateway::PingppBase + + return unless @order.next_step_complete? + #in confirm step, only param is {"state"=>"confirm"} + payment_method = get_payment_method_by_params( ) + if payment_method.kind_of?( @pingpp_base_class ) + handle_pingpp( payment_method ) + end + end + + # handle all supported billing_integration + def handle_pingpp( payment_method ) + if @order.update_from_params( params, permitted_checkout_attributes, request.headers.env ) + pingpp_channel = params['payment_pingpp'][payment_method.id.to_s] + #more flow detail + #https://pingxx.com/guidance/products/sdk + payment_provider = payment_method.provider + #please try with host 127.0.0.1 instead localhost, or get invalid url http://localhost:3000/... + #order_path( order, :only_path => false ) + begin + @charge = payment_provider.create_charge( @order, pingpp_channel, spree.pingpp_charge_done_path( :only_path => false ) ) + #redirect_to payment_provider.get_payment_url( charge ) + #render json: charge + render( :payment_pingpp_dispatch ) and return + rescue Pingpp::PingppError => error + Rails.logger.error error + redirect_to checkout_state_path( @order.state ) + end + else + render( :edit ) and return + end + end + + private + + def get_payment_method_by_params + payment_method_id = params[:order].try(:[],:payments_attributes).try(:first).try(:[],:payment_method_id).to_i + Spree::PaymentMethod.find_by_id(payment_method_id) + end + + end +end diff --git a/spree_pingpp/app/controllers/spree/pingpp_status_controller.rb b/spree_pingpp/app/controllers/spree/pingpp_status_controller.rb new file mode 100644 index 00000000..a0701c44 --- /dev/null +++ b/spree_pingpp/app/controllers/spree/pingpp_status_controller.rb @@ -0,0 +1,61 @@ +#inspired by https://github.com/spree-contrib/spree_skrill +module Spree + class PingppStatusController < StoreController + include Gateway::PingppHelper + + #fixes Action::Controller::InvalidAuthenticityToken error on alipay_notify + skip_before_action :verify_authenticity_token + + # success url + def charge_done + #alipay, get, "result"=>"success", "out_trade_no"=>"R677576938" + #upacp_pc, post, "orderId"=>"R677576938", "respMsg"=>"success" + order = retrieve_order + # get charge from server, notify message may be delay + unless order.complete? + payment_method = order.payments.last.payment_method + if payment_method.kind_of? Gateway::PingppBase + charge = payment_method.provider.retrieve_charge( order ) + if charge['paid'] + order.reload + end + end + end + if order.complete? + redirect_to spree.order_path( order ) + else + redirect_to checkout_state_path(order.state) + end + end + + def charge_notify + begin + event = JSON.parse( request.raw_post ) + response_status, response_body = Gateway::PingppEventHandler.new( event ).perform + rescue JSON::ParserError + response_body = 'JSON 解析失败' + end + render plain: response_body, status: response_status, content_type: 'text/plain; charset=utf-8' + end + + def test_charge_notify + begin + event = JSON.parse( request.raw_post ) + response_status, response_body = Gateway::PingppEventHandler.new( event ).perform + rescue JSON::ParserError + response_body = 'JSON 解析失败' + end + render plain: response_body, status: response_status, content_type: 'text/plain; charset=utf-8' + end + + + private + + def retrieve_order() + order_number = ( params["orderId"] || params["out_trade_no"] ) + # channel alipay_wap cannel_url is charge_done, order_number maybe nil in that case. + Spree::Order.find_by_number(order_number) || current_order + end + + end +end diff --git a/spree_pingpp/app/models/spree/gateway/pingpp_base.rb b/spree_pingpp/app/models/spree/gateway/pingpp_base.rb new file mode 100644 index 00000000..20c813b0 --- /dev/null +++ b/spree_pingpp/app/models/spree/gateway/pingpp_base.rb @@ -0,0 +1,29 @@ +require "pingpp" +module Spree + class Gateway::PingppBase < PaymentMethod + preference :api_key, :string + preference :app_key, :string + preference :channels, :string + #Pingpp.api_key = "YOUR-KEY" + + delegate :purchase, to: :provider + + def provider_class + Gateway::PingppProvider + end + + def provider + provider_class.new( self ) + end + + # it is required to make payment completed. + def source_required? + true + end + + def available_channels + self.preferred_channels.try(:split, ',') || [] + end + + end +end diff --git a/spree_pingpp/app/models/spree/gateway/pingpp_event_handler.rb b/spree_pingpp/app/models/spree/gateway/pingpp_event_handler.rb new file mode 100644 index 00000000..52ac8713 --- /dev/null +++ b/spree_pingpp/app/models/spree/gateway/pingpp_event_handler.rb @@ -0,0 +1,39 @@ +require "pingpp" +module Spree + class Gateway::PingppEventHandler + include Gateway::PingppHelper + + attr_accessor :event, :response_body, :status + def initialize( event ) + self.event = event + status = 400 + response_body = '' # 可自定义 + end + + def perform + if event['type'].nil? + response_body = 'missing Event type' + elsif event['type'] == 'charge.succeeded' + charge_succeeded + elsif event['object'] == 'refund.succeeded' + # 开发者在此处加入对退款异步通知的处理代码 + status = 200 + response_body = 'OK' + else + response_body = 'unkonwn Event type' + end + return status, response_body + end + + def charge_succeeded + charge = event['data']['object'] + order = get_order_by_charge charge + if order + complete_order order + end + self.status = 200 + self.response_body = 'OK' + end + + end +end diff --git a/spree_pingpp/app/models/spree/gateway/pingpp_helper.rb b/spree_pingpp/app/models/spree/gateway/pingpp_helper.rb new file mode 100644 index 00000000..ba9664dc --- /dev/null +++ b/spree_pingpp/app/models/spree/gateway/pingpp_helper.rb @@ -0,0 +1,22 @@ +module Spree + # helpers + module Gateway::PingppHelper + + def get_order_by_charge( charge ) + Spree::Order.find_by_number( charge['order_no'] ) + end + + def get_payment_by_order( order ) + order.payments.last + end + + def complete_order( order ) + order.next + end + + def get_order_by_gateway_options( gateway_options ) + gateway_order_id = gateway_options[:order_id] + end + + end +end diff --git a/spree_pingpp/app/models/spree/gateway/pingpp_mobile.rb b/spree_pingpp/app/models/spree/gateway/pingpp_mobile.rb new file mode 100644 index 00000000..f65f641b --- /dev/null +++ b/spree_pingpp/app/models/spree/gateway/pingpp_mobile.rb @@ -0,0 +1,10 @@ +require "pingpp" +module Spree + class Gateway::PingppMobile < Gateway::PingppBase + + def auto_capture? + true + end + + end +end diff --git a/spree_pingpp/app/models/spree/gateway/pingpp_pc.rb b/spree_pingpp/app/models/spree/gateway/pingpp_pc.rb new file mode 100644 index 00000000..068db929 --- /dev/null +++ b/spree_pingpp/app/models/spree/gateway/pingpp_pc.rb @@ -0,0 +1,11 @@ +require "pingpp" +module Spree + class Gateway::PingppPc < Gateway::PingppBase + + def auto_capture? + true + end + + + end +end diff --git a/spree_pingpp/app/models/spree/gateway/pingpp_provider.rb b/spree_pingpp/app/models/spree/gateway/pingpp_provider.rb new file mode 100644 index 00000000..ab72d149 --- /dev/null +++ b/spree_pingpp/app/models/spree/gateway/pingpp_provider.rb @@ -0,0 +1,130 @@ +require "pingpp" +module Spree + class Gateway::PingppProvider + include Gateway::PingppHelper + #PINGPP_NOTIFY_URL = 'https://api.pingxx.com/notify/charges/', + #PINGPP_MOCK_URL = 'http://sissi.pingxx.com/mock.php', + #ALIPAY_PC_DIRECT_URL = 'https://mapi.alipay.com/gateway.do', + #UPACP_PC_URL = 'https://gateway.95516.com/gateway/api/frontTransReq.do' + + PingppPcChannelEnum = Struct.new( :alipay_pc_direct, :upacp_pc )[ 'alipay_pc_direct', 'upacp_pc' ] + PingppWapChannelEnum = Struct.new( :alipay_wap, :upacp_wap )[ 'alipay_wap', 'upacp_wap'] + attr_accessor :payment_method + + def initialize( payment_method ) + self.payment_method = payment_method + setup_api_key( payment_method.preferred_api_key ) + end + + def setup_api_key( key ) + Pingpp.api_key = key + end + + def create_charge( order, channel, success_url ) + channel ||= PingppPcChannelEnum.alipay_pc_direct + params = { + :order_no => order.number, + :amount => (order.total * 100).to_i, # in cent + :subject => "Order : #{order.number}", + :body => order.products.collect(&:name).to_s, #String(400) + :channel => channel, + :currency => "cny", + :client_ip=> order.last_ip_address, + :app => { :id => payment_method.preferred_app_key }, + } + extra_alipay_params= { + :extra => { + # alipay + :success_url => success_url # + } + } + extra_alipay_wap_params= { + :extra => { + # alipay + :cancel_url => success_url, + :success_url => success_url # + } + } + extra_upacp_params= { + :extra => { + # upacp + :result_url => success_url # + } + } + + case channel + when PingppPcChannelEnum.alipay_pc_direct + params.merge! extra_alipay_params + when PingppPcChannelEnum.upacp_pc + params.merge! extra_upacp_params + when PingppWapChannelEnum.alipay_wap + params.merge! extra_alipay_wap_params + when PingppWapChannelEnum.upacp_wap + params.merge! extra_upacp_params + end + charge = Pingpp::Charge.create( params ) + # store charge "id": "ch_Hm5uTSifDOuTy9iLeLPSurrD", + payment = get_payment_by_order( order ) + payment.update_attribute( :response_code, charge['id'] ) + + charge + end + + def retrieve_charge( order ) + payment = get_payment_by_order( order ) + charge = Pingpp::Charge.retrieve( payment.response_code ) + end + + #def get_payment_url( charge ) + # channel = charge['channel']; + # raise "no_such_channel: #{channel}" unless PingppPcChannelEnum.values.include? channel + # raise "no_credential" unless charge['credential'].present? + # raise "no_valid_channel_credential" unless charge['credential'][channel].present? + # if charge['livemode'] == false + # return test_mode_notify_url(charge); + # end + # credential = charge['credential'][channel]; + # if channel == PingppPcChannelEnum.upacp_pc + # form_submit(cfg.UPACP_PC_URL, 'post', credential); + # elsif channel == PingppPcChannelEnum.alipay_pc_direct + # credential["_input_charset"] = 'utf-8'; + # ALIPAY_PC_DIRECT_URL + "?" + credential.to_param; + # end + #end + + #def test_mode_notify_url(charge) + # params = { ch_id: charge['id'], scheme: 'http', channel: charge['channel'] } + # if charge['order_no'] + # params['order_no'] = charge['order_no'] + # elsif charge['orderNo'] + # params['order_no'] = charge['orderNo'] + # end + # if charge['time_expire'] + # params['time_expire'] = charge['time_expire'] + # elsif charge['timeExpire'] + # params['time_expire'] = charge['timeExpire'] + # end + # if charge['extra'] + # params['extra'] = charge['extra'].to_json + # end + # PINGPP_MOCK_URL+'?'+ params.to_param + #end + + + def cancel( order ) + Pingpp::Charge.retrieve("CHARGE_ID").refunds.create(:description => "Refund Description") + end + + # * description - before order transition to: :complete + # * call spree/payment#gateway_action + # * params + # * options - gateway_options + # * return - pingpp_response + def purchase(money, credit_card, options = {}) + # since pingpp is offsite payment, this method is placehodler only. + # in this way, we could go through spree payment process. + return Gateway::PingppResponse.new + end + + end +end diff --git a/spree_pingpp/app/models/spree/gateway/pingpp_response.rb b/spree_pingpp/app/models/spree/gateway/pingpp_response.rb new file mode 100644 index 00000000..71cc49a0 --- /dev/null +++ b/spree_pingpp/app/models/spree/gateway/pingpp_response.rb @@ -0,0 +1,9 @@ +module Spree + class Gateway::PingppResponse + attr_accessor :authorization + + def success? + true + end + end +end diff --git a/spree_pingpp/app/models/spree/order_decorator.rb b/spree_pingpp/app/models/spree/order_decorator.rb new file mode 100644 index 00000000..ac455af4 --- /dev/null +++ b/spree_pingpp/app/models/spree/order_decorator.rb @@ -0,0 +1,8 @@ +Spree::Order.class_eval do + + def next_step_complete? + available_steps = checkout_steps + available_steps[ available_steps.index( self.state ).succ ] == 'complete' + end + +end diff --git a/spree_pingpp/app/models/spree/payment_decorator.rb b/spree_pingpp/app/models/spree/payment_decorator.rb new file mode 100644 index 00000000..7c1bccd9 --- /dev/null +++ b/spree_pingpp/app/models/spree/payment_decorator.rb @@ -0,0 +1,26 @@ +Spree::Payment.class_eval do + # order/payments, payment/processing + # order.process_payments! => payment.process! => handle_payment_preconditions { process_purchase } + def handle_payment_preconditions(&block) + unless block_given? + raise ArgumentError.new("handle_payment_preconditions must be called with a block") + end + + if payment_method && payment_method.source_required? + if source + if !processing? + if payment_method.supports?(source) || token_based? + yield + else + invalidate! + raise Core::GatewayError.new(Spree.t(:payment_method_not_supported)) + end + end + elsif payment_method.kind_of? Spree::Gateway::PingppBase + yield + else + raise Core::GatewayError.new(Spree.t(:payment_processing_failed)) + end + end + end +end diff --git a/spree_pingpp/app/views/spree/checkout/payment/_pingppmobile.html.erb b/spree_pingpp/app/views/spree/checkout/payment/_pingppmobile.html.erb new file mode 100644 index 00000000..61a6fdfc --- /dev/null +++ b/spree_pingpp/app/views/spree/checkout/payment/_pingppmobile.html.erb @@ -0,0 +1,5 @@ + +<% payment_method.available_channels.each_with_index{|channel, i| %> + <%= hidden_field_tag "payment_pingpp[#{payment_method.id}]", channel %> + <%= image_tag "billing_integrations/pingpp/#{channel}.jpg", alt: Spree.t( "pingpp_channel.#{channel}") %> +<% } %> diff --git a/spree_pingpp/app/views/spree/checkout/payment/_pingpppc.html.erb b/spree_pingpp/app/views/spree/checkout/payment/_pingpppc.html.erb new file mode 100644 index 00000000..61a6fdfc --- /dev/null +++ b/spree_pingpp/app/views/spree/checkout/payment/_pingpppc.html.erb @@ -0,0 +1,5 @@ + +<% payment_method.available_channels.each_with_index{|channel, i| %> + <%= hidden_field_tag "payment_pingpp[#{payment_method.id}]", channel %> + <%= image_tag "billing_integrations/pingpp/#{channel}.jpg", alt: Spree.t( "pingpp_channel.#{channel}") %> +<% } %> diff --git a/spree_pingpp/app/views/spree/checkout/payment_pingpp_dispatch.html.erb b/spree_pingpp/app/views/spree/checkout/payment_pingpp_dispatch.html.erb new file mode 100644 index 00000000..3d639f3e --- /dev/null +++ b/spree_pingpp/app/views/spree/checkout/payment_pingpp_dispatch.html.erb @@ -0,0 +1,19 @@ +<% +pingpp_object_name = ( Spree::Gateway::PingppProvider::PingppPcChannelEnum.values.include?( @charge['channel'] ) ? 'pingppPc' : 'pingpp' ) +%> + +
    +

    Payment page loading

    +
    +<%= javascript_tag defer: 'defer' do -%> +<%= pingpp_object_name%>.createPayment( <%== @charge.to_json %>, function(result, err){ + if( result == "success" ){ + + }else if(result == "fail" ){ + alert(err) + }else if( result == "cancel" ){ + alert(err) + } + +} ) +<% end %> diff --git a/spree_pingpp/bin/rails b/spree_pingpp/bin/rails new file mode 100644 index 00000000..e5539d0f --- /dev/null +++ b/spree_pingpp/bin/rails @@ -0,0 +1,7 @@ +# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application. + +ENGINE_ROOT = File.expand_path('../..', __FILE__) +ENGINE_PATH = File.expand_path('../../lib/spree_pingpp/engine', __FILE__) + +require 'rails/all' +require 'rails/engine/commands' diff --git a/spree_pingpp/config/locales/en.yml b/spree_pingpp/config/locales/en.yml new file mode 100644 index 00000000..36a26416 --- /dev/null +++ b/spree_pingpp/config/locales/en.yml @@ -0,0 +1,10 @@ +# Sample localization file for English. Add more files in this directory for other locales. +# See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points. + +en: + spree: + pingpp_channel: + alipay_pc_direct: Alipay PC direct + alipay_wap: Alipay Phone + upacp_pc: UnionPay PC + upacp_wap: UnionPay Phone diff --git a/spree_pingpp/config/locales/zh-CN.yml b/spree_pingpp/config/locales/zh-CN.yml new file mode 100644 index 00000000..aae0c0d4 --- /dev/null +++ b/spree_pingpp/config/locales/zh-CN.yml @@ -0,0 +1,10 @@ +# Sample localization file for English. Add more files in this directory for other locales. +# See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points. + +zh-CN: + spree: + pingpp_channel: + alipay_pc_direct: 支付宝 + alipay_wap: Alipay Phone + upacp_pc: 银联 + upacp_wap: UnionPay Phone diff --git a/spree_pingpp/config/routes.rb b/spree_pingpp/config/routes.rb new file mode 100644 index 00000000..c958c699 --- /dev/null +++ b/spree_pingpp/config/routes.rb @@ -0,0 +1,11 @@ +Spree::Core::Engine.routes.draw do + # Add your extension routes here + patch '/checkout/handle_pingpp', :to => 'checkout#handle_pingpp', as: :handle_pingpp, format: :json + + # called by pingpp webhook + post '/pingpp/charge_notify', :to=> 'pingpp_status#charge_notify' + post '/pingpp/test_charge_notify', :to=> 'pingpp_status#test_charge_notify' + # alipay get, upacp_pc post + match '/pingpp/charge_done', :to=> 'pingpp_status#charge_done', as: :pingpp_charge_done, via: [:get, :post] + +end diff --git a/spree_pingpp/lib/generators/spree_pingpp/install/install_generator.rb b/spree_pingpp/lib/generators/spree_pingpp/install/install_generator.rb new file mode 100644 index 00000000..c672ab7a --- /dev/null +++ b/spree_pingpp/lib/generators/spree_pingpp/install/install_generator.rb @@ -0,0 +1,31 @@ +module SpreePingpp + module Generators + class InstallGenerator < Rails::Generators::Base + + class_option :auto_run_migrations, :type => :boolean, :default => false + + def add_javascripts + append_file 'vendor/assets/javascripts/spree/frontend/all.js', "//= require spree/frontend/spree_pingpp\n" + append_file 'vendor/assets/javascripts/spree/backend/all.js', "//= require spree/backend/spree_pingpp\n" + end + + def add_stylesheets + inject_into_file 'vendor/assets/stylesheets/spree/frontend/all.css', " *= require spree/frontend/spree_pingpp\n", :before => /\*\//, :verbose => true + inject_into_file 'vendor/assets/stylesheets/spree/backend/all.css', " *= require spree/backend/spree_pingpp\n", :before => /\*\//, :verbose => true + end + + def add_migrations + run 'bundle exec rake railties:install:migrations FROM=spree_pingpp' + end + + def run_migrations + run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask 'Would you like to run the migrations now? [Y/n]') + if run_migrations + run 'bundle exec rake db:migrate' + else + puts 'Skipping rake db:migrate, don\'t forget to run it!' + end + end + end + end +end diff --git a/spree_pingpp/lib/spree_pingpp.rb b/spree_pingpp/lib/spree_pingpp.rb new file mode 100644 index 00000000..df7f44aa --- /dev/null +++ b/spree_pingpp/lib/spree_pingpp.rb @@ -0,0 +1,3 @@ +require 'spree_core' +require 'spree_pingpp/engine' +require 'sass/rails' diff --git a/spree_pingpp/lib/spree_pingpp/engine.rb b/spree_pingpp/lib/spree_pingpp/engine.rb new file mode 100644 index 00000000..d08b0367 --- /dev/null +++ b/spree_pingpp/lib/spree_pingpp/engine.rb @@ -0,0 +1,28 @@ +module SpreePingpp + class Engine < Rails::Engine + require 'spree/core' + isolate_namespace Spree + engine_name 'spree_pingpp' + + # use rspec for tests + config.generators do |g| + g.test_framework :rspec + end + + def self.activate + Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')) do |c| + Rails.configuration.cache_classes ? require(c) : load(c) + end + end + + config.to_prepare &method(:activate).to_proc + + + config.after_initialize do |app| + app.config.spree.payment_methods += [ + Spree::Gateway::PingppPc, + Spree::Gateway::PingppMobile + ] + end + end +end diff --git a/spree_pingpp/lib/spree_pingpp/factories.rb b/spree_pingpp/lib/spree_pingpp/factories.rb new file mode 100644 index 00000000..08019404 --- /dev/null +++ b/spree_pingpp/lib/spree_pingpp/factories.rb @@ -0,0 +1,6 @@ +FactoryGirl.define do + # Define your Spree extensions Factories within this file to enable applications, and other extensions to use and override them. + # + # Example adding this to your spec_helper will load these Factories for use: + # require 'spree_pingpp/factories' +end diff --git a/spree_pingpp/spec/features/pingpp_pc_spec.rb b/spree_pingpp/spec/features/pingpp_pc_spec.rb new file mode 100644 index 00000000..0c51794b --- /dev/null +++ b/spree_pingpp/spec/features/pingpp_pc_spec.rb @@ -0,0 +1,75 @@ +require 'spec_helper' +#copy from https://raw.github.com/radar/better_spree_paypal_express/master/spec/features/paypal_spec.rb +#http://sandbox.alipaydev.com/index.htm +#sandbox_areq22@aliyun.com +#http://openapi.alipaydev.com/gateway.do +describe "Alipay", :js => true, :type => :feature do + let!(:product) { FactoryGirl.create(:product, :name => 'iPad') } + + before do + @gateway = Spree::Gateway::PingppPc.create!({ + name: "PingppPcAlipay", + active: true, + preferences: { + channels: 'alipay_pc_direct', + app_key: 'app_S8qPKGyH8SKSvfLq', + api_key: 'sk_test_W9azX94mLu1O4SCibPHCCyHG' + } + }) + FactoryGirl.create(:shipping_method) + end + + + it "pays for an order successfully" do + + payment_method_css = "#order_payments_attributes__payment_method_id_#{@gateway.id}" + + + visit spree.root_path + click_link product.name + click_button 'Add To Cart' + click_button 'Checkout' + + #within("#guest_checkout") do + # fill_in "Email", :with => "test@example.com" + # click_button 'Continue' + #end + + fill_in_billing + click_button "Save and Continue" + # Delivery step doesn't require any action + click_button "Save and Continue" + + choose payment_method_css + click_button "Save and Continue" + # should redirect to pingpp mock page + find("#btn_pay").click + #page.should have_content("Your order has been processed successfully") + #Spree::Payment.last.should be_complete + end + + def fill_in_billing + fill_in "order_email", :with => "test@example.com" + + within("#billing") do + fill_in "First Name", :with => "Test" + fill_in "Last Name", :with => "User" + fill_in "Street Address", :with => "1 User Lane" + # City, State and ZIP must all match for PayPal to be happy + fill_in "City", :with => "Adamsville" + select "United States of America", :from => "order_bill_address_attributes_country_id" + select "Alabama", :from => "order_bill_address_attributes_state_id" + fill_in "Zip", :with => "35005" + fill_in "Phone", :with => "555-AME-RICA" + end + end + + def switch_to_paypal_login + # If you go through a payment once in the sandbox, it remembers your preferred setting. + # It defaults to the *wrong* setting for the first time, so we need to have this method. + unless page.has_selector?("#login_email") + find("#loadLogin").click + end + end + +end diff --git a/spree_pingpp/spec/spec_helper.rb b/spree_pingpp/spec/spec_helper.rb new file mode 100644 index 00000000..424257cf --- /dev/null +++ b/spree_pingpp/spec/spec_helper.rb @@ -0,0 +1,87 @@ +# Run Coverage report +require 'simplecov' +SimpleCov.start do + add_filter 'spec/dummy' + add_group 'Controllers', 'app/controllers' + add_group 'Helpers', 'app/helpers' + add_group 'Mailers', 'app/mailers' + add_group 'Models', 'app/models' + add_group 'Views', 'app/views' + add_group 'Libraries', 'lib' +end + +# Configure Rails Environment +ENV['RAILS_ENV'] = 'test' + +require File.expand_path('../dummy/config/environment.rb', __FILE__) + +require 'rspec/rails' +require 'database_cleaner' +require 'ffaker' + +# Requires supporting ruby files with custom matchers and macros, etc, +# in spec/support/ and its subdirectories. +Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f } + +# Requires factories and other useful helpers defined in spree_core. +require 'spree/testing_support/authorization_helpers' +require 'spree/testing_support/capybara_ext' +require 'spree/testing_support/controller_requests' +require 'spree/testing_support/factories' +require 'spree/testing_support/url_helpers' + +# Requires factories defined in lib/spree_pingpp/factories.rb +require 'spree_pingpp/factories' + +RSpec.configure do |config| + config.include FactoryGirl::Syntax::Methods + + # Infer an example group's spec type from the file location. + config.infer_spec_type_from_file_location! + + # == URL Helpers + # + # Allows access to Spree's routes in specs: + # + # visit spree.admin_path + # current_path.should eql(spree.products_path) + config.include Spree::TestingSupport::UrlHelpers + + # == Mock Framework + # + # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line: + # + # config.mock_with :mocha + # config.mock_with :flexmock + # config.mock_with :rr + config.mock_with :rspec + config.color = true + + # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures + config.fixture_path = "#{::Rails.root}/spec/fixtures" + + # Capybara javascript drivers require transactional fixtures set to false, and we use DatabaseCleaner + # to cleanup after each test instead. Without transactional fixtures set to false the records created + # to setup a test will be unavailable to the browser, which runs under a separate server instance. + config.use_transactional_fixtures = false + + # Ensure Suite is set to use transactions for speed. + config.before :suite do + DatabaseCleaner.strategy = :transaction + DatabaseCleaner.clean_with :truncation + end + + # Before each spec check if it is a Javascript test and switch between using database transactions or not where necessary. + config.before :each do + DatabaseCleaner.strategy = RSpec.current_example.metadata[:js] ? :truncation : :transaction + DatabaseCleaner.start + end + + # After each spec clean the database. + config.after :each do + DatabaseCleaner.clean + end + + config.fail_fast = ENV['FAIL_FAST'] || false + config.order = "random" +end diff --git a/spree_pingpp/spree_pingpp.gemspec b/spree_pingpp/spree_pingpp.gemspec new file mode 100644 index 00000000..b90c1704 --- /dev/null +++ b/spree_pingpp/spree_pingpp.gemspec @@ -0,0 +1,32 @@ +# encoding: UTF-8 +Gem::Specification.new do |s| + s.platform = Gem::Platform::RUBY + s.name = 'spree_pingpp' + s.version = '2.4.10' + s.summary = 'spree pingpp' + s.description = 'spree extension payment pingpp' + s.required_ruby_version = '>= 1.9.3' + + s.author = 'David' + s.email = 'areq22@gmail.com' + s.homepage = 'http://www.getstore.cn' + + #s.files = `git ls-files`.split("\n") + #s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n") + s.require_path = 'lib' + s.requirements << 'none' + + s.add_dependency 'spree_core', '~> 2.4.10' + s.add_dependency 'pingpp', '~> 2.0.8' + + s.add_development_dependency 'capybara', '~> 2.4' + s.add_development_dependency 'coffee-rails' + s.add_development_dependency 'database_cleaner' + s.add_development_dependency 'factory_girl', '~> 4.5' + s.add_development_dependency 'ffaker' + s.add_development_dependency 'rspec-rails', '~> 3.1' + s.add_development_dependency 'sass-rails', '~> 4.0.2' + s.add_development_dependency 'selenium-webdriver' + s.add_development_dependency 'simplecov' + s.add_development_dependency 'sqlite3' +end diff --git a/spree_theme/Gemfile b/spree_theme/Gemfile index 583b777d..f733fbe4 100644 --- a/spree_theme/Gemfile +++ b/spree_theme/Gemfile @@ -1,16 +1,14 @@ source 'http://rubygems.org' +#source "https://rails-assets.org" +eval(File.read(File.dirname(__FILE__) + '/../common_spree_dependencies.rb')) -gem 'spree', :github => "spree/spree", :branch => "2-0-stable" - group :test,:development do - gem 'ruby-graphviz' #print checkout flow - gem 'simplecov' #rspec using it. + #gem 'ruby-graphviz' #print checkout flow + #gem 'simplecov' #rspec using it. #using backend required - gem 'spree_auth_devise', :github => 'spree/spree_auth_devise', :branch => '2-0-stable' gem "mysql2" - gem 'thin' end #group :test do @@ -20,18 +18,16 @@ end gem "acts_as_list" gem "acts_as_tree" gem "awesome_nested_set" +gem 'acts_as_commentable' -#use paperclip instead of dragonfly, dragonfly have no way to configure image path -#gem "paperclip", "2.8.0" # spree require it. -gem "responds_to_parent" # spree already contain #gem 'jquery-rails' -#gem 'jquery-ui-rails' +gem 'useragent' gem "friendly_id" -group :assets do - gem 'sass' - gem 'coffee-rails' -end #gem 'ssl_requirement' + +#gem 'bootstrap-sass', '~> 3.3.1' +#gem 'sass-rails', '>= 3.2' + gemspec diff --git a/spree_theme/README.md b/spree_theme/README.md index bde58218..dfb7576f 100644 --- a/spree_theme/README.md +++ b/spree_theme/README.md @@ -1,101 +1,56 @@ -SpreeTheme -========== - -New frontend of spree, user could easy modify theme or add new theme. It is not working now! -It is just for spree_abc, not common use, cause it override some cart/checkout views. - -how it work ------------ - roles: designer, user, customer - sites: design site, shopping site - a design/shopping site must have a released theme, or redirect to under_contruction. - released theme contains layout, js, css. each release has own folder. - a designer could login and design new theme. - - - designer - 0. new theme - 1. design theme - 2. release completed theme. generate themeN/versionN.html.erb - 3. theme is viewable by public. shops/themes/themeN/ - designs.dalianshops.com?theme_id=N - - backend +#SpreeTheme + +New frontend of spree, user could easy modify theme or add new theme. +__It is just for spree_abc, not common use.__ + +####terms and conditions +Each site want their own theme, site could have more than one themes. +Theme should be configurable, site could assigned their own data to it. +Each site could select preferred theme from all available list. +Designer could design theme and release it. + +Shops +* design shop: product is theme, designer produce theme on line. +* other shop: use released theme as frentend, sell product on line. + +Roles +* user: on line shop user, have full permission to manage shop. +* customer: shopping on line. +* designer: login design site, design template on line. + +Themes +* theme: a theme of site, contains html, js, css. + + +####How it work +designer produce theme + 0. in design shop, create new theme. + 1. design theme vie editor. + 2. release completed theme, generate theme files themeX/html, css, js + 3. theme is public now. user could import, config and publish. + +user apply theme to site 1. user browse available themes, snapshot or live demo. - 2. import preferred theme - *3. preview it. Do not support it now, find a clean way support tld/admin/add_to_cart first. - 4. apply it to frontend - -requirement - admin.sometld/... is for user preview, ex. admin.somtld/some_taxon - www.sometld/... is for customer, ex. www.sometld/some_taxon - -how roles get layout? ---------------------- - designer: get current editing template - customer: get layout from current site - -path ----- - 1. designer design product list page - www.tld/tid - 2. designer design product detail page - www.tld/tid/pid - 2. designer release design - www.tld/admin/template_theme - 3. customer view product list - www.tld/tid -> /var/www/shops/n/ - 4. customer view product detail - www.tld/tid/pid - 5. admin manage site - www.tld/admin/... - 6. user login - www.tld/admin/ - 7. customer view live template demo - templates.dalianshops.com -> /var/www/shops/1 - 8. customer browse published template list - www.tld/admin/template_themes/ - 9. shop folders - template folder - t(current template id)-> /var/www/shops/1/t(original template id) - theme image folder: - tx/images - generated layout - tx/tx.html.erb - theme css, js - tx/cssx.css - tx/jsx.js - page_layout image folder: images belongs to shop, like logo - lx - -configure ---------- - website theme_id, index_page should greater than 0. - website index_page could equal to 0. - -extra feature for theme ------------------------ - option value has image, please look at https://github.com/citrus/spree_variant_options for detail - -Installation -============ + 2. import preferred theme, + 3. configure it with site data. + 4. apply it as frontend +####Installation(tbd...) rake spree_theme:install:migrations rake db:migrate rails r "SpreeeTheme::Engine.load_seed" in config/spree.rb - SpreeTheme.website_class = 'Spree::FakeWebsite' - SpreeTheme.taxon_class = 'Spree::Taxon' - +SpreeTheme.website_class = 'Spree::FakeWebsite' +SpreeTheme.taxon_class = 'Spree::Taxon' Load sample ------------ + rake spree_theme:load_samples rake spree_theme:import_theme -Testing -------- +####Testing(tbd...) rake test_app + change db from sqlite to mysql, fix id setting, rails sqlite adapter ignore id setting rake db:seed RAILS_ENV=test rake spree_theme:import_theme RAILS_ENV=test SEED_PATH=1 THEME_ID=2 diff --git a/spree_theme/Rakefile b/spree_theme/Rakefile index 9bb1d6ec..c605a5f7 100644 --- a/spree_theme/Rakefile +++ b/spree_theme/Rakefile @@ -2,14 +2,20 @@ require 'bundler' Bundler::GemHelper.install_tasks require 'rspec/core/rake_task' -require 'spree/testing_support/common_rake' +require 'spree/testing_support/extension_rake' RSpec::Core::RakeTask.new -task :default => [:spec] +task :default do + if Dir["spec/dummy"].empty? + Rake::Task[:test_app].invoke + Dir.chdir("../../") + end + Rake::Task[:spec].invoke +end desc 'Generates a dummy app for testing' task :test_app do ENV['LIB_NAME'] = 'spree_theme' - Rake::Task['common:test_app'].invoke -end \ No newline at end of file + Rake::Task['extension:test_app'].invoke +end diff --git a/spree_theme/app/assets/javascripts/admin/resource_autocomplete.js.erb b/spree_theme/app/assets/javascripts/admin/resource_autocomplete.js.erb index e69de29b..b3d1aa2b 100644 --- a/spree_theme/app/assets/javascripts/admin/resource_autocomplete.js.erb +++ b/spree_theme/app/assets/javascripts/admin/resource_autocomplete.js.erb @@ -0,0 +1,50 @@ +// copy from spree/backend/assets/javascripts/admin/taxon_autocomlete.js.erb +// locals {:dom_id, :multiple, :search_url} # Spree.routes.taxons_search or Spree.routes.global_taxons_search +'use strict'; + +var set_resource_taxon_select = function(dom_id, multiple, search_url){ + if ($('#'+dom_id).length > 0) { + $('#'+dom_id).select2({ + placeholder: Spree.translations.taxon_placeholder, + multiple: multiple, + initSelection: function (element, callback) { + var url = Spree.url(search_url, { + ids: element.val() + }); + return $.getJSON(url, null, function (data) { + if(multiple){ + return callback(data['taxons']); + } else { + return callback(data['taxons'].pop()); + } + }); + }, + ajax: { + url: search_url, + datatype: 'json', + data: function (term, page) { + return { + per_page: 50, + page: page, + q: { + name_cont: term + } + }; + }, + results: function (data, page) { + var more = page < data.pages; + return { + results: data['taxons'], + more: more + }; + } + }, + formatResult: function (taxon) { + return taxon.pretty_name; + }, + formatSelection: function (taxon) { + return taxon.pretty_name; + } + }); + } +} diff --git a/spree_theme/app/assets/javascripts/admin/spree_theme.js b/spree_theme/app/assets/javascripts/admin/spree_theme.js index e154ca94..061e5cdf 100644 --- a/spree_theme/app/assets/javascripts/admin/spree_theme.js +++ b/spree_theme/app/assets/javascripts/admin/spree_theme.js @@ -2,10 +2,13 @@ //= require jquery.ajax //= require jquery.jeditable //= require admin/resource_autocomplete +//= require store/spree_theme.routes + + jQuery(function ($) { $('#page_layout_tree_inner').bind('select_node.jstree', function (e, data) { var selected_node = data.rslt.obj - var url = [Spree.routes.admin_template_themes, selected_node.data('tid'), 'page_layout',selected_node.data('lid'), selected_node.data('action') ].join('/') + var url = [Spree.routes.admin_page_layouts( selected_node.data('tid')),selected_node.data('lid'), selected_node.data('action') ].join('/') $.ajax({ url: url, type: 'GET', dataType: "script"}) }).bind('deselect_all.jstree', function (e, data) { //$(this).find('select').hide() @@ -16,8 +19,7 @@ jQuery(function ($) { core : { multiple: false, animation: 0 } } ); - //$('#page_layout_tree_inner select.select22').select2(); - + $('#listing_template_themes .editable').editable(function(value, settings) { var jquery_element = $(this) diff --git a/spree_theme/app/assets/javascripts/hoverIntent.js b/spree_theme/app/assets/javascripts/hoverIntent.js new file mode 100644 index 00000000..cbe3ae71 --- /dev/null +++ b/spree_theme/app/assets/javascripts/hoverIntent.js @@ -0,0 +1,114 @@ +/** + * hoverIntent is similar to jQuery's built-in "hover" method except that + * instead of firing the handlerIn function immediately, hoverIntent checks + * to see if the user's mouse has slowed down (beneath the sensitivity + * threshold) before firing the event. The handlerOut function is only + * called after a matching handlerIn. + * + * hoverIntent r7 // 2013.03.11 // jQuery 1.9.1+ + * http://cherne.net/brian/resources/jquery.hoverIntent.html + * + * You may use hoverIntent under the terms of the MIT license. Basically that + * means you are free to use hoverIntent as long as this header is left intact. + * Copyright 2007, 2013 Brian Cherne + * + * // basic usage ... just like .hover() + * .hoverIntent( handlerIn, handlerOut ) + * .hoverIntent( handlerInOut ) + * + * // basic usage ... with event delegation! + * .hoverIntent( handlerIn, handlerOut, selector ) + * .hoverIntent( handlerInOut, selector ) + * + * // using a basic configuration object + * .hoverIntent( config ) + * + * @param handlerIn function OR configuration object + * @param handlerOut function OR selector for delegation OR undefined + * @param selector selector OR undefined + * @author Brian Cherne + **/ +(function($) { + $.fn.hoverIntent = function(handlerIn,handlerOut,selector) { + + // default configuration values + var cfg = { + interval: 100, + sensitivity: 7, + timeout: 0 + }; + + if ( typeof handlerIn === "object" ) { + cfg = $.extend(cfg, handlerIn ); + } else if ($.isFunction(handlerOut)) { + cfg = $.extend(cfg, { over: handlerIn, out: handlerOut, selector: selector } ); + } else { + cfg = $.extend(cfg, { over: handlerIn, out: handlerIn, selector: handlerOut } ); + } + + // instantiate variables + // cX, cY = current X and Y position of mouse, updated by mousemove event + // pX, pY = previous X and Y position of mouse, set by mouseover and polling interval + var cX, cY, pX, pY; + + // A private function for getting mouse position + var track = function(ev) { + cX = ev.pageX; + cY = ev.pageY; + }; + + // A private function for comparing current and previous mouse position + var compare = function(ev,ob) { + ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); + // compare mouse positions to see if they've crossed the threshold + if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) { + $(ob).off("mousemove.hoverIntent",track); + // set hoverIntent state to true (so mouseOut can be called) + ob.hoverIntent_s = 1; + return cfg.over.apply(ob,[ev]); + } else { + // set previous coordinates for next time + pX = cX; pY = cY; + // use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs) + ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval ); + } + }; + + // A private function for delaying the mouseOut function + var delay = function(ev,ob) { + ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); + ob.hoverIntent_s = 0; + return cfg.out.apply(ob,[ev]); + }; + + // A private function for handling mouse 'hovering' + var handleHover = function(e) { + // copy objects to be passed into t (required for event object to be passed in IE) + var ev = jQuery.extend({},e); + var ob = this; + + // cancel hoverIntent timer if it exists + if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); } + + // if e.type == "mouseenter" + if (e.type == "mouseenter") { + // set "previous" X and Y position based on initial entry point + pX = ev.pageX; pY = ev.pageY; + // update "current" X and Y position based on mousemove + $(ob).on("mousemove.hoverIntent",track); + // start polling interval (self-calling timeout) to compare mouse coordinates over time + if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );} + + // else e.type == "mouseleave" + } else { + // unbind expensive mousemove event + $(ob).off("mousemove.hoverIntent",track); + // if hoverIntent state is true, then call the mouseOut function after the specified delay + if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );} + } + }; + + // listen for mouseenter and mouseleave + return this.on({'mouseenter.hoverIntent':handleHover,'mouseleave.hoverIntent':handleHover}, cfg.selector); + }; +})(jQuery); \ No newline at end of file diff --git a/spree_theme/app/assets/javascripts/image-zoom.js b/spree_theme/app/assets/javascripts/image-zoom.js new file mode 100644 index 00000000..bed8e877 --- /dev/null +++ b/spree_theme/app/assets/javascripts/image-zoom.js @@ -0,0 +1,398 @@ +/* + * The image zoom plugin references the jQzoom plugin, and remove the features not be used. + * Make the code be simple. + * + * Colin Ju + * + * jQzoom Evolution Library v2.3 - Javascript Image magnifier + * http://www.mind-projects.it + * + * Copyright 2011, Engineer Marco Renzi + * Licensed under the BSD license. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the organization nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * Date: 03 May 2011 22:16:00 + */ +(function($) { + var _config = { + thumbConfig: { + containerSelector: '', + unitSelector: 'a', + eventName: 'click', + attr: 'rel', + activeClassName: 'thumb-active' + }, + zoomPadConfig: { + containerSelector: '' + }, + zoomViewerConfig: { + width: 300, + height: 300 + }, + largeImageContainerSelector: '' + }; + + var isIE6 = (!$.support.opacity && !$.support.style && window.XMLHttpRequest==undefined), + doc = document, + win = window, + jWin = $(win), + min = Math.min; + + /*** + * Define custom event + */ + var CustomEvent = { + eventObj: $({}), + bind: function() { + this.eventObj.bind.apply(this.eventObj, arguments); + }, + trigger: function() { + this.eventObj.trigger.apply(this.eventObj, arguments); + }, + unbind: function() { + this.eventObj.unbind.apply(this.eventObj, arguments); + } + }; + /** + * add image zoom to jquery plugin + */ + $.fn.imageZoom = function(config) { + return this.each(function () { + new ImageZoom(this, config); + }); + }; + + /** + * The image zoom component entry. + */ + var ImageZoom = function(container, config) { + var jContainer = $(container); + if (jContainer.data('inited') === 'y') {//Init image zoom only one time. + return; + } + this.jContainer = jContainer; + this.config = $.extend(true, _config, config || {}); //Deep copy. + this._init(); + jContainer.data('inited', 'y'); + }; + + $.extend(ImageZoom.prototype, { + constructor: ImageZoom, + _init: function() { + //Init the zoom pad component + var config = this.config, + zoomPadConfig = config.zoomPadConfig; + + new ZoomPad(this.jContainer.find(zoomPadConfig.containerSelector), zoomPadConfig, config.zoomViewerConfig); + + var thumbConfig = config.thumbConfig; + //if there is thumb list, init it. + if (thumbConfig && thumbConfig.containerSelector) { + var jThumbContainer = this.jContainer.find(thumbConfig.containerSelector); + + if (jThumbContainer.length) { + new ThumbList(jThumbContainer, thumbConfig); + } + } + } + }); + + /** + * The thumbnail list component + */ + var ThumbList = function(jContainer, config) { + this.jContainer = jContainer; + this.config = config; + this._init(); + }; + + $.extend(ThumbList.prototype, { + constructor: ThumbList, + _init: function() { + this.dActiveUnit = this.jContainer.find(this.config.unitSelector).get(0); + this._bindEvent(); + }, + _bindEvent: function() { + var _this = this, + config = this.config; + + this.jContainer.delegate(config.unitSelector, config.eventName, function(event) { + var jThis = $(this), + activeClassName, + oImagesSrc = eval('(' + $.trim(jThis.attr(config.attr)) + ')'); + + if (_this.dActiveUnit !== this) { + activeClassName = config.activeClassName; + $(_this.dActiveUnit).removeClass(activeClassName); + jThis.addClass(activeClassName); + _this.dActiveUnit = this; + CustomEvent.trigger('thumb-unit-active', oImagesSrc); + } + }); + } + }); + + /** + * The zoom pad component + */ + var ZoomPad = function(jContainer, zoomPadConfig, zoomViewerConfig) { + this.jBody = $(doc.body) // get body in function, body may not ready when loading this file + this.jContainer = jContainer; + this.zoomPadConfig = zoomPadConfig; + this.zoomViewerConfig = zoomViewerConfig; + this._init(); + }; + + $.extend(ZoomPad.prototype, { + constructor: ZoomPad, + _init: function() { + this.largeImageLoading = false; + this.largeImageLoaded = false; + this.smallImageData = null; + this.largeImageData = null; + this.jZoomLens = null; + this.jZoomViewer = null; + this.jIframe = null; + this.jSmallImage = this.jContainer.find('img'); + this.jSmallImageParent = this.jSmallImage.parent(); + this.jLargeImage = this._createLargeImage(); + this.jLoading = null; + this.eventPos = null; + this.isHover = false; + this.lensL = 0; + this.lensT = 0; + this._bindEvent(); + if (this.jSmallImage[0].complete) {//sometimes the image is loaded and the onload will not be fired. + this.smallImageLoaded = true; + this._fetchSmallImageData(); + } + }, + _bindEvent: function() { + var _this = this; + + this.jSmallImage.load(function() { + _this._fetchSmallImageData(); + }).error(function() { + //TODO + }).hover(function(e) { + _this.isHover = true; + if (!_this.largeImageLoaded && !_this.largeImageLoading) { + _this._showLoading(true); + //_this._loadLargeImage(_this.jSmallImageParent.attr('href')); + _this._loadLargeImage(_this.jSmallImage.data('big-image')); + } + _this.eventPos = { + pageX: e.pageX, + pageY: e.pageY + }; + }, function() { + _this.isHover = false; + }); + + this.jSmallImageParent.hover(function() { + //TODO + }, function() { + _this._hideMoveZoomLens(); + }).click(function(e) { + return false; + }).mousemove(function(e) { + _this.eventPos = { + pageX: e.pageX, + pageY: e.pageY + }; + + if (_this.largeImageLoaded) { + var oScale = _this._getScale(); + if (oScale.x > 1 || oScale.y > 1) { + _this._moveZoomLens(_this._countLensSizeAndPos()); + } + } + }); + this.jLargeImage.load(function() { + _this.largeImageLoaded = true; + _this.largeImageLoading = false; + _this._showLoading(false); + _this._fetchLargeImageData(); + + var oScale = _this._getScale(); + if (_this.isHover && (oScale.x > 1 || oScale.y > 1)) { + _this._moveZoomLens(_this._countLensSizeAndPos()); + } + }).error(function() { + _this.largeImageLoading = false; + _this._showLoading(false); + }); + CustomEvent.bind('thumb-unit-active', function(event, oImagesSrc) { + _this.smallImageData = null; + _this.largeImageData = null; + _this.oScale = null; + _this.largeImageLoaded = false; + _this.largeImageLoading = false; + _this.jSmallImage.attr('src', oImagesSrc.smallimage).parent().attr('href', oImagesSrc.largeimage); + }); + }, + _createLargeImage: function() { + var jLargeImage = $(new Image()); + + jLargeImage.hide().appendTo(this.jBody); + return jLargeImage; + }, + _loadLargeImage: function(src) { + this.largeImageLoaded = false; + this.largeImageLoading = true; + this.jLargeImage.attr('src', src); + }, + _fetchSmallImageData: function() { + var jSmallImage = this.jSmallImage, + offset = jSmallImage.offset(); + + this.smallImageData = { + w: jSmallImage.width(), + h: jSmallImage.height(), + t: offset.top, + l: offset.left, + borderT: parseInt(jSmallImage.css('border-top-width').replace('px', '')), + borderL: parseInt(jSmallImage.css('border-left-width').replace('px', '')), + borderR: parseInt(jSmallImage.css('border-right-width').replace('px', '')) + }; + }, + _fetchLargeImageData: function() { + this.largeImageData = { + w: this.jLargeImage.width(), + h: this.jLargeImage.height() + } + }, + _getScale: function() { + return { + x: this.largeImageData.w/this.smallImageData.w, + y: this.largeImageData.h/this.smallImageData.h + }; + }, + _countLensSizeAndPos: function() { + //the lens's position is relatived to image's parent. + var zoomViewerConfig = this.zoomViewerConfig, + oScale = this._getScale(), + smallImageData = this.smallImageData, + w = min(parseInt(zoomViewerConfig.width / oScale.x), smallImageData.w), + h = min(parseInt(zoomViewerConfig.height / oScale.y), smallImageData.h), + eventPos = this.eventPos, + pageX = eventPos.pageX, + pageY = eventPos.pageY, + x = pageX - smallImageData.l - smallImageData.borderL, + y = pageY - smallImageData.t - smallImageData.borderT, + lensL = pageX - smallImageData.l - w/2, + lensT = pageY - smallImageData.t - h/2; + + if (x - w/2 <= 0) { + lensL = smallImageData.borderL; + } else if (x + w/2 >= smallImageData.w) { + lensL = smallImageData.w - w + smallImageData.borderL; + } + if (y - h/2 <= 0) { + lensT = smallImageData.borderT; + } else if (y + h/2 >= smallImageData.h) { + lensT = smallImageData.h - h + smallImageData.borderT; + } + this.lensL = lensL; + this.lensT = lensT; + return { + width: w, + height: h, + top: lensT, + left: lensL + }; + }, + _showLoading: function(isShow) { + var smallImageData = this.smallImageData; + + this.jLoading = this.jSmallImageParent.find('div.zoom-loading'); + if (this.jLoading.length === 0) { + this.jLoading = $('
    ').appendTo(this.jSmallImageParent); + } + if (isShow) {//show loading + this.jLoading.css({ + left: (this.jSmallImageParent.width() - this.jLoading.width())/2, + top: (this.jSmallImageParent.height() - this.jLoading.height())/2 + }).show(); + } else {//hide loading + this.jLoading.hide(); + } + }, + _moveZoomLens: function(oSizeAndPos) { + this.jZoomLens = this.jSmallImageParent.find('div.zoom-lens'); + if (this.jZoomLens.length === 0) { + this.jZoomLens = $('
    ').appendTo(this.jSmallImageParent); + } + this.jZoomLens.css(oSizeAndPos).show(); + this._showZoomViewer(); + }, + _hideMoveZoomLens: function() { + if (this.jZoomLens) { + this.jZoomLens.hide(); + } + this._hideZoomViewer(); + }, + _isInImageArea: function() { + var smallImageData = this.smallImageData, + eventPos = this.eventPos, + pageX = eventPos.pageX, + pageY = eventPos.pageY; + + return (pageX >= smallImageData.l + smallImageData.borderL && + pageX <= smallImageData.l + smallImageData.borderL + smallImageData.w && + pageY >= smallImageData.t + smallImageData.borderT && + pageY <= smallImageData.t + smallImageData.borderT + smallImageData.h + ) ? true : false; + }, + _showZoomViewer: function() { + var smallImageData = this.smallImageData, + oScale = this._getScale(), + jImage, + imageSrc = this.jSmallImage.data('big-image'); + //imageSrc = this.jSmallImageParent.attr('href'); + + this.jZoomViewer = this.jBody.find('div.zoom-viewer'); + if (this.jZoomViewer.length === 0) { + this.jZoomViewer = $('
    ').css(this.zoomViewerConfig).appendTo(this.jBody); + } + if (isIE6) { + this.jIframe = this.jBody.find('iframe.zoom-iframe'); + if (this.jIframe.length === 0) { + this.jIframe = $('').css(this.zoomViewerConfig).appendTo(this.jBody); + } + this.jIframe.show(); + } + + this.jZoomViewer.css({ + left: smallImageData.l + smallImageData.borderL + smallImageData.w + smallImageData.borderR + 10, + top: smallImageData.t + }).show(); + jImage = this.jZoomViewer.find('img'); + if (this.jZoomViewer.find('img').attr('src') !== imageSrc) { + jImage.attr('src', imageSrc); + } + jImage.css({ + left: -((this.lensL - smallImageData.borderL) * oScale.x), + top: -((this.lensT - smallImageData.borderT)* oScale.y) + }); + }, + _hideZoomViewer: function() { + if (this.jZoomViewer) { + this.jZoomViewer.hide(); + } + if (this.jIframe) { + this.jIframe.hide(); + } + } + }); +})(jQuery); \ No newline at end of file diff --git a/spree_theme/app/assets/javascripts/interface.js b/spree_theme/app/assets/javascripts/interface.js index c02c6021..d71a901b 100644 --- a/spree_theme/app/assets/javascripts/interface.js +++ b/spree_theme/app/assets/javascripts/interface.js @@ -10,7 +10,7 @@ function SelectorGadget() { this.sg_div = null; this.unbound = false; //this.prediction_helper = new DomPredictionHelper(); - this.restricted_elements = jQuery.map(['html', 'body', 'head', 'base'], function(selector) { return jQuery(selector).get(0) }); + this.restricted_elements = jQuery.map(['html', 'body', 'head', 'base'], function(selector) { return jQuery(selector).get(0); }); // david added at 04/28/2012 10:00 this.cover = null; // cover on the selected element this.covers = []; @@ -21,7 +21,7 @@ SelectorGadget.prototype = new Object(); SelectorGadget.prototype.makeBorders = function(orig_elem, makeRed) { //this.removeBorders(); - this.cover = this.get_available_cover() + this.cover = this.get_available_cover(); if (this.cover==null) { this.setupBorders();//set cover @@ -36,8 +36,8 @@ SelectorGadget.prototype.makeBorders = function(orig_elem, makeRed) { var top = p.top; var left = p.left; - var width = elem.outerWidth() - var height = elem.outerHeight() + var width = elem.outerWidth(); + var height = elem.outerHeight(); // david added at 04/28/2012 10:00 this.cover.css('width', this.px(width)).css('height', this.px(height)).css('top', this.px(top )).css('left', this.px(left)); @@ -72,13 +72,13 @@ SelectorGadget.prototype.removeBorders = function() { this.covers[i].hide(); } } -} +}; SelectorGadget.prototype.setupBorders = function() { if (!this.cover) { var width = this.border_width + 'px'; // david added at 04/28/2012 10:00 - this.cover = jQuery('
    ').addClass('sg_cover').hide() + this.cover = jQuery('
    ').addClass('sg_cover').hide(); this.addBorderToDom(); } }; @@ -137,10 +137,10 @@ SelectorGadget.prototype.sgMouseover = function(e) { SelectorGadget.prototype.firstSelectedOrSuggestedParent = function(elem) { var orig = elem; - if (jQuery(elem).hasClass('sg_suggested') || jQuery(elem).hasClass('sg_selected')) return elem + if (jQuery(elem).hasClass('sg_suggested') || jQuery(elem).hasClass('sg_selected')) return elem; while (elem.parentNode && (elem = elem.parentNode)) { if (jQuery.inArray(elem, this.restricted_elements) == -1) - if (jQuery(elem).hasClass('sg_suggested') || jQuery(elem).hasClass('sg_selected')) return elem + if (jQuery(elem).hasClass('sg_suggested') || jQuery(elem).hasClass('sg_selected')) return elem; } return null; }; @@ -190,7 +190,7 @@ SelectorGadget.prototype.sgMousedown = function(e) { gadget.selected.push(elem); } - gadget.clearSuggested() + gadget.clearSuggested(); var prediction = gadget.prediction_helper.predictCss(gadget.selected, gadget.rejected.concat(gadget.restricted_elements)); gadget.suggestPredicted(prediction); gadget.setPath(prediction); @@ -322,8 +322,8 @@ SelectorGadget.prototype.clearSelected = function(e) { SelectorGadget.prototype.clearEverything = function(e) { var self = (e && e.data && e.data.self) || this; - self.clearSelected() - self.resetOutputs() + self.clearSelected(); + self.resetOutputs(); }; SelectorGadget.prototype.resetOutputs = function() { diff --git a/spree_theme/app/assets/javascripts/jquery.floatBar.js b/spree_theme/app/assets/javascripts/jquery.floatBar.js deleted file mode 100644 index 43f5cb7d..00000000 --- a/spree_theme/app/assets/javascripts/jquery.floatBar.js +++ /dev/null @@ -1,235 +0,0 @@ -/* - * floatBar v1.3 - * Copyright (c) 2013 Wendell http://blog.webql.info/ - * https://github.com/wendellvian/floatBar.git - -*/ -/* -// liveHeight:360, // 活动高度: 取0时边栏位置为固定样式 -// bodyWidth:960, // 页面布局宽度 -// winMinHeight:600, // 浏览器最小高度 -// topFixHeight:30, // 顶部Fixed层的高度 vertical:top共用 -// spaceWidth:10, // 浮动边栏与页面的间距 -// align:"right", // 浮动边栏左右停靠方式:right | left -// vertical:"bottom", // 浮动边栏上下停靠方式:bottom | top -// speed:300, // 速度:非0毫秒数值 | "slow" | "fast" -// aniOnOff:true, // 效果开关:true | false -// moveOnOff:true, // 运动开关:true | false - -// eleFocus:"focus", // 焦点:class="focus" -// eleName:"back", // 元素名称 -// eleLabel:"li", // 结构标签 -// anchorIndex:"anchor-index", // 锚节点 -// eleMargin:10, // 板块间距 -// mouseCtrl:"click", // 鼠标事件:click | mouseover -// focusOnOff:true // 滚动获焦开关:false | true -*/ - -(function($){ - $.fn.extend({ - floatBar:function(options){ - var defaults = { - liveHeight:360, - bodyWidth:960, - winMinHeight:600, - topFixHeight:30, - spaceWidth:10, - align:"right", - vertical:"bottom", - speed:300, - aniOnOff:true, - moveOnOff:true, - - eleFocus:"focus", - eleName:"back", - eleLabel:"li", - anchorIndex:"anchor-index", - eleMargin:10, - mouseCtrl:"click", - focusOnOff:true - } - var options = $.extend(defaults,options); - var thisObj = $(this); - - // 滚屏导航 - var queArray=[]; - var eleQue; - - $("["+options.anchorIndex+"]").each(function(){ - queArray.push({ - index:$(this).attr(options.anchorIndex), - height:$(this).height(), - top:$(this).offset().top - }); - }); - - function sCrollScreen(cObj){ - var oWinTop = $(window).scrollTop(); - thisObj.find("."+options.eleFocus).removeClass(options.eleFocus); - for(var i = 0,k = queArray.length;i oWinTop){ - if(eleQue.top > oWinTopX){ - eleQue = queArray[i-1]; - } - if(eleQue){ - thisObj.find(options.eleLabel).eq(eleQue.index-1).addClass(options.eleFocus); - } - break; - } - } - } - - thisObj.find(options.eleLabel).bind(options.mouseCtrl,function(){ - var index = $(this).index() + 1; - var $anchor = $("["+options.anchorIndex+"="+index+"]"); - $("html,body").stop().animate({ - scrollTop:$anchor.offset().top-options.eleMargin - },options.speed); - return false; - }); - thisObj.find("."+options.eleName+"top").click(function(){ - $("html,body").stop().animate({ - scrollTop:0 - },options.speed); - }); - thisObj.find("."+options.eleName+"bottom").click(function(){ - $("html,body").stop().animate({ - scrollTop:$("body").height() - },options.speed); - }); - - if(navigator.userAgent.indexOf("MSIE 6")!=-1){ - switch(options.vertical){ - case "bottom": - thisObj.addClass("JQUI-FloBarDown"); - break; - case "top": - thisObj.addClass("JQUI-FloBarUp"); - break; - } - $("head").append(""); - }else{ - thisObj.css({ - position:"fixed", - right:"0" - }); - } - - function dataEle(attrObj){ - switch(options.vertical){ - case "bottom": - thisObj.data(attrObj,parseInt(thisObj.css(attrObj))); // 存储样式表中bottom的值 - return thisObj.data(attrObj); - break; - case "top": - thisObj.data(attrObj,parseInt(thisObj.css(attrObj))); // 存储样式表中top的值 - if(navigator.userAgent.indexOf("MSIE 6")!=-1){ - thisObj.data(attrObj,parseInt(thisObj.css("margin-top"))); - } - return thisObj.data(attrObj); - break; - } - } - var dataConBottom = dataEle("bottom"); // 提取bottom值 - var dataConTop = dataEle("top"); // 提取bottom值 - var posiObj = posiEle(); // 首次函数加载 - // thisObj.show(); - - function posiEle(){ - var posiAlign; - var posi = {}; - posi.oWinWidth = $(window).width(); - posi.oWinHeight = $(window).height(); - posi.oFloatElementWidth = thisObj.width(); // 浮动边栏宽度 - oWinTop = $(window).scrollTop(); // 滚动条首次距离顶部的坐标 - - var posiRight = (posi.oWinWidth-options.bodyWidth)/2 - posi.oFloatElementWidth - options.spaceWidth; - // 左侧窗口停靠,相当left:0 - var posiLeft = posiRight + (options.bodyWidth + posi.oWinWidth)/2 + options.spaceWidth; - // 左侧页面停靠 - var posiLeftExp = posiLeft - (posi.oWinWidth-options.bodyWidth)/2 + posi.oFloatElementWidth + options.spaceWidth; - - // 浏览器可视窗口大小判断 - if(posi.oWinWidth <= (((posi.oWinWidth-options.bodyWidth)/2) + options.bodyWidth + posi.oFloatElementWidth + options.spaceWidth)){ - switch(options.align){ - case "right": - posiAlign = {right:'0'}; - break; - case "left": - posiAlign = {right:posiLeft}; - break; - } - thisObj.css(posiAlign); - }else{ - switch(options.align){ - case "right": - posiAlign = {right:posiRight}; - break; - case "left": - posiAlign = {right:posiLeftExp}; - break; - } - thisObj.css(posiAlign); - } - - options.moveOnOff ? chaScroll(posi) : " "; - options.focusOnOff ? sCrollScreen(posi) : " "; // 滚屏首次加载 - - return posi; - } - - function chaScroll(cObj){ - var floSwi = function(fT,fB){ - switch(options.vertical){ - case "bottom": - options.aniOnOff ? thisObj.stop().animate(fT,options.speed) : thisObj.css(fT); - break; - case "top": - options.aniOnOff ? thisObj.stop().animate(fB,options.speed) : thisObj.css(fB); - break; - } - } - - if(navigator.userAgent.indexOf("MSIE 6")!=-1){ // 判断IE6 - if(oWinTop < options.liveHeight && cObj.oWinHeight > options.winMinHeight){ - floSwi({marginTop:"0"},{marginTop:dataConTop}); - }else if(oWinTop < options.liveHeight && cObj.oWinHeight < options.winMinHeight){ - floSwi({marginTop:"0"},{marginTop:options.topFixHeight}); - }else if(oWinTop > options.liveHeight && cObj.oWinHeight > options.winMinHeight){ - floSwi({marginTop:-dataConBottom},{marginTop:options.topFixHeight}); - }else if(oWinTop > options.liveHeight && cObj.oWinHeight < options.winMinHeight){ - floSwi({marginTop:"0"},{marginTop:options.topFixHeight}); - } - } - else{ - if(oWinTop < options.liveHeight && cObj.oWinHeight > options.winMinHeight){ - floSwi({bottom:"0"},{top:dataConTop}); - }else if(oWinTop < options.liveHeight && cObj.oWinHeight < options.winMinHeight){ - floSwi({bottom:"0"},{top:options.topFixHeight}); - }else if(oWinTop > options.liveHeight && cObj.oWinHeight > options.winMinHeight){ - floSwi({bottom:dataConBottom},{top:options.topFixHeight}); - }else if(oWinTop > options.liveHeight && cObj.oWinHeight < options.winMinHeight){ - floSwi({bottom:"0"},{top:options.topFixHeight}); - } - } - } - - // 重置尺寸大小事件 - $(window).resize(function (){ - var posiObj = posiEle(); - }); - - // 滚动事件 - $(window).scroll(function(){ - var posiObj = posiEle(); - oWinTop = $(window).scrollTop(); // 滚动条滚动时距离顶部的坐标 - options.moveOnOff ? chaScroll(posiObj) : " "; - options.focusOnOff ? sCrollScreen(posiObj) : " "; - }); - - return $(this); - } - }); -})(jQuery); diff --git a/spree_theme/app/assets/javascripts/jquery.layout.js b/spree_theme/app/assets/javascripts/jquery.layout.js index 0cab20d1..5b744667 100644 --- a/spree_theme/app/assets/javascripts/jquery.layout.js +++ b/spree_theme/app/assets/javascripts/jquery.layout.js @@ -451,7 +451,7 @@ $.layout = { else CSS[p] = style[p]; }; - return CSS + return CSS; } /** @@ -617,7 +617,7 @@ $.layout = { + '
      ' + '
      ' ).appendTo("body"); - $e.css('left', $(window).width() - $e.outerWidth() - 5) + $e.css('left', $(window).width() - $e.outerWidth() - 5); if ($.ui.draggable) $e.draggable({ handle: ':first-child' }); return $e; }; @@ -1733,7 +1733,7 @@ $.fn.layout = function (opts) { // check for destroy()ed layouts and update the child pointers & arrays if ($.isPlainObject( pC )) { $.each( pC, function (key, child) { - if (child.destroyed) delete pC[key] + if (child.destroyed) delete pC[key]; }); // if no more children, remove the children hash if ($.isEmptyObject( pC )) @@ -1900,7 +1900,7 @@ $.fn.layout = function (opts) { if (o.inset && !$.isPlainObject(o.inset)) { // can specify a single number for equal outset all-around - n = parseInt(o.inset, 10) || 0 + n = parseInt(o.inset, 10) || 0; o.inset = { top: n , bottom: n @@ -1923,7 +1923,7 @@ $.fn.layout = function (opts) { } else if (!$.isPlainObject(o.outset)) { // can specify a single number for equal outset all-around - n = parseInt(o.outset, 10) || 0 + n = parseInt(o.outset, 10) || 0; o.outset = { top: n , bottom: n @@ -2042,7 +2042,7 @@ $.fn.layout = function (opts) { if ($.inArray(key, rootKeys) < 0 && $.inArray(key, data) < 0) { if (!opts.panes[key]) opts.panes[key] = $.isPlainObject(val) ? $.extend(true, {}, val) : val; - delete opts[key] + delete opts[key]; } } @@ -2160,7 +2160,7 @@ $.fn.layout = function (opts) { * @param {string} pane The pane to process */ , getPane = function (pane) { - var sel = options[pane].paneSelector + var sel = options[pane].paneSelector; if (sel.substr(0,1)==="#") // ID selector // NOTE: elements selected 'by ID' DO NOT have to be 'children' return $N.find(sel).eq(0); @@ -2686,7 +2686,7 @@ $.fn.layout = function (opts) { // SET RESIZER LIMITS - used in drag() setSizeLimits(pane); // update pane/resizer state r = s.resizerPosition; - lastPos = ui.position[ side ] + lastPos = ui.position[ side ]; $R.addClass( resizerClass +" "+ resizerPaneClass ); // add drag classes helperClassesSet = false; // reset logic var - see drag() @@ -2730,7 +2730,7 @@ $.fn.layout = function (opts) { // won't trigger unless resizer has actually moved! if (live && Math.abs(ui.position[side] - lastPos) >= o.liveResizingTolerance) { lastPos = ui.position[side]; - resizePanes(e, ui, pane) + resizePanes(e, ui, pane); } } @@ -2852,7 +2852,7 @@ $.fn.layout = function (opts) { if (s.isVisible && ( o.maskObjects || (!a.objectsOnly && o.maskContents) )) { getMasks(p).each(function(){ sizeMask.call(this); - this.style.zIndex = s.isSliding ? z.pane_sliding+1 : z.pane_normal+1 + this.style.zIndex = s.isSliding ? z.pane_sliding+1 : z.pane_normal+1; this.style.display = "block"; }); } @@ -3596,7 +3596,7 @@ $.fn.layout = function (opts) { .addClass( rClass+_open +" "+ rClass+_pane+_open ) ; if (s.isSliding) - $R.addClass( rClass+_sliding +" "+ rClass+_pane+_sliding ) + $R.addClass( rClass+_sliding +" "+ rClass+_pane+_sliding ); else // in case 'was sliding' $R.removeClass( rClass+_sliding +" "+ rClass+_pane+_sliding ) @@ -3781,7 +3781,7 @@ $.fn.layout = function (opts) { // must remove double-click-toggle when using dblclick-slide if (o.resizerDblClickToggle && evtName.match(/click/)) { - $R[enable ? "unbind" : "bind"]('dblclick.'+ sID, toggle) + $R[enable ? "unbind" : "bind"]('dblclick.'+ sID, toggle); } $R @@ -4446,7 +4446,7 @@ $.fn.layout = function (opts) { , numFooters: $Fs.length , hiddenFooters: $Fs.length - $Fs_vis.length , spaceBelow: 0 // correct if no content footer ($E) - } + }; m.spaceAbove = m.top; // just for state - not used in calc m.bottom = m.top + m.height; if ($F.length) @@ -4466,7 +4466,7 @@ $.fn.layout = function (opts) { * @param {(string|Object)=} evt_or_panes The pane(s) being resized */ , sizeHandles = function (evt_or_panes) { - var panes = evtPane.call(this, evt_or_panes) + var panes = evtPane.call(this, evt_or_panes); panes = panes ? panes.split(",") : _c.borderPanes; $.each(panes, function (i, pane) { @@ -4778,7 +4778,7 @@ $.fn.layout = function (opts) { , C: $C ? $C[0] : false , state: $.extend(true, {}, state[n]) , options: $.extend(true, {}, options[n]) - } + }; }; function move (oPane, pane) { @@ -5126,7 +5126,7 @@ $.fn.layout = function (opts) { else // true OR false -- if layout-elements did NOT init (hidden or do not exist), can auto-init later return Instance; // return the Instance object -} +}; })( jQuery ); @@ -5397,7 +5397,7 @@ $.layout.state = { s = o.size; c = o.initClosed; h = o.initHidden; - ar = o.autoResize + ar = o.autoResize; state = inst.state[pane]; open = state.isVisible; diff --git a/spree_theme/app/assets/javascripts/jquery.lightbox.custom.js b/spree_theme/app/assets/javascripts/jquery.lightbox.custom.js new file mode 100644 index 00000000..69eb5282 --- /dev/null +++ b/spree_theme/app/assets/javascripts/jquery.lightbox.custom.js @@ -0,0 +1,510 @@ +/** + * jQuery Lightbox + * @author Warren Krewenki + * + * This package is distributed under the BSD license. + * For full license information, see LICENSE.TXT + * + * Based on Lightbox 2 by Lokesh Dhakar (http://www.huddletogether.com/projects/lightbox2/) + * + * + **/ + +(function($) { + $.fn.lightbox = function(options) { + // build main options + var opts = $.extend({}, $.fn.lightbox.defaults, options); + + $(window).resize(resizeOverlayToFitWindow); + + return $(this).on(opts.triggerEvent,function(){ + // initialize the lightbox + initialize(); + showLightbox(this); + return false; + }); + /* + # Initialize the lightbox by creating our html and reading some image data + # This method is called by the constructor after any click events trigger it + # You will never call it by itself, to my knowledge. + */ + function initialize() { + $('.lightbox-overlay, #lightbox').remove(); + opts.inprogress = false; + + // if jsonData, build the imageArray from data provided in JSON format + if (opts.jsonData && opts.jsonData.length > 0) { + var parser = opts.jsonDataParser ? opts.jsonDataParser : $.fn.lightbox.parseJsonData; + opts.imageArray = []; + opts.imageArray = parser(opts.jsonData); + } + + var outerImage = '
      '; + var imageData = '
      '; + + if (opts.displayHelp) { + imageData += '' + opts.strings.help + ''; + } + + imageData += '
      '; + + var string; + + if (opts.navbarOnTop) { + string = ''; + $("body").append(string); + $("#imageDataContainer").addClass('ontop'); + } else { + string = ''; + $("body").append(string); + } + + if (opts.imageScroll === true) { + $('#lightbox').css('position', 'fixed') + } + + $(".lightbox-overlay, #lightbox").click(function(){ end(); }).hide(); + $("#loadingLink, #bottomNavClose").click(function(){ end(); return false;}); + $('#outerImageContainer').width(opts.widthCurrent).height(opts.heightCurrent); + $('#imageDataContainer').width(opts.widthCurrent); + + if (!opts.imageClickClose) { + $("#lightboxImage").click(function(){ return false; }); + $("#hoverNav").click(function(){ return false; }); + } + + return true; + }; + + /* + # Get the document and window width/heigh + # + # Examples + # + # getPageSize() + # # => [1024,768,1024,768] + # + # Returns a numerically indexed array of document width/height and window width/height + */ + function getPageSize() { + var jqueryPageSize = new Array($(document).width(),$(document).height(), $(window).width(), $(window).height()); + return jqueryPageSize; + }; + + function getPageScroll() { + var xScroll, yScroll; + + if (self.pageYOffset) { + yScroll = self.pageYOffset; + xScroll = self.pageXOffset; + } else if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft)){ // Explorer 6 Strict, Firefox + yScroll = document.documentElement.scrollTop; + xScroll = document.documentElement.scrollLeft; + } else if (document.body) {// all other Explorers + yScroll = document.body.scrollTop; + xScroll = document.body.scrollLeft; + } + + var arrayPageScroll = new Array(xScroll,yScroll); + return arrayPageScroll; + }; + + /* + # Deploy the sexy overlay and display the lightbox + # + # imageObject - the jQuery object passed via the click event in the constructor + # + # Examples + # + # showLightbox($('#CheesusCrust')) + # + # Returns a boolean true, because it's got nothing else to return. It should give visual feedback when run + */ + function showLightbox(imageObject) { + /** + * select, embed and object tags render over the lightbox in some browsers + * Right now, the best way to fix it is to hide them, but that can trigger reloading of some flash content + * I don't have a better fix for this right now, but I want ot leave this comment here so you and I both + * know that i'm aware of it, and I would love to fix it, if you have any suggestions. + **/ + $("select, embed, object").hide(); + + // Resize and display the sexy, sexy overlay. + resizeOverlayToFitWindow(); + $(".lightbox-overlay").hide().css({ opacity : opts.overlayOpacity }).fadeIn(); + imageNum = 0; + var $imageObject = $(imageObject); + // if data is not provided by jsonData parameter + if (!opts.jsonData) { + opts.imageArray = []; + // if image is NOT part of a set.. + if ((!getImageSetOf(imageObject) || (getImageSetOf(imageObject) == '')) && !opts.allSet) { + // add single image to Lightbox.imageArray + opts.imageArray.push(new Array(imageObject.href, opts.displayTitle ? imageObject.title : '')); + } else { + // if image is part of a set.. + $("a").each(function() { + if(this.href && (getImageSetOf(this) == getImageSetOf(imageObject))) { + opts.imageArray.push(new Array(this.href, opts.displayTitle ? this.title : '')); + } + }); + } + } + + if (opts.imageArray.length > 1) { + for (i = 0; i < opts.imageArray.length; i++) { + for (j = opts.imageArray.length - 1; j > i; j--) { + if (opts.imageArray[i][0] == opts.imageArray[j][0]) { + opts.imageArray.splice(j, 1); + } + } + } + // custom change, for spree_abc only. + // get current selected image url from data-big-image + //while (opts.imageArray[imageNum][0] != imageObject.url) { + while (opts.imageArray[imageNum][0] != $imageObject.data("big-image")) { + imageNum++; + } + } + + // calculate top and left offset for the lightbox + var arrayPageScroll = getPageScroll(); + var lightboxTop = arrayPageScroll[1] + ($(window).height() / 10); + var lightboxLeft = arrayPageScroll[0]; + $('#lightbox').css({top: lightboxTop+'px', left: lightboxLeft+'px'}).show(); + + if (!opts.slideNavBar) { + $('#imageData').hide(); + } + + changeImage(imageNum); + }; + + function changeImage(imageNum) { + if (opts.inprogress == false) { + opts.inprogress = true; + + // update global var + opts.activeImage = imageNum; + + // hide elements during transition + $('.lightbox-loading').show(); + $('#lightboxImage, #hoverNav, #prevLink, #nextLink').hide(); + + // delay preloading image until navbar will slide up + if (opts.slideNavBar) { + $('#imageDataContainer').hide(); + $('#imageData').hide(); + } + doChangeImage(); + } + }; + + function doChangeImage() { + var imgPreloader = new Image(); + + // once image is preloaded, resize image container + imgPreloader.onload = function() { + var newWidth = imgPreloader.width; + var newHeight = imgPreloader.height; + + if (opts.scaleImages) { + newWidth = parseInt(opts.xScale * newWidth); + newHeight = parseInt(opts.yScale * newHeight); + } + + if (opts.fitToScreen) { + var arrayPageSize = getPageSize(); + var ratio; + var initialPageWidth = arrayPageSize[2] - 2 * opts.borderSize; + var initialPageHeight = arrayPageSize[3] - 200; + + var dI = initialPageWidth/initialPageHeight; + var dP = imgPreloader.width/imgPreloader.height; + + if ((imgPreloader.height > initialPageHeight) || (imgPreloader.width > initialPageWidth)) { + if (dI > dP) { + newWidth = parseInt((initialPageHeight/imgPreloader.height) * imgPreloader.width); + newHeight = initialPageHeight; + } else { + newHeight = parseInt((initialPageWidth/imgPreloader.width) * imgPreloader.height); + newWidth = initialPageWidth; + } + } + } + + $('#lightboxImage'). + attr('src', opts.imageArray[opts.activeImage][0]). + width(newWidth). + height(newHeight); + + resizeImageContainer(newWidth, newHeight); + }; + + imgPreloader.src = opts.imageArray[opts.activeImage][0]; + }; + + function end() { + disableKeyboardNav(); + $('#lightbox').hide(); + $('.lightbox-overlay').fadeOut(); + $('select, object, embed').show(); + }; + + function preloadNeighborImages() { + var preloadPrevImage, preloadNextImage; + if (opts.loopImages && opts.imageArray.length > 1) { + preloadNextImage = new Image(); + preloadNextImage.src = opts.imageArray[(opts.activeImage == (opts.imageArray.length - 1)) ? 0 : opts.activeImage + 1][0]; + + preloadPrevImage = new Image(); + preloadPrevImage.src = opts.imageArray[(opts.activeImage == 0) ? (opts.imageArray.length - 1) : opts.activeImage - 1][0]; + } else { + if ((opts.imageArray.length - 1) > opts.activeImage) { + preloadNextImage = new Image(); + preloadNextImage.src = opts.imageArray[opts.activeImage + 1][0]; + } + if (opts.activeImage > 0) { + preloadPrevImage = new Image(); + preloadPrevImage.src = opts.imageArray[opts.activeImage - 1][0]; + } + } + }; + + function resizeImageContainer(imgWidth, imgHeight) { + // get current width and height + opts.widthCurrent = $("#outerImageContainer").outerWidth(); + opts.heightCurrent = $("#outerImageContainer").outerHeight(); + + // get new width and height + var widthNew = Math.max(350, imgWidth + (opts.borderSize * 2)); + var heightNew = (imgHeight + (opts.borderSize * 2)); + + // calculate size difference between new and old image, and resize if necessary + wDiff = opts.widthCurrent - widthNew; + hDiff = opts.heightCurrent - heightNew; + + $('#imageDataContainer').animate({width: widthNew},opts.resizeSpeed,'linear'); + $('#outerImageContainer').animate({width: widthNew},opts.resizeSpeed,'linear', function() { + $('#outerImageContainer').animate({height: heightNew},opts.resizeSpeed,'linear', function() { + showImage(); + }); + }); + + afterTimeout = function () { + $('#prevLink').height(imgHeight); + $('#nextLink').height(imgHeight); + }; + + // if new and old image are same size and no scaling transition is necessary, + // do a quick pause to prevent image flicker. + if((hDiff == 0) && (wDiff == 0)) { + setTimeout(afterTimeout, 100); + } else { + // otherwise just trigger the height and width change + afterTimeout(); + } + + }; + + function showImage() { + $('.lightbox-loading').hide(); + $('#lightboxImage').fadeIn("fast"); + updateDetails(); + preloadNeighborImages(); + + opts.inprogress = false; + }; + + function updateDetails() { + $('#numberDisplay').html(''); + + if (opts.imageArray[opts.activeImage][1]) { + $('#caption').html(opts.imageArray[opts.activeImage][1]).show(); + } + + // if image is part of set display 'Image x of x' + if (opts.imageArray.length > 1) { + var nav_html; + + nav_html = opts.strings.image + (opts.activeImage + 1) + opts.strings.of + opts.imageArray.length; + + if (opts.displayDownloadLink) { + nav_html += "" + opts.strings.download + ""; + } + + if (!opts.disableNavbarLinks) { + // display previous / next text links + if ((opts.activeImage) > 0 || opts.loopImages) { + nav_html = '' + opts.strings.prevLinkText + "" + nav_html; + } + + if (((opts.activeImage + 1) < opts.imageArray.length) || opts.loopImages) { + nav_html += '' + opts.strings.nextLinkText + ""; + } + } + + $('#numberDisplay').html(nav_html).show(); + } + + if (opts.slideNavBar) { + $("#imageData").slideDown(opts.navBarSlideSpeed); + } else { + $("#imageData").show(); + } + + resizeOverlayToFitWindow(); + updateNav(); + }; + + /* + # Resize the sexy overlay to fit the constraints of your current viewing environment + # + # This should now happen whenever a window is resized, so you should always see a full overlay + */ + function resizeOverlayToFitWindow(){ + $('.lightbox-overlay').css({width: $(document).width(), height: $(document).height()}); + // ^^^^^^^ <- sexy! + }; + + function updateNav() { + if (opts.imageArray.length > 1) { + $('#hoverNav').show(); + + // if loopImages is true, always show next and prev image buttons + if(opts.loopImages) { + $('#prevLink,#prevLinkText').show().click(function() { + changeImage((opts.activeImage == 0) ? (opts.imageArray.length - 1) : opts.activeImage - 1); + return false; + }); + + $('#nextLink,#nextLinkText').show().click(function() { + changeImage((opts.activeImage == (opts.imageArray.length - 1)) ? 0 : opts.activeImage + 1); + return false; + }); + + } else { + // if not first image in set, display prev image button + if(opts.activeImage != 0) { + $('#prevLink,#prevLinkText').show().click(function() { + changeImage(opts.activeImage - 1); + return false; + }); + } + + // if not last image in set, display next image button + if(opts.activeImage != (opts.imageArray.length - 1)) { + $('#nextLink,#nextLinkText').show().click(function() { + changeImage(opts.activeImage +1); + return false; + }); + } + } + + } + enableKeyboardNav(); + + }; + + function keyboardAction(e) { + var o = e.data.opts; + var keycode = e.keyCode; + var escapeKey = 27; + + var key = String.fromCharCode(keycode).toLowerCase(); + + // close lightbox + if ((key == 'x') || (key == 'o') || (key == 'c') || (keycode == escapeKey)) { + end(); + + // display previous image + } else if ((key == 'p') || (keycode == 37)) { + if(o.loopImages) { + disableKeyboardNav(); + changeImage((o.activeImage == 0) ? (o.imageArray.length - 1) : o.activeImage - 1); + } else if (o.activeImage != 0) { + disableKeyboardNav(); + changeImage(o.activeImage - 1); + } + + // display next image + } else if ((key == 'n') || (keycode == 39)) { + if (opts.loopImages) { + disableKeyboardNav(); + changeImage((o.activeImage == (o.imageArray.length - 1)) ? 0 : o.activeImage + 1); + } else if (o.activeImage != (o.imageArray.length - 1)) { + disableKeyboardNav(); + changeImage(o.activeImage + 1); + } + } + }; + + function enableKeyboardNav() { + $(document).bind('keydown', {opts: opts}, keyboardAction); + }; + + function disableKeyboardNav() { + $(document).unbind('keydown'); + }; + + function getImageSetOf(imageObject) { + var set_name = imageObject.rel; + if (!set_name || set_name == '') { + set_name = $(imageObject).attr('data-lightbox-set'); + } + return set_name; + }; + }; + + $.fn.lightbox.parseJsonData = function(data) { + var imageArray = []; + + $.each(data, function() { + imageArray.push(new Array(this.url, this.title)); + }); + + return imageArray; + }; + + $.fn.lightbox.defaults = { + triggerEvent: "click", + allSet: false, + fileLoadingImage: '/shops/shared/images/lightbox/loading.gif', + fileBottomNavCloseImage: '/shops/shared/images/lightbox/closelabel.gif', + overlayOpacity: 0.6, + borderSize: 10, + imageArray: new Array, + activeImage: null, + imageScroll: false, + inprogress: false, + resizeSpeed: 350, + widthCurrent: 250, + heightCurrent: 250, + scaleImages: false, + xScale: 1, + yScale: 1, + displayTitle: true, + navbarOnTop: false, + displayDownloadLink: false, + slideNavBar: false, + navBarSlideSpeed: 350, + displayHelp: false, + strings: { + help: ' \u2190 / P - previous image\u00a0\u00a0\u00a0\u00a0\u2192 / N - next image\u00a0\u00a0\u00a0\u00a0ESC / X - close image gallery', + prevLinkTitle: 'previous image', + nextLinkTitle: 'next image', + prevLinkText: '« Previous', + nextLinkText: 'Next »', + closeTitle: 'close image gallery', + image: 'Image ', + of: ' of ', + download: 'Download' + }, + fitToScreen: false, + disableNavbarLinks: false, + loopImages: false, + imageClickClose: true, + jsonData: null, + jsonDataParser: null + }; +})(jQuery); diff --git a/spree_theme/app/assets/javascripts/jquery.menuhover.js b/spree_theme/app/assets/javascripts/jquery.menuhover.js new file mode 100644 index 00000000..1af3be40 --- /dev/null +++ b/spree_theme/app/assets/javascripts/jquery.menuhover.js @@ -0,0 +1,76 @@ +// a hover event as amazon +// by yilizhang@sohu-inc.com + +(function($) { + + $.fn.menuhover = function(opts) { + + this.each(function() { + init.call(this, opts); + }); + + return this; + }; + + function init(opts) { + var $menuhover = $(this), + timeoutId = null, + options = $.extend({ + submenuDirection: "below", + activate: $.noop, + deactivate: $.noop, + $hover:null, + $hover_effect_container: $menuhover + },opts), + $hover = options.$hover; + + var MOUSE_LOCS_TRACKED = 3, + DELAY = 200; + + + function mouseenter(e){ + options.activate(); + //e.stopPropagation(); + } + + function mouseleave(e){ + if(inArea(e)){ + timeoutId = setTimeout(function() { + options.deactivate(); + }, DELAY); + }else{ + options.deactivate(); + } + } + + function mouseenterHover(){ + if (timeoutId) { + // Cancel any previous activation delays + clearTimeout(timeoutId); + } + } + + function inArea(e){ + var offset = $menuhover.offset(); + if( options.submenuDirection=='b'){ + // y+menuhover.height, disable case mouse move from one menu itme to next menu item. + if( e.pageX >= offset.left && e.pageY >= (offset.top + $menuhover.height())){ // mouse move to right bottom + return true; + } + }else{ + if( e.pageX <= offset.left && e.pageY >= offset.top){ // mouse move to left bottom + return true; + } + } + + return false; + } + + $menuhover.mouseenter(mouseenter) + .mouseleave(mouseleave); + $hover.mouseenter(mouseenterHover); + // hover is not in element menuhover, mouseleave is required. + $hover.mouseleave(mouseleave); + } + +})(jQuery); diff --git a/spree_theme/app/assets/javascripts/jquery.sidr.js b/spree_theme/app/assets/javascripts/jquery.sidr.js new file mode 100644 index 00000000..6d855924 --- /dev/null +++ b/spree_theme/app/assets/javascripts/jquery.sidr.js @@ -0,0 +1,341 @@ +/* + * Sidr + * https://github.com/generoi/sidr + * + * Copyright (c) 2013 Alberto Varela + * Licensed under the MIT license. + */ + +;(function( $ ){ + + var sidrMoving = false, + sidrOpened = false; + + // Private methods + var privateMethods = { + // Check for valids urls + // From : http://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-an-url + isUrl: function (str) { + var pattern = new RegExp('^(https?:\\/\\/)?'+ // protocol + '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+ // domain name + '((\\d{1,3}\\.){3}\\d{1,3}))'+ // OR ip (v4) address + '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ // port and path + '(\\?[;&a-z\\d%_.~+=-]*)?'+ // query string + '(\\#[-a-z\\d_]*)?$','i'); // fragment locator + if(!pattern.test(str)) { + return false; + } else { + return true; + } + }, + // Loads the content into the menu bar + loadContent: function($menu, content) { + $menu.html(content); + this.addTitle($menu); + }, + // add title include close button + addTitle: function( $menu ){ + $('
      ') + .prependTo($menu); + }, + + // Add sidr prefixes + addPrefix: function($element) { + var elementId = $element.attr('id'), + elementClass = $element.attr('class'); + + if(typeof elementId === 'string' && '' !== elementId) { + $element.attr('id', elementId.replace(/([A-Za-z0-9_.\-]+)/g, 'sidr-id-$1')); + } + if(typeof elementClass === 'string' && '' !== elementClass && 'sidr-inner' !== elementClass) { + $element.attr('class', elementClass.replace(/([A-Za-z0-9_.\-]+)/g, 'sidr-class-$1')); + } + $element.removeAttr('style'); + }, + execute: function(action, name, callback) { + // Check arguments + if(typeof name === 'function') { + callback = name; + name = 'sidr'; + } + else if(!name) { + name = 'sidr'; + } + + // Declaring + var $menu = $('#' + name), + $menuOverlay = $('#' + name + '-overlay'), + $body = $($menu.data('body')), + $html = $('html'), + menuWidth = $menu.outerWidth(true) , + menuHeight = $menu.outerHeight(true) , + speed = $menu.data('speed'), + side = $menu.data('side'), + displace = $menu.data('displace'), + onOpen = $menu.data('onOpen'), + onClose = $menu.data('onClose'), + bodyAnimation, + menuAnimation, + scrollTop, + bodyClass = (name === 'sidr' ? 'sidr-open' : 'sidr-open ' + name + '-open'); + + // Open Sidr + if('open' === action || ('toggle' === action && !$menu.is(':visible'))) { + // Check if we can open it + if( $menu.is(':visible') || sidrMoving ) { + return; + } + + // If another menu opened close first + if(sidrOpened !== false) { + methods.close(sidrOpened, function() { + methods.open(name); + }); + + return; + } + + // Lock sidr + sidrMoving = true; + + // Left or right? + if(side === 'top') { + menuAnimation = {top: '0px'}; + }else if(side === 'bottom') { + menuAnimation = {bottom: '0px'}; + }else if(side === 'left') { + bodyAnimation = {left: menuWidth + 'px'}; + menuAnimation = {left: '0px'}; + } + else { + bodyAnimation = {right: menuWidth + 'px'}; + menuAnimation = {right: '0px'}; + } + + // Prepare page if container is body + if($body.is('body')){ + scrollTop = $html.scrollTop(); + $html.css('overflow-x', 'hidden').scrollTop(scrollTop); + } + + // Open menu + $menuOverlay.show(); + if(displace){ + $body.addClass('sidr-animating').css({ + width: $body.width(), + position: 'absolute' + }).animate(bodyAnimation, speed, function() { + $(this).addClass(bodyClass); + }); + } + else { + setTimeout(function() { + $(this).addClass(bodyClass); + }, speed); + } + $menu.css('display', 'block').animate(menuAnimation, speed, function() { + sidrMoving = false; + sidrOpened = name; + // Callback + if(typeof callback === 'function') { + callback(name); + } + $body.removeClass('sidr-animating'); + }); + + // onOpen callback + onOpen(); + } + // Close Sidr + else { + // Check if we can close it + if( !$menu.is(':visible') || sidrMoving ) { + return; + } + + // Lock sidr + sidrMoving = true; + + // Right or left menu? + if(side === 'top') { + menuAnimation = {top: '-' + menuWidth + 'px'}; + }else if(side === 'bottom') { + menuAnimation = {bottom: '-' + menuWidth + 'px'}; + }else if(side === 'left') { + bodyAnimation = {left: 0}; + menuAnimation = {left: '-' + menuWidth + 'px'}; + } + else { + bodyAnimation = {right: 0}; + menuAnimation = {right: '-' + menuWidth + 'px'}; + } + + // Close menu + if($body.is('body')){ + scrollTop = $html.scrollTop(); + $html.removeAttr('style').scrollTop(scrollTop); + } + $body.addClass('sidr-animating').animate(bodyAnimation, speed).removeClass(bodyClass); + $menu.animate(menuAnimation, speed, function() { + $menu.removeAttr('style').hide(); + $body.removeAttr('style'); + $('html').removeAttr('style'); + sidrMoving = false; + sidrOpened = false; + // Callback + if(typeof callback === 'function') { + callback(name); + } + $body.removeClass('sidr-animating'); + }); + + // onClose callback + onClose(); + $menuOverlay.hide(); + } + } + }; + + // Sidr public methods + var methods = { + open: function(name, callback) { + privateMethods.execute('open', name, callback); + }, + close: function(name, callback) { + privateMethods.execute('close', name, callback); + }, + toggle: function(name, callback) { + privateMethods.execute('toggle', name, callback); + }, + // I made a typo, so I mantain this method to keep backward compatibilty with 1.1.1v and previous + toogle: function(name, callback) { + privateMethods.execute('toggle', name, callback); + } + }; + + $.sidr = function( method ) { + + if ( methods[method] ) { + return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 )); + } + else if ( typeof method === 'function' || typeof method === 'string' || ! method ) { + return methods.toggle.apply( this, arguments ); + } + else { + $.error( 'Method ' + method + ' does not exist on jQuery.sidr' ); + } + + }; + + $.fn.sidr = function( options ) { + sidrOpened = false;// for reason turbolinks, reset it when initialize sidr. + + var settings = $.extend( { + name : 'sidr', // Name for the 'sidr' + speed : 200, // Accepts standard jQuery effects speeds (i.e. fast, normal or milliseconds) + side : 'left', // Accepts 'left' or 'right' 'top', 'bottom' + source : null, // Override the source of the content. + renaming : true, // The ids and classes will be prepended with a prefix when loading existent content + body : 'body', // Page container selector, + displace: true, // Displace the body content or not + onOpen : function() {}, // Callback when sidr opened + onClose : function() {} // Callback when sidr closed + }, options); + + var name = settings.name, + $sideMenu = $('#' + name), $sideOverlay = $('#' + name +'-overlay'); + + // If the side menu do not exist create it + if( $sideMenu.length === 0 ) { + $sideMenu = $('
      ') + .attr('id', name) + .appendTo($(settings.body)); + // create the overlay + $sideOverlay = $('
      ') + .attr('id', name +'-overlay') + .addClass('sidr-overlay') + .appendTo($(settings.body)); + } + + // Adding styles and options + $sideMenu + .addClass('sidr') + .addClass(settings.side) + .data({ + speed : settings.speed, + side : settings.side, + body : settings.body, + displace : settings.displace, + onOpen : settings.onOpen, + onClose : settings.onClose + }); + + // The menu content + if(typeof settings.source === 'function') { + var newContent = settings.source(name); + privateMethods.loadContent($sideMenu, newContent); + } + else if(typeof settings.source === 'string' && privateMethods.isUrl(settings.source)) { + $.get(settings.source, function(data) { + privateMethods.loadContent($sideMenu, data); + }); + } + else if(typeof settings.source === 'string') { + var htmlContent = '', + selectors = settings.source.split(','); + + $.each(selectors, function(index, element) { + htmlContent += '
      ' + $(element).html() + '
      '; + }); + + // Renaming ids and classes + if(settings.renaming) { + var $htmlContent = $('
      ').html(htmlContent); + $htmlContent.find('*').each(function(index, element) { + var $element = $(element); + privateMethods.addPrefix($element); + }); + htmlContent = $htmlContent.html(); + } + privateMethods.loadContent($sideMenu, htmlContent); + } + else if(settings.source !== null) { + $.error('Invalid Sidr Source'); + } + + $('#' + name).find('a').click(function() { + methods.toggle(name); + }); + + return this.each(function(){ + var $this = $(this), + data = $this.data('sidr'), + touchStart; + + // If the plugin hasn't been initialized yet + if ( ! data ) { + sidrOpened = false; + sidrMoving = false; + $this.data('sidr', name); + if('ontouchstart' in document.documentElement) { + $this.bind('touchstart', function(e) { + var theEvent = e.originalEvent.touches[0]; + touchStart = e.timeStamp; + }); + $this.bind('touchend', function(e) { + var delta = Math.abs(e.timeStamp - touchStart); + if(delta < 200) { + e.preventDefault(); + methods.toggle(name); + } + }); + } + $this.click(function(e) { + e.preventDefault(); + methods.toggle(name); + }); + } + }); + }; + +})( jQuery ); diff --git a/spree_theme/app/assets/javascripts/jquery.simplemodal.js b/spree_theme/app/assets/javascripts/jquery.simplemodal.js index 69b77f0a..b3054536 100644 --- a/spree_theme/app/assets/javascripts/jquery.simplemodal.js +++ b/spree_theme/app/assets/javascripts/jquery.simplemodal.js @@ -15,26 +15,26 @@ * SimpleModal. * * There are two ways to call SimpleModal: - * 1) As a chained function on a jQuery object, like $('#myDiv').modal();. + * 1) As a chained function on a jQuery object, like $('#myDiv').simplemodal();. * This call would place the DOM object, #myDiv, inside a modal dialog. * Chaining requires a jQuery object. An optional options object can be * passed as a parameter. * - * @example $('
      my data
      ').modal({options}); - * @example $('#myDiv').modal({options}); - * @example jQueryObject.modal({options}); + * @example $('
      my data
      ').simplemodal({options}); + * @example $('#myDiv').simplemodal({options}); + * @example jQueryObject.simplemodal({options}); * - * 2) As a stand-alone function, like $.modal(data). The data parameter + * 2) As a stand-alone function, like $.simplemodal(data). The data parameter * is required and an optional options object can be passed as a second * parameter. This method provides more flexibility in the types of data * that are allowed. The data could be a DOM object, a jQuery object, HTML * or a string. * - * @example $.modal('
      my data
      ', {options}); - * @example $.modal('my data', {options}); - * @example $.modal($('#myDiv'), {options}); - * @example $.modal(jQueryObject, {options}); - * @example $.modal(document.getElementById('myDiv'), {options}); + * @example $.simplemodal('
      my data
      ', {options}); + * @example $.simplemodal('my data', {options}); + * @example $.simplemodal($('#myDiv'), {options}); + * @example $.simplemodal(jQueryObject, {options}); + * @example $.simplemodal(document.getElementById('myDiv'), {options}); * * A SimpleModal call can contain multiple elements, but only one modal * dialog can be created at a time. Which means that all of the matched @@ -92,39 +92,39 @@ * @param {string, object} data A string, jQuery object or DOM object * @param {object} [options] An optional object containing options overrides */ - $.modal = function (data, options) { - return $.modal.impl.init(data, options); + $.simplemodal = function (data, options) { + return $.simplemodal.impl.init(data, options); }; /* * Close the modal dialog. */ - $.modal.close = function () { - $.modal.impl.close(); + $.simplemodal.close = function () { + $.simplemodal.impl.close(); }; /* * Set focus on first or last visible input in the modal dialog. To focus on the last - * element, call $.modal.focus('last'). If no input elements are found, focus is placed + * element, call $.simplemodal.focus('last'). If no input elements are found, focus is placed * on the data wrapper element. */ - $.modal.focus = function (pos) { - $.modal.impl.focus(pos); + $.simplemodal.focus = function (pos) { + $.simplemodal.impl.focus(pos); }; /* * Determine and set the dimensions of the modal dialog container. * setPosition() is called if the autoPosition option is true. */ - $.modal.setContainerDimensions = function () { - $.modal.impl.setContainerDimensions(); + $.simplemodal.setContainerDimensions = function () { + $.simplemodal.impl.setContainerDimensions(); }; /* * Re-position the modal dialog. */ - $.modal.setPosition = function () { - $.modal.impl.setPosition(); + $.simplemodal.setPosition = function () { + $.simplemodal.impl.setPosition(); }; /* @@ -134,8 +134,8 @@ * setContainerDimensions() is called, which in turn calls setPosition(), if enabled. * Lastly, focus() is called is the focus option is true. */ - $.modal.update = function (height, width) { - $.modal.impl.update(height, width); + $.simplemodal.update = function (height, width) { + $.simplemodal.impl.update(height, width); }; /* @@ -143,8 +143,8 @@ * * @param {object} [options] An optional object containing options overrides */ - $.fn.modal = function (options) { - return $.modal.impl.init(this, options); + $.fn.simplemodal = function (options) { + return $.simplemodal.impl.init(this, options); }; /* @@ -186,7 +186,7 @@ * onShow: (Function:null) The callback function used after the modal dialog has opened * onClose: (Function:null) The callback function used in place of SimpleModal's close */ - $.modal.defaults = { + $.simplemodal.defaults = { appendTo: 'body', focus: true, opacity: 50, @@ -221,7 +221,7 @@ * Main modal object * o = options */ - $.modal.impl = { + $.simplemodal.impl = { /* * Contains the modal dialog elements and is the object passed * back to the callback (onOpen, onShow, onClose) functions @@ -241,7 +241,7 @@ browser.ieQuirks = browser.msie && !browser.boxModel; // merge defaults and user options - s.o = $.extend({}, $.modal.defaults, options); + s.o = $.extend({}, $.simplemodal.defaults, options); // keep track of z-index s.zIndex = s.o.zIndex; @@ -305,7 +305,7 @@ s.getDimensions(); // add an iframe to prevent select options from bleeding through - if (s.o.modal && browser.ie6) { + if (s.o.simplemodal && browser.ie6) { s.d.iframe = $('') .css($.extend(s.o.iframeCss, { display: 'none', @@ -326,7 +326,7 @@ .addClass('simplemodal-overlay') .css($.extend(s.o.overlayCss, { display: 'none', - opacity: s.o.opacity / 100, + //opacity: s.o.opacity / 100, // config opcity by param_value. height: s.o.modal ? d[0] : 0, width: s.o.modal ? d[1] : 0, position: 'fixed', @@ -388,7 +388,7 @@ }); // bind the overlay click to the close function, if enabled - if (s.o.modal && s.o.close && s.o.overlayClose) { + if (s.o.simplemodal && s.o.close && s.o.overlayClose) { s.d.overlay.bind('click.simplemodal', function (e) { e.preventDefault(); s.close(); @@ -397,7 +397,7 @@ // bind keydown events doc.bind('keydown.simplemodal', function (e) { - if (s.o.modal && e.keyCode === 9) { // TAB + if (s.o.simplemodal && e.keyCode === 9) { // TAB s.watchTab(e); } else if ((s.o.close && s.o.escClose) && e.keyCode === 27) { // ESC @@ -417,7 +417,7 @@ if (browser.ie6 || browser.ieQuirks) { s.fixIE(); } - else if (s.o.modal) { + else if (s.o.simplemodal) { // update the iframe & overlay s.d.iframe && s.d.iframe.css({height: w[0], width: w[1]}); s.d.overlay.css({height: d[0], width: d[1]}); @@ -440,7 +440,7 @@ var s = this, p = s.o.position; // simulate fixed position - adapted from BlockUI - $.each([s.d.iframe || null, !s.o.modal ? null : s.d.overlay, s.d.container.css('position') === 'fixed' ? s.d.container : null], function (i, el) { + $.each([s.d.iframe || null, !s.o.simplemodal ? null : s.d.overlay, s.d.container.css('position') === 'fixed' ? s.d.container : null], function (i, el) { if (el) { var bch = 'document.body.clientHeight', bcw = 'document.body.clientWidth', bsh = 'document.body.scrollHeight', bsl = 'document.body.scrollLeft', diff --git a/spree_theme/app/assets/javascripts/jquery.ui.customize.js b/spree_theme/app/assets/javascripts/jquery.ui.customize.js new file mode 100644 index 00000000..82d394ac --- /dev/null +++ b/spree_theme/app/assets/javascripts/jquery.ui.customize.js @@ -0,0 +1,3 @@ +//= require jquery-ui/core +// jquery.layout require jquery-ui/core +// spree_backend require jquery-ui/datepicker diff --git a/spree_theme/app/assets/javascripts/jssor.19/jssor.js b/spree_theme/app/assets/javascripts/jssor.19/jssor.js new file mode 100644 index 00000000..2c90a9d2 --- /dev/null +++ b/spree_theme/app/assets/javascripts/jssor.19/jssor.js @@ -0,0 +1,2928 @@ +/* +* Jssor 19.0 +* http://www.jssor.com/ +* +* Licensed under the MIT license: +* http://www.opensource.org/licenses/MIT +* +* TERMS OF USE - Jssor +* +* Copyright 2014 Jssor +* +* Permission is hereby granted, free of charge, to any person obtaining +* a copy of this software and associated documentation files (the +* "Software"), to deal in the Software without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to +* permit persons to whom the Software is furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be +* included in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +/*! Jssor */ + +//$JssorDebug$ +var $JssorDebug$ = new function () { + + this.$DebugMode = true; + + // Methods + + this.$Log = function (msg, important) { + var console = window.console || {}; + var debug = this.$DebugMode; + + if (debug && console.log) { + console.log(msg); + } else if (debug && important) { + alert(msg); + } + }; + + this.$Error = function (msg, e) { + var console = window.console || {}; + var debug = this.$DebugMode; + + if (debug && console.error) { + console.error(msg); + } else if (debug) { + alert(msg); + } + + if (debug) { + // since we're debugging, fail fast by crashing + throw e || new Error(msg); + } + }; + + this.$Fail = function (msg) { + throw new Error(msg); + }; + + this.$Assert = function (value, msg) { + var debug = this.$DebugMode; + if (debug) { + if (!value) + throw new Error("Assert failed " + msg || ""); + } + }; + + this.$Trace = function (msg) { + var console = window.console || {}; + var debug = this.$DebugMode; + + if (debug && console.log) { + console.log(msg); + } + }; + + this.$Execute = function (func) { + var debug = this.$DebugMode; + if (debug) + func(); + }; + + this.$LiveStamp = function (obj, id) { + var debug = this.$DebugMode; + if (debug) { + var stamp = document.createElement("DIV"); + stamp.setAttribute("id", id); + + obj.$Live = stamp; + } + }; + + this.$C_AbstractProperty = function () { + /// + /// Tells compiler the property is abstract, it should be implemented by subclass. + /// + + throw new Error("The property is abstract, it should be implemented by subclass."); + }; + + this.$C_AbstractMethod = function () { + /// + /// Tells compiler the method is abstract, it should be implemented by subclass. + /// + + throw new Error("The method is abstract, it should be implemented by subclass."); + }; + + function C_AbstractClass(instance) { + /// + /// Tells compiler the class is abstract, it should be implemented by subclass. + /// + + if (instance.constructor === C_AbstractClass.caller) + throw new Error("Cannot create instance of an abstract class."); + } + + this.$C_AbstractClass = C_AbstractClass; +}; + +//$JssorEasing$ +var $JssorEasing$ = window.$JssorEasing$ = { + $EaseLinear: function (t) { + return t; + }, + $EaseGoBack: function (t) { + return 1 - Math.abs((t *= 2) - 1); + }, + $EaseSwing: function (t) { + return -Math.cos(t * Math.PI) / 2 + .5; + }, + $EaseInQuad: function (t) { + return t * t; + }, + $EaseOutQuad: function (t) { + return -t * (t - 2); + }, + $EaseInOutQuad: function (t) { + return (t *= 2) < 1 ? 1 / 2 * t * t : -1 / 2 * (--t * (t - 2) - 1); + }, + $EaseInCubic: function (t) { + return t * t * t; + }, + $EaseOutCubic: function (t) { + return (t -= 1) * t * t + 1; + }, + $EaseInOutCubic: function (t) { + return (t *= 2) < 1 ? 1 / 2 * t * t * t : 1 / 2 * ((t -= 2) * t * t + 2); + }, + $EaseInQuart: function (t) { + return t * t * t * t; + }, + $EaseOutQuart: function (t) { + return -((t -= 1) * t * t * t - 1); + }, + $EaseInOutQuart: function (t) { + return (t *= 2) < 1 ? 1 / 2 * t * t * t * t : -1 / 2 * ((t -= 2) * t * t * t - 2); + }, + $EaseInQuint: function (t) { + return t * t * t * t * t; + }, + $EaseOutQuint: function (t) { + return (t -= 1) * t * t * t * t + 1; + }, + $EaseInOutQuint: function (t) { + return (t *= 2) < 1 ? 1 / 2 * t * t * t * t * t : 1 / 2 * ((t -= 2) * t * t * t * t + 2); + }, + $EaseInSine: function (t) { + return 1 - Math.cos(t * Math.PI / 2); + }, + $EaseOutSine: function (t) { + return Math.sin(t * Math.PI / 2); + }, + $EaseInOutSine: function (t) { + return -1 / 2 * (Math.cos(Math.PI * t) - 1); + }, + $EaseInExpo: function (t) { + return t == 0 ? 0 : Math.pow(2, 10 * (t - 1)); + }, + $EaseOutExpo: function (t) { + return t == 1 ? 1 : -Math.pow(2, -10 * t) + 1; + }, + $EaseInOutExpo: function (t) { + return t == 0 || t == 1 ? t : (t *= 2) < 1 ? 1 / 2 * Math.pow(2, 10 * (t - 1)) : 1 / 2 * (-Math.pow(2, -10 * --t) + 2); + }, + $EaseInCirc: function (t) { + return -(Math.sqrt(1 - t * t) - 1); + }, + $EaseOutCirc: function (t) { + return Math.sqrt(1 - (t -= 1) * t); + }, + $EaseInOutCirc: function (t) { + return (t *= 2) < 1 ? -1 / 2 * (Math.sqrt(1 - t * t) - 1) : 1 / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1); + }, + $EaseInElastic: function (t) { + if (!t || t == 1) + return t; + var p = .3, s = .075; + return -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * 2 * Math.PI / p)); + }, + $EaseOutElastic: function (t) { + if (!t || t == 1) + return t; + var p = .3, s = .075; + return Math.pow(2, -10 * t) * Math.sin((t - s) * 2 * Math.PI / p) + 1; + }, + $EaseInOutElastic: function (t) { + if (!t || t == 1) + return t; + var p = .45, s = .1125; + return (t *= 2) < 1 ? -.5 * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * 2 * Math.PI / p) : Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * 2 * Math.PI / p) * .5 + 1; + }, + $EaseInBack: function (t) { + var s = 1.70158; + return t * t * ((s + 1) * t - s); + }, + $EaseOutBack: function (t) { + var s = 1.70158; + return (t -= 1) * t * ((s + 1) * t + s) + 1; + }, + $EaseInOutBack: function (t) { + var s = 1.70158; + return (t *= 2) < 1 ? 1 / 2 * t * t * (((s *= 1.525) + 1) * t - s) : 1 / 2 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2); + }, + $EaseInBounce: function (t) { + return 1 - $JssorEasing$.$EaseOutBounce(1 - t) + }, + $EaseOutBounce: function (t) { + return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375; + }, + $EaseInOutBounce: function (t) { + return t < 1 / 2 ? $JssorEasing$.$EaseInBounce(t * 2) * .5 : $JssorEasing$.$EaseOutBounce(t * 2 - 1) * .5 + .5; + }, + $EaseInWave: function (t) { + return 1 - Math.cos(t * Math.PI * 2) + }, + $EaseOutWave: function (t) { + return Math.sin(t * Math.PI * 2); + }, + $EaseOutJump: function (t) { + return 1 - (((t *= 2) < 1) ? (t = 1 - t) * t * t : (t -= 1) * t * t); + }, + $EaseInJump: function (t) { + return ((t *= 2) < 1) ? t * t * t : (t = 2 - t) * t * t; + } +}; + +var $JssorDirection$ = window.$JssorDirection$ = { + $TO_LEFT: 0x0001, + $TO_RIGHT: 0x0002, + $TO_TOP: 0x0004, + $TO_BOTTOM: 0x0008, + $HORIZONTAL: 0x0003, + $VERTICAL: 0x000C, + //$LEFTRIGHT: 0x0003, + //$TOPBOTOM: 0x000C, + //$TOPLEFT: 0x0005, + //$TOPRIGHT: 0x0006, + //$BOTTOMLEFT: 0x0009, + //$BOTTOMRIGHT: 0x000A, + //$AROUND: 0x000F, + + $GetDirectionHorizontal: function (direction) { + return direction & 0x0003; + }, + $GetDirectionVertical: function (direction) { + return direction & 0x000C; + }, + //$ChessHorizontal: function (direction) { + // return (~direction & 0x0003) + (direction & 0x000C); + //}, + //$ChessVertical: function (direction) { + // return (~direction & 0x000C) + (direction & 0x0003); + //}, + //$IsToLeft: function (direction) { + // return (direction & 0x0003) == 0x0001; + //}, + //$IsToRight: function (direction) { + // return (direction & 0x0003) == 0x0002; + //}, + //$IsToTop: function (direction) { + // return (direction & 0x000C) == 0x0004; + //}, + //$IsToBottom: function (direction) { + // return (direction & 0x000C) == 0x0008; + //}, + $IsHorizontal: function (direction) { + return direction & 0x0003; + }, + $IsVertical: function (direction) { + return direction & 0x000C; + } +}; + +var $JssorKeyCode$ = { + $BACKSPACE: 8, + $COMMA: 188, + $DELETE: 46, + $DOWN: 40, + $END: 35, + $ENTER: 13, + $ESCAPE: 27, + $HOME: 36, + $LEFT: 37, + $NUMPAD_ADD: 107, + $NUMPAD_DECIMAL: 110, + $NUMPAD_DIVIDE: 111, + $NUMPAD_ENTER: 108, + $NUMPAD_MULTIPLY: 106, + $NUMPAD_SUBTRACT: 109, + $PAGE_DOWN: 34, + $PAGE_UP: 33, + $PERIOD: 190, + $RIGHT: 39, + $SPACE: 32, + $TAB: 9, + $UP: 38 +}; + +//var $JssorAlignment$ = { +// $TopLeft: 0x11, +// $TopCenter: 0x12, +// $TopRight: 0x14, +// $MiddleLeft: 0x21, +// $MiddleCenter: 0x22, +// $MiddleRight: 0x24, +// $BottomLeft: 0x41, +// $BottomCenter: 0x42, +// $BottomRight: 0x44, +// $IsTop: function (aligment) { +// return aligment & 0x10 > 0; +// }, +// $IsMiddle: function (alignment) { +// return alignment & 0x20 > 0; +// }, +// $IsBottom: function (alignment) { +// return alignment & 0x40 > 0; +// }, +// $IsLeft: function (alignment) { +// return alignment & 0x01 > 0; +// }, +// $IsCenter: function (alignment) { +// return alignment & 0x02 > 0; +// }, +// $IsRight: function (alignment) { +// return alignment & 0x04 > 0; +// } +//}; + +// $Jssor$ is a static class, so make it singleton instance +var $Jssor$ = window.$Jssor$ = new function () { + var _This = this; + + //#region Constants + var REGEX_WHITESPACE_GLOBAL = /\S+/g; + var ROWSER_UNKNOWN = 0; + var BROWSER_IE = 1; + var BROWSER_FIREFOX = 2; + var BROWSER_SAFARI = 3; + var BROWSER_CHROME = 4; + var BROWSER_OPERA = 5; + + //var arrActiveX = ["Msxml2.XMLHTTP", "Msxml3.XMLHTTP", "Microsoft.XMLHTTP"]; + //#endregion + + //#region Variables + var _Device; + var _Browser = 0; + var _BrowserRuntimeVersion = 0; + var _BrowserEngineVersion = 0; + var _BrowserJavascriptVersion = 0; + var _WebkitVersion = 0; + + var _Navigator = navigator; + var _AppName = _Navigator.appName; + var _AppVersion = _Navigator.appVersion; + var _UserAgent = _Navigator.userAgent; + + var _DocElmt = document.documentElement; + var _TransformProperty; + //#endregion + + function Device() { + if (!_Device) { + _Device = { + $Evt_Down: "mousedown", + $Evt_Move: "mousemove", + $Evt_Up: "mouseup" + }; + var msPrefix; + if (_Navigator.pointerEnabled || (msPrefix = _Navigator.msPointerEnabled)) { + _Device = { + $Evt_Down: msPrefix ? "MSPointerDown" : "pointerdown", + $Evt_Move: msPrefix ? "MSPointerMove" : "pointermove", + $Evt_Up: msPrefix ? "MSPointerUp" : "pointerup", + $Evt_Cancel: msPrefix ? "MSPointerCancel" : "pointercancel", + $TouchActionAttr: msPrefix ? "msTouchAction" : "touchAction", + $Touchable: _UserAgent.match(/iemobile/i) + }; + } + else if ("ontouchstart" in window || "createTouch" in document) { + _Device = { + $Evt_Down: "touchstart", + $Evt_Move: "touchmove", + $Evt_Up: "touchend", + $Evt_Cancel: "touchcancel", + $Touchable: true, + $TouchOnly: true + }; + } + } + + return _Device; + } + + function DetectBrowser(browser) { + if (!_Browser) { + if (_AppName == "Microsoft Internet Explorer" && + !!window.attachEvent && !!window.ActiveXObject) { + + var ieOffset = _UserAgent.indexOf("MSIE"); + _Browser = BROWSER_IE; + _BrowserEngineVersion = ParseFloat(_UserAgent.substring(ieOffset + 5, _UserAgent.indexOf(";", ieOffset))); + + //check IE javascript version + /*@cc_on + _BrowserJavascriptVersion = @_jscript_version; + @*/ + + // update: for intranet sites and compat view list sites, IE sends + // an IE7 User-Agent to the server to be interoperable, and even if + // the page requests a later IE version, IE will still report the + // IE7 UA to JS. we should be robust to self + //var docMode = document.documentMode; + //if (typeof docMode !== "undefined") { + // _BrowserRuntimeVersion = docMode; + //} + + _BrowserRuntimeVersion = document.documentMode || _BrowserEngineVersion; + + } + else if (_AppName == "Netscape" && !!window.addEventListener) { + + var ffOffset = _UserAgent.indexOf("Firefox"); + var saOffset = _UserAgent.indexOf("Safari"); + var chOffset = _UserAgent.indexOf("Chrome"); + var webkitOffset = _UserAgent.indexOf("AppleWebKit"); + + if (ffOffset >= 0) { + _Browser = BROWSER_FIREFOX; + _BrowserRuntimeVersion = ParseFloat(_UserAgent.substring(ffOffset + 8)); + } + else if (saOffset >= 0) { + var slash = _UserAgent.substring(0, saOffset).lastIndexOf("/"); + _Browser = (chOffset >= 0) ? BROWSER_CHROME : BROWSER_SAFARI; + _BrowserRuntimeVersion = ParseFloat(_UserAgent.substring(slash + 1, saOffset)); + } + + if (webkitOffset >= 0) + _WebkitVersion = ParseFloat(_UserAgent.substring(webkitOffset + 12)); + } + else { + var match = /(opera)(?:.*version|)[ \/]([\w.]+)/i.exec(_UserAgent); + if (match) { + _Browser = BROWSER_OPERA; + _BrowserRuntimeVersion = ParseFloat(match[2]); + } + } + } + + return browser == _Browser; + } + + function IsBrowserIE() { + return DetectBrowser(BROWSER_IE); + } + + function IsBrowserIeQuirks() { + return IsBrowserIE() && (_BrowserRuntimeVersion < 6 || document.compatMode == "BackCompat"); //Composite to "CSS1Compat" + } + + function IsBrowserFireFox() { + return DetectBrowser(BROWSER_FIREFOX); + } + + function IsBrowserSafari() { + return DetectBrowser(BROWSER_SAFARI); + } + + function IsBrowserChrome() { + return DetectBrowser(BROWSER_CHROME); + } + + function IsBrowserOpera() { + return DetectBrowser(BROWSER_OPERA); + } + + function IsBrowserBadTransform() { + return IsBrowserSafari() && (_WebkitVersion > 534) && (_WebkitVersion < 535); + } + + function IsBrowserIe9Earlier() { + return IsBrowserIE() && _BrowserRuntimeVersion < 9; + } + + function GetTransformProperty(elmt) { + + if (!_TransformProperty) { + // Note that in some versions of IE9 it is critical that + // msTransform appear in this list before MozTransform + + each(['transform', 'WebkitTransform', 'msTransform', 'MozTransform', 'OTransform'], function (property) { + if (elmt.style[property] != undefined) { + _TransformProperty = property; + return true; + } + }); + + _TransformProperty = _TransformProperty || "transform"; + } + + return _TransformProperty; + } + + // Helpers + function getOffsetParent(elmt, isFixed) { + // IE and Opera "fixed" position elements don't have offset parents. + // regardless, if it's fixed, its offset parent is the body. + if (isFixed && elmt != document.body) { + return document.body; + } else { + return elmt.offsetParent; + } + } + + function toString(obj) { + return Object.prototype.toString.call(obj); + } + + // [[Class]] -> type pairs + var class2type; + + function each(object, callback) { + if (toString(object) == "[object Array]") { + for (var i = 0; i < object.length; i++) { + if (callback(object[i], i, object)) { + return true; + } + } + } + else { + for (var name in object) { + if (callback(object[name], name, object)) { + return true; + } + } + } + } + + function GetClass2Type() { + if (!class2type) { + class2type = {}; + each(["Boolean", "Number", "String", "Function", "Array", "Date", "RegExp", "Object"], function (name) { + class2type["[object " + name + "]"] = name.toLowerCase(); + }); + } + + return class2type; + } + + function type(obj) { + return obj == null ? String(obj) : GetClass2Type()[toString(obj)] || "object"; + } + + function isPlainObject(obj) { + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if (!obj || type(obj) !== "object" || obj.nodeType || _This.$IsWindow(obj)) { + return false; + } + + var hasOwn = Object.prototype.hasOwnProperty; + + try { + // Not own constructor property must be Object + if (obj.constructor && + !hasOwn.call(obj, "constructor") && + !hasOwn.call(obj.constructor.prototype, "isPrototypeOf")) { + return false; + } + } catch (e) { + // IE8,9 Will throw exceptions on certain host objects #9897 + return false; + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + + var key; + for (key in obj) { } + + return key === undefined || hasOwn.call(obj, key); + } + + function Point(x, y) { + return { x: x, y: y }; + } + + function Delay(code, delay) { + setTimeout(code, delay || 0); + } + + function RemoveByReg(str, reg) { + var m = reg.exec(str); + + if (m) { + var header = str.substr(0, m.index); + var tailer = str.substr(m.lastIndex + 1, str.length - (m.lastIndex + 1)); + str = header + tailer; + } + + return str; + } + + function BuildNewCss(oldCss, removeRegs, replaceValue) { + var css = (!oldCss || oldCss == "inherit") ? "" : oldCss; + + each(removeRegs, function (removeReg) { + var m = removeReg.exec(css); + + if (m) { + var header = css.substr(0, m.index); + var tailer = css.substr(m.lastIndex + 1, css.length - (m.lastIndex + 1)); + css = header + tailer; + } + }); + + css = replaceValue + (css.indexOf(" ") != 0 ? " " : "") + css; + + return css; + } + + function SetStyleFilterIE(elmt, value) { + if (_BrowserRuntimeVersion < 9) { + elmt.style.filter = value; + } + } + + function SetStyleMatrixIE(elmt, matrix, offset) { + //matrix is not for ie9+ running in ie8- mode + if (_BrowserJavascriptVersion < 9) { + var oldFilterValue = elmt.style.filter; + var matrixReg = new RegExp(/[\s]*progid:DXImageTransform\.Microsoft\.Matrix\([^\)]*\)/g); + var matrixValue = matrix ? "progid:DXImageTransform.Microsoft.Matrix(" + "M11=" + matrix[0][0] + ", M12=" + matrix[0][1] + ", M21=" + matrix[1][0] + ", M22=" + matrix[1][1] + ", SizingMethod='auto expand')" : ""; + + var newFilterValue = BuildNewCss(oldFilterValue, [matrixReg], matrixValue); + + SetStyleFilterIE(elmt, newFilterValue); + + _This.$CssMarginTop(elmt, offset.y); + _This.$CssMarginLeft(elmt, offset.x); + } + } + + // Methods + + //_This.$IsTouchDevice = function () { + // return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(_UserAgent); + //}; + + _This.$Device = Device; + + _This.$IsBrowserIE = IsBrowserIE; + + _This.$IsBrowserIeQuirks = IsBrowserIeQuirks; + + _This.$IsBrowserFireFox = IsBrowserFireFox; + + _This.$IsBrowserSafari = IsBrowserSafari; + + _This.$IsBrowserChrome = IsBrowserChrome; + + _This.$IsBrowserOpera = IsBrowserOpera; + + _This.$IsBrowserBadTransform = IsBrowserBadTransform; + + _This.$IsBrowserIe9Earlier = IsBrowserIe9Earlier; + + _This.$BrowserVersion = function () { + return _BrowserRuntimeVersion; + }; + + _This.$BrowserEngineVersion = function () { + return _BrowserEngineVersion || _BrowserRuntimeVersion; + }; + + _This.$WebKitVersion = function () { + DetectBrowser(); + + return _WebkitVersion; + }; + + _This.$Delay = Delay; + + _This.$Inherit = function (instance, baseClass) { + baseClass.call(instance); + return Extend({}, instance); + }; + + function Construct(instance) { + instance.constructor === Construct.caller && instance.$Construct && instance.$Construct.apply(instance, Construct.caller.arguments); + } + + _This.$Construct = Construct; + + _This.$GetElement = function (elmt) { + if (_This.$IsString(elmt)) { + elmt = document.getElementById(elmt); + } + + return elmt; + }; + + function GetEvent(event) { + return event || window.event; + } + + _This.$GetEvent = GetEvent; + + _This.$EventSrc = function (event) { + event = GetEvent(event); + return event.target || event.srcElement || document; + }; + + _This.$EventTarget = function (event) { + event = GetEvent(event); + return event.relatedTarget || event.toElement; + }; + + _This.$MousePosition = function (event) { + event = GetEvent(event); + var body = document.body; + + return { + x: event.pageX || event.clientX + (_DocElmt.scrollLeft || body.scrollLeft || 0) - (_DocElmt.clientLeft || body.clientLeft || 0) || 0, + y: event.pageY || event.clientY + (_DocElmt.scrollTop || body.scrollTop || 0) - (_DocElmt.clientTop || body.clientTop || 0) || 0 + }; + }; + + _This.$PageScroll = function () { + var body = document.body; + + return { + x: (window.pageXOffset || _DocElmt.scrollLeft || body.scrollLeft || 0) - (_DocElmt.clientLeft || body.clientLeft || 0), + y: (window.pageYOffset || _DocElmt.scrollTop || body.scrollTop || 0) - (_DocElmt.clientTop || body.clientTop || 0) + }; + }; + + _This.$WindowSize = function () { + var body = document.body; + + return { + x: body.clientWidth || _DocElmt.clientWidth, + y: body.clientHeight || _DocElmt.clientHeight + }; + }; + + //_This.$GetElementPosition = function (elmt) { + // elmt = _This.$GetElement(elmt); + // var result = Point(); + + // // technique from: + // // http://www.quirksmode.org/js/findpos.html + // // with special check for "fixed" elements. + + // while (elmt) { + // result.x += elmt.offsetLeft; + // result.y += elmt.offsetTop; + + // var isFixed = _This.$GetElementStyle(elmt).position == "fixed"; + + // if (isFixed) { + // result = result.$Plus(_This.$PageScroll(window)); + // } + + // elmt = getOffsetParent(elmt, isFixed); + // } + + // return result; + //}; + + //_This.$GetMouseScroll = function (event) { + // event = GetEvent(event); + // var delta = 0; // default value + + // // technique from: + // // http://blog.paranoidferret.com/index.php/2007/10/31/javascript-tutorial-the-scroll-wheel/ + + // if (typeof (event.wheelDelta) == "number") { + // delta = event.wheelDelta; + // } else if (typeof (event.detail) == "number") { + // delta = event.detail * -1; + // } else { + // $JssorDebug$.$Fail("Unknown event mouse scroll, no known technique."); + // } + + // // normalize value to [-1, 1] + // return delta ? delta / Math.abs(delta) : 0; + //}; + + //_This.$MakeAjaxRequest = function (url, callback) { + // var async = typeof (callback) == "function"; + // var req = null; + + // if (async) { + // var actual = callback; + // var callback = function () { + // Delay($Jssor$.$CreateCallback(null, actual, req), 1); + // }; + // } + + // if (window.ActiveXObject) { + // for (var i = 0; i < arrActiveX.length; i++) { + // try { + // req = new ActiveXObject(arrActiveX[i]); + // break; + // } catch (e) { + // continue; + // } + // } + // } else if (window.XMLHttpRequest) { + // req = new XMLHttpRequest(); + // } + + // if (!req) { + // $JssorDebug$.$Fail("Browser doesn't support XMLHttpRequest."); + // } + + // if (async) { + // req.onreadystatechange = function () { + // if (req.readyState == 4) { + // // prevent memory leaks by breaking circular reference now + // req.onreadystatechange = new Function(); + // callback(); + // } + // }; + // } + + // try { + // req.open("GET", url, async); + // req.send(null); + // } catch (e) { + // $JssorDebug$.$Log(e.name + " while making AJAX request: " + e.message); + + // req.onreadystatechange = null; + // req = null; + + // if (async) { + // callback(); + // } + // } + + // return async ? null : req; + //}; + + //_This.$ParseXml = function (string) { + // var xmlDoc = null; + + // if (window.ActiveXObject) { + // try { + // xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); + // xmlDoc.async = false; + // xmlDoc.loadXML(string); + // } catch (e) { + // $JssorDebug$.$Log(e.name + " while parsing XML (ActiveX): " + e.message); + // } + // } else if (window.DOMParser) { + // try { + // var parser = new DOMParser(); + // xmlDoc = parser.parseFromString(string, "text/xml"); + // } catch (e) { + // $JssorDebug$.$Log(e.name + " while parsing XML (DOMParser): " + e.message); + // } + // } else { + // $JssorDebug$.$Fail("Browser doesn't support XML DOM."); + // } + + // return xmlDoc; + //}; + + function Css(elmt, name, value) { + /// + /// access css + /// $Jssor$.$Css(elmt, name); //get css value + /// $Jssor$.$Css(elmt, name, value); //set css value + /// + /// + /// the element to access css + /// + /// + /// the name of css property + /// + /// + /// the value to set + /// + if (value != undefined) { + elmt.style[name] = value; + } + else { + var style = elmt.currentStyle || elmt.style; + value = style[name]; + + if (value == "" && window.getComputedStyle) { + style = elmt.ownerDocument.defaultView.getComputedStyle(elmt, null); + + style && (value = style.getPropertyValue(name) || style[name]); + } + + return value; + } + } + + function CssN(elmt, name, value, isDimensional) { + /// + /// access css as numeric + /// $Jssor$.$CssN(elmt, name); //get css value + /// $Jssor$.$CssN(elmt, name, value); //set css value + /// + /// + /// the element to access css + /// + /// + /// the name of css property + /// + /// + /// the value to set + /// + if (value != undefined) { + isDimensional && (value += "px"); + Css(elmt, name, value); + } + else { + return ParseFloat(Css(elmt, name)); + } + } + + function CssP(elmt, name, value) { + /// + /// access css in pixel as numeric, like 'top', 'left', 'width', 'height' + /// $Jssor$.$CssP(elmt, name); //get css value + /// $Jssor$.$CssP(elmt, name, value); //set css value + /// + /// + /// the element to access css + /// + /// + /// the name of css property + /// + /// + /// the value to set + /// + return CssN(elmt, name, value, true); + } + + function CssProxy(name, numericOrDimension) { + /// + /// create proxy to access css, CssProxy(name[, numericOrDimension]); + /// + /// + /// the element to access css + /// + /// + /// not set: access original css, 1: access css as numeric, 2: access css in pixel as numeric + /// + var isDimensional = numericOrDimension & 2; + var cssAccessor = numericOrDimension ? CssN : Css; + return function (elmt, value) { + return cssAccessor(elmt, name, value, isDimensional); + }; + } + + function GetStyleOpacity(elmt) { + if (IsBrowserIE() && _BrowserEngineVersion < 9) { + var match = /opacity=([^)]*)/.exec(elmt.style.filter || ""); + return match ? (ParseFloat(match[1]) / 100) : 1; + } + else + return ParseFloat(elmt.style.opacity || "1"); + } + + function SetStyleOpacity(elmt, opacity, ie9EarlierForce) { + + if (IsBrowserIE() && _BrowserEngineVersion < 9) { + //var filterName = "filter"; // _BrowserEngineVersion < 8 ? "filter" : "-ms-filter"; + var finalFilter = elmt.style.filter || ""; + + // for CSS filter browsers (IE), remove alpha filter if it's unnecessary. + // update: doing _This always since IE9 beta seems to have broken the + // behavior if we rely on the programmatic filters collection. + var alphaReg = new RegExp(/[\s]*alpha\([^\)]*\)/g); + + // important: note the lazy star! _This protects against + // multiple filters; we don't want to delete the other ones. + // update: also trimming extra whitespace around filter. + + var ieOpacity = Math.round(100 * opacity); + var alphaFilter = ""; + if (ieOpacity < 100 || ie9EarlierForce) { + alphaFilter = "alpha(opacity=" + ieOpacity + ") "; + //elmt.style["-ms-filter"] = "progid:DXImageTransform.Microsoft.Alpha(opacity=" + ieOpacity + ") "; + } + + var newFilterValue = BuildNewCss(finalFilter, [alphaReg], alphaFilter); + + SetStyleFilterIE(elmt, newFilterValue); + } + + //if (!IsBrowserIE() || _BrowserEngineVersion >= 9) + else { + elmt.style.opacity = opacity == 1 ? "" : Math.round(opacity * 100) / 100; + } + } + + function SetStyleTransformInternal(elmt, transform) { + var rotate = transform.$Rotate || 0; + var scale = transform.$Scale == undefined ? 1 : transform.$Scale; + + if (IsBrowserIe9Earlier()) { + var matrix = _This.$CreateMatrix(rotate / 180 * Math.PI, scale, scale); + SetStyleMatrixIE(elmt, (!rotate && scale == 1) ? null : matrix, _This.$GetMatrixOffset(matrix, transform.$OriginalWidth, transform.$OriginalHeight)); + } + else { + //rotate(15deg) scale(.5) translateZ(0) + var transformProperty = GetTransformProperty(elmt); + if (transformProperty) { + var transformValue = "rotate(" + rotate % 360 + "deg) scale(" + scale + ")"; + + //needed for touch device, no need for desktop device + if (IsBrowserChrome() && _WebkitVersion > 535 && "ontouchstart" in window) + transformValue += " perspective(2000px)"; + + elmt.style[transformProperty] = transformValue; + } + } + } + + _This.$SetStyleTransform = function (elmt, transform) { + if (IsBrowserBadTransform()) { + Delay(_This.$CreateCallback(null, SetStyleTransformInternal, elmt, transform)); + } + else { + SetStyleTransformInternal(elmt, transform); + } + }; + + _This.$SetStyleTransformOrigin = function (elmt, transformOrigin) { + var transformProperty = GetTransformProperty(elmt); + + if (transformProperty) + elmt.style[transformProperty + "Origin"] = transformOrigin; + }; + + _This.$CssScale = function (elmt, scale) { + + if (IsBrowserIE() && _BrowserEngineVersion < 9 || (_BrowserEngineVersion < 10 && IsBrowserIeQuirks())) { + elmt.style.zoom = (scale == 1) ? "" : scale; + } + else { + var transformProperty = GetTransformProperty(elmt); + + if (transformProperty) { + //rotate(15deg) scale(.5) + var transformValue = "scale(" + scale + ")"; + + var oldTransformValue = elmt.style[transformProperty]; + var scaleReg = new RegExp(/[\s]*scale\(.*?\)/g); + + var newTransformValue = BuildNewCss(oldTransformValue, [scaleReg], transformValue); + + elmt.style[transformProperty] = newTransformValue; + } + } + }; + + _This.$EnableHWA = function (elmt) { + if (!elmt.style[GetTransformProperty(elmt)] || elmt.style[GetTransformProperty(elmt)] == "none") + elmt.style[GetTransformProperty(elmt)] = "perspective(2000px)"; + }; + + _This.$DisableHWA = function (elmt) { + //if (force || elmt.style[GetTransformProperty(elmt)] == "perspective(2000px)") + elmt.style[GetTransformProperty(elmt)] = "none"; + }; + + var ie8OffsetWidth = 0; + var ie8OffsetHeight = 0; + //var ie8WindowResizeCallbackHandlers; + //var ie8LastVerticalScrollbar; + //var toggleInfo = ""; + + //function Ie8WindowResizeFilter(window, handler) { + + // var trigger = true; + + // var checkElement = (IsBrowserIeQuirks() ? window.document.body : window.document.documentElement); + // if (checkElement) { + // //check vertical bar + // //var hasVerticalBar = checkElement.scrollHeight > checkElement.clientHeight; + // //var verticalBarToggle = hasVerticalBar != ie8LastVerticalScrollbar; + // //ie8LastVerticalScrollbar = hasVerticalBar; + + // var widthChange = checkElement.offsetWidth - ie8OffsetWidth; + // var heightChange = checkElement.offsetHeight - ie8OffsetHeight; + // if (widthChange || heightChange) { + + // ie8OffsetWidth += widthChange; + // ie8OffsetHeight += heightChange; + // } + // else + // trigger = false; + // } + + // trigger && handler(); + //} + + //_This.$OnWindowResize = function (window, handler) { + + // if (IsBrowserIE() && _BrowserEngineVersion < 9) { + // if (!ie8WindowResizeCallbackHandlers) { + // ie8WindowResizeCallbackHandlers = [handler]; + // handler = _This.$CreateCallback(null, Ie8WindowResizeFilter, window); + // } + // else { + // ie8WindowResizeCallbackHandlers.push(handler); + // return; + // } + // } + + // _This.$AddEvent(window, "resize", handler); + //}; + + _This.$WindowResizeFilter = function (window, handler) { + return IsBrowserIe9Earlier() ? function () { + + var trigger = true; + + var checkElement = (IsBrowserIeQuirks() ? window.document.body : window.document.documentElement); + if (checkElement) { + //check vertical bar + //var hasVerticalBar = checkElement.scrollHeight > checkElement.clientHeight; + //var verticalBarToggle = hasVerticalBar != ie8LastVerticalScrollbar; + //ie8LastVerticalScrollbar = hasVerticalBar; + + var widthChange = checkElement.offsetWidth - ie8OffsetWidth; + var heightChange = checkElement.offsetHeight - ie8OffsetHeight; + if (widthChange || heightChange) { + ie8OffsetWidth += widthChange; + ie8OffsetHeight += heightChange; + } + else + trigger = false; + } + + trigger && handler(); + + } : handler; + }; + + _This.$MouseOverOutFilter = function (handler, target) { + /// + /// The target element to detect mouse over/out events. (for ie < 9 compatibility) + /// + + $JssorDebug$.$Execute(function () { + if (!target) { + throw new Error("Null reference, parameter \"target\"."); + } + }); + + return function (event) { + event = GetEvent(event); + + var eventName = event.type; + var related = event.relatedTarget || (eventName == "mouseout" ? event.toElement : event.fromElement); + + if (!related || (related !== target && !_This.$IsChild(target, related))) { + handler(event); + } + }; + }; + + _This.$AddEvent = function (elmt, eventName, handler, useCapture) { + elmt = _This.$GetElement(elmt); + + $JssorDebug$.$Execute(function () { + if (!elmt) { + $JssorDebug$.$Fail("Parameter 'elmt' not specified."); + } + + if (!handler) { + $JssorDebug$.$Fail("Parameter 'handler' not specified."); + } + + if (!elmt.addEventListener && !elmt.attachEvent) { + $JssorDebug$.$Fail("Unable to attach event handler, no known technique."); + } + }); + + // technique from: + // http://blog.paranoidferret.com/index.php/2007/08/10/javascript-working-with-events/ + + //function Handler(event) { + // handler(event || window.event); + //} + + if (elmt.addEventListener) { + if (eventName == "mousewheel") { + elmt.addEventListener("DOMMouseScroll", handler, useCapture); + } + // we are still going to add the mousewheel -- not a mistake! + // _This is for opera, since it uses onmousewheel but needs addEventListener. + elmt.addEventListener(eventName, handler, useCapture); + } + else if (elmt.attachEvent) { + elmt.attachEvent("on" + eventName, handler); + if (useCapture && elmt.setCapture) { + elmt.setCapture(); + } + } + }; + + _This.$RemoveEvent = function (elmt, eventName, handler, useCapture) { + elmt = _This.$GetElement(elmt); + + // technique from: + // http://blog.paranoidferret.com/index.php/2007/08/10/javascript-working-with-events/ + + if (elmt.removeEventListener) { + if (eventName == "mousewheel") { + elmt.removeEventListener("DOMMouseScroll", handler, useCapture); + } + // we are still going to remove the mousewheel -- not a mistake! + // _This is for opera, since it uses onmousewheel but needs removeEventListener. + elmt.removeEventListener(eventName, handler, useCapture); + } + else if (elmt.detachEvent) { + elmt.detachEvent("on" + eventName, handler); + if (useCapture && elmt.releaseCapture) { + elmt.releaseCapture(); + } + } + }; + + _This.$FireEvent = function (elmt, eventName) { + //var document = elmt.document; + + $JssorDebug$.$Execute(function () { + if (!document.createEvent && !document.createEventObject) { + $JssorDebug$.$Fail("Unable to fire event, no known technique."); + } + + if (!elmt.dispatchEvent && !elmt.fireEvent) { + $JssorDebug$.$Fail("Unable to fire event, no known technique."); + } + }); + + var evento; + + if (document.createEvent) { + evento = document.createEvent("HTMLEvents"); + evento.initEvent(eventName, false, false); + elmt.dispatchEvent(evento); + } + else { + var ieEventName = "on" + eventName; + evento = document.createEventObject(); + //event.eventType = ieEventName; + //event.eventName = ieEventName; + + elmt.fireEvent(ieEventName, evento); + } + }; + + //_This.$AddEventBrowserMouseUp = function (handler, userCapture) { + // _This.$AddEvent((IsBrowserIe9Earlier()) ? document : window, "mouseup", handler, userCapture); + //}; + + //_This.$RemoveEventBrowserMouseUp = function (handler, userCapture) { + // _This.$RemoveEvent((IsBrowserIe9Earlier()) ? document : window, "mouseup", handler, userCapture); + //}; + + //_This.$AddEventBrowserMouseDown = function (handler, userCapture) { + // _This.$AddEvent((IsBrowserIe9Earlier()) ? document : window, "mousedown", handler, userCapture); + //}; + + //_This.$RemoveEventBrowserMouseDown = function (handler, userCapture) { + // _This.$RemoveEvent((IsBrowserIe9Earlier()) ? document : window, "mousedown", handler, userCapture); + //}; + + _This.$CancelEvent = function (event) { + event = GetEvent(event); + + // technique from: + // http://blog.paranoidferret.com/index.php/2007/08/10/javascript-working-with-events/ + + if (event.preventDefault) { + event.preventDefault(); // W3C for preventing default + } + + event.cancel = true; // legacy for preventing default + event.returnValue = false; // IE for preventing default + }; + + _This.$StopEvent = function (event) { + event = GetEvent(event); + + // technique from: + // http://blog.paranoidferret.com/index.php/2007/08/10/javascript-working-with-events/ + + if (event.stopPropagation) { + event.stopPropagation(); // W3C for stopping propagation + } + + event.cancelBubble = true; // IE for stopping propagation + }; + + _This.$CreateCallback = function (object, method) { + // create callback args + var initialArgs = [].slice.call(arguments, 2); + + // create closure to apply method + var callback = function () { + // concatenate new args, but make a copy of initialArgs first + var args = initialArgs.concat([].slice.call(arguments, 0)); + + return method.apply(object, args); + }; + + //$JssorDebug$.$LiveStamp(callback, "callback_" + ($Jssor$.$GetNow() & 0xFFFFFF)); + + return callback; + }; + + //var _Freeer; + //_This.$FreeElement = function (elmt) { + // if (!_Freeer) + // _Freeer = _This.$CreateDiv(); + + // if (elmt) { + // $Jssor$.$AppendChild(_Freeer, elmt); + // $Jssor$.$ClearInnerHtml(_Freeer); + // } + //}; + + _This.$InnerText = function (elmt, text) { + if (text == undefined) + return elmt.textContent || elmt.innerText; + + var textNode = document.createTextNode(text); + _This.$Empty(elmt); + elmt.appendChild(textNode); + }; + + _This.$InnerHtml = function (elmt, html) { + if (html == undefined) + return elmt.innerHTML; + + elmt.innerHTML = html; + }; + + _This.$GetClientRect = function (elmt) { + var rect = elmt.getBoundingClientRect(); + + return { x: rect.left, y: rect.top, w: rect.right - rect.left, h: rect.bottom - rect.top }; + }; + + _This.$ClearInnerHtml = function (elmt) { + elmt.innerHTML = ""; + }; + + _This.$EncodeHtml = function (text) { + var div = _This.$CreateDiv(); + _This.$InnerText(div, text); + return _This.$InnerHtml(div); + }; + + _This.$DecodeHtml = function (html) { + var div = _This.$CreateDiv(); + _This.$InnerHtml(div, html); + return _This.$InnerText(div); + }; + + _This.$SelectElement = function (elmt) { + var userSelection; + if (window.getSelection) { + //W3C default + userSelection = window.getSelection(); + } + var theRange = null; + if (document.createRange) { + theRange = document.createRange(); + theRange.selectNode(elmt); + } + else { + theRange = document.body.createTextRange(); + theRange.moveToElementText(elmt); + theRange.select(); + } + //set user selection + if (userSelection) + userSelection.addRange(theRange); + }; + + _This.$DeselectElements = function () { + if (document.selection) { + document.selection.empty(); + } else if (window.getSelection) { + window.getSelection().removeAllRanges(); + } + }; + + _This.$Children = function (elmt, includeAll) { + var children = []; + + for (var tmpEl = elmt.firstChild; tmpEl; tmpEl = tmpEl.nextSibling) { + if (includeAll || tmpEl.nodeType == 1) { + children.push(tmpEl); + } + } + + return children; + }; + + function FindChild(elmt, attrValue, noDeep, attrName) { + attrName = attrName || "u"; + + for (elmt = elmt ? elmt.firstChild : null; elmt; elmt = elmt.nextSibling) { + if (elmt.nodeType == 1) { + if (AttributeEx(elmt, attrName) == attrValue) + return elmt; + + if (!noDeep) { + var childRet = FindChild(elmt, attrValue, noDeep, attrName); + if (childRet) + return childRet; + } + } + } + } + + _This.$FindChild = FindChild; + + function FindChildren(elmt, attrValue, noDeep, attrName) { + attrName = attrName || "u"; + + var ret = []; + + for (elmt = elmt ? elmt.firstChild : null; elmt; elmt = elmt.nextSibling) { + if (elmt.nodeType == 1) { + if (AttributeEx(elmt, attrName) == attrValue) + ret.push(elmt); + + if (!noDeep) { + var childRet = FindChildren(elmt, attrValue, noDeep, attrName); + if (childRet.length) + ret = ret.concat(childRet); + } + } + } + + return ret; + } + + _This.$FindChildren = FindChildren; + + function FindChildByTag(elmt, tagName, noDeep) { + + for (elmt = elmt ? elmt.firstChild : null; elmt; elmt = elmt.nextSibling) { + if (elmt.nodeType == 1) { + if (elmt.tagName == tagName) + return elmt; + + if (!noDeep) { + var childRet = FindChildByTag(elmt, tagName, noDeep); + if (childRet) + return childRet; + } + } + } + } + + _This.$FindChildByTag = FindChildByTag; + + function FindChildrenByTag(elmt, tagName, noDeep) { + var ret = []; + + for (elmt = elmt ? elmt.firstChild : null; elmt; elmt = elmt.nextSibling) { + if (elmt.nodeType == 1) { + if (!tagName || elmt.tagName == tagName) + ret.push(elmt); + + if (!noDeep) { + var childRet = FindChildrenByTag(elmt, tagName, noDeep); + if (childRet.length) + ret = ret.concat(childRet); + } + } + } + + return ret; + } + + _This.$FindChildrenByTag = FindChildrenByTag; + + _This.$GetElementsByTag = function (elmt, tagName) { + return elmt.getElementsByTagName(tagName); + }; + + function Extend(target) { + for (var i = 1; i < arguments.length; i++) { + + var options = arguments[i]; + + // Only deal with non-null/undefined values + if (options) { + // Extend the base object + for (var name in options) { + target[name] = options[name]; + } + } + } + + // Return the modified object + return target; + } + + _This.$Extend = Extend; + + function Unextend(target, options) { + $JssorDebug$.$Assert(options); + + var unextended = {}; + + // Extend the base object + for (var name in target) { + if (target[name] !== options[name]) { + unextended[name] = target[name]; + } + } + + // Return the modified object + return unextended; + } + + _This.$Unextend = Unextend; + + _This.$IsUndefined = function (obj) { + return type(obj) == "undefined"; + }; + + _This.$IsFunction = function (obj) { + return type(obj) == "function"; + }; + + _This.$IsArray = function (obj) { + return type(obj) == "array"; + }; + + _This.$IsString = function (obj) { + return type(obj) == "string"; + }; + + _This.$IsNumeric = function (obj) { + return !isNaN(ParseFloat(obj)) && isFinite(obj); + }; + + _This.$IsWindow = function (obj) { + return obj && obj == obj.window; + }; + + _This.$Type = type; + + // args is for internal usage only + _This.$Each = each; + + _This.$IsPlainObject = isPlainObject; + + function CreateElement(tagName) { + return document.createElement(tagName); + } + + _This.$CreateElement = CreateElement; + + _This.$CreateDiv = function () { + return CreateElement("DIV", document); + }; + + _This.$CreateSpan = function () { + return CreateElement("SPAN", document); + }; + + _This.$EmptyFunction = function () { }; + + function Attribute(elmt, name, value) { + if (value == undefined) + return elmt.getAttribute(name); + + elmt.setAttribute(name, value); + } + + function AttributeEx(elmt, name) { + return Attribute(elmt, name) || Attribute(elmt, "data-" + name); + } + + _This.$Attribute = Attribute; + _This.$AttributeEx = AttributeEx; + + function ClassName(elmt, className) { + if (className == undefined) + return elmt.className; + + elmt.className = className; + } + + _This.$ClassName = ClassName; + + function ToHash(array) { + var hash = {}; + + each(array, function (item) { + hash[item] = item; + }); + + return hash; + } + + _This.$ToHash = ToHash; + + function Join(separator, strings) { + /// + /// The element to show the dialog around + /// + /// + /// The element to show the dialog around + /// + + var joined = ""; + + each(strings, function (str) { + joined && (joined += separator); + joined += str; + }); + + return joined; + } + + _This.$Join = Join; + + _This.$AddClass = function (elmt, className) { + var newClassName = ClassName(elmt) + " " + className; + ClassName(elmt, Join(" ", ToHash(newClassName.match(REGEX_WHITESPACE_GLOBAL)))); + }; + + _This.$RemoveClass = function (elmt, className) { + ClassName(elmt, Join(" ", _This.$Unextend(ToHash(ClassName(elmt).match(REGEX_WHITESPACE_GLOBAL)), ToHash(className.match(REGEX_WHITESPACE_GLOBAL))))); + }; + + _This.$ParentNode = function (elmt) { + return elmt.parentNode; + }; + + _This.$HideElement = function (elmt) { + _This.$CssDisplay(elmt, "none"); + }; + + _This.$EnableElement = function (elmt, notEnable) { + if (notEnable) { + _This.$Attribute(elmt, "disabled", true); + } + else { + _This.$RemoveAttribute(elmt, "disabled"); + } + }; + + _This.$HideElements = function (elmts) { + for (var i = 0; i < elmts.length; i++) { + _This.$HideElement(elmts[i]); + } + }; + + _This.$ShowElement = function (elmt, hide) { + _This.$CssDisplay(elmt, hide ? "none" : ""); + }; + + _This.$ShowElements = function (elmts, hide) { + for (var i = 0; i < elmts.length; i++) { + _This.$ShowElement(elmts[i], hide); + } + }; + + _This.$RemoveAttribute = function (elmt, attrbuteName) { + elmt.removeAttribute(attrbuteName); + }; + + _This.$CanClearClip = function () { + return IsBrowserIE() && _BrowserRuntimeVersion < 10; + }; + + _This.$SetStyleClip = function (elmt, clip) { + if (clip) { + elmt.style.clip = "rect(" + Math.round(clip.$Top) + "px " + Math.round(clip.$Right) + "px " + Math.round(clip.$Bottom) + "px " + Math.round(clip.$Left) + "px)"; + } + else { + var cssText = elmt.style.cssText; + var clipRegs = [ + new RegExp(/[\s]*clip: rect\(.*?\)[;]?/i), + new RegExp(/[\s]*cliptop: .*?[;]?/i), + new RegExp(/[\s]*clipright: .*?[;]?/i), + new RegExp(/[\s]*clipbottom: .*?[;]?/i), + new RegExp(/[\s]*clipleft: .*?[;]?/i) + ]; + + var newCssText = BuildNewCss(cssText, clipRegs, ""); + + $Jssor$.$CssCssText(elmt, newCssText); + } + }; + + _This.$GetNow = function () { + return new Date().getTime(); + }; + + _This.$AppendChild = function (elmt, child) { + elmt.appendChild(child); + }; + + _This.$AppendChildren = function (elmt, children) { + each(children, function (child) { + _This.$AppendChild(elmt, child); + }); + }; + + _This.$InsertBefore = function (newNode, refNode, pNode) { + /// + /// Insert a node before a reference node + /// + /// + /// A new node to insert + /// + /// + /// The reference node to insert a new node before + /// + /// + /// The parent node to insert node to + /// + + (pNode || refNode.parentNode).insertBefore(newNode, refNode); + }; + + _This.$InsertAfter = function (newNode, refNode, pNode) { + /// + /// Insert a node after a reference node + /// + /// + /// A new node to insert + /// + /// + /// The reference node to insert a new node after + /// + /// + /// The parent node to insert node to + /// + + _This.$InsertBefore(newNode, refNode.nextSibling, pNode || refNode.parentNode); + }; + + _This.$InsertAdjacentHtml = function (elmt, where, text) { + elmt.insertAdjacentHTML(where, text); + }; + + _This.$RemoveElement = function (elmt, pNode) { + /// + /// Remove element from parent node + /// + /// + /// The element to remove + /// + /// + /// The parent node to remove elment from + /// + (pNode || elmt.parentNode).removeChild(elmt); + }; + + _This.$RemoveElements = function (elmts, pNode) { + each(elmts, function (elmt) { + _This.$RemoveElement(elmt, pNode); + }); + }; + + _This.$Empty = function (elmt) { + _This.$RemoveElements(_This.$Children(elmt, true), elmt); + }; + + _This.$ParseInt = function (str, radix) { + return parseInt(str, radix || 10); + }; + + var ParseFloat = parseFloat; + + _This.$ParseFloat = ParseFloat; + + _This.$IsChild = function (elmtA, elmtB) { + var body = document.body; + + while (elmtB && elmtA !== elmtB && body !== elmtB) { + try { + elmtB = elmtB.parentNode; + } catch (e) { + // Firefox sometimes fires events for XUL elements, which throws + // a "permission denied" error. so this is not a child. + return false; + } + } + + return elmtA === elmtB; + }; + + function CloneNode(elmt, noDeep, keepId) { + var clone = elmt.cloneNode(!noDeep); + if (!keepId) { + _This.$RemoveAttribute(clone, "id"); + } + + return clone; + } + + _This.$CloneNode = CloneNode; + + //function TranslateTransition(transition) { + // if (transition) { + // var flyDirection = transition.$FlyDirection; + + // if (flyDirection & 1) { + // transition.x = transition.$ScaleHorizontal || 1; + // } + // if (flyDirection & 2) { + // transition.x = -transition.$ScaleHorizontal || -1; + // } + // if (flyDirection & 4) { + // transition.y = transition.$ScaleVertical || 1; + // } + // if (flyDirection & 8) { + // transition.y = -transition.$ScaleVertical || -1; + // } + + // if (transition.$Rotate == true) + // transition.$Rotate = 1; + + // TranslateTransition(transition.$Brother); + // } + //} + + //_This.$TranslateTransitions = function (transitions) { + // /// + // /// For backward compatibility only. + // /// + // if (transitions) { + // for (var i = 0; i < transitions.length; i++) { + // TranslateTransition(transitions[i]); + // } + // for (var name in transitions) { + // TranslateTransition(transitions[name]); + // } + // } + //}; + + //function ImageLoader() { + // var _ThisImageLoader = this; + // var _BaseImageLoader = _This.$Inherit(_ThisImageLoader, $JssorObject$); + + // var _ImageLoading = 1; + // var _MainImageSrc; + // var _MainImage; + // var _CompleteCallback; + // var _MainImageAbort; + + // function LoadCompleteCallback(image, abort) { + // _ImageLoading--; + + // if (image) { + // _This.$RemoveEvent(image, "load"); + // _This.$RemoveEvent(image, "abort"); + // _This.$RemoveEvent(image, "error"); + + // if (_MainImageSrc == image.src) { + // _MainImage = image; + // _MainImageAbort = abort; + // } + // } + + // _CompleteCallback && _CompleteCallback(_MainImage, _MainImageAbort); + // } + + // function LoadImage(src) { + // _ImageLoading++; + + // if (IsBrowserOpera() && _BrowserRuntimeVersion < 11.6 || !src) { + // LoadImageCallback(callback, null, !src); + // } + // else { + // var image = new Image(); + + // _This.$AddEvent(image, "load", _This.$CreateCallback(null, LoadImageCallback, image, false)); + + // var abortHandler = _This.$CreateCallback(null, LoadImageCallback, image, true); + // _This.$AddEvent(image, "abort", abortHandler); + // _This.$AddEvent(image, "error", abortHandler); + + // image.src = src; + // } + // } + + // _ThisImageLoader.$LoadImage = function (src, callback) { + // _MainImageSrc = src; + // _CompleteCallback = callback; + + // LoadImage(src); + // LoadComplete(); + // }; + + // _ThisImageLoader.$LoadImages = function (imageElmts, mainImageElmt, callback) { + // mainImageElmt && (_MainImageSrc = mainImageElmt.src); + // _CompleteCallback = callback; + + // each(imageElmts, function (imageElmt) { + // LoadImage(imageElmt.src); + // }); + // LoadComplete(); + // }; + //} + + _This.$LoadImage = function (src, callback) { + var image = new Image(); + + function LoadImageCompleteHandler(event, abort) { + _This.$RemoveEvent(image, "load", LoadImageCompleteHandler); + _This.$RemoveEvent(image, "abort", ErrorOrAbortHandler); + _This.$RemoveEvent(image, "error", ErrorOrAbortHandler); + + if (callback) + callback(image, abort); + } + + function ErrorOrAbortHandler(event) { + LoadImageCompleteHandler(event, true); + } + + if (IsBrowserOpera() && _BrowserRuntimeVersion < 11.6 || !src) { + LoadImageCompleteHandler(!src); + } + else { + + _This.$AddEvent(image, "load", LoadImageCompleteHandler); + _This.$AddEvent(image, "abort", ErrorOrAbortHandler); + _This.$AddEvent(image, "error", ErrorOrAbortHandler); + + image.src = src; + } + }; + + _This.$LoadImages = function (imageElmts, mainImageElmt, callback) { + + var _ImageLoading = imageElmts.length + 1; + + function LoadImageCompleteEventHandler(image, abort) { + + _ImageLoading--; + if (mainImageElmt && image && image.src == mainImageElmt.src) + mainImageElmt = image; + !_ImageLoading && callback && callback(mainImageElmt); + } + + each(imageElmts, function (imageElmt) { + _This.$LoadImage(imageElmt.src, LoadImageCompleteEventHandler); + }); + + LoadImageCompleteEventHandler(); + }; + + _This.$BuildElement = function (template, tagName, replacer, createCopy) { + if (createCopy) + template = CloneNode(template); + + var templateHolders = FindChildren(template, tagName); + if (!templateHolders.length) + templateHolders = $Jssor$.$GetElementsByTag(template, tagName); + + for (var j = templateHolders.length - 1; j > -1; j--) { + var templateHolder = templateHolders[j]; + var replaceItem = CloneNode(replacer); + ClassName(replaceItem, ClassName(templateHolder)); + $Jssor$.$CssCssText(replaceItem, templateHolder.style.cssText); + + $Jssor$.$InsertBefore(replaceItem, templateHolder); + $Jssor$.$RemoveElement(templateHolder); + } + + return template; + }; + + function JssorButtonEx(elmt) { + var _Self = this; + + var _OriginClassName; + + var _IsMouseDown; //class name 'dn' + var _IsSelected; //class name 1(active): 'av', 2(passive): 'pv' + var _IsDisabled; //class name 'ds' + + function Highlight() { + var className = _OriginClassName; + + if (_IsDisabled) { + className += 'ds'; + } + else if (_IsMouseDown) { + className += 'dn'; + } + else if (_IsSelected == 2) { + className += "pv"; + } + else if (_IsSelected) { + className += "av"; + } + + ClassName(elmt, className); + } + + function MouseUpOrCancelEventHandler(event) { + _IsMouseDown = false; + + Highlight(); + + _This.$RemoveEvent(document, Device().$Evt_Up, MouseUpOrCancelEventHandler); + Device().$Evt_Cancel && _This.$RemoveEvent(document, Device().$Evt_Cancel, MouseUpOrCancelEventHandler); + } + + function MouseDownEventHandler(event) { + if (_IsDisabled) { + _This.$CancelEvent(event); + } + else { + + _IsMouseDown = true; + + Highlight(); + + _This.$AddEvent(document, Device().$Evt_Up, MouseUpOrCancelEventHandler); + Device().$Evt_Cancel && _This.$AddEvent(document, Device().$Evt_Cancel, MouseUpOrCancelEventHandler); + } + } + + _Self.$Selected = function (activate) { + if (activate != undefined) { + _IsSelected = activate; + + Highlight(); + } + else { + return _IsSelected; + } + }; + + _Self.$Enable = function (enable) { + if (enable != undefined) { + _IsDisabled = !enable; + + Highlight(); + } + else { + return !_IsDisabled; + } + }; + + //JssorButtonEx Constructor + { + elmt = _This.$GetElement(elmt); + + _OriginClassName = ClassName(elmt); + + $Jssor$.$AddEvent(elmt, Device().$Evt_Down, MouseDownEventHandler); + } + } + + _This.$Buttonize = function (elmt) { + return new JssorButtonEx(elmt); + }; + + _This.$Css = Css; + _This.$CssN = CssN; + _This.$CssP = CssP; + + _This.$CssOverflow = CssProxy("overflow"); + + _This.$CssTop = CssProxy("top", 2); + _This.$CssLeft = CssProxy("left", 2); + _This.$CssWidth = CssProxy("width", 2); + _This.$CssHeight = CssProxy("height", 2); + _This.$CssMarginLeft = CssProxy("marginLeft", 2); + _This.$CssMarginTop = CssProxy("marginTop", 2); + _This.$CssPosition = CssProxy("position"); + _This.$CssDisplay = CssProxy("display"); + _This.$CssZIndex = CssProxy("zIndex", 1); + _This.$CssFloat = function (elmt, floatValue) { + return Css(elmt, IsBrowserIE() ? "styleFloat" : "cssFloat", floatValue); + }; + _This.$CssOpacity = function (elmt, opacity, ie9EarlierForce) { + if (opacity != undefined) { + SetStyleOpacity(elmt, opacity, ie9EarlierForce); + } + else { + return GetStyleOpacity(elmt); + } + }; + + _This.$CssCssText = function (elmt, text) { + if (text != undefined) { + elmt.style.cssText = text; + } + else { + return elmt.style.cssText; + } + }; + + var _StyleGetter = { + $Opacity: _This.$CssOpacity, + $Top: _This.$CssTop, + $Left: _This.$CssLeft, + $Width: _This.$CssWidth, + $Height: _This.$CssHeight, + $Position: _This.$CssPosition, + $Display: _This.$CssDisplay, + $ZIndex: _This.$CssZIndex + }; + + var _StyleSetterReserved; + + function StyleSetter() { + if (!_StyleSetterReserved) { + _StyleSetterReserved = Extend({ + $MarginTop: _This.$CssMarginTop, + $MarginLeft: _This.$CssMarginLeft, + $Clip: _This.$SetStyleClip, + $Transform: _This.$SetStyleTransform + }, _StyleGetter); + } + return _StyleSetterReserved; + } + + function StyleSetterEx() { + StyleSetter(); + + //For Compression Only + _StyleSetterReserved.$Transform = _StyleSetterReserved.$Transform; + + return _StyleSetterReserved; + } + + _This.$StyleSetter = StyleSetter; + + _This.$StyleSetterEx = StyleSetterEx; + + _This.$GetStyles = function (elmt, originStyles) { + StyleSetter(); + + var styles = {}; + + each(originStyles, function (value, key) { + if (_StyleGetter[key]) { + styles[key] = _StyleGetter[key](elmt); + } + }); + + return styles; + }; + + _This.$SetStyles = function (elmt, styles) { + var styleSetter = StyleSetter(); + + each(styles, function (value, key) { + styleSetter[key] && styleSetter[key](elmt, value); + }); + }; + + _This.$SetStylesEx = function (elmt, styles) { + StyleSetterEx(); + + _This.$SetStyles(elmt, styles); + }; + + var $JssorMatrix$ = new function () { + var _ThisMatrix = this; + + function Multiply(ma, mb) { + var acs = ma[0].length; + var rows = ma.length; + var cols = mb[0].length; + + var matrix = []; + + for (var r = 0; r < rows; r++) { + var row = matrix[r] = []; + for (var c = 0; c < cols; c++) { + var unitValue = 0; + + for (var ac = 0; ac < acs; ac++) { + unitValue += ma[r][ac] * mb[ac][c]; + } + + row[c] = unitValue; + } + } + + return matrix; + } + + _ThisMatrix.$ScaleX = function (matrix, sx) { + return _ThisMatrix.$ScaleXY(matrix, sx, 0); + }; + + _ThisMatrix.$ScaleY = function (matrix, sy) { + return _ThisMatrix.$ScaleXY(matrix, 0, sy); + }; + + _ThisMatrix.$ScaleXY = function (matrix, sx, sy) { + return Multiply(matrix, [[sx, 0], [0, sy]]); + }; + + _ThisMatrix.$TransformPoint = function (matrix, p) { + var pMatrix = Multiply(matrix, [[p.x], [p.y]]); + + return Point(pMatrix[0][0], pMatrix[1][0]); + }; + }; + + _This.$CreateMatrix = function (alpha, scaleX, scaleY) { + var cos = Math.cos(alpha); + var sin = Math.sin(alpha); + //var r11 = cos; + //var r21 = sin; + //var r12 = -sin; + //var r22 = cos; + + //var m11 = cos * scaleX; + //var m12 = -sin * scaleY; + //var m21 = sin * scaleX; + //var m22 = cos * scaleY; + + return [[cos * scaleX, -sin * scaleY], [sin * scaleX, cos * scaleY]]; + }; + + _This.$GetMatrixOffset = function (matrix, width, height) { + var p1 = $JssorMatrix$.$TransformPoint(matrix, Point(-width / 2, -height / 2)); + var p2 = $JssorMatrix$.$TransformPoint(matrix, Point(width / 2, -height / 2)); + var p3 = $JssorMatrix$.$TransformPoint(matrix, Point(width / 2, height / 2)); + var p4 = $JssorMatrix$.$TransformPoint(matrix, Point(-width / 2, height / 2)); + + return Point(Math.min(p1.x, p2.x, p3.x, p4.x) + width / 2, Math.min(p1.y, p2.y, p3.y, p4.y) + height / 2); + }; + + _This.$Cast = function (fromStyles, difStyles, interPosition, easings, durings, rounds, options) { + + var currentStyles = difStyles; + + if (fromStyles) { + currentStyles = {}; + + for (var key in difStyles) { + + var round = rounds[key] || 1; + var during = durings[key] || [0, 1]; + var propertyInterPosition = (interPosition - during[0]) / during[1]; + propertyInterPosition = Math.min(Math.max(propertyInterPosition, 0), 1); + propertyInterPosition = propertyInterPosition * round; + var floorPosition = Math.floor(propertyInterPosition); + if (propertyInterPosition != floorPosition) + propertyInterPosition -= floorPosition; + + var easing = easings[key] || easings.$Default || $JssorEasing$.$EaseSwing; + var easingValue = easing(propertyInterPosition); + var currentPropertyValue; + var value = fromStyles[key]; + var toValue = difStyles[key]; + var difValue = difStyles[key]; + + if ($Jssor$.$IsNumeric(difValue)) { + currentPropertyValue = value + difValue * easingValue; + } + else { + currentPropertyValue = $Jssor$.$Extend({ $Offset: {} }, fromStyles[key]); + + $Jssor$.$Each(difValue.$Offset, function (rectX, n) { + var offsetValue = rectX * easingValue; + currentPropertyValue.$Offset[n] = offsetValue; + currentPropertyValue[n] += offsetValue; + }); + } + currentStyles[key] = currentPropertyValue; + } + + if (difStyles.$Zoom || difStyles.$Rotate) { + currentStyles.$Transform = { $Rotate: currentStyles.$Rotate || 0, $Scale: currentStyles.$Zoom, $OriginalWidth: options.$OriginalWidth, $OriginalHeight: options.$OriginalHeight }; + } + } + + if (difStyles.$Clip && options.$Move) { + var styleFrameNClipOffset = currentStyles.$Clip.$Offset; + + var offsetY = (styleFrameNClipOffset.$Top || 0) + (styleFrameNClipOffset.$Bottom || 0); + var offsetX = (styleFrameNClipOffset.$Left || 0) + (styleFrameNClipOffset.$Right || 0); + + currentStyles.$Left = (currentStyles.$Left || 0) + offsetX; + currentStyles.$Top = (currentStyles.$Top || 0) + offsetY; + currentStyles.$Clip.$Left -= offsetX; + currentStyles.$Clip.$Right -= offsetX; + currentStyles.$Clip.$Top -= offsetY; + currentStyles.$Clip.$Bottom -= offsetY; + } + + if (currentStyles.$Clip && $Jssor$.$CanClearClip() && !currentStyles.$Clip.$Top && !currentStyles.$Clip.$Left && (currentStyles.$Clip.$Right == options.$OriginalWidth) && (currentStyles.$Clip.$Bottom == options.$OriginalHeight)) + currentStyles.$Clip = null; + + return currentStyles; + }; +}; + +//$JssorObject$ +function $JssorObject$() { + var _ThisObject = this; + // Fields + + var _Listeners = []; // dictionary of eventName --> array of handlers + var _Listenees = []; + + // Private Methods + function AddListener(eventName, handler) { + + $JssorDebug$.$Execute(function () { + if (eventName == undefined || eventName == null) + throw new Error("param 'eventName' is null or empty."); + + if (typeof (handler) != "function") { + throw "param 'handler' must be a function."; + } + + $Jssor$.$Each(_Listeners, function (listener) { + if (listener.$EventName == eventName && listener.$Handler === handler) { + throw new Error("The handler listened to the event already, cannot listen to the same event of the same object with the same handler twice."); + } + }); + }); + + _Listeners.push({ $EventName: eventName, $Handler: handler }); + } + + function RemoveListener(eventName, handler) { + + $JssorDebug$.$Execute(function () { + if (eventName == undefined || eventName == null) + throw new Error("param 'eventName' is null or empty."); + + if (typeof (handler) != "function") { + throw "param 'handler' must be a function."; + } + }); + + $Jssor$.$Each(_Listeners, function (listener, index) { + if (listener.$EventName == eventName && listener.$Handler === handler) { + _Listeners.splice(index, 1); + } + }); + } + + function ClearListeners() { + _Listeners = []; + } + + function ClearListenees() { + + $Jssor$.$Each(_Listenees, function (listenee) { + $Jssor$.$RemoveEvent(listenee.$Obj, listenee.$EventName, listenee.$Handler); + }); + + _Listenees = []; + } + + //Protected Methods + _ThisObject.$Listen = function (obj, eventName, handler, useCapture) { + + $JssorDebug$.$Execute(function () { + if (!obj) + throw new Error("param 'obj' is null or empty."); + + if (eventName == undefined || eventName == null) + throw new Error("param 'eventName' is null or empty."); + + if (typeof (handler) != "function") { + throw "param 'handler' must be a function."; + } + + $Jssor$.$Each(_Listenees, function (listenee) { + if (listenee.$Obj === obj && listenee.$EventName == eventName && listenee.$Handler === handler) { + throw new Error("The handler listened to the event already, cannot listen to the same event of the same object with the same handler twice."); + } + }); + }); + + $Jssor$.$AddEvent(obj, eventName, handler, useCapture); + _Listenees.push({ $Obj: obj, $EventName: eventName, $Handler: handler }); + }; + + _ThisObject.$Unlisten = function (obj, eventName, handler) { + + $JssorDebug$.$Execute(function () { + if (!obj) + throw new Error("param 'obj' is null or empty."); + + if (eventName == undefined || eventName == null) + throw new Error("param 'eventName' is null or empty."); + + if (typeof (handler) != "function") { + throw "param 'handler' must be a function."; + } + }); + + $Jssor$.$Each(_Listenees, function (listenee, index) { + if (listenee.$Obj === obj && listenee.$EventName == eventName && listenee.$Handler === handler) { + $Jssor$.$RemoveEvent(obj, eventName, handler); + _Listenees.splice(index, 1); + } + }); + }; + + _ThisObject.$UnlistenAll = ClearListenees; + + // Public Methods + _ThisObject.$On = _ThisObject.addEventListener = AddListener; + + _ThisObject.$Off = _ThisObject.removeEventListener = RemoveListener; + + _ThisObject.$TriggerEvent = function (eventName) { + + var args = [].slice.call(arguments, 1); + + $Jssor$.$Each(_Listeners, function (listener) { + listener.$EventName == eventName && listener.$Handler.apply(window, args); + }); + }; + + _ThisObject.$Destroy = function () { + ClearListenees(); + ClearListeners(); + + for (var name in _ThisObject) + delete _ThisObject[name]; + }; + + $JssorDebug$.$C_AbstractClass(_ThisObject); +}; + +function $JssorAnimator$(delay, duration, options, elmt, fromStyles, difStyles) { + delay = delay || 0; + + var _ThisAnimator = this; + var _AutoPlay; + var _Hiden; + var _CombineMode; + var _PlayToPosition; + var _PlayDirection; + var _NoStop; + var _TimeStampLastFrame = 0; + + var _SubEasings; + var _SubRounds; + var _SubDurings; + var _Callback; + + var _Shift = 0; + var _Position_Current = 0; + var _Position_Display = 0; + var _Hooked; + + var _Position_InnerBegin = delay; + var _Position_InnerEnd = delay + duration; + var _Position_OuterBegin; + var _Position_OuterEnd; + var _LoopLength; + + var _NestedAnimators = []; + var _StyleSetter; + + function GetPositionRange(position, begin, end) { + var range = 0; + + if (position < begin) + range = -1; + + else if (position > end) + range = 1; + + return range; + } + + function GetInnerPositionRange(position) { + return GetPositionRange(position, _Position_InnerBegin, _Position_InnerEnd); + } + + function GetOuterPositionRange(position) { + return GetPositionRange(position, _Position_OuterBegin, _Position_OuterEnd); + } + + function Shift(offset) { + _Position_OuterBegin += offset; + _Position_OuterEnd += offset; + _Position_InnerBegin += offset; + _Position_InnerEnd += offset; + + _Position_Current += offset; + _Position_Display += offset; + + _Shift = offset; + } + + function Locate(position, relative) { + var offset = position - _Position_OuterBegin + delay * relative; + + Shift(offset); + + //$JssorDebug$.$Execute(function () { + // _ThisAnimator.$Position_InnerBegin = _Position_InnerBegin; + // _ThisAnimator.$Position_InnerEnd = _Position_InnerEnd; + // _ThisAnimator.$Position_OuterBegin = _Position_OuterBegin; + // _ThisAnimator.$Position_OuterEnd = _Position_OuterEnd; + //}); + + return _Position_OuterEnd; + } + + function GoToPosition(positionOuter, force) { + var trimedPositionOuter = positionOuter; + + if (_LoopLength && (trimedPositionOuter >= _Position_OuterEnd || trimedPositionOuter <= _Position_OuterBegin)) { + trimedPositionOuter = ((trimedPositionOuter - _Position_OuterBegin) % _LoopLength + _LoopLength) % _LoopLength + _Position_OuterBegin; + } + + if (!_Hooked || _NoStop || force || _Position_Current != trimedPositionOuter) { + + var positionToDisplay = Math.min(trimedPositionOuter, _Position_OuterEnd); + positionToDisplay = Math.max(positionToDisplay, _Position_OuterBegin); + + if (!_Hooked || _NoStop || force || positionToDisplay != _Position_Display) { + if (difStyles) { + + var interPosition = (positionToDisplay - _Position_InnerBegin) / (duration || 1); + + if (options.$Reverse) + interPosition = 1 - interPosition; + + var currentStyles = $Jssor$.$Cast(fromStyles, difStyles, interPosition, _SubEasings, _SubDurings, _SubRounds, options); + + $Jssor$.$Each(currentStyles, function (value, key) { + _StyleSetter[key] && _StyleSetter[key](elmt, value); + }); + } + + _ThisAnimator.$OnInnerOffsetChange(_Position_Display - _Position_InnerBegin, positionToDisplay - _Position_InnerBegin); + } + + _Position_Display = positionToDisplay; + + $Jssor$.$Each(_NestedAnimators, function (animator, i) { + var nestedAnimator = positionOuter < _Position_Current ? _NestedAnimators[_NestedAnimators.length - i - 1] : animator; + nestedAnimator.$GoToPosition(positionOuter - _Shift, force); + }); + + var positionOld = _Position_Current; + var positionNew = positionOuter; + + _Position_Current = trimedPositionOuter; + _Hooked = true; + + _ThisAnimator.$OnPositionChange(positionOld, positionNew); + } + } + + function Join(animator, combineMode, noExpand) { + /// + /// Combine another animator as nested animator + /// + /// + /// An instance of $JssorAnimator$ + /// + /// + /// 0: parallel - place the animator parallel to this animator. + /// 1: chain - chain the animator at the _Position_InnerEnd of this animator. + /// + $JssorDebug$.$Execute(function () { + if (combineMode !== 0 && combineMode !== 1) + $JssorDebug$.$Fail("Argument out of range, the value of 'combineMode' should be either 0 or 1."); + }); + + if (combineMode) + animator.$Locate(_Position_OuterEnd, 1); + + !noExpand && (_Position_OuterEnd = Math.max(_Position_OuterEnd, animator.$GetPosition_OuterEnd() + _Shift)); + _NestedAnimators.push(animator); + } + + var RequestAnimationFrame = window.requestAnimationFrame + || window.webkitRequestAnimationFrame + || window.mozRequestAnimationFrame + || window.msRequestAnimationFrame; + + if ($Jssor$.$IsBrowserSafari() && $Jssor$.$BrowserVersion() < 7) { + RequestAnimationFrame = null; + + $JssorDebug$.$Log("Custom animation frame for safari before 7."); + } + + RequestAnimationFrame = RequestAnimationFrame || function (callback) { + $Jssor$.$Delay(callback, options.$Interval); + }; + + function ShowFrame() { + if (_AutoPlay) { + var now = $Jssor$.$GetNow(); + var timeOffset = Math.min(now - _TimeStampLastFrame, options.$IntervalMax); + var timePosition = _Position_Current + timeOffset * _PlayDirection; + _TimeStampLastFrame = now; + + if (timePosition * _PlayDirection >= _PlayToPosition * _PlayDirection) + timePosition = _PlayToPosition; + + GoToPosition(timePosition); + + if (!_NoStop && timePosition * _PlayDirection >= _PlayToPosition * _PlayDirection) { + Stop(_Callback); + } + else { + RequestAnimationFrame(ShowFrame); + } + } + } + + function PlayToPosition(toPosition, callback, noStop) { + if (!_AutoPlay) { + _AutoPlay = true; + _NoStop = noStop + _Callback = callback; + toPosition = Math.max(toPosition, _Position_OuterBegin); + toPosition = Math.min(toPosition, _Position_OuterEnd); + _PlayToPosition = toPosition; + _PlayDirection = _PlayToPosition < _Position_Current ? -1 : 1; + _ThisAnimator.$OnStart(); + _TimeStampLastFrame = $Jssor$.$GetNow(); + RequestAnimationFrame(ShowFrame); + } + } + + function Stop(callback) { + if (_AutoPlay) { + _NoStop = _AutoPlay = _Callback = false; + _ThisAnimator.$OnStop(); + + if (callback) + callback(); + } + } + + _ThisAnimator.$Play = function (positionLength, callback, noStop) { + PlayToPosition(positionLength ? _Position_Current + positionLength : _Position_OuterEnd, callback, noStop); + }; + + _ThisAnimator.$PlayToPosition = PlayToPosition; + + _ThisAnimator.$PlayToBegin = function (callback, noStop) { + PlayToPosition(_Position_OuterBegin, callback, noStop); + }; + + _ThisAnimator.$PlayToEnd = function (callback, noStop) { + PlayToPosition(_Position_OuterEnd, callback, noStop); + }; + + _ThisAnimator.$Stop = Stop; + + _ThisAnimator.$Continue = function (toPosition) { + PlayToPosition(toPosition); + }; + + _ThisAnimator.$GetPosition = function () { + return _Position_Current; + }; + + _ThisAnimator.$GetPlayToPosition = function () { + return _PlayToPosition; + }; + + _ThisAnimator.$GetPosition_Display = function () { + return _Position_Display; + }; + + _ThisAnimator.$GoToPosition = GoToPosition; + + _ThisAnimator.$GoToBegin = function () { + GoToPosition(_Position_OuterBegin, true); + }; + + _ThisAnimator.$GoToEnd = function () { + GoToPosition(_Position_OuterEnd, true); + }; + + _ThisAnimator.$Move = function (offset) { + GoToPosition(_Position_Current + offset); + }; + + _ThisAnimator.$CombineMode = function () { + return _CombineMode; + }; + + _ThisAnimator.$GetDuration = function () { + return duration; + }; + + _ThisAnimator.$IsPlaying = function () { + return _AutoPlay; + }; + + _ThisAnimator.$IsOnTheWay = function () { + return _Position_Current > _Position_InnerBegin && _Position_Current <= _Position_InnerEnd; + }; + + _ThisAnimator.$SetLoopLength = function (length) { + _LoopLength = length; + }; + + _ThisAnimator.$Locate = Locate; + + _ThisAnimator.$Shift = Shift; + + _ThisAnimator.$Join = Join; + + _ThisAnimator.$Combine = function (animator) { + /// + /// Combine another animator parallel to this animator + /// + /// + /// An instance of $JssorAnimator$ + /// + Join(animator, 0); + }; + + _ThisAnimator.$Chain = function (animator) { + /// + /// Chain another animator at the _Position_InnerEnd of this animator + /// + /// + /// An instance of $JssorAnimator$ + /// + Join(animator, 1); + }; + + _ThisAnimator.$GetPosition_InnerBegin = function () { + /// + /// Internal member function, do not use it. + /// + /// + /// + return _Position_InnerBegin; + }; + + _ThisAnimator.$GetPosition_InnerEnd = function () { + /// + /// Internal member function, do not use it. + /// + /// + /// + return _Position_InnerEnd; + }; + + _ThisAnimator.$GetPosition_OuterBegin = function () { + /// + /// Internal member function, do not use it. + /// + /// + /// + return _Position_OuterBegin; + }; + + _ThisAnimator.$GetPosition_OuterEnd = function () { + /// + /// Internal member function, do not use it. + /// + /// + /// + return _Position_OuterEnd; + }; + + _ThisAnimator.$OnPositionChange = _ThisAnimator.$OnStart = _ThisAnimator.$OnStop = _ThisAnimator.$OnInnerOffsetChange = $Jssor$.$EmptyFunction; + _ThisAnimator.$Version = $Jssor$.$GetNow(); + + //Constructor 1 + { + options = $Jssor$.$Extend({ + $Interval: 16, + $IntervalMax: 50 + }, options); + + //Sodo statement, for development time intellisence only + $JssorDebug$.$Execute(function () { + options = $Jssor$.$Extend({ + $LoopLength: undefined, + $Setter: undefined, + $Easing: undefined + }, options); + }); + + _LoopLength = options.$LoopLength; + + _StyleSetter = $Jssor$.$Extend({}, $Jssor$.$StyleSetter(), options.$Setter); + + _Position_OuterBegin = _Position_InnerBegin = delay; + _Position_OuterEnd = _Position_InnerEnd = delay + duration; + + _SubRounds = options.$Round || {}; + _SubDurings = options.$During || {}; + _SubEasings = $Jssor$.$Extend({ $Default: $Jssor$.$IsFunction(options.$Easing) && options.$Easing || $JssorEasing$.$EaseSwing }, options.$Easing); + } +}; + +function $JssorPlayerClass$() { + + var _ThisPlayer = this; + var _PlayerControllers = []; + + function PlayerController(playerElement) { + var _SelfPlayerController = this; + var _PlayerInstance; + var _PlayerInstantces = []; + + function OnPlayerInstanceDataAvailable(event) { + var srcElement = $Jssor$.$EventSrc(event); + _PlayerInstance = srcElement.pInstance; + + $Jssor$.$RemoveEvent(srcElement, "dataavailable", OnPlayerInstanceDataAvailable); + $Jssor$.$Each(_PlayerInstantces, function (playerInstance) { + if (playerInstance != _PlayerInstance) { + playerInstance.$Remove(); + } + }); + + playerElement.pTagName = _PlayerInstance.tagName; + _PlayerInstantces = null; + } + + function HandlePlayerInstance(playerInstanceElement) { + var playerHandler; + + if (!playerInstanceElement.pInstance) { + var playerHandlerAttribute = $Jssor$.$AttributeEx(playerInstanceElement, "pHandler"); + + if ($JssorPlayer$[playerHandlerAttribute]) { + $Jssor$.$AddEvent(playerInstanceElement, "dataavailable", OnPlayerInstanceDataAvailable); + playerHandler = new $JssorPlayer$[playerHandlerAttribute](playerElement, playerInstanceElement); + _PlayerInstantces.push(playerHandler); + + $JssorDebug$.$Execute(function () { + if ($Jssor$.$Type(playerHandler.$Remove) != "function") { + $JssorDebug$.$Fail("'pRemove' interface not implemented for player handler '" + playerHandlerAttribute + "'."); + } + }); + } + } + + return playerHandler; + } + + _SelfPlayerController.$InitPlayerController = function () { + if (!playerElement.pInstance && !HandlePlayerInstance(playerElement)) { + + var playerInstanceElements = $Jssor$.$Children(playerElement); + + $Jssor$.$Each(playerInstanceElements, function (playerInstanceElement) { + HandlePlayerInstance(playerInstanceElement); + }); + } + }; + } + + _ThisPlayer.$EVT_SWITCH = 21; + + _ThisPlayer.$FetchPlayers = function (elmt) { + elmt = elmt || document.body; + + var playerElements = $Jssor$.$FindChildren(elmt, "player"); + + $Jssor$.$Each(playerElements, function (playerElement) { + if (!_PlayerControllers[playerElement.pId]) { + playerElement.pId = _PlayerControllers.length; + _PlayerControllers.push(new PlayerController(playerElement)); + } + var playerController = _PlayerControllers[playerElement.pId]; + playerController.$InitPlayerController(); + }); + }; +} \ No newline at end of file diff --git a/spree_theme/app/assets/javascripts/jssor.19/jssor.slider.js b/spree_theme/app/assets/javascripts/jssor.19/jssor.slider.js new file mode 100644 index 00000000..44f668a4 --- /dev/null +++ b/spree_theme/app/assets/javascripts/jssor.19/jssor.slider.js @@ -0,0 +1,4169 @@ +/// + +/* +* Jssor.Slider 19.0 +* http://www.jssor.com/ +* +* Licensed under the MIT license: +* http://www.opensource.org/licenses/MIT +* +* TERMS OF USE - Jssor.Slider +* +* Copyright 2014 Jssor +* +* Permission is hereby granted, free of charge, to any person obtaining +* a copy of this software and associated documentation files (the +* "Software"), to deal in the Software without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to +* permit persons to whom the Software is furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be +* included in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + + +var $JssorSlideshowFormations$ = window.$JssorSlideshowFormations$ = new function () { + var _This = this; + + //Constants +++++++ + + var COLUMN_INCREASE = 0; + var COLUMN_DECREASE = 1; + var ROW_INCREASE = 2; + var ROW_DECREASE = 3; + + var DIRECTION_HORIZONTAL = 0x0003; + var DIRECTION_VERTICAL = 0x000C; + + var TO_LEFT = 0x0001; + var TO_RIGHT = 0x0002; + var TO_TOP = 0x0004; + var TO_BOTTOM = 0x0008; + + var FROM_LEFT = 0x0100; + var FROM_TOP = 0x0200; + var FROM_RIGHT = 0x0400; + var FROM_BOTTOM = 0x0800; + + var ASSEMBLY_BOTTOM_LEFT = FROM_BOTTOM + TO_LEFT; + var ASSEMBLY_BOTTOM_RIGHT = FROM_BOTTOM + TO_RIGHT; + var ASSEMBLY_TOP_LEFT = FROM_TOP + TO_LEFT; + var ASSEMBLY_TOP_RIGHT = FROM_TOP + TO_RIGHT; + var ASSEMBLY_LEFT_TOP = FROM_LEFT + TO_TOP; + var ASSEMBLY_LEFT_BOTTOM = FROM_LEFT + TO_BOTTOM; + var ASSEMBLY_RIGHT_TOP = FROM_RIGHT + TO_TOP; + var ASSEMBLY_RIGHT_BOTTOM = FROM_RIGHT + TO_BOTTOM; + + //Constants ------- + + //Formation Definition +++++++ + function isToLeft(roadValue) { + return (roadValue & TO_LEFT) == TO_LEFT; + } + + function isToRight(roadValue) { + return (roadValue & TO_RIGHT) == TO_RIGHT; + } + + function isToTop(roadValue) { + return (roadValue & TO_TOP) == TO_TOP; + } + + function isToBottom(roadValue) { + return (roadValue & TO_BOTTOM) == TO_BOTTOM; + } + + function PushFormationOrder(arr, order, formationItem) { + formationItem.push(order); + arr[order] = arr[order] || []; + arr[order].push(formationItem); + } + + _This.$FormationStraight = function (transition) { + var cols = transition.$Cols; + var rows = transition.$Rows; + var formationDirection = transition.$Assembly; + var count = transition.$Count; + var a = []; + var i = 0; + var col = 0; + var r = 0; + var cl = cols - 1; + var rl = rows - 1; + var il = count - 1; + var cr; + var order; + for (r = 0; r < rows; r++) { + for (col = 0; col < cols; col++) { + cr = r + ',' + col; + switch (formationDirection) { + case ASSEMBLY_BOTTOM_LEFT: + order = il - (col * rows + (rl - r)); + break; + case ASSEMBLY_RIGHT_TOP: + order = il - (r * cols + (cl - col)); + break; + case ASSEMBLY_TOP_LEFT: + order = il - (col * rows + r); + case ASSEMBLY_LEFT_TOP: + order = il - (r * cols + col); + break; + case ASSEMBLY_BOTTOM_RIGHT: + order = col * rows + r; + break; + case ASSEMBLY_LEFT_BOTTOM: + order = r * cols + (cl - col); + break; + case ASSEMBLY_TOP_RIGHT: + order = col * rows + (rl - r); + break; + default: + order = r * cols + col; + break; //ASSEMBLY_RIGHT_BOTTOM + } + PushFormationOrder(a, order, [r, col]); + } + } + + return a; + }; + + _This.$FormationSwirl = function (transition) { + var cols = transition.$Cols; + var rows = transition.$Rows; + var formationDirection = transition.$Assembly; + var count = transition.$Count; + var a = []; + var hit = []; + var i = 0; + var col = 0; + var r = 0; + var cl = cols - 1; + var rl = rows - 1; + var il = count - 1; + var cr; + var courses; + var course = 0; + switch (formationDirection) { + case ASSEMBLY_BOTTOM_LEFT: + col = cl; + r = 0; + courses = [ROW_INCREASE, COLUMN_DECREASE, ROW_DECREASE, COLUMN_INCREASE]; + break; + case ASSEMBLY_RIGHT_TOP: + col = 0; + r = rl; + courses = [COLUMN_INCREASE, ROW_DECREASE, COLUMN_DECREASE, ROW_INCREASE]; + break; + case ASSEMBLY_TOP_LEFT: + col = cl; + r = rl; + courses = [ROW_DECREASE, COLUMN_DECREASE, ROW_INCREASE, COLUMN_INCREASE]; + break; + case ASSEMBLY_LEFT_TOP: + col = cl; + r = rl; + courses = [COLUMN_DECREASE, ROW_DECREASE, COLUMN_INCREASE, ROW_INCREASE]; + break; + case ASSEMBLY_BOTTOM_RIGHT: + col = 0; + r = 0; + courses = [ROW_INCREASE, COLUMN_INCREASE, ROW_DECREASE, COLUMN_DECREASE]; + break; + case ASSEMBLY_LEFT_BOTTOM: + col = cl; + r = 0; + courses = [COLUMN_DECREASE, ROW_INCREASE, COLUMN_INCREASE, ROW_DECREASE]; + break; + case ASSEMBLY_TOP_RIGHT: + col = 0; + r = rl; + courses = [ROW_DECREASE, COLUMN_INCREASE, ROW_INCREASE, COLUMN_DECREASE]; + break; + default: + col = 0; + r = 0; + courses = [COLUMN_INCREASE, ROW_INCREASE, COLUMN_DECREASE, ROW_DECREASE]; + break; //ASSEMBLY_RIGHT_BOTTOM + } + i = 0; + while (i < count) { + cr = r + ',' + col; + if (col >= 0 && col < cols && r >= 0 && r < rows && !hit[cr]) { + //a[cr] = i++; + hit[cr] = true; + PushFormationOrder(a, i++, [r, col]); + } + else { + switch (courses[course++ % courses.length]) { + case COLUMN_INCREASE: + col--; + break; + case ROW_INCREASE: + r--; + break; + case COLUMN_DECREASE: + col++; + break; + case ROW_DECREASE: + r++; + break; + } + } + + switch (courses[course % courses.length]) { + case COLUMN_INCREASE: + col++; + break; + case ROW_INCREASE: + r++; + break; + case COLUMN_DECREASE: + col--; + break; + case ROW_DECREASE: + r--; + break; + } + } + return a; + }; + + _This.$FormationZigZag = function (transition) { + var cols = transition.$Cols; + var rows = transition.$Rows; + var formationDirection = transition.$Assembly; + var count = transition.$Count; + var a = []; + var i = 0; + var col = 0; + var r = 0; + var cl = cols - 1; + var rl = rows - 1; + var il = count - 1; + var cr; + var courses; + var course = 0; + switch (formationDirection) { + case ASSEMBLY_BOTTOM_LEFT: + col = cl; + r = 0; + courses = [ROW_INCREASE, COLUMN_DECREASE, ROW_DECREASE, COLUMN_DECREASE]; + break; + case ASSEMBLY_RIGHT_TOP: + col = 0; + r = rl; + courses = [COLUMN_INCREASE, ROW_DECREASE, COLUMN_DECREASE, ROW_DECREASE]; + break; + case ASSEMBLY_TOP_LEFT: + col = cl; + r = rl; + courses = [ROW_DECREASE, COLUMN_DECREASE, ROW_INCREASE, COLUMN_DECREASE]; + break; + case ASSEMBLY_LEFT_TOP: + col = cl; + r = rl; + courses = [COLUMN_DECREASE, ROW_DECREASE, COLUMN_INCREASE, ROW_DECREASE]; + break; + case ASSEMBLY_BOTTOM_RIGHT: + col = 0; + r = 0; + courses = [ROW_INCREASE, COLUMN_INCREASE, ROW_DECREASE, COLUMN_INCREASE]; + break; + case ASSEMBLY_LEFT_BOTTOM: + col = cl; + r = 0; + courses = [COLUMN_DECREASE, ROW_INCREASE, COLUMN_INCREASE, ROW_INCREASE]; + break; + case ASSEMBLY_TOP_RIGHT: + col = 0; + r = rl; + courses = [ROW_DECREASE, COLUMN_INCREASE, ROW_INCREASE, COLUMN_INCREASE]; + break; + default: + col = 0; + r = 0; + courses = [COLUMN_INCREASE, ROW_INCREASE, COLUMN_DECREASE, ROW_INCREASE]; + break; //ASSEMBLY_RIGHT_BOTTOM + } + i = 0; + while (i < count) { + cr = r + ',' + col; + if (col >= 0 && col < cols && r >= 0 && r < rows && typeof (a[cr]) == 'undefined') { + PushFormationOrder(a, i++, [r, col]); + //a[cr] = i++; + switch (courses[course % courses.length]) { + case COLUMN_INCREASE: + col++; + break; + case ROW_INCREASE: + r++; + break; + case COLUMN_DECREASE: + col--; + break; + case ROW_DECREASE: + r--; + break; + } + } + else { + switch (courses[course++ % courses.length]) { + case COLUMN_INCREASE: + col--; + break; + case ROW_INCREASE: + r--; + break; + case COLUMN_DECREASE: + col++; + break; + case ROW_DECREASE: + r++; + break; + } + switch (courses[course++ % courses.length]) { + case COLUMN_INCREASE: + col++; + break; + case ROW_INCREASE: + r++; + break; + case COLUMN_DECREASE: + col--; + break; + case ROW_DECREASE: + r--; + break; + } + } + } + return a; + }; + + _This.$FormationStraightStairs = function (transition) { + var cols = transition.$Cols; + var rows = transition.$Rows; + var formationDirection = transition.$Assembly; + var count = transition.$Count; + var a = []; + var i = 0; + var col = 0; + var r = 0; + var cl = cols - 1; + var rl = rows - 1; + var il = count - 1; + var cr; + switch (formationDirection) { + case ASSEMBLY_BOTTOM_LEFT: + case ASSEMBLY_TOP_RIGHT: + case ASSEMBLY_TOP_LEFT: + case ASSEMBLY_BOTTOM_RIGHT: + var C = 0; + var R = 0; + break; + case ASSEMBLY_LEFT_BOTTOM: + case ASSEMBLY_RIGHT_TOP: + case ASSEMBLY_LEFT_TOP: + case ASSEMBLY_RIGHT_BOTTOM: + var C = cl; + var R = 0; + break; + default: + formationDirection = ASSEMBLY_RIGHT_BOTTOM; + var C = cl; + var R = 0; + break; + } + col = C; + r = R; + while (i < count) { + cr = r + ',' + col; + if (isToTop(formationDirection) || isToRight(formationDirection)) { + PushFormationOrder(a, il - i++, [r, col]); + //a[cr] = il - i++; + } + else { + PushFormationOrder(a, i++, [r, col]); + //a[cr] = i++; + } + switch (formationDirection) { + case ASSEMBLY_BOTTOM_LEFT: + case ASSEMBLY_TOP_RIGHT: + col--; + r++; + break; + case ASSEMBLY_TOP_LEFT: + case ASSEMBLY_BOTTOM_RIGHT: + col++; + r--; + break; + case ASSEMBLY_LEFT_BOTTOM: + case ASSEMBLY_RIGHT_TOP: + col--; + r--; + break; + case ASSEMBLY_RIGHT_BOTTOM: + case ASSEMBLY_LEFT_TOP: + default: + col++; + r++; + break; + } + if (col < 0 || r < 0 || col > cl || r > rl) { + switch (formationDirection) { + case ASSEMBLY_BOTTOM_LEFT: + case ASSEMBLY_TOP_RIGHT: + C++; + break; + case ASSEMBLY_LEFT_BOTTOM: + case ASSEMBLY_RIGHT_TOP: + case ASSEMBLY_TOP_LEFT: + case ASSEMBLY_BOTTOM_RIGHT: + R++; + break; + case ASSEMBLY_RIGHT_BOTTOM: + case ASSEMBLY_LEFT_TOP: + default: + C--; + break; + } + if (C < 0 || R < 0 || C > cl || R > rl) { + switch (formationDirection) { + case ASSEMBLY_BOTTOM_LEFT: + case ASSEMBLY_TOP_RIGHT: + C = cl; + R++; + break; + case ASSEMBLY_TOP_LEFT: + case ASSEMBLY_BOTTOM_RIGHT: + R = rl; + C++; + break; + case ASSEMBLY_LEFT_BOTTOM: + case ASSEMBLY_RIGHT_TOP: R = rl; C--; + break; + case ASSEMBLY_RIGHT_BOTTOM: + case ASSEMBLY_LEFT_TOP: + default: + C = 0; + R++; + break; + } + if (R > rl) + R = rl; + else if (R < 0) + R = 0; + else if (C > cl) + C = cl; + else if (C < 0) + C = 0; + } + r = R; + col = C; + } + } + return a; + }; + + _This.$FormationSquare = function (transition) { + var cols = transition.$Cols || 1; + var rows = transition.$Rows || 1; + var arr = []; + var i = 0; + var col; + var r; + var dc; + var dr; + var cr; + dc = cols < rows ? (rows - cols) / 2 : 0; + dr = cols > rows ? (cols - rows) / 2 : 0; + cr = Math.round(Math.max(cols / 2, rows / 2)) + 1; + for (col = 0; col < cols; col++) { + for (r = 0; r < rows; r++) + PushFormationOrder(arr, cr - Math.min(col + 1 + dc, r + 1 + dr, cols - col + dc, rows - r + dr), [r, col]); + } + return arr; + }; + + _This.$FormationRectangle = function (transition) { + var cols = transition.$Cols || 1; + var rows = transition.$Rows || 1; + var arr = []; + var i = 0; + var col; + var r; + var cr; + cr = Math.round(Math.min(cols / 2, rows / 2)) + 1; + for (col = 0; col < cols; col++) { + for (r = 0; r < rows; r++) + PushFormationOrder(arr, cr - Math.min(col + 1, r + 1, cols - col, rows - r), [r, col]); + } + return arr; + }; + + _This.$FormationRandom = function (transition) { + var a = []; + var r, col, i; + for (r = 0; r < transition.$Rows; r++) { + for (col = 0; col < transition.$Cols; col++) + PushFormationOrder(a, Math.ceil(100000 * Math.random()) % 13, [r, col]); + } + + return a; + }; + + _This.$FormationCircle = function (transition) { + var cols = transition.$Cols || 1; + var rows = transition.$Rows || 1; + var arr = []; + var i = 0; + var col; + var r; + var hc = cols / 2 - 0.5; + var hr = rows / 2 - 0.5; + for (col = 0; col < cols; col++) { + for (r = 0; r < rows; r++) + PushFormationOrder(arr, Math.round(Math.sqrt(Math.pow(col - hc, 2) + Math.pow(r - hr, 2))), [r, col]); + } + return arr; + }; + + _This.$FormationCross = function (transition) { + var cols = transition.$Cols || 1; + var rows = transition.$Rows || 1; + var arr = []; + var i = 0; + var col; + var r; + var hc = cols / 2 - 0.5; + var hr = rows / 2 - 0.5; + for (col = 0; col < cols; col++) { + for (r = 0; r < rows; r++) + PushFormationOrder(arr, Math.round(Math.min(Math.abs(col - hc), Math.abs(r - hr))), [r, col]); + } + return arr; + }; + + _This.$FormationRectangleCross = function (transition) { + var cols = transition.$Cols || 1; + var rows = transition.$Rows || 1; + var arr = []; + var i = 0; + var col; + var r; + var hc = cols / 2 - 0.5; + var hr = rows / 2 - 0.5; + var cr = Math.max(hc, hr) + 1; + for (col = 0; col < cols; col++) { + for (r = 0; r < rows; r++) + PushFormationOrder(arr, Math.round(cr - Math.max(hc - Math.abs(col - hc), hr - Math.abs(r - hr))) - 1, [r, col]); + } + return arr; + }; +}; + +var $JssorSlideshowRunner$ = window.$JssorSlideshowRunner$ = function (slideContainer, slideContainerWidth, slideContainerHeight, slideshowOptions, isTouchDevice) { + + var _SelfSlideshowRunner = this; + + //var _State = 0; //-1 fullfill, 0 clean, 1 initializing, 2 stay, 3 playing + var _EndTime; + + var _SliderFrameCount; + + var _SlideshowPlayerBelow; + var _SlideshowPlayerAbove; + + var _PrevItem; + var _SlideItem; + + var _TransitionIndex = 0; + var _TransitionsOrder = slideshowOptions.$TransitionsOrder; + + var _SlideshowTransition; + + var _SlideshowPerformance = 8; + + //#region Private Methods + function EnsureTransitionInstance(options, slideshowInterval) { + + var slideshowTransition = { + $Interval: slideshowInterval, //Delay to play next frame + $Duration: 1, //Duration to finish the entire transition + $Delay: 0, //Delay to assembly blocks + $Cols: 1, //Number of columns + $Rows: 1, //Number of rows + $Opacity: 0, //Fade block or not + $Zoom: 0, //Zoom block or not + $Clip: 0, //Clip block or not + $Move: false, //Move block or not + $SlideOut: false, //Slide the previous slide out to display next slide instead + //$FlyDirection: 0, //Specify fly transform with direction + $Reverse: false, //Reverse the assembly or not + $Formation: $JssorSlideshowFormations$.$FormationRandom, //Shape that assembly blocks as + $Assembly: 0x0408, //The way to assembly blocks ASSEMBLY_RIGHT_BOTTOM + $ChessMode: { $Column: 0, $Row: 0 }, //Chess move or fly direction + $Easing: $JssorEasing$.$EaseSwing, //Specify variation of speed during transition + $Round: {}, + $Blocks: [], + $During: {} + }; + + $Jssor$.$Extend(slideshowTransition, options); + + slideshowTransition.$Count = slideshowTransition.$Cols * slideshowTransition.$Rows; + if ($Jssor$.$IsFunction(slideshowTransition.$Easing)) + slideshowTransition.$Easing = { $Default: slideshowTransition.$Easing }; + + slideshowTransition.$FramesCount = Math.ceil(slideshowTransition.$Duration / slideshowTransition.$Interval); + + slideshowTransition.$GetBlocks = function (width, height) { + width /= slideshowTransition.$Cols; + height /= slideshowTransition.$Rows; + var wh = width + 'x' + height; + if (!slideshowTransition.$Blocks[wh]) { + slideshowTransition.$Blocks[wh] = { $Width: width, $Height: height }; + for (var col = 0; col < slideshowTransition.$Cols; col++) { + for (var r = 0; r < slideshowTransition.$Rows; r++) + slideshowTransition.$Blocks[wh][r + ',' + col] = { $Top: r * height, $Right: col * width + width, $Bottom: r * height + height, $Left: col * width }; + } + } + + return slideshowTransition.$Blocks[wh]; + }; + + if (slideshowTransition.$Brother) { + slideshowTransition.$Brother = EnsureTransitionInstance(slideshowTransition.$Brother, slideshowInterval); + slideshowTransition.$SlideOut = true; + } + + return slideshowTransition; + } + //#endregion + + //#region Private Classes + function JssorSlideshowPlayer(slideContainer, slideElement, slideTransition, beginTime, slideContainerWidth, slideContainerHeight) { + var _Self = this; + + var _Block; + var _StartStylesArr = {}; + var _AnimationStylesArrs = {}; + var _AnimationBlockItems = []; + var _StyleStart; + var _StyleEnd; + var _StyleDif; + var _ChessModeColumn = slideTransition.$ChessMode.$Column || 0; + var _ChessModeRow = slideTransition.$ChessMode.$Row || 0; + + var _Blocks = slideTransition.$GetBlocks(slideContainerWidth, slideContainerHeight); + var _FormationInstance = GetFormation(slideTransition); + var _MaxOrder = _FormationInstance.length - 1; + var _Period = slideTransition.$Duration + slideTransition.$Delay * _MaxOrder; + var _EndTime = beginTime + _Period; + + var _SlideOut = slideTransition.$SlideOut; + var _IsIn; + + //_EndTime += $Jssor$.$IsBrowserChrome() ? 260 : 50; + _EndTime += 50; + + //#region Private Methods + + function GetFormation(transition) { + + var formationInstance = transition.$Formation(transition); + + return transition.$Reverse ? formationInstance.reverse() : formationInstance; + + } + //#endregion + + _Self.$EndTime = _EndTime; + + _Self.$ShowFrame = function (time) { + time -= beginTime; + + var isIn = time < _Period; + + if (isIn || _IsIn) { + _IsIn = isIn; + + if (!_SlideOut) + time = _Period - time; + + var frameIndex = Math.ceil(time / slideTransition.$Interval); + + $Jssor$.$Each(_AnimationStylesArrs, function (value, index) { + + var itemFrameIndex = Math.max(frameIndex, value.$Min); + itemFrameIndex = Math.min(itemFrameIndex, value.length - 1); + + if (value.$LastFrameIndex != itemFrameIndex) { + if (!value.$LastFrameIndex && !_SlideOut) { + $Jssor$.$ShowElement(_AnimationBlockItems[index]); + } + else if (itemFrameIndex == value.$Max && _SlideOut) { + $Jssor$.$HideElement(_AnimationBlockItems[index]); + } + value.$LastFrameIndex = itemFrameIndex; + $Jssor$.$SetStylesEx(_AnimationBlockItems[index], value[itemFrameIndex]); + } + }); + } + }; + + function DisableHWA(elmt) { + $Jssor$.$DisableHWA(elmt); + + var children = $Jssor$.$Children(elmt); + + $Jssor$.$Each(children, function (child) { + DisableHWA(child); + }); + } + + //constructor + { + slideElement = $Jssor$.$CloneNode(slideElement); + //$Jssor$.$RemoveAttribute(slideElement, "id"); + DisableHWA(slideElement); + if ($Jssor$.$IsBrowserIe9Earlier()) { + var hasImage = !slideElement["no-image"]; + var slideChildElements = $Jssor$.$FindChildrenByTag(slideElement); + $Jssor$.$Each(slideChildElements, function (slideChildElement) { + if (hasImage || slideChildElement["jssor-slider"]) + $Jssor$.$CssOpacity(slideChildElement, $Jssor$.$CssOpacity(slideChildElement), true); + }); + } + + $Jssor$.$Each(_FormationInstance, function (formationItems, order) { + $Jssor$.$Each(formationItems, function (formationItem) { + var row = formationItem[0]; + var col = formationItem[1]; + { + var columnRow = row + ',' + col; + + var chessHorizontal = false; + var chessVertical = false; + var chessRotate = false; + + if (_ChessModeColumn && col % 2) { + if ($JssorDirection$.$IsHorizontal(_ChessModeColumn)) { + chessHorizontal = !chessHorizontal; + } + if ($JssorDirection$.$IsVertical(_ChessModeColumn)) { + chessVertical = !chessVertical; + } + + if (_ChessModeColumn & 16) + chessRotate = !chessRotate; + } + + if (_ChessModeRow && row % 2) { + if ($JssorDirection$.$IsHorizontal(_ChessModeRow)) { + chessHorizontal = !chessHorizontal; + } + if ($JssorDirection$.$IsVertical(_ChessModeRow)) { + chessVertical = !chessVertical; + } + if (_ChessModeRow & 16) + chessRotate = !chessRotate; + } + + slideTransition.$Top = slideTransition.$Top || (slideTransition.$Clip & 4); + slideTransition.$Bottom = slideTransition.$Bottom || (slideTransition.$Clip & 8); + slideTransition.$Left = slideTransition.$Left || (slideTransition.$Clip & 1); + slideTransition.$Right = slideTransition.$Right || (slideTransition.$Clip & 2); + + var topBenchmark = chessVertical ? slideTransition.$Bottom : slideTransition.$Top; + var bottomBenchmark = chessVertical ? slideTransition.$Top : slideTransition.$Bottom; + var leftBenchmark = chessHorizontal ? slideTransition.$Right : slideTransition.$Left; + var rightBenchmark = chessHorizontal ? slideTransition.$Left : slideTransition.$Right; + + //$JssorDebug$.$Execute(function () { + // topBenchmark = bottomBenchmark = leftBenchmark = rightBenchmark = false; + //}); + + slideTransition.$Clip = topBenchmark || bottomBenchmark || leftBenchmark || rightBenchmark; + + _StyleDif = {}; + _StyleEnd = { $Top: 0, $Left: 0, $Opacity: 1, $Width: slideContainerWidth, $Height: slideContainerHeight }; + _StyleStart = $Jssor$.$Extend({}, _StyleEnd); + _Block = $Jssor$.$Extend({}, _Blocks[columnRow]); + + if (slideTransition.$Opacity) { + _StyleEnd.$Opacity = 2 - slideTransition.$Opacity; + } + + if (slideTransition.$ZIndex) { + _StyleEnd.$ZIndex = slideTransition.$ZIndex; + _StyleStart.$ZIndex = 0; + } + + var allowClip = slideTransition.$Cols * slideTransition.$Rows > 1 || slideTransition.$Clip; + + if (slideTransition.$Zoom || slideTransition.$Rotate) { + var allowRotate = true; + if ($Jssor$.$IsBrowserIE() && $Jssor$.$BrowserEngineVersion() < 9) { + if (slideTransition.$Cols * slideTransition.$Rows > 1) + allowRotate = false; + else + allowClip = false; + } + + if (allowRotate) { + _StyleEnd.$Zoom = slideTransition.$Zoom ? slideTransition.$Zoom - 1 : 1; + _StyleStart.$Zoom = 1; + + if ($Jssor$.$IsBrowserIe9Earlier() || $Jssor$.$IsBrowserOpera()) + _StyleEnd.$Zoom = Math.min(_StyleEnd.$Zoom, 2); + + var rotate = slideTransition.$Rotate; + + _StyleEnd.$Rotate = rotate * 360 * ((chessRotate) ? -1 : 1); + _StyleStart.$Rotate = 0; + } + } + + if (allowClip) { + if (slideTransition.$Clip) { + var clipScale = slideTransition.$ScaleClip || 1; + var blockOffset = _Block.$Offset = {}; + if (topBenchmark && bottomBenchmark) { + blockOffset.$Top = _Blocks.$Height / 2 * clipScale; + blockOffset.$Bottom = -blockOffset.$Top; + } + else if (topBenchmark) { + blockOffset.$Bottom = -_Blocks.$Height * clipScale; + } + else if (bottomBenchmark) { + blockOffset.$Top = _Blocks.$Height * clipScale; + } + + if (leftBenchmark && rightBenchmark) { + blockOffset.$Left = _Blocks.$Width / 2 * clipScale; + blockOffset.$Right = -blockOffset.$Left; + } + else if (leftBenchmark) { + blockOffset.$Right = -_Blocks.$Width * clipScale; + } + else if (rightBenchmark) { + blockOffset.$Left = _Blocks.$Width * clipScale; + } + } + + _StyleDif.$Clip = _Block; + _StyleStart.$Clip = _Blocks[columnRow]; + } + + //fly + { + var chessHor = chessHorizontal ? 1 : -1; + var chessVer = chessVertical ? 1 : -1; + + if (slideTransition.x) + _StyleEnd.$Left += slideContainerWidth * slideTransition.x * chessHor; + + if (slideTransition.y) + _StyleEnd.$Top += slideContainerHeight * slideTransition.y * chessVer; + } + + $Jssor$.$Each(_StyleEnd, function (propertyEnd, property) { + if ($Jssor$.$IsNumeric(propertyEnd)) { + if (propertyEnd != _StyleStart[property]) { + _StyleDif[property] = propertyEnd - _StyleStart[property]; + } + } + }); + + _StartStylesArr[columnRow] = _SlideOut ? _StyleStart : _StyleEnd; + + var animationStylesArr = []; + var framesCount = slideTransition.$FramesCount; + var virtualFrameCount = Math.round(order * slideTransition.$Delay / slideTransition.$Interval); + _AnimationStylesArrs[columnRow] = new Array(virtualFrameCount); + _AnimationStylesArrs[columnRow].$Min = virtualFrameCount; + _AnimationStylesArrs[columnRow].$Max = virtualFrameCount + framesCount - 1; + + for (var frameN = 0; frameN <= framesCount; frameN++) { + var styleFrameN = $Jssor$.$Cast(_StyleStart, _StyleDif, frameN / framesCount, slideTransition.$Easing, slideTransition.$During, slideTransition.$Round, { $Move: slideTransition.$Move, $OriginalWidth: slideContainerWidth, $OriginalHeight: slideContainerHeight }) + + styleFrameN.$ZIndex = styleFrameN.$ZIndex || 1; + + _AnimationStylesArrs[columnRow].push(styleFrameN); + } + + } //for + }); + }); + + _FormationInstance.reverse(); + $Jssor$.$Each(_FormationInstance, function (formationItems) { + $Jssor$.$Each(formationItems, function (formationItem) { + var row = formationItem[0]; + var col = formationItem[1]; + + var columnRow = row + ',' + col; + + var image = slideElement; + if (col || row) + image = $Jssor$.$CloneNode(slideElement); + + $Jssor$.$SetStyles(image, _StartStylesArr[columnRow]); + $Jssor$.$CssOverflow(image, "hidden"); + + $Jssor$.$CssPosition(image, "absolute"); + slideContainer.$AddClipElement(image); + _AnimationBlockItems[columnRow] = image; + $Jssor$.$ShowElement(image, !_SlideOut); + }); + }); + } + } + + function SlideshowProcessor() { + var _SelfSlideshowProcessor = this; + var _CurrentTime = 0; + + $JssorAnimator$.call(_SelfSlideshowProcessor, 0, _EndTime); + + _SelfSlideshowProcessor.$OnPositionChange = function (oldPosition, newPosition) { + if ((newPosition - _CurrentTime) > _SlideshowPerformance) { + _CurrentTime = newPosition; + + _SlideshowPlayerAbove && _SlideshowPlayerAbove.$ShowFrame(newPosition); + _SlideshowPlayerBelow && _SlideshowPlayerBelow.$ShowFrame(newPosition); + } + }; + + _SelfSlideshowProcessor.$Transition = _SlideshowTransition; + } + //#endregion + + //member functions + _SelfSlideshowRunner.$GetTransition = function (slideCount) { + var n = 0; + + var transitions = slideshowOptions.$Transitions; + + var transitionCount = transitions.length; + + if (_TransitionsOrder) { /*Sequence*/ + //if (transitionCount > slideCount && ($Jssor$.$IsBrowserChrome() || $Jssor$.$IsBrowserSafari() || $Jssor$.$IsBrowserFireFox())) { + // transitionCount -= transitionCount % slideCount; + //} + n = _TransitionIndex++ % transitionCount; + } + else { /*Random*/ + n = Math.floor(Math.random() * transitionCount); + } + + transitions[n] && (transitions[n].$Index = n); + + return transitions[n]; + }; + + _SelfSlideshowRunner.$Initialize = function (slideIndex, prevIndex, slideItem, prevItem, slideshowTransition) { + $JssorDebug$.$Execute(function () { + if (_SlideshowPlayerBelow) { + $JssorDebug$.$Fail("slideshow runner has not been cleared."); + } + }); + + _SlideshowTransition = slideshowTransition; + + slideshowTransition = EnsureTransitionInstance(slideshowTransition, _SlideshowPerformance); + + _SlideItem = slideItem; + _PrevItem = prevItem; + + var prevSlideElement = prevItem.$Item; + var currentSlideElement = slideItem.$Item; + prevSlideElement["no-image"] = !prevItem.$Image; + currentSlideElement["no-image"] = !slideItem.$Image; + + var slideElementAbove = prevSlideElement; + var slideElementBelow = currentSlideElement; + + var slideTransitionAbove = slideshowTransition; + var slideTransitionBelow = slideshowTransition.$Brother || EnsureTransitionInstance({}, _SlideshowPerformance); + + if (!slideshowTransition.$SlideOut) { + slideElementAbove = currentSlideElement; + slideElementBelow = prevSlideElement; + } + + var shift = slideTransitionBelow.$Shift || 0; + + _SlideshowPlayerBelow = new JssorSlideshowPlayer(slideContainer, slideElementBelow, slideTransitionBelow, Math.max(shift - slideTransitionBelow.$Interval, 0), slideContainerWidth, slideContainerHeight); + _SlideshowPlayerAbove = new JssorSlideshowPlayer(slideContainer, slideElementAbove, slideTransitionAbove, Math.max(slideTransitionBelow.$Interval - shift, 0), slideContainerWidth, slideContainerHeight); + + _SlideshowPlayerBelow.$ShowFrame(0); + _SlideshowPlayerAbove.$ShowFrame(0); + + _EndTime = Math.max(_SlideshowPlayerBelow.$EndTime, _SlideshowPlayerAbove.$EndTime); + + _SelfSlideshowRunner.$Index = slideIndex; + }; + + _SelfSlideshowRunner.$Clear = function () { + slideContainer.$Clear(); + _SlideshowPlayerBelow = null; + _SlideshowPlayerAbove = null; + }; + + _SelfSlideshowRunner.$GetProcessor = function () { + var slideshowProcessor = null; + + if (_SlideshowPlayerAbove) + slideshowProcessor = new SlideshowProcessor(); + + return slideshowProcessor; + }; + + //Constructor + { + if ($Jssor$.$IsBrowserIe9Earlier() || $Jssor$.$IsBrowserOpera() || (isTouchDevice && $Jssor$.$WebKitVersion() < 537)) { + _SlideshowPerformance = 16; + } + + $JssorObject$.call(_SelfSlideshowRunner); + $JssorAnimator$.call(_SelfSlideshowRunner, -10000000, 10000000); + } +}; + +var $JssorSlider$ = window.$JssorSlider$ = function (elmt, options) { + var _SelfSlider = this; + + //#region Private Classes + //Conveyor + function Conveyor() { + var _SelfConveyor = this; + $JssorAnimator$.call(_SelfConveyor, -100000000, 200000000); + + _SelfConveyor.$GetCurrentSlideInfo = function () { + var positionDisplay = _SelfConveyor.$GetPosition_Display(); + var virtualIndex = Math.floor(positionDisplay); + var slideIndex = GetRealIndex(virtualIndex); + var slidePosition = positionDisplay - Math.floor(positionDisplay); + + return { $Index: slideIndex, $VirtualIndex: virtualIndex, $Position: slidePosition }; + }; + + _SelfConveyor.$OnPositionChange = function (oldPosition, newPosition) { + + var index = Math.floor(newPosition); + if (index != newPosition && newPosition > oldPosition) + index++; + + ResetNavigator(index, true); + + _SelfSlider.$TriggerEvent($JssorSlider$.$EVT_POSITION_CHANGE, GetRealIndex(newPosition), GetRealIndex(oldPosition), newPosition, oldPosition); + }; + } + //Conveyor + + //Carousel + function Carousel() { + var _SelfCarousel = this; + + $JssorAnimator$.call(_SelfCarousel, 0, 0, { $LoopLength: _SlideCount }); + + //Carousel Constructor + { + $Jssor$.$Each(_SlideItems, function (slideItem) { + (_Loop & 1) && slideItem.$SetLoopLength(_SlideCount); + _SelfCarousel.$Chain(slideItem); + slideItem.$Shift(_ParkingPosition / _StepLength); + }); + } + } + //Carousel + + //Slideshow + function Slideshow() { + var _SelfSlideshow = this; + var _Wrapper = _SlideContainer.$Elmt; + + $JssorAnimator$.call(_SelfSlideshow, -1, 2, { $Easing: $JssorEasing$.$EaseLinear, $Setter: { $Position: SetPosition }, $LoopLength: _SlideCount }, _Wrapper, { $Position: 1 }, { $Position: -2 }); + + _SelfSlideshow.$Wrapper = _Wrapper; + + //Slideshow Constructor + { + $JssorDebug$.$Execute(function () { + $Jssor$.$Attribute(_SlideContainer.$Elmt, "debug-id", "slide_container"); + }); + } + } + //Slideshow + + //CarouselPlayer + function CarouselPlayer(carousel, slideshow) { + var _SelfCarouselPlayer = this; + var _FromPosition; + var _ToPosition; + var _Duration; + var _StandBy; + var _StandByPosition; + + $JssorAnimator$.call(_SelfCarouselPlayer, -100000000, 200000000, { $IntervalMax: 100 }); + + _SelfCarouselPlayer.$OnStart = function () { + _IsSliding = true; + _LoadingTicket = null; + + //EVT_SWIPE_START + _SelfSlider.$TriggerEvent($JssorSlider$.$EVT_SWIPE_START, GetRealIndex(_Conveyor.$GetPosition()), _Conveyor.$GetPosition()); + }; + + _SelfCarouselPlayer.$OnStop = function () { + + _IsSliding = false; + _StandBy = false; + + var currentSlideInfo = _Conveyor.$GetCurrentSlideInfo(); + + //EVT_SWIPE_END + _SelfSlider.$TriggerEvent($JssorSlider$.$EVT_SWIPE_END, GetRealIndex(_Conveyor.$GetPosition()), _Conveyor.$GetPosition()); + + if (!currentSlideInfo.$Position) { + OnPark(currentSlideInfo.$VirtualIndex, _CurrentSlideIndex); + } + }; + + _SelfCarouselPlayer.$OnPositionChange = function (oldPosition, newPosition) { + + var toPosition; + + if (_StandBy) + toPosition = _StandByPosition; + else { + toPosition = _ToPosition; + + if (_Duration) { + var interPosition = newPosition / _Duration; + //if ($Jssor$.$IsBrowserChrome() || $Jssor$.$IsBrowserFireFox()) { + // Math.round(interPosition * 8 / _Duration) / 8 * _Duration; + + // if ($Jssor$.$BrowserVersion() < 38) + // interPosition = parseFloat(interPosition.toFixed(4)); + //} + toPosition = _Options.$SlideEasing(interPosition) * (_ToPosition - _FromPosition) + _FromPosition; + } + } + + _Conveyor.$GoToPosition(toPosition); + }; + + _SelfCarouselPlayer.$PlayCarousel = function (fromPosition, toPosition, duration, callback) { + $JssorDebug$.$Execute(function () { + if (_SelfCarouselPlayer.$IsPlaying()) + $JssorDebug$.$Fail("The carousel is already playing."); + }); + + _FromPosition = fromPosition; + _ToPosition = toPosition; + _Duration = duration; + + _Conveyor.$GoToPosition(fromPosition); + _SelfCarouselPlayer.$GoToPosition(0); + + _SelfCarouselPlayer.$PlayToPosition(duration, callback); + }; + + _SelfCarouselPlayer.$StandBy = function (standByPosition) { + _StandBy = true; + _StandByPosition = standByPosition; + _SelfCarouselPlayer.$Play(standByPosition, null, true); + }; + + _SelfCarouselPlayer.$SetStandByPosition = function (standByPosition) { + _StandByPosition = standByPosition; + }; + + _SelfCarouselPlayer.$MoveCarouselTo = function (position) { + _Conveyor.$GoToPosition(position); + }; + + //CarouselPlayer Constructor + { + _Conveyor = new Conveyor(); + + _Conveyor.$Combine(carousel); + _Conveyor.$Combine(slideshow); + } + } + //CarouselPlayer + + //SlideContainer + function SlideContainer() { + var _Self = this; + var elmt = CreatePanel(); + + $Jssor$.$CssZIndex(elmt, 0); + $Jssor$.$Css(elmt, "pointerEvents", "none"); + + _Self.$Elmt = elmt; + + _Self.$AddClipElement = function (clipElement) { + $Jssor$.$AppendChild(elmt, clipElement); + $Jssor$.$ShowElement(elmt); + }; + + _Self.$Clear = function () { + $Jssor$.$HideElement(elmt); + $Jssor$.$Empty(elmt); + }; + } + //SlideContainer + + //SlideItem + function SlideItem(slideElmt, slideIndex) { + + var _SelfSlideItem = this; + + var _CaptionSliderIn; + var _CaptionSliderOut; + var _CaptionSliderCurrent; + var _IsCaptionSliderPlayingWhenDragStart; + + var _Wrapper; + var _BaseElement = slideElmt; + + var _LoadingScreen; + + var _ImageItem; + var _ImageElmts = []; + var _LinkItemOrigin; + var _LinkItem; + var _ImageLoading; + var _ImageLoaded; + var _ImageLazyLoading; + var _ContentRefreshed; + + var _Processor; + + var _PlayerInstanceElement; + var _PlayerInstance; + + var _SequenceNumber; //for debug only + + $JssorAnimator$.call(_SelfSlideItem, -_DisplayPieces, _DisplayPieces + 1, { $SlideItemAnimator: true }); + + function ResetCaptionSlider(fresh) { + _CaptionSliderOut && _CaptionSliderOut.$Revert(); + _CaptionSliderIn && _CaptionSliderIn.$Revert(); + + RefreshContent(slideElmt, fresh); + _ContentRefreshed = true; + + _CaptionSliderIn = new _CaptionSliderOptions.$Class(slideElmt, _CaptionSliderOptions, 1); + $JssorDebug$.$LiveStamp(_CaptionSliderIn, "caption_slider_" + _CaptionSliderCount + "_in"); + _CaptionSliderOut = new _CaptionSliderOptions.$Class(slideElmt, _CaptionSliderOptions); + $JssorDebug$.$LiveStamp(_CaptionSliderOut, "caption_slider_" + _CaptionSliderCount + "_out"); + + $JssorDebug$.$Execute(function () { + _CaptionSliderCount++; + }); + + _CaptionSliderOut.$GoToBegin(); + _CaptionSliderIn.$GoToBegin(); + } + + function EnsureCaptionSliderVersion() { + if (_CaptionSliderIn.$Version < _CaptionSliderOptions.$Version) { + ResetCaptionSlider(); + } + } + + //event handling begin + function LoadImageCompleteEventHandler(completeCallback, loadingScreen, image) { + if (!_ImageLoaded) { + _ImageLoaded = true; + + if (_ImageItem && image) { + var imageWidth = image.width; + var imageHeight = image.height; + var fillWidth = imageWidth; + var fillHeight = imageHeight; + + if (imageWidth && imageHeight && _Options.$FillMode) { + + //0 stretch, 1 contain (keep aspect ratio and put all inside slide), 2 cover (keep aspect ratio and cover whole slide), 4 actual size, 5 contain for large image, actual size for small image, default value is 0 + if (_Options.$FillMode & 3 && (!(_Options.$FillMode & 4) || imageWidth > _SlideWidth || imageHeight > _SlideHeight)) { + var fitHeight = false; + var ratio = _SlideWidth / _SlideHeight * imageHeight / imageWidth; + + if (_Options.$FillMode & 1) { + fitHeight = (ratio > 1); + } + else if (_Options.$FillMode & 2) { + fitHeight = (ratio < 1); + } + fillWidth = fitHeight ? imageWidth * _SlideHeight / imageHeight : _SlideWidth; + fillHeight = fitHeight ? _SlideHeight : imageHeight * _SlideWidth / imageWidth; + } + + $Jssor$.$CssWidth(_ImageItem, fillWidth); + $Jssor$.$CssHeight(_ImageItem, fillHeight); + $Jssor$.$CssTop(_ImageItem, (_SlideHeight - fillHeight) / 2); + $Jssor$.$CssLeft(_ImageItem, (_SlideWidth - fillWidth) / 2); + } + + $Jssor$.$CssPosition(_ImageItem, "absolute"); + + _SelfSlider.$TriggerEvent($JssorSlider$.$EVT_LOAD_END, slideIndex); + } + } + + $Jssor$.$HideElement(loadingScreen); + completeCallback && completeCallback(_SelfSlideItem); + } + + function LoadSlideshowImageCompleteEventHandler(nextIndex, nextItem, slideshowTransition, loadingTicket) { + if (loadingTicket == _LoadingTicket && _CurrentSlideIndex == slideIndex && _AutoPlay) { + if (!_Frozen) { + var nextRealIndex = GetRealIndex(nextIndex); + _SlideshowRunner.$Initialize(nextRealIndex, slideIndex, nextItem, _SelfSlideItem, slideshowTransition); + nextItem.$HideContentForSlideshow(); + _Slideshow.$Locate(nextRealIndex, 1); + _Slideshow.$GoToPosition(nextRealIndex); + _CarouselPlayer.$PlayCarousel(nextIndex, nextIndex, 0); + } + } + } + + function SlideReadyEventHandler(loadingTicket) { + if (loadingTicket == _LoadingTicket && _CurrentSlideIndex == slideIndex) { + + if (!_Processor) { + var slideshowProcessor = null; + if (_SlideshowRunner) { + if (_SlideshowRunner.$Index == slideIndex) + slideshowProcessor = _SlideshowRunner.$GetProcessor(); + else + _SlideshowRunner.$Clear(); + } + + EnsureCaptionSliderVersion(); + + _Processor = new Processor(slideElmt, slideIndex, slideshowProcessor, _SelfSlideItem.$GetCaptionSliderIn(), _SelfSlideItem.$GetCaptionSliderOut()); + _Processor.$SetPlayer(_PlayerInstance); + } + + !_Processor.$IsPlaying() && _Processor.$Replay(); + } + } + + function ParkEventHandler(currentIndex, previousIndex, manualActivate) { + if (currentIndex == slideIndex) { + + if (currentIndex != previousIndex) + _SlideItems[previousIndex] && _SlideItems[previousIndex].$ParkOut(); + else + !manualActivate && _Processor && _Processor.$AdjustIdleOnPark(); + + _PlayerInstance && _PlayerInstance.$Enable(); + + //park in + var loadingTicket = _LoadingTicket = $Jssor$.$GetNow(); + _SelfSlideItem.$LoadImage($Jssor$.$CreateCallback(null, SlideReadyEventHandler, loadingTicket)); + } + else { + var distance = Math.abs(slideIndex - currentIndex); + var loadRange = _DisplayPieces + _Options.$LazyLoading - 1; + if (!_ImageLazyLoading || distance <= loadRange) { + _SelfSlideItem.$LoadImage(); + } + } + } + + function SwipeStartEventHandler() { + if (_CurrentSlideIndex == slideIndex && _Processor) { + _Processor.$Stop(); + _PlayerInstance && _PlayerInstance.$Quit(); + _PlayerInstance && _PlayerInstance.$Disable(); + _Processor.$OpenSlideshowPanel(); + } + } + + function FreezeEventHandler() { + if (_CurrentSlideIndex == slideIndex && _Processor) { + _Processor.$Stop(); + } + } + + function ContentClickEventHandler(event) { + if (_LastDragSucceded) { + $Jssor$.$StopEvent(event); + + var checkElement = $Jssor$.$EventSrc(event); + while (checkElement && slideElmt !== checkElement) { + if (checkElement.tagName == "A") { + $Jssor$.$CancelEvent(event); + } + try { + checkElement = checkElement.parentNode; + } catch (e) { + // Firefox sometimes fires events for XUL elements, which throws + // a "permission denied" error. so this is not a child. + break; + } + } + } + } + + function SlideClickEventHandler(event) { + if (!_LastDragSucceded) { + _SelfSlider.$TriggerEvent($JssorSlider$.$EVT_CLICK, slideIndex, event); + } + //else { + // var tagName = $Jssor$.$EventSrc(event).tagName; + // if (tagName != "INPUT" && tagName != "TEXTAREA" && tagName != "SELECT") + // $Jssor$.$CancelEvent(event); + //} + } + + function PlayerAvailableEventHandler() { + _PlayerInstance = _PlayerInstanceElement.pInstance; + _Processor && _Processor.$SetPlayer(_PlayerInstance); + } + + _SelfSlideItem.$LoadImage = function (completeCallback, loadingScreen) { + loadingScreen = loadingScreen || _LoadingScreen; + + if (_ImageElmts.length && !_ImageLoaded) { + + $Jssor$.$ShowElement(loadingScreen); + + if (!_ImageLoading) { + _ImageLoading = true; + _SelfSlider.$TriggerEvent($JssorSlider$.$EVT_LOAD_START, slideIndex); + + $Jssor$.$Each(_ImageElmts, function (imageElmt) { + + if (!imageElmt.src) { + imageElmt.src = $Jssor$.$AttributeEx(imageElmt, "src2"); + $Jssor$.$CssDisplay(imageElmt, imageElmt["display-origin"]); + } + }); + } + $Jssor$.$LoadImages(_ImageElmts, _ImageItem, $Jssor$.$CreateCallback(null, LoadImageCompleteEventHandler, completeCallback, loadingScreen)); + } + else { + LoadImageCompleteEventHandler(completeCallback, loadingScreen); + } + }; + + _SelfSlideItem.$GoForNextSlide = function () { + if (_SlideshowRunner) { + var slideshowTransition = _SlideshowRunner.$GetTransition(_SlideCount); + + if (slideshowTransition) { + var loadingTicket = _LoadingTicket = $Jssor$.$GetNow(); + + var nextIndex = slideIndex + _PlayReverse; + var nextItem = _SlideItems[GetRealIndex(nextIndex)]; + return nextItem.$LoadImage($Jssor$.$CreateCallback(null, LoadSlideshowImageCompleteEventHandler, nextIndex, nextItem, slideshowTransition, loadingTicket), _LoadingScreen); + } + } + + PlayTo(_CurrentSlideIndex + _Options.$AutoPlaySteps * _PlayReverse); + }; + + _SelfSlideItem.$TryActivate = function () { + ParkEventHandler(slideIndex, slideIndex, true); + }; + + _SelfSlideItem.$ParkOut = function () { + //park out + _PlayerInstance && _PlayerInstance.$Quit(); + _PlayerInstance && _PlayerInstance.$Disable(); + _SelfSlideItem.$UnhideContentForSlideshow(); + _Processor && _Processor.$Abort(); + _Processor = null; + ResetCaptionSlider(); + }; + + //for debug only + _SelfSlideItem.$StampSlideItemElements = function (stamp) { + stamp = _SequenceNumber + "_" + stamp; + + $JssorDebug$.$Execute(function () { + if (_ImageItem) + $Jssor$.$Attribute(_ImageItem, "debug-id", stamp + "_slide_item_image_id"); + + $Jssor$.$Attribute(slideElmt, "debug-id", stamp + "_slide_item_item_id"); + }); + + $JssorDebug$.$Execute(function () { + $Jssor$.$Attribute(_Wrapper, "debug-id", stamp + "_slide_item_wrapper_id"); + }); + + $JssorDebug$.$Execute(function () { + $Jssor$.$Attribute(_LoadingScreen, "debug-id", stamp + "_loading_container_id"); + }); + }; + + _SelfSlideItem.$HideContentForSlideshow = function () { + $Jssor$.$HideElement(slideElmt); + }; + + _SelfSlideItem.$UnhideContentForSlideshow = function () { + $Jssor$.$ShowElement(slideElmt); + }; + + _SelfSlideItem.$EnablePlayer = function () { + _PlayerInstance && _PlayerInstance.$Enable(); + }; + + function RefreshContent(elmt, fresh, level) { + if (elmt["jssor-slider"]) + return; + + level = level || 0; + + if (!_ContentRefreshed) { + if (elmt.tagName == "IMG") { + _ImageElmts.push(elmt); + + if (!elmt.src) { + _ImageLazyLoading = true; + elmt["display-origin"] = $Jssor$.$CssDisplay(elmt); + $Jssor$.$HideElement(elmt); + } + } + if ($Jssor$.$IsBrowserIe9Earlier()) { + $Jssor$.$CssZIndex(elmt, ($Jssor$.$CssZIndex(elmt) || 0) + 1); + } + if (_Options.$HWA && $Jssor$.$WebKitVersion()) { + if (!_IsTouchDevice || $Jssor$.$WebKitVersion() < 534 || (!_SlideshowEnabled && !$Jssor$.$IsBrowserChrome())) { + $Jssor$.$EnableHWA(elmt); + } + } + } + + var childElements = $Jssor$.$Children(elmt); + + $Jssor$.$Each(childElements, function (childElement, i) { + + var childTagName = childElement.tagName; + var uAttribute = $Jssor$.$AttributeEx(childElement, "u"); + if (uAttribute == "player" && !_PlayerInstanceElement) { + _PlayerInstanceElement = childElement; + if (_PlayerInstanceElement.pInstance) { + PlayerAvailableEventHandler(); + } + else { + $Jssor$.$AddEvent(_PlayerInstanceElement, "dataavailable", PlayerAvailableEventHandler); + } + } + + if (uAttribute == "caption") { + if (!$Jssor$.$IsBrowserIE() && !fresh) { + + if (childTagName == "A") { + $Jssor$.$RemoveEvent(childElement, "click", ContentClickEventHandler); + $Jssor$.$Attribute(childElement, "jssor-content", null); + } + + var captionElement = $Jssor$.$CloneNode(childElement, false, true); + $Jssor$.$InsertBefore(captionElement, childElement, elmt); + $Jssor$.$RemoveElement(childElement, elmt); + childElement = captionElement; + + fresh = true; + } + } + else if (!_ContentRefreshed && !level && !_ImageItem) { + + if (childTagName == "A") { + if ($Jssor$.$AttributeEx(childElement, "u") == "image") { + _ImageItem = $Jssor$.$FindChildByTag(childElement, "IMG"); + + $JssorDebug$.$Execute(function () { + if (!_ImageItem) { + $JssorDebug$.$Error("slide html code definition error, no 'IMG' found in a 'image with link' slide.\r\n" + elmt.outerHTML); + } + }); + } + else { + _ImageItem = $Jssor$.$FindChild(childElement, "image", true); + } + + if (_ImageItem) { + _LinkItemOrigin = childElement; + $Jssor$.$SetStyles(_LinkItemOrigin, _StyleDef); + + _LinkItem = $Jssor$.$CloneNode(_LinkItemOrigin, true); + $Jssor$.$AddEvent(_LinkItem, "click", ContentClickEventHandler); + + $Jssor$.$CssDisplay(_LinkItem, "block"); + $Jssor$.$SetStyles(_LinkItem, _StyleDef); + $Jssor$.$CssOpacity(_LinkItem, 0); + $Jssor$.$Css(_LinkItem, "backgroundColor", "#000"); + } + } + else if (childTagName == "IMG" && $Jssor$.$AttributeEx(childElement, "u") == "image") { + _ImageItem = childElement; + } + + if (_ImageItem) { + _ImageItem.border = 0; + $Jssor$.$SetStyles(_ImageItem, _StyleDef); + } + } + + if (!$Jssor$.$Attribute(childElement, "jssor-content")) { + //cancel click event on element when a drag of slide succeeded + $Jssor$.$AddEvent(childElement, "click", ContentClickEventHandler); + $Jssor$.$Attribute(childElement, "jssor-content", true); + } + + RefreshContent(childElement, fresh, level +1); + }); + } + + _SelfSlideItem.$OnInnerOffsetChange = function (oldOffset, newOffset) { + var slidePosition = _DisplayPieces - newOffset; + + SetPosition(_Wrapper, slidePosition); + + //following lines are for future usage, not ready yet + //if (!_IsDragging || !_IsCaptionSliderPlayingWhenDragStart) { + // var _DealWithParallax; + // if (IsCurrentSlideIndex(slideIndex)) { + // if (_CaptionSliderOptions.$PlayOutMode == 2) + // _DealWithParallax = true; + // } + // else { + // if (!_CaptionSliderOptions.$PlayInMode) { + // //PlayInMode: 0 none + // _CaptionSliderIn.$GoToEnd(); + // } + // //else if (_CaptionSliderOptions.$PlayInMode == 1) { + // // //PlayInMode: 1 chain + // // _CaptionSliderIn.$GoToBegin(); + // //} + // else if (_CaptionSliderOptions.$PlayInMode == 2) { + // //PlayInMode: 2 parallel + // _DealWithParallax = true; + // } + // } + + // if (_DealWithParallax) { + // _CaptionSliderIn.$GoToPosition((_CaptionSliderIn.$GetPosition_OuterEnd() - _CaptionSliderIn.$GetPosition_OuterBegin()) * Math.abs(newOffset - 1) * .8 + _CaptionSliderIn.$GetPosition_OuterBegin()); + // } + //} + }; + + _SelfSlideItem.$GetCaptionSliderIn = function () { + return _CaptionSliderIn; + }; + + _SelfSlideItem.$GetCaptionSliderOut = function () { + return _CaptionSliderOut; + }; + + _SelfSlideItem.$Index = slideIndex; + + $JssorObject$.call(_SelfSlideItem); + + //SlideItem Constructor + { + + var thumb = $Jssor$.$FindChild(slideElmt, "thumb", true); + if (thumb) { + _SelfSlideItem.$Thumb = $Jssor$.$CloneNode(thumb); + $Jssor$.$RemoveAttribute(thumb, "id"); + $Jssor$.$HideElement(thumb); + } + $Jssor$.$ShowElement(slideElmt); + + _LoadingScreen = $Jssor$.$CloneNode(_LoadingContainer); + $Jssor$.$CssZIndex(_LoadingScreen, 1000); + + //cancel click event on element when a drag of slide succeeded + $Jssor$.$AddEvent(slideElmt, "click", SlideClickEventHandler); + + ResetCaptionSlider(true); + + _SelfSlideItem.$Image = _ImageItem; + _SelfSlideItem.$Link = _LinkItem; + + _SelfSlideItem.$Item = slideElmt; + + _SelfSlideItem.$Wrapper = _Wrapper = slideElmt; + $Jssor$.$AppendChild(_Wrapper, _LoadingScreen); + + _SelfSlider.$On(203, ParkEventHandler); + _SelfSlider.$On(28, FreezeEventHandler); + _SelfSlider.$On(24, SwipeStartEventHandler); + + $JssorDebug$.$Execute(function () { + _SequenceNumber = _SlideItemCreatedCount++; + }); + + $JssorDebug$.$Execute(function () { + $Jssor$.$Attribute(_Wrapper, "debug-id", "slide-" + slideIndex); + }); + } + } + //SlideItem + + //Processor + function Processor(slideElmt, slideIndex, slideshowProcessor, captionSliderIn, captionSliderOut) { + + var _SelfProcessor = this; + + var _ProgressBegin = 0; + var _SlideshowBegin = 0; + var _SlideshowEnd; + var _CaptionInBegin; + var _IdleBegin; + var _IdleEnd; + var _ProgressEnd; + + var _IsSlideshowRunning; + var _IsRollingBack; + + var _PlayerInstance; + var _IsPlayerOnService; + + var slideItem = _SlideItems[slideIndex]; + + $JssorAnimator$.call(_SelfProcessor, 0, 0); + + function UpdateLink() { + + $Jssor$.$Empty(_LinkContainer); + + if (_ShowLink && _IsSlideshowRunning && slideItem.$Link) { + $Jssor$.$AppendChild(_LinkContainer, slideItem.$Link); + } + + $Jssor$.$ShowElement(_LinkContainer, !_IsSlideshowRunning && slideItem.$Image); + } + + function ProcessCompleteEventHandler() { + + if (_IsRollingBack) { + _IsRollingBack = false; + _SelfSlider.$TriggerEvent($JssorSlider$.$EVT_ROLLBACK_END, slideIndex, _IdleEnd, _ProgressBegin, _IdleBegin, _IdleEnd, _ProgressEnd); + _SelfProcessor.$GoToPosition(_IdleBegin); + } + + _SelfProcessor.$Replay(); + } + + function PlayerSwitchEventHandler(isOnService) { + _IsPlayerOnService = isOnService; + + _SelfProcessor.$Stop(); + _SelfProcessor.$Replay(); + } + + _SelfProcessor.$Replay = function () { + + var currentPosition = _SelfProcessor.$GetPosition_Display(); + + if (!_IsDragging && !_IsSliding && !_IsPlayerOnService && _CurrentSlideIndex == slideIndex) { + + if (!currentPosition) { + if (_SlideshowEnd && !_IsSlideshowRunning) { + _IsSlideshowRunning = true; + + _SelfProcessor.$OpenSlideshowPanel(true); + + _SelfSlider.$TriggerEvent($JssorSlider$.$EVT_SLIDESHOW_START, slideIndex, _ProgressBegin, _SlideshowBegin, _SlideshowEnd, _ProgressEnd); + } + + UpdateLink(); + } + + var toPosition; + var stateEvent = $JssorSlider$.$EVT_STATE_CHANGE; + + if (currentPosition != _ProgressEnd) { + if (currentPosition == _IdleEnd) { + toPosition = _ProgressEnd; + } + else if (currentPosition == _IdleBegin) { + toPosition = _IdleEnd; + } + else if (!currentPosition) { + toPosition = _IdleBegin; + } + else if (currentPosition > _IdleEnd) { + _IsRollingBack = true; + toPosition = _IdleEnd; + stateEvent = $JssorSlider$.$EVT_ROLLBACK_START; + } + else { + //continue from break (by drag or lock) + toPosition = _SelfProcessor.$GetPlayToPosition(); + } + } + + //$JssorDebug$.$Execute(function () { + // if (currentPosition == _ProgressEnd) { + // debugger; + // } + //}); + + _SelfSlider.$TriggerEvent(stateEvent, slideIndex, currentPosition, _ProgressBegin, _IdleBegin, _IdleEnd, _ProgressEnd); + + var allowAutoPlay = _AutoPlay && (!_HoverToPause || _NotOnHover); + + if (currentPosition == _ProgressEnd) { + (_IdleEnd != _ProgressEnd && !(_HoverToPause & 12) || allowAutoPlay) && slideItem.$GoForNextSlide(); + } + else if (allowAutoPlay || currentPosition != _IdleEnd) { + _SelfProcessor.$PlayToPosition(toPosition, ProcessCompleteEventHandler); + } + } + }; + + _SelfProcessor.$AdjustIdleOnPark = function () { + if (_IdleEnd == _ProgressEnd && _IdleEnd == _SelfProcessor.$GetPosition_Display()) + _SelfProcessor.$GoToPosition(_IdleBegin); + }; + + _SelfProcessor.$Abort = function () { + _SlideshowRunner && _SlideshowRunner.$Index == slideIndex && _SlideshowRunner.$Clear(); + + var currentPosition = _SelfProcessor.$GetPosition_Display(); + if (currentPosition < _ProgressEnd) { + _SelfSlider.$TriggerEvent($JssorSlider$.$EVT_STATE_CHANGE, slideIndex, -currentPosition - 1, _ProgressBegin, _IdleBegin, _IdleEnd, _ProgressEnd); + } + }; + + _SelfProcessor.$OpenSlideshowPanel = function (open) { + if (slideshowProcessor) { + $Jssor$.$CssOverflow(_SlideshowPanel, open && slideshowProcessor.$Transition.$Outside ? "" : "hidden"); + } + }; + + _SelfProcessor.$OnInnerOffsetChange = function (oldPosition, newPosition) { + + if (_IsSlideshowRunning && newPosition >= _SlideshowEnd) { + _IsSlideshowRunning = false; + UpdateLink(); + slideItem.$UnhideContentForSlideshow(); + _SlideshowRunner.$Clear(); + + _SelfSlider.$TriggerEvent($JssorSlider$.$EVT_SLIDESHOW_END, slideIndex, _ProgressBegin, _SlideshowBegin, _SlideshowEnd, _ProgressEnd); + } + + _SelfSlider.$TriggerEvent($JssorSlider$.$EVT_PROGRESS_CHANGE, slideIndex, newPosition, _ProgressBegin, _IdleBegin, _IdleEnd, _ProgressEnd); + }; + + _SelfProcessor.$SetPlayer = function (playerInstance) { + if (playerInstance && !_PlayerInstance) { + _PlayerInstance = playerInstance; + + playerInstance.$On($JssorPlayer$.$EVT_SWITCH, PlayerSwitchEventHandler); + } + }; + + //Processor Constructor + { + if (slideshowProcessor) { + _SelfProcessor.$Chain(slideshowProcessor); + } + + _SlideshowEnd = _SelfProcessor.$GetPosition_OuterEnd(); + _CaptionInBegin = _SelfProcessor.$GetPosition_OuterEnd(); + _SelfProcessor.$Chain(captionSliderIn); + _IdleBegin = captionSliderIn.$GetPosition_OuterEnd(); + _IdleEnd = _IdleBegin + ($Jssor$.$ParseFloat($Jssor$.$AttributeEx(slideElmt, "idle")) || _Options.$AutoPlayInterval); + + captionSliderOut.$Shift(_IdleEnd); + _SelfProcessor.$Combine(captionSliderOut); + _ProgressEnd = _SelfProcessor.$GetPosition_OuterEnd(); + } + } + //Processor + //#endregion + + function SetPosition(elmt, position) { + var orientation = _DragOrientation > 0 ? _DragOrientation : _PlayOrientation; + var x = _StepLengthX * position * (orientation & 1); + var y = _StepLengthY * position * ((orientation >> 1) & 1); + + if ($Jssor$.$IsBrowserChrome() && $Jssor$.$BrowserVersion() < 38) { + x = x.toFixed(3); + y = y.toFixed(3); + } + else { + x = Math.round(x); + y = Math.round(y); + } + + if ($Jssor$.$IsBrowserIE() && $Jssor$.$BrowserVersion() >= 10 && $Jssor$.$BrowserVersion() < 11) { + elmt.style.msTransform = "translate(" + x + "px, " + y + "px)"; + } + else if ($Jssor$.$IsBrowserChrome() && $Jssor$.$BrowserVersion() >= 30 && $Jssor$.$BrowserVersion() < 34) { + elmt.style.WebkitTransition = "transform 0s"; + elmt.style.WebkitTransform = "translate3d(" + x + "px, " + y + "px, 0px) perspective(2000px)"; + } + else { + $Jssor$.$CssLeft(elmt, x); + $Jssor$.$CssTop(elmt, y); + } + } + + //Event handling begin + + function OnMouseDown(event) { + var eventSrc = $Jssor$.$EventSrc(event); + var tagName = eventSrc.tagName; + if (!_DragOrientationRegistered && (tagName != "INPUT" || eventSrc.type != "text") && tagName != "TEXTAREA" && tagName != "SELECT" && RegisterDrag()) { + OnDragStart(event); + } + } + + function RecordFreezePoint() { + + _CarouselPlaying_OnFreeze = _IsSliding; + _PlayToPosition_OnFreeze = _CarouselPlayer.$GetPlayToPosition(); + _Position_OnFreeze = _Conveyor.$GetPosition(); + + } + + function Freeze() { + + RecordFreezePoint(); + + if (_IsDragging || !_NotOnHover && (_HoverToPause & 12)) { + _CarouselPlayer.$Stop(); + + _SelfSlider.$TriggerEvent($JssorSlider$.$EVT_FREEZE); + } + + } + + function Unfreeze(byDrag) { + + byDrag && RecordFreezePoint(); + + if (!_IsDragging && (_NotOnHover || !(_HoverToPause & 12)) && !_CarouselPlayer.$IsPlaying()) { + + var currentPosition = _Conveyor.$GetPosition(); + var toPosition = Math.ceil(_Position_OnFreeze); + + if (byDrag && Math.abs(_DragOffsetTotal) >= _Options.$MinDragOffsetToSlide) { + toPosition = Math.ceil(currentPosition); + toPosition += _DragIndexAdjust; + } + + if (!(_Loop & 1)) { + toPosition = Math.min(_SlideCount - _DisplayPieces, Math.max(toPosition, 0)); + } + + var t = Math.abs(toPosition - currentPosition); + t = 1 - Math.pow(1 - t, 5); + + if (!_LastDragSucceded && _CarouselPlaying_OnFreeze) { + _CarouselPlayer.$Continue(_PlayToPosition_OnFreeze); + } + else if (currentPosition == toPosition) { + _CurrentSlideItem.$EnablePlayer(); + _CurrentSlideItem.$TryActivate(); + } + else { + + _CarouselPlayer.$PlayCarousel(currentPosition, toPosition, t * _SlideDuration); + } + } + } + + function PreventDragStart(event) { + $Jssor$.$CancelEvent(event); + } + + function OnDragStart(event) { + + _IsDragging = true; + _DragInvalid = false; + _LoadingTicket = null; + + $Jssor$.$AddEvent(document, _MoveEvent, OnDragMove); + + _LastTimeMoveByDrag = $Jssor$.$GetNow() - 50; + + _LastDragSucceded = 0; + Freeze(); + + if (!_CarouselPlaying_OnFreeze) + _DragOrientation = 0; + + if (_HandleTouchEventOnly) { + var touchPoint = event.touches[0]; + _DragStartMouseX = touchPoint.clientX; + _DragStartMouseY = touchPoint.clientY; + } + else { + var mousePoint = $Jssor$.$MousePosition(event); + + _DragStartMouseX = mousePoint.x; + _DragStartMouseY = mousePoint.y; + + if ($Jssor$.$IsBrowserFireFox() && $Jssor$.$BrowserVersion() < 4) + $Jssor$.$CancelEvent(event); + } + + _DragOffsetTotal = 0; + _DragOffsetLastTime = 0; + _DragIndexAdjust = 0; + + //Trigger EVT_DRAGSTART + _SelfSlider.$TriggerEvent($JssorSlider$.$EVT_DRAG_START, GetRealIndex(_Position_OnFreeze), _Position_OnFreeze, event); + } + + function OnDragMove(event) { + if (_IsDragging && (!$Jssor$.$IsBrowserIe9Earlier() || event.button)) { + var actionPoint; + + if (_HandleTouchEventOnly) { + var touches = event.touches; + if (touches && touches.length > 0) { + actionPoint = { x: touches[0].clientX, y: touches[0].clientY }; + } + } + else { + actionPoint = $Jssor$.$MousePosition(event); + } + + if (actionPoint) { + var distanceX = actionPoint.x - _DragStartMouseX; + var distanceY = actionPoint.y - _DragStartMouseY; + + + if (Math.floor(_Position_OnFreeze) != _Position_OnFreeze) + _DragOrientation = _DragOrientation || (_PlayOrientation & _DragOrientationRegistered); + + if ((distanceX || distanceY) && !_DragOrientation) { + if (_DragOrientationRegistered == 3) { + if (Math.abs(distanceY) > Math.abs(distanceX)) { + _DragOrientation = 2; + } + else + _DragOrientation = 1; + } + else { + _DragOrientation = _DragOrientationRegistered; + } + + if (_IsTouchDevice && _DragOrientation == 1 && Math.abs(distanceY) - Math.abs(distanceX) > 3) { + _DragInvalid = true; + } + } + + if (_DragOrientation) { + var distance = distanceY; + var stepLength = _StepLengthY; + + if (_DragOrientation == 1) { + distance = distanceX; + stepLength = _StepLengthX; + } + + if (!(_Loop & 1)) { + if (distance > 0) { + var normalDistance = stepLength * _CurrentSlideIndex; + var sqrtDistance = distance - normalDistance; + if (sqrtDistance > 0) { + distance = normalDistance + Math.sqrt(sqrtDistance) * 5; + } + } + + if (distance < 0) { + var normalDistance = stepLength * (_SlideCount - _DisplayPieces - _CurrentSlideIndex); + var sqrtDistance = -distance - normalDistance; + + if (sqrtDistance > 0) { + distance = -normalDistance - Math.sqrt(sqrtDistance) * 5; + } + } + } + + if (_DragOffsetTotal - _DragOffsetLastTime < -2) { + _DragIndexAdjust = 0; + } + else if (_DragOffsetTotal - _DragOffsetLastTime > 2) { + _DragIndexAdjust = -1; + } + + _DragOffsetLastTime = _DragOffsetTotal; + _DragOffsetTotal = distance; + _PositionToGoByDrag = _Position_OnFreeze - _DragOffsetTotal / stepLength / (_ScaleRatio || 1); + + if (_DragOffsetTotal && _DragOrientation && !_DragInvalid) { + $Jssor$.$CancelEvent(event); + if (!_IsSliding) { + _CarouselPlayer.$StandBy(_PositionToGoByDrag); + } + else + _CarouselPlayer.$SetStandByPosition(_PositionToGoByDrag); + } + else if ($Jssor$.$IsBrowserIe9Earlier()) { + $Jssor$.$CancelEvent(event); + } + } + } + } + else { + OnDragEnd(event); + } + } + + function OnDragEnd(event) { + UnregisterDrag(); + + if (_IsDragging) { + + _IsDragging = false; + + _LastTimeMoveByDrag = $Jssor$.$GetNow(); + + $Jssor$.$RemoveEvent(document, _MoveEvent, OnDragMove); + + _LastDragSucceded = _DragOffsetTotal; + + //_LastDragSucceded && $Jssor$.$CancelEvent(event); + + _CarouselPlayer.$Stop(); + + var currentPosition = _Conveyor.$GetPosition(); + + //Trigger EVT_DRAG_END + _SelfSlider.$TriggerEvent($JssorSlider$.$EVT_DRAG_END, GetRealIndex(currentPosition), currentPosition, GetRealIndex(_Position_OnFreeze), _Position_OnFreeze, event); + + Unfreeze(true); + } + } + //Event handling end + + function SetCurrentSlideIndex(index) { + _PrevSlideItem = _SlideItems[_CurrentSlideIndex]; + _PreviousSlideIndex = _CurrentSlideIndex; + _CurrentSlideIndex = GetRealIndex(index); + _CurrentSlideItem = _SlideItems[_CurrentSlideIndex]; + ResetNavigator(index); + return _CurrentSlideIndex; + } + + function OnPark(slideIndex, prevIndex) { + _DragOrientation = 0; + + SetCurrentSlideIndex(slideIndex); + + //Trigger EVT_PARK + _SelfSlider.$TriggerEvent($JssorSlider$.$EVT_PARK, GetRealIndex(slideIndex), prevIndex); + } + + function ResetNavigator(index, temp) { + _TempSlideIndex = index; + $Jssor$.$Each(_Navigators, function (navigator) { + navigator.$SetCurrentIndex(GetRealIndex(index), index, temp); + }); + } + + function RegisterDrag() { + var dragRegistry = $JssorSlider$.$DragRegistry || 0; + var dragOrientation = _DragEnabled; + if (_IsTouchDevice) + (dragOrientation & 1) && (dragOrientation &= 1); + $JssorSlider$.$DragRegistry |= dragOrientation; + + return (_DragOrientationRegistered = dragOrientation & ~dragRegistry); + } + + function UnregisterDrag() { + if (_DragOrientationRegistered) { + $JssorSlider$.$DragRegistry &= ~_DragEnabled; + _DragOrientationRegistered = 0; + } + } + + function CreatePanel() { + var div = $Jssor$.$CreateDiv(); + + $Jssor$.$SetStyles(div, _StyleDef); + $Jssor$.$CssPosition(div, "absolute"); + + return div; + } + + function GetRealIndex(index) { + return (index % _SlideCount + _SlideCount) % _SlideCount; + } + + function IsCurrentSlideIndex(index) { + return GetRealIndex(index) == _CurrentSlideIndex; + } + + function IsPreviousSlideIndex(index) { + return GetRealIndex(index) == _PreviousSlideIndex; + } + + //Navigation Request Handler + function NavigationClickHandler(index, relative) { + if (relative) { + if (!_Loop) { + //Stop at threshold + index = Math.min(Math.max(index + _TempSlideIndex, 0), _SlideCount - _DisplayPieces); + relative = false; + } + else if (_Loop & 2) { + //Rewind + index = GetRealIndex(index + _TempSlideIndex); + relative = false; + } + } + PlayTo(index, _Options.$SlideDuration, relative); + } + + function ShowNavigators() { + $Jssor$.$Each(_Navigators, function (navigator) { + navigator.$Show(navigator.$Options.$ChanceToShow <= _NotOnHover); + }); + } + + function MainContainerMouseLeaveEventHandler() { + if (!_NotOnHover) { + + //$JssorDebug$.$Log("mouseleave"); + + _NotOnHover = 1; + + ShowNavigators(); + + if (!_IsDragging) { + (_HoverToPause & 12) && Unfreeze(); + (_HoverToPause & 3) && _SlideItems[_CurrentSlideIndex].$TryActivate(); + } + } + } + + function MainContainerMouseEnterEventHandler() { + + if (_NotOnHover) { + + //$JssorDebug$.$Log("mouseenter"); + + _NotOnHover = 0; + + ShowNavigators(); + + _IsDragging || !(_HoverToPause & 12) || Freeze(); + } + } + + function AdjustSlidesContainerSize() { + _StyleDef = { $Width: _SlideWidth, $Height: _SlideHeight, $Top: 0, $Left: 0 }; + + $Jssor$.$Each(_SlideElmts, function (slideElmt, i) { + + $Jssor$.$SetStyles(slideElmt, _StyleDef); + $Jssor$.$CssPosition(slideElmt, "absolute"); + $Jssor$.$CssOverflow(slideElmt, "hidden"); + + $Jssor$.$HideElement(slideElmt); + }); + + $Jssor$.$SetStyles(_LoadingContainer, _StyleDef); + } + + function PlayToOffset(offset, slideDuration) { + PlayTo(offset, slideDuration, true); + } + + function PlayTo(slideIndex, slideDuration, relative) { + /// + /// PlayTo( slideIndex [, slideDuration] ); //Play slider to position 'slideIndex' within a period calculated base on 'slideDuration'. + /// + /// + /// slide slideIndex or position will be playing to + /// + /// + /// base slide duration in milliseconds to calculate the whole duration to complete this play request. + /// default value is '$SlideDuration' value which is specified when initialize the slider. + /// + /// http://msdn.microsoft.com/en-us/library/vstudio/bb385682.aspx + /// http://msdn.microsoft.com/en-us/library/vstudio/hh542720.aspx + if (_CarouselEnabled && (!_IsDragging || _Options.$NaviQuitDrag)) { + _IsSliding = true; + _IsDragging = false; + _CarouselPlayer.$Stop(); + + { + //Slide Duration + if (slideDuration == undefined) + slideDuration = _SlideDuration; + + var positionDisplay = _Carousel.$GetPosition_Display(); + var positionTo = slideIndex; + if (relative) { + positionTo = positionDisplay + slideIndex; + if (slideIndex > 0) + positionTo = Math.ceil(positionTo); + else + positionTo = Math.floor(positionTo); + } + + if (_Loop & 2) { + //Rewind + positionTo = GetRealIndex(positionTo); + } + if (!(_Loop & 1)) { + //Stop at threshold + positionTo = Math.max(0, Math.min(positionTo, _SlideCount - _DisplayPieces)); + } + + var positionOffset = (positionTo - positionDisplay) % _SlideCount; + positionTo = positionDisplay + positionOffset; + + var duration = positionDisplay == positionTo ? 0 : slideDuration * Math.abs(positionOffset); + duration = Math.min(duration, slideDuration * _DisplayPieces * 1.5); + + _CarouselPlayer.$PlayCarousel(positionDisplay, positionTo, duration || 1); + } + } + } + + //private functions + + //member functions + + _SelfSlider.$PlayTo = PlayTo; + + _SelfSlider.$GoTo = function (slideIndex) { + /// + /// instance.$GoTo( slideIndex ); //Go to the specifed slide immediately with no play. + /// + PlayTo(slideIndex, 1); + }; + + _SelfSlider.$Next = function () { + /// + /// instance.$Next(); //Play the slider to next slide. + /// + PlayToOffset(1); + }; + + _SelfSlider.$Prev = function () { + /// + /// instance.$Prev(); //Play the slider to previous slide. + /// + PlayToOffset(-1); + }; + + _SelfSlider.$Pause = function () { + /// + /// instance.$Pause(); //Pause the slider, prevent it from auto playing. + /// + _AutoPlay = false; + }; + + _SelfSlider.$Play = function () { + /// + /// instance.$Play(); //Start auto play if the slider is currently paused. + /// + if (!_AutoPlay) { + _AutoPlay = true; + _SlideItems[_CurrentSlideIndex] && _SlideItems[_CurrentSlideIndex].$TryActivate(); + } + }; + + _SelfSlider.$SetSlideshowTransitions = function (transitions) { + /// + /// instance.$SetSlideshowTransitions( transitions ); //Reset slideshow transitions for the slider. + /// + $JssorDebug$.$Execute(function () { + if (!transitions || !transitions.length) { + $JssorDebug$.$Error("Can not set slideshow transitions, no transitions specified."); + } + }); + + //$Jssor$.$TranslateTransitions(transitions); //for old transition compatibility + _Options.$SlideshowOptions.$Transitions = transitions; + }; + + _SelfSlider.$SetCaptionTransitions = function (transitions) { + /// + /// instance.$SetCaptionTransitions( transitions ); //Reset caption transitions for the slider. + /// + $JssorDebug$.$Execute(function () { + if (!transitions || !transitions.length) { + $JssorDebug$.$Error("Can not set caption transitions, no transitions specified"); + } + }); + + //$Jssor$.$TranslateTransitions(transitions); //for old transition compatibility + _CaptionSliderOptions.$CaptionTransitions = transitions; + _CaptionSliderOptions.$Version = $Jssor$.$GetNow(); + }; + + _SelfSlider.$SlidesCount = function () { + /// + /// instance.$SlidesCount(); //Retrieve slides count of the slider. + /// + return _SlideElmts.length; + }; + + _SelfSlider.$CurrentIndex = function () { + /// + /// instance.$CurrentIndex(); //Retrieve current slide index of the slider. + /// + return _CurrentSlideIndex; + }; + + _SelfSlider.$IsAutoPlaying = function () { + /// + /// instance.$IsAutoPlaying(); //Retrieve auto play status of the slider. + /// + return _AutoPlay; + }; + + _SelfSlider.$IsDragging = function () { + /// + /// instance.$IsDragging(); //Retrieve drag status of the slider. + /// + return _IsDragging; + }; + + _SelfSlider.$IsSliding = function () { + /// + /// instance.$IsSliding(); //Retrieve right<-->left sliding status of the slider. + /// + return _IsSliding; + }; + + _SelfSlider.$IsMouseOver = function () { + /// + /// instance.$IsMouseOver(); //Retrieve mouse over status of the slider. + /// + return !_NotOnHover; + }; + + _SelfSlider.$LastDragSucceded = function () { + /// + /// instance.$IsLastDragSucceded(); //Retrieve last drag succeded status, returns 0 if failed, returns drag offset if succeded + /// + return _LastDragSucceded; + }; + + function OriginalWidth() { + /// + /// instance.$OriginalWidth(); //Retrieve original width of the slider. + /// + return $Jssor$.$CssWidth(_ScaleWrapper || elmt); + } + + function OriginalHeight() { + /// + /// instance.$OriginalHeight(); //Retrieve original height of the slider. + /// + return $Jssor$.$CssHeight(_ScaleWrapper || elmt); + } + + _SelfSlider.$OriginalWidth = _SelfSlider.$GetOriginalWidth = OriginalWidth; + + _SelfSlider.$OriginalHeight = _SelfSlider.$GetOriginalHeight = OriginalHeight; + + function Scale(dimension, isHeight) { + /// + /// instance.$ScaleWidth(); //Retrieve scaled dimension the slider currently displays. + /// instance.$ScaleWidth( dimension ); //Scale the slider to new width and keep aspect ratio. + /// + + if (dimension == undefined) + return $Jssor$.$CssWidth(elmt); + + if (!_ScaleWrapper) { + $JssorDebug$.$Execute(function () { + var originalWidthStr = $Jssor$.$Css(elmt, "width"); + var originalHeightStr = $Jssor$.$Css(elmt, "height"); + var originalWidth = $Jssor$.$CssP(elmt, "width"); + var originalHeight = $Jssor$.$CssP(elmt, "height"); + + if (!originalWidthStr || originalWidthStr.indexOf("px") == -1) { + $JssorDebug$.$Fail("Cannot scale jssor slider, 'width' of 'outer container' not specified. Please specify 'width' in pixel. e.g. 'width: 600px;'"); + } + + if (!originalHeightStr || originalHeightStr.indexOf("px") == -1) { + $JssorDebug$.$Fail("Cannot scale jssor slider, 'height' of 'outer container' not specified. Please specify 'height' in pixel. e.g. 'height: 300px;'"); + } + + if (originalWidthStr.indexOf('%') != -1) { + $JssorDebug$.$Fail("Cannot scale jssor slider, 'width' of 'outer container' not valid. Please specify 'width' in pixel. e.g. 'width: 600px;'"); + } + + if (originalHeightStr.indexOf('%') != -1) { + $JssorDebug$.$Fail("Cannot scale jssor slider, 'height' of 'outer container' not valid. Please specify 'height' in pixel. e.g. 'height: 300px;'"); + } + + if (!originalWidth) { + $JssorDebug$.$Fail("Cannot scale jssor slider, 'width' of 'outer container' not valid. 'width' of 'outer container' should be positive number. e.g. 'width: 600px;'"); + } + + if (!originalHeight) { + $JssorDebug$.$Fail("Cannot scale jssor slider, 'height' of 'outer container' not valid. 'height' of 'outer container' should be positive number. e.g. 'height: 300px;'"); + } + }); + + var innerWrapper = $Jssor$.$CreateDiv(document); + $Jssor$.$ClassName(innerWrapper, $Jssor$.$ClassName(elmt)); + $Jssor$.$CssCssText(innerWrapper, $Jssor$.$CssCssText(elmt)); + $Jssor$.$CssDisplay(innerWrapper, "block"); + + $Jssor$.$CssPosition(innerWrapper, "relative"); + $Jssor$.$CssTop(innerWrapper, 0); + $Jssor$.$CssLeft(innerWrapper, 0); + $Jssor$.$CssOverflow(innerWrapper, "visible"); + + _ScaleWrapper = $Jssor$.$CreateDiv(document); + + $Jssor$.$CssPosition(_ScaleWrapper, "absolute"); + $Jssor$.$CssTop(_ScaleWrapper, 0); + $Jssor$.$CssLeft(_ScaleWrapper, 0); + $Jssor$.$CssWidth(_ScaleWrapper, $Jssor$.$CssWidth(elmt)); + $Jssor$.$CssHeight(_ScaleWrapper, $Jssor$.$CssHeight(elmt)); + $Jssor$.$SetStyleTransformOrigin(_ScaleWrapper, "0 0"); + + $Jssor$.$AppendChild(_ScaleWrapper, innerWrapper); + + var children = $Jssor$.$Children(elmt); + $Jssor$.$AppendChild(elmt, _ScaleWrapper); + + $Jssor$.$Css(elmt, "backgroundImage", ""); + + var noMoveElmts = { + "navigator": _BulletNavigatorOptions && _BulletNavigatorOptions.$Scale == false, + "arrowleft": _ArrowNavigatorOptions && _ArrowNavigatorOptions.$Scale == false, + "arrowright": _ArrowNavigatorOptions && _ArrowNavigatorOptions.$Scale == false, + "thumbnavigator": _ThumbnailNavigatorOptions && _ThumbnailNavigatorOptions.$Scale == false, + "thumbwrapper": _ThumbnailNavigatorOptions && _ThumbnailNavigatorOptions.$Scale == false + }; + + $Jssor$.$Each(children, function (child) { + $Jssor$.$AppendChild(noMoveElmts[$Jssor$.$AttributeEx(child, "u")] ? elmt : innerWrapper, child); + }); + } + + $JssorDebug$.$Execute(function () { + if (!dimension || dimension < 0) { + $JssorDebug$.$Fail("'$ScaleWidth' error, 'dimension' should be positive value."); + } + }); + + $JssorDebug$.$Execute(function () { + if (!_InitialScrollWidth) { + _InitialScrollWidth = _SelfSlider.$Elmt.scrollWidth; + } + }); + + _ScaleRatio = dimension / (isHeight ? $Jssor$.$CssHeight : $Jssor$.$CssWidth)(_ScaleWrapper); + $Jssor$.$CssScale(_ScaleWrapper, _ScaleRatio); + + var scaleWidth = isHeight ? (_ScaleRatio * OriginalWidth()) : dimension; + var scaleHeight = isHeight ? dimension : (_ScaleRatio * OriginalHeight()); + + $Jssor$.$CssWidth(elmt, scaleWidth); + $Jssor$.$CssHeight(elmt, scaleHeight); + + $Jssor$.$Each(_Navigators, function (navigator) { + navigator.$Relocate(scaleWidth, scaleHeight); + }); + } + + _SelfSlider.$ScaleHeight = _SelfSlider.$GetScaleHeight = function (height) { + /// + /// instance.$ScaleHeight(); //Retrieve scaled height the slider currently displays. + /// instance.$ScaleHeight( dimension ); //Scale the slider to new height and keep aspect ratio. + /// + + if (height == undefined) + return $Jssor$.$CssHeight(elmt); + + Scale(height, true); + }; + + _SelfSlider.$ScaleWidth = _SelfSlider.$SetScaleWidth = _SelfSlider.$GetScaleWidth = Scale; + + _SelfSlider.$GetVirtualIndex = function (index) { + var parkingIndex = Math.ceil(GetRealIndex(_ParkingPosition / _StepLength)); + var displayIndex = GetRealIndex(index - _CurrentSlideIndex + parkingIndex); + + if (displayIndex > _DisplayPieces) { + if (index - _CurrentSlideIndex > _SlideCount / 2) + index -= _SlideCount; + else if (index - _CurrentSlideIndex <= -_SlideCount / 2) + index += _SlideCount; + } + else { + index = _CurrentSlideIndex + displayIndex - parkingIndex; + } + + return index; + }; + + //member functions + + $JssorObject$.call(_SelfSlider); + + $JssorDebug$.$Execute(function () { + var outerContainerElmt = $Jssor$.$GetElement(elmt); + if (!outerContainerElmt) + $JssorDebug$.$Fail("Outer container '" + elmt + "' not found."); + }); + + //initialize member variables + _SelfSlider.$Elmt = elmt = $Jssor$.$GetElement(elmt); + //initialize member variables + + var _InitialScrollWidth; //for debug only + var _CaptionSliderCount = 1; //for debug only + + var _Options = $Jssor$.$Extend({ + $FillMode: 0, //[Optional] The way to fill image in slide, 0 stretch, 1 contain (keep aspect ratio and put all inside slide), 2 cover (keep aspect ratio and cover whole slide), 4 actual size, 5 contain for large image, actual size for small image, default value is 0 + $LazyLoading: 1, //[Optional] For image with lazy loading format (), by default it will be loaded only when the slide comes. + //But an integer value (maybe 0, 1, 2 or 3) indicates that how far of nearby slides should be loaded immediately as well, default value is 1. + $StartIndex: 0, //[Optional] Index of slide to display when initialize, default value is 0 + $AutoPlay: false, //[Optional] Whether to auto play, default value is false + $Loop: 1, //[Optional] Enable loop(circular) of carousel or not, 0: stop, 1: loop, 2 rewind, default value is 1 + $HWA: true, //[Optional] Enable hardware acceleration or not, default value is true + $NaviQuitDrag: true, + $AutoPlaySteps: 1, //[Optional] Steps to go of every play (this options applys only when slideshow disabled), default value is 1 + $AutoPlayInterval: 3000, //[Optional] Interval to play next slide since the previous stopped if a slideshow is auto playing, default value is 3000 + $PauseOnHover: 1, //[Optional] Whether to pause when mouse over if a slider is auto playing, 0 no pause, 1 pause for desktop, 2 pause for touch device, 3 pause for desktop and touch device, 4 freeze for desktop, 8 freeze for touch device, 12 freeze for desktop and touch device, default value is 1 + + $SlideDuration: 500, //[Optional] Specifies default duration (swipe) for slide in milliseconds, default value is 400 + $SlideEasing: $JssorEasing$.$EaseOutQuad, //[Optional] Specifies easing for right to left animation, default value is $JssorEasing$.$EaseOutQuad + $MinDragOffsetToSlide: 20, //[Optional] Minimum drag offset that trigger slide, default value is 20 + $SlideSpacing: 0, //[Optional] Space between each slide in pixels, default value is 0 + $DisplayPieces: 1, //[Optional] Number of pieces to display (the slideshow would be disabled if the value is set to greater than 1), default value is 1 + $ParkingPosition: 0, //[Optional] The offset position to park slide (this options applys only when slideshow disabled), default value is 0. + $UISearchMode: 1, //[Optional] The way (0 parellel, 1 recursive, default value is recursive) to search UI components (slides container, loading screen, navigator container, arrow navigator container, thumbnail navigator container etc. + $PlayOrientation: 1, //[Optional] Orientation to play slide (for auto play, navigation), 1 horizental, 2 vertical, 5 horizental reverse, 6 vertical reverse, default value is 1 + $DragOrientation: 1 //[Optional] Orientation to drag slide, 0 no drag, 1 horizental, 2 vertical, 3 both, default value is 1 (Note that the $DragOrientation should be the same as $PlayOrientation when $DisplayPieces is greater than 1, or parking position is not 0) + + }, options); + + //Sodo statement for development time intellisence only + $JssorDebug$.$Execute(function () { + _Options = $Jssor$.$Extend({ + $ArrowKeyNavigation: undefined, + $SlideWidth: undefined, + $SlideHeight: undefined, + $SlideshowOptions: undefined, + $CaptionSliderOptions: undefined, + $BulletNavigatorOptions: undefined, + $ArrowNavigatorOptions: undefined, + $ThumbnailNavigatorOptions: undefined + }, + _Options); + }); + + var _PlayOrientation = _Options.$PlayOrientation & 3; + var _PlayReverse = (_Options.$PlayOrientation & 4) / -4 || 1; + + var _SlideshowOptions = _Options.$SlideshowOptions; + var _CaptionSliderOptions = $Jssor$.$Extend({ $Class: $JssorCaptionSliderBase$, $PlayInMode: 1, $PlayOutMode: 1 }, _Options.$CaptionSliderOptions); + //$Jssor$.$TranslateTransitions(_CaptionSliderOptions.$CaptionTransitions); //for old transition compatibility + var _BulletNavigatorOptions = _Options.$BulletNavigatorOptions; + var _ArrowNavigatorOptions = _Options.$ArrowNavigatorOptions; + var _ThumbnailNavigatorOptions = _Options.$ThumbnailNavigatorOptions; + + $JssorDebug$.$Execute(function () { + if (_SlideshowOptions && !_SlideshowOptions.$Class) { + $JssorDebug$.$Fail("Option $SlideshowOptions error, class not specified."); + } + }); + + $JssorDebug$.$Execute(function () { + if (_Options.$CaptionSliderOptions && !_Options.$CaptionSliderOptions.$Class) { + $JssorDebug$.$Fail("Option $CaptionSliderOptions error, class not specified."); + } + }); + + $JssorDebug$.$Execute(function () { + if (_BulletNavigatorOptions && !_BulletNavigatorOptions.$Class) { + $JssorDebug$.$Fail("Option $BulletNavigatorOptions error, class not specified."); + } + }); + + $JssorDebug$.$Execute(function () { + if (_ArrowNavigatorOptions && !_ArrowNavigatorOptions.$Class) { + $JssorDebug$.$Fail("Option $ArrowNavigatorOptions error, class not specified."); + } + }); + + $JssorDebug$.$Execute(function () { + if (_ThumbnailNavigatorOptions && !_ThumbnailNavigatorOptions.$Class) { + $JssorDebug$.$Fail("Option $ThumbnailNavigatorOptions error, class not specified."); + } + }); + + var _UISearchNoDeep = !_Options.$UISearchMode; + var _ScaleWrapper; + var _SlidesContainer = $Jssor$.$FindChild(elmt, "slides", _UISearchNoDeep); + var _LoadingContainer = $Jssor$.$FindChild(elmt, "loading", _UISearchNoDeep) || $Jssor$.$CreateDiv(document); + + var _BulletNavigatorContainer = $Jssor$.$FindChild(elmt, "navigator", _UISearchNoDeep); + + var _ArrowLeft = $Jssor$.$FindChild(elmt, "arrowleft", _UISearchNoDeep); + var _ArrowRight = $Jssor$.$FindChild(elmt, "arrowright", _UISearchNoDeep); + + var _ThumbnailNavigatorContainer = $Jssor$.$FindChild(elmt, "thumbnavigator", _UISearchNoDeep); + + $JssorDebug$.$Execute(function () { + //if (_BulletNavigatorOptions && !_BulletNavigatorContainer) { + // throw new Error("$BulletNavigatorOptions specified but bullet navigator container (
      1 && _Options.$DragOrientation && _Options.$DragOrientation != _PlayOrientation) + $JssorDebug$.$Fail("Option $DragOrientation error, it should be 0 or the same of $PlayOrientation when $DisplayPieces is greater than 1."); + + if (!$Jssor$.$IsNumeric(_Options.$ParkingPosition)) + $JssorDebug$.$Fail("Option $ParkingPosition error, it should be a numeric value."); + + if (_Options.$ParkingPosition && _Options.$DragOrientation && _Options.$DragOrientation != _PlayOrientation) + $JssorDebug$.$Fail("Option $DragOrientation error, it should be 0 or the same of $PlayOrientation when $ParkingPosition is not equal to 0."); + }); + + var _StyleDef; + + var _SlideElmts = []; + + { + var slideElmts = $Jssor$.$Children(_SlidesContainer); + $Jssor$.$Each(slideElmts, function (slideElmt) { + if (slideElmt.tagName == "DIV" && !$Jssor$.$AttributeEx(slideElmt, "u")) { + _SlideElmts.push(slideElmt); + } + }); + } + + $JssorDebug$.$Execute(function () { + if (_SlideElmts.length < 1) { + $JssorDebug$.$Error("Slides html code definition error, there must be at least 1 slide to initialize a slider."); + } + }); + + var _SlideItemCreatedCount = 0; //for debug only + var _SlideItemReleasedCount = 0; //for debug only + + var _PreviousSlideIndex; + var _CurrentSlideIndex = -1; + var _TempSlideIndex; + var _PrevSlideItem; + var _CurrentSlideItem; + var _SlideCount = _SlideElmts.length; + + var _SlideWidth = _Options.$SlideWidth || _SlidesContainerWidth; + var _SlideHeight = _Options.$SlideHeight || _SlidesContainerHeight; + + var _SlideSpacing = _Options.$SlideSpacing; + var _StepLengthX = _SlideWidth + _SlideSpacing; + var _StepLengthY = _SlideHeight + _SlideSpacing; + var _StepLength = (_PlayOrientation & 1) ? _StepLengthX : _StepLengthY; + var _DisplayPieces = Math.min(_Options.$DisplayPieces, _SlideCount); + + var _SlideshowPanel; + var _CurrentBoardIndex = 0; + var _DragOrientation; + var _DragOrientationRegistered; + var _DragInvalid; + + var _Navigators = []; + var _BulletNavigator; + var _ArrowNavigator; + var _ThumbnailNavigator; + + var _ShowLink; + + var _Frozen; + var _AutoPlay; + var _AutoPlaySteps = _Options.$AutoPlaySteps; + var _HoverToPause = _Options.$PauseOnHover; + var _AutoPlayInterval = _Options.$AutoPlayInterval; + var _SlideDuration = _Options.$SlideDuration; + + var _SlideshowRunnerClass; + var _TransitionsOrder; + + var _SlideshowEnabled; + var _ParkingPosition; + var _CarouselEnabled = _DisplayPieces < _SlideCount; + var _Loop = _CarouselEnabled ? _Options.$Loop : 0; + + var _DragEnabled; + var _LastDragSucceded; + + var _NotOnHover = 1; //0 Hovering, 1 Not hovering + + //Variable Definition + var _IsSliding; + var _IsDragging; + var _LoadingTicket; + + //The X position of mouse/touch when a drag start + var _DragStartMouseX = 0; + //The Y position of mouse/touch when a drag start + var _DragStartMouseY = 0; + var _DragOffsetTotal; + var _DragOffsetLastTime; + var _DragIndexAdjust; + + var _Carousel; + var _Conveyor; + var _Slideshow; + var _CarouselPlayer; + var _SlideContainer = new SlideContainer(); + var _ScaleRatio; + + //$JssorSlider$ Constructor + { + _AutoPlay = _Options.$AutoPlay; + _SelfSlider.$Options = options; + + AdjustSlidesContainerSize(); + + elmt["jssor-slider"] = true; + + //_SlideshowPanel = CreatePanel(); + //$Jssor$.$CssZIndex(elmt, $Jssor$.$CssZIndex(elmt)); + //$Jssor$.$CssLeft(_SlideshowPanel, $Jssor$.$CssLeft(_SlidesContainer)); + //$Jssor$.$CssZIndex(_SlidesContainer, $Jssor$.$CssZIndex(_SlidesContainer)); + //$Jssor$.$CssTop(_SlideshowPanel, $Jssor$.$CssTop(_SlidesContainer)); + $Jssor$.$CssZIndex(_SlidesContainer, $Jssor$.$CssZIndex(_SlidesContainer) || 0); + $Jssor$.$CssPosition(_SlidesContainer, "absolute"); + _SlideshowPanel = $Jssor$.$CloneNode(_SlidesContainer, true); + $Jssor$.$InsertBefore(_SlideshowPanel, _SlidesContainer); + + if (_SlideshowOptions) { + _ShowLink = _SlideshowOptions.$ShowLink; + _SlideshowRunnerClass = _SlideshowOptions.$Class; + + $JssorDebug$.$Execute(function () { + if (!_SlideshowOptions.$Transitions || !_SlideshowOptions.$Transitions.length) { + $JssorDebug$.$Error("Invalid '$SlideshowOptions', no '$Transitions' specified."); + } + }); + + //$Jssor$.$TranslateTransitions(_SlideshowOptions.$Transitions); //for old transition compatibility + + _SlideshowEnabled = _DisplayPieces == 1 && _SlideCount > 1 && _SlideshowRunnerClass && (!$Jssor$.$IsBrowserIE() || $Jssor$.$BrowserVersion() >= 8); + } + + _ParkingPosition = (_SlideshowEnabled || _DisplayPieces >= _SlideCount || !(_Loop & 1)) ? 0 : _Options.$ParkingPosition; + + _DragEnabled = ((_DisplayPieces > 1 || _ParkingPosition) ? _PlayOrientation : -1) & _Options.$DragOrientation; + + //SlideBoard + var _SlideboardElmt = _SlidesContainer; + var _SlideItems = []; + + var _SlideshowRunner; + var _LinkContainer; + + var _Device = $Jssor$.$Device(); + var _DownEvent = _Device.$Evt_Down; + var _MoveEvent = _Device.$Evt_Move; + var _UpEvent = _Device.$Evt_Up; + var _CancelEvent = _Device.$Evt_Cancel; + + var _HandleTouchEventOnly = _Device.$TouchOnly; + var _IsTouchDevice = _Device.$Touchable; + + var _LastTimeMoveByDrag; + var _Position_OnFreeze; + var _CarouselPlaying_OnFreeze; + var _PlayToPosition_OnFreeze; + var _PositionToGoByDrag; + + //SlideBoard Constructor + { + if (_Device.$TouchActionAttr) { + if (_DragEnabled) { + var touchAction = "auto"; + if (_DragEnabled == 2) { + touchAction = "pan-x"; + } + else if (_DragEnabled) { + touchAction = "pan-y"; + } + + $Jssor$.$Css(_SlideboardElmt, _Device.$TouchActionAttr, touchAction); + } + } + + _Slideshow = new Slideshow(); + + if (_SlideshowEnabled) + _SlideshowRunner = new _SlideshowRunnerClass(_SlideContainer, _SlideWidth, _SlideHeight, _SlideshowOptions, _IsTouchDevice); + + $Jssor$.$AppendChild(_SlideshowPanel, _Slideshow.$Wrapper); + $Jssor$.$CssOverflow(_SlidesContainer, "hidden"); + + //link container + { + _LinkContainer = CreatePanel(); + $Jssor$.$Css(_LinkContainer, "backgroundColor", "#000"); + $Jssor$.$CssOpacity(_LinkContainer, 0); + $Jssor$.$InsertBefore(_LinkContainer, _SlideboardElmt.firstChild, _SlideboardElmt); + } + + for (var i = 0; i < _SlideElmts.length; i++) { + var slideElmt = _SlideElmts[i]; + var slideItem = new SlideItem(slideElmt, i); + _SlideItems.push(slideItem); + } + + $Jssor$.$HideElement(_LoadingContainer); + + $JssorDebug$.$Execute(function () { + $Jssor$.$Attribute(_LoadingContainer, "debug-id", "loading-container"); + }); + + _Carousel = new Carousel() + _CarouselPlayer = new CarouselPlayer(_Carousel, _Slideshow); + + $JssorDebug$.$Execute(function () { + $Jssor$.$Attribute(_SlideboardElmt, "debug-id", "slide-board"); + }); + + if (_DragEnabled) { + $Jssor$.$AddEvent(_SlidesContainer, _DownEvent, OnMouseDown); + $Jssor$.$AddEvent(_SlidesContainer, "dragstart", PreventDragStart); + $Jssor$.$AddEvent(document, _UpEvent, OnDragEnd); + _CancelEvent && $Jssor$.$AddEvent(document, _CancelEvent, OnDragEnd); + } + } + //SlideBoard + + _HoverToPause &= (_IsTouchDevice ? 10 : 5); + + //Bullet Navigator + if (_BulletNavigatorContainer && _BulletNavigatorOptions) { + _BulletNavigator = new _BulletNavigatorOptions.$Class(_BulletNavigatorContainer, _BulletNavigatorOptions, OriginalWidth(), OriginalHeight()); + _Navigators.push(_BulletNavigator); + } + + //Arrow Navigator + if (_ArrowNavigatorOptions && _ArrowLeft && _ArrowRight) { + _ArrowNavigatorOptions.$Loop = _Loop; + _ArrowNavigatorOptions.$DisplayPieces = _DisplayPieces; + _ArrowNavigator = new _ArrowNavigatorOptions.$Class(_ArrowLeft, _ArrowRight, _ArrowNavigatorOptions, OriginalWidth(), OriginalHeight()); + _Navigators.push(_ArrowNavigator); + } + + //Thumbnail Navigator + if (_ThumbnailNavigatorContainer && _ThumbnailNavigatorOptions) { + _ThumbnailNavigatorOptions.$StartIndex = _Options.$StartIndex; + _ThumbnailNavigator = new _ThumbnailNavigatorOptions.$Class(_ThumbnailNavigatorContainer, _ThumbnailNavigatorOptions); + _Navigators.push(_ThumbnailNavigator); + } + + $Jssor$.$Each(_Navigators, function (navigator) { + navigator.$Reset(_SlideCount, _SlideItems, _LoadingContainer); + navigator.$On($JssorNavigatorEvents$.$NAVIGATIONREQUEST, NavigationClickHandler); + }); + + Scale(OriginalWidth()); + + $Jssor$.$AddEvent(elmt, "mouseout", $Jssor$.$MouseOverOutFilter(MainContainerMouseLeaveEventHandler, elmt)); + $Jssor$.$AddEvent(elmt, "mouseover", $Jssor$.$MouseOverOutFilter(MainContainerMouseEnterEventHandler, elmt)); + + ShowNavigators(); + + //Keyboard Navigation + if (_Options.$ArrowKeyNavigation) { + $Jssor$.$AddEvent(document, "keydown", function (e) { + if (e.keyCode == $JssorKeyCode$.$LEFT) { + //Arrow Left + PlayToOffset(-1); + } + else if (e.keyCode == $JssorKeyCode$.$RIGHT) { + //Arrow Right + PlayToOffset(1); + } + }); + } + + var startPosition = _Options.$StartIndex; + if (!(_Loop & 1)) { + startPosition = Math.max(0, Math.min(startPosition, _SlideCount - _DisplayPieces)); + } + _CarouselPlayer.$PlayCarousel(startPosition, startPosition, 0); + } +}; +var $JssorSlideo$ = window.$JssorSlideo$ = $JssorSlider$; + +$JssorSlider$.$EVT_CLICK = 21; +$JssorSlider$.$EVT_DRAG_START = 22; +$JssorSlider$.$EVT_DRAG_END = 23; +$JssorSlider$.$EVT_SWIPE_START = 24; +$JssorSlider$.$EVT_SWIPE_END = 25; + +$JssorSlider$.$EVT_LOAD_START = 26; +$JssorSlider$.$EVT_LOAD_END = 27; +$JssorSlider$.$EVT_FREEZE = 28; + +$JssorSlider$.$EVT_POSITION_CHANGE = 202; +$JssorSlider$.$EVT_PARK = 203; + +$JssorSlider$.$EVT_SLIDESHOW_START = 206; +$JssorSlider$.$EVT_SLIDESHOW_END = 207; + +$JssorSlider$.$EVT_PROGRESS_CHANGE = 208; +$JssorSlider$.$EVT_STATE_CHANGE = 209; +$JssorSlider$.$EVT_ROLLBACK_START = 210; +$JssorSlider$.$EVT_ROLLBACK_END = 211; + +//(function ($) { +// jQuery.fn.jssorSlider = function (options) { +// return this.each(function () { +// return $(this).data('jssorSlider') || $(this).data('jssorSlider', new $JssorSlider$(this, options)); +// }); +// }; +//})(jQuery); + +//window.jQuery && (jQuery.fn.jssorSlider = function (options) { +// return this.each(function () { +// return jQuery(this).data('jssorSlider') || jQuery(this).data('jssorSlider', new $JssorSlider$(this, options)); +// }); +//}); + +//$JssorBulletNavigator$ +var $JssorNavigatorEvents$ = { + $NAVIGATIONREQUEST: 1, + $INDEXCHANGE: 2, + $RESET: 3 +}; + +var $JssorBulletNavigator$ = window.$JssorBulletNavigator$ = function (elmt, options, containerWidth, containerHeight) { + var self = this; + $JssorObject$.call(self); + + elmt = $Jssor$.$GetElement(elmt); + + var _Count; + var _Length; + var _Width; + var _Height; + var _CurrentIndex; + var _CurrentInnerIndex = 0; + var _Options; + var _Steps; + var _Lanes; + var _SpacingX; + var _SpacingY; + var _Orientation; + var _ItemPrototype; + var _PrototypeWidth; + var _PrototypeHeight; + + var _ButtonElements = []; + var _Buttons = []; + + function Highlight(index) { + if (index != -1) + _Buttons[index].$Selected(index == _CurrentInnerIndex); + } + + function OnNavigationRequest(index) { + self.$TriggerEvent($JssorNavigatorEvents$.$NAVIGATIONREQUEST, index * _Steps); + } + + self.$Elmt = elmt; + self.$GetCurrentIndex = function () { + return _CurrentIndex; + }; + + self.$SetCurrentIndex = function (index) { + if (index != _CurrentIndex) { + var lastInnerIndex = _CurrentInnerIndex; + var innerIndex = Math.floor(index / _Steps); + _CurrentInnerIndex = innerIndex; + _CurrentIndex = index; + + Highlight(lastInnerIndex); + Highlight(innerIndex); + + //self.$TriggerEvent($JssorNavigatorEvents$.$INDEXCHANGE, index); + } + }; + + self.$Show = function (hide) { + $Jssor$.$ShowElement(elmt, hide); + }; + + var _Located; + self.$Relocate = function (containerWidth, containerHeight) { + if (!_Located || _Options.$Scale == false) { + if (_Options.$AutoCenter & 1) { + $Jssor$.$CssLeft(elmt, (containerWidth - _Width) / 2); + } + if (_Options.$AutoCenter & 2) { + $Jssor$.$CssTop(elmt, (containerHeight - _Height) / 2); + } + + _Located = true; + } + }; + + var _Initialized; + self.$Reset = function (length) { + if (!_Initialized) { + _Length = length; + _Count = Math.ceil(length / _Steps); + _CurrentInnerIndex = 0; + + var itemOffsetX = _PrototypeWidth + _SpacingX; + var itemOffsetY = _PrototypeHeight + _SpacingY; + + var maxIndex = Math.ceil(_Count / _Lanes) - 1; + + _Width = _PrototypeWidth + itemOffsetX * (!_Orientation ? maxIndex : _Lanes - 1); + _Height = _PrototypeHeight + itemOffsetY * (_Orientation ? maxIndex : _Lanes - 1); + + $Jssor$.$CssWidth(elmt, _Width); + $Jssor$.$CssHeight(elmt, _Height); + + for (var buttonIndex = 0; buttonIndex < _Count; buttonIndex++) { + + var numberDiv = $Jssor$.$CreateSpan(); + $Jssor$.$InnerText(numberDiv, buttonIndex + 1); + + var div = $Jssor$.$BuildElement(_ItemPrototype, "numbertemplate", numberDiv, true); + $Jssor$.$CssPosition(div, "absolute"); + + var columnIndex = buttonIndex % (maxIndex + 1); + $Jssor$.$CssLeft(div, !_Orientation ? itemOffsetX * columnIndex : buttonIndex % _Lanes * itemOffsetX); + $Jssor$.$CssTop(div, _Orientation ? itemOffsetY * columnIndex : Math.floor(buttonIndex / (maxIndex + 1)) * itemOffsetY); + + $Jssor$.$AppendChild(elmt, div); + _ButtonElements[buttonIndex] = div; + + if (_Options.$ActionMode & 1) + $Jssor$.$AddEvent(div, "click", $Jssor$.$CreateCallback(null, OnNavigationRequest, buttonIndex)); + + if (_Options.$ActionMode & 2) + $Jssor$.$AddEvent(div, "mouseover", $Jssor$.$MouseOverOutFilter($Jssor$.$CreateCallback(null, OnNavigationRequest, buttonIndex), div)); + + _Buttons[buttonIndex] = $Jssor$.$Buttonize(div); + } + + //self.$TriggerEvent($JssorNavigatorEvents$.$RESET); + _Initialized = true; + } + }; + + //JssorBulletNavigator Constructor + { + self.$Options = _Options = $Jssor$.$Extend({ + $SpacingX: 0, + $SpacingY: 0, + $Orientation: 1, + $ActionMode: 1 + }, options); + + //Sodo statement for development time intellisence only + $JssorDebug$.$Execute(function () { + _Options = $Jssor$.$Extend({ + $Steps: undefined, + $Lanes: undefined + }, _Options); + }); + + _ItemPrototype = $Jssor$.$FindChild(elmt, "prototype"); + + $JssorDebug$.$Execute(function () { + if (!_ItemPrototype) + $JssorDebug$.$Fail("Navigator item prototype not defined."); + + if (isNaN($Jssor$.$CssWidth(_ItemPrototype))) { + $JssorDebug$.$Fail("Width of 'navigator item prototype' not specified."); + } + + if (isNaN($Jssor$.$CssHeight(_ItemPrototype))) { + $JssorDebug$.$Fail("Height of 'navigator item prototype' not specified."); + } + }); + + _PrototypeWidth = $Jssor$.$CssWidth(_ItemPrototype); + _PrototypeHeight = $Jssor$.$CssHeight(_ItemPrototype); + + $Jssor$.$RemoveElement(_ItemPrototype, elmt); + + _Steps = _Options.$Steps || 1; + _Lanes = _Options.$Lanes || 1; + _SpacingX = _Options.$SpacingX; + _SpacingY = _Options.$SpacingY; + _Orientation = _Options.$Orientation - 1; + } +}; + +var $JssorArrowNavigator$ = window.$JssorArrowNavigator$ = function (arrowLeft, arrowRight, options, containerWidth, containerHeight) { + var self = this; + $JssorObject$.call(self); + + $JssorDebug$.$Execute(function () { + + if (!arrowLeft) + $JssorDebug$.$Fail("Option '$ArrowNavigatorOptions' spepcified, but UI 'arrowleft' not defined. Define 'arrowleft' to enable direct navigation, or remove option '$ArrowNavigatorOptions' to disable direct navigation."); + + if (!arrowRight) + $JssorDebug$.$Fail("Option '$ArrowNavigatorOptions' spepcified, but UI 'arrowright' not defined. Define 'arrowright' to enable direct navigation, or remove option '$ArrowNavigatorOptions' to disable direct navigation."); + + if (isNaN($Jssor$.$CssWidth(arrowLeft))) { + $JssorDebug$.$Fail("Width of 'arrow left' not specified."); + } + + if (isNaN($Jssor$.$CssWidth(arrowRight))) { + $JssorDebug$.$Fail("Width of 'arrow right' not specified."); + } + + if (isNaN($Jssor$.$CssHeight(arrowLeft))) { + $JssorDebug$.$Fail("Height of 'arrow left' not specified."); + } + + if (isNaN($Jssor$.$CssHeight(arrowRight))) { + $JssorDebug$.$Fail("Height of 'arrow right' not specified."); + } + }); + + var _Hide; + var _Length; + var _CurrentIndex; + var _Options; + var _Steps; + var _ArrowWidth = $Jssor$.$CssWidth(arrowLeft); + var _ArrowHeight = $Jssor$.$CssHeight(arrowLeft); + + function OnNavigationRequest(steps) { + self.$TriggerEvent($JssorNavigatorEvents$.$NAVIGATIONREQUEST, steps, true); + } + + function ShowArrows(hide) { + $Jssor$.$ShowElement(arrowLeft, hide || !options.$Loop && _CurrentIndex == 0); + $Jssor$.$ShowElement(arrowRight, hide || !options.$Loop && _CurrentIndex >= _Length - options.$DisplayPieces); + + _Hide = hide; + } + + self.$GetCurrentIndex = function () { + return _CurrentIndex; + }; + + self.$SetCurrentIndex = function (index, virtualIndex, temp) { + if (temp) { + _CurrentIndex = virtualIndex; + } + else { + _CurrentIndex = index; + + ShowArrows(_Hide); + } + //self.$TriggerEvent($JssorNavigatorEvents$.$INDEXCHANGE, index); + }; + + self.$Show = ShowArrows; + + var _Located; + self.$Relocate = function (conainerWidth, containerHeight) { + if (!_Located || _Options.$Scale == false) { + + if (_Options.$AutoCenter & 1) { + $Jssor$.$CssLeft(arrowLeft, (containerWidth - _ArrowWidth) / 2); + $Jssor$.$CssLeft(arrowRight, (containerWidth - _ArrowWidth) / 2); + } + + if (_Options.$AutoCenter & 2) { + $Jssor$.$CssTop(arrowLeft, (containerHeight - _ArrowHeight) / 2); + $Jssor$.$CssTop(arrowRight, (containerHeight - _ArrowHeight) / 2); + } + + _Located = true; + } + }; + + var _Initialized; + self.$Reset = function (length) { + _Length = length; + _CurrentIndex = 0; + + if (!_Initialized) { + + $Jssor$.$AddEvent(arrowLeft, "click", $Jssor$.$CreateCallback(null, OnNavigationRequest, -_Steps)); + $Jssor$.$AddEvent(arrowRight, "click", $Jssor$.$CreateCallback(null, OnNavigationRequest, _Steps)); + + $Jssor$.$Buttonize(arrowLeft); + $Jssor$.$Buttonize(arrowRight); + + _Initialized = true; + } + + //self.$TriggerEvent($JssorNavigatorEvents$.$RESET); + }; + + //JssorArrowNavigator Constructor + { + self.$Options = _Options = $Jssor$.$Extend({ + $Steps: 1 + }, options); + + _Steps = _Options.$Steps; + } +}; + +//$JssorThumbnailNavigator$ +var $JssorThumbnailNavigator$ = window.$JssorThumbnailNavigator$ = function (elmt, options) { + var _Self = this; + var _Length; + var _Count; + var _CurrentIndex; + var _Options; + var _NavigationItems = []; + + var _Width; + var _Height; + var _Lanes; + var _SpacingX; + var _SpacingY; + var _PrototypeWidth; + var _PrototypeHeight; + var _DisplayPieces; + + var _Slider; + var _CurrentMouseOverIndex = -1; + + var _SlidesContainer; + var _ThumbnailPrototype; + + $JssorObject$.call(_Self); + elmt = $Jssor$.$GetElement(elmt); + + function NavigationItem(item, index) { + var self = this; + var _Wrapper; + var _Button; + var _Thumbnail; + + function Highlight(mouseStatus) { + _Button.$Selected(_CurrentIndex == index); + } + + function OnNavigationRequest(event) { + if (!_Slider.$LastDragSucceded()) { + var tail = _Lanes - index % _Lanes; + var slideVirtualIndex = _Slider.$GetVirtualIndex((index + tail) / _Lanes - 1); + var itemVirtualIndex = slideVirtualIndex * _Lanes + _Lanes - tail; + _Self.$TriggerEvent($JssorNavigatorEvents$.$NAVIGATIONREQUEST, itemVirtualIndex); + } + + //$JssorDebug$.$Log("navigation request"); + } + + $JssorDebug$.$Execute(function () { + self.$Wrapper = undefined; + }); + + self.$Index = index; + + self.$Highlight = Highlight; + + //NavigationItem Constructor + { + _Thumbnail = item.$Thumb || item.$Image || $Jssor$.$CreateDiv(); + self.$Wrapper = _Wrapper = $Jssor$.$BuildElement(_ThumbnailPrototype, "thumbnailtemplate", _Thumbnail, true); + + _Button = $Jssor$.$Buttonize(_Wrapper); + if (_Options.$ActionMode & 1) + $Jssor$.$AddEvent(_Wrapper, "click", OnNavigationRequest); + if (_Options.$ActionMode & 2) + $Jssor$.$AddEvent(_Wrapper, "mouseover", $Jssor$.$MouseOverOutFilter(OnNavigationRequest, _Wrapper)); + } + } + + _Self.$GetCurrentIndex = function () { + return _CurrentIndex; + }; + + _Self.$SetCurrentIndex = function (index, virtualIndex, temp) { + var oldIndex = _CurrentIndex; + _CurrentIndex = index; + if (oldIndex != -1) + _NavigationItems[oldIndex].$Highlight(); + _NavigationItems[index].$Highlight(); + + if (!temp) { + _Slider.$PlayTo(_Slider.$GetVirtualIndex(Math.floor(virtualIndex / _Lanes))); + } + }; + + _Self.$Show = function (hide) { + $Jssor$.$ShowElement(elmt, hide); + }; + + _Self.$Relocate = $Jssor$.$EmptyFunction; + + var _Initialized; + _Self.$Reset = function (length, items, loadingContainer) { + if (!_Initialized) { + _Length = length; + _Count = Math.ceil(_Length / _Lanes); + _CurrentIndex = -1; + _DisplayPieces = Math.min(_DisplayPieces, items.length); + + var horizontal = _Options.$Orientation & 1; + + var slideWidth = _PrototypeWidth + (_PrototypeWidth + _SpacingX) * (_Lanes - 1) * (1 - horizontal); + var slideHeight = _PrototypeHeight + (_PrototypeHeight + _SpacingY) * (_Lanes - 1) * horizontal; + + var slidesContainerWidth = slideWidth + (slideWidth + _SpacingX) * (_DisplayPieces - 1) * horizontal; + var slidesContainerHeight = slideHeight + (slideHeight + _SpacingY) * (_DisplayPieces - 1) * (1 - horizontal); + + $Jssor$.$CssPosition(_SlidesContainer, "absolute"); + $Jssor$.$CssOverflow(_SlidesContainer, "hidden"); + if (_Options.$AutoCenter & 1) { + $Jssor$.$CssLeft(_SlidesContainer, (_Width - slidesContainerWidth) / 2); + } + if (_Options.$AutoCenter & 2) { + $Jssor$.$CssTop(_SlidesContainer, (_Height - slidesContainerHeight) / 2); + } + //$JssorDebug$.$Execute(function () { + // if (!_Options.$AutoCenter) { + // var slidesContainerTop = $Jssor$.$CssTop(_SlidesContainer); + // var slidesContainerLeft = $Jssor$.$CssLeft(_SlidesContainer); + + // if (isNaN(slidesContainerTop)) { + // $JssorDebug$.$Fail("Position 'top' wrong specification of thumbnail navigator slides container (
      ...
      ), \r\nwhen option $ThumbnailNavigatorOptions.$AutoCenter set to 0, it should be specified in pixel (like
      )"); + // } + + // if (isNaN(slidesContainerLeft)) { + // $JssorDebug$.$Fail("Position 'left' wrong specification of thumbnail navigator slides container (
      ...
      ), \r\nwhen option $ThumbnailNavigatorOptions.$AutoCenter set to 0, it should be specified in pixel (like
      )"); + // } + // } + //}); + $Jssor$.$CssWidth(_SlidesContainer, slidesContainerWidth); + $Jssor$.$CssHeight(_SlidesContainer, slidesContainerHeight); + + var slideItemElmts = []; + $Jssor$.$Each(items, function (item, index) { + var navigationItem = new NavigationItem(item, index); + var navigationItemWrapper = navigationItem.$Wrapper; + + var columnIndex = Math.floor(index / _Lanes); + var laneIndex = index % _Lanes; + + $Jssor$.$CssLeft(navigationItemWrapper, (_PrototypeWidth + _SpacingX) * laneIndex * (1 - horizontal)); + $Jssor$.$CssTop(navigationItemWrapper, (_PrototypeHeight + _SpacingY) * laneIndex * horizontal); + + if (!slideItemElmts[columnIndex]) { + slideItemElmts[columnIndex] = $Jssor$.$CreateDiv(); + $Jssor$.$AppendChild(_SlidesContainer, slideItemElmts[columnIndex]); + } + + $Jssor$.$AppendChild(slideItemElmts[columnIndex], navigationItemWrapper); + + _NavigationItems.push(navigationItem); + }); + + var thumbnailSliderOptions = $Jssor$.$Extend({ + $HWA: false, + $AutoPlay: false, + $NaviQuitDrag: false, + $SlideWidth: slideWidth, + $SlideHeight: slideHeight, + $SlideSpacing: _SpacingX * horizontal + _SpacingY * (1 - horizontal), + $MinDragOffsetToSlide: 12, + $SlideDuration: 200, + $PauseOnHover: 1, + $PlayOrientation: _Options.$Orientation, + $DragOrientation: _Options.$DisableDrag ? 0 : _Options.$Orientation + }, _Options); + + _Slider = new $JssorSlider$(elmt, thumbnailSliderOptions); + + _Initialized = true; + } + + //_Self.$TriggerEvent($JssorNavigatorEvents$.$RESET); + }; + + //JssorThumbnailNavigator Constructor + { + _Self.$Options = _Options = $Jssor$.$Extend({ + $SpacingX: 3, + $SpacingY: 3, + $DisplayPieces: 1, + $Orientation: 1, + $AutoCenter: 3, + $ActionMode: 1 + }, options); + + //Sodo statement for development time intellisence only + $JssorDebug$.$Execute(function () { + _Options = $Jssor$.$Extend({ + $Lanes: undefined, + $Width: undefined, + $Height: undefined + }, _Options); + }); + + _Width = $Jssor$.$CssWidth(elmt); + _Height = $Jssor$.$CssHeight(elmt); + + $JssorDebug$.$Execute(function () { + if (!_Width) + $JssorDebug$.$Fail("width of 'thumbnavigator' container not specified."); + if (!_Height) + $JssorDebug$.$Fail("height of 'thumbnavigator' container not specified."); + }); + + _SlidesContainer = $Jssor$.$FindChild(elmt, "slides", true); + _ThumbnailPrototype = $Jssor$.$FindChild(_SlidesContainer, "prototype"); + + $JssorDebug$.$Execute(function () { + if (!_ThumbnailPrototype) + $JssorDebug$.$Fail("prototype of 'thumbnavigator' not defined."); + }); + + _PrototypeWidth = $Jssor$.$CssWidth(_ThumbnailPrototype); + _PrototypeHeight = $Jssor$.$CssHeight(_ThumbnailPrototype); + + $Jssor$.$RemoveElement(_ThumbnailPrototype, _SlidesContainer); + + _Lanes = _Options.$Lanes || 1; + _SpacingX = _Options.$SpacingX; + _SpacingY = _Options.$SpacingY; + _DisplayPieces = _Options.$DisplayPieces; + } +}; + +//$JssorCaptionSliderBase$ +function $JssorCaptionSliderBase$() { + $JssorAnimator$.call(this, 0, 0); + this.$Revert = $Jssor$.$EmptyFunction; +} + +var $JssorCaptionSlider$ = window.$JssorCaptionSlider$ = function (container, captionSlideOptions, playIn) { + $JssorDebug$.$Execute(function () { + if (!captionSlideOptions.$CaptionTransitions) { + $JssorDebug$.$Error("'$CaptionSliderOptions' option error, '$CaptionSliderOptions.$CaptionTransitions' not specified."); + } + //else if (!$Jssor$.$IsArray(captionSlideOptions.$CaptionTransitions)) { + // $JssorDebug$.$Error("'$CaptionSliderOptions' option error, '$CaptionSliderOptions.$CaptionTransitions' is not an array."); + //} + }); + + var _Self = this; + var _ImmediateOutCaptionHanger; + var _PlayMode = playIn ? captionSlideOptions.$PlayInMode : captionSlideOptions.$PlayOutMode; + + var _CaptionTransitions = captionSlideOptions.$CaptionTransitions; + var _CaptionTuningFetcher = { $Transition: "t", $Delay: "d", $Duration: "du", x: "x", y: "y", $Rotate: "r", $Zoom: "z", $Opacity: "f", $BeginTime: "b" }; + var _CaptionTuningTransfer = { + $Default: function (value, tuningValue) { + if (!isNaN(tuningValue.$Value)) + value = tuningValue.$Value; + else + value *= tuningValue.$Percent; + + return value; + }, + $Opacity: function (value, tuningValue) { + return this.$Default(value - 1, tuningValue); + } + }; + _CaptionTuningTransfer.$Zoom = _CaptionTuningTransfer.$Opacity; + + $JssorAnimator$.call(_Self, 0, 0); + + function GetCaptionItems(element, level) { + + var itemsToPlay = []; + var lastTransitionName; + var namedTransitions = []; + var namedTransitionOrders = []; + + //$JssorDebug$.$Execute(function () { + + // var debugInfoElement = $Jssor$.$GetElement("debugInfo"); + + // if (debugInfoElement && playIn) { + + // var text = $Jssor.$InnerHtml(debugInfoElement) + "
      "; + + // $Jssor$.$InnerHtml(debugInfoElement, text); + // } + //}); + + function FetchRawTransition(captionElmt, index) { + var rawTransition = {}; + + $Jssor$.$Each(_CaptionTuningFetcher, function (fetchAttribute, fetchProperty) { + var attributeValue = $Jssor$.$AttributeEx(captionElmt, fetchAttribute + (index || "")); + if (attributeValue) { + var propertyValue = {}; + + if (fetchAttribute == "t") { + //if (($Jssor$.$IsBrowserChrome() || $Jssor$.$IsBrowserSafari() || $Jssor$.$IsBrowserFireFox()) && attributeValue == "*") { + // attributeValue = Math.floor(Math.random() * captionSlideOptions.$CaptionTransitions.length); + // $Jssor$.$Attribute(captionElmt, fetchAttribute + (index || ""), attributeValue); + //} + + propertyValue.$Value = attributeValue; + } + else if (attributeValue.indexOf("%") + 1) + propertyValue.$Percent = $Jssor$.$ParseFloat(attributeValue) / 100; + else + propertyValue.$Value = $Jssor$.$ParseFloat(attributeValue); + + rawTransition[fetchProperty] = propertyValue; + } + }); + + return rawTransition; + } + + function GetRandomTransition() { + return _CaptionTransitions[Math.floor(Math.random() * _CaptionTransitions.length)]; + } + + function EvaluateCaptionTransition(transitionName) { + + var transition; + + if (transitionName == "*") { + transition = GetRandomTransition(); + } + else if (transitionName) { + + //indexed transition allowed, just the same as named transition + var tempTransition = _CaptionTransitions[$Jssor$.$ParseInt(transitionName)] || _CaptionTransitions[transitionName]; + + if ($Jssor$.$IsArray(tempTransition)) { + if (transitionName != lastTransitionName) { + lastTransitionName = transitionName; + namedTransitionOrders[transitionName] = 0; + + namedTransitions[transitionName] = tempTransition[Math.floor(Math.random() * tempTransition.length)]; + } + else { + namedTransitionOrders[transitionName]++; + } + + tempTransition = namedTransitions[transitionName]; + + if ($Jssor$.$IsArray(tempTransition)) { + tempTransition = tempTransition.length && tempTransition[namedTransitionOrders[transitionName] % tempTransition.length]; + + if ($Jssor$.$IsArray(tempTransition)) { + //got transition from array level 3, random for all captions + tempTransition = tempTransition[Math.floor(Math.random() * tempTransition.length)]; + } + //else { + // //got transition from array level 2, in sequence for all adjacent captions with same name specified + // transition = tempTransition; + //} + } + //else { + // //got transition from array level 1, random but same for all adjacent captions with same name specified + // transition = tempTransition; + //} + } + //else { + // //got transition directly from a simple transition object + // transition = tempTransition; + //} + + transition = tempTransition; + + if ($Jssor$.$IsString(transition)) + transition = EvaluateCaptionTransition(transition); + } + + return transition; + } + + var captionElmts = $Jssor$.$Children(element); + $Jssor$.$Each(captionElmts, function (captionElmt, i) { + + var transitionsWithTuning = []; + transitionsWithTuning.$Elmt = captionElmt; + var isCaption = $Jssor$.$AttributeEx(captionElmt, "u") == "caption"; + + $Jssor$.$Each(playIn ? [0, 3] : [2], function (j, k) { + + if (isCaption) { + var transition; + var rawTransition; + + if (j != 2 || !$Jssor$.$AttributeEx(captionElmt, "t3")) { + rawTransition = FetchRawTransition(captionElmt, j); + + if (j == 2 && !rawTransition.$Transition) { + rawTransition.$Delay = rawTransition.$Delay || { $Value: 0 }; + rawTransition = $Jssor$.$Extend(FetchRawTransition(captionElmt, 0), rawTransition); + } + } + + if (rawTransition && rawTransition.$Transition) { + + transition = EvaluateCaptionTransition(rawTransition.$Transition.$Value); + + if (transition) { + + //var transitionWithTuning = $Jssor$.$Extend({ $Delay: 0, $ScaleHorizontal: 1, $ScaleVertical: 1 }, transition); + var transitionWithTuning = $Jssor$.$Extend({ $Delay: 0 }, transition); + + $Jssor$.$Each(rawTransition, function (rawPropertyValue, propertyName) { + var tuningPropertyValue = (_CaptionTuningTransfer[propertyName] || _CaptionTuningTransfer.$Default).apply(_CaptionTuningTransfer, [transitionWithTuning[propertyName], rawTransition[propertyName]]); + if (!isNaN(tuningPropertyValue)) + transitionWithTuning[propertyName] = tuningPropertyValue; + }); + + if (!k) { + if (rawTransition.$BeginTime) + transitionWithTuning.$BeginTime = rawTransition.$BeginTime.$Value || 0; + else if ((_PlayMode) & 2) + transitionWithTuning.$BeginTime = 0; + } + } + } + + transitionsWithTuning.push(transitionWithTuning); + } + + if ((level % 2) && !k) { + //transitionsWithTuning.$Children = GetCaptionItems(captionElmt, lastTransitionName, [].concat(namedTransitions), [].concat(namedTransitionOrders), level + 1); + transitionsWithTuning.$Children = GetCaptionItems(captionElmt, level + 1); + } + }); + + itemsToPlay.push(transitionsWithTuning); + }); + + return itemsToPlay; + } + + function CreateAnimator(item, transition, immediateOut) { + + var animatorOptions = { + $Easing: transition.$Easing, + $Round: transition.$Round, + $During: transition.$During, + $Reverse: playIn && !immediateOut//, + //$Optimize: true + }; + + $JssorDebug$.$Execute(function () { + animatorOptions.$CaptionAnimator = true; + }); + + var captionItem = item; + var captionParent = $Jssor$.$ParentNode(item); + + var captionItemWidth = $Jssor$.$CssWidth(captionItem); + var captionItemHeight = $Jssor$.$CssHeight(captionItem); + var captionParentWidth = $Jssor$.$CssWidth(captionParent); + var captionParentHeight = $Jssor$.$CssHeight(captionParent); + + //var toStyles = {}; + var fromStyles = {}; + var difStyles = {}; + var scaleClip = transition.$ScaleClip || 1; + + //Opacity + if (transition.$Opacity) { + ///toStyles.$Opacity = 2 - transition.$Opacity; + difStyles.$Opacity = 1 - transition.$Opacity; + } + + animatorOptions.$OriginalWidth = captionItemWidth; + animatorOptions.$OriginalHeight = captionItemHeight; + + //Transform + if (transition.$Zoom || transition.$Rotate) { + //toStyles.$Zoom = transition.$Zoom ? transition.$Zoom - 1 : 1; + difStyles.$Zoom = (transition.$Zoom || 2) - 2; + + if ($Jssor$.$IsBrowserIe9Earlier() || $Jssor$.$IsBrowserOpera()) { + //toStyles.$Zoom = Math.min(toStyles.$Zoom, 2); + difStyles.$Zoom = Math.min(difStyles.$Zoom, 1); + } + + fromStyles.$Zoom = 1; + + var rotate = transition.$Rotate || 0; + + //toStyles.$Rotate = rotate * 360; + difStyles.$Rotate = rotate * 360; + fromStyles.$Rotate = 0; + } + //Clip + else if (transition.$Clip) { + var fromStyleClip = { $Top: 0, $Right: captionItemWidth, $Bottom: captionItemHeight, $Left: 0 }; + var toStyleClip = $Jssor$.$Extend({}, fromStyleClip); + + var blockOffset = toStyleClip.$Offset = {}; + + var topBenchmark = transition.$Clip & 4; + var bottomBenchmark = transition.$Clip & 8; + var leftBenchmark = transition.$Clip & 1; + var rightBenchmark = transition.$Clip & 2; + + if (topBenchmark && bottomBenchmark) { + blockOffset.$Top = captionItemHeight / 2 * scaleClip; + blockOffset.$Bottom = -blockOffset.$Top; + } + else if (topBenchmark) + blockOffset.$Bottom = -captionItemHeight * scaleClip; + else if (bottomBenchmark) + blockOffset.$Top = captionItemHeight * scaleClip; + + if (leftBenchmark && rightBenchmark) { + blockOffset.$Left = captionItemWidth / 2 * scaleClip; + blockOffset.$Right = -blockOffset.$Left; + } + else if (leftBenchmark) + blockOffset.$Right = -captionItemWidth * scaleClip; + else if (rightBenchmark) + blockOffset.$Left = captionItemWidth * scaleClip; + + animatorOptions.$Move = transition.$Move; + //toStyles.$Clip = toStyleClip; + difStyles.$Clip = toStyleClip; + fromStyles.$Clip = fromStyleClip; + } + + //Fly + { + var toLeft = 0; + var toTop = 0; + + if (transition.x) + toLeft -= captionParentWidth * transition.x; + + if (transition.y) + toTop -= captionParentHeight * transition.y; + + if (toLeft || toTop || animatorOptions.$Move) { + //toStyles.$Left = toLeft + $Jssor$.$CssLeft(captionItem); + //toStyles.$Top = toTop + $Jssor$.$CssTop(captionItem); + difStyles.$Left = toLeft; + difStyles.$Top = toTop; + } + } + + //duration + var duration = transition.$Duration; + + fromStyles = $Jssor$.$Extend(fromStyles, $Jssor$.$GetStyles(captionItem, difStyles)); + + animatorOptions.$Setter = $Jssor$.$StyleSetterEx(); + + return new $JssorAnimator$(transition.$Delay, duration, animatorOptions, captionItem, fromStyles, difStyles); + } + + function CreateAnimators(streamLineLength, captionItems) { + + $Jssor$.$Each(captionItems, function (captionItem, i) { + + $JssorDebug$.$Execute(function () { + if (captionItem.length) { + var top = $Jssor$.$CssTop(captionItem.$Elmt); + var left = $Jssor$.$CssLeft(captionItem.$Elmt); + var width = $Jssor$.$CssWidth(captionItem.$Elmt); + var height = $Jssor$.$CssHeight(captionItem.$Elmt); + + var error = null; + + if (isNaN(top)) + error = "Style 'top' for caption not specified. Please always specify caption like 'position: absolute; top: ...px; left: ...px; width: ...px; height: ...px;'."; + else if (isNaN(left)) + error = "Style 'left' not specified. Please always specify caption like 'position: absolute; top: ...px; left: ...px; width: ...px; height: ...px;'."; + else if (isNaN(width)) + error = "Style 'width' not specified. Please always specify caption like 'position: absolute; top: ...px; left: ...px; width: ...px; height: ...px;'."; + else if (isNaN(height)) + error = "Style 'height' not specified. Please always specify caption like 'position: absolute; top: ...px; left: ...px; width: ...px; height: ...px;'."; + + if (error) + $JssorDebug$.$Error("Caption " + (i + 1) + " definition error, \r\n" + error + "\r\n" + captionItem.$Elmt.outerHTML); + } + }); + + var animator; + var captionElmt = captionItem.$Elmt; + var transition = captionItem[0]; + var transition3 = captionItem[1]; + + if (transition) { + + animator = CreateAnimator(captionElmt, transition); + streamLineLength = animator.$Locate(transition.$BeginTime == undefined ? streamLineLength : transition.$BeginTime, 1); + } + + streamLineLength = CreateAnimators(streamLineLength, captionItem.$Children); + + if (transition3) { + var animator3 = CreateAnimator(captionElmt, transition3, 1); + animator3.$Locate(streamLineLength, 1); + _Self.$Combine(animator3); + _ImmediateOutCaptionHanger.$Combine(animator3); + } + + if (animator) + _Self.$Combine(animator); + }); + + return streamLineLength; + } + + _Self.$Revert = function () { + _Self.$GoToPosition(_Self.$GetPosition_OuterEnd() * (playIn || 0)); + _ImmediateOutCaptionHanger.$GoToBegin(); + }; + + //Constructor + { + _ImmediateOutCaptionHanger = new $JssorAnimator$(0, 0); + + //var streamLineLength = 0; + //var captionItems = GetCaptionItems(container, null, [], [], 1); + + CreateAnimators(0, _PlayMode ? GetCaptionItems(container, 1) : []); + } +}; + +var $JssorCaptionSlideo$ = window.$JssorCaptionSlideo$ = function (container, captionSlideoOptions, playIn) { + $JssorDebug$.$Execute(function () { + if (!captionSlideoOptions.$CaptionTransitions) { + $JssorDebug$.$Error("'$CaptionSlideoOptions' option error, '$CaptionSlideoOptions.$CaptionTransitions' not specified."); + } + else if (!$Jssor$.$IsArray(captionSlideoOptions.$CaptionTransitions)) { + $JssorDebug$.$Error("'$CaptionSlideoOptions' option error, '$CaptionSlideoOptions.$CaptionTransitions' is not an array."); + } + }); + + var _This = this; + + var _CaptionTransitions = captionSlideoOptions.$CaptionTransitions; + + $JssorAnimator$.call(_This, 0, 0); + + function GetCaptionItems(element, level) { + + var itemsToPlay = []; + + var captionElmts = $Jssor$.$Children(element); + $Jssor$.$Each(captionElmts, function (captionElmt, i) { + var isCaption = $Jssor$.$AttributeEx(captionElmt, "u") == "caption"; + if (isCaption) { + var transitionName = $Jssor$.$AttributeEx(captionElmt, "t"); + var transition = _CaptionTransitions[$Jssor$.$ParseInt(transitionName)] || _CaptionTransitions[transitionName]; + + var transitionName2 = $Jssor$.$AttributeEx(captionElmt, "t2"); + var transition2 = _CaptionTransitions[$Jssor$.$ParseInt(transitionName2)] || _CaptionTransitions[transitionName2]; + + var itemToPlay = { $Elmt: captionElmt, $Transition: transition, $Transition2: transition2 }; + if (level < 3) { + itemsToPlay.concat(GetCaptionItems(captionElmt, level + 1)); + } + itemsToPlay.push(itemToPlay); + } + }); + + return itemsToPlay; + } + + function CreateAnimator(captionElmt, transitions, lastStyles, forIn) { + + $Jssor$.$Each(transitions, function (transition) { + + var animatorOptions = { + $Easing: transition.$Easing, + $Round: transition.$Round, + $During: transition.$During, + $Setter: $Jssor$.$StyleSetterEx() + }; + + var fromStyles = $Jssor$.$Extend($Jssor$.$GetStyles(captionItem, transition), lastStyles); + + var animator = new $JssorAnimator$(transition.$Begin || 0, (transition.$End || 0) - (transition.$Begin || 0), animatorOptions, captionElmt, fromStyles, transition); + + !forIn == !playIn && _This.$Combine(animator); + + var castOptions; + //castOptions = { $Move: slideTransition.$Move, $OriginalWidth: slideContainerWidth, $OriginalHeight: slideContainerHeight }; + + lastStyles = $Jssor$.$Extend(lastStyles, $Jssor$.$Cast(fromStyles, transition, 1, animatorOptions.$Easing, animatorOptions.$During, animatorOptions.$Round, animatorOptions, castOptions)); + }); + + return lastStyles; + } + + function CreateAnimators(captionItems) { + + $Jssor$.$Each(captionItems, function (captionItem, i) { + + $JssorDebug$.$Execute(function () { + if (captionItem.length) { + var top = $Jssor$.$CssTop(captionItem.$Elmt); + var left = $Jssor$.$CssLeft(captionItem.$Elmt); + var width = $Jssor$.$CssWidth(captionItem.$Elmt); + var height = $Jssor$.$CssHeight(captionItem.$Elmt); + + var error = null; + + if (isNaN(top)) + error = "style 'top' not specified"; + else if (isNaN(left)) + error = "style 'left' not specified"; + else if (isNaN(width)) + error = "style 'width' not specified"; + else if (isNaN(height)) + error = "style 'height' not specified"; + + if (error) + throw new Error("Caption " + (i + 1) + " definition error, " + error + ".\r\n" + captionItem.$Elmt.outerHTML); + } + }); + + var captionElmt = captionItem.$Elmt; + + var captionItemWidth = $Jssor$.$CssWidth(captionItem); + var captionItemHeight = $Jssor$.$CssHeight(captionItem); + var captionParentWidth = $Jssor$.$CssWidth(captionParent); + var captionParentHeight = $Jssor$.$CssHeight(captionParent); + + var lastStyles = { $Zoom: 1, $Rotate: 0, $Clip: { $Top: 0, $Right: captionItemWidth, $Bottom: captionItemHeight, $Left: 0 } }; + + lastStyles = CreateAnimator(captionElmt, captionItem.$Transition, lastStyles, true); + CreateAnimator(captionElmt, captionItem.$Transition2, lastStyles, false); + }); + } + + _This.$Revert = function () { + _This.$GoToPosition(-1, true); + } + + //Constructor + { + CreateAnimators(GetCaptionItems(container, 1)); + } +}; + +//Event Table + +//$EVT_CLICK = 21; function(slideIndex[, event]) +//$EVT_DRAG_START = 22; function(position[, virtualPosition, event]) +//$EVT_DRAG_END = 23; function(position, startPosition[, virtualPosition, virtualStartPosition, event]) +//$EVT_SWIPE_START = 24; function(position[, virtualPosition]) +//$EVT_SWIPE_END = 25; function(position[, virtualPosition]) + +//$EVT_LOAD_START = 26; function(slideIndex) +//$EVT_LOAD_END = 27; function(slideIndex) + +//$EVT_POSITION_CHANGE = 202; function(position, fromPosition[, virtualPosition, virtualFromPosition]) +//$EVT_PARK = 203; function(slideIndex, fromIndex) + +//$EVT_PROGRESS_CHANGE = 208; function(slideIndex, progress[, progressBegin, idleBegin, idleEnd, progressEnd]) +//$EVT_STATE_CHANGE = 209; function(slideIndex, progress[, progressBegin, idleBegin, idleEnd, progressEnd]) + +//$EVT_ROLLBACK_START = 210; function(slideIndex, progress[, progressBegin, idleBegin, idleEnd, progressEnd]) +//$EVT_ROLLBACK_END = 211; function(slideIndex, progress[, progressBegin, idleBegin, idleEnd, progressEnd]) + +//$EVT_SLIDESHOW_START = 206; function(slideIndex[, progressBegin, slideshowBegin, slideshowEnd, progressEnd]) +//$EVT_SLIDESHOW_END = 207; function(slideIndex[, progressBegin, slideshowBegin, slideshowEnd, progressEnd]) + +//http://www.jssor.com/development/reference-api.html \ No newline at end of file diff --git a/spree_theme/app/assets/javascripts/jssor.slider.one.js b/spree_theme/app/assets/javascripts/jssor.slider.one.js index 538a3b96..7798a3cb 100644 --- a/spree_theme/app/assets/javascripts/jssor.slider.one.js +++ b/spree_theme/app/assets/javascripts/jssor.slider.one.js @@ -1,3 +1,5 @@ -//= require jssor.slider/jssor.core -//= require jssor.slider/jssor.utils -//= require jssor.slider/jssor.slider \ No newline at end of file +// require jssor.slider/jssor.core +// require jssor.slider/jssor.utils +// require jssor.slider/jssor.slider +//= require jssor.19/jssor +//= require jssor.19/jssor.slider \ No newline at end of file diff --git a/spree_theme/app/assets/javascripts/scotchPanels.js b/spree_theme/app/assets/javascripts/scotchPanels.js new file mode 100644 index 00000000..4dd18fc3 --- /dev/null +++ b/spree_theme/app/assets/javascripts/scotchPanels.js @@ -0,0 +1,656 @@ +/* +* scotchPanels - v1.0.3 - 2014-09-25 +* https://github.com/scotch-io/scotch-panels +* Copyright (c) 2014 Nicholas Cerminara +*/ +// Start with Semicolon to block +;(function($) { + + // Enable Strict Mode + 'use strict'; + + // Create Panels Array + var panels = []; + + // Has done CSS3 browser support check? + var browserSupportTest = false; + var has3d = false; + var hasTransitions = false; + + // Plugin Default Settings + var defaults = { + + // General Config + containerSelector: 'body', + type: 'html', // html, iframe, video, image + + // Styles + direction: 'top', // top, left, right, bottom + duration: 300, // ms + transition: 'ease', // linear, ease, ease-in, ease-out, ease-in-out, cubic-bezier(P1x,P1y,P2x,P2y) + + // Browser Support + easingPluginTransition: 'easeInCirc', + useCSS: true, // Consider not using if have Fixed Elements + useEasingPlugin: false, // http://gsgd.co.uk/sandbox/jquery/easing/ only for browser support + + // Image Options + imageURL: false, + + // Iframe Options + iframeURL: false, + + // Video Options + autoPlayVideo: true, + youtubeID: false, + youTubeTheme: 'light', + + // TranslateX Options + distanceX: '70%', + + // TranslateY Options + forceMinHeight: false, + minHeight: '200px', + + // Triggers + closeAfter: 0, // ms + startOpened: false, + startOpenedDelay: 0, // ms + + // Event Helpers + clickSelector: false, + enableEscapeKey: true, + hoverSelector: false, + touchSelector: false, + + // Callbacks + beforePanelOpen: function() {}, + afterPanelOpen: function() {}, + beforePanelClose: function() {}, + afterPanelClose: function() {} + }; + + + $.fn.scotchPanel = function(options) { + + // Check to see if Default Options are Set + if (typeof options === 'undefined') { + options = {}; + } + + // Check to see if an element is even selected + if (this.length === 0) return this; + + // Support selecting Panels + if (this.length > 1) { + + // Loop through all selected scotch panels + this.each(function() { + // Add panel to array + panels.push($(this).scotchPanel(options)); + }); + + // Public Functions Functionality for all at once + panels.open = function() { + for (var i = 0; i < panels.length; i++) { + panels[i].open(); + } + }; + panels.close = function() { + for (var i = 0; i < panels.length; i++) { + panels[i].close(); + } + }; + panels.toggle = function() { + for (var i = 0; i < panels.length; i++) { + panels[i].toggle(); + } + }; + + // Return the Scotch Panels + return panels; + } + + // Create Current Scotch Panel Object + var panel = {}; + panel = this; + + + /*========================================= + = PRIVATE FUNCTIONS = + =========================================*/ + // Prep everything + var init = function() { + + // Do CSS3 Check! + if (!browserSupportTest) { + browserSupportTest = true; + has3d = browserSupport.transition(); + hasTransitions = browserSupport.translate3d(); + } + + // Check for HTML5 data attributes instead + for (var key in defaults) { + if (defaults.hasOwnProperty(key)) { + if (panel.attr('data-'+key.toLowerCase())) { + options[key] = panel.data(key.toLowerCase()); + } + } + } + + // Merge Custom Plugin Settings with Default + panel.settings = $.extend({}, defaults, options); + + // Start DOM and CSS Modifications + setup(); + }; + + + // DOM / CSS Changes / Make Things Happen + var setup = function() { + + // Wrap the panel! + var container = $(panel.settings.containerSelector); + if (!container.hasClass('scotchified')) { + container.wrapInner('
      ').addClass('scotchified'); + } + + // Scotch Panel Wrapper CSS + $('.scotch-panel-wrapper').css({ + 'position': 'relative', + 'overflow': 'hidden', + 'width': '100%' + }); + // Scotch Panel Canvas CSS + $('.scotch-panel-canvas').css({ + 'position': 'relative', + 'height': '100%', + 'width': '100%' + }); + // Do 3D Stuff separate + if (panel.settings.useCSS) { + $('.scotch-panel-canvas').css({ + '-moz-transform': 'translate3d(0, 0, 0)', + '-ms-transform': 'translate3d(0, 0, 0)', + '-o-transform': 'translate3d(0, 0, 0)', + '-webkit-transform': 'translate3d(0, 0, 0)', + 'transform': 'translate3d(0, 0, 0)', + '-moz-backface-visibility': 'hidden', + '-ms-backface-visibility': 'hidden', + '-o-backface-visibility': 'hidden', + '-webkit-backface-visibility': 'hidden', + 'backface-visibility': 'hidden' + }); + } + + // Figure out which off canvas style is used (left, top, right) + if (panel.settings.direction == 'top') { + panel.height = panel.height(); + panel.addClass('scotch-panel-top'); + + panel.css({ + 'bottom': '100%', + 'left': '0', + 'width': '100%', + 'position': 'absolute', + 'z-index': '888888', + 'overflow': 'hidden' + }); + } + if (panel.settings.direction == 'bottom') { + panel.height = panel.height(); + panel.addClass('scotch-panel-bottom'); + + panel.css({ + 'top': '100%', + 'left': '0', + 'width': '100%', + 'position': 'absolute', + 'z-index': '888888', + 'overflow': 'hidden' + }); + } + if (panel.settings.direction == 'left') { + panel.addClass('scotch-panel-left'); + + panel.css({ + 'top': '0', + 'left': '-' + panel.settings.distanceX, + 'width': panel.settings.distanceX, + 'height': '100%', + 'position': 'absolute', + 'z-index': '888888', + 'overflow': 'hidden' + }); + } + if (panel.settings.direction == 'right') { + panel.addClass('scotch-panel-right'); + + panel.css({ + 'top': '0', + 'right': '-' + panel.settings.distanceX, + 'width': panel.settings.distanceX, + 'height': '100%', + 'position': 'absolute', + 'z-index': '888888', + 'overflow': 'hidden' + }); + } + panel.css({ + '-moz-backface-visibility': 'hidden', + '-ms-backface-visibility': 'hidden', + '-o-backface-visibility': 'hidden', + '-webkit-backface-visibility': 'hidden', + 'backface-visibility': 'hidden' + }); + + // Photo Logic + if (panel.settings.type == 'image' && panel.settings.imageURL) { + panel.css({ + '-o-background-size': 'cover', + '-ms-background-size': 'cover', + '-moz-background-size': 'cover', + '-webkit-background-size': 'cover', + 'background-size': 'cover', + 'background-position': '50% 0', + 'background-repeat': 'no-repeat', + 'background-image': 'url('+panel.settings.imageURL+')' + }); + + // Update Panel Height if top or bottom + if (panel.settings.direction == 'top' || panel.settings.direction == 'bottom') { + panel.css('min-height', panel.settings.minHeight); + panel.height = $(panel).height(); + } + } + + // Iframe Logic + if (panel.settings.type == 'iframe' && panel.settings.iframeURL) { + panel.iframeIsLoaded = false; + panel.append(''); + + // Update Panel Height if top or bottom + if (panel.settings.direction == 'top' || panel.settings.direction == 'bottom') { + panel.height = $(panel).height(); + } + } + + // YouTube Logic + if (panel.settings.type == 'video' && panel.settings.youtubeID) { + panel.append('
      '); + + // Update Panel Height if top or bottom + if (panel.settings.direction == 'top' || panel.settings.direction == 'bottom') { + panel.height = $(panel).height(); + } + } + + // Apply CSS3 Transitions if modern browser + if (has3d && hasTransitions) { + applyTransition(panel.settings.transition, panel.settings.duration); + } + + // Open on Start? + if (panel.settings.startOpened) { + setTimeout(function(){ + panel.open(); + }, panel.settings.startOpenedDelay); + } + + // Close after X milliseconds? + if (panel.settings.closeAfter != 0) { + setTimeout(function(){ + panel.close(); + }, panel.settings.closeAfter); + } + }; + + + // Browser Support Object + var browserSupport = { + transition: function() { + // IE 7 + 8 Sucks + if (!window.getComputedStyle) { + return false; + } + + var b = document.body || document.documentElement, + s = b.style, + p = 'transition'; + + if (typeof s[p] == 'string') { return true; } + + // Tests for vendor specific prop + var v = ['Moz', 'webkit', 'Webkit', 'Khtml', 'O', 'ms']; + p = p.charAt(0).toUpperCase() + p.substr(1); + + for (var i=0; i100){ + // $("#return_top").fadeIn(500); + // } + // else{ + // $("#return_top").fadeOut(1500); + // } + //}); + $("body,html").animate({scrollTop:0},1000); + return false; + }); + + // change bg,border when hovering + $('.hoverable').hover(function(){ + $('.inner',this).addClass( 'hover' ); + }, function(){ + $('.inner',this).removeClass( 'hover' ); + }); + + // like taobao, show big image when hovering product image. + $('.zoomable').each(function(i, element){ + var $element =$(element); + var $main_image_wrapper = $element.find('.main_image_wrapper'); + $element.find('.thumbnails a').click(function(){ + var $this = $(this); + $main_image_wrapper.find('img').data('big-image', $this.find('img').data('big-image')); + }); + $element.imageZoom({ + zoomType: 'standard', + lens:true, + preloadImages: false, + alwaysOn:false, + thumbConfig: { + containerSelector: null//'.thumbnails' + }, + zoomViewerConfig:{ + width: $main_image_wrapper.width()-2, // 2 is border l+r + height: $main_image_wrapper.height()-2 + }, + zoomPadConfig: { + containerSelector: '.main_image_wrapper' + } + }); + }); + + + $('.lightboxable').each( function(i, element){ + + var $element =$(element); + var $main_image = $element.find('.main_image_wrapper img'); + var jsonData =[]; + var thumbnails = $element.find('.thumbnails img'); + if( thumbnails.is('*') ){ + thumbnails.each(function(j,img){ + jsonData.push({ url:$(img).data('big-image'), title: img.alt }); + }); + }else{ + jsonData.push({ url:$main_image.data('big-image'), title: $main_image.attr('alt') }); + } + + $main_image.lightbox({ + fitToScreen: true, + jsonData: jsonData, + loopImages: true, + imageClickClose: false, + disableNavbarLinks: true + }); + + }); + + // scroll to target + $('.effect_scroll').click(function() { + var $body = (window.opera) ? (document.compatMode == "CSS1Compat" ? $('html') : $('body')) : $('html,body'); + var $self = $(this); + var $target = $($self.attr('href')); + if($target.is('*')) { + $body.animate({ + scrollTop : ($target.offset().top - 120) + }, 500); + return false; + } + }); + + function ScaleSlider(jssor_slider) { + var parentWidth = $(jssor_slider.$Elmt.parentNode).width(); + if(parentWidth) + jssor_slider.$SetScaleWidth(parentWidth); + else + window.setTimeout(ScaleSlider, 30); + } + + // dom structure + //
      + // + //
      + //
      slide1
      + //
      slide2
      + //
      + //
      + $(".effect_slider").each(function(index, element) { + var $self = $(element); + var $parent = $self.parent(); + var $slide_container = $self.children("[u='slides']"); + // if parent height is 1, use width. it is for product image slider on mobile + var height = $parent.height(); + if (height > 1){ + $self.css({ height : $parent.css('height'), width : $parent.css('width') }); + $slide_container.css({ height : $parent.css('height'), width : $parent.css('width') }); + }else{ + $self.css({ height : $parent.css('width'), width : $parent.css('width') }); + $slide_container.css({ height : $parent.css('width'), width : $parent.css('width') }); + } + var options = null; + var auto_play = ( $slide_container.data('auto-play') == null ? true : $slide_container.data('auto-play') ); + var display_pieces = $slide_container.data('display-pieces'); + if( display_pieces ){ + var slide_width = $self.find("[u='slides']>div").width(); + var display_piece = Math.ceil( $parent.width() / slide_width ); + // get width of a slide + options = { + $AutoPlay: auto_play, //[Optional] Whether to auto play, to enable slideshow, this option must be set to true, default value is false + $AutoPlaySteps: 1, //[Optional] Steps to go for each navigation request (this options applys only when slideshow disabled), the default value is 1 + $AutoPlayInterval: 0, //[Optional] Interval (in milliseconds) to go for next slide since the previous stopped if the slider is auto playing, default value is 3000 + $PauseOnHover: 4, //[Optional] Whether to pause when mouse over if a slider is auto playing, 0 no pause, 1 pause for desktop, 2 pause for touch device, 3 pause for desktop and touch device, 4 freeze for desktop, 8 freeze for touch device, 12 freeze for desktop and touch device, default value is 1 + + $ArrowKeyNavigation: true, //[Optional] Allows keyboard (arrow key) navigation or not, default value is false + $SlideEasing: $JssorEasing$.$EaseLinear, //[Optional] Specifies easing for right to left animation, default value is $JssorEasing$.$EaseOutQuad + $SlideDuration: 1600, //[Optional] Specifies default duration (swipe) for slide in milliseconds, default value is 500 + $MinDragOffsetToSlide: 20, //[Optional] Minimum drag offset to trigger slide , default value is 20 + $SlideWidth: slide_width, //it is requried //[Optional] Width of every slide in pixels, default value is width of 'slides' container + //$SlideHeight: 100, //[Optional] Height of every slide in pixels, default value is height of 'slides' container + $SlideSpacing: 0, //[Optional] Space between each slide in pixels, default value is 0 + $DisplayPieces: display_piece, //it is required //[Optional] Number of pieces to display (the slideshow would be disabled if the value is set to greater than 1), the default value is 1 + $ParkingPosition: 0, //[Optional] The offset position to park slide (this options applys only when slideshow disabled), default value is 0. + $UISearchMode: 1, //[Optional] The way (0 parellel, 1 recursive, default value is 1) to search UI components (slides container, loading screen, navigator container, arrow navigator container, thumbnail navigator container etc). + $PlayOrientation: 1, //[Optional] Orientation to play slide (for auto play, navigation), 1 horizental, 2 vertical, 5 horizental reverse, 6 vertical reverse, default value is 1 + $DragOrientation: 1 //[Optional] Orientation to drag slide, 0 no drag, 1 horizental, 2 vertical, 3 either, default value is 1 (Note that the $DragOrientation should be the same as $PlayOrientation when $DisplayPieces is greater than 1, or parking position is not 0) + }; + + } else{ + options = { + $AutoPlay : auto_play, + $FillMode : 2, + $BulletNavigatorOptions : { + $Class : $JssorBulletNavigator$, + $ChanceToShow : 2, + $AutoCenter : 1 + } + }; + } + if( $slide_container.children().length>0){ + var jssor_slider1 = new $JssorSlider$($self.get(0), options); + //responsive code begin + //you can remove responsive code if you don't want the slider scales while window resizes + //Scale slider immediately + ScaleSlider(jssor_slider1); + //if (!navigator.userAgent.match(/(iPhone|iPod|iPad|BlackBerry|IEMobile)/)) { + // $(window).bind('resize', ScaleSlider); + //} + //responsive code end + } + }); + + if($("#map").is('*')) { + // initialize baid map. + initMap(); + }; + + // dom + // div.hover_effect_xxx + // .child_1 + // .child_2 + // div.hover_effect_xxx + // .child_1 + // .child_2 + + //menu effect slide + $(".hover_effect_slide").each(function(index, element) { + //nav sliding + var height = '' + $('.child_1', element).height() + 'px'; + var offset = '-' + height; + //$('.name',element).css({ height: height}); + $('.child_2', element).css({ + bottom : offset, + height : height + }); + //nav sliding + $(element).hover(function() { + $(".child_1", this).stop().animate({ + top : offset, + left : '0px' + }, { + queue : false, + duration : 300 + }); + $(".child_2", this).stop().animate({ + bottom : '0px', + left : '0px' + }, { + queue : false, + duration : 300 + }); + }, function() { + $(".child_1", this).stop().animate({ + top : '0px', + left : '0px' + }, { + queue : false, + duration : 300 + }); + $(".child_2", this).stop().animate({ + bottom : offset, + left : '0px' + }, { + queue : false, + duration : 300 + }); + }); + }); + // + $('.hover_effect_show').hover(function() { + $('.child_2', this).stop().slideDown(); + }, function() { + $('.child_2', this).stop().slideUp(); + }); + //slides the element with class "menu_body" when mouse is over the paragraph + $(".hover_effect_expansion .child_1").mouseover(function() { + $(this).parents('.hover_effect_expansion').addClass('hovered').siblings().removeClass('hovered'); + $(this).next(".child_2").slideDown(500); + $(this).parents('.hover_effect_expansion').siblings().find('.child_2').slideUp("slow"); + }); + + $(".hover_effect_overlay").hover(function() { + var offset = '-' + $('.child_1', this).width() + 'px'; + $(".child_2", this).stop().animate({ + top : '0', + left : offset + }, { + queue : false, + duration : 400 + }); + }, function() { + $(".child_2", this).stop().animate({ + top : '0px', + left : '0px' + }, { + queue : false, + duration : 400 + }); + }); + $(".hover_effect_multi_level_menu").each(function(index, element) { + // navigation horizental two level menu + // menu item1 | menu item2 hovering | menu item3 + // | menu item21 | + // | menu item22 | + $("ul ul", element).css({ + display: "none" + }); // Opera Fix + $("ul li", element).hover(function() { + $(this).find('ul:first').css({ + visibility: "visible", + display: "none" + }).slideDown("normal"); + }, function() { + $(this).find('ul:first').css({ + visibility: "hidden" + }); + }); + + }); + // usage: compute child_2 display position of window for effect popup + // html
      + //
      + //
      + // params: direction- there are five option values t,r,b,l,rl, + // it composite of three character. + // xya: x axis, y axis, a alignment. ex. lbl, position left bottom, align left + function compute_popup_position( $container, direction ){ + var $self = $container; + var child1 = $(".child_1", $self); + var child2 = $(".child_2", $self); + var offset = child1.offset(); + // get silbings, get parent.width, get current + // get currentTarge.pageX, + var position = [0,0]; + // top, left + var block = $(window); + var scroll_top = block.scrollTop(); + var scroll_left = block.scrollLeft(); + if ( direction == 'rl' ){ + var p = $self.parent().width() / 2 - $self.position().left - $self.width(); + if(p >= 0) {// pop up on right side of child2 + position[0] = offset.top - (child2.height() - child1.height() ) / 2 - scroll_top; + position[1] = offset.left + child1.width(); + } else {// pop up on left side of $self + position[0] = offset.top - (child2.height() - child1.height() ) / 2 - scroll_top; + position[1] = offset.left - child2.width(); + } + }else if ( direction == 'b' ){ + position[0] = offset.top + child1.height() - scroll_top;; + position[1] = offset.left - (child2.width() - child1.width() ) / 2 - scroll_left; + }else if ( direction == 't' ){ + position[0] = offset.top - child2.height() - scroll_top;; + position[1] = offset.left - (child2.width() - child1.width() ) / 2 - scroll_left; + }else if ( direction == 'l' ){ + position[0] = offset.top - (child2.height() - child1.height() ) / 2 - scroll_top; + position[1] = offset.left - child2.width(); + }else if ( direction == 'lbl' ){ + position[0] = offset.top - (child2.height() - child1.height() ) - scroll_top; + position[1] = offset.left - child2.width(); + } + return position; + } + + $(".hover_effect_popup").hover(function(e) { + var position = compute_popup_position( $(this), 'rl' ); + //console.log( "pos y=%d, x=%d", position[0], position[1] ); + $(".child_2", this).simplemodal({ + appendTo: '#page-wrapper', + closeHTML:'', // remove a.close, or get incorrect container demension + modal : false, + focus : false, + position : position, + fixed : false + }); + }, function() { + $.simplemodal.close(); + }); + + // popup menu, enable mouse hover on popup div, user could click menu on it. + $(".hover_effect_popup_menu_l,.hover_effect_popup_menu").each(function(i, element){ + var $self = $(element); + var direction = 'b';// popup at bottom, center as well. + if ($self.hasClass('hover_effect_popup_menu_l')){ + direction = 'l'; + }else if ($self.hasClass('hover_effect_popup_menu_lbl')){ + direction = 'lbl'; + } + function activate_element( ){ + var $hover_effect_container = this.$hover_effect_container; + var position = compute_popup_position( $hover_effect_container, direction ); + //console.log( "pos y=%d, x=%d", position[0], position[1] ); + $(".child_2", $hover_effect_container).simplemodal({ + appendTo: '#page-wrapper', + closeHTML:'', // remove a.close, or get incorrect container demension + modal : false, + focus : false, + position : position, + fixed : false + }); + }; + function deactivate_element( ){ + $.simplemodal.close(); + }; + var child1 = $(".child_1", this); + var child2 = $(".child_2", this); + + $(element).menuhover({ + activate: activate_element, + deactivate: deactivate_element, + submenuDirection: direction, + $hover: child2 + }); + }); + $(".click_effect_sider").each(function(i, element){ + var child2 = $(".child_2", element); + //var class_names = $(".child_2", element).attr('class').replace(/(^\s+)|(\s+$)/g,"").replace(/\s+/g,'.'); + $(".child_1", element).sidr({ + body: '#page-inner', // append into page innner, apply page css. + displace: false, + renaming: false, + source: function(){ + return ( child2.is("*") ? child2[0].outerHTML : "no content"); + } + }); + }); + $(".sidr").on( 'click',".sidr-close",function(){ + $.sidr( 'close','sidr'); + }); + +}); diff --git a/spree_theme/app/assets/javascripts/store/spree_theme.client.js b/spree_theme/app/assets/javascripts/store/spree_theme.client.js index c6cfa32f..86f56a2c 100644 --- a/spree_theme/app/assets/javascripts/store/spree_theme.client.js +++ b/spree_theme/app/assets/javascripts/store/spree_theme.client.js @@ -1,8 +1,14 @@ -//= require jquery -//= require jquery.validate/localization/messages_zh-CN.js -//= require jquery.simplemodal.js +//= require jquery.validate/localization/messages_zh-CN +//= require jquery.simplemodal +//= require jquery.lightbox.custom +//= require store/section_effect $(document).ready(function() { + // disable progress-bar, coolpadwebkit do not support + //if( !g_client_info.is_mobile ){ + // Turbolinks.enableProgressBar(); + //} + // template theme selection for designer shop $( "#embeded_content_wrapper" ).hover( function() { $(this).show(); $( "#embeded_content_wrapper_icon" ).hide();}, @@ -11,21 +17,12 @@ $(document).ready(function() { $( "#embeded_content_wrapper_icon" ).hover( function() { $( "#embeded_content_wrapper" ).show(); } ); - -}); -$(document).ready(function() { - // initialize sections - $($("input.fixed_container").val()).floatBar({ - bodyWidth:980, vertical:"top", moveOnOff:false, focusOnOff:false - }); - $("input.hover_effect_container").each(function(index, element){ - var children = $(element).siblings('div'); - if( children.length == 2){ - var child1 = $(children[0]); var child2 = $(children[1]); - child2.on('mouseenter',function(){ child1.show();child2.hide(); }) - child1.on('mouseout', function(){child2.show();child1.hide();}) - } - }) + + + // code for theme, should move to template_themes.js + $(".u_dialog").delegate( "a.cancel,button.cancel", "click",function(){ + $.simplemodal.close(); + }); }); // copy from project https://github.com/citrus/spree_variant_options @@ -35,9 +32,9 @@ $(document).ready(function() { // allow_select_outofstock: By setting allow_select_outofstock to true, when an user selects variant options it will automatically update any form's input variant_id with an data-form-type="variant" attribute. // default_instock: (default: false) If this is option is set to true, it will automatically preselect in-stock variant options. function VariantOptions(params) { - var view_style = params['view_style'] + var view_style = params['view_style']; var options = params['options']; - var container_selector = params['container_selector'] + var container_selector = params['container_selector']; var allow_backorders = !params['track_inventory_levels'] || params['allow_backorders']; var allow_select_outofstock = params['allow_select_outofstock']; var default_instock = params['default_instock']; @@ -45,7 +42,7 @@ function VariantOptions(params) { var option_types, option_values_container, index = 0; // option_types: all option_types included option_values // option_values_container: a container for option_values of an option_type - var available_variant_ids = []; // base on selected option value, there are some available variant ids + var available_variant_ids = []; // base on selected option value, there are some available variant ids var buttons; @@ -63,7 +60,7 @@ function VariantOptions(params) { }); } } - + // set current option type function update(i) { index = isNaN(i) ? index : i; @@ -76,15 +73,15 @@ function VariantOptions(params) { } // enable option values of current option type function enable(btns) { - var bt = btns.not('.unavailable').removeClass('locked') + var bt = btns.not('.unavailable').removeClass('locked'); if (!allow_select_outofstock && !allow_backorders){ - bt = bt.filter('.in-stock') - } + bt = bt.filter('.in-stock'); + } return bt.filter('.auto-click').removeClass('auto-click').click(); } function advance() { - index++ + index++; update(); inventory(buttons.removeClass('locked')); enable(buttons); @@ -108,14 +105,14 @@ function VariantOptions(params) { var a = $(this); //return if has class unavailable locked if( a.hasClass("unavailable") || a.hasClass("locked")){ - return + return; } //if (!allow_select_outofstock && !allow_backorders){ // bt = bt.filter('.in-stock') - //} - + //} + if (a.filter('.selected').length>0){ - // unclick selected, + // unclick selected, clear(option_types.index(a.parents('.variant-option:first'))); }else{ if (!option_values_container.has(a).length) { @@ -126,8 +123,8 @@ function VariantOptions(params) { advance(); if (target_variant=find_variant()) { toggle(target_variant); - } - } + } + } } @@ -158,18 +155,18 @@ function VariantOptions(params) { function hide_all_variant_images() { $('li.vtmb').hide(); } - + function inventory(btns) { // for each option_value there is collection of available variants - // given option_values, Intersection of those collections is final available variants + // given option_values, Intersection of those collections is final available variants var variant_ids, variants, count = 0, selected = {}; - var sels = $.map(option_types.find('a.selected'), function(i) { return i.rel }); - + var sels = $.map(option_types.find('a.selected'), function(i) { return i.rel; }); + variants = get_variant_objects(sels); - available_variant_ids = $.map(variants, function(i) { return i.id }); + available_variant_ids = $.map(variants, function(i) { return i.id; }); btns.removeClass('in-stock out-of-stock unavailable').each(function(i, element) { variants = get_variant_objects([].concat( sels, element.rel)); - variant_ids = $.map(variants, function(i) { return i.id }); + variant_ids = $.map(variants, function(i) { return i.id; }); if (variant_ids.length == 0) { disable($(element).addClass('unavailable locked')); } else if (variant_ids.length == 1) { @@ -178,7 +175,7 @@ function VariantOptions(params) { } else if (allow_backorders) { $(element).addClass('in-stock'); } else { - $.each(variants, function(variant) { count += variant.count }); + $.each(variants, function(variant) { count += variant.count; }); $(element).addClass(count ? 'in-stock' : 'out-of-stock'); } }); @@ -189,10 +186,10 @@ function VariantOptions(params) { //------------------------------------------------------------------------------------------ function init_for_slide_style() { option_types = $(container_selector+" .variant-option"); - option_types.find('a.option-value').click( handle_click_for_slide_style ); + option_types.find('a.option-value').click( handle_click_for_slide_style ); $(container_selector+' button.next').click( next_step_click ); $(container_selector+' button.back').click( back_step_click ); - + initialize_option_view(); } @@ -202,21 +199,21 @@ function VariantOptions(params) { update_model(); // hide button back if index =0 if (index==0){ - $(container_selector+' button.back').attr('disabled', true); + $(container_selector+' button.back').attr('disabled', true); }else{ - $(container_selector+' button.back').attr('disabled', false); + $(container_selector+' button.back').attr('disabled', false); } if ((index+1) == option_types.length){ - $(container_selector+' button.next').attr('disabled', true); + $(container_selector+' button.next').attr('disabled', true); }else{ - $(container_selector+' button.next').attr('disabled', false); + $(container_selector+' button.next').attr('disabled', false); } - + // select one, or no option image show. if( option_values_container.find("a.option-value.selected").length == 0) { option_values_container.find("a.option-value:first").click(); } - option_values_container.show() + option_values_container.show(); } // update // update data, option_values_container,buttons @@ -224,49 +221,49 @@ function VariantOptions(params) { option_values_container = $(option_types.get(index)); buttons = option_values_container.find('a.option-value'); } - - // update price? + + // update price? function update_view() { - //show + //show var option_type_id_and_option_value_id = buttons.filter('.selected').attr('rel').split('-'); option_values_container.find(' .olge').hide(); option_values_container.find(' .lge-'+option_type_id_and_option_value_id[1]).show(); } - + function next_step_click() { index++; initialize_option_view(); } - + function back_step_click() { index--; initialize_option_view(); } - + function handle_click_for_slide_style(evt) { evt.preventDefault(); var a = $(this); var target_variant= null; //return if has class unavailable locked if( a.hasClass("unavailable") || a.hasClass("locked")|| a.hasClass("selected")){ - return - } + return; + } buttons.not(a).removeClass('selected'); a.addClass('selected'); - + update_view(); - - target_variant=find_variant() + + target_variant=find_variant(); toggle(target_variant); - + } // end slide style //========================================================================================== - + //========================================================================================== // common method for option value //------------------------------------------------------------------------------------------ - + function index_of_array(array, obj) { for(var i = 0; i < array.length; i++){ if(array[i] == obj) { @@ -275,21 +272,21 @@ function VariantOptions(params) { } return -1; } - + function to_f(string) { return parseFloat(string.replace(/[^\d\.]/g, '')); } function find_variant() { - var form_container = $(container_selector).parents('form:first') - var rels = $.map(option_types.find('a.selected'), function(i) { return i.rel }); + var form_container = $(container_selector).parents('form:first'); + var rels = $.map(option_types.find('a.selected'), function(i) { return i.rel; }); var variants = get_variant_objects(rels); if (rels.length == option_types.length) { return variants.pop(); } else { var prices = []; - $.each(variants, function(i, variant) { prices.push(variant.price) }); + $.each(variants, function(i, variant) { prices.push(variant.price); }); prices = $.unique(prices).sort(function(a, b) { return to_f(a) < to_f(b) ? -1 : 1; }); @@ -301,16 +298,16 @@ function VariantOptions(params) { return false; } } - + // get variants by selected option_vlaues function get_variant_objects(rels) { - var variant_objects = [] + var variant_objects = []; var i, ids, obj, variants = {}; if (typeof(rels) == 'string') { rels = [rels]; } var otid, ovid, opt, opv; i = rels.length; try { - for(var i=0; i0){ + if( view_style == 'slide' ){ + $(document).ready(init_for_slide_style); + }else{ + $(document).ready(init); + } } }; diff --git a/spree_theme/app/assets/javascripts/store/spree_theme.js b/spree_theme/app/assets/javascripts/store/spree_theme.js index b7518535..1b3ffdc3 100644 --- a/spree_theme/app/assets/javascripts/store/spree_theme.js +++ b/spree_theme/app/assets/javascripts/store/spree_theme.js @@ -1,81 +1,121 @@ //= require jquery +//= require jquery.turbolinks //= require jquery_ujs //= require jquery.form -//= require jquery.layout //= require jquery.ajax //= require jssor.slider.one //= require spree/frontend //= require store/spree_theme.client +//= require store/spree_theme.routes //= require interface.js //= require jquery.jeditable.js -//= require jquery.floatBar.js +//= require turbolinks +//require jquery.layout $(document).ready(function() { - if (typeof(g_is_preview) != 'undefined' && g_is_preview==true) + + if (typeof(g_client_info) != 'undefined' && g_client_info.is_preview==true) { if (typeof(g_selector_gadget) == 'undefined' || g_selector_gadget == null) { g_selector_gadget = new SelectorGadget(); g_selector_gadget.setMode('interactive'); } + $( "#editor_panel a.close" ).click( + function() { $(this).parent().hide(); $( "#editor_panel_icon" ).show();} + ); + $( "#editor_panel_icon" ).click( + function() { $( "#editor_panel" ).show(); } + ); + + //$('body').layout({ applyDefaultStyles: true, + // stateManagement__enabled: true //enable stateManagement - automatic cookie load & save enabled by default + //}); - $('body').layout({ applyDefaultStyles: true, - stateManagement__enabled: true // enable stateManagement - automatic cookie load & save enabled by default - }); - //$("#section_select_dialog").dialog({ autoOpen: false, // buttons: { "Cancel": function() { $(this).dialog("close"); }, // "OK": function() { submit_layout_tree_form( 'add_child',null, $(this).find('[name="selected_section_id"]').val()); // $(this).dialog("close"); } - // }, + // }, // width:500,height:245 }); - + $("#section_select_dialog .titles li").click(function(){ $(this).parent().children().removeClass('selected'); - $(this).addClass('selected'); + $(this).addClass('selected'); $(this).parent().next().children().removeClass('selected'); $(this).parent().next().children().eq($(this).index()).addClass('selected'); - $(this).parent().siblings('input').val($(this).attr('data-section-id')) + $(this).parent().siblings('input').val($(this).attr('data-section-id')); }); $("#section_select_dialog .dialog_close_button").click(function(){ - $.modal.close(); - }) + $.simplemodal.close(); + }); $("#section_select_dialog .dialog_ok_button").click(function(){ - submit_layout_tree_form( 'add_child',null, $('#section_select_dialog [name="selected_section_id"]').val()); - $.modal.close(); - }) + $('#selected_section_id').val($('#section_select_dialog [name="selected_section_id"]').val()); + + submit_layout_tree_form( this ); + $.simplemodal.close(); + }); // add, remove, move section - $('.add_section_button').click(function(){ - var page_layout_id = $(this).data('id'); - $('#layout_id').val(page_layout.id); - $('#section_select_dialog').modal({ minHeight:300, minWidth: 600 }); - }) - $('.remove_section_button').click(function(){ - var page_layout_id = $(this).data('id'); - if (confirm('Really?')) submit_layout_tree_form('del_self', page_layout.id ) - }) - $('.move_section_to_left_button').click(function(){ - var page_layout_id = $(this).data('id'); - submit_layout_tree_form('move_left',page_layout.id ) - }) - $('.move_section_to_right_button').click(function(){ - var page_layout_id = $(this).data('id'); - submit_layout_tree_form('move_right',page_layout.id ) - }) - $('.promote_section_button').click(function(){ - var page_layout_id = $(this).data('id'); - submit_layout_tree_form('promote',page_layout.id ) - }) - $('.demote_section_button').click(function(){ - var page_layout_id = $(this).data('id'); - submit_layout_tree_form('demote',page_layout.id ) - }) - } -}) -function submit_layout_tree_form (op, layout_id, selected_section_id) { + + // event is erase when layout tree updated. + $("#layout_tree_form .click_editable").editable(function(value, settings) { + var jquery_element = $(this); + var url = Spree.routes.admin_page_layouts( jquery_element.data('tid') )+'/'+jquery_element.data('lid'); + var submitdata = {}; + submitdata[settings.name] = value; + //submitdata[settings.id] = self.id; + $.ajax({ dataType: 'json', url: url, type: 'put', data : submitdata, + success: function(data){ + // data is null, "nocontent" returned + // jquery_element.html(data.page_layout.title); + } + }); + return(value); + }, + { //since dblclick would trigger click, for a link, we should not click,dblclick together + event : "click_editable", + name : "page_layout[title]", + cssclass : "editable", + style : "inherit" + }); + + $(document).on( 'click',"#layout_tree_form .click_editable",function(){ + self = $(this); + if($('#page_layout_editable').is(':checked')){ + // check event.editable to see editable initialized or not + // $(this).data('event.editable', settings.event); + self.trigger('click_editable'); + }else{ + $('#selected_page_layout_id').val(self.data('lid')); + $('#layout_editor_form').trigger('submit'); + } + }); + + $(document).on('mouseover',"#editors .tabs li", function(){ + $(this).parent().find('a').removeClass('selected'); + $(this).find('a').addClass('selected'); + $(this).parent().next().children().hide(); + $(this).parent().next().children().eq($(this).index()).show(); + $("#selected_editor_id").val($(this).attr('data-id')); + }); + + } +}); +function submit_layout_tree_form ( currentTarget ) { + var target = $(currentTarget); + var page_layout_id = target.data('id'); + + var op = target.data('op'); + if(op=='list_section'){ + $('#layout_id').val(page_layout_id); + $('#section_select_dialog').simplemodal({ minHeight:300, minWidth: 600, + overlayCss:{ 'background-color': 'gray' }, + containerCss: {'background-color': 'white', 'overflow' :'auto' } + }); + return; + } + $('#op').val(op); // layout_id, selected_section_id could be null. - if (layout_id) $('#layout_id').val(layout_id); - if (selected_section_id) $('#selected_section_id').val(selected_section_id); + if (page_layout_id) $('#layout_id').val(page_layout_id); $('#layout_tree_form').trigger('submit'); } - diff --git a/spree_theme/app/assets/javascripts/store/spree_theme.login.js b/spree_theme/app/assets/javascripts/store/spree_theme.login.js new file mode 100644 index 00000000..52e9ebc1 --- /dev/null +++ b/spree_theme/app/assets/javascripts/store/spree_theme.login.js @@ -0,0 +1 @@ +//= require spree diff --git a/spree_theme/app/assets/javascripts/store/spree_theme.mobile.js b/spree_theme/app/assets/javascripts/store/spree_theme.mobile.js new file mode 100644 index 00000000..f9cf24d7 --- /dev/null +++ b/spree_theme/app/assets/javascripts/store/spree_theme.mobile.js @@ -0,0 +1 @@ +//= require bootstrap-sprockets diff --git a/spree_theme/app/assets/javascripts/store/spree_theme.routes.js b/spree_theme/app/assets/javascripts/store/spree_theme.routes.js new file mode 100644 index 00000000..6ba5c757 --- /dev/null +++ b/spree_theme/app/assets/javascripts/store/spree_theme.routes.js @@ -0,0 +1,9 @@ + +Spree.routes.admin_template_themes = Spree.pathFor('admin/template_themes') +Spree.routes.admin_page_layouts = function(template_theme_id) { + return Spree.pathFor('admin/template_themes/'+template_theme_id+'/page_layouts') +} +Spree.routes.global_taxons_search = Spree.pathFor('api/taxons/global') + +//Spree.routes.global_taxons_search = "<%= spree.global_api_taxons_url(:format => :json) %>";' + diff --git a/spree_theme/app/assets/javascripts/superfish.js b/spree_theme/app/assets/javascripts/superfish.js new file mode 100644 index 00000000..d594a739 --- /dev/null +++ b/spree_theme/app/assets/javascripts/superfish.js @@ -0,0 +1,262 @@ +/* + * jQuery Superfish Menu Plugin - v1.7.5 + * Copyright (c) 2014 Joel Birch + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */ + +;(function ($, w) { + "use strict"; + + var methods = (function () { + // private properties and methods go here + var c = { + bcClass: 'sf-breadcrumb', + menuClass: 'sf-js-enabled', + anchorClass: 'sf-with-ul', + menuArrowClass: 'sf-arrows' + }, + ios = (function () { + var ios = /iPhone|iPad|iPod/i.test(navigator.userAgent); + if (ios) { + // iOS clicks only bubble as far as body children + $(w).load(function () { + $('body').children().on('click', $.noop); + }); + } + return ios; + })(), + wp7 = (function () { + var style = document.documentElement.style; + return ('behavior' in style && 'fill' in style && /iemobile/i.test(navigator.userAgent)); + })(), + unprefixedPointerEvents = (function () { + return (!!w.PointerEvent); + })(), + toggleMenuClasses = function ($menu, o) { + var classes = c.menuClass; + if (o.cssArrows) { + classes += ' ' + c.menuArrowClass; + } + $menu.toggleClass(classes); + }, + setPathToCurrent = function ($menu, o) { + return $menu.find('li.' + o.pathClass).slice(0, o.pathLevels) + .addClass(o.hoverClass + ' ' + c.bcClass) + .filter(function () { + return ($(this).children(o.popUpSelector).hide().show().length); + }).removeClass(o.pathClass); + }, + toggleAnchorClass = function ($li) { + $li.children('a').toggleClass(c.anchorClass); + }, + toggleTouchAction = function ($menu) { + var msTouchAction = $menu.css('ms-touch-action'); + var touchAction = $menu.css('touch-action'); + touchAction = touchAction || msTouchAction; + touchAction = (touchAction === 'pan-y') ? 'auto' : 'pan-y'; + $menu.css({ + 'ms-touch-action': touchAction, + 'touch-action': touchAction + }); + }, + applyHandlers = function ($menu, o) { + var targets = 'li:has(' + o.popUpSelector + ')'; + if ($.fn.hoverIntent && !o.disableHI) { + $menu.hoverIntent(over, out, targets); + } + else { + $menu + .on('mouseenter.superfish', targets, over) + .on('mouseleave.superfish', targets, out); + } + var touchevent = 'MSPointerDown.superfish'; + if (unprefixedPointerEvents) { + touchevent = 'pointerdown.superfish'; + } + if (!ios) { + touchevent += ' touchend.superfish'; + } + if (wp7) { + touchevent += ' mousedown.superfish'; + } + $menu + .on('focusin.superfish', 'li', over) + .on('focusout.superfish', 'li', out) + .on(touchevent, 'a', o, touchHandler); + }, + touchHandler = function (e) { + var $this = $(this), + $ul = $this.siblings(e.data.popUpSelector); + + if ($ul.length > 0 && $ul.is(':hidden')) { + $this.one('click.superfish', false); + if (e.type === 'MSPointerDown' || e.type === 'pointerdown') { + $this.trigger('focus'); + } else { + $.proxy(over, $this.parent('li'))(); + } + } + }, + over = function () { + var $this = $(this), + o = getOptions($this); + clearTimeout(o.sfTimer); + $this.siblings().superfish('hide').end().superfish('show'); + }, + out = function () { + var $this = $(this), + o = getOptions($this); + if (ios) { + $.proxy(close, $this, o)(); + } + else { + clearTimeout(o.sfTimer); + o.sfTimer = setTimeout($.proxy(close, $this, o), o.delay); + } + }, + close = function (o) { + o.retainPath = ($.inArray(this[0], o.$path) > -1); + this.superfish('hide'); + + if (!this.parents('.' + o.hoverClass).length) { + o.onIdle.call(getMenu(this)); + if (o.$path.length) { + $.proxy(over, o.$path)(); + } + } + }, + getMenu = function ($el) { + return $el.closest('.' + c.menuClass); + }, + getOptions = function ($el) { + return getMenu($el).data('sf-options'); + }; + + return { + // public methods + hide: function (instant) { + if (this.length) { + var $this = this, + o = getOptions($this); + if (!o) { + return this; + } + var not = (o.retainPath === true) ? o.$path : '', + $ul = $this.find('li.' + o.hoverClass).add(this).not(not).removeClass(o.hoverClass).children(o.popUpSelector), + speed = o.speedOut; + + if (instant) { + $ul.show(); + speed = 0; + } + o.retainPath = false; + o.onBeforeHide.call($ul); + $ul.stop(true, true).animate(o.animationOut, speed, function () { + var $this = $(this); + o.onHide.call($this); + }); + } + return this; + }, + show: function () { + var o = getOptions(this); + if (!o) { + return this; + } + var $this = this.addClass(o.hoverClass), + $ul = $this.children(o.popUpSelector); + + o.onBeforeShow.call($ul); + $ul.stop(true, true).animate(o.animation, o.speed, function () { + o.onShow.call($ul); + }); + return this; + }, + destroy: function () { + return this.each(function () { + var $this = $(this), + o = $this.data('sf-options'), + $hasPopUp; + if (!o) { + return false; + } + $hasPopUp = $this.find(o.popUpSelector).parent('li'); + clearTimeout(o.sfTimer); + toggleMenuClasses($this, o); + toggleAnchorClass($hasPopUp); + toggleTouchAction($this); + // remove event handlers + $this.off('.superfish').off('.hoverIntent'); + // clear animation's inline display style + $hasPopUp.children(o.popUpSelector).attr('style', function (i, style) { + return style.replace(/display[^;]+;?/g, ''); + }); + // reset 'current' path classes + o.$path.removeClass(o.hoverClass + ' ' + c.bcClass).addClass(o.pathClass); + $this.find('.' + o.hoverClass).removeClass(o.hoverClass); + o.onDestroy.call($this); + $this.removeData('sf-options'); + }); + }, + init: function (op) { + return this.each(function () { + var $this = $(this); + if ($this.data('sf-options')) { + return false; + } + var o = $.extend({}, $.fn.superfish.defaults, op), + $hasPopUp = $this.find(o.popUpSelector).parent('li'); + o.$path = setPathToCurrent($this, o); + + $this.data('sf-options', o); + + toggleMenuClasses($this, o); + toggleAnchorClass($hasPopUp); + toggleTouchAction($this); + applyHandlers($this, o); + + $hasPopUp.not('.' + c.bcClass).superfish('hide', true); + + o.onInit.call(this); + }); + } + }; + })(); + + $.fn.superfish = function (method, args) { + if (methods[method]) { + return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); + } + else if (typeof method === 'object' || ! method) { + return methods.init.apply(this, arguments); + } + else { + return $.error('Method ' + method + ' does not exist on jQuery.fn.superfish'); + } + }; + + $.fn.superfish.defaults = { + popUpSelector: 'ul,.sf-mega', // within menu context + hoverClass: 'sfHover', + pathClass: 'overrideThisToUse', + pathLevels: 1, + delay: 800, + animation: {opacity: 'show'}, + animationOut: {opacity: 'hide'}, + speed: 'normal', + speedOut: 'fast', + cssArrows: true, + disableHI: false, + onInit: $.noop, + onBeforeShow: $.noop, + onShow: $.noop, + onBeforeHide: $.noop, + onHide: $.noop, + onIdle: $.noop, + onDestroy: $.noop + }; + +})(jQuery, window); diff --git a/spree_theme/app/assets/stylesheets/_bootstrap_custom.scss b/spree_theme/app/assets/stylesheets/_bootstrap_custom.scss new file mode 100644 index 00000000..02dc1f51 --- /dev/null +++ b/spree_theme/app/assets/stylesheets/_bootstrap_custom.scss @@ -0,0 +1,50 @@ +// Core variables and mixins +@import "bootstrap/variables"; +@import "bootstrap/mixins"; + +// Reset and dependencies +@import "bootstrap/normalize"; +@import "bootstrap/print"; +//@import "bootstrap/glyphicons"; + +// Core CSS +@import "bootstrap/scaffolding"; +@import "bootstrap/type"; +@import "bootstrap/code"; +@import "bootstrap/grid"; +@import "bootstrap/tables"; +@import "bootstrap/forms"; +@import "bootstrap/buttons"; + +// Components +@import "bootstrap/component-animations"; +@import "bootstrap/dropdowns"; +@import "bootstrap/button-groups"; +@import "bootstrap/input-groups"; +@import "bootstrap/navs"; +@import "bootstrap/navbar"; +@import "bootstrap/breadcrumbs"; +@import "bootstrap/pagination"; +@import "bootstrap/pager"; +@import "bootstrap/labels"; +@import "bootstrap/badges"; +@import "bootstrap/jumbotron"; +@import "bootstrap/thumbnails"; +@import "bootstrap/alerts"; +@import "bootstrap/progress-bars"; +@import "bootstrap/media"; +@import "bootstrap/list-group"; +@import "bootstrap/panels"; +@import "bootstrap/responsive-embed"; +@import "bootstrap/wells"; +@import "bootstrap/close"; + +// Components w/ JavaScript +@import "bootstrap/modals"; +@import "bootstrap/tooltip"; +@import "bootstrap/popovers"; +@import "bootstrap/carousel"; + +// Utility classes +@import "bootstrap/utilities"; +@import "bootstrap/responsive-utilities"; diff --git a/spree_theme/app/assets/stylesheets/admin/login_abc.scss b/spree_theme/app/assets/stylesheets/admin/login_abc.scss new file mode 100644 index 00000000..1c0306d6 --- /dev/null +++ b/spree_theme/app/assets/stylesheets/admin/login_abc.scss @@ -0,0 +1,47 @@ + + .admin-container{ + margin: 150px auto 0 auto; + width: 500px; + } + .login-container{ + + } + /*.login-container table tbody tr:hover{ + background-color: #5498da; + }*/ + .admin-container-title{ + text-align:center; + color:white; + } + + + .login-container{ + + background-color: #5498da; + padding: 10px 75px ; + + h2{ padding:10px; } + + form{ + + p { padding: 5px; } + label { color:white; } + input[type='submit']{ + background-color: #9FC820; + /* border: solid 1px #009DE6; + */ + } + + } + + table{ + tbody { + tr { + &:hover td { + background-color: #5498da; + } + } + } + } + } + diff --git a/spree_theme/app/assets/stylesheets/admin/plugins/font-awesome-extra.css b/spree_theme/app/assets/stylesheets/admin/plugins/font-awesome-extra.css index 9479d3dd..25e7e4b7 100644 --- a/spree_theme/app/assets/stylesheets/admin/plugins/font-awesome-extra.css +++ b/spree_theme/app/assets/stylesheets/admin/plugins/font-awesome-extra.css @@ -1,6 +1,12 @@ -.icon-eye:before { +.fa-eye:before { content: "\f06e"; } -.icon-check-circle:before { +.fa-check-circle:before { content: "\f058"; } +.fa-mobile-phone:before{ + content: "\f10b"; +} +.fa-desktop:before{ + content: "\f108"; +} diff --git a/spree_theme/app/assets/stylesheets/admin_login.css b/spree_theme/app/assets/stylesheets/admin_login.css deleted file mode 100644 index ce21cf89..00000000 --- a/spree_theme/app/assets/stylesheets/admin_login.css +++ /dev/null @@ -1,38 +0,0 @@ - body{ - background-color: #EFEFEF; - font-size: 90%; - } - - .admin-box{ - } - .admin-container{ - margin: 250px auto 0 auto; - width: 500px; - background-color: #73CD54; - padding:15px 40px; - /* copy from http://www.cnblogs.com/leejersey/p/3187039.html */ - -moz-border-radius: 15px; /* Firefox */ - -webkit-border-radius: 15px; /* Safari 和 Chrome */ - border-radius: 15px; /* Opera 10.5+, 以及使用了IE-CSS3的IE浏览器 */ - - -moz-box-shadow: 5px 5px 8px #000; /* Firefox */ - -webkit-box-shadow: 5px 5px 8px #000; /* Safari 和 Chrome */ - box-shadow: 5px 5px 8px #000; /* Opera 10.5+, 以及使用了IE-CSS3的IE浏览器 */ - - } - .admin-container-title{ - text-align:center; - color:white; - } - - .admin-container form{ - margin: 0 0 0 115px; - } - .admin-container label{ color:white; } - .admin-container input[type='submit']{ - color: #009DE6; - /* background-color: #009DE6; - border: solid 1px #009DE6; - */ - padding: 2px 25px; - } diff --git a/spree_theme/app/assets/stylesheets/image-zoom.css.erb b/spree_theme/app/assets/stylesheets/image-zoom.css.erb new file mode 100644 index 00000000..ecc7f2e8 --- /dev/null +++ b/spree_theme/app/assets/stylesheets/image-zoom.css.erb @@ -0,0 +1,38 @@ +.image-zoom{ + display: inline-block; + cursor: default; + position: relative; +} +.zoom-loading{ + text-align: center; + width: 32px; + height: 32px; + background: url(/shops/shared/images/zoom/loading.gif) no-repeat 0 0 transparent; + z-index: 110; + position: absolute; +} +.zoom-lens{ + background: url(/shops/shared/images/zoom/zoom.png) repeat scroll 0 0; + cursor: move; + z-index: 120; + position: absolute; +} +.zoom-viewer { + overflow: hidden; + position: absolute; + background: #FFF; + z-index: 110; + border: 1px solid #DDDDDD; + +} +.zoom-viewer img { + position: absolute; +} +.zoom-iframe { + z-index: -1; + filter:alpha(opacity=0); + -moz-opacity: 0.80; + opacity: 0.80; + position:absolute; + display:block; +} \ No newline at end of file diff --git a/spree_theme/app/assets/stylesheets/interface.css b/spree_theme/app/assets/stylesheets/interface.css index 39437272..d8636a6d 100644 --- a/spree_theme/app/assets/stylesheets/interface.css +++ b/spree_theme/app/assets/stylesheets/interface.css @@ -2,7 +2,7 @@ .sg_cover /* for interface.js*/ { position:absolute !important; - z-index:999999 !important; + z-index:99 !important; background:white !important; margin:0px !important; padding:0px !important; @@ -24,7 +24,7 @@ } .sg_border{ position:absolute !important; - z-index:999999 !important; + z-index:99 !important; background:white !important; background-color:orange !important; margin:0px !important; @@ -53,4 +53,4 @@ .sg_rejected{ background-color:#F00 !important; background-image:none !important; -} \ No newline at end of file +} diff --git a/spree_theme/app/assets/stylesheets/jquery.layout.css b/spree_theme/app/assets/stylesheets/jquery.layout.css index 14e507b5..6185acf4 100644 --- a/spree_theme/app/assets/stylesheets/jquery.layout.css +++ b/spree_theme/app/assets/stylesheets/jquery.layout.css @@ -19,9 +19,10 @@ * Just to make demo-pages look better - not actually relevant to Layout! */ body { - font-family: Geneva, Arial, Helvetica, sans-serif; +/* font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 100%; *font-size: 80%; +*/ } /* diff --git a/spree_theme/app/assets/stylesheets/jquery.lightbox.css b/spree_theme/app/assets/stylesheets/jquery.lightbox.css new file mode 100644 index 00000000..38c50475 --- /dev/null +++ b/spree_theme/app/assets/stylesheets/jquery.lightbox.css @@ -0,0 +1,110 @@ +#lightbox{ + position: absolute; + left: 0; + width: 100%; + z-index: 100; + text-align: center; + line-height: 0; + } + +#lightbox a img{ border: none; } + +#outerImageContainer{ + position: relative; + background-color: #fff; + width: 250px; + height: 250px; + margin: 0 auto; + } + +#imageContainer{ + padding: 10px; + } + +.lightbox-loading{ + position: absolute; + top: 40%; + left: 0%; + height: 25%; + width: 100%; + text-align: center; + line-height: 0; + } +#hoverNav{ + position: absolute; + top: 0; + left: 0; + height: 100%; + width: 100%; + z-index: 10; + } +#imageContainer>#hoverNav{ left: 0;} +#hoverNav a{ outline: none;} + +#prevLink, #nextLink{ + width: 49%; + height: 100%; + background: transparent url(/shops/shared/images/lightbox/blank.gif) no-repeat; /* Trick IE into showing hover */ + display: block; + } +#prevLink { left: 0; float: left;} +#nextLink { right: 0; float: right;} +#prevLink:hover, #prevLink:visited:hover { background: url(/shops/shared/images/lightbox/prev.gif) left 50% no-repeat; } +#nextLink:hover, #nextLink:visited:hover { background: url(/shops/shared/images/lightbox/next.gif) right 50% no-repeat; } + +/*** START : next / previous text links ***/ +#nextLinkText, #prevLinkText{ +color: #FF9834; +font-weight:bold; +text-decoration: none; +} +#nextLinkText{ +padding-left: 20px; +} +#prevLinkText{ +padding-right: 20px; +} +/*** END : next / previous text links ***/ +/*** START : added padding when navbar is on top ***/ + +.ontop #imageData { + padding-top: 5px; +} + +/*** END : added padding when navbar is on top ***/ + +#imageDataContainer{ + font: 10px Verdana, Helvetica, sans-serif; + background-color: #fff; + margin: 0 auto; + line-height: 1.4em; + } + +#imageData{ + padding:0 10px; + } +#imageData #imageDetails{ width: 70%; float: left; text-align: left; } +#imageData #caption{ font-weight: bold; } +#imageData #numberDisplay{ display: block; clear: left; padding-bottom: 1.0em; } +#imageData #numberDisplay a { color: black; padding-left: 5px; padding-right: 5px;} +#imageData #bottomNavClose{ width: 66px; float: right; padding-bottom: 0.7em; } +#imageData #helpDisplay {clear: left; float: left; display: block; } + +.lightbox-overlay{ + position: absolute; + top: 0; + left: 0; + z-index: 90; + width: 100%; + height: 500px; + background-color: #000; + filter:alpha(opacity=60); + -moz-opacity: 0.6; + opacity: 0.6 !important; + display: none; + } + + +#lightboxIframe { + display: none; +} diff --git a/spree_theme/app/assets/stylesheets/store/_spree_theme_variables.scss b/spree_theme/app/assets/stylesheets/store/_spree_theme_variables.scss new file mode 100644 index 00000000..7cb6e8d7 --- /dev/null +++ b/spree_theme/app/assets/stylesheets/store/_spree_theme_variables.scss @@ -0,0 +1,62 @@ +/*--------------------------------------*/ +/* Colors +/*--------------------------------------*/ +$c_green: #8dba53 !default; /* Spree green */ +$c_red: #e45353 !default; /* Error red */ + +$layout_background_color: #FFFFFF !default; +$title_text_color: #404042 !default; +$body_text_color: #404042 !default; +$link_text_color: #00ADEE !default; + +$product_background_color: #FFFFFF !default; +$product_title_text_color: #404042 !default; +$product_body_text_color: #404042 !default; +$product_link_text_color: #BBBBBB !default; + +/*--------------------------------------*/ +/* Fonts import from remote +/*--------------------------------------*/ +/*@import url(//fonts.googleapis.com/css?family=Ubuntu:400,700,400italic,700italic|&subset=latin,cyrillic,greek,greek-ext,latin-ext,cyrillic-ext); +*/ + +/*--------------------------------------*/ +/* Font families +/*--------------------------------------*/ +$ff_base: 'Ubuntu', sans-serif !default; + +/*-------------------------------------- + | Font sizes + |-------------------------------------- + |- Navigation + | */ + $header_navigation_font_size: 14px !default; + $horizontal_navigation_font_size: 16px !default; + $main_navigation_header_font_size: 14px !default; + $main_navigation_font_size: 12px !default; +/*|------------------------------------ + |- Product Listing + | */ + $product_list_name_font_size: 12px !default; + $product_list_price_font_size: 16px !default; + $product_list_header_font_size: 20px !default; + $product_list_search_font_size: 14px !default; +/*|------------------------------------ + |- Product Details + | */ + $product_detail_name_font_size: 24px !default; + $product_detail_description_font_size: 12px !default; + $product_detail_price_font_size: 20px !default; + $product_detail_title_font_size: 14px !default; +/*|------------------------------------ + |- Basic + | */ + $heading_font_size: 24px !default; + $sub_heading_font_size: 14px !default; + $button_font_size: 12px !default; + $input_box_font_size: 13px !default; + $base_font_size: 12px !default; + $border_color: lighten($body_text_color, 60) !default; + $default_border: 1px solid $border_color !default; + $button_border_color: rgba(0, 138, 189, .75) !default; + $table_head_color: lighten($body_text_color, 60) !default; diff --git a/spree_theme/app/assets/stylesheets/store/spree_theme.client.css b/spree_theme/app/assets/stylesheets/store/spree_theme.client.css deleted file mode 100644 index b41fc6d9..00000000 --- a/spree_theme/app/assets/stylesheets/store/spree_theme.client.css +++ /dev/null @@ -1,29 +0,0 @@ -/* - *= require normalize -*/ -#embeded_content_wrapper{ - position: absolute; - top:0; - left:0; - right:0; - height:30px; - border-bottom: solid 1px #EBEBEB; - background-color: #F8F8F8; - z-index: 100; - display: none; -} -#embeded_content_wrapper .theme_selection_wrapper{ - text-align:right; -} - -#embeded_content_wrapper_icon{ - position: absolute; - top:0; - right:0; - height:30px; - width:30px; - border: solid 1px #EBEBEB; - background-color: #F8F8F8; - z-index: 99; - font-size: 0.7em; -} diff --git a/spree_theme/app/assets/stylesheets/store/spree_theme.client.css.scss b/spree_theme/app/assets/stylesheets/store/spree_theme.client.css.scss new file mode 100644 index 00000000..da681ede --- /dev/null +++ b/spree_theme/app/assets/stylesheets/store/spree_theme.client.css.scss @@ -0,0 +1,63 @@ +@import 'store/spree_theme_variables'; +@import 'image-zoom'; +@import 'jquery.lightbox'; +@import 'store/spree_china_checkout'; + +html.turbolinks-progress-bar::before { + background-color: red !important; + height: 2px !important; +} + +/* mobile required it as well */ +#embeded_content_wrapper{ + position: absolute; + top:0; + left:0; + right:0; + height:30px; + border-bottom: solid 1px #EBEBEB; + background-color: #F8F8F8; + z-index: 100; + display: none; +} +#embeded_content_wrapper .theme_selection_wrapper{ + text-align:right; +} + +#embeded_content_wrapper_icon{ + position: absolute; + top:0; + right:0; + height:30px; + width:30px; + border: solid 1px #EBEBEB; + background-color: #F8F8F8; + z-index: 99; + font-size: 0.7em; +} +/* state name */ +.hidden { + display: none; +} + +/*--------------------------------------*/ +/* Flash notices & errors +/*--------------------------------------*/ +/* +.flash { + padding: 10px; + color: $layout_background_color; + font-weight: bold; + margin-bottom: 10px; + + &.notice { + background-color: $link_text_color; + } + &.success { + background-color: $c_green; + } + &.error { + background-color: $c_red; + } +} +*/ \ No newline at end of file diff --git a/spree_theme/app/assets/stylesheets/store/spree_theme.css b/spree_theme/app/assets/stylesheets/store/spree_theme.css deleted file mode 100644 index e9b929ef..00000000 --- a/spree_theme/app/assets/stylesheets/store/spree_theme.css +++ /dev/null @@ -1,110 +0,0 @@ -/* - *= require spree_theme_base - *= require jquery.layout - *= require normalize - *= require interface -*/ - -#editor_panel -{height:260px; -} -#page_layout_tree_inner -{ - height:200px; - overflow: auto; -} -.param_value_editor -{ - height:200px; - overflow: auto; -} -.editor-header -{ - background-color: #B6B6B6; -} - - -.block -{ - border: solid 1px gray; - padding: 2px; - margin: 2px; -} - -.menu li{ - padding:5px; - float:left; -} -ul.tabs{list-style:none; margin:0;padding:0;} -.tabs li{ - padding:5px; - float:left; -} - -#editors span.option_item -{ - display:inline-block; - width:170px; -} - -#editors div.pv{ - padding:2px; - -} -#editors span.pv-name -{ - display:inline-block; - width:150px; -} - -#editors input.pv-psv, select.pv-psv -{ - display:inline-block; - width:120px; -} -#editors input.pv-pv -{ - display:inline-block; - width:120px; -} -#section_select_dialog ul -{ - list-style:none; margin: 0; padding: 0; -} -#section_select_dialog ul.titles li -{ - white-space:nowrap; -} - -#section_select_dialog li.selected -{ - background-color: silver; -} -#section_select_dialog .details .selected -{ - display:block; -} -#section_select_dialog .details div -{ - display:none; -} - -#editors label, #menu_and_template label -{ - margin:0; - padding:0; - display:inline; -} -#publish ul -{ - margin:0; - padding:0; -} - -#editor_panel a.selected -{ - background-color: #22A7F2; - color: white; - font-weight: bold; -} - diff --git a/spree_theme/app/assets/stylesheets/store/spree_theme.css.scss b/spree_theme/app/assets/stylesheets/store/spree_theme.css.scss new file mode 100644 index 00000000..547d9697 --- /dev/null +++ b/spree_theme/app/assets/stylesheets/store/spree_theme.css.scss @@ -0,0 +1,145 @@ +@import "spree_theme_base"; +@import "interface"; + +#editor_panel +{ position: fixed; + bottom:0; + left:0; + right:0; + height:248px; + border-bottom: solid 1px #EBEBEB; + background-color: #F8F8F8; + z-index: 100; + display: none; +} +#editor_panel a.close{ + position: absolute; + top:0; + right:0; + display: inline-block; + padding:5px; +} +#editor_panel_icon{ + position: fixed; + bottom:0; + right:0; + height:30px; + width:30px; + border: solid 1px #EBEBEB; + background-color: #F8F8F8; + z-index: 99; + font-size: 0.7em; +} +#page_layout_tree_inner +{ + height:200px; + overflow: auto; +} +.param_value_editor +{ + height:200px; + overflow: auto; +} +.editor-header +{ + background-color: #B6B6B6; +} + + +.block +{ + border: solid 1px gray; + padding: 2px; + margin: 2px; +} +.block_header{ height:32px; } + +.menu li{ + padding:5px; + float:left; +} +ul.tabs{list-style:none; margin:0;padding:0;} +.tabs li{ + padding: 5px; + float:left; +} + +#editors span.option_item +{ + display:inline-block; + width:170px; +} + +#editors div.pv{ + padding:2px; + +} +#editors span.pv-name +{ + display:inline-block; + width:150px; +} + +#editors input.pv-psv, select.pv-psv +{ + display:inline-block; + width:120px; +} +#editors input.pv-pv +{ + display:inline-block; + width:120px; +} +#editors [type="checkbox"]{ + vertical-align: bottom; +} + +#section_select_dialog ul +{ + list-style:none; margin: 0; padding: 0; +} +#section_select_dialog ul.titles li +{ + white-space:nowrap; +} + +#section_select_dialog li.selected +{ + background-color: silver; +} +#section_select_dialog .details .selected +{ + display:block; +} +#section_select_dialog .details div +{ + display:none; +} + +#editors label, #menu_and_template label +{ + margin:0; + padding:0; + display:inline; +} +#publish ul +{ + margin:0; + padding:0; +} + +#editor_panel a.selected +{ + background-color: #22A7F2; + color: white; + font-weight: bold; +} + +#dialog_for_editor{ + background-color:white; + padding: 25px 35px; + display:none; +} + +.simplemodal-overlay{ background-color:black; } +form.editable input { color: black; } diff --git a/spree_theme/app/assets/stylesheets/store/spree_theme.desktop.css.scss b/spree_theme/app/assets/stylesheets/store/spree_theme.desktop.css.scss new file mode 100644 index 00000000..14aea5b9 --- /dev/null +++ b/spree_theme/app/assets/stylesheets/store/spree_theme.desktop.css.scss @@ -0,0 +1,4 @@ + +@import 'normalize'; +@import 'store/spree_theme.client'; + diff --git a/spree_theme/app/assets/stylesheets/store/spree_theme.mobile.css.scss b/spree_theme/app/assets/stylesheets/store/spree_theme.mobile.css.scss new file mode 100644 index 00000000..9bdcda3a --- /dev/null +++ b/spree_theme/app/assets/stylesheets/store/spree_theme.mobile.css.scss @@ -0,0 +1,3 @@ +@import "font-awesome"; +@import "bootstrap_custom"; +@import 'store/spree_theme.client'; diff --git a/spree_comments/app/controllers/spree/admin/comment_types_controller.rb b/spree_theme/app/controllers/spree/admin/comment_types_controller.rb similarity index 100% rename from spree_comments/app/controllers/spree/admin/comment_types_controller.rb rename to spree_theme/app/controllers/spree/admin/comment_types_controller.rb diff --git a/spree_comments/app/controllers/spree/admin/comments_controller.rb b/spree_theme/app/controllers/spree/admin/comments_controller.rb similarity index 100% rename from spree_comments/app/controllers/spree/admin/comments_controller.rb rename to spree_theme/app/controllers/spree/admin/comments_controller.rb diff --git a/spree_comments/app/controllers/spree/admin/orders_controller_decorator.rb b/spree_theme/app/controllers/spree/admin/orders_controller_decorator.rb similarity index 100% rename from spree_comments/app/controllers/spree/admin/orders_controller_decorator.rb rename to spree_theme/app/controllers/spree/admin/orders_controller_decorator.rb diff --git a/spree_theme/app/controllers/spree/admin/page_layout_controller.rb b/spree_theme/app/controllers/spree/admin/page_layout_controller.rb deleted file mode 100644 index aebd2294..00000000 --- a/spree_theme/app/controllers/spree/admin/page_layout_controller.rb +++ /dev/null @@ -1,97 +0,0 @@ -module Spree - module Admin - class PageLayoutController< ResourceController - respond_to :html, :json, :js #update title required json - - def update_resource - @template_theme = TemplateTheme.find( params[:template_theme_id]) - assigned_resource_ids = params[:assigned_resource_ids] - #assigned_resource_ids could be [''] - assigned_resource_ids.select!(&:present?) if assigned_resource_ids.kind_of? Array - section_piece_with_resources = @page_layout.section_pieces.with_resources.first - if assigned_resource_ids.present? - if section_piece_with_resources.present? - section_piece_with_resources.wrapped_resources.each_with_index{|wrapped_resource,index| - resource_id = assigned_resource_ids[index] - resource = wrapped_resource.resource_class.find resource_id - @template_theme.assign_resource(resource, @page_layout, index) - } - else# assigned taxon - assigned_resource_ids = assigned_resource_ids.split(',') if assigned_resource_ids.kind_of? String - assigned_resource_ids.each_with_index{|resource_id, index| - resource = SpreeTheme.taxon_class.find resource_id - @template_theme.assign_resource(resource, @page_layout, index) - } - end - else #unassign resource - if section_piece_with_resources.present? - section_piece_with_resources.wrapped_resources.each_with_index{|wrapped_resource,index| - @template_theme.unassign_resource(wrapped_resource.resource_class , @page_layout, index) - } - else - @template_theme.unassign_resource(SpreeTheme.taxon_class, @page_layout) - end - end - @assigned_resources = @template_theme.assigned_resources_by_page_layout( @page_layout ) - end - - #update section_context - def update_context - section_contexts = params[:section_contexts] - specific_taxon_ids = params[:specific_taxon_ids] - if section_contexts.present? - @page_layout.update_section_context(section_contexts ) - else - @page_layout.update_section_context( PageLayout::ContextEnum.either ) - end - @template_theme = TemplateTheme.find( params[:template_theme_id]) - if specific_taxon_ids.present? - @specific_taxons = Spree::SpecificTaxon.find specific_taxon_ids.split(',') - @specific_taxons.each_with_index{|resource, index| - @template_theme.assign_resource(resource, @page_layout, index) - } - else - @specific_taxons = [] - @template_theme.assigned_resources(Spree::SpecificTaxon,@page_layout).each_with_index{|assigned_resource,index| - if assigned_resource.present? - @template_theme.unassign_resource(Spree::SpecificTaxon, @page_layout, index) - end - } - end - - end - - #update datasource - def update_data_source - section_data_source = params[:section_data_source] - if section_data_source.present? - @page_layout.update_data_source(section_data_source.to_sym ) - else - @page_layout.update_data_source( PageLayout::DataSourceEmpty ) - end - end - - def update_other - view_as_clickable = params[:view_as_clickable] - @page_layout.update_content_param( {:view_as_clickable=>view_as_clickable} ) - end - - def config_resource - @template_theme = TemplateTheme.find( params[:template_theme_id] ) - end - - def config_context - @template_theme = TemplateTheme.find( params[:template_theme_id] ) - end - - def config_data_source - @template_theme = TemplateTheme.find( params[:template_theme_id] ) - end - - def config_other - @template_theme = TemplateTheme.find( params[:template_theme_id] ) - end - - end - end -end \ No newline at end of file diff --git a/spree_theme/app/controllers/spree/admin/page_layouts_controller.rb b/spree_theme/app/controllers/spree/admin/page_layouts_controller.rb new file mode 100644 index 00000000..48fe0e19 --- /dev/null +++ b/spree_theme/app/controllers/spree/admin/page_layouts_controller.rb @@ -0,0 +1,97 @@ +module Spree + module Admin + class PageLayoutsController< ResourceController + respond_to :html, :json, :js #update title required json + + def update_resource + @template_theme = TemplateTheme.find( params[:template_theme_id]) + assigned_resource_ids = params[:assigned_resource_ids] + #assigned_resource_ids could be [''] + assigned_resource_ids.select!(&:present?) if assigned_resource_ids.kind_of? Array + section_piece_with_resources = @page_layout.section_pieces.with_resources.first + if assigned_resource_ids.present? + if section_piece_with_resources.present? + section_piece_with_resources.wrapped_resources.each_with_index{|wrapped_resource,index| + resource_id = assigned_resource_ids[index] + resource = wrapped_resource.resource_class.find resource_id + @template_theme.assign_resource(resource, @page_layout, index) + } + else# assigned taxon + assigned_resource_ids = assigned_resource_ids.split(',') if assigned_resource_ids.kind_of? String + assigned_resource_ids.each_with_index{|resource_id, index| + resource = SpreeTheme.taxon_class.find resource_id + @template_theme.assign_resource(resource, @page_layout, index) + } + end + else #unassign resource + if section_piece_with_resources.present? + section_piece_with_resources.wrapped_resources.each_with_index{|wrapped_resource,index| + @template_theme.unassign_resource(wrapped_resource.resource_class , @page_layout, index) + } + else + @template_theme.unassign_resource(SpreeTheme.taxon_class, @page_layout) + end + end + @assigned_resources = @template_theme.assigned_resources_by_page_layout( @page_layout ) + end + + #update section_context + def update_context + section_contexts = params[:section_contexts] + specific_taxon_ids = params[:specific_taxon_ids] + if section_contexts.present? + @page_layout.update_section_context(section_contexts ) + else + @page_layout.update_section_context( PageLayout::ContextEnum.either ) + end + @template_theme = TemplateTheme.find( params[:template_theme_id]) + if specific_taxon_ids.present? + @specific_taxons = Spree::SpecificTaxon.find specific_taxon_ids.split(',') + @specific_taxons.each_with_index{|resource, index| + @template_theme.assign_resource(resource, @page_layout, index) + } + else + @specific_taxons = [] + @template_theme.assigned_resources(Spree::SpecificTaxon,@page_layout).each_with_index{|assigned_resource,index| + if assigned_resource.present? + @template_theme.unassign_resource(Spree::SpecificTaxon, @page_layout, index) + end + } + end + + end + + #update datasource + def update_data_source + section_data_source = params[:section_data_source] + if section_data_source.present? + @page_layout.update_data_source(section_data_source.to_sym ) + else + @page_layout.update_data_source( PageLayout::DataSourceEmpty ) + end + end + + def update_other + view_as_clickable = params[:view_as_clickable] + @page_layout.update_content_param( {:view_as_clickable=>view_as_clickable} ) + end + + def config_resource + @template_theme = TemplateTheme.find( params[:template_theme_id] ) + end + + def config_context + @template_theme = TemplateTheme.find( params[:template_theme_id] ) + end + + def config_data_source + @template_theme = TemplateTheme.find( params[:template_theme_id] ) + end + + def config_other + @template_theme = TemplateTheme.find( params[:template_theme_id] ) + end + + end + end +end \ No newline at end of file diff --git a/spree_comments/app/controllers/spree/admin/shipments_controller_decorator.rb b/spree_theme/app/controllers/spree/admin/shipments_controller_decorator.rb similarity index 100% rename from spree_comments/app/controllers/spree/admin/shipments_controller_decorator.rb rename to spree_theme/app/controllers/spree/admin/shipments_controller_decorator.rb diff --git a/spree_theme/app/controllers/spree/admin/template_files_controller.rb b/spree_theme/app/controllers/spree/admin/template_files_controller.rb index c6a2a585..18ae0a68 100644 --- a/spree_theme/app/controllers/spree/admin/template_files_controller.rb +++ b/spree_theme/app/controllers/spree/admin/template_files_controller.rb @@ -1,11 +1,18 @@ module Spree module Admin class TemplateFilesController < Spree::Admin::ResourceController - - + + def collection - model_class.where( ["theme_id in (?)", Spree::Site.current.template_theme_ids] ).includes(:template_theme) + return @collection if @collection.present? + # params[:q] can be blank upon pagination + params[:q] = {} if params[:q].blank? + + @collection = model_class.where( ["theme_id in (?)", Spree::Store.current.template_theme_ids] ).includes(:template_theme) + @search = @collection.ransack(params[:q]) + + @search.result.page(params[:page]).per(Spree::Config[:orders_per_page]).order('theme_id') end - end + end end -end +end diff --git a/spree_theme/app/controllers/spree/admin/template_themes_controller.rb b/spree_theme/app/controllers/spree/admin/template_themes_controller.rb index c9dad796..c590faff 100644 --- a/spree_theme/app/controllers/spree/admin/template_themes_controller.rb +++ b/spree_theme/app/controllers/spree/admin/template_themes_controller.rb @@ -7,7 +7,7 @@ class TemplateThemesController < ResourceController #Spree::Admin::BaseControlle def index native end - + #list themes def native @themes = TemplateTheme.native @@ -19,106 +19,76 @@ def foreign @themes = @themes.select{|theme| theme.template_releases.present?} end - # description - import theme with taxonomy into current site - # in this way, it is simpler for user, click 'buy', done. - def import - imported_theme = @template_theme.import_with_resource( ) - if imported_theme.present? - if imported_theme.site.template_themes.count == 1 - imported_theme.site.apply_theme imported_theme - end - flash[:success] = Spree.t('notice_messages.theme_imported') - else - flash[:success] = Spree.t('notice_messages.theme_not_imported') - end - - respond_to do |format| - format.html { redirect_to(foreign_admin_template_themes_url) } - end - end - + #apply this theme to site def apply - SpreeTheme.site_class.current.apply_theme @template_theme - respond_with(@template_theme) + Spree::Store.current.apply_theme @template_theme + respond_with(@template_theme) end begin 'design shop' - - def prepare_import - end - + + #def prepare_import + #end + #copy selected theme to new theme def copy @original_theme = TemplateTheme.find(params[:id]) #copy theme, layout, param_value - @new_theme = @original_theme.copy_to_new - + @new_theme = @original_theme.duplicate + respond_to do |format| format.html { redirect_to(admin_template_themes_url) } - end + end end def release - #create template_release before call lg.release - if @template_theme.has_native_layout? + #create template_release before call lg.release + if @template_theme.has_native_layout? @template_theme.release end - @themes = TemplateTheme.native - render :action=>'native' - end - - - def create - invoke_callbacks(:create, :before) - @object.attributes = params[object_name] - if @object.save - invoke_callbacks(:create, :after) - flash[:success] = flash_message_for(@object, :successfully_created) - respond_with(@object) do |format| - format.html { redirect_to location_after_save } - format.js { render :layout => false } - end - else - invoke_callbacks(:create, :fails) - respond_with(@object) + if @template_theme.mobile.present? + @template_theme.mobile.release end + flash[:success] = Spree.t('notice_messages.theme_released') + @themes = TemplateTheme.native + render :action=>'native' end end - - - + + + protected def collection_actions [:index, :native, :foreign] end - - # description - it is not using + + # description - it is not using # params # assigned_resource_ids: required, a hash, key is page_layout_id - # ex. {"30"=>[""], "3"=>[""]} - # template_files: required, a array of template_file attributes + # ex. {"30"=>[""], "3"=>[""]} + # template_files: required, a array of template_file attributes #def import # #FIXME support config template when import theme - # #template_files = params[:template_files].collect{|file| TemplateFile.new( file) }.select{|file| file.attachment.present? } + # #template_files = params[:template_files].collect{|file| TemplateFile.new( file) }.select{|file| file.attachment.present? } # #assigned_resource_ids = Hash[ params[:assigned_resource_ids].collect{|key,val| # # [key.to_i,{ @template_theme.get_resource_class_key(SpreeTheme.taxon_class) => val.select(&:present?).collect(&:to_i)}] # #}] # #new_theme_attributes = { :assigned_resource_ids=>assigned_resource_ids, # # :template_files => template_files - # #} + # #} # imported_theme = @template_theme.import( new_theme_attributes = {} ) # if imported_theme.present? # flash[:success] = Spree.t('notice_messages.theme_imported') # else # flash[:success] = Spree.t('notice_messages.theme_not_imported') - # end + # end # respond_to do |format| # format.html { redirect_to(foreign_admin_template_themes_url) } - # end + # end #end - + end end end diff --git a/spree_theme/app/controllers/spree/comments_controller.rb b/spree_theme/app/controllers/spree/comments_controller.rb index 11244424..530d1256 100644 --- a/spree_theme/app/controllers/spree/comments_controller.rb +++ b/spree_theme/app/controllers/spree/comments_controller.rb @@ -1,15 +1,15 @@ module Spree class CommentsController < StoreController before_filter :initialize_comment, :only => [:create, :new_to_site] - + def new_to_site - @comment.commentable = Spree::Site.current + @comment.commentable = Spree::Store.current end - + def create - @comment.attributes = object_params + @comment.attributes = permitted_resource_params if @comment.save - flash[:success] = Spree.t(:comment_successfully_created, :scope=>@comment.comment_scope) + flash[:success] = Spree.t(:comment_successfully_created) respond_with(@comment) do |format| format.html { redirect_to :back } format.js { render :layout => false } @@ -18,28 +18,17 @@ def create respond_with(@comment) end end - + private - + def initialize_comment @comment = Comment.new( ) @comment.user = try_spree_current_user end - - # comment{commentable_id, commentable_type, user_email} - def object_params - comment_params = params[:comment] - #user_email = comment_params.delete( :user_email ) - #if user_email - # user = User.find_or_initialize_by_email( user_email ) - # if user.persited? - # comment_params[:user_id] = user.id - # else - # comment_params[:user] = user - # end - #end - comment_params - end + + def permitted_resource_params + params.require('comment').permit( permitted_attributes.comment_attributes ) + end end - -end \ No newline at end of file + +end diff --git a/spree_theme/app/controllers/spree/decorators/api_products_controller_decorator.rb b/spree_theme/app/controllers/spree/decorators/api_products_controller_decorator.rb new file mode 100644 index 00000000..44e8e99e --- /dev/null +++ b/spree_theme/app/controllers/spree/decorators/api_products_controller_decorator.rb @@ -0,0 +1,4 @@ +Spree::Api::ProductsController.class_eval do + + +end diff --git a/spree_theme/app/controllers/spree/decorators/base_controller_decorator.rb b/spree_theme/app/controllers/spree/decorators/base_controller_decorator.rb index b2517309..2e9b95e3 100644 --- a/spree_theme/app/controllers/spree/decorators/base_controller_decorator.rb +++ b/spree_theme/app/controllers/spree/decorators/base_controller_decorator.rb @@ -17,15 +17,24 @@ module Spree # end #end #override spree_core/controller_helper/auth#unauthorized - def unauthorized - url = new_admin_session_path - if try_spree_current_user - flash[:error] = Spree.t(:authorization_failure) - redirect_to new_admin_session_path - else - store_location - redirect_to new_admin_session_path - end - end + # def unauthorized + # url = new_admin_session_path + # if try_spree_current_user + # flash[:error] = Spree.t(:authorization_failure) + # redirect_to new_admin_session_path + # else + # store_location + # redirect_to new_admin_session_path + # end + # end + end + +end + +module Spree::Admin + BaseController.class_eval do + rescue_from CanCan::AccessDenied do |exception| + redirect_to new_admin_session_path end + end end \ No newline at end of file diff --git a/spree_theme/app/controllers/spree/decorators/checkout_controller_decorator.rb b/spree_theme/app/controllers/spree/decorators/checkout_controller_decorator.rb index 871f2794..a046dd47 100644 --- a/spree_theme/app/controllers/spree/decorators/checkout_controller_decorator.rb +++ b/spree_theme/app/controllers/spree/decorators/checkout_controller_decorator.rb @@ -1,39 +1,15 @@ #encoding: utf-8 module Spree CheckoutController.class_eval do - # Updates the order and advances to the next state (when possible.) - def update - if @order.update_attributes(object_params) - fire_event('spree.checkout.update') + before_action :associate_terminal - while(@order.next) do - if pay_with_billing_integration? - break - end - end - #since update is override, call it explicitly for alipay - if pay_with_billing_integration? - handle_billing_integration - return - end - - unless @order.completed? - flash[:error] = @order.errors.full_messages.join("\n") - redirect_to checkout_state_path(@order.state) and return - end - - if @order.completed? - session[:order_id] = nil - flash.notice = Spree.t(:order_processed_successfully) - flash[:commerce_tracking] = "nothing special" - redirect_to completion_route - else - redirect_to checkout_state_path(@order.state) - end - else - render :edit + def associate_terminal + @order ||= current_order + if @order + @order.associate_terminal!(current_terminal) if @order.user_terminal != current_terminal end end + private # For payment step, filter order parameters to produce the expected nested # attributes for a single payment and its source, discarding attributes @@ -53,14 +29,6 @@ def object_params end params[:order] end - - def pay_with_billing_integration? - if @order.next_step_complete? - if @order.pending_payments.first.payment_method.kind_of? BillingIntegration - return true - end - end - return false - end + end end diff --git a/spree_theme/app/controllers/spree/decorators/orders_controller_decorator.rb b/spree_theme/app/controllers/spree/decorators/orders_controller_decorator.rb index c086008a..e43c12b7 100644 --- a/spree_theme/app/controllers/spree/decorators/orders_controller_decorator.rb +++ b/spree_theme/app/controllers/spree/decorators/orders_controller_decorator.rb @@ -1,6 +1,7 @@ #encoding: utf-8 module Spree OrdersController.class_eval do - respond_to :html, :js + # action :update, :edit, :show, :populate support ajax + respond_to :html, :js end -end \ No newline at end of file +end diff --git a/spree_theme/app/controllers/spree/decorators/store_controller_decorator.rb b/spree_theme/app/controllers/spree/decorators/store_controller_decorator.rb index 82e4cbb2..2e9a3275 100644 --- a/spree_theme/app/controllers/spree/decorators/store_controller_decorator.rb +++ b/spree_theme/app/controllers/spree/decorators/store_controller_decorator.rb @@ -3,11 +3,18 @@ module Spree StoreController.class_eval do #override spree_front/store_controller#unauthorized def unauthorized - if @template.blank? + if @theme.blank? # unlogged user access /account would trigger unauthorized without initialize_template, initialize_template( root_path ) end render 'spree/shared/unauthorized', :status => 401 - end + end + + def config_locale + # under_construction,unauthorized @theme is nil + return @theme.locale if @theme && @theme.locale.present? + Spree::Frontend::Config[:locale] + end + end end \ No newline at end of file diff --git a/spree_theme/app/controllers/spree/page_layouts_controller.rb b/spree_theme/app/controllers/spree/page_layouts_controller.rb new file mode 100644 index 00000000..832d174f --- /dev/null +++ b/spree_theme/app/controllers/spree/page_layouts_controller.rb @@ -0,0 +1,79 @@ +module Spree + class PageLayoutsController < Spree::StoreController + + def edit + @template_theme = TemplateTheme.find( params[:template_theme_id] ) + @page_layout = PageLayout.find( params[:id] ) + + respond_to do |format| + format.js{ render "application/dialog_for_editor"} + end + + end + + def update + @template_theme = TemplateTheme.find( params[:template_theme_id] ) + @page_layout = PageLayout.find( params[:id] ) + + if @page_layout.update_attributes( permitted_resource_attributes ) + respond_with(@page_layout) do |format| + format.js { render :layout => false } + end + else + respond_with(@page_layout) do |format| + format.js { render layout: false } + end + end + end + + # params + # layout_id: selected page_layout_id + # selected_section_id: selected section_root_id + def update_layout_tree + @theme = TemplateTheme.find(params[:id]) + op = params[:op] + selected_page_layout_id = params[:layout_id] + selected_section_id = params[:selected_section_id] + selected_type = params[:selected_type] + @selected_page_layout = @theme.page_layout.self_and_descendants.find(selected_page_layout_id) + if op=='promote' + @selected_page_layout.promote + elsif op=='demote' + @selected_page_layout.demote + elsif op=='move_left' + @selected_page_layout.move_left + elsif op=='move_right' + @selected_page_layout.move_right + elsif op=='add_child' + section = Spree::Section.roots.find(selected_section_id) + #if selected_type=='Section' + @theme.add_section(section,@selected_page_layout) + #else + # @selected_page_layout.add_layout_tree(selected_id) + #end + #@layout.reload + elsif op=='del_self' + @selected_page_layout.destroy unless @selected_page_layout.root? + @selected_page_layout = @selected_page_layout.parent + #FIXME update param_values in editor + #@layout.reload + end + @theme.page_layout.reload #layout is changed + render :partial=>"layout_tree1" + end + + # user disable a section in the current layout tree + def disable_section + layout_id = params[:layout_id] + layout = PageLayout.find(layout_id) + se = PageEvent::SectionEvent.new("disable_section", layout ) + se.notify + end + + def permitted_resource_attributes + params.require('page_layout').permit( permitted_attributes.page_layout_attributes ) + end + + end + +end \ No newline at end of file diff --git a/spree_theme/app/controllers/spree/template_themes_controller.rb b/spree_theme/app/controllers/spree/template_themes_controller.rb index 8058c1c8..e0982a57 100644 --- a/spree_theme/app/controllers/spree/template_themes_controller.rb +++ b/spree_theme/app/controllers/spree/template_themes_controller.rb @@ -5,65 +5,56 @@ class TemplateThemesController < Spree::StoreController delegate :taxon_class,:site_class, :to=>:"SpreeTheme" def page - #if SpreeTheme.site_class.current.dalianshops? - # redirect_to new_site_path - #end - end - - def under_construction - #logger.debug "request.env[/devise/]= #{request.env['devise.mapping']},#{warden.inspect}" + end + + def under_construction + #logger.debug "request.env[/devise/]= #{request.env['devise.mapping']},#{warden.inspect}" #require spree_auth_devise - render "under_construction", layout:"under_construction" + render "under_construction", layout: "under_construction" end - + # @theme is required for xhr def new_admin_session - @user = Spree::User.new + #@user = Spree::User.new end - + # @theme is required for xhr def create_admin_session user_params = params[:spree_user] @user = Spree.user_class.unscoped.admin.find_for_authentication(:email => user_params[:email]) if @user.present? if @user.valid_password?(user_params[:password]) - sign_in :spree_user, @user - end + sign_in :spree_user, @user + end end #spree_user_signed_in? defined in devise/lib/controllers/helpers.rb if spree_user_signed_in? #warden.authenticate? # host is required, current_user.site may not be current site, we allow user login from dalianshops.com respond_with do |format| - format.html{ redirect_to admin_url(:host=> current_spree_user.site.subdomain ) } + # site_custom_domain/admin conficlt with site.dalianshops.com/admin + # current host maybe dalianshops.com or custom domain + if is_from_system_domain? + format.html{ redirect_to admin_url(:host=> current_spree_user.site.subdomain ) } + else + format.html{ redirect_to admin_url } + end end else - flash.now[:error] = t('devise.failure.invalid') + flash.now[:error] = t('devise.failure.invalid') render "new_admin_session" end end - - - + + + # params for preview # d: domain of website # c: menu_id def preview - - # @lg = PageTag::PageGenerator.previewer( @menu, @theme, {:resource=>(@resource.nil? ? nil:@resource),:controller=>self}) - # html = @lg.generate - # css,js = @lg.generate_assets - #insert css to html - # style = %Q!! - #editor_panel require @theme, @editors, @editor ... - # html.insert(html.index(""),style) - # html.insert(html.index(""),@editor_panel) - # respond_to do |format| - # format.html {render :text => html} - # end - - end - + + end + # params # layout_id: selected page_layout_id # selected_section_id: selected section_root_id @@ -73,33 +64,33 @@ def update_layout_tree selected_page_layout_id = params[:layout_id] selected_section_id = params[:selected_section_id] selected_type = params[:selected_type] - @selected_page_layout = @theme.page_layout.self_and_descendants.find(selected_page_layout_id) + @selected_page_layout = @theme.page_layouts.find(selected_page_layout_id) if op=='promote' @selected_page_layout.promote elsif op=='demote' @selected_page_layout.demote elsif op=='move_left' @selected_page_layout.move_left - elsif op=='move_right' + elsif op=='move_right' @selected_page_layout.move_right - elsif op=='add_child' - section = Spree::Section.roots.find(selected_section_id) - #if selected_type=='Section' + elsif op=='add_child' + section = Spree::Section.roots.find(selected_section_id) + #if selected_type=='Section' @theme.add_section(section,@selected_page_layout) #else - # @selected_page_layout.add_layout_tree(selected_id) + # @selected_page_layout.add_layout_tree(selected_id) #end - #@layout.reload + #@layout.reload elsif op=='del_self' @selected_page_layout.destroy unless @selected_page_layout.root? @selected_page_layout = @selected_page_layout.parent - #FIXME update param_values in editor + #FIXME update param_values in editor #@layout.reload end - @theme.page_layout.reload #layout is changed - render :partial=>"layout_tree1" + @theme.page_layout_root.reload #layout is changed + render :partial=>"layout_tree1" end - + # user disable a section in the current layout tree def disable_section layout_id = params[:layout_id] @@ -107,23 +98,25 @@ def disable_section se = PageEvent::SectionEvent.new("disable_section", layout ) se.notify end - + def get_param_values theme_id = params[:selected_theme_id] editor_id = params[:selected_editor_id] layout_id = params[:selected_page_layout_id] - + theme = TemplateTheme.find(theme_id) editor = Editor.find(editor_id) - page_layout = PageLayout.find(layout_id) + page_layout = PageLayout.find(layout_id) prepare_params_for_editors(theme, editor, page_layout) - + respond_to do |format| - format.html + format.html format.js {render :partial=>'editors1'} - end + end end - + + # * params - terminal_id + def update_param_value param_value_event = params[:param_value_event] editing_param_value_id = params[:editing_param_value_id].to_i @@ -131,35 +124,37 @@ def update_param_value theme_id = params[:selected_theme_id] editor_id = params[:selected_editor_id] layout_id = params[:selected_page_layout_id] + terminal_id = params[:terminal_id] param_value_keys = params.keys.select{|k| k=~/pv[\d]+/} - + param_value_params = params["pv#{editing_param_value_id}"] - source_param_value = ParamValue.find(editing_param_value_id, :include=>[:section_param, :section]) + source_param_value = ParamValue.includes(:section_param, :section).find(editing_param_value_id) updated_html_attribute_values = do_update_param_value(source_param_value, param_value_params, param_value_event, editing_html_attribute_id) - + # param_value = ParamValue.find(editing_param_value_id) - theme = TemplateTheme.find(theme_id) + theme = TemplateTheme.find(theme_id) editor = Editor.find(editor_id) - page_layout = PageLayout.find(layout_id) - prepare_params_for_editors(theme,editor,page_layout) - + page_layout = PageLayout.find(layout_id) + user_terminal = nil#UserTerminal.where( terminal_id: terminal_id ).first + prepare_params_for_editors(theme,editor, page_layout, user_terminal) + respond_to do |format| - format.html + format.html format.js {render :partial=>'update_param_value',:locals=>{:source_param_value=>source_param_value,:updated_html_attribute_values=>updated_html_attribute_values}} - end - + end + end - - - + + + # Usage, update a param_value by param_value_param - # Params, param_value ParamValue instance + # Params, param_value ParamValue instance # param_value_params, hash, format as {"84"=>{"pvalue"=>"section_name", "psvalue"=>"0t"}} # Return, all updated_html_attribute_values, may include html_attribute_value belongs to other section, also include the source change, it is the first, # it cause the serial changes. def do_update_param_value(param_value, param_value_params, param_value_event, editing_html_attribute_id) - html_attribute = html_attribute_value_params = nil + html_attribute = html_attribute_value_params = nil param_value_params.keys.each {|ha_id| ha_id = ha_id.to_i if editing_html_attribute_id.nil? or editing_html_attribute_id==ha_id @@ -167,65 +162,65 @@ def do_update_param_value(param_value, param_value_params, param_value_event, ed html_attribute_value_params = param_value_params[ha_id.to_s] #event_params = {:html_attribute=>html_attribute,:html_attribute_value_params=>html_attribute_value_params} #param_value.raise_event(param_value_event, event_params) - end + end } param_value.update_html_attribute_value(html_attribute, html_attribute_value_params, param_value_event ) #param_value.save param_value.updated_html_attribute_values end - + # usage - 1. popup file upload dialog - # 2. handle submitted file + # 2. handle submitted file # params # html_attribute_id - # param_value_id, + # param_value_id, # template_file - {"attachment"=>#>} def upload_file_dialog @dialog_content="upload_dialog_content" @param_value_id = params[:param_value_id] @html_attribute_id = params[:html_attribute_id].to_i - @param_value = ParamValue.find(@param_value_id, :include=>[:section_param=>:section_piece_param]) + @param_value = ParamValue.includes(:section_param=>:section_piece_param).find(@param_value_id) #@editor = @param_value.section_param.section_piece_param.editor - if request.post? - #TODO replace same name of template file - uploaded_image = TemplateFile.new( params[:template_file] ) + if request.post? + #TODO replace same name of template file + uploaded_image = TemplateFile.new( params.require(:template_file).permit! ) if uploaded_image.valid? - uploaded_image['theme_id']=@param_value.theme_id + uploaded_image['theme_id']=@param_value.theme_id if uploaded_image.save # update param value to selected uploaded image param_value_params={@html_attribute_id.to_s=>{"unset"=>"0", "pvalue0"=>uploaded_image.attachment_file_name, "psvalue0"=>"0i"}} param_value_event = ParamValue::EventEnum[:pv_changed] editing_html_attribute_id = @html_attribte_id - @updated_html_attribute_values = do_update_param_value(@param_value, param_value_params, param_value_event, editing_html_attribute_id) + @updated_html_attribute_values = do_update_param_value(@param_value, param_value_params, param_value_event, editing_html_attribute_id) # get all param values by selected editor - #@param_values = ParamValue.within_section(@param_value).within_editor(@editor) # update param value - render :partial=>'after_upload_dialog' + render :partial=>'after_upload_dialog' end else end else @theme = TemplateTheme.find(@param_value.theme_id) - model_dialog("File upload dialog",@dialog_content) + render "application/dialog_for_editor" + end end - - + + def check_upload_file_name file_name = params[:file_name] is_existing = TemplateFile.exists?( ["file_name=?", file_name]) if is_existing # render "replace" else - # render "upload" + # render "upload" end end - + # path for /new_site, view new_site is placeholder as cart, account... def new_site - + end - + private def model_dialog(dialog_title, dialog_content) @dialog_title = dialog_title @@ -234,13 +229,17 @@ def model_dialog(dialog_title, dialog_content) format.js{ render "application/model_dialog"} end end - + def render_message(message) respond_to do |format| format.js{ render "message_box", :locals=>{:message=>message}} end end + def is_from_system_domain? + #consider localhost? + request.host.end_with? Site.system_top_domain + end end -end \ No newline at end of file +end diff --git a/spree_theme/app/helpers/spree/admin/base_helper_decorator.rb b/spree_theme/app/helpers/spree/admin/base_helper_decorator.rb index b82d7feb..29cee4a2 100644 --- a/spree_theme/app/helpers/spree/admin/base_helper_decorator.rb +++ b/spree_theme/app/helpers/spree/admin/base_helper_decorator.rb @@ -3,17 +3,17 @@ module Admin module BaseHelper def page_contexts_for_options( ) options = [] - Spree::Taxon::PageContextEnum.each_pair{|sym, obj| - options<< [Spree.t("section_context.#{ sym }"), obj] + Spree::Taxon::PageContextEnum.each_pair{|sym, obj| + options<< [Spree.t("section_context.#{ sym }"), obj] } if Spree::Site.current.dalianshops? - Spree::Taxon::PageContextForFirstSiteEnum.each_pair{|sym, obj| - options<< [Spree.t("section_context.#{ sym }"), obj] - } + Spree::Taxon::PageContextForFirstSiteEnum.each_pair{|sym, obj| + options<< [Spree.t("section_context.#{ sym }"), obj] + } end - + options end end end -end \ No newline at end of file +end diff --git a/spree_theme/app/helpers/spree/base_helper_decorator.rb b/spree_theme/app/helpers/spree/base_helper_decorator.rb new file mode 100644 index 00000000..8870b4be --- /dev/null +++ b/spree_theme/app/helpers/spree/base_helper_decorator.rb @@ -0,0 +1,286 @@ +module Spree + module BaseHelper + #include SpreeTheme::TemplateBaseHelper + #================================================================================================== + # template methods, using by template + #================================================================================================== + #these methos has to be in BaseHelpler, controller may be TemplateThemes Cart Checkout User Order.. + #override original in BaseHelper + def meta_data + #object = instance_variable_get('@'+controller_name.singularize) + object = instance_variable_get('@resource') + meta = {} + + if object.kind_of? ActiveRecord::Base + meta[:keywords] = object.meta_keywords if object[:meta_keywords].present? + meta[:description] = object.meta_description if object[:meta_description].present? + end + + #if meta[:description].blank? && object.kind_of?(Spree::Product) + # meta[:description] = strip_tags(truncate(object.description, length: 160, separator: ' ')) + #end + + meta.reverse_merge!({ + keywords: current_store.meta_keywords, + description: current_store.meta_description, + }) if meta[:keywords].blank? or meta[:description].blank? + meta + end + + + def breadcrumbs(current_page_tag, separator=" » ") + # current_page_tag is nil in page /unauthorized + return "" if current_page?("/") || current_page_tag.nil? ||current_page_tag.home? + separator = raw(separator) + crumbs = [content_tag(:li, link_to(Spree.t(:home), spree.root_path) + separator)] + if current_page_tag + #crumbs << content_tag(:li, link_to(Spree.t(:products), products_path) + separator) + crumbs << current_page_tag.ancestors.collect { |ancestor| content_tag(:li, link_to(ancestor.name , (ancestor.path)) + separator) } unless current_page_tag.ancestors.empty? + crumbs << content_tag(:li, content_tag(:span, link_to(current_page_tag.name , current_page_tag.path))) + end + crumb_list = content_tag(:ul, raw(crumbs.flatten.map{|li| li.mb_chars}.join), class: 'inline') + content_tag(:nav, crumb_list, id: 'breadcrumbs', class: 'sixteen columns') + end + + def link_to_product_thumbnail( current_piece, i ) + link_to( image_tag(i.attachment.url( current_piece.get_content_param_by_key(:thumbnail_style))), + i.attachment.url( current_piece.get_content_param_by_key(:main_image_style)) + ) + end + + def product_main_image( current_piece, product ) + Spree::MultiSiteSystem.with_context_site_product_images{ + main_image_style = current_piece.get_content_param_by_key(:main_image_style) + main_image_position = current_piece.get_content_param_by_key(:main_image_position) + if main_image_position>0 + if product.images[main_image_position].present? + create_product_image_tag(product.images[main_image_position], product, {:itemprop => "image"}, main_image_style) + end + else + send("#{main_image_style}_image", product, :itemprop => "image") + end + } + end + + # override resource path, add taxon into path + def product_path( product ) + "/0/#{product.id}" + end + + + def menu_item_atom( current_piece, page ) + return '' if current_piece.enabled_depth < page.depth + + leaves_content = '' + + unless page.leaf? + leaves_content = content_tag(:ul, raw( page.children.map{|child| menu_item_atom( current_piece, child )}.join ), class: "depth#{page.depth+1}" ) + end + + item_content = content_tag(:span, page.name, class: 'name' ) + + item_content= if page.clickable? + if page.current? + link_to item_content, page.path, page.extra_html_attributes.merge( { :class=>"selected depth#{page.depth}" } ) + else + link_to item_content, page.path, page.extra_html_attributes.merge( { :class=>"depth#{page.depth}" } ) + end + else + link_to item_content, page.path, page.extra_html_attributes.merge( { :class=>"noclick depth#{page.depth}", :href=>'javascript:void(0)' } ) + end + + content_tag(:li, raw( item_content+ leaves_content ) ) + end + + + # a container could has + def get_container_class( current_piece ) + css_classes = current_piece.effects.join(' ') # current_piece.piece_selector + ' ' + current_piece.as_child_selector + ' ' + + # how many columns are there? + # handling data iteration? + # Rails.logger.debug "current_piece=#{current_piece.id},#{current_piece.title}, current_piece.is_container?=#{current_piece.is_container?}, current_piece.template.running_data_sources.present?=#{current_piece.template.running_data_sources.present?}" + if current_piece.is_container? + running_data_item = current_piece.template.running_data_item + if running_data_item.present? + current_page = current_piece.template.page_generator.current_page_tag + column_count = current_piece.template.running_data_source_sction_piece.column_count + i = current_piece.template.running_data_item_index + #Rails.logger.debug "i=#{i}, column_count=#{column_count}, current_piece.template.running_data_source_sction_piece=#{current_piece.template.running_data_source_sction_piece.id}" + css_classes << ' data_first' if column_count>0 && i==0 + css_classes << ' data_last' if column_count>0 && ((i+1)%column_count==0) + css_classes << " data_#{i+1}" + + case running_data_item.model + when Spree::Taxon + css_classes << ' data_current' if running_data_item.current? + css_classes << ' data_current_ancestor' if current_page.ancestor_ids.include?(running_data_item.id) + when Spree::Product + when Spree::Post + end + + end + end + if current_piece.parent.effects.present? + css_classes << " child_#{current_piece.nth_of_siblings}" + end + + css_classes + end + + def get_menu_items( current_piece ) + # for feature hmenu show descendants of current page + # we should check :page first. + running_data_item = current_piece.template.running_data_item + if running_data_item.is_a? PageTag::Menus::WrappedMenu + running_data_item.children + else + current_piece.template.menu.try(:children) || [] + end + end + + # in template_tag have no method link_to, content_tag, it have to be in base_helper + #def page_attribute( template_tag, attribue_name ) + # page = template_tag.running_data_item_by_class( PageTag::Menus::WrappedMenu ) || @current_page + # attribute_value = page.send attribue_name + # if template_tag.current_piece.clickable? + # link_to attribute_value, page.path, page.extra_html_attributes + # else + # content_tag :span, attribute_value, {:id=>"p_#{template_tag.current_piece.id}_#{page.id}"} + # end + #end + + def product_attribute( template_tag, attribue_name ) + + end + + def link_to_cart_badge + css_class = nil + if simple_current_order.nil? or simple_current_order.item_count.zero? + css_class = 'empty' + else + css_class = 'full' + end + link_to simple_current_order.item_count, spree.cart_path, :class => "cart-info #{css_class}" + end + + + #================================================================================================== + # Editor methods + #================================================================================================== + + def my_remote_function(options) + full_query_path = options[:query_path]+"?"+options[:query_params].to_param + form = options[:submit] + confirm_function = options[:confirm] + callback = nil + # callback = %q! function (data, textStatus, xhr){ $("#editors").html(xhr.responseText); }! + function = " ajax_post('#{full_query_path}','#{form}','script');return false;" + if confirm_function.present? + function = "if(confirm_function){#{function}}" + end + function + end + # for speed up partial, create these helpers instead of partial + + def partial_editor( editor, param_values) + #local_params: editor, param_values + @param_category_ids = [] + <<-EOS +
      + #{ param_values.collect{|param_value| partial_param_value( param_value )}.join } +
      + EOS + end + + def partial_param_value( param_value) + #params: html_attribute_hash {id=>html_attribute} + # + #local_params: param_value, param_category + param_category = param_value.section_param.section_piece_param.param_category + section_piece_param = param_value.section_param.section_piece_param + ha_array = param_value.section_param.html_attributes # excluded disabled by section + tags = '' + unless @param_category_ids.include? param_category.id + @param_category_ids << param_category.id + tags = %Q(
      H:#{param_category.slug}
      ) + end + + ha_array.collect{|html_attribute| + tags << partial_html_attribute_value( param_value, html_attribute ) + } + tags + end + + def partial_html_attribute_value( param_value, html_attribute ) + #params: @theme + #local params: html_attribute, param_value + bool_true = Spree::HtmlAttribute::BOOL_TRUE + bool_false = Spree::HtmlAttribute::BOOL_FALSE + section_piece_param = param_value.section_param.section_piece_param + ha = html_attribute + pv_div_id = "pv_#{param_value.id}_#{ha.id}" + pv_ele_id = "pv#{param_value.id}[#{ha.id}]" + pv_link_id = pv_div_id+'_a' + hav = Spree::HtmlAttributeValue.parse_from(param_value, ha) + display = ( hav.hidden? ? "display:none" : "" ) + query_path = update_param_value_template_theme_path( @theme ) + tags = "" + ha.repeats.times{ |i| + psvalue, pvalue,unit = hav["psvalue#{i}"],hav["pvalue#{i}"],hav["unit#{i}"] + possible_values = ha.possible_selected_values(i) + possible_values_descriptions = ha.possible_selected_values_descriptions(i) + units = ha.units + onchange = my_remote_function( :submit=>"layout_editor_form",:query_path=>query_path, :query_params => hav.build_url_params(:psv_changed), :if=>'') + element_style = "display:none;" + if ha.manual_entry?(psvalue) + element_style="display:inline-block;" + end + manual_value_onchange = my_remote_function( :submit=>"layout_editor_form",:query_path=>query_path, :query_params => hav.build_url_params(:pv_changed)) + passible_value_tag = "" + manual_value_tag = "" + manual_unit_tag = "" + if possible_values.size>1 + passible_value_tag << select(pv_ele_id,"psvalue#{i}", possible_values.each_index.collect{|j| [possible_values_descriptions[j],possible_values[j]] },{:selected =>psvalue }, {:class=>"pv-psv", :onchange=>onchange}) + else + passible_value_tag << hidden_field_tag("#{pv_ele_id}[psvalue#{i}]", psvalue ) + end + + if html_attribute.is_special?(:bool) + manual_value_tag << radio_button_tag("#{pv_ele_id}[pvalue#{i}]", bool_true,pvalue==bool_true, :onchange=>manual_value_onchange )+"Yes" + manual_value_tag << radio_button_tag("#{pv_ele_id}[pvalue#{i}]", bool_false,pvalue==bool_false, :onchange=>manual_value_onchange )+"No" + elsif html_attribute.is_special?(:image) + manual_value_tag << select("#{pv_ele_id}","pvalue#{i}", param_value.template_theme.template_files.collect{|item| [item.attachment_file_name, item.attachment_file_name]}, {:selected=>pvalue ,:include_blank=>"Please select "},{ :onchange=>manual_value_onchange}) + manual_value_tag << link_to( "upload file...",{:controller=>"spree/template_themes", :action=>"upload_file_dialog",:param_value_id=>param_value.id, :html_attribute_id=>html_attribute.id, :selected_editor_id=>@editor.id},:method =>:get,:remote=>true ) + else + manual_value_tag << text_field_tag("#{pv_ele_id}[pvalue#{i}]", pvalue, {:class=>"pv-pv", :onchange=>manual_value_onchange}) + end + if units + manual_unit_tag << select(pv_ele_id,"unit#{i}", units.collect{|psv| [psv, psv] },{:selected => unit}, {:class=>"pv-psv", :style=>element_style, :onchange=>manual_value_onchange}) + end + tags.concat <<-EOS1 +
      +
      #{passible_value_tag}
      +
      #{manual_value_tag}
      +
      #{manual_unit_tag}
      +
      + EOS1 + } + unset_tag = "" + unset_onchange = my_remote_function( :submit=>"layout_editor_form",:query_path=>query_path, :query_params => hav.build_url_params(:unset_changed)) + unset_tag<< check_box_tag(pv_ele_id+"[unset]", bool_true, hav.unset?, :onchange=>unset_onchange) + unset_tag<< label_tag(pv_ele_id+"[unset]", "Unset") + + <<-EOS2 +
      +
      #{ha.title} +
      +
      + #{tags} +
      +
      #{unset_tag}
      +
      + EOS2 + end + + end +end diff --git a/spree_theme/app/helpers/spree/bases_helper_decorator.rb b/spree_theme/app/helpers/spree/bases_helper_decorator.rb deleted file mode 100644 index 87ab4b8a..00000000 --- a/spree_theme/app/helpers/spree/bases_helper_decorator.rb +++ /dev/null @@ -1,159 +0,0 @@ -module Spree - module BaseHelper - #================================================================================================== - # template methods, using by template - #================================================================================================== - #these methos has to be in BaseHelpler, controller may be TemplateThemes Cart Checkout User Order.. - #override original in BaseHelper - def breadcrumbs(current_page_tag, separator=" » ") - # current_page_tag is nil in page /unauthorized - return "" if current_page?("/") || current_page_tag.nil? ||current_page_tag.page_home? - separator = raw(separator) - crumbs = [content_tag(:li, link_to(Spree.t(:home), spree.root_path) + separator)] - if current_page_tag - #crumbs << content_tag(:li, link_to(Spree.t(:products), products_path) + separator) - crumbs << current_page_tag.ancestors.collect { |ancestor| content_tag(:li, link_to(ancestor.name , (ancestor.path)) + separator) } unless current_page_tag.ancestors.empty? - crumbs << content_tag(:li, content_tag(:span, link_to(current_page_tag.name , current_page_tag.path))) - end - crumb_list = content_tag(:ul, raw(crumbs.flatten.map{|li| li.mb_chars}.join), class: 'inline') - content_tag(:nav, crumb_list, id: 'breadcrumbs', class: 'sixteen columns') - end - - def link_to_product_thumbnail( current_piece, i ) - link_to( image_tag(i.attachment.url( current_piece.get_content_param_by_key(:thumbnail_style))), - i.attachment.url( current_piece.get_content_param_by_key(:main_image_style)) - ) - end - - def product_main_image( current_piece, product ) - Spree::MultiSiteSystem.with_context_site_product_images{ - main_image_style = current_piece.get_content_param_by_key(:main_image_style) - send("#{main_image_style}_image", product, :itemprop => "image") - } - end - - # override resource path, add taxon into path - def product_path( product ) - "/0/#{product.id}" - end - - #================================================================================================== - # Editor methods - #================================================================================================== - - def my_remote_function(options) - full_query_path = options[:query_path]+"?"+options[:query_params].to_param - form = options[:submit] - confirm_function = options[:confirm] - callback = nil - # callback = %q! function (data, textStatus, xhr){ $("#editors").html(xhr.responseText); }! - function = " ajax_post('#{full_query_path}','#{form}','script');return false;" - if confirm_function.present? - function = "if(confirm_function){#{function}}" - end - function - end - # for speed up partial, create these helpers instead of partial - - def partial_editor( editor, param_values) - #local_params: editor, param_values - @param_category_ids = [] - <<-EOS -
      - #{ param_values.collect{|param_value| partial_param_value( param_value )}.join } -
      - EOS - end - - def partial_param_value( param_value) - #params: html_attribute_hash {id=>html_attribute} - # - #local_params: param_value, param_category - param_category = param_value.section_param.section_piece_param.param_category - section_piece_param = param_value.section_param.section_piece_param - ha_array = param_value.section_param.html_attributes # excluded disabled by section - tags = '' - unless @param_category_ids.include? param_category.id - @param_category_ids << param_category.id - tags = %Q(
      H:#{param_category.slug}
      ) - end - - ha_array.collect{|html_attribute| - tags << partial_html_attribute_value( param_value, html_attribute ) - } - tags - end - - def partial_html_attribute_value( param_value, html_attribute ) - #params: @theme - #local params: html_attribute, param_value - bool_true = Spree::HtmlAttribute::BOOL_TRUE - bool_false = Spree::HtmlAttribute::BOOL_FALSE - section_piece_param = param_value.section_param.section_piece_param - ha = html_attribute - pv_div_id = "pv_#{param_value.id}_#{ha.id}" - pv_ele_id = "pv#{param_value.id}[#{ha.id}]" - pv_link_id = pv_div_id+'_a' - hav = Spree::HtmlAttributeValue.parse_from(param_value, ha) - display = ( hav.hidden? ? "display:none" : "" ) - query_path = update_param_value_template_theme_path( @theme ) - tags = "" - ha.repeats.times{ |i| - psvalue, pvalue,unit = hav["psvalue#{i}"],hav["pvalue#{i}"],hav["unit#{i}"] - possible_values = ha.possible_selected_values(i) - possible_values_descriptions = ha.possible_selected_values_descriptions(i) - units = ha.units - onchange = my_remote_function( :submit=>"layout_editor_form",:query_path=>query_path, :query_params => hav.build_url_params(:psv_changed), :if=>'') - element_style = "display:none;" - if ha.manual_entry?(psvalue) - element_style="display:inline-block;" - end - manual_value_onchange = my_remote_function( :submit=>"layout_editor_form",:query_path=>query_path, :query_params => hav.build_url_params(:pv_changed)) - passible_value_tag = "" - manual_value_tag = "" - manual_unit_tag = "" - if possible_values.size>1 - passible_value_tag << select(pv_ele_id,"psvalue#{i}", possible_values.each_index.collect{|j| [possible_values_descriptions[j],possible_values[j]] },{:selected =>psvalue }, {:class=>"pv-psv", :onchange=>onchange}) - else - passible_value_tag << hidden_field_tag("#{pv_ele_id}[psvalue#{i}]", psvalue ) - end - - if html_attribute.is_special?(:bool) - manual_value_tag << radio_button_tag("#{pv_ele_id}[pvalue#{i}]", bool_true,pvalue==bool_true, :onchange=>manual_value_onchange )+"Yes" - manual_value_tag << radio_button_tag("#{pv_ele_id}[pvalue#{i}]", bool_false,pvalue==bool_false, :onchange=>manual_value_onchange )+"No" - elsif html_attribute.is_special?(:image) - manual_value_tag << select("#{pv_ele_id}","pvalue#{i}", Spree::TemplateFile.all.collect{|item| [item.attachment_file_name, item.attachment_file_name]}, {:selected=>pvalue ,:include_blank=>"Please select "},{ :onchange=>manual_value_onchange}) - manual_value_tag << link_to( "upload file...",{:controller=>"spree/template_themes", :action=>"upload_file_dialog",:param_value_id=>param_value.id, :html_attribute_id=>html_attribute.id, :selected_editor_id=>@editor.id},:method =>:get,:remote=>true ) - else - manual_value_tag << text_field_tag("#{pv_ele_id}[pvalue#{i}]", pvalue, {:class=>"pv-pv", :onchange=>manual_value_onchange}) - end - if units - manual_unit_tag << select(pv_ele_id,"unit#{i}", units.collect{|psv| [psv, psv] },{:selected => unit}, {:class=>"pv-psv", :style=>element_style, :onchange=>manual_value_onchange}) - end - tags.concat <<-EOS1 -
      -
      #{passible_value_tag}
      -
      #{manual_value_tag}
      -
      #{manual_unit_tag}
      -
      - EOS1 - } - unset_tag = "" - unset_onchange = my_remote_function( :submit=>"layout_editor_form",:query_path=>query_path, :query_params => hav.build_url_params(:unset_changed)) - unset_tag<< check_box_tag(pv_ele_id+"[unset]", bool_true, hav.unset?, :onchange=>unset_onchange) - unset_tag<< label_tag(pv_ele_id+"[unset]", "Unset") - - <<-EOS2 -
      -
      #{ha.title} -
      -
      - #{tags} -
      -
      #{unset_tag}
      -
      - EOS2 - end - - end -end \ No newline at end of file diff --git a/spree_theme/app/models/default_taxon.rb b/spree_theme/app/models/default_taxon.rb index aa958199..f760168c 100644 --- a/spree_theme/app/models/default_taxon.rb +++ b/spree_theme/app/models/default_taxon.rb @@ -1,51 +1,63 @@ class DefaultTaxon < SpreeTheme.taxon_class - attr_accessor :root + attr_accessor :root # * params # * context - one of ContextEnum member def self.instance_by_context( context ) unless context_routes.key?( context ) - raise "unimplement for context:#{context}" + raise "unimplement for context:#{context}" end - request_fullpath = context_routes[context] + request_fullpath = context_routes[context] instance( request_fullpath ) end - - #it should work for DefaultTaxon.instance and DefaultTaxonRoot.instance + + #it should work for DefaultTaxon.instance and DefaultTaxonRoot.instance def self.instance( request_fullpath=nil) default_taxon = self.new() default_taxon.request_fullpath = request_fullpath default_taxon end - - # get default taxon tree, default menu tree using by theme - # menu section would call default_taxon.children - def children - [] - end - # - def ancestors - [root] - end - - def root? - false - end - - + + # get default taxon tree, default menu tree using by theme + # menu section would call default_taxon.children + def children + [] + end + # + def ancestors + [root] + end + + def parent + root + end + + def root? + false + end + + def leaf? + true + end + + # menu_item_atom required + def depth + 1 + end + def name - case current_context + case current_context when ContextEnum.checkout Spree.t(:checkout) when ContextEnum.cart Spree.t(:shopping_cart) else Spree.t("default_page.#{current_context}") - end + end end - - def page_home? + + def home? current_context == ContextEnum.home end - + end diff --git a/spree_theme/app/models/default_taxon_root.rb b/spree_theme/app/models/default_taxon_root.rb index bac3f65d..14ecd1ae 100644 --- a/spree_theme/app/models/default_taxon_root.rb +++ b/spree_theme/app/models/default_taxon_root.rb @@ -2,27 +2,27 @@ class DefaultTaxonRoot < DefaultTaxon attr_accessor :default_taxon, :taxonomy # initialize default_taxon after self initialzed, use the newest request_fullpath def default_taxon - if @default_taxon.nil? + if @default_taxon.nil? @default_taxon = DefaultTaxon.instance( self.request_fullpath ) @default_taxon.root = self # required by inherited_page_context end @default_taxon end - + def children taxons = case current_context when ContextEnum.login - [ DefaultTaxon.instance_by_context( ContextEnum.login ), + [ DefaultTaxon.instance_by_context( ContextEnum.login ), DefaultTaxon.instance_by_context( ContextEnum.signup ) ].each{|taxon| taxon.root = self} when ContextEnum.account - [ DefaultTaxon.instance_by_context( ContextEnum.account ), + [ DefaultTaxon.instance_by_context( ContextEnum.account ), DefaultTaxon.instance_by_context( ContextEnum.logout ) ].each{|taxon| taxon.root = self} - else + else [self.default_taxon] end - + end - + def taxonomy @taxonomy ||= DefaultTaxonomy.new( self ) end @@ -34,20 +34,23 @@ def self_and_descendants def root? true end - + def root self end - + # menu_item_atom required + def depth + 0 + end end -class DefaultTaxonomy +class DefaultTaxonomy attr_accessor :name, :default_taxon_root def initialize( default_taxon) self.default_taxon_root = default_taxon end - + def name Spree.t "default_page.taxonomy" end -end \ No newline at end of file +end diff --git a/spree_theme/app/models/page_event/global_param_value_event.rb b/spree_theme/app/models/page_event/global_param_value_event.rb index 09f51489..37594e82 100644 --- a/spree_theme/app/models/page_event/global_param_value_event.rb +++ b/spree_theme/app/models/page_event/global_param_value_event.rb @@ -61,43 +61,6 @@ def block_width_event_handler( param_value_event ) is_value_changed = (param_value_event.event == ParamValue::EventEnum[:pv_changed]) # value changed or unit changed is_fixed = self.fixed? source_section_name = param_value_event.source_section_name - part_triggered = ['center_part','left_part','right_part'].include? source_section_name - page_triggered = ['root'].include? source_section_name - # width of one in these three changed. - if self.section_slug=='center_area' - left_part = self.children.select{|s| s.section_slug=='left_part'}.first - right_part = self.children.select{|s| s.section_slug=='right_part'}.first - center_part = self.children.select{|s| s.section_slug=='center_part'}.first - Rails.logger.debug "left_part=#{left_part}, right_part=#{right_part}, center_part=#{center_part}" - if part_triggered - if false #is_fixed, enable fixed center_area later. - center_part_width = center_part.html_attribute_values( 'block_width' ) - if source_section_name == 'left_part' - center_part_width['pvalue']+= param_value_event.difference - - elsif source_section_name == 'right_part' - - else - - end - else - left_part_block_width = left_part.html_attribute_values( 'block_width' ) - left_part_block_margin = left_part.html_attribute_values( 'block_margin' ) - right_part_block_width = right_part.html_attribute_values( 'block_width' ) - right_part_block_margin = right_part.html_attribute_values( 'block_margin' ) - center_part_inner_margin = center_part.html_attribute_values( 'inner_margin' ) - if source_section_name == 'left_part' - center_part_inner_margin['pvalue3']+= param_value_event.difference - left_part_block_margin['pvalue1'] = -left_part_block_width['pvalue'] #margin-right = -left_part.width - elsif source_section_name == 'right_part' - center_part_inner_margin['pvalue1']+= param_value_event.difference - right_part_block_margin['pvalue3'] = -right_part_block_width['pvalue'] #margin-left = -right_part.width - end - self.updated_html_attribute_values.push(center_part_inner_margin, left_part_block_margin, right_part_block_margin) - end - - end - end end diff --git a/spree_theme/app/models/page_event/param_value_event.rb b/spree_theme/app/models/page_event/param_value_event.rb index c1e784b9..d4a48c03 100644 --- a/spree_theme/app/models/page_event/param_value_event.rb +++ b/spree_theme/app/models/page_event/param_value_event.rb @@ -1,136 +1,177 @@ module PageEvent class ParamValueEvent < ParamValueEventBase - # it should return updated_html_attribute_values, action collect them and update the editor. + # it should return updated_html_attribute_values, action collect them and update the editor. def notify( ) - param_conditions = self.param_value.section_param.section_piece_param.param_conditions - + param_conditions = param_value_condition + unless param_conditions[self.html_attribute.id].nil? -# Rails.logger.debug "param_conditions=#{param_conditions.inspect},self.event=#{self.event}" - #event handler is html_attribute.slug + event + handler + #event handler is html_attribute.slug + event + handler if param_conditions[self.html_attribute.id].include?(self.event) #html_attribute.slug may contain '-', we only allow a-z,A-Z,0-9,_ by [/\w+/] html_page = self.param_value.template_theme.html_page html_piece = html_page.partial_htmls.select{|hp| hp.page_layout.id==self.param_value.page_layout_id }.pop -# Rails.logger.debug "self.param_value=#{self.param_value.inspect}" -# Rails.logger.debug "html_piece=#{html_piece.inspect}" +# Rails.logger.debug "self.param_value=#{self.param_value.inspect}" +# Rails.logger.debug "html_piece=#{html_piece.inspect}" #self.updated_html_attribute_values.concat( ) - self.send( handler_name, html_piece) - end + self.send( handler_name, html_piece) + end end self.updated_html_attribute_values end - + + def param_value_condition + self.param_value.section_param.section_piece_param.param_conditions + end + def event_name return event end - + def handler_name "#{self.html_attribute.slug[/\w+/]}_#{self.event_name}_handler" end - + def height_pv_changed_handler(partial_html) - height = partial_html.height - if height>0 + dimension_changed_handler(partial_html, 'height') + #height = partial_html.height + #if height>0 + # margin, border, padding = partial_html.margin, partial_html.border, partial_html.padding + # val = partial_html.html_attribute_values('inner_height') + # inner_height_value = height + # [0,2].each{|i|#0:top, 2: bottom + # inner_height_value-= margin[i] + # inner_height_value-= border[i] + # inner_height_value-= padding[i] + # } + # hav = partial_html.html_attribute_values("block_height") + # computed_inner_height['psvalue'] = hav['psvalue'] + # computed_inner_height['pvalue'] = inner_height_value + # computed_inner_height['unit'] = hav['unit'] + # computed_inner_height['unset'] = Spree::HtmlAttribute::BOOL_FALSE + # self.updated_html_attribute_values.push(computed_inner_height) + #else + # computed_inner_height = partial_html.html_attribute_values('inner_height') + # computed_inner_height['unset'] = Spree::HtmlAttribute::BOOL_TRUE + # self.updated_html_attribute_values.push(computed_inner_height) + #end + end + + + def width_pv_changed_handler(partial_html) + dimension_changed_handler(partial_html, 'width') + end + + # compute inner dimension is required by baidu map + #html_attribute_name could be width, height + def dimension_changed_handler(partial_html, html_attribute_name) + trbl = (html_attribute_name == 'width' ? [1,3] : [0,2]) + val = partial_html.send( html_attribute_name ) + hav = partial_html.html_attribute_values("block_#{html_attribute_name}") + # width/height is 100%, unset inner width/height + if val>0 && !hav.unset? && hav['unit']!='%' margin, border, padding = partial_html.margin, partial_html.border, partial_html.padding - computed_inner_height = partial_html.html_attribute_values('inner_height') - inner_height_value = height - [0,2].each{|i|#0:top, 2: bottom - inner_height_value-= margin[i] - inner_height_value-= border[i] - inner_height_value-= padding[i] - } - hav = partial_html.html_attribute_values("block_height") - computed_inner_height['psvalue'] = hav['psvalue'] - computed_inner_height['pvalue'] = inner_height_value - computed_inner_height['unit'] = hav['unit'] - computed_inner_height['unset'] = Spree::HtmlAttribute::BOOL_FALSE - self.updated_html_attribute_values.push(computed_inner_height) + + computed_inner = partial_html.html_attribute_values("inner_#{html_attribute_name}") + inner_value = val + trbl.each{|i|#0:top, 2: bottom + inner_value-= margin[i] + inner_value-= border[i] + inner_value-= padding[i] + } + computed_inner['psvalue'] = hav['psvalue'] + computed_inner['pvalue'] = inner_value + computed_inner['unit'] = hav['unit'] + computed_inner['unset'] = Spree::HtmlAttribute::BOOL_FALSE + self.updated_html_attribute_values.push(computed_inner) else - computed_inner_height = partial_html.html_attribute_values('inner_height') - computed_inner_height['unset'] = Spree::HtmlAttribute::BOOL_TRUE - self.updated_html_attribute_values.push(computed_inner_height) + computed_inner = partial_html.html_attribute_values("inner_#{html_attribute_name}") + computed_inner['unset'] = Spree::HtmlAttribute::BOOL_TRUE + self.updated_html_attribute_values.push(computed_inner) end end + + # TODO width_pv_changed_handler, should not bigger than its parent's width. def border_pv_changed_handler(partial_html) height_pv_changed_handler( partial_html ) - end + end def margin_pv_changed_handler(partial_html) height_pv_changed_handler( partial_html ) - end + end def padding_pv_changed_handler(partial_html) - height_pv_changed_handler( partial_html ) - end + height_pv_changed_handler( partial_html ) + end alias_method :height_unset_changed_handler, :height_pv_changed_handler alias_method :border_unset_changed_handler, :height_pv_changed_handler alias_method :margin_unset_changed_handler, :height_pv_changed_handler alias_method :padding_unset_changed_handler, :height_pv_changed_handler - - # here are two tipical layouts, + alias_method :width_unset_changed_handler, :width_pv_changed_handler + + # here are two tipical layouts, # Layout Example fluid --> fixed fixed --> fluid - # layout_root1 + # layout_root1 # +----center_area # | +-------center_part # | |-------header_part # | |-------left_part - # | +-------right_part - # |----footer - # - # layout_root2 + # | +-------right_part + # |----footer + # + # layout_root2 # +--page # | +----center_area # | | +-------center_part # | | |-------header_part # | | |-------left_part - # | | +-------right_part - # | +----footer + # | | +-------right_part + # | +----footer # +--dialog # +--message_box - + # rules to change layout from fixed to fluid # 1. it only works for container section. # 2. it only works while there are all container section in same level(exclude float section, ex. dialog). - # ex. in layout1. center_area and footer are same level, center_part, header_part, left_part and right_part are same level + # ex. in layout1. center_area and footer are same level, center_part, header_part, left_part and right_part are same level # container and content layout is not horizontal, width-> unset # root is also a container - # rules to change layout from fluid to fixed - + # rules to change layout from fluid to fixed + def page_layout_fixed_event_handler( global_param_value_event ) is_fixed = global_param_value_event.new_html_attribute_value.pvalue - parent_block_width = self.parent_section_instance.html_attribute_values("block_width") unless self.parent.nil? + parent_block_width = self.parent_section_instance.html_attribute_values("block_width") unless self.parent.nil? block_width = html_attribute_values("block_width") block_margin = html_attribute_values("block_margin") block_inner_margin = html_attribute_values("inner_margin") - + if is_fixed to_fixed() else to_fluid() end end - - # a container, content layout attribute of parent is vertical, and have a width value, we could say to_fluid means unset the width. + + # a container, content layout attribute of parent is vertical, and have a width value, we could say to_fluid means unset the width. def to_fluid() if self.root? block_min_width = html_attribute_values("page_min-width") block_width = html_attribute_values("page_width") block_margin = html_attribute_values("page_margin") #block, inner - + block_width['unset'] = HtmlAttribute::BOOL_TRUE block_width['hidden'] = HtmlAttribute::BOOL_TRUE block_min_width['unset'] = HtmlAttribute::BOOL_FALSE block_min_width['hidden'] = HtmlAttribute::BOOL_FALSE self.updated_html_attribute_values.push(block_width,block_min_width,block_margin ) elsif self.section.slug=='container' - - - end + + + end end - - # a container, if have no width value, content layout attribute of ancestors are vertical, to_fixed means change nothing. - # if have width value and bigger than available width, we could say to_fixed means unset the width. + + # a container, if have no width value, content layout attribute of ancestors are vertical, to_fixed means change nothing. + # if have width value and bigger than available width, we could say to_fixed means unset the width. def to_fixed() if self.root? block_min_width = html_attribute_values("page_min-width") @@ -142,14 +183,14 @@ def to_fixed() block_min_width['unset'] = HtmlAttribute::BOOL_TRUE block_min_width['hidden'] = HtmlAttribute::BOOL_TRUE block_margin['unset'] = HtmlAttribute::BOOL_FALSE - block_margin['psvalue'] = 'auto' - + block_margin['psvalue'] = 'auto' + self.updated_html_attribute_values.push(block_width,block_min_width,block_margin ) elsif self.section.slug=='container' - + end end - + end - -end \ No newline at end of file + +end diff --git a/spree_theme/app/models/page_tag/current_page.rb b/spree_theme/app/models/page_tag/current_page.rb index 234407ee..6fe9ed26 100644 --- a/spree_theme/app/models/page_tag/current_page.rb +++ b/spree_theme/app/models/page_tag/current_page.rb @@ -5,7 +5,7 @@ # -> named_resource (blog_posts, products) # -> current_resource( product, blog_post ) # # those tags required current section_instance -# +# # tags in page # template.current_section.menu == template.menus.select # template.current_section.param_values == template.param_values.select @@ -13,17 +13,19 @@ module PageTag class CurrentPage < Menus::WrappedMenu attr_accessor :page_generator,:website_tag, :template_tag, :product_tag - delegate :theme, :menu, :resource, :to => :page_generator - delegate :is_preview, :to => :page_generator - delegate :design?, :to => :website_tag, :prefix=>"site" - alias_attribute :model, :menu #Menus::WrappedMenu use model - - def initialize(page_generator_instance) - self.page_generator = page_generator_instance - self.website_tag = ::PageTag::WebsiteTag.new(page_generator_instance) - self.template_tag = ::PageTag::TemplateTag.new(page_generator_instance) + delegate :theme, :resource, :to => :page_generator + delegate :is_preview, :to => :page_generator + delegate :design?, :to => :website_tag, :prefix=>"site" + alias_attribute :page, :model + alias_attribute :website, :website_tag + + def initialize(page_generator) + self.page_generator = page_generator + self.website_tag = ::PageTag::WebsiteTag.new(page_generator) + self.template_tag = ::PageTag::TemplateTag.new(page_generator) # it is required to generate path self.collection_tag = ::PageTag::Menus.new(self.template_tag) + self.model = self.page_generator.menu #Menus::WrappedMenu required model # get current product if self.page_generator.resource.present? self.product_tag = Products::WrappedProduct.new( self.collection_tag, page_generator.resource) @@ -31,33 +33,40 @@ def initialize(page_generator_instance) self.product_tag = nil end end - - #title is current page title, resource.title-menu.title-website.title + + #title is current page title, resource.title-page.title-website.title def title - if detail_page? - "#{resource.name} - #{menu.name} - #{website_tag.name}" + if home? + website.name + elsif detail_page? + "#{resource.name} - #{page.name} - #{website.name}" else - "#{menu.name} - #{website_tag.name}" - end + "#{page.name} - #{website.name}" + end end - #is given section context valid to current page + #is given section context valid to current page def valid_context? - #Rails.logger.debug "valid=#{menu.current_context}, self.template_tag.current_piece=#{self.template_tag.current_piece.title}" - ret = theme.valid_context?(template_tag.current_piece.page_layout, menu) - #(self.template_tag.current_piece.context? menu.current_context) + #Rails.logger.debug "valid=#{page.current_context}, self.template_tag.current_piece=#{self.template_tag.current_piece.title}" + ret = theme.valid_context?(template_tag.current_piece.page_layout, page) + #(self.template_tag.current_piece.context? page.current_context) end - + def detail_page? resource.present? end - + # when render for cart/account, should output '<%=yield %>' # store it in section piece would not work, controller.render_to_string would parse it. def reyield '<%=yield %>' end + + def agent_selector( request_user_agent ) + user_agent = UserAgent.parse request_user_agent + # Rails.logger.debug "request_user_agent=#{request_user_agent}, user_agent=#{user_agent.to_s}" + "#{( user_agent.browser=='Internet Explorer' ? 'ie' : user_agent.browser )} #{user_agent.version.to_s.to_i}".to_url + end end - -end +end diff --git a/spree_theme/app/models/page_tag/menus.rb b/spree_theme/app/models/page_tag/menus.rb index 71c66b71..2132ed5e 100644 --- a/spree_theme/app/models/page_tag/menus.rb +++ b/spree_theme/app/models/page_tag/menus.rb @@ -1,9 +1,9 @@ module PageTag class Menus < Base class WrappedMenu < WrappedModel - self.accessable_attributes=[:id,:name,:icon, :path, :permalink, :is_clickable?, :page_home?,:depth, :leaf?,:root?,:persisted?, :extra_html_attributes, :description] + self.accessable_attributes=[:id, :name, :icon, :summary, :path, :permalink, :tooltips, :is_clickable?, :home?,:depth, :leaf?,:root?,:persisted?, :extra_html_attributes, :description, :replaced_by ] delegate *self.accessable_attributes, :to => :model - delegate :taxonomy, :to => :model + delegate :taxonomy, :root, :to => :model def children self.model.children.collect{|item| WrappedMenu.new(self.collection_tag, item)} @@ -16,6 +16,13 @@ def descendants def ancestors self.model.ancestors.collect{|item| PageTag::Menus::WrappedMenu.new(self.collection_tag, item)} end + + def ancestor_ids + if @ancestor_ids.nil? + @ancestor_ids = self.model.ancestors.map(&:id) + end + @ancestor_ids + end # url link to the menu itme's page(each menu itme link to a page). def current? @@ -55,7 +62,7 @@ def clickable? def partial_path # menu.id would be nil if it is class DefaultTaxon - if model.persisted? + if( model.persisted? && !model.home? ) path else # in case default home page show all products, @@ -63,6 +70,11 @@ def partial_path "/#{self.model.id.to_i}" end end + + def resource_taxon_id + replaced_by > 0 ? replaced_by : id + end + end attr_accessor :menus_cache #store all menus of template, key is page_layout_id, value is menu tree attr_accessor :template_tag, :page_generator @@ -75,9 +87,12 @@ def initialize(template_tag) end # get menu root assigned to section instance - # 1. containerA(menu) - taxonomy_name - # - hmenu - # 2. containerB- hmenu(menu) + # 1. containerA(taxon_root) - taxonomy_name + # - hmenu + # 2. containerB- hmenu( taxon_root ) + # 3. containerC- taxon_name( taxon ) + # - container( taxon.products ) + # - product_name # for menu assignment easy, method 1 is not support any more def get( wrapped_page_layout, resource_position=0 ) key = wrapped_page_layout.to_key @@ -85,19 +100,18 @@ def get( wrapped_page_layout, resource_position=0 ) unless menus_cache.key? key #wrapped_page_layout.assigned_menu_id may not exist for some reason. assigned_menu_id = wrapped_page_layout.assigned_menu_id(resource_position) - if assigned_menu_id>0 and SpreeTheme.taxon_class.exists?( assigned_menu_id ) + if assigned_menu_id>0 && SpreeTheme.taxon_class.exists?( assigned_menu_id ) menu_tree = SpreeTheme.taxon_class.find( assigned_menu_id ).self_and_descendants end menus_cache[key] = menu_tree end if menus_cache[key].blank? - # get default menu - if wrapped_page_layout.section.present? - wrapped_resource = wrapped_page_layout.section.section_piece.wrapped_resources[resource_position] - if wrapped_resource.present? - menus_cache[key] = DefaultTaxonRoot.instance_by_context( wrapped_resource.context ).self_and_descendants - end + # get default menu, with_resources may return [] since support assign resource to container. + section_with_resources = wrapped_page_layout.section_pieces.with_resources.first + if section_with_resources && section_with_resources.wrapped_resources[resource_position] + wrapped_resource = section_with_resources.wrapped_resources[resource_position] + menus_cache[key] = DefaultTaxonRoot.instance_by_context( wrapped_resource.context ).self_and_descendants end end #Rails.logger.debug "wrapped_page_layout=#{key}, menu_tree=#{menu_tree}" diff --git a/spree_theme/app/models/page_tag/model_attribute.rb b/spree_theme/app/models/page_tag/model_attribute.rb new file mode 100644 index 00000000..2b36581b --- /dev/null +++ b/spree_theme/app/models/page_tag/model_attribute.rb @@ -0,0 +1,32 @@ +module PageTag + #get attributes from current datasource + class ModelAttribute + + attr_accessor :wrapped_model,:current_piece, :options + attr_accessor :helpers + delegate :tag, :image_tag, :content_tag, :to=> :helpers + + + def initialize( current_piece, wrapped_model, options = {}) + self.wrapped_model = wrapped_model + self.current_piece = current_piece + self.options = options + self.helpers = ActionController::Base.helpers + end + + + def get( attribute_name ) + raise "please implement ModelAttribute.get" + end + + + def pretty_datetime(time) + [I18n.l(time.to_date, format: :long), time.strftime("%l:%M %p")].join(" ") + end + + def pretty_date(time) + I18n.l(time.to_date, format: :long) + end + + end +end diff --git a/spree_theme/app/models/page_tag/model_collection.rb b/spree_theme/app/models/page_tag/model_collection.rb index c247619a..3d67a839 100644 --- a/spree_theme/app/models/page_tag/model_collection.rb +++ b/spree_theme/app/models/page_tag/model_collection.rb @@ -28,5 +28,10 @@ def each(&block) } self end + + def index( wrapped_model ) + self.wrapped_models.index wrapped_model + end + end end diff --git a/spree_theme/app/models/page_tag/page_attribute.rb b/spree_theme/app/models/page_tag/page_attribute.rb new file mode 100644 index 00000000..4c94457b --- /dev/null +++ b/spree_theme/app/models/page_tag/page_attribute.rb @@ -0,0 +1,42 @@ +module PageTag + #get attributes from current datasource + class PageAttribute < ModelAttribute + alias_attribute :wrapped_page, :wrapped_model + + def get( attribute_name ) + attribute_value = case attribute_name + when :icon + if wrapped_page.icon.present? + tag('img', :src=>wrapped_page.icon.url(:original), :u=>'image', :alt=>wrapped_page.name, :class=>"img-responsive" ) + else + '' + end + when :summary + wrapped_page.send attribute_name, self.current_piece.truncate_at + when :more # it is same as clickable wrapped_page name + Spree.t('more') + when :root_name + wrapped_page.name + else + wrapped_page.send attribute_name + end + if self.current_piece.clickable? || attribute_name==:more + html_options = wrapped_page.extra_html_attributes + html_options[:href] ||= wrapped_page.path + if attribute_name == :summary + attribute_value << content_tag(:a, "[#{Spree.t(:detail)}]", html_options) + else + content_tag(:a, attribute_value, html_options) + end + elsif attribute_name==:name + # make it as link anchor, wrapped with span, css text-* applicable + content_tag :span, attribute_value, {:id=>"p_#{self.current_piece.id}_#{wrapped_page.id}"} + else + attribute_value + end + + end + + + end +end diff --git a/spree_theme/app/models/page_tag/page_generator.rb b/spree_theme/app/models/page_tag/page_generator.rb index cd5be5f9..c0a49d61 100644 --- a/spree_theme/app/models/page_tag/page_generator.rb +++ b/spree_theme/app/models/page_tag/page_generator.rb @@ -1,36 +1,36 @@ #in layout, there are some eruby, all available varibles should be here. -module PageTag +module PageTag class PageGenerator - + attr_accessor :template_release, :menu, :theme, :resource # resource could be product, blog_post, flash, file, image... attr_accessor :editor - + #these attributes are for templates attr_accessor :current_page_tag attr_accessor :context - # * renderer - could be current controller or Erubis::Eruby, + # * renderer - could be current controller or Erubis::Eruby, # we would like to use helper method of rails, so now is using controller as renderer # * resource_options - parameter for resource, for example, pagination attr_accessor :is_preview, :controller, :renderer, :resource_options # - attr_accessor :ehtml, :ecss, :ejs + attr_accessor :ehtml, :ecss, :ejs, :ruby delegate :generate, :generate_assets, :to=>:renderer delegate :html,:css,:js, :to=>:renderer - + class << self #page generator has two interface, builder and generator #builder only build content: ehtml,js,css #def builder( theme ) - # self.new( theme, menu=nil) + # self.new( theme, menu=nil) #end - + #designer release a template def releaser( theme) pg = self.new( theme, menu=nil) pg.build pg end - + #generator generate content: html,js,css # params: # theme: template theme, a template may not released. @@ -39,19 +39,19 @@ def previewer(menu, theme=nil, options={}) pg = self.new( theme, menu, options) pg.build pg - end + end #generator generate content: html,js,css def generator(menu, theme=nil, options={}) self.new( theme, menu, options) end end - - def initialize( theme, menu, options={}) + + def initialize( theme, menu, options={}) self.theme = theme self.menu = menu self.resource = nil self.is_preview = options[:preview].present? - + self.editor = options[:editor] if options[:resource].present? self.resource = options[:resource] @@ -63,76 +63,81 @@ def initialize( theme, menu, options={}) initialize_context_variables if options[:controller].present? self.controller = options[:controller] - end + end self.resource_options = options.slice(:page) end - - def url_prefix + + def url_prefix #self.is_preview ? "/preview" : "" "" end - + #def has_editor? # self.editor.present? #end - + #build html, css sourse def build - self.ehtml, self.ecss, self.ejs = self.theme.page_layout.build_content() + self.ehtml, self.ecss, self.ejs = self.theme.original_page_layout_root.build_content() return self.ehtml, self.ecss, self.ejs end - + def release #build -> generate_assets -> serialize self.build # build ehtml, ecss, ejs - self.generate_assets # generate css, js + self.generate_assets # generate css, js + self.ruby = erb.new(self.ehtml).src serialize_page(:ehtml) serialize_page(:css) serialize_page(:js) + serialize_page(:ruby) end - + def renderer - if @renderer.blank? + if @renderer.blank? if self.controller.present? @renderer = PageTag::PageRenderer::RailsRenderer.new(self.ehtml, self.ecss, self.ejs, self.context,self.controller) else @renderer = PageTag::PageRenderer::ErubisRenderer.new(self.ehtml, self.ecss, self.ejs, self.context) end - end + end @renderer end - - def build_path( wrapped_model ) + + def build_path( wrapped_model ) url = nil if wrapped_model.kind_of?( Menus::WrappedMenu ) url= url_prefix+ wrapped_model.model.path - else - url= url_prefix+ wrapped_model.path - end + else + url= url_prefix+ wrapped_model.path + end url end - + # *specific_attribute - ehtml,ecss, html, css def serialize_page(specific_attribute) - specific_attribute_collection = [:css,:js,:ehtml] + specific_attribute_collection = [:css,:js,:ehtml,:ruby] raise ArgumentError unless specific_attribute_collection.include?(specific_attribute) page_content = send(specific_attribute) if page_content.present? path = self.theme.document_path FileUtils.mkdir_p(path) unless File.exists?(path) - - path = self.theme.document_file_path(specific_attribute) + + path = self.theme.document_file_path(specific_attribute) open(path, 'w') do |f| f.puts page_content; end end end - + private - # erb context variables + # erb context variables def initialize_context_variables - self.context = {:current_page=>current_page_tag, + self.context = {:current_page=>current_page_tag, :website=>current_page_tag.website_tag, :template=>current_page_tag.template_tag - } - end - + } + end + + def erb( ) + ActionView::Template::Handlers::ERB.erb_implementation + end end -end \ No newline at end of file +end diff --git a/spree_theme/app/models/page_tag/page_renderer/rails_renderer.rb b/spree_theme/app/models/page_tag/page_renderer/rails_renderer.rb index 91ec6be1..c6d1b7d6 100644 --- a/spree_theme/app/models/page_tag/page_renderer/rails_renderer.rb +++ b/spree_theme/app/models/page_tag/page_renderer/rails_renderer.rb @@ -12,7 +12,6 @@ def initialize( ehtml, ecss, ejs, context, controller) def generate prepare_instance_variables -#Rails.logger.debug "ehtml=#{ehtml}" self.html = renderer.render_to_string(:inline =>ehtml) return self.html end diff --git a/spree_theme/app/models/page_tag/param_values.rb b/spree_theme/app/models/page_tag/param_values.rb index 42553ff2..223447ec 100644 --- a/spree_theme/app/models/page_tag/param_values.rb +++ b/spree_theme/app/models/page_tag/param_values.rb @@ -23,7 +23,9 @@ def param_values_hash #usage # key, template_tag.current_piece.to_key, look for css in current section piece - # options: :source=>[computed|normal], get pvalue from 'pvalue' or 'computed_pvalue' + # options: source=>[computed|normal], get pvalue from 'pvalue' or 'computed_pvalue' + # html_attribute_ids=>[],get pvalue only in html_attribute_id in :html_attribute_ids + # ex. css(:inner, {:html_attribute_ids=>[15,21]}) def css( class_name, options={}) class_name = class_name.to_s key = self.template_tag.current_piece.to_key diff --git a/spree_theme/app/models/page_tag/post_attribute.rb b/spree_theme/app/models/page_tag/post_attribute.rb new file mode 100644 index 00000000..4a7a0287 --- /dev/null +++ b/spree_theme/app/models/page_tag/post_attribute.rb @@ -0,0 +1,55 @@ +module PageTag + #get attributes from current datasource + class PostAttribute < ModelAttribute + alias_attribute :wrapped_post, :wrapped_model + + def get( attribute_name ) + attribute_value = case attribute_name + when :cover + style = self.current_piece.get_content_param_by_key(:main_image_style) + if wrapped_post.cover.present? + tag('img', :src=>wrapped_post.cover.url(style), :u=>'image', :alt=>'post image', :class=>"img-responsive" ) + else + image_tag "noimage/post_#{style}.png", { :alt=>'missing image', :class=>"img-responsive" } + end + when :file + post_file.attachment_file_name if post_file + when :summary + wrapped_post.send attribute_name, self.current_piece.truncate_at + else + wrapped_post.send attribute_name + end + + if self.current_piece.clickable? + html_options = { href: wrapped_post.path } + if attribute_name == :summary + attribute_value + content_tag(:a, "[#{Spree.t(:detail)}]", html_options) + elsif attribute_name == :file + #file is downloadable + content_tag(:a, post_file.alt.present? ? post_file.alt : wrapped_post.title, { href: post_file.attachment.url, title: attribute_value }) + else + content_tag(:a, attribute_value, html_options) + end + elsif attribute_name == :title + # make it as link anchor + content_tag :span, attribute_value, {:id=>"p_#{self.current_piece.id}_#{wrapped_post.id}"} + elsif attribute_name == :posted_at + case self.current_piece.datetime_style + when :date + pretty_date attribute_value + else + pretty_datetime attribute_value + end + else + attribute_value + end + + end + + + def post_file + options[:file] || wrapped_post.files.first + end + + end +end diff --git a/spree_theme/app/models/page_tag/posts.rb b/spree_theme/app/models/page_tag/posts.rb index 380c4a67..3337a100 100644 --- a/spree_theme/app/models/page_tag/posts.rb +++ b/spree_theme/app/models/page_tag/posts.rb @@ -3,30 +3,31 @@ module PageTag # key is data_source name, value is proper blog_posts_tag # self.blog_posts_tags_cache = {} class Posts < ModelCollection - + class WrappedPost < WrappedModel - self.accessable_attributes=[:id, :title, :body, :posted_at, :cover] + self.accessable_attributes=[:id, :title, :body, :posted_at, :cover, :summary, :author, :files] delegate *self.accessable_attributes, :to => :model - - + + def path "/post"+ collection_tag.wrapped_taxon.partial_path + "/#{model.id}-#{model.permalink}" - end - end - - + end + end + + def wrapped_models - models.collect{|model| WrappedPost.new(self, model) } + return @wrapped_models if @wrapped_models + @wrapped_models = models.collect{|model| WrappedPost.new(self, model) } end - + # means the current select blog post in erubis context. - def current - if @current.nil? and !self.page_generator.resource.nil? - @current = WrappedPost.new( self, page_generator.resource) - end - @current - end - + #def current + # if @current.nil? and !self.page_generator.resource.nil? + # @current = WrappedPost.new( self, page_generator.resource) + # end + # @current + #end + end -end \ No newline at end of file +end diff --git a/spree_theme/app/models/page_tag/product_attribute.rb b/spree_theme/app/models/page_tag/product_attribute.rb new file mode 100644 index 00000000..42ca97ec --- /dev/null +++ b/spree_theme/app/models/page_tag/product_attribute.rb @@ -0,0 +1,90 @@ +module PageTag + #get attributes from current datasource + class ProductAttribute < ModelAttribute + alias_attribute :wrapped_product, :wrapped_model + + def get( attribute_name ) + attribute_value = case attribute_name + when :name + # make it as link anchor + content_tag :span, wrapped_product.name, {:id=>"p_#{self.current_piece.id}_#{wrapped_product.id}"} + when :image + product_image( wrapped_product, options[:image] ) + when :thumbnail + i = options[:image] + content_tag(:a, create_product_image_tag( i, wrapped_product, {}, current_piece.get_content_param_by_key(:thumbnail_style)), + #image_tag(i.attachment.url( current_piece.get_content_param_by_key(:thumbnail_style))), + { href: i.attachment.url( current_piece.get_content_param_by_key(:main_image_style)) } + ) + else + wrapped_product.send attribute_name + end + if attribute_name== :image && self.current_piece.is_zoomable_image? + # main image + # wrap with a, image-zoom required + # content_tag(:a, attribute_value, { class: 'image-zoom' }) + attribute_value + elsif self.current_piece.clickable? + content_tag(:a, attribute_value, { href: wrapped_product.path }) + else + attribute_value + end + + end + private + def create_product_image_tag( image, product, options, style) + #Rails.logger.debug " image = #{image} product = #{product}, options= #{options}, style=#{style}" + options.reverse_merge! alt: image.alt.blank? ? product.name : image.alt + # data-big-image for jqzoom, large=600x600 + options.merge! 'data' => { 'big-image'=> image.attachment.url(:large) } + image_tag( image.attachment.url(style), options ) + end + # copy from BaseHelper#define_image_method + def product_image_by_spree(product, style, options = {}) + if product.images.empty? + if !product.is_a?(Spree::Variant) && !product.variant_images.empty? + create_product_image_tag(product.variant_images.first, product, options, style) + else + if product.is_a?(Spree::Variant) && !product.product.variant_images.empty? + create_product_image_tag(product.product.variant_images.first, product, options, style) + else + #seems assets digest do not support template .ruby + #image_tag "noimage/#{style}.png", options + options.merge! 'data' => { 'big-image'=> "noimage/large.png" } #zoomable required + image_tag "noimage/#{style}.png", options + end + end + else + create_product_image_tag(product.images.first, product, options, style) + end + end + + # * params + # * options - available keys for image_tag + # * specified_image - show this image + def product_image(wrapped_product, specified_image = nil, options = {}) + product = wrapped_product.model + Spree::MultiSiteSystem.with_context_site_product_images{ + main_image_style = current_piece.get_content_param_by_key(:main_image_style) + main_image_position = current_piece.get_content_param_by_key(:main_image_position) + options.merge! itemprop: "image" + # only main image have title 'click to get lightbox' + if current_piece.lightboxable? + options.merge! title: I18n.t( "theme.product_image.lightboxable") + end + + if specified_image + # mainly for feature product image slider + create_product_image_tag( specified_image, product, options, main_image_style) + elsif main_image_position>0 + if product.images[main_image_position].present? + create_product_image_tag(product.images[main_image_position], product, options, main_image_style) + end + else + product_image_by_spree( product, main_image_style, options) + end + } + end + + end +end diff --git a/spree_theme/app/models/page_tag/products.rb b/spree_theme/app/models/page_tag/products.rb index 6a5c4b49..e9b057c0 100644 --- a/spree_theme/app/models/page_tag/products.rb +++ b/spree_theme/app/models/page_tag/products.rb @@ -3,27 +3,32 @@ module PageTag # key is data_source name, value is proper blog_posts_tag # self.blog_posts_tags_cache = {} class Products < ModelCollection - + class WrappedProduct < WrappedModel - self.accessable_attributes=[:id,:name,:description,:theme_id,:images,:variant_images,:has_variants?,:price_in, :price, :master, :currency, :variants_and_option_values, :grouped_option_values,:variants_for_option_value, :total_on_hand,:variant_options_hash,:product_customization_types ] + self.accessable_attributes=[:id,:name,:description,:theme_id,:images,:variant_images,:has_variants?,:price_in, :price, :master, :currency, :variants_and_option_values, :grouped_option_values,:variants_for_option_value, :total_on_hand,:variant_options_hash,:product_customization_types ] delegate *self.accessable_attributes, :to => :model delegate :template_theme, :to=>:model #:model_name use by small_image def self.model_name Spree::Product.model_name end - + def product_properties self.model.product_properties.includes(:property) end - + def path collection_tag.wrapped_taxon.partial_path + "/#{model.id}-#{model.slug}" - end - end - + end + # product image and variant images + def whole_images + ( self.images + self.variant_images ).uniq + end + end + def wrapped_models - models.collect{|model| WrappedProduct.new(self, model) } + return @wrapped_models if @wrapped_models + @wrapped_models = models.collect{|model| WrappedProduct.new(self, model) } end # means the current select blog post in erubis context. @@ -33,6 +38,6 @@ def wrapped_models # end # @current #end - + end -end \ No newline at end of file +end diff --git a/spree_theme/app/models/page_tag/template_tag.rb b/spree_theme/app/models/page_tag/template_tag.rb index db0462a1..47524952 100644 --- a/spree_theme/app/models/page_tag/template_tag.rb +++ b/spree_theme/app/models/page_tag/template_tag.rb @@ -1,26 +1,37 @@ +require 'action_view/helpers/tag_helper' +require 'action_view/helpers/asset_tag_helper.rb' module PageTag # template -> param_values # -> menus # -> named_resource (blog_posts, products) # -> current_resource( product, blog_post ) # # those tags required current section_instance -# template is collection of page_layout. each page_layout is section instance +# template is collection of page_layout. each page_layout is section instance class TemplateTag < Base + # should not include helper, asset_host, asset_path would not work + # include ActionView::Helpers::AssetTagHelper + QQOnlineRegEx = /wpa\.qq\.com/ + class WrappedPageLayout < WrappedModel - self.accessable_attributes=[:id,:title,:current_data_source,:wrapped_data_source_param, :data_filter,:current_contexts, :context_either?, :view_as_clickable?, :get_content_param_by_key] - attr_accessor :section_id, :page_layout - delegate *self.accessable_attributes, :to => :page_layout - + MaxTaxonDepth = 9999 + + self.accessable_attributes=[:id,:title,:current_data_source,:wrapped_data_source_param, :data_filter,:current_contexts, :context_either?, + :get_content_param_by_key, :get_data_source_param_by_key, :is_container?, :is_image?, :is_zoomable_image?, :effects, :section_pieces, :content_css_class] + attr_accessor :section_id, :page_layout, :parent + + delegate *self.accessable_attributes, to: :page_layout + alias_attribute :template, :collection_tag + def initialize(collection_tag, page_layout, section_id) self.collection_tag = collection_tag - self.page_layout = page_layout + self.page_layout = page_layout self.section_id = section_id end - + def section page_layout.sections.select{|section| section.id == section_id }.first end - + #Usage: css selector for current section piece instance # we may need css selector for current section instance def piece_selector @@ -28,21 +39,21 @@ def piece_selector "s_#{self.to_key}" end end - + # section piece have no html, only some css, in this case section_selector is required for css which apply to whole section # ex. container title. def section_selector "s_#{page_layout.id}_#{page_layout.section_id}" end - + # some css apply to children but all descendants, so we need a selector to get children - # this selector indicate it is child of some parent + # this selector indicate it is child of some parent # ex. content_layout. def as_child_selector "c_#{page_layout.parent_id}" end - # some css apply to children but all descendants, so we need a selector to get children - # this selector refer to its children + # some css apply to children but all descendants, so we need a selector to get children + # this selector refer to its children def child_selector "c_#{page_layout.id}" end @@ -50,12 +61,12 @@ def child_selector def to_key "#{page_layout.id}_#{section_id}" end - + def assigned_menu_id( resource_position=0 ) assigned_id = self.collection_tag.theme.assigned_resource_id(SpreeTheme.taxon_class, page_layout, resource_position) if assigned_id==0 - assigned_id = page_layout.ancestors.collect{|ancestor| - self.collection_tag.theme.assigned_resource_id(SpreeTheme.taxon_class, ancestor, resource_position) + assigned_id = page_layout.ancestors.collect{|ancestor| + self.collection_tag.theme.assigned_resource_id(SpreeTheme.taxon_class, ancestor, resource_position) }.select{| ancestor_assigned_id | ancestor_assigned_id >0 }.last.to_i #last could be nil end assigned_id @@ -66,53 +77,131 @@ def assigned_image_id def assigned_text_id self.collection_tag.theme.assigned_resource_id(Spree::TemplateText, page_layout) end + # start from 1 + def nth_of_siblings + self.collection_tag.cached_page_layouts.values.select{|pl| pl.parent_id == page_layout.parent_id && pl != page_layout && pl.lft < page_layout.lft }.size + 1 + end + + # view content image_style ex. taxon_name, render as
      or ? + def clickable? + # first bit is clickable + get_content_param_by_key(:clickable) + end + + def hoverable? + # first bit is clickable + get_content_param_by_key(:hoverable) + end + + def zoomable? + is_zoomable_image? && get_content_param_by_key(:zoomable) + end + + def lightboxable? + is_image? && get_content_param_by_key(:lightboxable) + end + # view content as grid. + def column_count + is_container? ? get_content_param_by_key( :model_count_in_row ) : 0 + end + + def per_page + return 0 if current_data_source.blank? + is_container? ? get_data_source_param_by_key( :per_page ).to_i : 0 + end + + def pagination_enable? + # only container could have pagination + is_container? && get_data_source_param_by_key( :pagination_enable ) + end + + def attribute_name + get_data_source_param_by_key( :attribute_name ) || 'name' + end + + def truncate_at + get_content_param_by_key(:truncate_at) + end + + def datetime_style + get_content_param_by_key(:datetime_style) + end + # get href from + # content_param > current_data_item > default(home) + def href + if clickable? + return page_layout.href if get_content_param_by_key( :context ) > 0 + return self.collection_tag.running_data_item.path if self.collection_tag.running_data_item.present? + end + end + + # taxon depth for section menu + def enabled_depth + get_data_source_param_by_key(:depth) || MaxTaxonDepth + end end - - attr_accessor :page_layout_tree - attr_accessor :param_values_tag, :menus_tag, :image_tag, :text_tag, :blog_posts_tag - delegate :css, :to => :param_values_tag + + attr_accessor :param_values_tag, :menus_tag, :images_tag, :text_tag, :blog_posts_tag + delegate :css, :to => :param_values_tag delegate :menu,:menu2, :to => :menus_tag - delegate :image, :to => :image_tag + delegate :image, :to => :images_tag delegate :text, :to => :text_tag - delegate :theme, :to => :page_generator + delegate :theme, :current_page_tag, :to => :page_generator + delegate :section_selector, :to =>:current_piece + attr_accessor :current_piece + #we have to store it in template, or missing after select another page_layout. + attr_accessor :running_data_sources, :running_data_items, :running_data_source_sction_pieces, :cached_section_pieces + attr_accessor :helpers + delegate :tag, :image_tag, :content_tag, :to=> :helpers def initialize(page_generator_instance) super(page_generator_instance) self.param_values_tag = ::PageTag::ParamValues.new(self) self.menus_tag = ::PageTag::Menus.new(self) - self.image_tag = ::PageTag::TemplateImage.new(self) + self.images_tag = ::PageTag::TemplateImage.new(self) self.text_tag = ::PageTag::TemplateText.new(self) - self.page_layout_tree = theme.page_layout.self_and_descendants() + self.running_data_sources = [] + self.running_data_source_sction_pieces = [] # data_source belongs to section_piece + self.running_data_items = [] + self.cached_section_pieces = {} + self.helpers = ActionController::Base.helpers end - - #def id - # page_generator.theme.id - #end - + #Usage: call this in template to initialize current section and section_piece # should call this before call any method. #Params: page_layout_id, in fact, it is record of table page_layout. represent a section instance # section_id, it is id of table section, represent a section_piece instance, could be 0. only select page_layout - # + # def select(page_layout_id, section_id=0) + page_layout_id = self.current_piece.page_layout.id if page_layout_id==0 + key = "#{page_layout_id}_#{section_id}" + self.current_piece = cached_section_pieces[key] #current selected section instance, page_layout record - page_layout = page_layout_tree.select{|node| node.id == page_layout_id}.first - #Rails.logger.debug "select #{page_layout.title}, section_id=#{section_id}" - self.current_piece = WrappedPageLayout.new(self, page_layout, section_id) + if self.current_piece.nil? + page_layout = cached_page_layouts[page_layout_id] + self.current_piece = WrappedPageLayout.new(self, page_layout, section_id) + unless page_layout.root? + parent_page_layout = cached_page_layouts[page_layout.parent_id] + parent_key = "#{parent_page_layout.id}_0" + #cached_section_pieces[parent_key] may be nil, we do not select + self.current_piece.parent = cached_section_pieces[parent_key] + end + #Rails.logger.debug "select #{page_layout.title}, section_id=#{section_id}, parent=#{self.current_piece.parent.try(:page_layout).try(:title)}" + self.cached_section_pieces[key] = self.current_piece + end end - + def products( wrapped_taxon ) objs = [] case self.current_piece.current_data_source when Spree::PageLayout::DataSourceEnum.gpvs - #objs = menu.products #copy from taxons_controller#show - searcher_params = {:taxon => wrapped_taxon.id}.merge(self.current_piece.wrapped_data_source_param ).merge(self.page_generator.resource_options) + searcher_params = { taxon: wrapped_taxon.resource_taxon_id }.merge(self.current_piece.wrapped_data_source_param ).merge(self.page_generator.resource_options) searcher = Spree::Config.searcher_class.new(searcher_params) #@searcher.current_user = try_spree_current_user #@searcher.current_currency = current_currency - objs = searcher.retrieve_products + objs = searcher.retrieve_products when Spree::PageLayout::DataSourceEnum.gpvs_theme objs = Spree::MultiSiteSystem.with_context_site1_themes{ searcher_params ={} @@ -121,44 +210,220 @@ def products( wrapped_taxon ) end searcher_params.merge!(self.current_piece.wrapped_data_source_param ).merge!(self.page_generator.resource_options) searcher = Spree::Config.searcher_class.new(searcher_params) - searcher.retrieve_products.theme_only.to_a # explicitly load some records, or default_scope would work when out of this block. - } + searcher.retrieve_products.theme_only.to_a # explicitly load some records, or default_scope would work when out of this block. + } when Spree::PageLayout::DataSourceEnum.this_product - #default_taxon.id is 0 + #default_taxon.id is 0 if self.page_generator.resource.kind_of? Spree::Product - objs = [self.page_generator.resource] + objs = [self.page_generator.resource] end end - #Rails.logger.debug "self.current_piece=#{self.current_piece.title},wrapped_taxon = #{wrapped_taxon.name},objs=#{objs.inspect}" + + #Rails.logger.debug "self.current_piece=#{self.current_piece.title},wrapped_taxon = #{wrapped_taxon.name},objs=#{objs.inspect}" if objs.present? # wrapped_taxon may not be current taxon objs = Products.new( self.page_generator, objs, wrapped_taxon ) end - objs + objs end def posts( wrapped_taxon ) - + objs = [] case self.current_piece.current_data_source when Spree::PageLayout::DataSourceEnum.blog #copy from taxons_controller#show - searcher_params = {:taxon => wrapped_taxon.id}.merge(self.current_piece.wrapped_data_source_param ).merge(self.page_generator.resource_options) + searcher_params = {taxon: wrapped_taxon.resource_taxon_id}.merge(self.current_piece.wrapped_data_source_param ).merge(self.page_generator.resource_options) searcher = SpreeTheme.post_class.searcher_class.new(searcher_params) #@searcher.current_user = try_spree_current_user #@searcher.current_currency = current_currency - objs = searcher.retrieve_posts + objs = searcher.retrieve_posts when Spree::PageLayout::DataSourceEnum.post if self.page_generator.resource.kind_of? Spree::Post objs = [self.page_generator.resource] - end + end + end + if objs.present? + objs = Posts.new( self.page_generator, objs, wrapped_taxon) + end + objs + end + + # feature next_post, previous_post + def related_posts( wrapped_taxon, options = {} ) + data_source = ( options[:data_source] || self.current_piece.current_data_source ) + objs = [] + case data_source + when Spree::PageLayout::DataSourceEnum.next_post + if self.page_generator.resource.kind_of? Spree::Post + item = Spree::PostClassification.where( taxon_id: wrapped_taxon.id, post_id: self.page_generator.resource.id ).first.try(:lower_item).try(:post) + objs << item if item.present? + end + when Spree::PageLayout::DataSourceEnum.previous_post + if self.page_generator.resource.kind_of? Spree::Post + item = Spree::PostClassification.where( taxon_id: wrapped_taxon.id, post_id: self.page_generator.resource.id ).first.try(:higher_item).try(:post) + objs << item if item.present? + end end if objs.present? objs = Posts.new( self.page_generator, objs, wrapped_taxon) end - objs + objs + end + + # in template_tag have no method link_to, content_tag, it have to be in base_helper + def page_attribute( attribute_name = nil ) + attribute_name ||= self.current_piece.attribute_name.to_sym + + if attribute_name.to_s =~/root\_/ + # in this case, taxonomy have no running_data_item at this time. + # + # + # + # + page = self.menu + else + page = (self.running_data_item_by_class( Menus::WrappedMenu ) || self.current_page_tag) + end + PageAttribute.new( current_piece, page ).get( attribute_name ) + end + + # * params + # * attribute_name - symbol :name, :image, :thumbnail + def product_attribute( attribute_name, options = { } ) + wrapped_model = (self.running_data_item_by_class( Products::WrappedProduct ) ) + ProductAttribute.new( current_piece, wrapped_model, options ).get( attribute_name ) if wrapped_model + end + + # * params + # * options - file, get specified file of post + def post_attribute( attribute_name, options = { } ) + wrapped_model = (self.running_data_item_by_class( Posts::WrappedPost )) + PostAttribute.new( current_piece, wrapped_model, options ).get( attribute_name ) if wrapped_model end + def site_attribute( attribute_name ) + website = current_page_tag.website + attribute_value = '' + if attribute_name==:favicon + if website.favicon.present? + attribute_value = tag('link', href: website.favicon.url(:original), type: "image/x-icon", rel: "shortcut icon" ) + end + else + attribute_value = website.send attribute_name + end + if self.current_piece.clickable? + content_tag(:a, attribute_value, {href: '/'}) + elsif attribute_name==:name + # make it as link anchor + content_tag :span, attribute_value, {:id=>"p_#{self.current_piece.id}_#{website.site_id}"} + else + attribute_value + end + end + + def font_awesome + if current_piece.content_css_class.present? + attribute_value = content_tag :i, "", { :class=>"fa "+current_piece.content_css_class } + if self.current_piece.clickable? + html_attributes = { href: self.current_piece.href } + #always open a new window for qq online support + html_attributes[:target] = '_blank' if html_attributes[:href] =~ QQOnlineRegEx + attribute_value = content_tag( :a, attribute_value, html_attributes) + end + attribute_value + end + + end + + def get_css_classes + + css_classes = '' + # handling data iteration? + # Rails.logger.debug "current_piece=#{current_piece.id},#{current_piece.title}, current_piece.is_container?=#{current_piece.is_container?}, self.running_data_sources.present?=#{self.running_data_sources.present?}" + if current_piece.is_container? + # page_layout.effects only apply to container, or bit conflict. + css_classes << current_piece.effects.join(' ') + if running_data_item.present? + current_page = self.page_generator.current_page_tag + column_count = self.running_data_source_sction_piece.column_count + i = self.running_data_item_index + #Rails.logger.debug "i=#{i}, column_count=#{column_count}, self.running_data_source_sction_piece=#{self.running_data_source_sction_piece.id}" + css_classes << ' data_first' if column_count>0 && i==0 + css_classes << ' data_last' if column_count>0 && ((i+1)%column_count==0) + css_classes << " data_#{i+1}" + + case running_data_item + when Menus::WrappedMenu + css_classes << ' data_current' if running_data_item.current? + css_classes << ' data_current_ancestor' if current_page.ancestor_ids.include?(running_data_item.id) + when Products::WrappedProduct + end + + end + end + if current_piece.parent.effects.present? + css_classes << " child_#{current_piece.nth_of_siblings}" + end + css_classes << " zoomable" if current_piece.zoomable? + css_classes << " hoverable" if current_piece.hoverable? + css_classes << " lightboxable" if current_piece.lightboxable? + + css_classes + + end + + + def cached_page_layouts + if @cached_page_layouts.nil? + @cached_page_layouts = theme.original_page_layouts.includes(:section).inject({}){ |hash,pl| hash[pl.id]=pl; hash } + end + @cached_page_layouts + end + + def running_data_source + running_data_sources.last + end + + def running_data_source_sction_piece + running_data_source_sction_pieces[ running_data_sources.size - 1 ] + end + + def running_data_item + running_data_items[ running_data_sources.size - 1 ] + end + + def running_data_item_index + #running_data_source could be array or resource + case running_data_source + when ModelCollection, Array #page.products,menu.children + running_data_source.index( running_data_item) + else # a page, a product + 0 + end + end + + def running_data_source=( data_source ) + if data_source.nil? + running_data_sources.pop + running_data_source_sction_pieces.pop + running_data_items.pop + else + running_data_sources.push data_source + running_data_source_sction_pieces[ running_data_sources.size - 1 ] = current_piece + end + end + def running_data_item=( data_item ) + running_data_items[ running_data_sources.size - 1 ] = data_item + end + + def running_data_item_by_class( klass ) + running_data_items.select{|item| item.is_a? klass }.last + end + + + + end end diff --git a/spree_theme/app/models/page_tag/website_tag.rb b/spree_theme/app/models/page_tag/website_tag.rb index 54e85494..bd37ba4a 100644 --- a/spree_theme/app/models/page_tag/website_tag.rb +++ b/spree_theme/app/models/page_tag/website_tag.rb @@ -1,16 +1,21 @@ module PageTag class WebsiteTag < Base - class_attribute :accessable_attributes - self.accessable_attributes = [:id,:name,:design?] - delegate *self.accessable_attributes, :to => :website - - def website - page_generator.theme.website + class_attribute :accessable_attributes_from_store, :accessable_attributes_from_site + self.accessable_attributes_from_store = [:site, :name, :site_id] + self.accessable_attributes_from_site = [] + delegate *self.accessable_attributes_from_store, to: :store + delegate *self.accessable_attributes_from_site, to: :site + + def store + page_generator.theme.store end - def get(function_name) - self.website.send function_name + def design? + store.designable? end + #def get(function_name) + # self.site.send function_name + #end # template_release is nil if designing def public_path(target) diff --git a/spree_theme/app/models/spree/assigned_resource/source_interface.rb b/spree_theme/app/models/spree/assigned_resource/source_interface.rb deleted file mode 100644 index 830d11df..00000000 --- a/spree_theme/app/models/spree/assigned_resource/source_interface.rb +++ /dev/null @@ -1,14 +0,0 @@ -# all Assignable source should implement source interface -module Spree - module AssignedResource - module SourceInterface - def find_or_copy - raise "please implement it as template source" - end - def importable? - raise "please implement it as template source" - end - end - end -end - \ No newline at end of file diff --git a/spree_comments/app/models/spree/comment.rb b/spree_theme/app/models/spree/comment.rb similarity index 79% rename from spree_comments/app/models/spree/comment.rb rename to spree_theme/app/models/spree/comment.rb index 34d1cb5f..0063b55e 100644 --- a/spree_comments/app/models/spree/comment.rb +++ b/spree_theme/app/models/spree/comment.rb @@ -4,7 +4,7 @@ class Spree::Comment < ActiveRecord::Base belongs_to :commentable, :polymorphic => true belongs_to :comment_type - default_scope :order => 'created_at ASC' + default_scope { order( 'created_at ASC' ) } # NOTE: install the acts_as_votable plugin if you # want user to vote on the quality of comments. @@ -15,8 +15,8 @@ class Spree::Comment < ActiveRecord::Base #attr_accessible :commentable_id, :commentable_type, :user_id, :comment_type_id, :comment, :cellphone, :email - # for translations, for each commentable object, title could be different - def comment_scope - commentable.class.name.demodulize.underscore - end + # for translations, for each commentable object, title could be different + #def comment_scope + # commentable.class.name.demodulize.underscore + #end end diff --git a/spree_comments/app/models/spree/comment_type.rb b/spree_theme/app/models/spree/comment_type.rb similarity index 100% rename from spree_comments/app/models/spree/comment_type.rb rename to spree_theme/app/models/spree/comment_type.rb diff --git a/spree_theme/app/models/spree/context/base.rb b/spree_theme/app/models/spree/context/base.rb index a533c454..1baee729 100644 --- a/spree_theme/app/models/spree/context/base.rb +++ b/spree_theme/app/models/spree/context/base.rb @@ -15,10 +15,11 @@ module Base #:gpv_product=>[:product_images,:product_options], #:gpv_group=>[:group_products,:group_images], #:group_products=>[:product_images,:product_options], - :this_product=>[] + :this_product=>[], + :post=>[] #keys should inclde all data_sources, test required. } - DataSourceEnum = Struct.new(:gpvs, :this_product, :taxon, :blog, :post, :gpvs_theme )[:gpvs, :this_product, :taxon, :blog, :post, :gpvs_theme] + DataSourceEnum = Struct.new(:gpvs, :this_product, :taxon, :blog, :post,:previous_post,:next_post, :gpvs_theme )[:gpvs, :this_product, :taxon, :blog, :post,:previous_post, :next_post, :gpvs_theme] DataSourceEmpty = :"" def context_either? diff --git a/spree_theme/app/models/spree/context/taxon.rb b/spree_theme/app/models/spree/context/taxon.rb index e2252dcd..628c40ed 100644 --- a/spree_theme/app/models/spree/context/taxon.rb +++ b/spree_theme/app/models/spree/context/taxon.rb @@ -3,13 +3,13 @@ module Context module Taxon extend ActiveSupport::Concern include Spree::Context::Base - + included do class_attribute :request_fullpath cattr_accessor :context_routes #(:either, :list,:detail,:cart,:account,:checkout, :thanks,:signup,:login) - self.context_routes = { + self.context_routes = { ContextEnum.home =>"/", ContextEnum.account =>"/account", ContextEnum.logout =>"/logout", @@ -20,17 +20,53 @@ module Taxon ContextEnum.either =>"/" #default_taxon for context :either is home } scope :homes, ->{ where(:page_context=> 1 )} - #FIXME what if home is not assigned to theme? + #FIXME what if home is not assigned to theme? def self.home homes.first end - + + # context is symbol + def self.get_route_by_context( some_context ) + context_routes[ some_context ] || context_routes[ ContextEnum.either ] + end + + # page context is integer + def self.get_route_by_page_context( page_context ) + #convert to symbol context first + get_route_by_context( get_context_by_page_context( page_context ) ) + end + + def self.get_context_by_page_context( target_page_context ) + case target_page_context + when 1 #home + ContextEnum.home + when 2 #cart + ContextEnum.cart + when 3 #checkout + ContextEnum.checkout + when 4 #thanks + ContextEnum.thanks + when 5 #signup + ContextEnum.signup + when 6 #login + ContextEnum.login + when 7 #accout + ContextEnum.account + when 8 + ContextEnum.blog + else + ContextEnum.list + end + end + def path - # menu.id would be nil if it is class DefaultTaxon - context_routes[current_context] || "/#{self.id.to_i}-#{self.permalink.split('/').last}" + # consider extra_html_attributes first + + # self.id, self.permalink would be nil if it is class DefaultTaxon + self.extra_html_attributes.try(:[],:href) || context_routes[current_context] || "/#{self.id.to_i}-#{self.permalink.to_s.split('/').last}" end end - + # context of default taxon vary in request_fullpath # ex. /cart context is cart # /user context is account @@ -41,30 +77,30 @@ def current_context if request_fullpath.present? #for current page, request_fullpath is present @context_context = get_context_by_full_path( request_fullpath ) end - - if @context_context.nil? + + if @context_context.nil? target_page_context = ( self.page_context>0 ? self.page_context : inherited_page_context ) - @context_context = get_context_by_page_context( target_page_context ) + @context_context = self.class.get_context_by_page_context( target_page_context ) end @context_context end - + def context_either? current_context ==ContextEnum.either end - + #is it a home page? - def page_home? + def home? page_context == 1 end - - #support feature + + #support feature def inherited_page_context root.page_context #return page_context if root? #ancestors.map(&:page_context).select{|i| i>0 }.last || 0 end - + def get_context_by_full_path( full_path ) case full_path when /^\/\d[^\/]*\/\d[^\/]*/ #"/3-bags/1-ruby-on-rails-tote" @@ -73,12 +109,12 @@ def get_context_by_full_path( full_path ) ContextEnum.cart when /^\/user/ ContextEnum.account - when /^\/password/ + when /^\/password/ ContextEnum.password - when /^\/account/,/users\/[\d]+\/edit/ #users/2/edit - ContextEnum.account + when /^\/account/,/users\/[\d]+\/edit/ #users/2/edit + ContextEnum.account when /^\/login/, /^\/checkout\/registration/ - ContextEnum.login + ContextEnum.login when /^\/signup/ ContextEnum.signup when /^\/checkout/ @@ -91,10 +127,10 @@ def get_context_by_full_path( full_path ) ContextEnum.post when /^\/logout/ ContextEnum.logout - when '/',/^\/\?/, /^\/template_themes/ + when '/',/^\/\?/, /^\/template_themes/, /^\/preview/ ContextEnum.home else - # it could be blog or list + # it could be blog or list nil # we can not identify it just from path end end @@ -102,30 +138,8 @@ def get_context_by_full_path( full_path ) PageContextEnum = Struct.new(:list, :home, :cart, :account, :signup, :login, :blog)[0, 1, 2, 7, 5, 6, 8] PageContextForFirstSiteEnum = Struct.new(:new_site)[20] - def get_context_by_page_context( target_page_context ) - case target_page_context - when 1 #home - ContextEnum.home - when 2 #cart - ContextEnum.cart - when 3 #checkout - ContextEnum.checkout - when 4 #thanks - ContextEnum.thanks - when 5 #signup - ContextEnum.signup - when 6 #login - ContextEnum.login - when 7 #accout - ContextEnum.account - when 8 - ContextEnum.blog - else - ContextEnum.list - end - end + end end - + end - \ No newline at end of file diff --git a/spree_theme/app/models/spree/decorators/commentable_decorator.rb b/spree_theme/app/models/spree/decorators/commentable_decorator.rb new file mode 100644 index 00000000..37f4d056 --- /dev/null +++ b/spree_theme/app/models/spree/decorators/commentable_decorator.rb @@ -0,0 +1,15 @@ +Spree::Order.class_eval do + acts_as_commentable +end + +Spree::Shipment.class_eval do + acts_as_commentable +end + +Spree::TemplateTheme.class_eval do + acts_as_commentable +end + +SpreeTheme.site_class.class_eval do + acts_as_commentable +end diff --git a/spree_theme/app/models/spree/decorators/designable_store_decorator.rb b/spree_theme/app/models/spree/decorators/designable_store_decorator.rb new file mode 100644 index 00000000..b262942e --- /dev/null +++ b/spree_theme/app/models/spree/decorators/designable_store_decorator.rb @@ -0,0 +1,34 @@ +Spree::Store.class_eval do + # a template_theme belong to store now. + # get themplate_themes belongs to designable store, TemplateTheme.foreign + scope :designable, ->{ where( designable: true )} + belongs_to :template_theme, :foreign_key=>"theme_id" + has_many :template_themes + has_many :template_themes, :dependent=>:destroy + belongs_to :home_page, :foreign_key=>'index_page_id', :class_name=>'Taxon' + + + # shop's resource should be in this folder + def self.document_root + File.join(Rails.root,'public') + end + + def layout + self.template_theme.present? ? self.template_theme.layout_path : nil + end + + # apply theme to site + # params - theme_or_release, TemplateTheme or TemplateRelease + def apply_theme( theme ) + self.theme_id= theme.id + save! + end + + def document_path + self.class.document_root + self.path + end + + def path + File.join( File::SEPARATOR + 'shops', Rails.env, self.site_id.to_s ) + end +end diff --git a/spree_theme/app/models/spree/decorators/devise_multi_login_decorator.rb b/spree_theme/app/models/spree/decorators/devise_multi_login_decorator.rb new file mode 100644 index 00000000..3b1f1771 --- /dev/null +++ b/spree_theme/app/models/spree/decorators/devise_multi_login_decorator.rb @@ -0,0 +1,31 @@ +#https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-sign-in-using-their-username-or-email-address +Spree::User.class_eval do + devise :authentication_keys=> [ :login ] + # Virtual attribute for authenticating by either username or email + # This is in addition to a real persisted field like 'username' + attr_accessor :login + + validates_format_of :cellphone, with: /\A0?(13\d|14[5,7]|15[0-3,5-9]|17[0,6-8]|18\d)\d{8}\z/, allow_blank: true + + def self.find_for_database_authentication(warden_conditions) + conditions = warden_conditions.dup + if login = conditions.delete(:login) + where(conditions.to_hash).where(["cellphone = :value OR email = :value", { :value => login.downcase }]).first + else + conditions[:email].downcase! if conditions[:email] + where(conditions.to_hash).first + end + end + + def login + @login || ( login_by_email? ? self.email : self.cellphone ) + end + + def login_by_email? + self.email.present? + end + + def email_required? + login_by_email? + end +end diff --git a/spree_theme/app/models/spree/decorators/option_value_decorator.rb b/spree_theme/app/models/spree/decorators/option_value_decorator.rb index 9408386d..cf6f0f78 100644 --- a/spree_theme/app/models/spree/decorators/option_value_decorator.rb +++ b/spree_theme/app/models/spree/decorators/option_value_decorator.rb @@ -2,11 +2,11 @@ has_one :image, as: :viewable, dependent: :destroy, class_name: "Spree::Image" accepts_nested_attributes_for :image # for unknown reason accepts_nested_attributes_for do not enable image_attributes - #attr_accessible :image_attributes - scope :for_product, lambda { |product| select("DISTINCT #{table_name}.*").where("spree_option_values_variants.variant_id IN (?)", product.variant_ids).joins(:variants) } - + #attr_accessible :image_attributes + scope :for_product, ->(product) { select("DISTINCT #{table_name}.*").where("spree_option_values_variants.variant_id IN (?)", product.variant_ids).joins(:variants) } + before_save :set_viewable - + private def set_viewable if image.present? @@ -15,55 +15,3 @@ def set_viewable end end end - - -Spree::Product.class_eval do - - def option_values - @_option_values ||= Spree::OptionValue.for_product(self).order(:position).sort_by {|ov| ov.option_type.position } - end - - def grouped_option_values - @_grouped_option_values ||= option_values.group_by(&:option_type) - end - - def variants_for_option_value(value) - @_variant_option_values ||= variants.includes(:option_values).all - @_variant_option_values.select { |i| i.option_value_ids.include?(value.id) } - end - - # return { option_id=>{ option_value_id=>{ variant_id=>variant } } } - # - def variant_options_hash - return @_variant_options_hash if @_variant_options_hash - hash = {} - variants.includes(:option_values).each do |variant| - variant.option_values.each do |ov| - otid = ov.option_type_id.to_s - ovid = ov.id.to_s - hash[otid] ||= {} - hash[otid][ovid] ||= {} - hash[otid][ovid][variant.id.to_s] = variant.to_hash - end - end - @_variant_options_hash = hash - end -end - - -Spree::Variant.class_eval do - - include ActionView::Helpers::NumberHelper - - #attr_accessible :option_values - - def to_hash - #actual_price += Calculator::Vat.calculate_tax_on(self) if Spree::Config[:show_price_inc_vat] - { - :id => self.id, - :count => self.total_on_hand, - :price => self.display_price - } - end - -end \ No newline at end of file diff --git a/spree_theme/app/models/spree/decorators/product_decorator.rb b/spree_theme/app/models/spree/decorators/product_decorator.rb new file mode 100644 index 00000000..a70ac677 --- /dev/null +++ b/spree_theme/app/models/spree/decorators/product_decorator.rb @@ -0,0 +1,46 @@ +Spree::Product.class_eval do + + def option_values + @_option_values ||= Spree::OptionValue.for_product(self).order(:position).sort_by {|ov| ov.option_type.position } + end + + def grouped_option_values + @_grouped_option_values ||= option_values.group_by(&:option_type) + end + + def variants_for_option_value(value) + @_variant_option_values ||= variants.includes(:option_values).all + @_variant_option_values.select { |i| i.option_value_ids.include?(value.id) } + end + + # return { option_id=>{ option_value_id=>{ variant_id=>variant } } } + # + def variant_options_hash + return @_variant_options_hash if @_variant_options_hash + hash = {} + variants.includes(:option_values).each do |variant| + variant.option_values.each do |ov| + otid = ov.option_type_id.to_s + ovid = ov.id.to_s + hash[otid] ||= {} + hash[otid][ovid] ||= {} + hash[otid][ovid][variant.id.to_s] = variant.to_hash + end + end + @_variant_options_hash = hash + end + + # fix slug + # Try building a slug based on the following fields in increasing order of specificity. + def slug_candidates + [ + :name_to_url, + [:name_to_url, :sku] + ] + end + + def name_to_url + name.to_s.to_url + end + +end diff --git a/spree_theme/app/models/spree/decorators/taxon_decorator.rb b/spree_theme/app/models/spree/decorators/taxon_decorator.rb index 0390ddd0..ad76f806 100644 --- a/spree_theme/app/models/spree/decorators/taxon_decorator.rb +++ b/spree_theme/app/models/spree/decorators/taxon_decorator.rb @@ -1,81 +1,39 @@ SpreeTheme.taxon_class.class_eval do include Spree::Context::Taxon - include Spree::AssignedResource::SourceInterface before_destroy :remove_from_theme + before_validation :set_default_values #for resource_class.resourceful scope :resourceful,->(theme){ roots } - - belongs_to :replacer, class_name: 'Spree::Taxon', foreign_key: 'replaced_by' + + belongs_to :replacer, class_name: 'Spree::Taxon', foreign_key: 'replaced_by' serialize :html_attributes, Hash #attr_accessible :page_context, :replaced_by, :is_clickable alias_attribute :extra_html_attributes, :html_attributes - + + def summary( truncate_at=100) + #copy from Action View Sanitize Helpers + HTML::FullSanitizer.new.sanitize( description || '' ).truncate( truncate_at ) + end + def remove_from_theme Spree::TemplateTheme.native.each{|theme| - theme.unassign_resource_from_theme! self + theme.unassign_resource_from_theme! self } end - - # it is resource of template_theme - def importable? - root? - end - - # taxon is from other site - def self.find_or_copy( taxon ) - raise "only support taxon root" unless taxon.root? - - existing_taxon = roots.find_by_permalink( taxon.permalink ) - if existing_taxon.blank? - cloned_branch = taxon.clone_branch( ) - cloned_branch.save! - end - existing_taxon||cloned_branch + + + #strange, Mysql2::Error: Column 'page_context' cannot be null: UPDATE `spree_taxons` SET `html_attributes` = '--- {}\n', `page_context` = NULL, `replaced_by` = 491, `updated_at` = '2015-04-08 12:51:34' WHERE `spree_taxons`.`id` = 460 + #"taxon"=>{"name"=>"新闻中心", "replaced_by"=>"491", "page_context"=>"", "is_clickable"=>"1", "description"=>"", "meta_title"=>"", "meta_description"=>"", "meta_keywords"=>""}, + # so set page_context 0 here if it is empty? + def set_default_values + self.page_context = 0 if page_context.blank? + self.replaced_by = 0 if replaced_by.blank? end - - #copy self into current site - def clone_branch( ) - #raise "only copy taxon from design site" unless taxon.site.design? - #raise "taxon exists in current site" if self.class.exists(:permalink=>self.permalink) - cloned_branch = nil - self.site.tap{|site| - original_current_site = Spree::Site.current - Spree::Site.current = site - #copy from http://stackoverflow.com/questions/866528/how-to-best-copy-clone-an-entire-nested-set-from-a-root-element-down-with-new-tr - new_taxonomy = self.taxonomy.dup - # should not save new_taxonomy here, or new_taxonomy.root.site_id is not current site id - h = { self => self.dup } #we start at the root - ordered = self.descendants - #clone subitems - ordered.each do |item| - h[item] = item.dup - end - #resolve relations - ordered.each do |item| - cloned = h[item] - item_parent = h[item.parent] - item_parent.children << cloned if item_parent - # handle icon - end - h.values.each{|cloned| - cloned.site = original_current_site - cloned.taxonomy = new_taxonomy - } - new_taxonomy.site = original_current_site - new_taxonomy.root = h[self] - cloned_branch = h[self] - Spree::Site.current = original_current_site - } - cloned_branch - end - - #deep dup, include icon - def dup - original_dup = super - original_dup.icon = self.icon - original_dup - end -end + def stylish_with_inherited + return self.stylish if self.stylish>0 + return root.stylish + end +end diff --git a/spree_theme/app/models/spree/decorators/user_terminal_decorator.rb b/spree_theme/app/models/spree/decorators/user_terminal_decorator.rb new file mode 100644 index 00000000..15504c77 --- /dev/null +++ b/spree_theme/app/models/spree/decorators/user_terminal_decorator.rb @@ -0,0 +1,32 @@ +Spree::PaymentMethod.class_eval do + belongs_to :user_terminal +end + +Spree::TemplateTheme.class_eval do + belongs_to :user_terminal +end + +Spree::Order.class_eval do + belongs_to :user_terminal + + # make it longer, alipay out_trade_no should unique + # ORDER_NUMBER_LENGTH = 16 + # ORDER_NUMBER_LETTERS = false + # ORDER_NUMBER_PREFIX = 'R' + + def associate_terminal!( user_terminal ) + self.user_terminal = user_terminal + attrs_to_set = { user_terminal_id: user_terminal.id } + assign_attributes(attrs_to_set) + + if persisted? + # immediately persist the changes we just made, but don't use save since we might have an invalid address associated + self.class.unscoped.where(id: id).update_all(attrs_to_set) + end + end + + def available_payment_methods + #@available_payment_methods ||= (PaymentMethod.available(:front_end) + PaymentMethod.available(:both)).uniq + @available_payment_methods ||= (Spree::PaymentMethod.available(:front_end) + Spree::PaymentMethod.available(:both)).uniq.select{|payment_method| payment_method.user_terminal == self.user_terminal } + end +end diff --git a/spree_theme/app/models/spree/decorators/variant_decorator.rb b/spree_theme/app/models/spree/decorators/variant_decorator.rb new file mode 100644 index 00000000..e8bfe0bf --- /dev/null +++ b/spree_theme/app/models/spree/decorators/variant_decorator.rb @@ -0,0 +1,16 @@ +Spree::Variant.class_eval do + + #include ActionView::Helpers::NumberHelper + + #attr_accessible :option_values + + def to_hash + #actual_price += Calculator::Vat.calculate_tax_on(self) if Spree::Config[:show_price_inc_vat] + { + :id => self.id, + :count => self.total_on_hand, + :price => self.display_price + } + end + +end diff --git a/spree_theme/app/models/spree/fake_website.rb b/spree_theme/app/models/spree/fake_website.rb index c865d95a..44180167 100644 --- a/spree_theme/app/models/spree/fake_website.rb +++ b/spree_theme/app/models/spree/fake_website.rb @@ -1,12 +1,34 @@ module Spree - #it has to be in module Spree, website.template_theme require it. - class FakeWebsite < ActiveRecord::Base + #since spree support multi store, FakeWebsite respresent store now. + #it has to be in module Spree, website.template_theme require it. + class FakeWebsite < ActiveRecord::Base include SpreeTheme::SiteHelper before_validation :set_short_name + has_many :stores + class << self + def current + # if Thread.current[:spree_site].nil? + # website = self.find_or_initialize_by_domain_and_name('design.dalianshops.com','DalianShops Design Site' ) + # #or Rails.env.development? + # if website.new_record? + # website.id = 2 + # website.theme_id = 1 + # website.save! + # end + # Thread.current[:spree_site] = website + # end + Thread.current[:spree_site] + end + + def current=(some_site) + ::Thread.current[:spree_site] = some_site + end + end + def set_short_name self.short_name = self.name.to_url end end -end \ No newline at end of file +end diff --git a/spree_theme/app/models/spree/html_attribute.rb b/spree_theme/app/models/spree/html_attribute.rb index 98c8c2c1..19d7f6b8 100644 --- a/spree_theme/app/models/spree/html_attribute.rb +++ b/spree_theme/app/models/spree/html_attribute.rb @@ -2,18 +2,17 @@ module Spree # assume html_attribute could has only one manual selected value, position always is last class HtmlAttribute < ActiveRecord::Base extend FriendlyId + friendly_id :title, :use => :slugged + BOOL_TRUE='1' BOOL_FALSE='0' - + cattr_accessor :psv_for_manual_entry_enum, :unit_collection, :special_enum # slug db,bool,text,src pvalue are special #possible selected value for manual entry - self.psv_for_manual_entry_enum = {:href=>'0u', :bool=>'0b', :text=>'0t', :size=>'l1', :color=>'0c', :src=>'0i',:db=>'0d', :image=>'0i'} + self.psv_for_manual_entry_enum = {:href=>'0u', :bool=>'0b', :text=>'0t', :size=>'l1', :color=>'0c', :src=>'0i',:db=>'0d', :image=>'0i', :opacity=>'l0'} self.unit_collection = {:l=>['px','em']} - - friendly_id :title, :use => :slugged - - + @@html_attribute_hash = nil def self.all_to_hash if @@html_attribute_hash.nil? @@ -22,64 +21,64 @@ def self.all_to_hash end @@html_attribute_hash end - + def self.find_by_ids(html_attribute_ids) (html_attribute_ids.kind_of? ::Array) ? all_to_hash.values_at(*html_attribute_ids) : all_to_hash.fetch(html_attribute_ids) end - - def self.[](key) - all_hash = self.all_to_hash - val = psv_for_manual_entry_enum[key] - all_hash[val.to_s] - end - + + #def self.[](key) + # all_hash = self.all_to_hash + # val = psv_for_manual_entry_enum[key] + # all_hash[val.to_s] + #end + #keys are db, bool, text, src, color #key should only be symbol def is_special?(key) - selected_value?(self.class.psv_for_manual_entry_enum[key.to_sym]) + selected_value?(self.class.psv_for_manual_entry_enum[key.to_sym]) end - + def repeats - (self.pvspecial.size>0 and self.pvspecial.size<=4) ? self.pvspecial.size : 1 + (self.pvspecial.size>0 && self.pvspecial.size<=4) ? self.pvspecial.size : 1 end - + # each i of repeats have its own possible selected values. def possible_selected_values(irepeat = 0) - + if @possible_selected_values.nil? psv = self.pvalues.split(',') psv_for_repeats= [] self.repeats.times{|i| - if self.pvalues.include?('|') + if self.pvalues.include?('|') # 'background-position', 'left|top,center|center,right|bottom,l1|l1', 'Left|top,Center|center,Right|bottom,L1|l1' - psv_for_repeats << psv.collect{|v| v.split('|')[i]} - + psv_for_repeats << psv.collect{|v| v.split('|')[i]} + else - psv_for_repeats<=0 end - + def default_possible_selected_value(repeat=0) if has_default_value? possible_selected_values[self.default_value] end end - + #return default manual value and unit - def default_manual_value(repeat=0) + def default_manual_value(repeat=0) case manual_selected_value when psv_for_manual_entry_enum[:color] ["#000000",''] @@ -146,11 +145,13 @@ def default_manual_value(repeat=0) [0,'px'] when psv_for_manual_entry_enum[:bool] [0,''] + when psv_for_manual_entry_enum[:opacity] + [1,''] else ['',''] end end - + def default_properties if @default_properties.nil? @default_properties = {} @@ -166,4 +167,4 @@ def default_properties @default_properties end end -end \ No newline at end of file +end diff --git a/spree_theme/app/models/spree/html_attribute_value.rb b/spree_theme/app/models/spree/html_attribute_value.rb index a36e656c..d6ceebe4 100644 --- a/spree_theme/app/models/spree/html_attribute_value.rb +++ b/spree_theme/app/models/spree/html_attribute_value.rb @@ -1,29 +1,29 @@ -module Spree - class HtmlAttributeValue +module Spree + class HtmlAttributeValue attr_accessor :html_attribute, :param_value attr_accessor :properties #hash {pvalue0, psvalue0, unit0, psvalue0_desc, unset, computed} - + delegate :default_properties, :to=>:html_attribute # create an instance from a string it is param_value.pvalue[html_attribute_id] - # create an instance from hash {pvalue0, psvalue0, unit0} + # create an instance from hash {pvalue0, psvalue0, unit0} # params: computed, html_attribute_id is in section_piece_param.computed_ha_ids. - def self.parse_from(param_value, html_attribute, pvalue_properties={}, computed = false) - + def self.parse_from(param_value, html_attribute, pvalue_properties={}, media_width = 0) + if pvalue_properties.empty? #pvalue_string could be nil, in this case, get default_pvalue_string? - pvalue_properties = do_parse(param_value, html_attribute) + pvalue_properties = do_parse(param_value, html_attribute, media_width) else # build htmlAttributeValue instane from postd params, we need check "unset" param, set to false if it is nil. # tidy posted pvalue_properties, only keep valid values. html_attribute.repeats.times{|i| psvalue = pvalue_properties["psvalue#{i}"] - if html_attribute.manual_entry?( psvalue ) + if html_attribute.manual_entry?( psvalue ) if pvalue_properties["pvalue#{i}"].blank? #user select manual_entry, but have not entry any value pvalue_properties["pvalue#{i}"], pvalue_properties["unit#{i}"] = html_attribute.default_manual_value - end + end #else - # pvalue_properties.except!(["pvalue#{i}","unit#{i}"]) + # pvalue_properties.except!(["pvalue#{i}","unit#{i}"]) end } # if unset is uncheck, 'unset' is nil in posted params. @@ -31,7 +31,7 @@ def self.parse_from(param_value, html_attribute, pvalue_properties={}, computed pvalue_properties["unset"] = HtmlAttribute::BOOL_FALSE end end - + # default unset is checked if pvalue_properties["unset"].nil? pvalue_properties["unset"] = HtmlAttribute::BOOL_TRUE @@ -39,37 +39,37 @@ def self.parse_from(param_value, html_attribute, pvalue_properties={}, computed if pvalue_properties["hidden"].nil? pvalue_properties["hidden"] = HtmlAttribute::BOOL_FALSE end - # is computed value store in param_value.pvalue, true or false, + # is computed value store in param_value.pvalue, true or false, if pvalue_properties["computed"].nil? pvalue_properties["computed"] = HtmlAttribute::BOOL_FALSE end - + return ultra_initialize(param_value, html_attribute, pvalue_properties) end - + #every html_attribute_value, should have defalut value, or pvalue is nil after unset - def self.do_parse(param_value, html_attribute) - #use html attribute value in param_value.pvalue + def self.do_parse(param_value, html_attribute, media_width) + #use html attribute value in param_value.pvalue pvalue_string = param_value.pvalue_for_haid(html_attribute.id) - pvalue_unset = param_value.html_attribute_extra(html_attribute.id,'unset') - pvalue_hidden = param_value.html_attribute_extra(html_attribute.id,'hidden') - pvalue_computed = param_value.html_attribute_extra(html_attribute.id,'computed') - + pvalue_unset = param_value.html_attribute_extra(html_attribute.id,'unset') + pvalue_hidden = param_value.html_attribute_extra(html_attribute.id,'hidden') + pvalue_computed = param_value.html_attribute_extra(html_attribute.id,'computed') + object_properties = {"unset"=>pvalue_unset, "hidden"=>pvalue_hidden, "computed"=>pvalue_computed} - param_value_class = param_value.section_param.section_piece_param.pclass + #param_value_class = param_value.section_param.section_piece_param.pclass if html_attribute.is_special? :text object_properties["psvalue0"] = html_attribute.possible_selected_values.first object_properties["pvalue0"] = pvalue_string elsif html_attribute.is_special? :bool object_properties["psvalue0"] = html_attribute.possible_selected_values.first - object_properties["pvalue0"] = pvalue_string + object_properties["pvalue0"] = pvalue_string elsif html_attribute.is_special? :db object_properties["psvalue0"] = html_attribute.possible_selected_values.first object_properties["pvalue0"] = pvalue_string.to_i else # css and pvalue_string - if pvalue_string.present? + if pvalue_string.present? html_attribute_slug, vals = pvalue_string.split(':') - # 'width:'.split(':') -> ['width'], in this case vals is nil, + # 'width:'.split(':') -> ['width'], in this case vals is nil, # it happened while user select a manul entry and have not enter anything. we should show the empty entry. repeats = html_attribute.repeats val_arr = vals.nil? ? [] : vals.split() @@ -78,7 +78,7 @@ def self.do_parse(param_value, html_attribute) if val.nil? # handle short value. padding:5px; or margin: 5px 5px; # 0,1,2,3 # t,r,b,l 3%2=1, 2%2=0, 1%2=1 - val||= val_arr[i%2] + val||= val_arr[i%2] val||= val_arr[0] end if html_attribute.selected_value?(val) @@ -88,16 +88,16 @@ def self.do_parse(param_value, html_attribute) if html_attribute.is_special?(:color) #border-color has unit hex|rgb object_properties["pvalue#{i}"] = val if html_attribute.has_unit? - object_properties["unit#{i}"] = (val=~/^#/ ? html_attribute.units.first : html_attribute.units.last) + object_properties["unit#{i}"] = (val=~/^#/ ? html_attribute.units.first : html_attribute.units.last) end elsif html_attribute.has_unit? - object_properties["pvalue#{i}"],object_properties["unit#{i}"] = (val.to_i == val.to_f ? val.to_i : val.to_f),val[/[a-z%]+$/] + object_properties["pvalue#{i}"],object_properties["unit#{i}"] = (val.to_i == val.to_f ? val.to_i : val.to_f),val[/[a-z%]+$/] else object_properties["pvalue#{i}"] = val end end } - + elsif html_attribute.has_default_value? object_properties.merge!( html_attribute.default_properties ) end @@ -105,7 +105,7 @@ def self.do_parse(param_value, html_attribute) #Rails.logger.debug "param_value:#{param_value.id}, html_attribute=#{html_attribute.slug},pvalue_string=#{pvalue_string.inspect}, pclass=#{param_value_class},properties=#{object_properties.inspect}" object_properties end - + def self.build_pvalue_from_properties(param_value, html_attribute, pvalue_properties) #use overrided value in pvalue_properties pvalue_string = nil @@ -114,85 +114,86 @@ def self.build_pvalue_from_properties(param_value, html_attribute, pvalue_proper elsif html_attribute.is_special? :bool pvalue_string = pvalue_properties["pvalue0"] elsif html_attribute.is_special? :db - pvalue_string = pvalue_properties["pvalue0"] - elsif html_attribute.is_special? :image - #background-image is special, + pvalue_string = pvalue_properties["pvalue0"] + elsif html_attribute.is_special? :image + #background-image is special, # for param_value: format is css_name:file_name; in this way, editor is easy to parse and render - # for css: format is css_name:url(file_url); - pvalue_string = html_attribute.css_name+':'+ ( html_attribute.manual_entry?(pvalue_properties["psvalue0"]) ? "#{pvalue_properties["pvalue0"]}" : pvalue_properties["psvalue0"] ) + # for css: format is css_name:url(file_url); + pvalue_string = html_attribute.css_name+':'+ ( html_attribute.manual_entry?(pvalue_properties["psvalue0"]) ? "#{pvalue_properties["pvalue0"]}" : pvalue_properties["psvalue0"] ) else - pvalue_string = html_attribute.css_name+':'+ build_css_property_value( html_attribute, pvalue_properties ) + pvalue_string = html_attribute.css_name+':'+ build_css_property_value( html_attribute, pvalue_properties, param_value ) end pvalue_string end - - def self.build_css_property_value( html_attribute, pvalue_properties ) + + def self.build_css_property_value( html_attribute, pvalue_properties, param_value ) val = '' if html_attribute.is_special?(:image) if html_attribute.manual_entry?(pvalue_properties["psvalue0"]) - file = TemplateFile.find_by_attachment_file_name( pvalue_properties["pvalue0"] ) + file = TemplateFile.find_by( theme_id: param_value.theme_id, attachment_file_name: pvalue_properties["pvalue0"] ) if file.present? val = "url(#{file.attachment.url})" end else val = pvalue_properties["psvalue0"] - end + end else val = html_attribute.repeats.times.collect{|i| if html_attribute.is_special? :color #no need unit for color - html_attribute.manual_entry?(pvalue_properties["psvalue#{i}"]) ? - "#{pvalue_properties["pvalue#{i}"]}" : pvalue_properties["psvalue#{i}"] + html_attribute.manual_entry?(pvalue_properties["psvalue#{i}"]) ? + "#{pvalue_properties["pvalue#{i}"]}" : pvalue_properties["psvalue#{i}"] else - html_attribute.manual_entry?(pvalue_properties["psvalue#{i}"]) ? - "#{pvalue_properties["pvalue#{i}"]}#{pvalue_properties["unit#{i}"]}" : pvalue_properties["psvalue#{i}"] + html_attribute.manual_entry?(pvalue_properties["psvalue#{i}"]) ? + "#{pvalue_properties["pvalue#{i}"]}#{pvalue_properties["unit#{i}"]}" : pvalue_properties["psvalue#{i}"] end }.join(' ') end val end - + def self.ultra_initialize(param_value, html_attribute, properties) hav = HtmlAttributeValue.new hav.html_attribute = html_attribute hav.param_value = param_value - hav.properties = properties + hav.properties = properties hav end - - + + # param: properties to string {'pvalue0'=>'90','unit0'=>'px'} -> 'wdith:90px' def build_pvalue(default=false) - + return default ? self.class.build_pvalue_from_properties(param_value, html_attribute, html_attribute.default_properties) : self.class.build_pvalue_from_properties(param_value, html_attribute, properties) end - + def equal_to?(another_instance) - return ((self.html_attribute.id==another_instance.html_attribute.id) and - (self.hidden? == another_instance.hidden?) and - ((self.unset? and another_instance.unset?) or - ((self.unset? == another_instance.unset?) and (self.build_pvalue ==another_instance.build_pvalue) ))) + return ((self.html_attribute.id==another_instance.html_attribute.id) and + (self.hidden? == another_instance.hidden?) and + ((self.unset? and another_instance.unset?) or + ((self.unset? == another_instance.unset?) and (self.build_pvalue ==another_instance.build_pvalue) ))) end - - # get pvalue, psvalue, unit, unset + + # get pvalue, psvalue, unit, unset # if the reperts==1 key are pvalue, psvalue, unit,unset - # if the reperts>1 hav[pvalue{n}],hav[psvalue{n}], hav[unit{n}] ,n start from 0 + # if the reperts>1 hav[pvalue{n}],hav[psvalue{n}], hav[unit{n}] ,n start from 0 def [](key) - + #return properties[key] if key=~/unset/ # pvalue and pvalue0 both return pvalue0 - key=~/[\d]$/ ? properties[key] : properties[key+'0'] - + key=~/[\d]$/ ? properties[key] : properties[key+'0'] + end - - # set pvalue, psvalue, unit, unset + + # set pvalue, psvalue, unit, unset # if the reperts==1 key are pvalue, psvalue, unit,unset - # if the reperts>1 key are pvalue{n}, psvalue{n}, n start from 0 + # if the reperts>1 key are pvalue{n}, psvalue{n}, n start from 0 + # ex. ['pvalue'] = '500px' def []=(key,val) #unset or bool like this way - if val.kind_of?(TrueClass) or val.kind_of?(FalseClass) + if val.kind_of?(TrueClass) || val.kind_of?(FalseClass) val = val ? HtmlAttribute::BOOL_TRUE : HtmlAttribute::BOOL_FALSE - end + end if key=~/unset/ properties[key] = val #it has default value at least while initialize! @@ -203,7 +204,7 @@ def []=(key,val) else self.html_attribute.repeats.times{|i| properties[key+i.to_s] = val - } + } end if key=~/pvalue/ # in code we could set 'width=200' # correct psvalue and unit @@ -218,88 +219,90 @@ def []=(key,val) end end end - + # return pvalue with right type, db:int, bool:bool, text:string def pvalue( irepeat = 0) - casted_value = properties["pvalue#{irepeat}"] + casted_value = properties["pvalue#{irepeat}"] if html_attribute.computable? if unset? casted_value = 0 else casted_value = casted_value.to_i - end + end end casted_value end - + def unset return unset? ? HtmlAttribute::BOOL_TRUE : HtmlAttribute::BOOL_FALSE end - + def unset? return properties["unset"]!=HtmlAttribute::BOOL_FALSE end - + def hidden return hidden? ? HtmlAttribute::BOOL_TRUE : HtmlAttribute::BOOL_FALSE - end - + end + def hidden? return properties["hidden"]==HtmlAttribute::BOOL_TRUE end - + def bool_true? - self.properties['pvalue']==HtmlAttribute::BOOL_TRUE ? true:false + self.properties['pvalue']==HtmlAttribute::BOOL_TRUE ? true:false end - + def manual_entry?(irepeat=0) html_attribute.manual_entry?(properties["psvalue#{irepeat}"]) end - + def computed return properties["computed"] end - + def computed? return properties["computed"]==HtmlAttribute::BOOL_TRUE end - + #request url when pvalue|psvalue|unset changed - # event_enum :ps_changed| :psv_changed + # event_enum :ps_changed| :psv_changed def build_url_params(event_enum) - + { :editing_param_value_id=> param_value.id, :editing_html_attribute_id=>html_attribute.id, :param_value_event=>ParamValue::EventEnum[event_enum]} - + end - + begin 'css selector, name, value' - # from param_value page_layout_id, section_param.section_id, section_param.section_root_id, section_param.class_name get selector and prefix - def css_selector - target = self.param_value.section_param.section_piece_param.class_name + # from param_value page_layout_id, section_param.section_id, section_param.section_root_id, section_param.class_name get selector and prefix + def css_selector + target = attribute_class_name prefix = case target when /cell/ # s_cell or cell - ".s_#{self.param_value.page_layout_id}_#{self.param_value.section_param.section_root_id} td, .s_#{self.param_value.page_layout_id}_#{self.param_value.section_param.section_root_id} th" + ".s_#{self.param_value.page_layout_id}_#{self.param_value.section_param.section_root_id} td, .s_#{self.param_value.page_layout_id}_#{self.param_value.section_param.section_root_id} th" when /^s\_/ target = target[2..-1] ".s_#{self.param_value.page_layout_id}_#{self.param_value.section_param.section_root_id}" - when /page/ + when /page|sidr/ "#page" when 'content_layout','first_child','last_child' - ".c_#{self.param_value.page_layout_id}" - when /(label|input|img|button)/ # product_atc, product_quantity - ".s_#{self.param_value.page_layout_id}_#{self.param_value.section_param.section_root_id}" - when 'as_h','a_h','a','th','td','li' - ".s_#{self.param_value.page_layout_id}_#{self.param_value.section_param.section_id}" + ".c_#{self.param_value.page_layout_id}" + #when /(label|input|img|button|block)/ # product_atc, product_quantity, block_hover + # ".s_#{self.param_value.page_layout_id}_#{self.param_value.section_param.section_root_id}" + #when 'as_h','a_h','a','th','td','li' + # ".s_#{self.param_value.page_layout_id}_#{self.param_value.section_param.section_root_id}" else - ".s_#{self.param_value.page_layout_id}_#{self.param_value.section_param.section_id}" + ".s_#{self.param_value.page_layout_id}_#{self.param_value.section_param.section_root_id}" end - - # it has to apply to inner, for root, outer is body, it include editor panel, some css would affect it. + + # it has to apply to inner, for root, outer is body, it include editor panel, some css would affect it. selector = case target - when /content_layout/,/block/,/cell/,'page' - "" + when /content_layout/,'block','block_h',/cell/,'page' + "" + when /block_/ #block_hovered + ".#{target}" when /inner/ - "_#{target}" + "> .inner" when 'as_h','a_sel' #selected:hover, selected " a.selected" when 'a_una' # unavailable, unclickable @@ -307,14 +310,14 @@ def css_selector when 'a','a_h' " a" #when 'first_child','last_child' - # # it is not right way to center content, + # # it is not right way to center content, # # in html, we may add form to wrap each child, first-child do not work in this case. # # padding,margin is applied to inner, it also affect width of outer div # ":#{target[/[a-z]+/]} " when /\_h$/ #button_h " #{target.delete('_h')}" when 'error' #s_error - " label.error" + " label.error" when 'table','label','input','li','img','button','td','th','h6','dt','dd' # product quantity,atc section_piece content just input,add a wrap it. # product images content thumb and main images so here should be section_id, @@ -322,50 +325,29 @@ def css_selector else #noclick, selected " .#{target}" end -#Rails.logger.debug "css selector:#{prefix+selector}, #{attribute_name}:#{attribute_value}" +#Rails.logger.debug "css selector:#{prefix+selector}, #{attribute_name}:#{attribute_value}" prefix+selector - end - + end + def attribute_name self.html_attribute.css_name end + def attribute_value - target_properties = unset? ? default_properties : properties - self.class.build_css_property_value( self.html_attribute, target_properties ) + target_properties = unset? ? default_properties : properties + self.class.build_css_property_value( self.html_attribute, target_properties, self.param_value ) + end + + def attribute_class_name + self.param_value.section_param.section_piece_param.class_name end end - - # update param_value with self + + # update param_value with self def update() #Rails.logger.debug "yes, in HtmlAttributeValue.save" self.param_value.update_html_attribute_value(self.html_attribute, self.properties, 'system') end - - - - # possible selected values are website related, ex. menus. -=begin - def possible_selected_values - if @possible_selected_values.nil? - if html_attribute.is_special? :db - @possible_selected_values = html_attribute.possible_selected_values - else - @possible_selected_values = html_attribute.possible_selected_values - end - end - @possible_selected_values - end - def possible_selected_values_descriptions - if @possible_selected_values_descriptions.nil? - if html_attribute.is_special? :db - @possible_selected_values_descriptions = html_attribute.possible_selected_values_descriptions - #@possible_selected_values_descriptions+=(Menu.roots.collect{|menu| menu.title}) - else - @possible_selected_values_descriptions = html_attribute.possible_selected_values_descriptions - end - end - @possible_selected_values_descriptions - end -=end + end -end \ No newline at end of file +end diff --git a/spree_theme/app/models/spree/html_page.rb b/spree_theme/app/models/spree/html_page.rb index 0893b01d..193076f0 100644 --- a/spree_theme/app/models/spree/html_page.rb +++ b/spree_theme/app/models/spree/html_page.rb @@ -1,41 +1,41 @@ # a template, actually it is html + css + data # sometimes, we want to handle html+css. ex. edit template theme. - - # since page_layout tree is full html page, each page_layout node is a section instance, + + # since page_layout tree is full html page, each page_layout node is a section instance, # is piece of html, it has some param_values, some param_values relate to positioning. # ex. width, height, padding, margin, border. for coding convenient, we want quick accessor # to those html attribute from a page_layout, ex. page_layout.width, page_layout.height. # this HtmlAttributeAccessor just do this. - + # page_layout may has several template. so the right direction is template.one_page_layout.width - -module Spree + +module Spree class HtmlPage# it correspond to template - + attr_accessor :template - + def initialize( template ) self.template = template end - + def param_values # only get param_values of section.root - pvs = ParamValue.eager_load(section_param: :section_piece_param).where(["#{ParamValue.table_name}.theme_id=? and #{SectionParam.table_name}.section_root_id=#{SectionParam.table_name}.section_id", self.template.id]) + pvs = ParamValue.eager_load(section_param: :section_piece_param).where(["#{ParamValue.table_name}.theme_id=? and #{SectionParam.table_name}.section_root_id=#{SectionParam.table_name}.section_id", self.template.id]) end - + # disassemble template into partial_html def partial_htmls @partial_htmls =[] #get general param values for section instances - - page_layouts = self.template.page_layout.self_and_descendants + + page_layouts = self.template.page_layouts # class_name = [block, inner, page, layout] - pvs = self.param_values - + pvs = self.param_values + for page_layout in page_layouts pvs_for_layout = pvs.select{|pv| pv.page_layout_id==page_layout.id} parent_section_instance = @partial_htmls.select{|obj| obj.is_parent_of?(page_layout)}.first - new_section_instance =PartialHtml.new(self, page_layout, parent_section_instance, pvs_for_layout) + new_section_instance =PartialHtml.new(self, page_layout, parent_section_instance, pvs_for_layout) @partial_htmls << new_section_instance if parent_section_instance parent_section_instance.children << new_section_instance @@ -43,19 +43,19 @@ def partial_htmls end return @partial_htmls end - + class PartialHtml # it correspond to page_layout node GlobalParamValueEventEnum={"page_layout_fixed"=>10} SectionEventEnum = {:disabled_event=>1, :removed_event=>2} - + attr_accessor :html_page, :page_layout, :section, :param_values, :parent, :children attr_accessor :updated_html_attribute_values # keep unsaved html_attribute_values - - + + # a page_layout record, infact it is a setion instance. # # parent_section_instance, we need param values of parents of current section instance while handling event, ex. parent's width. - + def initialize(html_page, page_layout, parent_section_instance=nil, pvs=[]) self.page_layout = page_layout self.section = page_layout.section @@ -65,21 +65,21 @@ def initialize(html_page, page_layout, parent_section_instance=nil, pvs=[]) self.updated_html_attribute_values =[] #Rails.logger.debug "PartialHtml.initialize.param_values=#{pvs.inspect}" end - + def is_parent_of?( other_page_layout) self.page_layout.id == other_page_layout.parent_id end - + def children_hash if @children_hash.nil? - @children_hash = children.inject({}){|h, c| h[c.slug] = c;h;} + @children_hash = children.inject({}){|h, c| h[c.slug] = c;h;} end @children_hash end - + # set or get html_attribute_value by key. # key is section_param.class_name+html_attribute.slug. ex."block_width" - # new_attribute_values, instance of HtmlAttributeValue, + # new_attribute_values, instance of HtmlAttributeValue, def html_attribute_values(key) if @html_attribute_value_hash.nil? @html_attribute_value_hash = {} @@ -88,99 +88,100 @@ def html_attribute_values(key) pv.html_attribute_values_hash.values.each{|hav| unique_key = hav.computed? ? "computed_#{class_name}_#{hav.html_attribute.css_name}" : "#{class_name}_#{hav.html_attribute.css_name}" @html_attribute_value_hash[unique_key]=hav - } + } end end hav = @html_attribute_value_hash[key] end - begin "width, height, margin, padding, border only for computing" - # return: 0(self is fluid) or >0(real width) - def width - # it is root and fluid - return 0 if self.root? and !html_attribute_values("page_layout_fixed").bool_true? + begin "width, height, margin, padding, border only for computing" + # return: 0(self is fluid) or >0(real width) + def width + # it is root and fluid + return 0 if self.root? && html_attribute_values("page_width").unset? # it is root and fixed - return html_attribute_values("page_width")['pvalue'] if self.root? - + return html_attribute_values("page_width")['pvalue'] if self.root? + # self width unset, parent content layout is vertical. - if self.html_attribute_values("block_width").unset? and self.parent.content_layout_vertical? + if self.html_attribute_values("block_width").unset? && self.parent.content_layout_vertical? #TODO consider the computed margin, computed_padding caused by 'border image' margin, border, padding = html_attribute_values("inner_margin"), html_attribute_values("inner_border-width"), html_attribute_values("inner_padding") - computed_width = self.parent_width - computed_width -= (margin['pvalue1']+margin['pvalue3']) unless margin.unset? - computed_width -= (border['pvalue1']+border['pvalue3']) unless border.unset? - computed_width -= (padding['pvalue1']+padding['pvalue3']) unless padding.unset? - return computed_width + computed_width = self.parent_width + computed_width -= (margin['pvalue1']+margin['pvalue3']) unless margin.unset? + computed_width -= (border['pvalue1']+border['pvalue3']) unless border.unset? + computed_width -= (padding['pvalue1']+padding['pvalue3']) unless padding.unset? + return computed_width end - - return self.html_attribute_values("block_width")['pvalue'].to_i + + return self.html_attribute_values("block_width")['pvalue'].to_i end - + def parent_width self.parent.width end - - # return: 0(self is fluid) or >0(real width) - def height - # it is root - return 0 if self.root? + + # return: 0(self is fluid) or >0(real width) + def height + # it is root + return 0 if self.root? hav = self.html_attribute_values("block_height") # self width unset, parent content layout is vertical. - return hav.pvalue + return hav.pvalue end - + def margin hav = self.html_attribute_values("inner_margin") # self width unset, parent content layout is vertical. # in case 'auto'.to_i => 0 - return [hav.pvalue(0), hav.pvalue(1), hav.pvalue(2), hav.pvalue(3)] + return [hav.pvalue(0), hav.pvalue(1), hav.pvalue(2), hav.pvalue(3)] end - - def padding + + def padding hav = self.html_attribute_values("inner_padding") # self width unset, parent content layout is vertical. - return [hav.pvalue(0), hav.pvalue(1), hav.pvalue(2), hav.pvalue(3)] + return [hav.pvalue(0), hav.pvalue(1), hav.pvalue(2), hav.pvalue(3)] end - + def border hav = self.html_attribute_values("inner_border-width") # self width unset, parent content layout is vertical. return [hav.pvalue(0), hav.pvalue(1), hav.pvalue(2), hav.pvalue(3)] end - end + end def save updated_html_attribute_values.each{|hav| hav.update } # update param_value.pvalue updated_html_attribute_values.collect{|hav| hav.param_value}.uniq.each{|pv| pv.save} - # save param_value.pvalue - updated_html_attribute_values.pop(updated_html_attribute_values.length) + # save param_value.pvalue + updated_html_attribute_values.pop(updated_html_attribute_values.length) end - + def fixed? #decide by width and parent's content_layout_horizontal - # width=unset && parent's content_layout_horizontal = true or width=100% or fixed=true(only for root) + # width=unset && parent's content_layout_horizontal = true or width=100% or fixed=true(only for root) self.width>0 end - - + + def root? self.page_layout.root? end - + def container? # has html_attribute_value: content_layout_horizontal - ! html_attribute_values("content_layout_clear").nil? + html_attribute_values("content_layout_clear").present? end - + #FIXME def content_layout_vertical? - not html_attribute_values("content_layout_clear").bool_true? + # bootstrap column have no param :content_layout_clear + container? && !html_attribute_values("content_layout_clear").bool_true? end - + def section_slug self.section.slug - end + end alias_method :[],:html_attribute_values end - + end -end \ No newline at end of file +end diff --git a/spree_theme/app/models/spree/page_layout.rb b/spree_theme/app/models/spree/page_layout.rb index a46c2d3d..1f0f4a41 100644 --- a/spree_theme/app/models/spree/page_layout.rb +++ b/spree_theme/app/models/spree/page_layout.rb @@ -1,79 +1,84 @@ +# section param effect on content, we use data_source_param, such as pagination +# section param effect on css, we use content_param, such as clickable, image size module Spree class PageLayout < ActiveRecord::Base #extend FriendlyId include Spree::Context::Base - - acts_as_nested_set :scope=>"root_id" # scope is for :copy, no need to modify parent_id, lft, rgt. - belongs_to :section - has_many :themes, :class_name => "TemplateTheme",:primary_key=>:root_id,:foreign_key=>:page_layout_root_id - has_many :param_values + # depth is massed up while duplicate full set. so we disable it here. + acts_as_nested_set :scope=>['template_theme_id' ], :depth_column=>'notallowed', :dependent=> :destroy # scope is for :copy, no need to modify parent_id, lft, rgt. + belongs_to :section + belongs_to :template_theme, :class_name =>'Spree::TemplateTheme' + # has_many :themes, :class_name => "TemplateTheme",:primary_key=>:root_id,:foreign_key=>:page_layout_root_id + has_many :param_values, dependent: :delete_all # this table is used by other site, should not use scope here # we want title to support multi-language, so disable friendly_id - #friendly_id :title, :use => :slugged - #has_many :full_set_nodes, :class_name =>'PageLayout', :foreign_key=>:root_id, :primary_key=>:root_id + # friendly_id :title, :use => :slugged has_many :sections, :class_name =>'Section', :foreign_key=>:root_id, :primary_key=>:section_id has_many :section_pieces, :through=>:sections # remove section relatives after page_layout destroyed. - before_destroy :remove_section + # before_destroy :remove_section before_save :fix_data_source_param - - scope :full_html_roots, where(:is_full_html=>true,:parent_id=>nil) + + delegate :is_html_root?, :is_container?, :is_image?, :is_zoomable_image?, to: :section + + scope :full_html_roots, ->{ where(:is_full_html=>true,:parent_id=>nil) } #attr_accessible :section_id,:title attr_accessor :current_contexts, :inherited_contexts - + class << self - # create component, it is partial layout, no html body, composite of some sections. + # create component, it is partial layout, no html body, composite of some sections. #notice: attribute section_id, title required # section.root.section_piece_id should be 'root' - def create_layout(section, title, attrs={}) - #create record in table page_layouts - layout = create!(:section_id=>section.id) do |obj| - obj.title = title - obj.site_id = SpreeTheme.site_class.current.id - obj.attributes = attrs unless attrs.empty? - obj.section_instance = 1 - obj.is_full_html = section.section_piece.is_root? - end - layout.update_attribute("root_id",obj.id) - layout - end - - + #def create_layout(section, title, attrs={}) + # layout = create!(:section_id=>section.id) do |obj| + # obj.title = title + # obj.site_id = SpreeTheme.site_class.current.id + # obj.attributes = attrs unless attrs.empty? + # obj.section_instance = 1 + # obj.is_full_html = section.section_piece.is_root? + # end + # layout.update_attribute("root_id",obj.id) + # layout + #end + + # user copy decendants of a layout to new root layout while user copy theme to new theme. # since copy to new root, there is no section_instance confliction. - def copy_decendants_to_new_parent(new_parent, original_parent, ordered_nodes) - original_children = ordered_nodes.select{|node| node.parent_id == original_parent.id } - for node in original_children - new_node = node.dup - new_node.parent_id = new_parent.id - new_node.root_id = new_parent.root_id - new_node.save! - if node.has_child? - copy_decendants_to_new_parent(new_node, node, ordered_nodes ) - end - end - # copy_from_root_id means we have copied all decendants from that tree. - if new_parent.root? - update_all(["copy_from_root_id=?",original_parent.id],['root_id=?',new_parent.id]) - end - end - + #def copy_decendants_to_new_parent(new_parent, original_parent, ordered_nodes) + # original_children = ordered_nodes.select{|node| node.parent_id == original_parent.id } + # for node in original_children + # new_node = node.dup + # new_node.site_id = new_parent.site_id + # new_node.parent_id = new_parent.id + # new_node.root_id = new_parent.root_id + # new_node.save! + # if node.has_child? + # copy_decendants_to_new_parent(new_node, node, ordered_nodes ) + # end + # end + # # copy_from_root_id means we have copied all decendants from that tree. + # if new_parent.root? + # where( root_id: new_parent.id ).update_all(["copy_from_root_id=?",original_parent.id]) + # end + #end + # * description - copy :page_layout_tree whole tree - # * params + # * params # * ordered_nodes - whole tree node collection, it is ordered by left # * return - new ordered nodes - def copy_to_new(ordered_nodes, new_attributes = nil) - #create new root first, get new root id. - original_root = ordered_nodes.first - new_layout = original_root.dup - new_layout.root_id = 0 # reset the lft,rgt. - new_layout.save! - new_layout.update_attribute("root_id", new_layout.id) - copy_decendants_to_new_parent(new_layout, original_root, ordered_nodes) - new_layout.reload.self_and_descendants - end + #def copy_to_new(ordered_nodes, new_attributes = nil) + # #create new root first, get new root id. + # original_root = ordered_nodes.first + # new_layout = original_root.dup + # new_layout.root_id = 0 # reset the lft,rgt. + # new_layout.site_id = SpreeTheme.site_class.current.id + # new_layout.save! + # new_layout.update_attribute("root_id", new_layout.id) + # copy_decendants_to_new_parent(new_layout, original_root, ordered_nodes) + # new_layout.reload.self_and_descendants + #end end - + # verify :come_contexts valid to :target_contexts # home is special list # ex. [:cart] is valid to [:either] taxon <-> page_layout @@ -82,191 +87,279 @@ def copy_to_new(ordered_nodes, new_attributes = nil) # [:list] is invalid to [:home] # [:home] is invalid to [:list] # [:either] is valid to [:home] page_layout <-> page_layout, called by update_section_context - + def self.verify_contexts( some_contexts, target_contexts ) some_contexts = [some_contexts] unless some_contexts.kind_of?( Array ) - #Rails.logger.debug "some_contexts=#{some_contexts.inspect}, target_contexts=#{target_contexts}, [ContextEnum.either]=#{[ContextEnum.either].inspect}" - ( some_contexts==[ContextEnum.either] || target_contexts==[ContextEnum.either] || (target_contexts&some_contexts)==some_contexts ) - #|| (some_contexts==[ContextEnum.home]&&target_contexts.include?(ContextEnum.list)) + #Rails.logger.debug "some_contexts=#{some_contexts.inspect}, target_contexts=#{target_contexts}, [ContextEnum.either]=#{[ContextEnum.either].inspect}, is_valid = #{ret}" + ret = ( some_contexts==[ContextEnum.either] || target_contexts==[ContextEnum.either] || (target_contexts&some_contexts)==some_contexts ) + #|| (some_contexts==[ContextEnum.home]&&target_contexts.include?(ContextEnum.list)) end - #theme.document_path use it - def site - SpreeTheme.site_class.find( self.site_id ) + # get section css selector, then replace html with new rendered content + # it is same as TemplateTag/WrappedPageLayout, consider merge them. + #def section_selector + # "s_#{self.id}_#{self.section_id}" + #end + def duplicator + PageLayoutDuplicator.new( self.root ) end - - + begin ' page_layout content' - # a page_layout tree could be whole html or partial html, it depend's on self.section.section_piece.is_root?, + # a page_layout tree could be whole html or partial html, it depend's on self.section.section_piece.is_root?, # it is only for root. - def is_html_root? - self.section.section_piece.is_root? - end - - # view content image_style ex. taxon_name, render as or ? - def view_as_clickable? - # first bit is clickable - if respond_to? :content_param - get_content_param_by_key(:clickable) - else - true - end + + # use as css class, later js select elements by those class + def effects + if @effect_classes.nil? + clickable = get_content_param_by_key( :clickable ) + param_value = get_content_param() + @effect_classes =[] + Section::MouseEffect.each_pair{|effect,val| + # 00001000 + # & 00001111 => val + if( (param_value & Section::MouseEffectMask) == val) + @effect_classes << ( clickable ? "click_effect_#{effect}" : "hover_effect_#{effect}" ) + end + } + end + @effect_classes end - + + # a section could link to .... ex. font-awesome could link to home + def href + some_context = get_content_param_by_key( :context ) + SpreeTheme.taxon_class.get_route_by_page_context( some_context ) + end + + def has_extra_selector? + #child1,child2... data1,data2... zoomable columns>0, data_first,data_last + self.effects.present? || parent.effects.present? || parent.data_source.present? || self.get_content_param > 0 || parent.get_content_param > 0 + end + + # * description - content_param is integer, each bit has own mean for each section. # * params # * key - clickable, taxon_name, render as or ? # - image-size, main product image size, [small|product|large|original] - # + # - columns, eliminate margin-right of last column - bit3, def get_content_param_by_key(key) + # bit 1, 2,3,4,5,6,7,8,9 + # 2+4+8+16+32+64+128 = 254 + default_truncate_at = 100; + # content_param int(11) 4bytes 4*8=32bits case key - when :clickable - content_param&1 >0 - when :main_image_style - #bit 2,3,4 - idx = (content_param&14)>>1 - #default is medium + when :clickable # apply to container/taxon/product/post attributes + # generate + # bit 1, product:name,image, taxon:name,icon + get_content_param&1 >0 + when :hoverable # apply to container/taxon/product/post attributes + # apply hover css + # bit 12 + get_content_param&2048 >0 + when :lightboxable # product image + # bit 13 + get_content_param&4096 >0 + when :model_count_in_row #bit 1,2,3,4 # apply to container + #how many model this container + get_content_param&15 + when :datetime_style # post time + # bit 2,3,4 + idx = (get_content_param&14)>>1 + # 000x , 001x, 010x, 011x, 100x + [:datetime, :date, :time ].fetch( idx, :datetime ) + + when :main_image_style # section slider, product_image_with_thumbnail + # bit 2,3,4 + idx = (get_content_param&14)>>1 + # default is medium + # 000x , 001x, 010x, 011x, 100x [:medium, :large, :product, :small, :original ].fetch( idx, :medium ) when :thumbnail_style - #bit 5,6,7 - idx = (content_param&112)>>4 + # bit 5,6,7 + idx = (get_content_param&112)>>4 [:mini, :large, :medium, :small, :original].fetch( idx, :mini ) when :zoomable - #bit 8 - content_param&128>0 - else + # bit 8 + get_content_param&128 > 0 + when :main_image_position # section product image + # bit 9, 10, product-image + # 256 + 512 = 768 + (get_content_param&768)>>8 + when :form_enabled # container + # wrap section with form, ex. product quantity, product options, add_to_cart + # by default there is no form any more, add_to_cart button require form, + # bit 10 + get_content_param&512 > 0 + when :form_disabled # + # in some case, we want to disable wrapped form of product attributes, + # ex. show product image only. + # http://jssor.com/development/define-slides-html-code.html + # in slider_scrolling, jssor require
      , not + # bit 11 + get_content_param&1024 > 0 + when :remote_form_enabled # support ajax add to cart + # bit 10&&11 + val = get_content_param + ( val&1024 > 0 ) && ( val&512 > 0 ) + when :truncate_at # post summary + # bit 2, 3, 4, 5, 6, 7, 8, 9, + # 2+ 4+ 8+ 16 +32+ 64+ 128+ 256 = 510 + val = get_content_param&510 + val>0 ? val : default_truncate_at + when :context # bootstrap_glyphicon could link to home/cart... + #bit 2,3,4,5,6 max is 31 + #000010 000100 000110 001000 001010 001100 001110 010000 010010 + #2:home 4:cart 6:checkout 8:thanks 10:signup 12:login 14:account 16:blog 18:list + #1 2 3 4 5 6 7 8 9 # keep it same as + (get_content_param&62)>>1 + else nil - end + end end - + #:clickable,:main_image_style,:thumbnail_style def update_content_param( options ) options.each_pair{|key, val| - content_param |= val.to_i - } - save! + content_param |= val.to_i + } + save! end + + # we want to inherit content_param form section, page_layout could override it. + # ex. section have hover effect, page_layout should have hover effect by default. + # get content from section, if self.content_param==0. + def get_content_param + self.content_param == 0 ? section.content_param : self.content_param + end + end - + def has_child? return (rgt-lft)>1 end - - #get whole tree and select ancestors, rails would cache whole tree, this would save time than get ancestors for each node - def cached_level - tree = self.root.self_and_descendants - tree.select{|node| node.lftrgt}.count + + def stylish_with_inherited + return self.stylish if self.stylish>0 + inherited= self.ancestors.select{|page_layout| page_layout.stylish >0 }.last + return inherited.stylish if inherited.present? + return 0 end - + # get applicable resources for self def applicable_reources self.section.self_and_descendants(:include=>:section_piece).select{|node| node.section_piece.resources }.select{|resource| resource.present?} end - - + + def partial_html pvs = self.param_values.includes(:section_param=>:section_piece_param) HtmlPage::PartialHtml.new(nil, self, nil, pvs) end - - begin 'modify page layout tree' + + begin 'modify page layout tree' # * usage - copy whole tree - # * return - root of new copied whole tree - def copy_to_new(new_attributes = nil) - raise "only work for root" unless root? - #create new root first, get new root id. - self.class.copy_to_new( self_and_descendants, new_attributes ).first - end - + # * return - root of new copied whole tree + #def copy_to_new(new_attributes = nil) + # raise "only work for root" unless root? + # #create new root first, get new root id. + # self.class.copy_to_new( self_and_descendants, new_attributes ).first + #end + + #def copy_to_new(new_attributes = nil) + # raise "only work for root" unless root? + # #create new root first, get new root id. + # duplicated = self.duplicator.duplicate + # duplicated.save! + # duplicated + #end + # it is not using # Usage: modify layout, add the section instance as child of current node into the layout, - # Params: page_layout, instance of model PageLayout + # Params: page_layout, instance of model PageLayout # return: added page_layout record - # + # #def add_section(section, attrs={}) # # check section.section_piece.is_container? # obj = nil - # if section.root? and self.section.section_piece.is_container + # if section.root? and self.section.section_piece.is_container # whole_tree = self.root.self_and_descendants # section_instance = whole_tree.select{|xnode| xnode.section_id==section.id}.size.succ - # attrs[:title]||="#{section.slug}#{section_instance}" + # attrs[:title]||="#{section.slug}#{section_instance}" # obj = self.dup # obj.section_id, obj.section_instance=section_id, section_instance # obj.assign_attributes( attrs ) - # obj.save! + # obj.save! # obj.move_to_child_of(self) # end # obj #end - + # Usage: remove param_values belong to self in every theme while destroy self(page_layout record) def remove_section remove_param_value() end - #Usage: add param_value of section into this layout + #Usage: add param_value of section into this layout def add_param_value(theme) # section_id, section_piece_param_id, section_piece_id, section_piece_instance, is_enabled, disabled_ha_ids # all section_params belong to section tree. # section_tree = self.section.self_and_descendants.includes(:section_params) # get default values of this section #TODO no need add param_value any more, use default value before user modify it - layout_id = self.id - layout_root_id = self.root_id + page_layout_root_id = self.root.id for section_node in self.section.self_and_descendants.includes(:section_params) section_params = section_node.section_params for sp in section_params #use root section_id - ParamValue.create(:page_layout_root_id=>layout_root_id, :page_layout_id=>layout_id) do |pv| + ParamValue.create(:page_layout_root_id=>page_layout_root_id, :page_layout_id=>self.id) do |pv| pv.section_param_id = sp.id pv.theme_id = theme.id - pv.pvalue = sp.default_value + pv.pvalue = sp.default_value #set default empty {} for now. end end end - - end - + + end + def remove_param_value() - #layout_root_id = self.root_id #ParamValue.delete_all(["page_layout_id=? and theme_id in (?)", self.id, themes.collect{|obj|obj.id }]) - ParamValue.delete_all(["page_layout_id=? ", self.id]) + ParamValue.delete_all(["page_layout_id=? ", self.id]) end - + def demote if left_sibling.present? move_to_child_of( left_sibling ) end end - + def promote unless root? move_to_right_of( parent ) - end + end end - + # replace section with another section, this section only for development for now # ex. we developed a section with new feature, a page_layout tree want to have this feature, it could replace its original section with new section. # for leaf we could just remove a section, then add new one. Root or some ancestor, replace is better way for developer and user. def replace_with( new_section) #1. delete all param_values of original section. - #2. update section_id of current page_layout. + #2. update section_id of current page_layout. #3. add new param_values of new sections for each template theme which is using current page_layout - self.remove_param_value() + self.remove_param_value() new_section_instance = self.root.self_and_descendants.select{|xnode| xnode.section_id==new_section.id }.size.succ self.section_id, self.section_instance=new_section.id, new_section_instance - self.save! + self.save! self.themes.each{|theme| - self.add_param_value(theme) + self.add_param_value(theme) } - end - end - + end + end + begin 'section content, html, css, js' def build_content() - tree = self.self_and_descendants.includes(:section=>:section_piece) + tree = self.self_and_descendants.includes(:section=>[:section_piece, :full_set_nodes]) # have to Section.all, we do not know how many section_pieces each section contained. sections = Section.includes(:section_piece) section_hash = sections.inject({}){|h, s| h[s.id] = s; h} @@ -275,27 +368,27 @@ def build_content() js = build_js(tree, sections) return html, css, js end - + # Usage: build html, js, css for a layout - # Params: theme_id, - # if passed, build css for that theme, or build css for default theme - def build_html(tree, section_hash) + # Params: theme_id, + # if passed, build css for that theme, or build css for default theme + def build_html(tree = [], section_hash = {}) build_section_html(tree, self, section_hash) end - + def build_css(tree, node, section_hash, theme_id=0) - css = section_hash[node.section_id].build_css - css.insert(0, get_section_script(node)) - unless node.leaf? + css = node.section.build_css + css.insert(0, get_section_script(node)) + unless node.leaf? children = tree.select{|n| n.parent_id==node.id} for child in children - subcss = build_css(tree, child, section_hash) + subcss = build_css(tree, child, section_hash) css.concat(subcss) end end css end - + def build_js(tree, sections) section_ids = tree.collect{|node|node.section_id} section_piece_ids = sections.select{|s| section_ids.include?(s.root_id) or section_ids.include?(s.id) }.collect{|s| s.section_piece_id} @@ -303,28 +396,28 @@ def build_js(tree, sections) if section_piece_ids.present? section_pieces = SectionPiece.find(section_piece_ids) js = section_pieces.inject(''){|sum, sp| sum.concat(sp.js); sum} - end + end return js end # highlight this page_layout. - # or get subsection of section tree. + # or get subsection of section tree. def css_selector( subsection = nil ) subsection.blank? ? ".s_#{id}_#{section_id}" : ".s_#{id}_#{subsection.id}" end - + end - + #param: some_event could be a global_param_value changed event or a section_event. def subscribe_event?( some_event) section_events = self.section.subscribed_global_event_array - section_events.include? some_event.event_name + section_events.include? some_event.event_name end - - #usage: raise this global_param_value_event to whole layout tree or not + + #usage: raise this global_param_value_event to whole layout tree or not def raise_event?( some_event) - reserved_section_events = self.section.global_event_array - reserved_section_events.include? some_event.event_name + reserved_section_events = self.section.global_event_array + reserved_section_events.include? some_event.event_name end # get all descendants which reserved the :some_event def nodes_for_event(some_event) @@ -335,19 +428,19 @@ def nodes_for_event(some_event) end @subscribe_event_nodes_hash[some_event.event_name] end - - begin 'handle context' - # a section could have several contexts, means it could appear in serveral kind of pages - # return array of current contexts + + begin 'handle context' + # a section could have several contexts, means it could appear in serveral kind of pages + # return array of current contexts def current_contexts if @current_contexts.blank? @current_contexts = ( self.section_context.present? ? self.section_context.split(',').map(&:to_sym) : inherited_contexts ) end @current_contexts end - + # * params - # * new_context - one value of Contexts or an array of contexts + # * new_context - one value of Contexts or an array of contexts def update_section_context( new_context) new_context = [new_context] unless new_context.kind_of?( Array ) new_context = new_context.map(&:to_sym) # "".to_sym == ContextEnum.either @@ -355,7 +448,7 @@ def update_section_context( new_context) # test would check section_context,so keep it as string self.update_attribute(:section_context,new_context.join(',')) if new_context.first != ContextEnum.either - #update descendant's context, + #update descendant's context, self.descendants.where(["section_context!=?",ContextEnum.either]).each{|node| #only reset context if desendant's context is invalid for new_context. unless self.class.verify_contexts( node.current_contexts, new_context ) @@ -366,7 +459,7 @@ def update_section_context( new_context) self.update_data_source( DataSourceEmpty ) end end - + # called in current_page_tag def valid_context?(some_context) self.class.verify_contexts some_context.to_sym, current_contexts @@ -383,30 +476,29 @@ def context_list? def context_detail? current_contexts.include? ContextEnum.detail end - - #def context_either? - # current_contexts.include? ContextEnum.either - #end + def context_either? + current_contexts.include? ContextEnum.either + end end - + begin 'handle data source' # * data source has two parts, data and filter, separated by '|' # * current data_source could be nil - def current_data_source - self.data_source.present? ? self.data_source.to_sym : DataSourceEmpty + def current_data_source + self.data_source.present? ? self.data_source.to_sym : DataSourceEmpty end - - def inherited_data_source + + def inherited_data_source return DataSourceEmpty if self.root? - ancestor_data_source = self.ancestors.collect{|page_layout| page_layout.data_source }.last + ancestor_data_source = self.ancestors.collect{|page_layout| page_layout.data_source }.last ancestor_data_source.present? ? ancestor_data_source.to_sym : DataSourceEmpty end - + # verify new_data_source def update_data_source( new_data_source ) # update self data_source - original_data_source = self.data_source + original_data_source = self.data_source self.data_source = new_data_source if new_data_source.blank? || self.is_valid_data_source? self.update_attribute(:data_source,new_data_source ) @@ -422,41 +514,41 @@ def update_data_source( new_data_source ) end self end - + # * is self.data_source valid to ancestors def is_valid_data_source? is_valid = false if self.current_data_source != DataSourceEmpty - if self.inherited_data_source == DataSourceEmpty # top level data source + if self.inherited_data_source == DataSourceEmpty # top level data source section_contexts = self.current_contexts if section_contexts.length == 1 available_data_sources = ContextDataSourceMap[section_contexts.first] if available_data_sources.present? is_valid = ( available_data_sources.include? self.current_data_source ) - end + end else #TODO validate data source for more than on section contexts is_valid = true - end + end else #sub level data source -#Rails.logger.debug "self.inherited_data_source=#{self.inherited_data_source}" +#Rails.logger.debug "self.inherited_data_source=#{self.inherited_data_source}" is_valid = ( DataSourceChainMap[self.inherited_data_source].include? self.current_data_source) end else - is_valid = true - end -#Rails.logger.debug "is_valid = #{is_valid}" + is_valid = true + end +#Rails.logger.debug "is_valid = #{is_valid}" is_valid end - + # get available data sources for self def available_data_sources data_sources = [] if self.current_contexts.size == 1 - the_context = self.current_contexts.first + the_context = self.current_contexts.first if the_context != ContextEnum.either the_data_source = self.inherited_data_source - if the_data_source == DataSourceEmpty # top level data source + if the_data_source == DataSourceEmpty # top level data source data_sources = ContextDataSourceMap[the_context] else data_sources = DataSourceChainMap[the_data_source] @@ -464,91 +556,136 @@ def available_data_sources end end data_sources - end - + end + def wrapped_data_source_param params = {} if data_source_param.present? + splited_params = data_source_param.split(',') if current_data_source == DataSourceEnum.gpvs || current_data_source == DataSourceEnum.blog - params[:per_page]= data_source_param.to_i + params[:per_page]= splited_params[0].to_i + params[:pagination_enable] = ( splited_params[1].nil? ? true : (splited_params[1]=='1') ) + elsif current_data_source == DataSourceEnum.taxon + params[:depth] = splited_params[0].to_i + else + # section :page_attribute, :product_attribute, :post_attribute + params[:attribute_name] = splited_params[0] end end params - end - end - - - private - # section_context could be more than one. - def inherited_contexts - #ancestors order by lft - if @inherited_contexts.blank? - ancestor_context = self.ancestors.where('section_context!=?','').collect{|page_layout| page_layout.section_context }.last - @inherited_contexts = ( ancestor_context.present? ? ancestor_context.split(',').map(&:to_sym) : [ContextEnum.either] ) end - @inherited_contexts + + def get_data_source_param_by_key( key ) + wrapped_data_source_param[key] + end end - - def inherited_section_context - #ancestors order by lft - ancestor_context = self.ancestors.where('section_context!=?','').collect{|page_layout| page_layout.section_context }.last - ancestor_context.present? ? ancestor_context.to_sym : ContextEnum.either + + # self.css_class + self.usage + def get_css_class + self.section.usage.present? ? "#{css_class} u_#{self.section.usage}" : css_class end - - - def build_section_html(tree, node, section_hash) + + private + # a page_layout build itself. + def build_section_html(tree, node, section_hash) return '' unless node.is_enabled? subpieces = "" - unless node.leaf? + unless node.leaf? subnodes = tree.select{|n| n.parent_id==node.id} for child in subnodes next unless child.is_enabled? - subpiece = build_section_html(tree, child, section_hash) + subpiece = build_section_html(tree, child, section_hash) subpieces.concat(subpiece) end - end - piece = node.section.build_html + end + piece = node.section.build_html + # replace ~~selectors~~ with ex. 's_112_2 c_111' + unless node.root? + offline_css = "s_#{node.id}_#{node.section_id} c_#{node.parent_id} #{node.get_css_class}" + if node.has_extra_selector? + piece.sub!('~~selector~~', "#{offline_css} <%=@template.get_css_classes %>") + else + piece.sub!('~~selector~~', offline_css) + end + #if node.content_css_class.present? + # piece.sub!(/\bcontent_css_class_placeholder/, node.content_css_class) + #end + end # if node.root? - # piece.insert(0,init_vars) + # piece.insert(0,init_vars) # end - - #piece may contain several ~~content~~, the deepest one is first. + # select current page_layout at end of subpieces, pagination required, data_souce_param is on current page_layout + subpieces << get_section_script(node) if subpieces.present? + + #piece may contain several ~~content~~, the deepest one is first. if(pos = (piece=~/~~content~~/)) if node.data_source.present? #node.data_source.singularize case node.current_data_source + # var_collection has to vary in name, may be nested. + # data_source, data_item is for column index computing. when DataSourceEnum.gpvs, DataSourceEnum.this_product, DataSourceEnum.gpvs_theme # for this_product, we have to wrapped with form, or option_value radio would not work. - subpieces = <<-EOS1 - <% @var_collection = @template.products( (defined?(page) ? page : @current_page) ).each{|product| %> - <%= form_for :order, :url => populate_orders_path do |f| %> + form_enabled = node.get_content_param_by_key( :form_enabled ) + remote_form_enabled = node.get_content_param_by_key( :remote_form_enabled ) + if remote_form_enabled + form_start = '<%= form_for :order, url: populate_orders_path, remote: true do |f| %>' + form_end = '<% end %>' + elsif form_enabled + form_start = '<%= form_for :order, url: populate_orders_path do |f| %>' + form_end = '<% end %>' + else + form_start = form_end =nil + end + + subpieces = <<-EOS1 + <% @template.running_data_source= @template.products( (defined?(page) ? page : @current_page) ) %> + <% @template.running_data_source.each(){|product| @template.running_data_item = product %> + #{form_start} #{subpieces} - <% end %> + #{form_end} <% } %> + #{get_pagination} + <% @template.running_data_source = nil %> EOS1 + #set var_collection to nil, or render pagination more times when DataSourceEnum.blog, DataSourceEnum.post - subpieces = <<-EOS1 - <% @var_collection = @template.posts( (defined?(page) ? page : @current_page) ).each{|post| %> + subpieces = <<-EOS1 + <% @template.running_data_source= @template.posts( (defined?(page) ? page : @current_page) ) %> + <% @template.running_data_source.each{|post| @template.running_data_item = post %> #{subpieces} <% } %> + #{get_pagination} + <% @template.running_data_source = nil %> + EOS1 + when DataSourceEnum.next_post, DataSourceEnum.previous_post + subpieces = <<-EOS1 + <% @template.running_data_source= @template.related_posts( (defined?(page) ? page : @current_page) ) %> + <% @template.running_data_source.each{|post| @template.running_data_item = post %> + #{subpieces} + <% } %> + <% @template.running_data_source = nil %> EOS1 when DataSourceEnum.taxon #assigned menu could be root or node - subpieces = <<-EOS3 + subpieces = <<-EOS3 <% if @template.menu.present? %> <% if @template.menu.root? %> - <% @template.menu.children.each{|page|%> #{subpieces} <%}%> - <% else %> - <% @template.menu.tap{|page| %> #{subpieces} <%}%> - <% end %> - <% end %> + <% @template.running_data_source= @template.menu.children %> + <% @template.running_data_source.each{|page| @template.running_data_item = page %> #{subpieces} <%}%> + <% @template.running_data_source = nil %> + <% else %> + <% @template.running_data_source= @template.menu %> + <% @template.running_data_source.tap{|page| @template.running_data_item = page %> #{subpieces} <%}%> + <% @template.running_data_source = nil %> + <% end %> + <% end %> EOS3 end - end + end # we recovery template.select after ~~content~~ - subpieces << get_section_script( node ) - piece.insert(pos,subpieces) + piece.insert(pos,subpieces) end - + if node.section_context.present? # should set current page_layout before do valid_context. piece = <<-EOS2 @@ -556,84 +693,100 @@ def build_section_html(tree, node, section_hash) #{piece} <% end %> EOS2 - end - - if node.root? # html root - piece.insert(0, get_page_script ) end - - piece.insert(0, get_section_script(node)) + + piece = "#{get_section_script(node)} #{piece} " + # remove ~~content~~ however, node could be a container. - # in section.build_html, ~~content~~ have not removed. + # in section.build_html, ~~content~~ have not removed. # there could be more than one ~~content~~, use gsub! piece.gsub!(/~~content~~/,'') - piece + piece + end + + # section_context could be more than one. + def inherited_contexts + #ancestors order by lft + if @inherited_contexts.blank? + ancestor_context = self.ancestors.where('section_context!=?','').collect{|page_layout| page_layout.section_context }.last + @inherited_contexts = ( ancestor_context.present? ? ancestor_context.split(',').map(&:to_sym) : [ContextEnum.either] ) + end + @inherited_contexts end - + + def inherited_section_context + #ancestors order by lft + ancestor_context = self.ancestors.where('section_context!=?','').collect{|page_layout| page_layout.section_context }.last + ancestor_context.present? ? ancestor_context.to_sym : ContextEnum.either + end + def get_section_script(node) - "<% g_page_layout_id=#{node.id}; @template.select(g_page_layout_id); %>#{$/}" + # we have to call @template.select(g_page_layout_id); + # valid_context require current page_layout, we should not move valid_context? into section. + "<% @template.select(#{node.id}, 0) %>" end - - # proc available in template - def get_page_script() - "<% proc_page=Proc.new{ defined?(page) ? page : @current_page } %> #{$/}" + + # show pagination when section is configured, data_source_param > 0 + # ex. in home page, we have product list, we do not want to show pagination even products.count > Spree::Config[products_per_page] + def get_pagination( ) + # section is configured and datasource have pages + # notice: current piece is data iterator parent at present. ex. product_list(current_piece)->one_product + "<%= paginate( @template.running_data_source ) if @template.current_piece.per_page>0 && @template.current_piece.pagination_enable? && @template.running_data_source.try( :has_pages? ) %> " end - - # Do not support add_layout_tree now. Page layout should be full html, Keep it simple. + + # Do not support add_layout_tree now. Page layout should be full html, Keep it simple. # since we add feature 'section_context' and 'data_source', should not allow user use this method, it may cause section_context conflict. # user copy prebuild layout tree to another layout tree as child. # copy it self and decendants to new parent. this only for root layout. # include theme param values. add theme param values to all themes which available to the new parent. - def add_layout_tree(copy_layout_id) - copy_layout = self.class.find(copy_layout_id) - raise "only for root layout" unless copy_layout.root? - copy_layout.copy_to_new_parent(self) - end - + #def add_layout_tree(copy_layout_id) + # copy_layout = self.class.find(copy_layout_id) + # raise "only for root layout" unless copy_layout.root? + # copy_layout.copy_to_new_parent(self) + #end + # cached_whole_tree, it is whole tree of new parent, to compute new added section instance. # added_section_ids, new added section ids, but not in cache. # root_layout.copy_to() - def copy_to_new_parent(new_parent, cached_whole_tree = nil, added_section_ids=[]) - - cached_whole_tree||= new_parent.root.self_and_descendants - - new_section_instance = ( cached_whole_tree.select{|xnode| xnode.section_id==self.section_id}.size + - added_section_ids.select{|xid| xid==self.section_id}.size ).succ - - clone_node = self.dup # do not call clone, or modify itself - clone_node.parent_id = new_parent.id - clone_node.root_id = new_parent.root_id - clone_node.section_instance = new_section_instance - clone_node.copy_from_root_id = self.root_id - clone_node.save! - added_section_ids << clone_node.section_id - - # it should only have one theme. - copy_theme = self.root.themes.first - table_name = ParamValue.table_name - table_column_names = ParamValue.column_names - table_column_names.delete('id') - # copy param values to all available themes - for theme in clone_node.root.themes - table_column_values = table_column_names.dup - table_column_values[table_column_values.index('page_layout_root_id')] = clone_node.root_id - table_column_values[table_column_values.index('page_layout_id')] = clone_node.id - table_column_values[table_column_values.index('theme_id')] = theme.id - sql = %Q!INSERT INTO #{table_name}(#{table_column_names.join(',')}) SELECT #{table_column_values.join(',')} FROM #{table_name} WHERE ((page_layout_root_id=#{self.root_id} and page_layout_id =#{self.id}) and theme_id =#{copy_theme.id} )! - self.class.connection.execute(sql) - end - - for node in self.children - node.copy_to_new_parent(clone_node, cached_whole_tree, added_section_ids) - end - end - + #def copy_to_new_parent(new_parent, cached_whole_tree = nil, added_section_ids=[]) + # cached_whole_tree||= new_parent.root.self_and_descendants + # new_section_instance = ( cached_whole_tree.select{|xnode| xnode.section_id==self.section_id}.size + + # added_section_ids.select{|xid| xid==self.section_id}.size ).succ + # clone_node = self.dup # do not call clone, or modify itself + # clone_node.parent_id = new_parent.id + # clone_node.root_id = new_parent.root_id + # clone_node.section_instance = new_section_instance + # clone_node.copy_from_root_id = self.root_id + # clone_node.save! + # added_section_ids << clone_node.section_id + # # it should only have one theme. + # copy_theme = self.root.themes.first + # table_name = ParamValue.table_name + # table_column_names = ParamValue.column_names + # table_column_names.delete('id') + # # copy param values to all available themes + # for theme in clone_node.root.themes + # table_column_values = table_column_names.dup + # table_column_values[table_column_values.index('page_layout_root_id')] = clone_node.root_id + # table_column_values[table_column_values.index('page_layout_id')] = clone_node.id + # table_column_values[table_column_values.index('theme_id')] = theme.id + # sql = %Q!INSERT INTO #{table_name}(#{table_column_names.join(',')}) SELECT #{table_column_values.join(',')} FROM #{table_name} WHERE ((page_layout_root_id=#{self.root_id} and page_layout_id =#{self.id}) and theme_id =#{copy_theme.id} )! + # self.class.connection.execute(sql) + # end + # for node in self.children + # node.copy_to_new_parent(clone_node, cached_whole_tree, added_section_ids) + # end + #end + # empty data_source_param when data_source is empty def fix_data_source_param - if self.data_source.blank? && self.data_source_param.present? - self.data_source_param = '' - end - end + #page_attribute no need data_source. + + #if self.data_source.blank? && self.data_source_param.present? + # self.data_source_param = '' + #end + end + end end diff --git a/spree_theme/app/models/spree/param_value.rb b/spree_theme/app/models/spree/param_value.rb index 1d31684a..3245ca18 100644 --- a/spree_theme/app/models/spree/param_value.rb +++ b/spree_theme/app/models/spree/param_value.rb @@ -6,41 +6,45 @@ class ParamValue < ActiveRecord::Base belongs_to :page_layout_root, :foreign_key=>"page_layout_root_id" belongs_to :section belongs_to :template_theme, :foreign_key=>"theme_id" - + serialize :pvalue, Hash - before_update :collect_events # skip create + serialize :pvalue1, Hash + serialize :pvalue2, Hash + serialize :pvalue3, Hash + + before_update :collect_events # skip create after_update :trigger_events - - scope :within_section, lambda { |param_value| - where(" theme_id=? and page_layout_id=? ", param_value.theme_id, param_value.page_layout_id) + + scope :within_section, ->( param_value ){ + where(" theme_id=? and page_layout_id=? ", param_value.theme_id, param_value.page_layout_id) } - scope :within_editor, lambda { |editor| - scoped.includes(:section_param=>:section_piece_param).where("#{SectionPieceParam.table_name}.editor_id"=>editor.id) + scope :within_editor, ->( editor ){ + includes(:section_param=>:section_piece_param).where("#{SectionPieceParam.table_name}.editor_id"=>editor.id) } - + #attr_accessible :page_layout_root_id, :page_layout_id,:section_id attr_accessor :updated_html_attribute_values, :original_html_attribute_values, :page_events - - # is it editable by editor, ex. pagination param_value should not appear if page_layout have no data source - def editable? - section_param.section_piece_param.editable? page_layout.current_data_source + + # is it editable by editor, ex. pagination param_value should not appear if page_layout have no data source + def editable? + section_param.section_piece_param.editable? page_layout.current_data_source end - - # usage: return all html_attribute_values this param value contains. - # return a hash, values are instance of HtmlAttributeValue, keys are html_attribute_id and html_attribute.slug. + + # usage: return all html_attribute_values this param value contains. + # return a hash, values are instance of HtmlAttributeValue, keys are html_attribute_id and html_attribute.slug. # key is section_param.section_piece_param.class_name+html_attribute.slug. ex."block_width" # unique_key = hav.computed? ? "computed_#{class_name}_#{hav.html_attribute.slug}" : "#{class_name}_#{hav.html_attribute.slug}" def html_attribute_values_hash ha_array = HtmlAttribute.find_by_ids(self.html_attribute_ids) - hav_hash = ha_array.inject({}){|h, ha| hav = HtmlAttributeValue.parse_from(self,ha); + hav_hash = ha_array.inject({}){|h, ha| hav = HtmlAttributeValue.parse_from(self,ha); h[ha.id]=hav; unique_key = "#{hav.param_value.section_param.section_piece_param.class_name}_#{hav.html_attribute.css_name}" - h[unique_key]=hav; h + h[unique_key]=hav; h } hav_hash end - - + + def html_attribute_ids() if @html_attribute_ids.nil? section_piece_param = self.section_param.section_piece_param @@ -48,43 +52,43 @@ def html_attribute_ids() end @html_attribute_ids end - + def html_attribute_value(html_attribute) return HtmlAttributeValue.parse_from(self,html_attribute) end - + #belongs_to_html_attribute_ids could be Array or an html_attribute_id def attribute_values(belongs_to_html_attribute_ids) belongs_to_html_attribute_ids ||= self.html_attribute_ids - belongs_to_html_attribute_ids = belongs_to_html_attribute_ids.map(&:to_s) - return self.pvalue.slice(*belongs_to_html_attribute_ids).values if belongs_to_html_attribute_ids.kind_of?(Array) + belongs_to_html_attribute_ids = belongs_to_html_attribute_ids.map(&:to_s) + return self.pvalue.slice(*belongs_to_html_attribute_ids).values if belongs_to_html_attribute_ids.kind_of?(Array) self.pvalue.slice(belongs_to_html_attribute_ids).values end - - def pvalue_for_haid(html_attribute_id) - self.pvalue[html_attribute_id.to_s] + + def pvalue_for_haid(html_attribute_id) + self.pvalue[html_attribute_id.to_s] end - def set_pvalue_for_haid(html_attribute_id, value_for_ha) + def set_pvalue_for_haid(html_attribute_id, value_for_ha) self.pvalue[html_attribute_id.to_s] = value_for_ha end def set_unset_for_haid(html_attribute_id, unset_for_ha) self.pvalue["#{html_attribute_id}unset"] = unset_for_ha end - + def unset?(html_attribute_id) - ( self.html_attribute_extra(html_attribute_id, 'unset')== HtmlAttribute::BOOL_FALSE) ? false : true + ( self.html_attribute_extra(html_attribute_id, 'unset')== HtmlAttribute::BOOL_FALSE) ? false : true end - + # use in page_generator def hidden?(html_attribute_id) # all computed are hidden - ( self.html_attribute_extra(html_attribute_id,'hidden')== HtmlAttribute::BOOL_TRUE or computed?) ? true : false + ( self.html_attribute_extra(html_attribute_id,'hidden')== HtmlAttribute::BOOL_TRUE or computed?) ? true : false end - + def computed?(html_attribute_id) - ( self.html_attribute_extra(html_attribute_id,'computed')== HtmlAttribute::BOOL_TRUE) ? true : false + ( self.html_attribute_extra(html_attribute_id,'computed')== HtmlAttribute::BOOL_TRUE) ? true : false end - + def html_attribute_extra(html_attribute_id, attr_name, attr_val = nil ) if attr_val.nil? self.pvalue["#{html_attribute_id}#{attr_name}"] @@ -92,33 +96,33 @@ def html_attribute_extra(html_attribute_id, attr_name, attr_val = nil ) self.pvalue["#{html_attribute_id}#{attr_name}"] = attr_val end end - + #def disabled_html_attribute_ids # if @disabled_html_attribute_ids.nil? # @disabled_html_attribute_ids = self.disabled_ha_ids.split(',').collect{|i|i.to_i} # end # @disabled_html_attribute_ids - #end - + #end + # in case, there is only one html_attribute_id in current param_value # use this to fetch param value directly. def first_pvalue pvalue_for_haid( html_attribute_ids.first ) end - + def partial_html pvs = self.class.within_section(self).includes(:section_param=>:section_piece_param) HtmlPage::PartialHtml.new(nil, self.page_layout, nil, pvs) end - + begin 'update param value' - # * usage - update attribute:pvalue + # * usage - update attribute:pvalue # * params # * html_attribute_value_params - it is hash like {"psvalue0"=>"l1", "pvalue0"=>"810", "unit0"=>"px"} # or {"psvalue0"=>"l1", "pvalue0"=>"0", "unit0"=>"px", "psvalue1"=>"l1", "pvalue1"=>"0", "unit1"=>"px", "psvalue2"=>"l1", "pvalue2"=>"0", "unit2"=>"px", "psvalue3"=>"l1", "pvalue3"=>"0", "unit3"=>"px", "unset"=>"1"} # * some_event - one of EventEnum def update_html_attribute_value(html_attribute, html_attribute_value_params, some_event ) - #FIXME confirm next line. + #FIXME confirm next line. # it maybe called more times by conditions, we should keep updated_html_attribute_values self.page_events ||=[] self.updated_html_attribute_values ||= [] @@ -126,91 +130,91 @@ def update_html_attribute_value(html_attribute, html_attribute_value_params, som original_html_attribute_value = HtmlAttributeValue.parse_from(self,html_attribute) new_html_attribute_value = HtmlAttributeValue.parse_from(self, html_attribute, html_attribute_value_params) is_updated= false - # Rails.logger.debug "original_html_attribute_value=#{original_html_attribute_value.properties.inspect},new_html_attribute_value=#{new_html_attribute_value.properties.inspect}" + # Rails.logger.debug "original_html_attribute_value=#{original_html_attribute_value.properties.inspect},new_html_attribute_value=#{new_html_attribute_value.properties.inspect}" unless original_html_attribute_value.equal_to?(new_html_attribute_value) # changed by user actions, some_event = [pv_changed|psv_changed|psu_changed|unset_changed] - if EventEnum.key? some_event + if EventEnum.key? some_event if some_event==EventEnum[:unset_changed] if new_html_attribute_value.unset? - self.html_attribute_extra(html_attribute.id, 'unset', new_html_attribute_value.unset) - else # user modify unset, we should give a default value. - self.html_attribute_extra(html_attribute.id, 'unset', new_html_attribute_value.unset) - self.set_pvalue_for_haid(html_attribute.id, new_html_attribute_value.build_pvalue(default=true)) + self.html_attribute_extra(html_attribute.id, 'unset', new_html_attribute_value.unset) + else # user modify unset, we should give a default value. + self.html_attribute_extra(html_attribute.id, 'unset', new_html_attribute_value.unset) + self.set_pvalue_for_haid(html_attribute.id, new_html_attribute_value.build_pvalue(default=true)) end else self.set_pvalue_for_haid(html_attribute.id, new_html_attribute_value.build_pvalue) - end + end else - # no event here, we would program to change html_attribute_value, like section.width = 100 + # no event here, we would program to change html_attribute_value, like section.width = 100 if new_html_attribute_value.hidden != original_html_attribute_value.hidden self.html_attribute_extra(html_attribute.id, 'hidden', new_html_attribute_value.hidden) - end + end if new_html_attribute_value.unset != original_html_attribute_value.unset self.html_attribute_extra(html_attribute.id, 'unset', new_html_attribute_value.unset) end if new_html_attribute_value.computed != original_html_attribute_value.computed self.html_attribute_extra(html_attribute.id, 'computed', new_html_attribute_value.computed) end - self.set_pvalue_for_haid(html_attribute.id, new_html_attribute_value.build_pvalue) + self.set_pvalue_for_haid(html_attribute.id, new_html_attribute_value.build_pvalue) end self.updated_html_attribute_values << new_html_attribute_value self.original_html_attribute_values << original_html_attribute_value self.page_events << some_event self.save! - is_updated = true + is_updated = true end [is_updated, new_html_attribute_value, original_html_attribute_value] end - + #Usage: user modify param_value, trigger event, event in EventEnum # flow chart is: # client side server side - # user modify param_value -> raise_event -> if(change_event) modify pvalue(not save) -> - # accumulate modification event, include global_param_value_event and section_event -> + # user modify param_value -> raise_event -> if(change_event) modify pvalue(not save) -> + # accumulate modification event, include global_param_value_event and section_event -> # after pv.save -> call trigger_event - # + # def collect_events() @param_value_events=[] @global_param_value_events=[] - if self.page_events.present? + if self.page_events.present? last_position = self.page_events.size - 1 + # tell current section, this is new html attribute value. pve = PageEvent::ParamValueEvent.new(self.page_events.first, self, self.original_html_attribute_values.first, self.updated_html_attribute_values.first ) @param_value_events<:destroy #:scope=>"root_id" - #has_many :full_set_nodes, :class_name =>'Section', :foreign_key=>:root_id, :primary_key=>:root_id - belongs_to :section_piece + # add includes(:full_set_nodes). it is same set as self_and_descendants, + has_many :full_set_nodes, -> { order 'lft' }, :class_name =>'Section', :foreign_key=>:root_id, :primary_key=>:root_id + belongs_to :section_piece has_many :section_params, :dependent=>:destroy #remove related param_value has_many :page_layouts - + friendly_id :title, :use => :slugged #attr_accessible :section_piece_id, :title, :global_events, :subscribed_global_events,:is_enabled - - + + # it is using content_param bit 5, 6, 7, 8, 9, 10 + # bit 5, 6, 7, 5&6, 5&7, 5&8, 6&8, 7&8, 9 + MouseEffectMask = 16+32+64+128+256 + # this effect apply to container only + MouseEffect = Struct.new(:slide, :show, :expansion, :overlay, :popup, :popup_menu, :popup_menu_l, :sider, :multi_level_menu) \ + [16, 32, 64, 48, 80, 144, 160, 192, 256] + # superfish: multi-level menus + # sider: click a button, a container slide out, mainly for mobile, # http://www.berriart.com/sidr + UsageEnum = Struct.new(:root, :container, :logo, :minicart, :dialog, :image, :image_with_thumbnails)['root','container','logo','minicart','dialog','image','image_with_thumbnails'] + + scope :enabled, ->{ where( is_enabled: true ) } + # usage: attribute section_piece_id, title required # params: default_param_values, is a hash, class_name=>{htmal_attribute_id=>default_value,..} - def self.create_section(section_piece_id,attrs = {}, default_param_values={}) + def self.create_section(section_piece,attrs = {}, default_param_values={}) #create record in table sections - obj = nil - self.transaction do - obj = create(:section_piece_id=> section_piece_id) do |sp| - sp.section_piece_instance = 1 - sp.attributes= attrs unless attrs.empty? + created_section = nil + self.transaction do + created_section = create!(:section_piece_id=> section_piece.id) do |section| + section.section_piece_instance = 1 + section.attributes= attrs unless attrs.empty? + section.slug = nil + section.for_terminal = section_piece.for_terminal end #copy the section piece param to section param table - obj.add_section_piece_param(default_param_values) + created_section.add_section_piece_param(default_param_values) #set root_id, css need root_piece_instance_id as selector - obj.update_attribute("root_id", obj.id) + created_section.update_attribute("root_id", created_section.id) end - obj - end - - # return created section - def add_section_piece(section_piece_id, default_param_values={}) - section_piece = SectionPiece.find(section_piece_id) + created_section + end + + # add section_piece into section, return created section + def add_section_piece(section_piece, default_param_values={}) + raise "section_piece is nil" if section_piece.blank? + # section_piece = SectionPiece.find(section_piece_id) tree = self.root.self_and_descendants - section_piece_instance = tree.select{|xnode| xnode.section_piece_id==section_piece_id}.size.succ - atts = { :section_piece_id=>section_piece_id} - obj = nil - self.class.transaction do - obj = self.class.create!(atts)do|obj| + section_piece_instance = tree.select{|xnode| xnode.section_piece_id==section_piece.id}.size.succ + atts = { :section_piece_id=>section_piece.id} + section = nil + self.class.transaction do + section = self.class.create!(atts)do|obj| obj.root_id= self.root_id - obj.section_piece_instance=section_piece_instance + obj.section_piece_instance=section_piece_instance end - obj.move_to_child_of(self) - obj.add_section_piece_param(default_param_values) + section.move_to_child_of(self) + section.add_section_piece_param(default_param_values) end - obj + section end - + def build_html - section_piece_hash = SectionPiece.all().inject({}){|h, s| h[s.id] = s; h} - tree = self.self_and_descendants - build_html_piece(tree, self, section_piece_hash) + #use full_set_nodes instead of self_and_descendants, full_set_nodes is includable. + tree = self.full_set_nodes + build_html_piece(tree, self, self.section_piece_in_hash) end - + def build_css - section_piece_hash = SectionPiece.all().inject({}){|h, s| h[s.id] = s; h} - tree = self.self_and_descendants - build_css_piece(tree, self, section_piece_hash) + #use full_set_nodes instead of self_and_descendants + tree = self.full_set_nodes + build_css_piece(tree, self, self.section_piece_in_hash) end - - - # Usage: add section piece param into this section + + + # Usage: add section piece param into this section # params: default_param_value, is a hash, class_name=>{htmal_attribute_id=>default_value,..} def add_section_piece_param(default_param_values={}) # section_id, section_piece_param_id, section_piece_id, section_piece_instance, is_enabled, disabled_ha_ids @@ -75,6 +90,7 @@ def add_section_piece_param(default_param_values={}) #sp.is_enabled = if default_param_values.key?(spp[:class_name]) dpvs = default_param_values.fetch spp[:class_name] +#Rails.logger.debug " dpvs =#{dpvs.inspect } , dpvs.slice(*spp.param_keys)= #{dpvs.slice(*spp.param_keys)}" sp.default_value = dpvs.slice(*spp.param_keys) sp.disabled_ha_ids = dpvs['disabled_ha_ids'].to_s end @@ -82,33 +98,33 @@ def add_section_piece_param(default_param_values={}) end end end - + def global_event_array if @global_event_array.nil? @global_event_array = self.global_events.split(',') end @global_event_array end - + def subscribed_global_event_array if @subscribed_global_event_array.nil? @subscribed_global_event_array = self.subscribed_global_events.split(',') end @subscribed_global_event_array end - - begin 'build html, css, js for section' + + begin 'build html, css, js for section' def build_html_piece(tree, node, section_piece_hash) - # .dup, do not alter the model, or affect other method. it may be in cache. - piece = node.section_piece.html.dup - piece.insert(0,get_section_script(node)) - unless node.leaf? + # .dup, do not alter the model, or affect other method. it may be in cache. + piece = section_piece_hash[node.section_piece_id].html.dup + #piece.insert(0,get_section_script(node)) + unless node.leaf? children = tree.select{|n| n.parent_id==node.id} for child in children subpiece = build_html_piece(tree, child, section_piece_hash) - if(pos = (piece.rindex(/~~content~~/))) + if(pos = (piece.rindex(/~~content~~/))) piece.insert(pos,subpiece) - else + else piece.concat(subpiece) end end @@ -123,23 +139,23 @@ def build_html_piece(tree, node, section_piece_hash) end piece end - + def build_css_piece(tree, node, section_piece_hash) #duplicate the css, then modify it. - piece = section_piece_hash[node.section_piece_id].css.dup + piece = section_piece_hash[node.section_piece_id].css.dup piece.insert(0,get_section_script(node)) - unless node.leaf? + unless node.leaf? children = tree.select{|n| n.parent_id==node.id} for child in children - subpiece = build_css_piece(tree, child, section_piece_hash) + subpiece = build_css_piece(tree, child, section_piece_hash) piece.concat(subpiece) end end piece end - + def build_js_piece(tree) - js_ids = '' + js_ids = '' for node in tree js_ids.concat(section_piece_hash[node.section_piece_id].js) end @@ -150,19 +166,38 @@ def build_js_piece(tree) end piece end - + def get_section_script(node) - #only set @param_values, @menus for root piece. - header= <<-EOS - <% g_section_id=#{node.id}; - @template.select(g_page_layout_id, g_section_id); - g_piece_selector = @template.current_piece.piece_selector; - %> - EOS - end - + # keep it in one line, quicker parsing + "<% @template.select(0, #{node.id}); %>" + end + + def section_piece_in_hash + if @section_piece_in_hash.nil? + @section_piece_in_hash = SectionPiece.all().inject({}){|h, s| h[s.id] = s; h} + end + @section_piece_in_hash + end + + end + + # add new column later. + def is_container? + usage =='container' + end + + def is_zoomable_image? + usage =='image-with-thumbnails' + end + + def is_image? + usage =~ /image/ + end + + def is_html_root? + usage =='root' end end -end \ No newline at end of file +end diff --git a/spree_theme/app/models/spree/section_param.rb b/spree_theme/app/models/spree/section_param.rb index 9368d00b..0241adbf 100644 --- a/spree_theme/app/models/spree/section_param.rb +++ b/spree_theme/app/models/spree/section_param.rb @@ -1,10 +1,10 @@ module Spree - class SectionParam < ActiveRecord::Base + class SectionParam < ActiveRecord::Base has_many :param_values, :dependent=>:destroy belongs_to :section_piece_param belongs_to :section serialize :default_value, Hash - + after_create :add_param_values def disabled_html_attribute_ids @@ -13,51 +13,64 @@ def disabled_html_attribute_ids end @disabled_html_attribute_ids end - - + + #filter: :all, :disabled, :enabled def html_attributes(attribute_filter= :enabled) if @html_attributes.nil? ha_ids = self.section_piece_param.html_attribute_ids.split(',').collect{|i|i.to_i} @html_attributes= HtmlAttribute.find_by_ids(ha_ids) end - + case attribute_filter when :enabled return_html_attributes = @html_attributes.select{|ha| !disabled_html_attribute_ids.include?(ha.id)} when :disabled - return_html_attributes = @html_attributes.select{|ha| disabled_html_attribute_ids.include?(ha.id)} + return_html_attributes = @html_attributes.select{|ha| disabled_html_attribute_ids.include?(ha.id)} else return_html_attributes = @html_attributes end - + end - - + + begin 'these methods only for development and system improvement' def add_default_values( html_attribute_values) - + end - + # ex. font-weight:bold, font-weight html_attribute id is 27, add_default_value(27,'font-weight:bold') - def add_default_value( html_attribute_id, html_attribute_value ) - self.default_value[html_attribute_id] = html_attribute_value + # * params + # * html_attribute_key - html_attribute, html_attribute.id or id+'unset' + def add_default_value( html_attribute_key, html_attribute_value ) + # key requires string, json required + html_attribute_key = case html_attribute_key + when Spree::HtmlAttribute + html_attribute_key.id.to_s + when String + html_attribute_key + else + html_attribute_key.to_s + end + + self.default_value[html_attribute_key] = html_attribute_value self.save! #get related param_values, if html_attribute_id is nil, set default value - self.param_values.each{|pv| - pv.pvalue[html_attribute_id] = html_attribute_value - #do not use update_column, or pv.pvalue would raise 'string not matched (IndexError)' during calling next time - pv.save! - #pv.update_column(:pvalue, pv.pvalue.to_yaml) + self.param_values.each{|pv| + if pv.pvalue[html_attribute_key].nil? + pv.pvalue[html_attribute_key] = html_attribute_value + #do not use update_column, or pv.pvalue would raise 'string not matched (IndexError)' during calling next time + pv.save! + end } end - + def remove_default_value(html_attribute_id) if self.default_value.key? html_attribute_id default_html_attribute_value = self.default_value.delete html_attribute_id - self.save! + self.save! #get related param_values, if html_attribute_id is nil, set default value - self.param_values.each{|pv| + self.param_values.each{|pv| if pv.pvalue[html_attribute_id] == default_html_attribute_value pv.pvalue.delete html_attribute_id pv.update_column(:pvalue, pv.pvalue.to_yaml) @@ -66,22 +79,22 @@ def remove_default_value(html_attribute_id) end end end + private #add param_value where page_layout.section_id = ? for each layout tree. - def add_param_values - page_layouts = PageLayout.includes(:themes).where("section_id"=>self.section.root_id) + def add_param_values + page_layouts = PageLayout.where("section_id"=>self.section.root_id) for page_layout in page_layouts - for theme in page_layout.themes page_layout.param_values.create do|param_value| - param_value.theme_id = theme.id - param_value.page_layout_root_id = page_layout.root_id + param_value.theme_id = page_layout.template_theme_id + param_value.page_layout_root_id = page_layout.root.id param_value.section_param_id = self.id end - end + end end - - + + end - -end \ No newline at end of file + +end diff --git a/spree_theme/app/models/spree/section_piece.rb b/spree_theme/app/models/spree/section_piece.rb index f3c2492b..5c727410 100644 --- a/spree_theme/app/models/spree/section_piece.rb +++ b/spree_theme/app/models/spree/section_piece.rb @@ -6,8 +6,8 @@ class SectionPiece < ActiveRecord::Base has_many :sections has_many :section_piece_params friendly_id :title, :use => :slugged - scope :with_resources, where(["resources!=?",'']) - scope :html_roots, where(:is_root=>true) + scope :with_resources, ->{ where.not(resources: '') } + scope :html_roots, ->{ where( is_root: true) } # resources m:/m:signup # return array of struct{:resource, :context} def wrapped_resources diff --git a/spree_theme/app/models/spree/specific_taxon.rb b/spree_theme/app/models/spree/specific_taxon.rb index 70efc18f..2429fdb8 100644 --- a/spree_theme/app/models/spree/specific_taxon.rb +++ b/spree_theme/app/models/spree/specific_taxon.rb @@ -1,20 +1,15 @@ #encoding utf8 # a template page_layout is composited of sections # each section could be specific for assigned taxons, only appear in those pages. -# 示例: 有一个section, 内容是 form表单 “请留言”, 希望只出现在 “联系我们” 页面里。 +# 示例: 有一个section, 内容是 form表单 “请留言”, 希望只出现在 “联系我们” 页面里。 # 在 template_themes.assigned_resource_ids 里, 已经有关键字 :spree_taxon,表示分配给section的菜单。 # 这里我们通过继承,创建新的关键字 :spree_specific_taxon # -module Spree +module Spree # comma separated taxon_id - # it has to be in template_theme, use assigned_resource_ids + # it has to be in template_theme, use assigned_resource_ids class SpecificTaxon < SpreeTheme.taxon_class - include AssignedResource::SourceInterface - # it is resource of template_theme - def importable? - false - end end end diff --git a/spree_theme/app/models/spree/template_file.rb b/spree_theme/app/models/spree/template_file.rb index c98c2a6f..d6f9683d 100644 --- a/spree_theme/app/models/spree/template_file.rb +++ b/spree_theme/app/models/spree/template_file.rb @@ -1,32 +1,32 @@ module Spree - + # file uploaded for template class TemplateFile < ActiveRecord::Base - include Spree::AssignedResource::SourceInterface - belongs_to :template_theme, :foreign_key=>"theme_id" - + belongs_to :template_theme, :foreign_key=>"theme_id", :class_name =>'Spree::TemplateTheme' + #validates_uniqueness_of :file_name - has_attached_file :attachment + has_attached_file :attachment, styles: { mini: '48x48>' } self.attachment_definitions[:attachment][:url] = "/shops/:rails_env/:site/:class/:id/:basename_:style.:extension" self.attachment_definitions[:attachment][:path] = ":rails_root/public/shops/:rails_env/:site/:class/:id/:basename_:style.:extension" self.attachment_definitions[:attachment][:default_url] = "/images/:style/missing.png" - - delegate :url, :to => :attachment + validates_attachment_content_type :attachment, :content_type => /\Aimage\/.*\Z/ + + delegate :url, :to => :attachment delegate :site_id, :to => :template_theme # required by Paperclip.interpolates :site #it is required while import theme with new template_file. we would set theme.assigned_resources while import. attr_accessor :page_layout_id #attr_accessible :theme_id, :attachment, :page_layout_id #get resource name. alias_attribute(:name, :attachment_file_name) - - #it is required, even for logo, app_configuration has default logo, each theme could customize logo + + #it is required, even for logo, app_configuration has default logo, each theme could customize logo validate :template_theme, :presence=>true - + #for resource_class.resourceful scope :resourceful, ->(theme){ where(:theme_id=>theme.id)} - - + + #deep dup def dup original_dup = super @@ -34,9 +34,5 @@ def dup original_dup end - # it is resource of template_theme - def importable? - false - end end end diff --git a/spree_theme/app/models/spree/template_text.rb b/spree_theme/app/models/spree/template_text.rb index 27f85cd3..ce92df44 100644 --- a/spree_theme/app/models/spree/template_text.rb +++ b/spree_theme/app/models/spree/template_text.rb @@ -1,36 +1,20 @@ -module Spree +module Spree class TemplateText < ActiveRecord::Base - include Spree::AssignedResource::SourceInterface - + validates_presence_of :name #attr_accessible :name, :body #for resource_class.resourceful + belongs_to :site scope :resourceful, ->(theme){ where("1=1") } - default_scope ->{ where(:site_id=>Site.current.id)} + default_scope ->{ where(:site_id=>SpreeTheme.site_class.current.id)} before_validation :normalize_permalink - # it is resource of template_theme - def importable? - true - end - - def self.find_or_copy( text ) - existing_text = find_by_permalink( text.permalink ) - if existing_text.blank? - cloned_branch = text.dup - cloned_branch.site_id = Spree::Site.current.id - cloned_branch.save! - end - existing_text||cloned_branch - - end - private def normalize_permalink self.permalink = (permalink.blank? ? name.to_s.to_url : permalink).downcase.gsub(/(^[\/\-\_]+)|([\/\-\_]+$)/, "") end - + end end diff --git a/spree_theme/app/models/spree/template_theme.rb b/spree_theme/app/models/spree/template_theme.rb index 577de5e2..e3f51f1d 100644 --- a/spree_theme/app/models/spree/template_theme.rb +++ b/spree_theme/app/models/spree/template_theme.rb @@ -1,7 +1,7 @@ #encoding: utf-8 # * 这是一个示例页面 -# * -# * hello world! +# * +# * hello world! # * # * 从抽象角度看,一个网站是很多页面组成,每个页面是由html和css。 # * html 表示了页面的布局(html标签如
      ,
        )和内容(除标签外的数据,如:上面的 'hello world'),css 表示了页面的样式。 @@ -11,7 +11,7 @@ # * 每个网站的页面数量是未定的。 但是我们可以所有的页面分成几类: # * 首页,产品列表, 产品描述, 登陆/注册, 购物车, 结帐, 购物成功,我的账户, 密码恢复。 # * 如果模板提供了这几类页面,网站就可以使用了。 -# * 不同的页面有不同的内容, 当创建页面时,需要设定页面的类型。 +# * 不同的页面有不同的内容, 当创建页面时,需要设定页面的类型。 # * 2. 设计页面布局,根据html语言的特点, 页面的布局可以看成树型结构,如图所示,每个节点可以是相对独立的一部分页面,或者是容器包含其他节点。 # * html root - head # * - body - logo @@ -23,78 +23,89 @@ # * - footer # * 我们把节点定义为section, 每一个section由html标签、css和内容组成。 如果一个section是容器,那么它可以包含其他section. # * 在实际中, 多个页面希望共用logo 、main menu 和 footer, cart只在购物车页面显示。因此每个section可以有页面类型,表示它适用于什么样的页面。 -# * +# * # * 3. 设计页面内容. 不同的页面有不同的内容,模板的内容有几类: 图片、文字、菜单 、产品信息和表单 # * 图片、文字、菜单 、产品信息都是用户添加的,称为用户资源,用户可以把它分配给相应section,实现展示。 -# * 为了便于对产品的管理,我们用taxon作为产品的集合, 一个页面可以由一个或几个taxon的产品构成。 -# * 4. 设计页面样式. CSS设计, 用户通过设置section的css值实现。 -# * -# * -# * template_theme, -# * template_theme, it is a template of site. In a general way, we could say all template are just html and css. +# * 为了便于对产品的管理,我们用taxon作为产品的集合, 一个页面可以由一个或几个taxon的产品构成。 +# * 4. 设计页面样式. CSS设计, 用户通过设置section的css值实现。 +# * +# * +# * template_theme, +# * template_theme, it is a template of site. In a general way, we could say all template are just html and css. # * template_theme is composite of page_layout and param_values. page_layout is html, param_value is css -# * +# * module Spree #it is a theme of page_layout class TemplateTheme < ActiveRecord::Base include AssignedResource::IdsHandler #extend FriendlyId - belongs_to :website, :class_name => SpreeTheme.site_class.to_s, :foreign_key => "site_id" - - #belongs_to :website #move it into template_theme_decorator + TerminalEnum = Struct.new( :desktop, :mobile, :pad, :tv )[0,1,2,3] + + #belongs_to :website, :class_name => SpreeTheme.site_class.to_s, :foreign_key => "site_id" + belongs_to :store, :foreign_key => "store_id" + # for now template_theme and page_layout are one to one + has_one :page_layout_root, -> { where parent_id: nil }, class_name: "Spree::PageLayout" + has_many :page_layouts, inverse_of: :template_theme + #commnet it out after migration AddThemeIdToPageLayout done. belongs_to :page_layout, :foreign_key=>"page_layout_root_id" #, :dependent=>:destroy #imported theme refer to page_layout of original theme has_many :param_values, :foreign_key=>"theme_id", :dependent => :delete_all - has_many :template_files, :foreign_key=>"theme_id", :dependent => :delete_all + has_many :template_files, foreign_key: "theme_id", class_name: "Spree::TemplateFile", inverse_of: :template_theme, dependent: :delete_all has_many :template_releases, :foreign_key=>"theme_id", :dependent => :delete_all # template_release may be in current or design site belongs_to :current_template_release, :class_name=>"TemplateRelease", :foreign_key=>"release_id" - - scope :by_layout, ->(layout_id) { where(:page_layout_root_id => layout_id) } + has_one :mobile, foreign_key: "master_id", class_name: self.name + belongs_to :desktop, foreign_key: "master_id", class_name: self.name + belongs_to :duplicated_from, foreign_key: "copy_from_id", class_name: self.name + #use string as key instead of integer page_layout.id, exported theme in json, after restore, key is always string serialize :assigned_resource_ids, Hash - scope :within_site, ->(site){ where(:site_id=> site.id) } + + #scope :within_site, ->(site){ where(:site_id=> site.id) } scope :released, ->{ where("release_id>0") } scope :published, -> { released.where(:is_public=>true) } - + scope :for_desktop, ->{ where( for_terminal: TerminalEnum.desktop) } + scope :for_mobile, ->{ where( for_terminal: TerminalEnum.mobile) } + before_validation :fix_special_attributes before_destroy :remove_relative_data after_create :initialize_page_layout_for_plain_theme - + validates :title, presence: true attr_accessor :section_root_id - #attr_accessible :is_public, :site_id,:page_layout_root_id,:title, :section_root_id # section_root_id is only required for create- initialize_page_layout #attr_accessible :assigned_resource_ids, :template_files #import require it. - - + # add method original_page_layout_root, original_page_layouts + delegate :page_layout_root, :page_layouts, to: :original_template_theme, prefix: :original + class << self # template has page_layout & param_values - # + # def create_plain_template( section_root, title, attrs={}) #create a theme first. - template = TemplateTheme.create({:title=>title, :section_root_id=>section_root.id}.merge(attrs)) + template = TemplateTheme.create( {:title=>title, :section_root_id=>section_root.id}.merge(attrs) ) do |obj| + end end - + def native - self.within_site(SpreeTheme.site_class.current ) + where(:store=> Spree::Store.current) end - + def foreign - self.within_site(SpreeTheme.site_class.designsite ).published - end - + where(:store=> Spree::Store.designable).published + end + # original_theme may be attributes in hash def fix_related_data_for_copied_theme(new_theme, new_nodes, new_template_files, original_theme, original_nodes, original_template_files, created_at) # # update param_values original_theme_id = original_theme['id'] new_theme_id = new_theme.id - + original_nodes.each_with_index{|node,index| new_node = new_nodes[index] ParamValue.where( :theme_id=>original_theme_id, :page_layout_id=>node.id, :created_at=>created_at ). - update_all( :page_layout_id=> new_node.id, :page_layout_root_id=>new_theme.page_layout_root_id, :theme_id=>new_theme_id ) + update_all( :page_layout_id=> new_node.id, :page_layout_root_id=>new_theme.page_layout_root_id, :theme_id=>new_theme_id ) obsolete_template_resources = new_theme.template_resources.select{|template_resource| template_resource.page_layout_id== node.id } if obsolete_template_resources.present? #change page_layout_key, update one of them is done. @@ -103,33 +114,33 @@ def fix_related_data_for_copied_theme(new_theme, new_nodes, new_template_files, } # after page_layout_key updated, confirm template_resource existing. new_theme.template_resources.select{|template_resource| template_resource.source.nil? }.each(&:destroy!) - + if created_at.present? Spree::TemplateFile.where(:created_at=>created_at, :theme_id=>original_theme_id).update_all( :theme_id=>new_theme_id ) - Spree::TemplateRelease.where(:created_at=>created_at, :theme_id=>original_theme_id).update_all( :theme_id=>new_theme_id ) + Spree::TemplateRelease.where(:created_at=>created_at, :theme_id=>original_theme_id).update_all( :theme_id=>new_theme_id ) end new_theme.save! - end + end # copy taxon,text from original_theme to new_theme - def import_assigned_resource( original_theme, new_theme ) - original_template_resources = original_theme.template_resources - # new_theme.assigned_resource_ids is empty now - new_theme.assigned_resource_ids = original_theme.assigned_resource_ids.dup - # import each resource - new_theme.template_resources.each{| template_resource | - unscoped_source = template_resource.unscoped_source - if unscoped_source.present? && unscoped_source.importable? - new_source = template_resource.source_class.find_or_copy unscoped_source - template_resource.update_attribute!(:source_id, new_source.id) - else - template_resource.destroy! - end - } - # assgin imported resource to new_theme - end + #def import_assigned_resource( original_theme, new_theme ) + # original_template_resources = original_theme.template_resources + # # new_theme.assigned_resource_ids is empty now + # new_theme.assigned_resource_ids = original_theme.assigned_resource_ids.dup + # # import each resource + # new_theme.template_resources.each{| template_resource | + # unscoped_source = template_resource.unscoped_source + # if unscoped_source.present? && unscoped_source.importable? + # new_source = template_resource.source_class.find_or_copy unscoped_source + # template_resource.update_attribute!(:source_id, new_source.id) + # else + # template_resource.destroy! + # end + # } + # # assgin imported resource to new_theme + #end end - + # params # options: page_only- do not create template_release record, rake task import_theme required it def release( release_attributes= {},option={}) @@ -140,21 +151,21 @@ def release( release_attributes= {},option={}) end self.reload # release_id shoulb be template_release.id @lg = PageTag::PageGenerator.releaser( self ) - @lg.release - self.current_template_release + @lg.release + self.current_template_release end - - begin 'for page generator' + + begin 'for page generator' # * params - # * usage - may be [ehtml, css, js] + # * usage - may be [ruby,ehtml, css, js] def file_name(usage) if usage.to_s == 'ehtml' - "l#{page_layout_root_id}.html.erb" + "l#{original_page_layout_root.id}.html.erb" else - "l#{page_layout_root_id}.#{usage}" - end + "l#{original_page_layout_root.id}.#{usage}" + end end - + # folder name 'layouts' is required, rails look for layout in folder named 'layouts' def path # self.id is not accurate, it may use imported theme of design site. @@ -165,252 +176,227 @@ def path File.join( File::SEPARATOR+'layouts', "t#{self.id}_r#{self.release_id}") end end - + def document_path - File.join( page_layout.site.document_path, self.path) + File.join( original_template_theme.store.document_path, self.path) end - + # * params # * targe - could be css, js # * return js or css document file path, ex /shops/development/1/layouts/t1_r1/l1_t1.css def file_path( target ) # theme.site do not work. - File.join(page_layout.site.path, self.path, file_name(target)) + File.join( original_template_theme.store.path, self.path, file_name(target)) end - + def layout_path - document_file_path( :ehtml ) - end - + document_file_path( :ruby ) + end + def document_file_path( target ) File.join( document_path, file_name(target) ) end - + #def released? - # release_id > 0 - #end + # release_id > 0 + #end end - + begin 'edit template' - #import template theme design into current site - #only create template record, do not copy param_value,page_layout,template_file... - # * params - # * resource_config - new configuration for resource - def import(new_attributes={}) - raise ArgumentError unless self.template_releases.exists? && self.is_public? - #only released template and :is_public is importable - #create theme record - new_theme = self.dup - #set resource to site native - new_theme.title = "Imported "+ new_theme.title - new_theme.attributes = new_attributes - new_theme.assigned_resource_ids = {} - new_theme.site_id = SpreeTheme.site_class.current.id - new_theme.save! - new_theme - end - - # for simple to user, copy taxonomy as well when import. - # - def import_with_resource( new_attributes={}) - self.transaction do - new_theme = import( new_attributes ) - #include taxon, image, file, specific-taxon - self.class.import_assigned_resource( self, new_theme ) - new_theme - end - end - - + # theme from design shop has been imported into current site or not def imported? # theme should has page_layout, param_values themes = TemplateTheme.native.includes(:current_template_release) #theme.current_template_release may be nil - themes.select{|theme| theme.current_template_release.try(:theme_id) == self.id}.present? + themes.select{|theme| theme.current_template_release.try(:theme_id) == self.id}.present? end - + def has_native_layout? - !self.class.exists?(["page_layout_root_id=? and idself.page_layout_root_id).first end - + + def duplicator + TemplateThemeDuplicator.new( self ) + end + + def duplicate + duplicator.duplicate + end # Usage: user want to copy this layout&theme to new for editing or backup. # we need copy param_value and theme_images - # note that it is only for root. - def copy_to_new() - created_at = DateTime.now - original_layout = self.page_layout - #copy new whole tree - new_layout = original_layout.copy_to_new - #create theme record - new_theme = self.dup - new_theme.release_id = 0 # new copied theme should have no release - new_theme.page_layout_root_id = new_layout.id - new_theme.save! - - #copy param values - #INSERT INTO tbl_temp2 (fld_id) SELECT tbl_temp1.fld_order_id FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100; - table_name = ParamValue.table_name - - table_column_names = ParamValue.column_names - table_column_names.delete('id') - table_column_values = table_column_names.dup - # method fix_related_data_for_copied_theme handle theme_id, page_layout_root_id - #table_column_values[table_column_values.index('page_layout_root_id')] = new_layout.id - #table_column_values[table_column_values.index('theme_id')] = new_theme.id - table_column_values[table_column_values.index('created_at')] = "'#{created_at.utc.to_s(:db)}'" #=>'2014-08-20 02:48:23' - #copy param value from origin to new. - sql = %Q!INSERT INTO #{table_name}(#{table_column_names.join(',')}) SELECT #{table_column_values.join(',')} FROM #{table_name} WHERE (theme_id =#{self.id})! - self.class.connection.execute(sql) - #copy template_files - new_template_files = self.template_files.map{|template_file| - new_template_file = template_file.dup - new_template_file.theme_id = new_theme.id - new_template_file.created_at = created_at - new_template_file.save! - } - #update layout_id to new_layout.id - self.class.fix_related_data_for_copied_theme(new_theme, new_layout.self_and_descendants, new_template_files, self, original_layout.self_and_descendants, self.template_files, created_at) - return new_theme - end - + # note that it is only for root. + #def copy_to_new() + # created_at = DateTime.now + # original_layout = self.page_layout_root + # #copy new whole tree + # new_layout = original_layout.copy_to_new + # #create theme record + # new_theme = self.dup + # new_theme.store_id = Spree::Store.current.id + # new_theme.release_id = 0 # new copied theme should have no release + # new_theme.page_layout_root_id = new_layout.id + # new_theme.save! + + # #copy param values + # #INSERT INTO tbl_temp2 (fld_id) SELECT tbl_temp1.fld_order_id FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100; + # table_name = ParamValue.table_name + + # table_column_names = ParamValue.column_names + # table_column_names.delete('id') + # table_column_values = table_column_names.dup + # # method fix_related_data_for_copied_theme handle theme_id, page_layout_root_id + # #table_column_values[table_column_values.index('page_layout_root_id')] = new_layout.id + # #table_column_values[table_column_values.index('theme_id')] = new_theme.id + # table_column_values[table_column_values.index('created_at')] = "'#{created_at.utc.to_s(:db)}'" #=>'2014-08-20 02:48:23' + # #copy param value from origin to new. + # sql = %Q!INSERT INTO #{table_name}(#{table_column_names.join(',')}) SELECT #{table_column_values.join(',')} FROM #{table_name} WHERE (theme_id =#{self.id})! + # self.class.connection.execute(sql) + # #copy template_files + # new_template_files = self.template_files.map{|template_file| + # new_template_file = template_file.dup + # new_template_file.theme_id = new_theme.id + # new_template_file.created_at = created_at + # new_template_file.save! + # } + # #update layout_id to new_layout.id + # self.class.fix_related_data_for_copied_theme(new_theme, new_layout.self_and_descendants, new_template_files, self, original_layout.self_and_descendants, self.template_files, created_at) + # return new_theme + #end + # Usage: modify layout, add the section instance as child of current node into the layout, - # Params: + # Params: # page_layout, instance of model PageLayout # relationship, 'parent', 'silbing' # selected_page_layout, there should be selected one, except adding root page_layout # return: added page_layout record - # + # def add_section(section, selected_page_layout=nil, attrs={}) # check section.section_piece.is_container? added_section = nil - if section.root? + if section.root? section_instance = 1 if selected_page_layout.present? - raise 'only container could has child section' unless selected_page_layout.section.section_piece.is_container + raise 'only container could has child section' unless selected_page_layout.section.section_piece.is_container whole_tree = selected_page_layout.root.self_and_descendants section_instance = whole_tree.select{|xnode| xnode.section_id==section.id}.size.succ end - attrs[:title]||="#{section.title}#{section_instance}" + attrs[:title]||="#{section.title}#{section_instance}" added_section = PageLayout.create do|obj| obj.section_id, obj.section_instance=section.id, section_instance obj.assign_attributes( attrs ) obj.root_id = selected_page_layout.root_id if selected_page_layout.present? + obj.template_theme_id = self.id obj.site_id = SpreeTheme.site_class.current.id obj.is_full_html = section.section_piece.is_root? end if selected_page_layout.present? added_section.move_to_child_of(selected_page_layout) - else - added_section.update_attribute("root_id",added_section.id) end #copy the default section param value to the layout added_section.add_param_value(self) end added_section end - + # ex. get dialog section def find_section_by_usage( usage ) - PageLayout.includes(:section=>:section_piece).where(["#{PageLayout.table_name}.root_id=? and #{SectionPiece.table_name}.usage=?",self.page_layout_root_id, usage]).first + # ["#{PageLayout.table_name}.root_id=? and #{SectionPiece.table_name}.usage=?",self.page_layout_root_id, usage] + PageLayout.includes(:section).where( spree_sections:{usage: usage}, template_theme_id: original_template_theme.id ).first end - + def dialog_content_container_selector dialog = find_section_by_usage( 'dialog' ) - dialog_content_container = dialog.section.descendants.includes(:section_piece).select{|section| section.section_piece.usage=='dial-cont'}.first - dialog.css_selector(dialog_content_container)+"_inner" + dialog.css_selector + " .dialog_content" end - + end begin 'export&import' # export to yaml, include page_layouts, param_values, template_files # it is a hash with keys :template, :param_values, :page_layouts def serializable_data - template = self.class.find(self.id,:include=>[:param_values,:page_layout]) + template = self.class.includes(:param_values,:page_layout_root).find(self.id) # template.page_layout.self_and_descendants would cause error # https://github.com/rails/rails/issues/5303 # serializable_data.to_yaml, it only get error in rake task. # serializable_data.to_json, key is string when load - hash ={'template'=>template, 'param_values'=>template.param_values, 'page_layouts'=>template.page_layout.self_and_descendants.all, + hash ={'template'=>template, 'param_values'=>template.param_values, 'page_layouts'=>template.page_layout_root.self_and_descendants.all, 'template_files'=>template.template_files,'template_releases'=>template.template_releases - } - hash + } + hash end - + # it would delete existing one first, then import # params # file - opened file - # return imported theme - def self.import_into_db( serialized_data, replace_exisit= false ) - new_template = nil - template = serialized_data.stringify_keys!.fetch 'template' - transaction do - created_at = DateTime.now - # support yaml/json, record is model/hash - #site id is 1 in exported yml, in spree_abc, design.dalianshops.com is 2 - original_template_attributes = get_attributes_serialized_data(template).merge!( 'created_at'=>created_at ) - - if self.exists?(original_template_attributes['id']) - if replace_exisit - existing_template = self.find(original_template_attributes['id']) - existing_template.destroy - end - end + # return imported theme + #def self.import_into_db( serialized_data, replace_exisit= false ) + # new_template = nil + # template = serialized_data.stringify_keys!.fetch 'template' + # transaction do + # created_at = DateTime.now + # # support yaml/json, record is model/hash + # #site id is 1 in exported yml, in spree_abc, design.dalianshops.com is 2 + # original_template_attributes = get_attributes_serialized_data(template).merge!( 'created_at'=>created_at ) + # if self.exists?(original_template_attributes['id']) + # if replace_exisit + # existing_template = self.find(original_template_attributes['id']) + # existing_template.destroy + # end + # end + # if replace_exisit + # create!(original_template_attributes) + # else + # create!(original_template_attributes.except('id')) + # end + # new_template = self.where( original_template_attributes.slice('created_at','title','page_layout_root_id') ).first + # # we need new template id + # # template = self.find_by_title template.title + # serialized_data['param_values'].each do |record| + # attributes = get_attributes_serialized_data(record).except('id') + # #for unknown reason param_value.created_at/updated_at may be nil + # attributes['created_at']=created_at + # attributes['updated_at']=attributes['created_at'] if attributes['updated_at'].blank? + # ParamValue.create!(attributes) + # end + # original_nodes = serialized_data['page_layouts'] + # original_nodes = original_nodes.collect{|node| build_model_from_serialized_data( PageLayout, node)} + # new_nodes = PageLayout.copy_to_new( original_nodes ) + # new_template.update_attribute(:page_layout_root_id, new_nodes.first.id) + # #serialized_data[:page_layouts].each do |record| + # # table_name = PageLayout.table_name + # # connection.insert_fixture(record.attributes, table_name) + # #end + # new_template_files = [] + # original_template_files = [] + # serialized_data['template_files'].each_with_index do |record, i| + # original_template_file_attributes = get_attributes_serialized_data(record) + # attributes = original_template_file_attributes.except('id').merge!('created_at'=>created_at,'theme_id'=>new_template.id) + # TemplateFile.create!(attributes) + # new_template_files << TemplateFile.where( attributes.slice('created_at','theme_id') ).first + # original_template_files << original_template_file_attributes + # end + # serialized_data['template_releases'].each do |record| + # attributes = get_attributes_serialized_data(record).except('id').merge!('created_at'=>created_at,'theme_id'=>new_template.id) + # TemplateRelease.create!(attributes) + # end + # fix_related_data_for_copied_theme(new_template, new_nodes, new_template_files, original_template_attributes, original_nodes, original_template_files, created_at) + # end + # new_template + #end - if replace_exisit - connection.insert_fixture(original_template_attributes, self.table_name) - else - connection.insert_fixture(original_template_attributes.except('id'), self.table_name) - end - new_template = self.where( original_template_attributes.slice('created_at','title','page_layout_root_id') ).first - # we need new template id - # template = self.find_by_title template.title - serialized_data['param_values'].each do |record| - table_name = ParamValue.table_name - attributes = get_attributes_serialized_data(record).except('id') - #for unknown reason param_value.created_at/updated_at may be nil - attributes['created_at']=created_at - attributes['updated_at']=attributes['created_at'] if attributes['updated_at'].blank? - connection.insert_fixture(attributes, table_name) - end - original_nodes = serialized_data['page_layouts'] - original_nodes = original_nodes.collect{|node| build_model_from_serialized_data( PageLayout, node)} - new_nodes = PageLayout.copy_to_new( original_nodes ) - new_template.update_attribute(:page_layout_root_id, new_nodes.first.id) - #serialized_data[:page_layouts].each do |record| - # table_name = PageLayout.table_name - # connection.insert_fixture(record.attributes, table_name) - #end - new_template_files = [] - original_template_files = [] - serialized_data['template_files'].each_with_index do |record, i| - table_name = TemplateFile.table_name - original_template_file_attributes = get_attributes_serialized_data(record) - attributes = original_template_file_attributes.except('id').merge!('created_at'=>created_at,'theme_id'=>new_template.id) - connection.insert_fixture(attributes, table_name) - new_template_files << TemplateFile.where( attributes.slice('created_at','theme_id') ).first - original_template_files << original_template_file_attributes - end - serialized_data['template_releases'].each do |record| - table_name = TemplateRelease.table_name - attributes = get_attributes_serialized_data(record).except('id').merge!('created_at'=>created_at,'theme_id'=>new_template.id) - connection.insert_fixture(attributes, table_name) - end - fix_related_data_for_copied_theme(new_template, new_nodes, new_template_files, original_template_attributes, original_nodes, original_template_files, created_at) - end - new_template - end - def self.build_model_from_serialized_data(model_class, serialized_data) if serialized_data.kind_of? ActiveRecord::Base serialized_data @@ -419,78 +405,90 @@ def self.build_model_from_serialized_data(model_class, serialized_data) model_attributes = get_attributes_serialized_data( serialized_data ) model_class.new do|instance| model_attributes.each_pair{|key, val| instance[key] = val } - end + end end end - + def self.get_attributes_serialized_data( serialized_data ) # {:a=>1}.shift.last =>1, serialized_data in json { model_name=>{att1=>att1_value ...}} (serialized_data.kind_of? ActiveRecord::Base) ? serialized_data.attributes : serialized_data.shift.last end end - + def remove_relative_data if self.has_native_layout? - self.page_layout.destroy + self.page_layout_root.destroy end end - + begin 'assigned resource' - - # get resources order by taxon/image/text, - # return array of resources, no nil contained - def assigned_resources_by_page_layout( page_layout ) + + # get resources order by taxon/image/text, + # return array of resources, nil may be contained + def assigned_resources_by_page_layout( selected_page_layout = nil ) template_resources.select{|template_resource| - template_resource.page_layout_id==page_layout.id + template_resource.page_layout_id==selected_page_layout.id }.collect(&:source) end - + # all resources used by this theme - # return menu roots/ images /texts, if none assgined, return [nil] or [] - def assigned_resources( resource_class, page_layout ) + # return taxon roots/ images /texts, if none assgined, return [nil] or [] + def assigned_resources( resource_class, selected_page_layout = nil ) + selected_page_layout ||= self.page_layout_root template_resources.select{|template_resource| - template_resource.source_class == resource_class && template_resource.page_layout_id==page_layout.id + template_resource.source_class == resource_class && template_resource.page_layout_id==selected_page_layout.id }.collect(&:source) end - + # get assigned menu by specified page_layout_id, page_tag required # params: # resource_position: get first( position 0 ) of assigned resources by default # logged_and_unlogged_menu required this feature - def assigned_resource_id( resource_class, page_layout, resource_position=0 ) + def assigned_resource_id( resource_class, selected_page_layout = nil, resource_position=0 ) template_resources.select{|template_resource| - template_resource.source_class == resource_class && template_resource.page_layout_id==page_layout.id && template_resource.position == resource_position + template_resource.source_class == resource_class && template_resource.page_layout_id==selected_page_layout.id && template_resource.position == resource_position }.first.to_i end - + # assign resource to page_layout node - def assign_resource( resource, page_layout, resource_position=0 ) - create_template_resource( page_layout, resource, resource_position ) + def assign_resource( resource, selected_page_layout = nil, resource_position = 0 ) + selected_page_layout ||= self.page_layout_root + create_template_resource( selected_page_layout, resource, resource_position ) end # unassign resource from page_layout node - def unassign_resource( resource_class, page_layout, resource_position=0 ) + def unassign_resource( resource_class, selected_page_layout, resource_position = 0 ) template_resources.select{|template_resource| - template_resource.source_class == resource_class && template_resource.page_layout_id==page_layout.id && template_resource.position == resource_position + template_resource.source_class == resource_class && template_resource.page_layout_id==selected_page_layout.id && template_resource.position == resource_position }.each(&:destroy!) - + end - + #clear assigned_resource from theme def unassign_resource_from_theme!( resource ) template_resources.select{|template_resource| - template_resource.source == resource + template_resource.source == resource }.each(&:destroy!) end - + end - + + # * params - + # * taxon - model Spree::taxon + # * selected_page_layout - model Spree::PageLayout # called in current_page_tag # is page_layout valid to taxon, taxon is current page # return true if taxon is decendant of specific_taxons - def valid_context?(page_layout, taxon) - specific_taxons = assigned_resources( Spree::SpecificTaxon, page_layout).compact + def valid_context?(selected_page_layout, taxon) + #stylish only apply page_layout with context other than either. + if !selected_page_layout.context_either? + # Rails.logger.debug "--------selected_page_layout=#{ selected_page_layout.title} --------" + # page_layout.stylish_with_inherited is required, child should get stylish from accestor + return false unless ( selected_page_layout.stylish_with_inherited == taxon.stylish_with_inherited ) + end + + specific_taxons = assigned_resources( Spree::SpecificTaxon, selected_page_layout).compact specific_taxon_ids = specific_taxons.collect(&:id) - is_valid = (page_layout.valid_context?(taxon.current_context)) + is_valid = (selected_page_layout.valid_context?(taxon.current_context)) if is_valid && specific_taxon_ids.present? is_valid = specific_taxon_ids.include?(taxon.id) unless is_valid @@ -499,67 +497,76 @@ def valid_context?(page_layout, taxon) end is_valid end - + begin 'param values' def html_page HtmlPage.new(self) end - + # param values of self. #def full_param_values(editor_id=0) # if editor_id>0 - # ParamValue.find(:all, :include=>[:section_param=>[:section_piece_param=>:param_category]], + # ParamValue.find(:all, :include=>[:section_param=>[:section_piece_param=>:param_category]], # :conditions=>["theme_id=? and section_piece_params.editor_id=?", self.id, editor_id], # :order=>"section_piece_params.editor_id, param_categories.position") # else - # ParamValue.find(:all, :include=>[:section_param=>[:section_piece_param=>:param_category]], + # ParamValue.find(:all, :include=>[:section_param=>[:section_piece_param=>:param_category]], # :conditions=>["theme_id=?", self.id], # :order=>"section_piece_params.editor_id, param_categories.position") # end #end - + def get_resource_class_by_key( resource_key ) # "spree/template_file" => Spree::TemplateFile resource_key.classify.constantize end - end - - # taxon_id which is assigned to template_theme and its context is index - def index_page - taxon_id = 0 - - taxons = template_resources.select{|template_resource| - template_resource.source_class == SpreeTheme.taxon_class - }.collect(&:source) - if taxons.present? - taxon_home = SpreeTheme.taxon_class.homes.where(["taxonomy_id in (?)", taxons.map(&:taxonomy_id ) ]).first - if taxon_home.present? - taxon_id = taxon_home.id - end - end - taxon_id end - + + # taxon_id which is assigned to template_theme and its context is index + def home_page + taxon = nil + taxon_ids= template_resources.select{|template_resource| + template_resource.source_class == SpreeTheme.taxon_class + }.collect(&:source_id) + if taxon_ids.present? + taxons = SpreeTheme.taxon_class.where( id: taxon_ids ) + taxon = SpreeTheme.taxon_class.homes.where(["taxonomy_id in (?)", taxons.map(&:taxonomy_id ) ]).first + end + taxon + end + + # methods for mobile feature + def for_desktop? + for_terminal == TerminalEnum.desktop + end + + def for_mobile? + for_terminal == TerminalEnum.mobile + end + private def fix_special_attributes - if site_id == 0 + if store.blank? # when test, store_id may be nil self.site_id = SpreeTheme.site_class.current.id + self.store_id= Spree::Store.current.id end #fix Attribute was supposed to be a Hash, but was a String if new_record? && assigned_resource_ids.blank? self.assigned_resource_ids={} end end - + # it is for create plain theme, create would trigger it. # copy_to_new, import do not call it def initialize_page_layout_for_plain_theme if section_root_id.present? root_section = Section.roots.find(section_root_id) - page_layout_root = add_section( root_section ) - self.update_attribute("page_layout_root_id",page_layout_root.id) - end + new_page_layout_root = add_section( root_section ) + self.update_attributes( + page_layout_root_id: new_page_layout_root.id, + for_terminal: root_section.for_terminal ) + end end - + end end diff --git a/spree_theme/app/models/spree/template_theme_duplicator.rb b/spree_theme/app/models/spree/template_theme_duplicator.rb new file mode 100644 index 00000000..8558d6ce --- /dev/null +++ b/spree_theme/app/models/spree/template_theme_duplicator.rb @@ -0,0 +1,111 @@ +# mainly COPY from spree/core/product_duplicator +module Spree + class TemplateThemeDuplicator + attr_accessor :original_template_theme + def initialize( template_theme) + self.original_template_theme = template_theme + end + + def duplicate + #page_layout tree, template_files, template_theme save together. + new_template_theme = duplicate_template_theme + new_template_theme.page_layout_root = duplicate_page_layout( new_template_theme ) + new_template_theme.template_files = duplicate_template_files( new_template_theme ) + new_template_theme.save! + # page_layout_root is nested_set, it is not same as template_files + # new_template_theme.page_layout_root_id is 0. + # new_template_theme.save => new_template_theme.page_layout_root.save => new_template_theme.page_layout_root.template_theme.save + # so in fact new_template_theme is saved first, then page_layout_root.save ... + # even new_template_theme saved and page_layout_root saved + # we need to fix new_template_theme.page_layout_root_id + new_template_theme.update_attributes!( page_layout_root_id: new_template_theme.page_layout_root.id ) + handle_param_values( new_template_theme ) + handle_template_resources(new_template_theme ) + new_template_theme + end + + protected + + def duplicate_template_theme + new_template_theme = original_template_theme.dup + new_template_theme.site_id = SpreeTheme.site_class.current.id + new_template_theme.store_id = Spree::Store.current.id + new_template_theme.release_id = 0 # new copied theme should have no release + new_template_theme.page_layout_root_id = 0 + new_template_theme + end + + def duplicate_page_layout( new_template_theme ) + page_layout_root = original_template_theme.page_layout_root + h = { page_layout_root => page_layout_root.dup } #we start at the root + ordered = page_layout_root.descendants + #clone subitems + ordered.each do |item| + h[item] = item.dup + end + #resolve relations + ordered.each do |item| + cloned = h[item] + item_parent = h[item.parent] + item_parent.children << cloned if item_parent + end + h.each_pair{|item, cloned| + cloned.copy_from_id = item.id + cloned.site_id = SpreeTheme.site_class.current.id + cloned.template_theme = new_template_theme + } + cloned_branch = h[page_layout_root] + end + + def duplicate_template_files( new_template_theme ) + #copy template_files + new_template_files = original_template_theme.template_files.map{|template_file| + new_template_file = template_file.dup + new_template_file.assign_attributes(:attachment => template_file.attachment.clone) + new_template_file.template_theme = new_template_theme + new_template_file + } + end + + def handle_param_values( new_template_theme ) + original_theme_id = original_template_theme.id + new_theme_id = new_template_theme.id + #copy param values + #INSERT INTO tbl_temp2 (fld_id) SELECT tbl_temp1.fld_order_id FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100; + table_name = ParamValue.table_name + + table_column_names = ParamValue.column_names + table_column_names.delete('id') + table_column_values = table_column_names.dup + # method fix_related_data_for_copied_theme handle theme_id, page_layout_root_id + table_column_values[table_column_values.index('page_layout_root_id')] = new_template_theme.page_layout_root_id + table_column_values[table_column_values.index('theme_id')] = new_template_theme.id + #table_column_values[table_column_values.index('created_at')] = "'#{created_at.utc.to_s(:db)}'" #=>'2014-08-20 02:48:23' + #copy param value from origin to new. + sql = %Q!INSERT INTO #{table_name}(#{table_column_names.join(',')}) SELECT #{table_column_values.join(',')} FROM #{table_name} WHERE (theme_id =#{original_theme_id})! + ActiveRecord::Base.connection.execute(sql) + + new_page_layout_nodes = new_template_theme.page_layouts + new_page_layout_nodes.each{|node| + ParamValue.where( :theme_id=>new_theme_id, :page_layout_id=>node.copy_from_id ). + update_all( :page_layout_id=> node.id ) + + } + + end + + def handle_template_resources( new_template_theme ) + obsolete_template_resources = new_template_theme.template_resources + new_page_layout_nodes = new_template_theme.page_layouts + new_page_layout_nodes.each{|node| + template_resource = obsolete_template_resources.select{|template_resource| template_resource.page_layout_id== node.copy_from_id }.first + if template_resource.present? + #change page_layout_key, update one of them is done. + template_resource.update_attribute!(:page_layout_id, node.id ) + end + } + # after page_layout_key updated, confirm template_resource existing. + obsolete_template_resources.select{|template_resource| template_resource.source.nil? }.each(&:destroy!) + end + end +end diff --git a/spree_theme/app/models/spree/user_terminal.rb b/spree_theme/app/models/spree/user_terminal.rb new file mode 100644 index 00000000..9b795772 --- /dev/null +++ b/spree_theme/app/models/spree/user_terminal.rb @@ -0,0 +1,20 @@ +module Spree + + # compatible query media for a template_theme + class UserTerminal < ActiveRecord::Base + attr_accessor :is_preview, :is_mobile + + scope :cellphone, ->{ where( name: 'Cellphone' ) } + scope :pc, ->{ where( name: 'PC' ) } + + def is_mobile + name == 'Cellphone' + end + + def to_json + {name: name, is_mobile: is_mobile, is_preview: is_preview }.to_json + end + + end + +end diff --git a/spree_comments/app/overrides/add_comment_configuration.rb b/spree_theme/app/overrides/add_comment_configuration.rb similarity index 100% rename from spree_comments/app/overrides/add_comment_configuration.rb rename to spree_theme/app/overrides/add_comment_configuration.rb diff --git a/spree_comments/app/overrides/add_comment_to_admin_orders_tabs.rb b/spree_theme/app/overrides/add_comment_to_admin_orders_tabs.rb similarity index 100% rename from spree_comments/app/overrides/add_comment_to_admin_orders_tabs.rb rename to spree_theme/app/overrides/add_comment_to_admin_orders_tabs.rb diff --git a/spree_theme/app/overrides/admin_theme_routes.rb b/spree_theme/app/overrides/admin_theme_routes.rb deleted file mode 100644 index b62a9634..00000000 --- a/spree_theme/app/overrides/admin_theme_routes.rb +++ /dev/null @@ -1,11 +0,0 @@ -Deface::Override.new(:virtual_path => "spree/admin/shared/_routes", - :name => "theme_routes", - :insert_bottom => "script", - :text => 'Spree.routes.admin_template_themes = "<%= spree.admin_template_themes_url %>"; - Spree.routes.global_taxons_search = "<%= spree.global_api_taxons_url(:format => :json) %>";' - ) -Deface::Override.new(:virtual_path => "spree/shared/_routes", - :name => "theme_routes", - :insert_bottom => "script", - :text => 'Spree.routes.admin_template_themes = "<%= spree.admin_template_themes_url %>";' - ) \ No newline at end of file diff --git a/spree_theme/app/overrides/spree/admin/orders/orders_index_search.rb b/spree_theme/app/overrides/spree/admin/orders/orders_index_search.rb new file mode 100644 index 00000000..51d0c7e5 --- /dev/null +++ b/spree_theme/app/overrides/spree/admin/orders/orders_index_search.rb @@ -0,0 +1,5 @@ +Deface::Override.new(:virtual_path => "spree/admin/orders/index", + :name => "admin_orders_index_search", + :replace_contents => "div[data-hook=admin_orders_index_search]", + :partial => "spree/admin/orders/search_form", + :disabled => false) diff --git a/spree_theme/app/overrides/spree/admin/payment_methods/_form/add_field_terminal.html.erb.deface b/spree_theme/app/overrides/spree/admin/payment_methods/_form/add_field_terminal.html.erb.deface new file mode 100644 index 00000000..78f541b2 --- /dev/null +++ b/spree_theme/app/overrides/spree/admin/payment_methods/_form/add_field_terminal.html.erb.deface @@ -0,0 +1,6 @@ + + +
        + <%= label_tag :payment_method_user_terminal_id, Spree.t(:user_terminal) %> + <%= collection_select(:payment_method, :user_terminal_id, Spree::UserTerminal.all, :id, :name, { }, {:class => 'select2 fullwidth'}) %> +
        diff --git a/spree_theme/app/overrides/spree/admin/products/_form/add_field_summary.html.erb.deface b/spree_theme/app/overrides/spree/admin/products/_form/add_field_summary.html.erb.deface new file mode 100644 index 00000000..b20dab8e --- /dev/null +++ b/spree_theme/app/overrides/spree/admin/products/_form/add_field_summary.html.erb.deface @@ -0,0 +1,9 @@ + + +
        +
        + <%= f.label :summary %> + <%= f.text_field :summary %> +
        +
        + diff --git a/spree_theme/app/overrides/spree/admin/products/_form/add_template_themes_select.html.erb.deface b/spree_theme/app/overrides/spree/admin/products/_form/add_template_themes_select.html.erb.deface index 0ad93c29..090e0bb8 100644 --- a/spree_theme/app/overrides/spree/admin/products/_form/add_template_themes_select.html.erb.deface +++ b/spree_theme/app/overrides/spree/admin/products/_form/add_template_themes_select.html.erb.deface @@ -1,5 +1,5 @@ -<% if Spree::Site.current.design? %> +<% if Spree::Store.current.designable? %> <% template_themes = Spree::TemplateTheme.native %>
        @@ -8,20 +8,20 @@ <%= f.collection_select :theme_id, template_themes ,'id','title', { include_blank: true }, { name: 'product[theme_id]', class: 'select2 fullwidth' } %> <% end %>
        - +
        <%= f.field_container :global_taxons do %> <%= f.label :global_taxon_ids, Spree.t(:global_taxons) %>
        <%= f.hidden_field :global_taxon_ids, :value => @product.global_taxon_ids.join(',') %> <% end %>
        -
        +
      <% unless Rails.env.test? %> <% end %> - -<% end %> \ No newline at end of file + +<% end %> diff --git a/spree_theme/app/overrides/spree/admin/taxons/_form/add_field_page_context.html.erb.deface b/spree_theme/app/overrides/spree/admin/taxons/_form/add_field_page_context.html.erb.deface index e0274129..75458e5e 100644 --- a/spree_theme/app/overrides/spree/admin/taxons/_form/add_field_page_context.html.erb.deface +++ b/spree_theme/app/overrides/spree/admin/taxons/_form/add_field_page_context.html.erb.deface @@ -6,7 +6,7 @@ <% end %> <%= f.field_container :page_context do %> <%= f.label :page_context %>
      - <%= f.select(:page_context, options_for_select(page_contexts_for_options), + <%= f.select(:page_context, options_for_select(page_contexts_for_options, @taxon.page_context), { :include_blank => Spree.t('default') }, { :class => 'select2 fullwidth' }) %> <%= f.error_message_on :page_context %> <% end %> @@ -19,7 +19,7 @@ <% unless Rails.env.test? %> diff --git a/spree_theme/app/overrides/spree/admin/taxons/_form/add_field_tooltips.html.erb.deface b/spree_theme/app/overrides/spree/admin/taxons/_form/add_field_tooltips.html.erb.deface new file mode 100644 index 00000000..f05c5421 --- /dev/null +++ b/spree_theme/app/overrides/spree/admin/taxons/_form/add_field_tooltips.html.erb.deface @@ -0,0 +1,9 @@ + + +
      +
      + <%= f.label :tooltips %> + <%= f.text_field :tooltips %> +
      +
      + diff --git a/spree_theme/app/views/application/_dialog_for_editor.html.erb b/spree_theme/app/views/application/_dialog_for_editor.html.erb new file mode 100644 index 00000000..fbe18b0d --- /dev/null +++ b/spree_theme/app/views/application/_dialog_for_editor.html.erb @@ -0,0 +1,5 @@ + +
      + +
      + diff --git a/spree_theme/app/views/application/_editors.html.erb b/spree_theme/app/views/application/_editors.html.erb index c5611a03..073ebdc3 100644 --- a/spree_theme/app/views/application/_editors.html.erb +++ b/spree_theme/app/views/application/_editors.html.erb @@ -6,8 +6,8 @@ # method of this form should be 'get', every time user click a section, get_param_values belong to the section. %> <%= form_tag(get_param_values_template_theme_path(@theme), { :remote=>true, :method=>'post', 'data-type'=>'script', :id=>"layout_editor_form",:name=>"layout_editor_form"}) do %> - -
        + +
          <% for tab in @editors%>
        • <%= link_to(tab.slug,"#", {"class"=>(tab.id==@editor.id ? "selected":"")})%> @@ -18,32 +18,22 @@ %>
          <% @editors.each_index{ |idx|%> -
          +
          <%# render :partial=>"editor", :locals => {:editor=>@editors[idx], :param_values=>@param_values_for_editors[idx]}%> - <%= raw partial_editor( @editors[idx], @param_values_for_editors[idx]) %> + <%=raw partial_editor( @editors[idx], @param_values_for_editors[idx]) %>
          <%}%>
          -<%# put these hidden fields here, refresh this form while update editors +<%# put these hidden fields here, refresh this form while update editors %> <%=hidden_field_tag "selected_page_layout_id", @page_layout.id %> <%=hidden_field_tag "selected_theme_id", @theme.id %> <%=hidden_field_tag "selected_editor_id", @editor.id %> -<%# set these hidden fields while a paramvalue just changed. +<%# set these hidden fields while a paramvalue just changed. %> <%=hidden_field_tag "editing_param_value_id" %> <%=hidden_field_tag "editing_html_attribute_id" %> <%=hidden_field_tag "param_value_event" %> <% end%> - - diff --git a/spree_theme/app/views/application/_html_attribute_value.html.erb b/spree_theme/app/views/application/_html_attribute_value.html.erb index c740d445..5128fa80 100644 --- a/spree_theme/app/views/application/_html_attribute_value.html.erb +++ b/spree_theme/app/views/application/_html_attribute_value.html.erb @@ -5,13 +5,12 @@ bool_false = Spree::HtmlAttribute::BOOL_FALSE section_piece_param = param_value.section_param.section_piece_param ha = html_attribute - #val= param_value.pvalue_for_haid(ha.id) pv_div_id = "pv_#{param_value.id}_#{ha.id}" pv_ele_id = "pv#{param_value.id}[#{ha.id}]" pv_link_id = pv_div_id+'_a' hav = Spree::HtmlAttributeValue.parse_from(param_value, ha) display = ( hav.hidden? ? "display:none" : "" ) -# Rails.logger.debug "hidden=#{display}" +# Rails.logger.debug "hidden=#{display}" query_path = update_param_value_template_theme_path( @theme ) %>
          class="pv clear-block" style="<%=display%>"> @@ -46,19 +45,19 @@ %>
          <%if html_attribute.is_special?(:bool)%> - <%= radio_button_tag("#{pv_ele_id}[pvalue#{i}]", bool_true,pvalue==bool_true, :onchange=>onchange )%>Yes + <%= radio_button_tag("#{pv_ele_id}[pvalue#{i}]", bool_true,pvalue==bool_true, :onchange=>onchange )%>Yes <%= radio_button_tag("#{pv_ele_id}[pvalue#{i}]", bool_false,pvalue==bool_false, :onchange=>onchange )%>No <%elsif html_attribute.is_special?(:image) or html_attribute.is_special?(:src)%> <% #selected_value = TemplateFile.find(:first, :conditions=>["file_name=?", pvalue]).id unless pvalue.nil? or pvalue.empty? %> - <%=select("#{pv_ele_id}","pvalue#{i}", Spree::TemplateFile.all.collect{|item| [item.attachment_file_name, item.attachment_file_name]}, {:selected=>pvalue ,:include_blank=>"Please select "},{ :onchange=>onchange}) %> + <%=select("#{pv_ele_id}","pvalue#{i}", Spree::TemplateFile.resourceful(@theme).collect{|item| [item.attachment_file_name, item.attachment_file_name]}, {:selected=>pvalue ,:include_blank=>"Please select "},{ :onchange=>onchange}) %> <%=link_to "upload file...",{:action=>"upload_file_dialog",:param_value_id=>param_value.id, :html_attribute_id=>html_attribute.id, :selected_editor_id=>@editor.id},:method =>:get,:remote=>true %> <%else%> <%= text_field_tag("#{pv_ele_id}[pvalue#{i}]", pvalue, {:class=>"pv-pv", :onchange=>onchange})%> <%end%>
          -
          +
          <% # user input value unit if units %> @@ -74,4 +73,3 @@ <%=check_box_tag("#{pv_ele_id}[unset]", bool_true, hav.unset?, :onchange=>onchange)%> <%=label_tag "#{pv_ele_id}[unset]", "Unset"%>
          - diff --git a/spree_theme/app/views/application/_layout_editor.html.erb b/spree_theme/app/views/application/_layout_editor.html.erb index bc7ade58..7998b56d 100644 --- a/spree_theme/app/views/application/_layout_editor.html.erb +++ b/spree_theme/app/views/application/_layout_editor.html.erb @@ -1,19 +1,26 @@ -
          -
          - <%=render :partial=>"theme_selection", :locals=>{:template_themes=>@template_themes, :selected=>@theme} %> -
          - <%= check_box_tag 'page_layout_editable','1',false,:style=>"vertical-align: middle;" %> title editable -
          - <%= render :partial=>"layout_tree", :locals=>{:theme =>@theme, :options =>{:editable=>true}} %> - <% #do not put it in file layout_tree, or update_layout_tree ajax add section_selection_dialog again and again. - %> - <%= render :partial=>"section_selection_dialog", :locals=>{:sections=>@sections}%> - -
          -
          -
          -
          - <%=render :partial=>"editors" %> -
          -
          - <%= render :partial=>"model_dialog"%> +
          + + +
          +
          + <%= render :partial=>"theme_selection", :locals=>{:template_themes=>@template_themes, :selected=>@theme} %> +
          + <%= check_box_tag 'page_layout_editable','1',false,:style=>"vertical-align: middle;" %> title editable +
          +
          + + + <%= render :partial=>"layout_tree", :locals=>{:theme =>@theme, :options =>{:editable=>true}} %> + <% #do not put it in file layout_tree, or update_layout_tree ajax add section_selection_dialog again and again. + %> + <%= render :partial=>"section_selection_dialog", :locals=>{:sections=>@sections} %> +
          +
          +
          +
          + <%=render :partial=>"editors" %> +
          +
          + <%= render :partial=>"dialog_for_editor"%> + + diff --git a/spree_theme/app/views/application/_layout_editor_panel.html.erb b/spree_theme/app/views/application/_layout_editor_panel.html.erb index 8a0f0448..168f1292 100644 --- a/spree_theme/app/views/application/_layout_editor_panel.html.erb +++ b/spree_theme/app/views/application/_layout_editor_panel.html.erb @@ -2,5 +2,7 @@ # sg_ignore, SelectorGodget ignore it. %>
          - <%=render :partial=>'layout_editor'%> + X + <%= render 'layout_editor' %>
          +
          editor
          \ No newline at end of file diff --git a/spree_theme/app/views/application/_layout_tree.html.erb b/spree_theme/app/views/application/_layout_tree.html.erb index 75fe399a..6eef7dcf 100644 --- a/spree_theme/app/views/application/_layout_tree.html.erb +++ b/spree_theme/app/views/application/_layout_tree.html.erb @@ -1,32 +1,32 @@ <% # list layout tree in editor page. # local params: theme, selected_id -layout_root = theme.page_layout -options ||={} +layout_root = theme.original_page_layout_root +options ||={} selected_id= (options[:selected_id]||layout_root.id ) %> <%=form_tag(update_layout_tree_template_theme_path(theme), :id=>"layout_tree_form",:name=>"layout_tree_form", :remote=>true) do %>
          - <% for page_layout in layout_root.self_and_descendants%> + <% Spree::PageLayout.each_with_level( layout_root.self_and_descendants) { |page_layout, level|%> <% assigned_taxons = theme.assigned_resources(SpreeTheme.taxon_class, page_layout) %>
          - <%=raw("  "*page_layout.cached_level)%> - <% # do not call form.submit. + <%=raw("  "*level)%> + <% # do not call form.submit. page_layout_class = 'click_editable' - page_layout_class << ' selected' if page_layout.id==selected_id + page_layout_class << ' selected' if page_layout.id==selected_id %> - <%= link_to( page_layout.title, "", {"href"=>'javascript:void(0)', "class"=>page_layout_class,"data-lid"=>page_layout.id,"data-tid"=>theme.id, :onmouseout=>"$('#{page_layout.css_selector}').trigger('dehighlight')",:onmouseover=>"$('#{page_layout.css_selector}').trigger('highlight')"}) %> + <%= link_to( page_layout.title, "", {"href"=>'javascript:void(0)', "class"=>page_layout_class,"data-lid"=>page_layout.id,"data-tid"=>theme.id, :onmouseout=>"$('#{page_layout.css_selector}').trigger('dehighlight')",:onmouseover=>"$('#{page_layout.css_selector}').trigger('highlight')"}) %> <%if options[:show_assigned_resource] %> <% if assigned_taxons.present? %> [t:<%= assigned_taxons.collect(&:name) %>] <%end%> - <%end%> - <%if options[:show_context] %> + <%end%> + <%if options[:show_context] %> <%= page_layout.current_contexts if page_layout.section_context.present? %> - <%end%> + <%end%>
          <% if options[:configurable] %> <% # only show it for selected page_layout @@ -39,50 +39,20 @@ selected_id= (options[:selected_id]||layout_root.id ) <% end %> <% if options[:editable] %>
          - <%= link_to "+","#", {data: {id:page_layout.id}, class: :add_section_button } %> - <%= link_to "-","#", {data: {id:page_layout.id}, class: :remove_section_button } %> - <%= link_to "u","#", {data: {id:page_layout.id}, class: :move_section_to_left_button } %> - <%= link_to "d","#", {data: {id:page_layout.id}, class: :move_section_to_right_button } %> - <%= link_to "<","#", {data: {id:page_layout.id}, class: :promote_section_button } %> - <%= link_to ">","#", {data: {id:page_layout.id}, class: :demote_section_button } %> + <%= link_to "+","#", {data: {id:page_layout.id, op:'list_section'}, onclick: 'submit_layout_tree_form(this);' } %> + <%= link_to "-","#", {data: {id:page_layout.id, op:'del_self'}, onclick: "if(confirm('Really delete #{page_layout.title} ?')) submit_layout_tree_form(this);" } %> + <%= link_to "u","#", {data: {id:page_layout.id, op:'move_left'}, onclick: 'submit_layout_tree_form(this);' } %> + <%= link_to "d","#", {data: {id:page_layout.id, op:'move_right'}, onclick: 'submit_layout_tree_form(this);' } %> + <%= link_to "<","#", {data: {id:page_layout.id, op:'promote'}, onclick: 'submit_layout_tree_form(this);' } %> + <%= link_to ">","#", {data: {id:page_layout.id, op:'demote'}, onclick: 'submit_layout_tree_form(this);' } %> + <%= link_to "e",edit_template_theme_page_layout_path( theme, page_layout), remote: true %>
          <% end %>
          - <% end %> + <% } %>
          <%=hidden_field_tag "selected_section_id" %> <%=hidden_field_tag "op" %> <%=hidden_field_tag "layout_id" %> - <%end%> diff --git a/spree_theme/app/views/application/_media_width_selection.html.erb b/spree_theme/app/views/application/_media_width_selection.html.erb new file mode 100644 index 00000000..55e4abd5 --- /dev/null +++ b/spree_theme/app/views/application/_media_width_selection.html.erb @@ -0,0 +1,3 @@ +
          + <%= select_tag( :terminal_id, options_from_collection_for_select( @theme.terminals,:id, :name) ) if @theme.terminals.present? %> +
          diff --git a/spree_theme/app/views/application/_model_dialog.html.erb b/spree_theme/app/views/application/_model_dialog.html.erb deleted file mode 100644 index 702a7690..00000000 --- a/spree_theme/app/views/application/_model_dialog.html.erb +++ /dev/null @@ -1,10 +0,0 @@ - -
          -<% if defined? dialog_content%> -

          dialog title

          - - <%= render :partial=>dialog_content%> -<% end %> - -
          - diff --git a/spree_theme/app/views/application/_section_selection_dialog.html.erb b/spree_theme/app/views/application/_section_selection_dialog.html.erb index bc657e19..e21ede75 100644 --- a/spree_theme/app/views/application/_section_selection_dialog.html.erb +++ b/spree_theme/app/views/application/_section_selection_dialog.html.erb @@ -1,13 +1,12 @@ -
      + <% if variant.images.length == 0 %> + <%= link_to small_image(variant.product), variant.product %> + <% else %> + <%= link_to image_tag(variant.images.first.attachment.url(:small)), variant.product %> + <% end %> + +
      <%= link_to line_item.name, product_path(variant.product) %>
      + <%= variant.options_text %> + <% if line_item.insufficient_stock? %> + + <%= Spree.t(:out_of_stock) %>  
      +
      + <% end %> +
      + <%= line_item.single_money.to_html %> + + <%= item_form.number_field :quantity, min: 0, class: "form-control line_item_quantity", size: 5 %> + + <%= line_item.display_amount.to_html unless line_item.quantity.nil? %> + + <%= link_to content_tag(:i, '', class: 'fa fa-minus-circle'), '#', class: 'delete', id: "delete_#{dom_id(line_item)}" %> +
      - - - - - - - - - - - - - - - <% @order.line_items.each do |item| %> - - - - - - - - <% end %> - - - - - - - - <% if @order.line_item_adjustment_totals.present? %> - - <% @order.line_item_adjustment_totals.each do |key, total| %> - - - - +<% # copy from order_detail + order = @order +%> +
      <%= Spree.t(:item) %><%= Spree.t(:price) %><%= Spree.t(:qty) %><%= Spree.t(:total) %>
      - <% if item.variant.images.length == 0 %> - <%= link_to small_image(item.variant.product), item.variant.product %> - <% else %> - <%= link_to image_tag(item.variant.images.first.attachment.url(:small)), item.variant.product %> - <% end %> - -

      <%= item.variant.product.name %>

      - <%= truncated_product_description(item.variant.product) %> - <%= "(" + item.variant.options_text + ")" unless item.variant.option_values.empty? %> -
      <%= item.single_money.to_html %><%= item.quantity %><%= item.display_amount.to_html %>
      <%= Spree.t(:order_total) %>:<%= @order.display_total.to_html %>
      <%= key %><%= total %>
      + + + + + + + + + + + + + + + + + <% order.line_items.each do |item| %> + + - - - - - - - <% @order.adjustments.eligible.each do |adjustment| %> - <% next if (adjustment.originator_type == 'Spree::TaxRate') and (adjustment.amount == 0) %> + + + + + + + <% end %> + + + + + + + + + + + + + + + + <% if order.line_item_adjustments.exists? %> + <% if order.all_adjustments.promotion.eligible.exists? %> + + <% order.all_adjustments.promotion.eligible.group_by(&:label).each do |label, adjustments| %> - - + + <% end %> -
      <%= Spree.t(:item) %><%= Spree.t(:price) %><%= Spree.t(:qty) %><%= Spree.t(:total) %>
      + <% if item.variant.images.length == 0 %> + <%= link_to small_image(item.variant.product), item.variant.product %> + <% else %> + <%= link_to image_tag(item.variant.images.first.attachment.url(:small)), item.variant.product %> <% end %> - - <% end %> -
      <%= Spree.t(:subtotal) %>:<%= @order.display_item_total.to_html %>
      +

      <%= item.variant.product.name %>

      + <%= "(" + item.variant.options_text + ")" unless item.variant.option_values.empty? %> +
      <%= item.single_money.to_html %><%= item.quantity %><%= item.display_amount.to_html %>
      <%= Spree.t(:order_total) %>:<%= order.display_total.to_html %>
      <%= Spree.t(:subtotal) %>:<%= order.display_item_total.to_html %>
      <%= adjustment.label %><%= adjustment.display_amount.to_html %><%= Spree.t(:promotion) %>: <%= label %><%= Spree::Money.new(adjustments.sum(&:amount), currency: order.currency) %>
      + <% end %> + <% end %> + + + <% order.shipments.group_by { |s| s.selected_shipping_rate.name }.each do |name, shipments| %> + + <%= Spree.t(:shipping) %>: <%= name %> + <%= Spree::Money.new(shipments.sum(&:discounted_cost), currency: order.currency).to_html %> + + <% end %> + + + <% if order.all_adjustments.tax.exists? %> + + <% order.all_adjustments.tax.group_by(&:label).each do |label, adjustments| %> + + <%= Spree.t(:tax) %>: <%= label %> + <%= Spree::Money.new(adjustments.sum(&:amount), currency: order.currency) %> + + <% end %> + + <% end %> + + + <% order.adjustments.eligible.each do |adjustment| %> + <% next if (adjustment.source_type == 'Spree::TaxRate') and (adjustment.amount == 0) %> + + <%= adjustment.label %> + <%= adjustment.display_amount.to_html %> + + <% end %> + + + diff --git a/spree_theme/app/views/spree/orders/populate.js.erb b/spree_theme/app/views/spree/orders/populate.js.erb new file mode 100644 index 00000000..5a280153 --- /dev/null +++ b/spree_theme/app/views/spree/orders/populate.js.erb @@ -0,0 +1,4 @@ +<% minicart = @theme.find_section_by_usage Spree::Section::UsageEnum.minicart %> +<% if minicart.present? %> + $('<%=minicart.css_selector %>').html("<%= j( render inline: minicart.build_html ) %>"); +<% end %> diff --git a/spree_theme/app/views/spree/page_layouts/_edit.html.erb b/spree_theme/app/views/spree/page_layouts/_edit.html.erb new file mode 100644 index 00000000..69986a04 --- /dev/null +++ b/spree_theme/app/views/spree/page_layouts/_edit.html.erb @@ -0,0 +1,47 @@ +<% #edit page_layout in editor, + # title, columns, data_resource, +%> +<%= render :partial => 'spree/shared/error_messages', :locals => { :target => @page_layout } %> +<%=form_for @page_layout, url: template_theme_page_layout_path(@template_theme, @page_layout), remote: true do |f| %> +
      + <%= f.label :title %> + <%= f.text_field :title %> +
      +
      + <%= f.label :content_param %> + <%= f.number_field :content_param %> columns=n/clickable=1/image_size +
      +
      + <%= f.label :css_class %> + <%= f.text_field :css_class %>bootstrap .col-xs-n, .container, .container-fluid +
      +
      + <%= f.label :content_css_class %> + <%= f.text_field :content_css_class %> glyphicon +
      + +
      + <%= f.label :data_source %> + <% current_data_source = @page_layout.current_data_source + options = options_for_select((Spree::PageLayout::DataSourceEnum.members).collect{|section_data_source| [Spree.t("section_data_source.#{ section_data_source }"), section_data_source] }, current_data_source ) + %> + <%= f.select "data_source", options , include_blank: true, class: 'select2' %> +
      +
      + <%= f.label :data_source_param %> + <%= f.text_field :data_source_param %> per_page +
      +
      + <%= f.label :stylish %> + <%= f.text_field :stylish %> default is 0 +
      +
      + <%= f.label :section_context %> + <%= f.text_field :section_context %> +
      + +
      + <%= f.submit Spree.t('update') %> <%= f.button Spree.t('cancel'), type: :button, class: 'cancel'%> +
      + +<% end %> diff --git a/spree_theme/app/views/spree/shared/_analytics.html.erb b/spree_theme/app/views/spree/shared/_analytics.html.erb index 9b4db553..1acb7dfb 100644 --- a/spree_theme/app/views/spree/shared/_analytics.html.erb +++ b/spree_theme/app/views/spree/shared/_analytics.html.erb @@ -1,7 +1,6 @@ <% if tracker = Spree::Tracker.current %> - <% if tracker.analytics_id.size== 32 %> - <%= render :partial=>'spree/shared/baidu_sync_analytics'%> - <% else %> - <%= render :partial=>'spree/shared/google_sync_analytics'%> + <% case tracker.name %> + <% when /51la/ %> + <%= render :partial=>'spree/shared/analytics_51la', :locals=>{:tracker=>tracker} %> <% end %> <% end %> diff --git a/spree_theme/app/views/spree/shared/_analytics_51la.html.erb b/spree_theme/app/views/spree/shared/_analytics_51la.html.erb new file mode 100644 index 00000000..15c405f1 --- /dev/null +++ b/spree_theme/app/views/spree/shared/_analytics_51la.html.erb @@ -0,0 +1,4 @@ +
      + + +
      \ No newline at end of file diff --git a/spree_theme/app/views/spree/shared/_dialog.js.erb b/spree_theme/app/views/spree/shared/_dialog.js.erb index 0d7c4830..5e8a0ea0 100644 --- a/spree_theme/app/views/spree/shared/_dialog.js.erb +++ b/spree_theme/app/views/spree/shared/_dialog.js.erb @@ -1,14 +1,14 @@ -<% -dialog_content_container_selector = @theme.dialog_content_container_selector -target_view ||= params[:action] -target_view = 'edit' if ( params[:action]=='update' ) -target_view = 'new' if ( params[:action]=='create' ) +<% dialog = @theme.find_section_by_usage( 'dialog' ) %> +<% if dialog + dialog_content_selector = dialog.css_selector + " .dialog_content" + target_view ||= params[:action] + target_view = 'edit' if ( params[:action]=='update' ) + target_view = 'new' if ( params[:action]=='create' ) %> -$("<%=dialog_content_container_selector%>").html(<%== ( render :partial => target_view,:formats=>[:html] ).to_json %>) +$("<%== dialog_content_selector %>").html(<%== ( render :partial => target_view,:formats=>[:html] ).to_json %>) // append dialog into page-inner, apply global css on dialog. // global css a apply close button of dialog, it cause wrong size of dialog, show disable 'close' -$("#dialog").modal({appendTo:'#page-inner',closeHTML:'', escClose:true, overlayClose:true}); -$("#dialog a.cancel,#dialog button.cancel").click( function(){ - $.modal.close(); -}); +$("<%== dialog.css_selector %>").simplemodal({appendTo:'#page-inner',closeHTML:'', escClose:true, overlayClose:true}); + +<% end %> diff --git a/spree_theme/app/views/spree/shared/_head.html.erb b/spree_theme/app/views/spree/shared/_head.html.erb index 1e584450..d14ac0f0 100644 --- a/spree_theme/app/views/spree/shared/_head.html.erb +++ b/spree_theme/app/views/spree/shared/_head.html.erb @@ -3,7 +3,7 @@ <%== meta_data_tags %> -<%= canonical_tag %> -<%= favicon_link_tag image_path('favicon.ico') %> +<%= canonical_tag(current_store.url) %> +<%= favicon_link_tag 'favicon.ico' %> <%= csrf_meta_tags %> <%= yield :head %> diff --git a/spree_theme/app/views/spree/shared/_login.html.erb b/spree_theme/app/views/spree/shared/_login.html.erb index 584ddae5..4d25057f 100644 --- a/spree_theme/app/views/spree/shared/_login.html.erb +++ b/spree_theme/app/views/spree/shared/_login.html.erb @@ -1,12 +1,12 @@ -<%= form_for Spree::User.new, :as => :spree_user, :url => spree.create_new_session_path do |f| %> +<%= form_for Spree::User.new, :as => :spree_user, :url => spree.create_new_session_path, :html=>{ :class=> 'fullwidth' } do |f| %>

      <%= f.label :email, Spree.t(:email) %>
      - <%= f.email_field :email, :class => 'title', :tabindex => 1 %> + <%= f.email_field :email, :class => 'form-control', :tabindex => 1, autofocus: true %>

      <%= f.label :password, Spree.t(:password) %>
      - <%= f.password_field :password, :class => 'title', :tabindex => 2 %> + <%= f.password_field :password, :class => 'form-control', :tabindex => 2 %>

      @@ -15,4 +15,4 @@

      <%= f.button Spree.t(:login), :class => 'button primary', :tabindex => 3 %>

      -<% end %> \ No newline at end of file +<% end %> diff --git a/spree_theme/app/views/spree/shared/_order_details.html.erb b/spree_theme/app/views/spree/shared/_order_details.html.erb new file mode 100644 index 00000000..afeacc47 --- /dev/null +++ b/spree_theme/app/views/spree/shared/_order_details.html.erb @@ -0,0 +1,36 @@ +<% # @theme - show order detail + # copy from spree/core/app/views/shared/_order_details.html.erb + # just removed bill_address +%> +
      +
      + <% if order.has_step?("address") %> +
      <%= Spree.t(:shipping_address) %> <%= link_to "(#{Spree.t(:edit)})", checkout_state_path(:address) unless @order.completed? %>
      +
      + <%= render :partial => 'spree/shared/address', :locals => { :address => order.ship_address } %> +
      + + <% if @order.has_step?("delivery") %> +
      <%= Spree.t(:shipping_method) %> <%= link_to "(#{Spree.t(:edit)})", checkout_state_path(:delivery) unless @order.completed? %>
      +
      + <% order.shipments.each do |shipment| %> +
      + <%= shipment.stock_location.name %> + <%= shipment.shipping_method.name %> +
      + <% end %> +
      + <% end %> + <% end %> + +
      <%= Spree.t(:payment_information) %> <%= link_to "(#{Spree.t(:edit)})", checkout_state_path(:payment) unless @order.completed? %>
      +
      + <% order.payments.valid.each do |payment| %> +
      <%= render payment%>
      + <% end %> +
      +
      +
      + +<%= render partial: 'spree/orders/order_items', locals: {order: order}%> + diff --git a/spree_theme/app/views/spree/shared/_sync_analytics.html.erb b/spree_theme/app/views/spree/shared/_sync_analytics.html.erb new file mode 100644 index 00000000..e4e1708f --- /dev/null +++ b/spree_theme/app/views/spree/shared/_sync_analytics.html.erb @@ -0,0 +1,8 @@ +<% if tracker = Spree::Tracker.current %> + <% case tracker.name %> + <% when /google/ %> + <%= render :partial=>'spree/shared/sync_analytics_google', :locals=>{:tracker=>tracker} %> + <% when /baidu/ %> + <%= render :partial=>'spree/shared/sync_analytics_baidu', :locals=>{:tracker=>tracker} %> + <% end %> +<% end %> \ No newline at end of file diff --git a/spree_theme/app/views/spree/shared/_baidu_sync_analytics.html.erb b/spree_theme/app/views/spree/shared/_sync_analytics_baidu.html.erb similarity index 100% rename from spree_theme/app/views/spree/shared/_baidu_sync_analytics.html.erb rename to spree_theme/app/views/spree/shared/_sync_analytics_baidu.html.erb diff --git a/spree_theme/app/views/spree/shared/_google_sync_analytics.html.erb b/spree_theme/app/views/spree/shared/_sync_analytics_google.html.erb similarity index 100% rename from spree_theme/app/views/spree/shared/_google_sync_analytics.html.erb rename to spree_theme/app/views/spree/shared/_sync_analytics_google.html.erb diff --git a/spree_theme/app/views/spree/shared/_theme_selection_for_nondesigner.html.erb b/spree_theme/app/views/spree/shared/_theme_selection_for_nondesigner.html.erb index ebdc69d4..9897c68e 100644 --- a/spree_theme/app/views/spree/shared/_theme_selection_for_nondesigner.html.erb +++ b/spree_theme/app/views/spree/shared/_theme_selection_for_nondesigner.html.erb @@ -1,11 +1,16 @@ -<% # notice: it is called by client page. @current_page is from theme tag - @template_themes = Spree::TemplateTheme.native.published -%> -
      -
      - <%=render :partial=>"theme_selection", :locals=>{:template_themes=>@template_themes, :selected=>@current_page.theme} %> -
      -
      -
      - 模板 -
      +<% if !@client_info.is_mobile %> + <% # notice: it is called by client page. @current_page is from theme tag + @template_themes = Spree::TemplateTheme.native.published + # first is designable now, hide theme_selection if @template_themes is blank + %> + <% if @template_themes.present? %> +
      +
      + <%=render :partial=>"theme_selection", :locals=>{:template_themes=>@template_themes, :selected=>@current_page.theme} %> +
      +
      +
      + <%= Spree.t( :template_themes) %> +
      + <% end %> +<% end %> diff --git a/spree_theme/app/views/spree/shared/_user_form.html.erb b/spree_theme/app/views/spree/shared/_user_form.html.erb new file mode 100644 index 00000000..6ba59f78 --- /dev/null +++ b/spree_theme/app/views/spree/shared/_user_form.html.erb @@ -0,0 +1,17 @@ +

      + <%= f.label :email, Spree.t(:email) %>
      + <%= f.email_field :email, :class => ' form-control' %> +

      +
      +

      + <%= f.label :password, Spree.t(:password) %>
      + <%= f.password_field :password, :class => ' form-control' %> +

      + +

      + <%= f.label :password_confirmation, Spree.t(:confirm_password) %>
      + <%= f.password_field :password_confirmation, :class => ' form-control' %> +

      +
      + +
      diff --git a/spree_theme/app/views/spree/shared/_user_form_bootstrap.html.erb b/spree_theme/app/views/spree/shared/_user_form_bootstrap.html.erb new file mode 100644 index 00000000..309a0f46 --- /dev/null +++ b/spree_theme/app/views/spree/shared/_user_form_bootstrap.html.erb @@ -0,0 +1,13 @@ +
      +
      + <%= f.email_field :email, :class => 'form-control', :placeholder => Spree.t(:email) %> +
      +
      +
      + <%= f.password_field :password, :class => 'form-control', :placeholder => Spree.t(:password) %> +
      +
      + <%= f.password_field :password_confirmation, :class => 'form-control', :placeholder => Spree.t(:confirm_password) %> +
      +
      +
      \ No newline at end of file diff --git a/spree_theme/app/views/spree/sites/_new.html.erb b/spree_theme/app/views/spree/sites/_new.html.erb index db8afc68..1475f5a3 100644 --- a/spree_theme/app/views/spree/sites/_new.html.erb +++ b/spree_theme/app/views/spree/sites/_new.html.erb @@ -1,7 +1,7 @@ <%= render :partial => 'spree/shared/error_messages', :locals => { :target => @site } %>

      <%= Spree.t(:new_site) %>

      -<%= form_for @site, :url=>create_site_path, :remote=>true do |f| %> +<%= form_for @site, :url=>create_site_path, :remote=>true, :html=>{ :class=>'fullwidth'} do |f| %> <%= render :partial => "form", :locals => { :f => f } %>

      <%= f.button Spree.t(:create), :class => 'button', :type=>:submit %> <%= f.button Spree.t('actions.cancel'), :class => 'button cancel', :type=>:button %> @@ -11,21 +11,18 @@ + +

      + diff --git a/spree_theme/app/views/spree/template_themes/_new_admin_session.html.erb b/spree_theme/app/views/spree/template_themes/_new_admin_session.html.erb index 530bfabe..776a9ae2 100644 --- a/spree_theme/app/views/spree/template_themes/_new_admin_session.html.erb +++ b/spree_theme/app/views/spree/template_themes/_new_admin_session.html.erb @@ -1,16 +1,22 @@ -<% #show error message in dialog %> +<% # actions: new_admin_section/create_admin_session + #show error message in dialog, + %> <%= flash_messages if request.xhr? %> -<%= form_for @user, :as => :spree_user, :url => create_admin_session_path, :method=>:post, :remote=>request.xhr? do |f| %> +<%= form_for Spree::User.new, :as => :spree_user, :url => create_admin_session_path, :method=>:post, :remote=>request.xhr? do |f| %>
      -

      - <%= f.label :email, Spree.t(:email) %>
      - <%= f.email_field :email, :class => 'title', :tabindex => 1 %> -

      -

      - <%= f.label :password, Spree.t(:password) %>
      - <%= f.password_field :password, :class => 'title', :tabindex => 2 %> -

      -
      -

      <%= f.submit Spree.t(:login), :class => 'button primary', :tabindex => 3 %>

      + + + + + + + + + + + + +
      <%= f.label :email, Spree.t(:email) %><%= f.email_field :email, :class => 'fullwidth', :tabindex => 1 %>
      <%= f.label :password, Spree.t(:password) %><%= f.password_field :password, :class => 'fullwidth', :tabindex => 2 %>
      <%= f.submit Spree.t(:login), :class => 'button primary', :tabindex => 3 %>
      + <% end %> diff --git a/spree_theme/app/views/spree/template_themes/_upload_dialog_content.js.erb b/spree_theme/app/views/spree/template_themes/_upload_file_dialog.html.erb similarity index 100% rename from spree_theme/app/views/spree/template_themes/_upload_dialog_content.js.erb rename to spree_theme/app/views/spree/template_themes/_upload_file_dialog.html.erb diff --git a/spree_theme/app/views/spree/template_themes/under_construction.html.erb b/spree_theme/app/views/spree/template_themes/under_construction.html.erb index e962f784..9934cf36 100644 --- a/spree_theme/app/views/spree/template_themes/under_construction.html.erb +++ b/spree_theme/app/views/spree/template_themes/under_construction.html.erb @@ -1,14 +1 @@ -<%= form_for Spree::User.new, :as => :spree_user, :url => create_admin_session_path do |f| %> -
      -

      - <%= f.label :email, Spree.t(:email) %>
      - <%= f.email_field :email, :class => 'title', :tabindex => 1 %> -

      -

      - <%= f.label :password, Spree.t(:password) %>
      - <%= f.password_field :password, :class => 'title', :tabindex => 2 %> -

      -
      - -

      <%= f.submit Spree.t(:login), :class => 'button primary', :tabindex => 3 %>

      -<% end %> +<%= render :partial=>'new_admin_session'%> diff --git a/spree_theme/app/views/spree/user_registrations/_new.html.erb b/spree_theme/app/views/spree/user_registrations/_new.html.erb index 48b9e685..0bb7a62c 100644 --- a/spree_theme/app/views/spree/user_registrations/_new.html.erb +++ b/spree_theme/app/views/spree/user_registrations/_new.html.erb @@ -2,21 +2,20 @@ <%= render :partial => 'spree/shared/error_messages', :locals => { :target => @user } %> -
      -

      <%= Spree.t(:new_customer) %>

      - -
      - - <%= form_for Spree::User.new, :as => :spree_user, :url => spree.registration_path(@user) do |f| %> +
      +
      +

      <%= Spree.t(:new_customer) %>

      +
      +
      + <%= form_for Spree::User.new, :as => :spree_user, :url => spree.registration_path(@user),:html=>{ :class=> 'fullwidth' } do |f| %>
      <%= render :partial => 'spree/shared/user_form', :locals => { :f => f } %>

      <%= f.button Spree.t(:create), :class => 'button primary' %>

      <% end %> +
      <%= Spree.t(:or) %> <%= link_to Spree.t(:login_as_existing), spree.login_path %> - +
      +
      -
      - -
      \ No newline at end of file diff --git a/spree_theme/app/views/spree/user_registrations/_new_bootstrap.html.erb b/spree_theme/app/views/spree/user_registrations/_new_bootstrap.html.erb new file mode 100644 index 00000000..47181e44 --- /dev/null +++ b/spree_theme/app/views/spree/user_registrations/_new_bootstrap.html.erb @@ -0,0 +1,21 @@ +<% @body_id = 'signup' %> + +<%= render :partial => 'spree/shared/error_messages', :locals => { :target => @user } %> + +
      +
      +

      <%= Spree.t(:new_customer) %>

      +
      +
      + <%= form_for Spree::User.new, :as => :spree_user, :url => spree.registration_path(@user),:html=>{ :class=> 'fullwidth' } do |f| %> +
      + <%= render :partial => 'spree/shared/user_form_bootstrap', :locals => { :f => f } %> +

      <%= f.button Spree.t(:create), :class => 'button primary' %>

      +
      + <% end %> +
      + <%= Spree.t(:or) %> <%= link_to Spree.t(:login_as_existing), spree.login_path %> +
      +
      +
      +
      diff --git a/spree_theme/app/views/spree/user_sessions/_new.html.erb b/spree_theme/app/views/spree/user_sessions/_new.html.erb index 1468a5ac..acd14aad 100644 --- a/spree_theme/app/views/spree/user_sessions/_new.html.erb +++ b/spree_theme/app/views/spree/user_sessions/_new.html.erb @@ -1,15 +1,19 @@ -<% if flash[:alert] %> -
      <%= flash[:alert] %>
      -<% end %> <% @body_id = 'login' %> -
      -

      <%= Spree.t(:login_as_existing) %>

      -
      +
      +
      +

      <%= Spree.t(:login_as_existing) %>

      +
      +
      + <% if flash[:alert] %> +
      <%= flash[:alert] %>
      + <% end %> <%= render :partial => 'spree/shared/login' %> - <%= Spree.t(:or) %> - <%= link_to Spree.t(:create_a_new_account), spree.signup_path %> | - <%= link_to Spree.t(:forgot_password), spree.recover_password_path %> +
      + <%= Spree.t(:or) %> + <%= link_to Spree.t(:create_a_new_account), spree.signup_path %> | + <%= link_to Spree.t(:forgot_password), spree.recover_password_path %> +
      +
      -
      \ No newline at end of file diff --git a/spree_theme/app/views/spree/user_sessions/_new_bootstrap.html.erb b/spree_theme/app/views/spree/user_sessions/_new_bootstrap.html.erb new file mode 100644 index 00000000..acd14aad --- /dev/null +++ b/spree_theme/app/views/spree/user_sessions/_new_bootstrap.html.erb @@ -0,0 +1,19 @@ + +<% @body_id = 'login' %> +
      +
      +

      <%= Spree.t(:login_as_existing) %>

      +
      +
      + <% if flash[:alert] %> +
      <%= flash[:alert] %>
      + <% end %> + <%= render :partial => 'spree/shared/login' %> +
      + <%= Spree.t(:or) %> + <%= link_to Spree.t(:create_a_new_account), spree.signup_path %> | + <%= link_to Spree.t(:forgot_password), spree.recover_password_path %> +
      +
      +
      +
      diff --git a/spree_theme/app/views/spree/users/_edit.html.erb b/spree_theme/app/views/spree/users/_edit.html.erb index 9963cd9a..ddeb39e1 100644 --- a/spree_theme/app/views/spree/users/_edit.html.erb +++ b/spree_theme/app/views/spree/users/_edit.html.erb @@ -1,11 +1,15 @@ -<%= render :partial => 'spree/shared/error_messages', :locals => { :target => @user } %> - -

      <%= Spree.t(:editing_user) %>

      - -<%= form_for @user, :url => spree.user_path(@user), :method => :put, :remote=>true do |f| %> - <%= render :partial => 'spree/shared/user_form', :locals => { :f => f } %> -

      - <%= f.button Spree.t(:update), :class => 'button primary' %> - <%= f.button Spree.t(:cancel), :class => 'cancel button primary',:type => 'button' %> -

      -<% end %> \ No newline at end of file +
      +
      +

      <%= Spree.t(:editing_user) %>

      +
      +
      + <%= render :partial => 'spree/shared/error_messages', :locals => { :target => @user } %> + <%= form_for @user, :url => spree.user_path(@user), :method => :put, :remote=>true, :html=>{ :class=> 'fullwidth' } do |f| %> + <%= render :partial => 'spree/shared/user_form', :locals => { :f => f } %> +

      + <%= f.button Spree.t(:update), :class => 'button primary' %> + <%= f.button Spree.t(:cancel), :class => 'cancel button primary',:type => 'button' %> +

      + <% end %> +
      +
      diff --git a/spree_theme/app/views/themes/_grouped_option_values_for_mobile.html b/spree_theme/app/views/themes/_grouped_option_values_for_mobile.html new file mode 100644 index 00000000..f7c5b26f --- /dev/null +++ b/spree_theme/app/views/themes/_grouped_option_values_for_mobile.html @@ -0,0 +1,12 @@ +<% if product.has_variants? %> +
      +
      Spree.t(:select) + <%= render partial: 'themes/option_type_list' +
      +
      +
      +
      + <%= render partial: 'themes/grouped_option_values_selector' +
      +
      +<% end%> diff --git a/spree_theme/app/views/themes/_grouped_option_values_selector.html.erb b/spree_theme/app/views/themes/_grouped_option_values_selector.html.erb index c71185e7..012f43c8 100644 --- a/spree_theme/app/views/themes/_grouped_option_values_selector.html.erb +++ b/spree_theme/app/views/themes/_grouped_option_values_selector.html.erb @@ -1,4 +1,3 @@ -
      <% index = 0 %> <% product.grouped_option_values.each do |type, values| %>
      @@ -7,20 +6,20 @@ <% values.sort_by(&:position).each do |value| %> <% classes = ["option-value"] %> <% unless (variants = product.variants_for_option_value(value)).empty? %> - <% classes << ( Spree::Config[:allow_backorder_shipping] || product.total_on_hand > 0 ? "in-stock" : "out-of-stock" ) if index == 0 %> + <% classes << ( product.total_on_hand > 0 ? "in-stock" : "out-of-stock" ) if index == 0 %>
    • <%= link_to value.image.present? ? image_tag(value.image.attachment.url, :alt => value.presentation) : content_tag(:span, value.presentation), "javascript:void(0);", :title => value.presentation, :class => classes.join(" "), :rel => "#{type.id}-#{value.id}" %>
    • <% end %> <% end %>
      - <% index += 1 %> + <% index+=1 %> <% end %> - <%= hidden_field_tag "products[#{product.id}]", "", :class => "hidden variant_id" %> + <%= hidden_field_tag "variant_id", product.master.id, class: 'variant_id' %> -
      diff --git a/spree_theme/app/views/themes/_option_type_list.html.erb b/spree_theme/app/views/themes/_option_type_list.html.erb new file mode 100644 index 00000000..5098f939 --- /dev/null +++ b/spree_theme/app/views/themes/_option_type_list.html.erb @@ -0,0 +1,3 @@ +<% product.grouped_option_values.each do |type, values| %> +
      <%= type.presentation %>
      +<% end %> diff --git a/spree_theme/app/views/themes/_product_options_for_mobile.html b/spree_theme/app/views/themes/_product_options_for_mobile.html new file mode 100644 index 00000000..8fe69b93 --- /dev/null +++ b/spree_theme/app/views/themes/_product_options_for_mobile.html @@ -0,0 +1,29 @@ +<% index = 0 %> +<% product.grouped_option_values.each do |type, values| %> +
      +
      <%= type.presentation %>
      +
        + <% values.sort_by(&:position).each do |value| %> + <% classes = ["option-value"] %> + <% unless (variants = product.variants_for_option_value(value)).empty? %> + <% classes << ( product.total_on_hand > 0 ? "in-stock" : "out-of-stock" ) if index == 0 %> +
      • <%= link_to value.image.present? ? image_tag(value.image.attachment.url, :alt => value.presentation) : content_tag(:span, value.presentation), "javascript:void(0);", :title => value.presentation, :class => classes.join(" "), :rel => "#{type.id}-#{value.id}" %>
      • + <% end %> + <% end %> +
      +
      + <% index += 1 %> +<% end %> +<%= hidden_field_tag "variant_id", product.master.id, class: 'variant_id' %> + diff --git a/spree_theme/app/views/themes/_product_options_in_slide_style.html.erb b/spree_theme/app/views/themes/_product_options_in_slide_style.html.erb index dc1c667c..978a01ed 100644 --- a/spree_theme/app/views/themes/_product_options_in_slide_style.html.erb +++ b/spree_theme/app/views/themes/_product_options_in_slide_style.html.erb @@ -26,7 +26,7 @@ //, + container_selector: <%== ('.'+@template.section_selector).to_json -%>, options: <%== product.variant_options_hash.to_json -%>, track_inventory_levels: false, allow_backorders: true, diff --git a/spree_theme/app/views/themes/_variants_and_option_values.html.erb b/spree_theme/app/views/themes/_variants_and_option_values.html.erb new file mode 100644 index 00000000..8e2090ad --- /dev/null +++ b/spree_theme/app/views/themes/_variants_and_option_values.html.erb @@ -0,0 +1,24 @@ +<% if product.variants_and_option_values(current_currency).any? %> +
      +
        + <% product.variants_and_option_values(current_currency).each_with_index do |variant, index| %> +
      • + <%= radio_button_tag "products[#{product.id}]", variant.id, index == 0, 'data-price' => variant.price_in(current_currency).money %> + <%= label_tag ['products', product.id, variant.id].join('_') do %> + + <%= variant_options variant %> + + <% if variant_price variant %> + <%= variant_price variant %> + <% end %> + <% unless variant.can_supply? %> + <%= Spree.t(:out_of_stock) %> + <% end %> + <% end %> +
      • + <% end%> +
      +
      +<% else %> +<%= hidden_field_tag "variant_id", product.master.id, class: 'variant_id' %> +<% end %> diff --git a/spree_theme/app/views/themes/orders/_list.html.erb b/spree_theme/app/views/themes/orders/_list.html.erb new file mode 100644 index 00000000..87030990 --- /dev/null +++ b/spree_theme/app/views/themes/orders/_list.html.erb @@ -0,0 +1,29 @@ +

      <%= Spree.t(:my_orders) %>

      +<% if @orders.present? %> + + + + + + + + + + + + + <% @orders.each do |order| %> + + + + + + + + + <% end %> + +
      <%= Spree.t(:order_numbers) %><%= Spree.t(:order_date) %><%= Spree.t(:status) %><%= Spree.t(:payment_state) %><%= Spree.t(:shipment_state) %><%= Spree.t(:total) %>
      <%= link_to order.number, order_url(order), :remote=>true %><%= l order.completed_at.to_date %><%= Spree.t(order.state).titleize %><%= Spree.t("payment_states.#{order.payment_state}") if order.payment_state %><%= Spree.t("shipment_states.#{order.shipment_state}") if order.shipment_state %><%= order.display_total %>
      +<% else %> +
      <%= Spree.t(:you_have_no_orders_yet) %>
      +<% end %> diff --git a/spree_theme/app/views/themes/posts/_next_post_title.html.erb b/spree_theme/app/views/themes/posts/_next_post_title.html.erb new file mode 100644 index 00000000..d70bf3d7 --- /dev/null +++ b/spree_theme/app/views/themes/posts/_next_post_title.html.erb @@ -0,0 +1,10 @@ +<% wrapped_post = @template.related_posts( @current_page, data_source: Spree::PageLayout::DataSourceEnum.next_post ).first %> +
      <%= Spree.t('post.next')%>
      +
      <% if wrapped_post.present? %> + <%= content_tag(:a, wrapped_post.title, { href: wrapped_post.path }) %> + <% else %> + <%= Spree.t('post.no_next')%> + <% end %> +
      +
      + diff --git a/spree_theme/app/views/themes/posts/_previous_post_title.html.erb b/spree_theme/app/views/themes/posts/_previous_post_title.html.erb new file mode 100644 index 00000000..ff71e08a --- /dev/null +++ b/spree_theme/app/views/themes/posts/_previous_post_title.html.erb @@ -0,0 +1,10 @@ +<% wrapped_post = @template.related_posts( @current_page, data_source: Spree::PageLayout::DataSourceEnum.previous_post ).first %> +
      <%= Spree.t('post.previous')%>
      +
      <% if wrapped_post.present? %> + <%= content_tag(:a, wrapped_post.title, { href: wrapped_post.path }) %> + <% else %> + <%= Spree.t('post.no_previous')%> + <% end %> +
      +
      + diff --git a/spree_theme/app/views/themes/sites/_quick_lunch.html.erb b/spree_theme/app/views/themes/sites/_quick_lunch.html.erb new file mode 100644 index 00000000..094ef360 --- /dev/null +++ b/spree_theme/app/views/themes/sites/_quick_lunch.html.erb @@ -0,0 +1,41 @@ +<% form_id = "site_form_#{DateTime.current.to_i}" %> +<%= form_for :site, :url => quick_lunch_path, :html=>{ :id=>form_id, :class=>"site_form fullwidth", :autocomplete=>"off"} do |f| %> +
      +
      + <%= f.text_field :name, :placeholder => Spree.t(:name_store), :minlength=>4, :maxlength=>24 %> +
      +
      +
      +
      +
      <%= f.email_field :email, :placeholder => Spree.t(:email) %>
      +
      +
      +
      +
      <%= f.password_field :password, :placeholder=>Spree.t(:password), :minlength=>6, :maxlength=>24 %>
      +
      +
      +
      <%= f.button Spree.t(:new_site), :class => 'button primary' %>
      +<% end %> + diff --git a/spree_theme/config/locales/en.yml b/spree_theme/config/locales/en.yml index c40b88f8..1c4b05c9 100644 --- a/spree_theme/config/locales/en.yml +++ b/spree_theme/config/locales/en.yml @@ -1,60 +1,97 @@ -en: +zh-CN: +########################################### start for template ########################################### + views: + pagination: + first: "« first" + last: "last »" + next: next » + previous: ! '« previous' + truncate: ! '…' + theme: + product_image: + lightboxable: click to zoom in + +########################################### end for template ########################################### activerecord: attributes: spree/page_layout: + title: title + content_param: 内容参数 + css_class: CSS + content_css_class: 内容 CSS section_context: section context - data_source: data source - spree/template_file: - attachment_file_name: File name - attachment_content_type: type - attachment_file_size: File size + data_source: data source + data_source_param: 数据源参数 + spree/product: + theme_id: template + spree/taxon: + page_context: 页面内容类型 + replaced_by: 页面内容替换 + spree/template_file: + attachment_file_name: file name + attachment_content_type: file type + attachment_file_size: file size + theme_id: template + template_theme: template created_at: created at - spree/template_text: - name: Title + spree/template_text: + name: name slug: Slug - body: Body + body: body spree/template_theme: &template_theme_labels - title: Title + title: title slug: Slug - body: Body + section_root_id: 基础模块 + is_public: 是否公开 + models: + spree/page_layout: + one: module + other: module spree/template_file: one: template file - many: template files + other: template file spree/template_text: one: template text - many: template texts + other: template text spree/template_theme: - one: template theme - many: template themes + one: template + other: template helpers: label: template_theme: <<: *template_theme_labels - notice_messages: - template_theme_imported: 模板已经导入 - template_theme_not_imported: 模板无法导入 template_theme: Theme template_themes: Themes spree: actions: - import: 导入 + import: import + config_desktop_theme: config desktop template + config_mobile_theme: config mobile template admin: tab: - template_themes: 模板 - theme_texts: template materials - native_themes: 模板 - foreign_themes: 模板商店 + taxonomies: taxonomies + template_themes: template + theme_texts: themplate texts + native_themes: templates + foreign_themes: template shop + back_to_themes_list: back to template list + back_to_template_text_list: back to template text list back_to_template_file_list: back to template file list - back_to_themes_list: 回到模板列表 - back_to_template_text_list: 回到素材列表 - back_to_template_file_list: 回到素材列表 - select_taxon: 选择菜单 - select_template_image: 选择图片 - select_from_foreign_themes: 到模板商店选择模板 + china_address: + firstname: name + phone: phone + state: state + city: city + street: street + select_taxon: select a taxon + select_template_image: select template image + select_template_text: select template text + select_from_foreign_themes: 到模板商店选择模板 default_page: home: home login: login + logout: logout account: account signup: signup password: password @@ -62,28 +99,86 @@ en: detail: detail unknown: unknown checkout: checkout - thanks: thanks - taxonomy: taxonomy - default_shipping_category_name: Default + thanks: thanks for order + taxonomy: taxonomy + blog: blog + post: post + detail: detail + dialog_title: dialog title + global_taxons: global taxons + post: + next: next + previous: previous + no_previous: no previous + no_next: no next + notice_messages: + theme_imported: template imported + theme_released: template released + theme_not_imported: template could not be imported + page_layout: + data_source: 数据源 + please_select_to_config: 请选择需要配置的模块 + section_context: 模块适用页面 + specific_taxon: 模块适用个别页面 + config_resource: 模块可用素材 + section_context: + home: 首页 + list: 产品列表 + detail: 产品详细 + cart: 购物车 + account: 我的账户 + checkout: 支付页 + thanks: 谢谢购物 + signup: 用户注册 + login: 用户登录 + password: 密码管理 + blog: 文章列表 + post: 文章内容 + logout: 用户退出 + either: 任意页 + new_site: 注册开店 + section_data_source: + gpvs: 产品集合 + this_product: 当前选择产品 + taxon: 菜单 + blog: 文章集合 + post: 当前选择文章 + gpvs_theme: 模板集合 + previous_post: 当前选择文章-前一篇 + next_post: 当前选择文章-下一篇 template_file: - index: 图片素材 - new: 新建图片素材 - template_resource: template_resource + index: template files + new: new template file + template_resource: 网站素材 template_text: - static_pages: Static pages + index: template texts static_pages_desc: Manage static page with WYSIWYG editor. - new_page: New page + new: new template text editing_page: Editing page confirm_delete: Are you sure ? link: Link meta_title: Meta Title page_navigation_title: "Pages" + template_themes: templates template_theme: - native_themes: native_themes - config: config - assign_resource: - page_layout: - context: - date_source: - - \ No newline at end of file + assign_resource: assign resource + assign: assign + new: new plain template + theme_foreign: temlate shop + theme_native: template + theme_applied: using + theme_apply: apply + theme_assign_taxon: assign taxon + theme_assign_image: assing image + theme_config: config template + theme_import: import template + theme_copy: copy template + theme_prepare_import: prepare + theme_is_imported: imported + theme_is_free: free + preview_theme: preview + install_theme_with_site: install + is_taxon_clickable: clickable + theme_release: release + welcome_to_admin_login: Login to system + welcome_to_under_construction: it is underconstruction,please login to system diff --git a/spree_theme/config/locales/zh-CN.yml b/spree_theme/config/locales/zh-CN.yml index a61080ee..36403f75 100644 --- a/spree_theme/config/locales/zh-CN.yml +++ b/spree_theme/config/locales/zh-CN.yml @@ -1,27 +1,42 @@ zh-CN: -########################################### start for template ########################################### +########################################### start for template ########################################### views: pagination: first: "« 首页" - last: "末页 »" + last: "末页 »" next: 下一页 » previous: ! '« 上一页' truncate: ! '…' -########################################### end for template ########################################### + theme: + product_image: + lightboxable: 点击放大图片 + +########################################### end for template ########################################### activerecord: attributes: + spree/comment: + email: 电子邮箱 + cellphone: 手机 + comment: 评论 spree/page_layout: - section_context: section context - data_source: data source + title: 名称 + content_param: 内容参数 + css_class: CSS + content_css_class: 内容 CSS + section_context: 适用页面 + data_source: 数据源 + data_source_param: 数据源参数 + stylish: 样式 spree/product: theme_id: 销售模板 spree/taxon: - page_context: 页面显示内容分类 - replaced_by: 页面显示内容置换 - spree/template_file: + page_context: 页面内容类型 + replaced_by: 页面内容替换 + spree/template_file: attachment_file_name: 文件名字 attachment_content_type: 类型 attachment_file_size: 文件大小 + theme_id: 所属模板 template_theme: 所属模板 created_at: 上传时间 spree/template_text: @@ -33,15 +48,17 @@ zh-CN: slug: Slug section_root_id: 基础模块 is_public: 是否公开 - + models: spree/page_layout: one: 模块 other: 模块 spree/template_file: one: 模板图片 + other: 模板图片 spree/template_text: one: 模板素材 + other: 模板素材 spree/template_theme: one: 模板 other: 模板 @@ -54,6 +71,8 @@ zh-CN: spree: actions: import: 购买 + config_desktop_theme: 配置电脑模板 + config_mobile_theme: 配置手机模板 admin: tab: taxonomies: 分类 @@ -70,9 +89,11 @@ zh-CN: state: 邮编 city: 所在地区 street: 详细地址 + comment_successfully_created: 谢谢您的反馈,我们已收到。 + comment_to_store: 亲爱的用户:欢迎您抢先体验“%{store_name}”,有任何意见和建议,或在使用过程中遇到问题,请告诉我们,我们会每天关注反馈信息,不断优化产品,为您提供更好的服务! select_taxon: 选择菜单 - select_template_image: 选择图片 - select_template_text: 选择文本 + select_template_image: 选择图片 + select_template_text: 选择文本 select_from_foreign_themes: 到模板商店选择模板 default_page: home: 首页 @@ -86,16 +107,24 @@ zh-CN: unknown: 未知 checkout: 付款 thanks: 恭喜!支付成功 - taxonomy: 缺省菜单 + taxonomy: 缺省菜单 blog: 文章列表 post: 文章内容 + detail: 详细 dialog_title: 对话框 global_taxons: 全局分类 + one_click_trial: 免费创建店铺 + post: + next: 下一篇 + previous: 上一篇 + no_previous: 没有了 + no_next: 没有了 notice_messages: theme_imported: 模板已经购买成功 - theme_not_imported: 模板无法导入 + theme_released: 模板已经发布成功 + theme_not_imported: 模板无法导入 page_layout: - data_source: 数据源 + data_source: 数据源 please_select_to_config: 请选择需要配置的模块 section_context: 模块适用页面 specific_taxon: 模块适用个别页面 @@ -119,10 +148,13 @@ zh-CN: section_data_source: gpvs: 产品集合 this_product: 当前选择产品 - taxon: 菜单 + taxon: 菜单 blog: 文章集合 post: 当前选择文章 gpvs_theme: 模板集合 + previous_post: 当前选择文章-前一篇 + next_post: 当前选择文章-下一篇 + store_comment: 请留下您对“%{store_name}”的意见和建议! template_file: index: 图片素材 new: 新建图片素材 @@ -135,7 +167,7 @@ zh-CN: confirm_delete: Are you sure ? link: Link meta_title: Meta Title - page_navigation_title: "Pages" + page_navigation_title: "Pages" template_themes: 模板 template_theme: assign_resource: 模板素材 @@ -157,7 +189,18 @@ zh-CN: install_theme_with_site: 安装 is_taxon_clickable: 分类是否可点击 theme_release: 发布 - welcome_to_admin_login: Dalianshops管理系统登录 + user_terminal: 用戶终端 + welcome_to_admin_login: 管理系统登录 welcome_to_under_construction: 网站建设中,请登录管理系统 - - \ No newline at end of file +#for comment + said: said + for: for + comments: Comments + comment: Comment + add_comment_type: Add Comment Type + comment_types: Comment Types + manage_comment_types: Manage comment types + applies_to: Applies To + new_comment_type: New Comment Type + editing_comment_type: Editing Comment Type + back_to_comment_types_list: Back to Comment Types List diff --git a/spree_theme/config/routes.rb b/spree_theme/config/routes.rb index 954454ae..59e33c99 100644 --- a/spree_theme/config/routes.rb +++ b/spree_theme/config/routes.rb @@ -1,5 +1,5 @@ Spree::Core::Engine.routes.draw do - + root :to => 'template_themes#page' # Add your extension routes here resources :template_themes do @@ -15,18 +15,38 @@ get 'upload_file_dialog' post 'upload_file_dialog' end + + resources :page_layouts, only: [:edit,:update] do + + end + end - + + namespace :admin do + resources :comments + resources :comment_types + resources :orders do + member do + get :comments + end + resources :shipments do + member do + get :comments + end + end + end + end + resources :comments, :only=>[:create] do collection do get :new_to_site end end - - get '(/:c(/:r))' => 'template_themes#page' , :c => /\d[^\/]*/ # :c, taxon_id-permalink, :r, product_id-permalink + + get '(/:c(/:r))' => 'template_themes#page' , :c => /\d[^\/]*/ # :c, taxon_id-permalink, :r, product_id-permalink get '/post/:c/:p' => 'template_themes#page', :c => /\d[^\/]*/ # - #match 'preview(/:c(/:r))' => 'template_themes#preview' #preview home - + get '/preview/:id' => 'template_themes#preview' #preview template_theme, for design shop only. + get '/under_construction', :to => 'template_themes#under_construction', :as => :under_construction post '/create_admin_session', :to => 'template_themes#create_admin_session', :as => :create_admin_session get '/new_admin_session', :to => 'template_themes#new_admin_session', :as => :new_admin_session @@ -41,9 +61,9 @@ collection do get :global end - end + end end - + namespace :admin do resources :template_texts resources :template_files @@ -54,16 +74,15 @@ end member do get :config_resource # assign resource(menu, image) - get :config_context # - get :config_data_source# - get :prepare_import # assign resource(menu, image) + get :config_context # + get :config_data_source# + #get :prepare_import # assign resource(menu, image) post :copy post :release - post :import - put :apply + patch :apply end - - resources :page_layout do + + resources :page_layouts do member do get :config_resource get :config_context diff --git a/spree_theme/db/extra_piece_params/131012_table_form.rb b/spree_theme/db/extra_piece_params/131012_table_form.rb deleted file mode 100644 index 0e079afd..00000000 --- a/spree_theme/db/extra_piece_params/131012_table_form.rb +++ /dev/null @@ -1,62 +0,0 @@ -=begin -include SpreeTheme::SectionPieceParamHelper - -#table title cell, border,padding -section_piece = Spree::SectionPiece.find 'root' - -table = {"editor_id"=>2, "class_name"=>"table", "pclass"=>"css", "param_category_id"=>78, "html_attribute_ids"=>"31,7,8,6"} -title = {"editor_id"=>2, "class_name"=>"table_title", "pclass"=>"css", "param_category_id"=>79, "html_attribute_ids"=>"31,32,7,8,6"} -cell = {"editor_id"=>2, "class_name"=>"cell", "pclass"=>"css", "param_category_id"=>80, "html_attribute_ids"=>"32,7,8,6"} - -create_section_piece_param( section_piece, table) -create_section_piece_param( section_piece, title) -create_section_piece_param( section_piece, cell) - -title = { "editor_id"=>3, "class_name"=>"table_title", "pclass"=>"css", "param_category_id"=>79, "html_attribute_ids"=>"2,3,4,5"} -cell = { "editor_id"=>3, "class_name"=>"cell", "pclass"=>"css", "param_category_id"=>80, "html_attribute_ids"=>"2,3,4,5"} -th = { "editor_id"=>3, "class_name"=>"th", "pclass"=>"css", "param_category_id"=>81, "html_attribute_ids"=>"2,3,4,5"} -td = { "editor_id"=>3, "class_name"=>"td", "pclass"=>"css", "param_category_id"=>82, "html_attribute_ids"=>"2,3,4,5"} -create_section_piece_param( section_piece, title) -create_section_piece_param( section_piece, cell) -create_section_piece_param( section_piece, th) -create_section_piece_param( section_piece, td) - -title = { "editor_id"=>4, "class_name"=>"table_title", "pclass"=>"css", "param_category_id"=>79, "html_attribute_ids"=>"24,27,49,53,54"} -cell = { "editor_id"=>4, "class_name"=>"cell", "pclass"=>"css", "param_category_id"=>80, "html_attribute_ids"=>"24,27,49,53,54"} -th = { "editor_id"=>4, "class_name"=>"th", "pclass"=>"css", "param_category_id"=>81, "html_attribute_ids"=>"24,27,49,53,54"} -td = { "editor_id"=>4, "class_name"=>"td", "pclass"=>"css", "param_category_id"=>82, "html_attribute_ids"=>"24,27,49,53,54"} -create_section_piece_param( section_piece, title) -create_section_piece_param( section_piece, cell) -create_section_piece_param( section_piece, th) -create_section_piece_param( section_piece, td) - - -form = {"editor_id"=>2, "class_name"=>"form", "pclass"=>"css", "param_category_id"=>39, "html_attribute_ids"=>"31,7,8,6"} -title = {"editor_id"=>2, "class_name"=>"form_title", "pclass"=>"css", "param_category_id"=>40, "html_attribute_ids"=>"31,32,7,8,6"} -label = {"editor_id"=>2, "class_name"=>"label", "pclass"=>"css", "param_category_id"=>42, "html_attribute_ids"=>"31,32,7,8,6"} -error = {"editor_id"=>2, "class_name"=>"form_error", "pclass"=>"css", "param_category_id"=>43, "html_attribute_ids"=>"31,32,7,8,6"} -input = { "editor_id"=>2, "class_name"=>"input", "pclass"=>"css", "param_category_id"=>44, "html_attribute_ids"=>"21,15,31,32,7,8,6"} -create_section_piece_param( section_piece, form) -create_section_piece_param( section_piece, title) -create_section_piece_param( section_piece, label) -create_section_piece_param( section_piece, error) -create_section_piece_param( section_piece, input) - -title = { "editor_id"=>3, "class_name"=>"form_title", "pclass"=>"css", "param_category_id"=>40, "html_attribute_ids"=>"2,3,4,5"} -label = {"editor_id"=>3, "class_name"=>"label", "pclass"=>"css", "param_category_id"=>42, "html_attribute_ids"=>"2,3,4,5"} -error = {"editor_id"=>3, "class_name"=>"form_error", "pclass"=>"css", "param_category_id"=>43, "html_attribute_ids"=>"2,3,4,5"} -input = { "editor_id"=>3, "class_name"=>"input", "pclass"=>"css", "param_category_id"=>44, "html_attribute_ids"=>"2,3,4,5"} -create_section_piece_param( section_piece, title) -create_section_piece_param( section_piece, label) -create_section_piece_param( section_piece, error) -create_section_piece_param( section_piece, input) - -title = { "editor_id"=>4, "class_name"=>"form_title", "pclass"=>"css", "param_category_id"=>40, "html_attribute_ids"=>"24,27,49,53,54"} -label = {"editor_id"=>4, "class_name"=>"label", "pclass"=>"css", "param_category_id"=>42, "html_attribute_ids"=>"24,27,49,53,54"} -error = {"editor_id"=>4, "class_name"=>"form_error", "pclass"=>"css", "param_category_id"=>43, "html_attribute_ids"=>"24,27,49,53,54"} -input = { "editor_id"=>4, "class_name"=>"input", "pclass"=>"css", "param_category_id"=>44, "html_attribute_ids"=>"24,27,49,53,54"} -create_section_piece_param( section_piece, title) -create_section_piece_param( section_piece, label) -create_section_piece_param( section_piece, error) -create_section_piece_param( section_piece, input) -=end \ No newline at end of file diff --git a/spree_theme/db/extra_piece_params/131018_link.rb b/spree_theme/db/extra_piece_params/131018_link.rb deleted file mode 100644 index 9d12afd3..00000000 --- a/spree_theme/db/extra_piece_params/131018_link.rb +++ /dev/null @@ -1,22 +0,0 @@ -=begin - -include SpreeTheme::SectionPieceParamHelper - -#table title cell, border,padding -section_piece = Spree::SectionPiece.find 'root' - - -a = { "editor_id"=>2, "class_name"=>"a", "pclass"=>"css", "param_category_id"=>11, "html_attribute_ids"=>"31,32,7,8,6"} -create_section_piece_param( section_piece, a) - -a = { "editor_id"=>3, "class_name"=>"a", "pclass"=>"css", "param_category_id"=>11, "html_attribute_ids"=>"2,3,4,5"} -a_h = { "editor_id"=>3, "class_name"=>"a_h", "pclass"=>"css", "param_category_id"=>12, "html_attribute_ids"=>"2,3,4,5"} - -create_section_piece_param( section_piece, a) -create_section_piece_param( section_piece, a_h) - -a = { "editor_id"=>4, "class_name"=>"a", "pclass"=>"css", "param_category_id"=>11, "html_attribute_ids"=>"24,27,49,53,54"} -a_h = { "editor_id"=>4, "class_name"=>"a_h", "pclass"=>"css", "param_category_id"=>12, "html_attribute_ids"=>"24,27,49,53,54"} -create_section_piece_param( section_piece, a) -create_section_piece_param( section_piece, a_h) -=end \ No newline at end of file diff --git a/spree_theme/db/migrate/20110614100723_spree_theme_tables.rb b/spree_theme/db/migrate/20110614100723_spree_theme_tables.rb index f1e7ac3b..befe45c1 100644 --- a/spree_theme/db/migrate/20110614100723_spree_theme_tables.rb +++ b/spree_theme/db/migrate/20110614100723_spree_theme_tables.rb @@ -1,6 +1,6 @@ class SpreeThemeTables < ActiveRecord::Migration def self.up - + # This table contains the css specification, copied from the w3 website. # Ok, it also includes html elment attributes, but only the ones that can't be put in css # Users do not use this table. @@ -10,7 +10,7 @@ def self.up t.column :css_name, :string, :null => false, :default => "" # the name of the property t.column :slug, :string, :null => false, :default => "" # the name of the property t.column :pvalues, :string, :null => false, :default => "" # comma separate list of possible values to choose from - # or 0?=see below, 1=length, 2=x y, 4=t r b l, + # or 0?=see below, 1=length, 2=x y, 4=t r b l, t.column :pvalues_desc, :string, :null => false, :default => "" # comma separate list of possible values to choose from t.column :punits, :string, :null => false, :default => "" # the units applicable to the property if pvalues contains l1 or l2, can be %,in,cm,mm,em,ex,pt,pc,px (l=all except %). Notation is: [l|%|f][+in,cm,mm,em,ex,pt,pc,px] t.column :neg_ok, :boolean, :null => false, :default => false @@ -26,7 +26,7 @@ def self.up t.column :slug, :string, :limit => 100, :null => false t.column :html, :string, :limit => 12000, :null => false, :default => "" t.column :css, :string, :limit => 8000, :null => false, :default => "" - t.column :js, :string, :limit => 60, :null => false, :default => "" # a comma separated list of js ids + t.column :js, :string, :limit => 60, :null => false, :default => "" # a comma separated list of js ids # indicate it is html root or not? t.column :is_root, :boolean, :null => false, :default => false t.column :is_container, :boolean, :null => false, :default => false @@ -40,7 +40,7 @@ def self.up t.column :updated_at, :datetime end add_index :spree_section_pieces, :slug, :unique => true - + # it is category of section_piece_params # 1. we want to expand&collapse # 2. we want to get a group of param_values, ex. general position : width, height,outer_margin, margin, border, padding. @@ -68,17 +68,17 @@ def self.up t.column "slug", :string, :limit => 64, :null => false, :default => "" t.column "section_piece_id", :integer, :limit => 3, :null => true, :default => 0 t.column "section_piece_instance", :integer, :limit => 2, :null => true, :default => 0 - t.column "is_enabled", :boolean, :null => false, :default => true + t.column "is_enabled", :boolean, :null => false, :default => true t.column "global_events", :string, :limit => 200, :null => false, :default => "" t.column "subscribed_global_events", :string, :limit => 200, :null => false, :default => "" #comma seperated event, ex. page_layout_fixed - end + end #section instance composite of layout create_table :spree_page_layouts, :force=>true do |t| - t.column "site_id", :integer, :limit => 3, :null => true, :default => 0 - t.column "root_id", :integer, :limit => 3#, :null => true, :default => :null + t.column "site_id", :integer, :limit => 3, :null => true, :default => 0 + t.column "root_id", :integer, :limit => 3#, :null => true, :default => :null t.column "parent_id", :integer, :limit => 3#, :null => true, :default => :null - #default value is null, acts_as_nested_set required + #default value is null, acts_as_nested_set required t.column "lft", :integer, :limit => 2, :null => false, :default => 0 t.column "rgt", :integer, :limit => 2, :null => false, :default => 0 t.column "title", :string, :limit => 200, :null => false, :default => "" @@ -86,18 +86,19 @@ def self.up t.column "section_id", :integer, :limit => 3, :null => true, :default => 0 # id of sections, only root could be here. t.column "section_instance", :integer, :limit => 2, :null => false, :default => 0 + #comma seperated section context. ex. list,detail t.column "section_context", :string, :limit => 64, :null => false, :default => "" t.column "data_source", :string, :limit => 32, :null => false, :default => "" t.column "data_filter", :string, :limit => 32, :null => false, :default => "" t.column "is_enabled", :boolean, :null => false, :default => true # this node is copy from another tree, ex. center area is a layout tree, we prebuilt it for user. - # value is layout tree's root_id. + # value is layout tree's root_id. t.column "copy_from_root_id", :integer, :null => false, :default => 0 # it is only for root record, this layout tree is full html page. # there are two kinds of layout tree full_html_page and part_html_page t.column "is_full_html", :boolean, :null => false, :default => false t.timestamps - + end create_table :spree_section_piece_params, :force=>true do |t| t.column :section_piece_id, :integer, :limit => 2, :null => false, :default => 0 @@ -105,9 +106,9 @@ def self.up t.column :param_category_id, :integer, :limit => 2, :null => false, :default => 0 t.column :position, :integer, :limit => 2, :null => false, :default => 0 # get param_value order by ssection_piece_params.position - t.column :pclass, :string - # since a html style attribute also could in css, - # it tell where use the current param. possible value style,css,erb + t.column :pclass, :string + # since a html style attribute also could in css, + # it tell where use the current param. possible value style,css,erb t.column :class_name, :string, :null => false, :default => "" # if pclass == class, class_name = the name of the class # if pclass == style, class_name = the name of the style # if pclass == group, class_name = the name of the group of html attributes @@ -117,10 +118,10 @@ def self.up t.boolean :is_editable, :default=>true # some uneditable section piece param store the computed value. like 'inner_height' end - + create_table :spree_section_params do |t| t.integer :section_root_id #it is section_root_id - t.integer :section_id + t.integer :section_id #t.integer :section_piece_id #t.integer :section_piece_instance t.integer :section_piece_param_id @@ -129,7 +130,7 @@ def self.up t.string :disabled_ha_ids, :limit=>255, :null => false, :default => "" t.timestamps end - + # store the text used in the section. like pclass='txt' create_table :spree_section_texts do |t| t.string :lang @@ -141,26 +142,26 @@ def self.up t.column :site_id, :integer, :null => true, :default => 0 # this is an id in the page_layouts table t.column :page_layout_root_id, :integer, :null => false, :default => 0 # this is an id in the page_layouts table t.column :release_id, :integer, :null => true, :default => 0 # this is an id in the page_layouts table - t.column :title, :string, :limit => 64, :null => false, :default => "" # the name of the property - t.column :slug, :string, :limit => 64, :null => false, :default => "" # the name of the property + t.column :title, :string, :limit => 64, :null => false, :default => "" # the name of the property + t.column :slug, :string, :limit => 64, :null => false, :default => "" # the name of the property # keep all assigned resource ids to the template, it is hash # {:page_layout_id={:spree/template_file=[], :spree/taxon=[]}} - t.column :assigned_resource_ids, :string, :limit => 255, :null => false, :default => "" + t.column :assigned_resource_ids, :string, :limit => 255, :null => false, :default => "" #t.column :released_at, :datetime,:null => false, :default => "1970-01-01 00:00:00" t.timestamps end - + create_table :spree_template_releases do |t| t.string :name,:limit => 24, :null => false t.integer :theme_id, :null => false, :default => 0 t.timestamps - end - + end + create_table :spree_param_values, :force=>true do |t| t.column :page_layout_root_id, :integer, :limit => 2, :null => false, :default => 0 # this is an root layout id in the page_layouts table - # in param_value_event, we need get page_layout + # in param_value_event, we need get page_layout t.column :page_layout_id, :integer, :limit => 2, :null => false, :default => 0 # this is an id in the page_layouts table - #section_param indicate section_piece instance. + #section_param indicate section_piece instance. #t.column :section_id, :integer, :limit => 2, :null => false, :default => 0 # this is an id in the sections table #t.column :section_instance, :integer, :limit => 2, :null => false, :default => 0 # the instance of the section in the layout t.column :section_param_id, :integer, :limit => 2, :null => false, :default => 0 @@ -168,7 +169,7 @@ def self.up t.column :pvalue, :string, :limit => 4096 #, :null => false, :default => "" # the user chosen value of the corresponding default_page_param (can be utf8) t.column :unset, :string #, :null => false, :default => false if true ignore the pvalue and do not generate an output for this param t.column :computed_pvalue, :string #, :null => false, :default => "" #hash in yml - #t.column :preview_pvalue, :string, :null => false, :default => "" + #t.column :preview_pvalue, :string, :null => false, :default => "" # only used when pclass=themeimg, if not empty this is the name of the image to use during preview, when publishing set this to empty after renaming the file on disk. #t.column :preview_unset, :string, :null => false, :default => false # if true ignore the pvalue and do not generate an output for this param t.timestamps @@ -185,7 +186,7 @@ def self.up end end - + def self.down drop_table :spree_html_attributes drop_table :spree_section_pieces @@ -200,6 +201,6 @@ def self.down drop_table :spree_template_releases drop_table :spree_param_values drop_table :spree_template_files - + end end diff --git a/spree_theme/db/migrate/20140814000001_add_data_source_param.rb b/spree_theme/db/migrate/20140814000001_add_data_source_param.rb index 104ee1a2..5dd38143 100644 --- a/spree_theme/db/migrate/20140814000001_add_data_source_param.rb +++ b/spree_theme/db/migrate/20140814000001_add_data_source_param.rb @@ -1,6 +1,10 @@ class AddDataSourceParam < ActiveRecord::Migration def change + # section param effect on content, we use data_source_param + # section param effect on css, we use content_param add_column :spree_page_layouts, :data_source_param, :string, :default => '' + # comma(',') seperated string, format: page_size,enable_pagination(enable if nil) + # add_column :spree_section_piece_params, :editable_condition, :string, :default => '' # editable_condition comma separated string, available values ['data_source:gpvs,data_source:blog'] end diff --git a/spree_theme/db/migrate/20140901070030_add_is_clickable.rb b/spree_theme/db/migrate/20140901070030_add_is_clickable.rb index ee735745..ff41f78c 100644 --- a/spree_theme/db/migrate/20140901070030_add_is_clickable.rb +++ b/spree_theme/db/migrate/20140901070030_add_is_clickable.rb @@ -12,7 +12,8 @@ def change # bit 2,3,4 indicate main_image size, 00: product, 01:large, 10: original, 11:small # 16 32 48 # bit 5,6,7 indicate thumbnail size 00: small, 01:large, 10: original, 11:product - # + # for section menu, bit 3,4 indicate 'hover effect' + # bit 3 two menu item exchange on hover end end diff --git a/spree_theme/db/migrate/20141102045742_add_foreign_theme_id.rb b/spree_theme/db/migrate/20141102045742_add_foreign_theme_id.rb index aa3db34b..f9fb05c5 100644 --- a/spree_theme/db/migrate/20141102045742_add_foreign_theme_id.rb +++ b/spree_theme/db/migrate/20141102045742_add_foreign_theme_id.rb @@ -1,7 +1,12 @@ class AddForeignThemeId < ActiveRecord::Migration - # in this file add site_id after all table complete. - def change - add_column :spree_sites, :foreign_theme_id, :integer, :null=>false, :default=>0 + # in this file add site_id after all table complete. + def change + # customer could select a theme when creating site. + if ActiveRecord::Base.connection.table_exists? 'spree_sites' + add_column :spree_sites, :foreign_theme_id, :integer, :null=>false, :default=>0 + else + add_column :spree_fake_websites, :foreign_theme_id, :integer, :null=>false, :default=>0 + end end end diff --git a/spree_comments/db/migrate/20141202082639_create_comments.rb b/spree_theme/db/migrate/20141202082639_create_comments.rb similarity index 95% rename from spree_comments/db/migrate/20141202082639_create_comments.rb rename to spree_theme/db/migrate/20141202082639_create_comments.rb index 4a145de4..072f88b5 100644 --- a/spree_comments/db/migrate/20141202082639_create_comments.rb +++ b/spree_theme/db/migrate/20141202082639_create_comments.rb @@ -2,7 +2,7 @@ class CreateComments < ActiveRecord::Migration def self.up create_table :spree_comments do |t| t.string :title, :limit => 50, :default => "" - t.text :comment, :default => "" + t.text :comment t.references :commentable, :polymorphic => true t.references :user #for unlogged customer, we store email and cellphone for later touch diff --git a/spree_theme/db/migrate/20141222000001_support_mobile.rb b/spree_theme/db/migrate/20141222000001_support_mobile.rb new file mode 100644 index 00000000..0d8ddb0d --- /dev/null +++ b/spree_theme/db/migrate/20141222000001_support_mobile.rb @@ -0,0 +1,16 @@ +# some section piece is clickable, like taxon name, product name, post name, +# in some case, we don't want it to be clickable, ex. in product detail page, product name should not be clickable. +class SupportMobile < ActiveRecord::Migration + def change + if ActiveRecord::Base.connection.table_exists? 'spree_sites' + add_column :spree_sites, :support_mobile, :boolean, :null => false, :default => false + else + add_column :spree_fake_websites, :support_mobile, :boolean, :null => false, :default => false + end + # for terminal, terminal could be 0=pc, 1=mobile_phone, 2=pad, 3=tv ... + add_column :spree_template_themes, :for_terminal, :integer, :limit=>1, :null => false, :default => 0 + add_column :spree_sections, :for_terminal, :integer, :limit=>1, :null => false, :default => 0 + add_column :spree_section_pieces, :for_terminal, :integer, :limit=>1, :null => false, :default => 0 + add_column :spree_template_themes, :master_id, :integer, :null=>false, :default=>0 + end +end diff --git a/spree_theme/db/migrate/20150120074452_add_tooltips_to_taxons.rb b/spree_theme/db/migrate/20150120074452_add_tooltips_to_taxons.rb new file mode 100644 index 00000000..61c64226 --- /dev/null +++ b/spree_theme/db/migrate/20150120074452_add_tooltips_to_taxons.rb @@ -0,0 +1,6 @@ +# This migration comes from spree_auth (originally 20141002154641) +class AddTooltipsToTaxons < ActiveRecord::Migration + def change + add_column :spree_taxons, :tooltips, :string + end +end diff --git a/spree_theme/db/migrate/20150124000001_add_map_to_stores.rb b/spree_theme/db/migrate/20150124000001_add_map_to_stores.rb new file mode 100644 index 00000000..7d4a382e --- /dev/null +++ b/spree_theme/db/migrate/20150124000001_add_map_to_stores.rb @@ -0,0 +1,10 @@ +# This migration comes from spree_auth (originally 20141002154641) +class AddMapToStores < ActiveRecord::Migration + def change + add_column :spree_stores, :map_lat, :string, :length=>10 + add_column :spree_stores, :map_lng, :string, :length=>10 + add_column :spree_stores, :map_title, :string + add_column :spree_stores, :map_content, :string + + end +end diff --git a/spree_theme/db/migrate/20150126000030_add_depth_to_page_layouts.rb b/spree_theme/db/migrate/20150126000030_add_depth_to_page_layouts.rb new file mode 100644 index 00000000..98e1dfc0 --- /dev/null +++ b/spree_theme/db/migrate/20150126000030_add_depth_to_page_layouts.rb @@ -0,0 +1,20 @@ +# some section piece is clickable, like taxon name, product name, post name, +# in some case, we don't want it to be clickable, ex. in product detail page, product name should not be clickable. +class AddDepthToPageLayouts < ActiveRecord::Migration + + def up + if !Spree::PageLayout.column_names.include?('depth') + add_column :spree_page_layouts, :depth, :integer + + say_with_time 'Update depth on all page_layout' do + Spree::PageLayout.reset_column_information + Spree::PageLayout.all.each { |t| t.save } + end + end + end + + def down + remove_column :spree_taxons, :depth + end + +end diff --git a/spree_theme/db/migrate/20150127000001_add_summary_to_products.rb b/spree_theme/db/migrate/20150127000001_add_summary_to_products.rb new file mode 100644 index 00000000..d4cdff15 --- /dev/null +++ b/spree_theme/db/migrate/20150127000001_add_summary_to_products.rb @@ -0,0 +1,7 @@ +# some section piece is clickable, like taxon name, product name, post name, +# in some case, we don't want it to be clickable, ex. in product detail page, product name should not be clickable. +class AddSummaryToProducts < ActiveRecord::Migration + def change + add_column :spree_products, :summary, :string #ad + end +end diff --git a/spree_theme/db/migrate/20150210000030_add_css_class_to_page_layouts.rb b/spree_theme/db/migrate/20150210000030_add_css_class_to_page_layouts.rb new file mode 100644 index 00000000..08d29032 --- /dev/null +++ b/spree_theme/db/migrate/20150210000030_add_css_class_to_page_layouts.rb @@ -0,0 +1,8 @@ +class AddCssClassToPageLayouts < ActiveRecord::Migration + + def change + # support bootstrap css class + add_column :spree_page_layouts, :css_class, :string + end + +end diff --git a/spree_theme/db/migrate/20150303000001_add_last_released_at.rb b/spree_theme/db/migrate/20150303000001_add_last_released_at.rb new file mode 100644 index 00000000..17dfd7a1 --- /dev/null +++ b/spree_theme/db/migrate/20150303000001_add_last_released_at.rb @@ -0,0 +1,10 @@ +class AddLastReleasedAt < ActiveRecord::Migration + + def change + # get section by usage 'dialog', 'image', 'container' + add_column :spree_sections, :usage, :string, :limit=>24 + add_column :spree_template_themes, :last_released_at, :datetime + add_column :spree_template_themes, :last_changed_at, :datetime + end + +end diff --git a/spree_theme/db/migrate/20150312000001_add_tracker_name.rb b/spree_theme/db/migrate/20150312000001_add_tracker_name.rb new file mode 100644 index 00000000..988e771f --- /dev/null +++ b/spree_theme/db/migrate/20150312000001_add_tracker_name.rb @@ -0,0 +1,7 @@ +class AddTrackerName < ActiveRecord::Migration + + def change + add_column :spree_trackers, :name, :string, :limit=>24 + end + +end diff --git a/spree_theme/db/migrate/20150314000001_add_content_css_class_to_page_layouts.rb b/spree_theme/db/migrate/20150314000001_add_content_css_class_to_page_layouts.rb new file mode 100644 index 00000000..c0f8896a --- /dev/null +++ b/spree_theme/db/migrate/20150314000001_add_content_css_class_to_page_layouts.rb @@ -0,0 +1,8 @@ +class AddContentCssClassToPageLayouts < ActiveRecord::Migration + + def change + # support bootstrap css class, awesome-font. + add_column :spree_page_layouts, :content_css_class, :string + end + +end diff --git a/spree_theme/db/migrate/20150317000001_add_store_id_into_template_theme.rb b/spree_theme/db/migrate/20150317000001_add_store_id_into_template_theme.rb new file mode 100644 index 00000000..23edbb81 --- /dev/null +++ b/spree_theme/db/migrate/20150317000001_add_store_id_into_template_theme.rb @@ -0,0 +1,14 @@ +# This migration comes from spree_theme (originally 20150317000001) +class AddStoreIdIntoTemplateTheme < ActiveRecord::Migration + + def self.up + add_column :spree_template_themes, :store_id, :integer + Spree::TemplateTheme.all.each{|theme| + theme.update_attribute :store_id, Spree::Store.unscoped.where(site_id: theme.site_id).first.id + } + end + + def self.down + remove_column :spree_template_themes, :store_id + end +end diff --git a/spree_theme/db/migrate/20150330045742_add_store_designable.rb b/spree_theme/db/migrate/20150330045742_add_store_designable.rb new file mode 100644 index 00000000..cfb757fb --- /dev/null +++ b/spree_theme/db/migrate/20150330045742_add_store_designable.rb @@ -0,0 +1,9 @@ +class AddStoreDesignable < ActiveRecord::Migration + # add feature store disignable + def change + add_column :spree_stores, :designable, :boolean, default: false + SpreeTheme.site_class.where(:short_name=>['design','design2','design1']).each{|site| + site.stores.first.update_attribute :designable, true + } + end +end diff --git a/spree_theme/db/migrate/20150330045999_add_store_index_page.rb b/spree_theme/db/migrate/20150330045999_add_store_index_page.rb new file mode 100644 index 00000000..71d4d72b --- /dev/null +++ b/spree_theme/db/migrate/20150330045999_add_store_index_page.rb @@ -0,0 +1,12 @@ +class AddStoreIndexPage < ActiveRecord::Migration + # add feature store disignable + def change + add_column :spree_stores, :index_page_id, :integer, :null => false, :default => 0 + add_column :spree_stores, :theme_id, :integer, :null => false, :default => 0 + add_column :spree_stores, :template_release_id, :integer, :null => false, :default => 0 + + SpreeTheme.site_class.all.each{|site| + site.stores.first.update_attributes( index_page_id: site.index_page, theme_id: site.theme_id, template_release_id: site.template_release_id ) + } + end +end diff --git a/spree_theme/db/migrate/20150416000001_add_locale_into_template_theme.rb b/spree_theme/db/migrate/20150416000001_add_locale_into_template_theme.rb new file mode 100644 index 00000000..28ca53c1 --- /dev/null +++ b/spree_theme/db/migrate/20150416000001_add_locale_into_template_theme.rb @@ -0,0 +1,9 @@ +# template support locale +class AddLocaleIntoTemplateTheme < ActiveRecord::Migration + + def change + add_column :spree_template_themes, :locale, :string, :limit=>24 + add_column :spree_template_themes, :home_page_id, :integer + end + +end diff --git a/spree_theme/db/migrate/20150815070030_add_taxon_stylish.rb b/spree_theme/db/migrate/20150815070030_add_taxon_stylish.rb new file mode 100644 index 00000000..2c898c8b --- /dev/null +++ b/spree_theme/db/migrate/20150815070030_add_taxon_stylish.rb @@ -0,0 +1,12 @@ +class AddTaxonStylish < ActiveRecord::Migration + def change + # each store have a theme, + # each taxon belongs to the theme, + # each theme have several list style, by default it is 0 + # a taxon could select own style. + add_column :spree_taxons, :stylish, :integer, :null => false, :default => 0 + add_column :spree_page_layouts, :stylish, :integer,:null => false, :default => 0 + + end + +end diff --git a/spree_theme/db/migrate/20150825070030_add_theme_id_to_page_layout.rb b/spree_theme/db/migrate/20150825070030_add_theme_id_to_page_layout.rb new file mode 100644 index 00000000..f97d9ffb --- /dev/null +++ b/spree_theme/db/migrate/20150825070030_add_theme_id_to_page_layout.rb @@ -0,0 +1,27 @@ +class AddThemeIdToPageLayout < ActiveRecord::Migration + def change + # use template_theme_id as scope, instead of root_id + add_column :spree_page_layouts, :template_theme_id, :integer,:null => false, :default=>0 + add_column :spree_page_layouts, :copy_from_id, :integer,:null => false, :default=>0 + add_column :spree_template_themes, :copy_from_id, :integer,:null => false, :default=>0 + + Spree::TemplateTheme.all.each{|theme| + page_layout = Spree::PageLayout.where( id: theme.page_layout_root_id ).first + # original page_layout is missing + if page_layout.present? + if page_layout.site_id == theme.site_id + # do not use page_layotu.self_and_descendants, scope is changed to template_theme_id now. + Spree::PageLayout.where( root_id: theme.page_layout_root_id).update_all(template_theme_id: theme.id) + else + original_template_theme = Spree::TemplateTheme.where( page_layout_root_id: theme.page_layout_root_id).order('id').first + theme.update_attribute(:copy_from_id, original_template_theme.id ) + end + else + #fix missing page_layout_root_id, theme refer to deleted page_layout_id=1 + theme.update_attribute(:page_layout_root_id, Spree::TemplateTheme.first.page_layout_root_id ) + theme.update_attribute(:copy_from_id, Spree::TemplateTheme.first.id ) + end + } + end + +end diff --git a/spree_theme/db/migrate/20151017045742_add_store_is_public.rb b/spree_theme/db/migrate/20151017045742_add_store_is_public.rb new file mode 100644 index 00000000..2896bf97 --- /dev/null +++ b/spree_theme/db/migrate/20151017045742_add_store_is_public.rb @@ -0,0 +1,9 @@ +class AddStoreIsPublic < ActiveRecord::Migration + # add feature store disignable + def change + add_column :spree_stores, :is_public, :boolean, default: false + SpreeTheme.site_class.all.each{|site| + site.stores.first.update_attribute :is_public, true + } + end +end diff --git a/spree_theme/db/migrate/20151101000030_add_theme_media_width.rb b/spree_theme/db/migrate/20151101000030_add_theme_media_width.rb new file mode 100644 index 00000000..59969654 --- /dev/null +++ b/spree_theme/db/migrate/20151101000030_add_theme_media_width.rb @@ -0,0 +1,19 @@ +# some section piece is clickable, like taxon name, product name, post name, +# in some case, we don't want it to be clickable, ex. in product detail page, product name should not be clickable. +class AddThemeMediaWidth < ActiveRecord::Migration + def change + + # a template has some compatible media width. + create_table :spree_user_terminals do |t| + t.string :name,:limit=>64 + t.string :medium_width, :limit=>128 + end + + + add_reference( :spree_payment_methods, :user_terminal ) + add_reference( :spree_template_themes, :user_terminal ) + add_reference( :spree_orders, :user_terminal ) + + end + +end diff --git a/spree_theme/db/migrate/20151122000001_widen_resource_ids.rb b/spree_theme/db/migrate/20151122000001_widen_resource_ids.rb new file mode 100644 index 00000000..f7b2b440 --- /dev/null +++ b/spree_theme/db/migrate/20151122000001_widen_resource_ids.rb @@ -0,0 +1,5 @@ +class WidenResourceIds < ActiveRecord::Migration + def change + change_column :spree_template_themes, :assigned_resource_ids , :string, :limit => 2048, :null => false, :default => '' + end +end diff --git a/spree_theme/db/migrate/20151203015151_add_cellphone_to_users.rb b/spree_theme/db/migrate/20151203015151_add_cellphone_to_users.rb new file mode 100644 index 00000000..ac2ba314 --- /dev/null +++ b/spree_theme/db/migrate/20151203015151_add_cellphone_to_users.rb @@ -0,0 +1,6 @@ +class AddCellphoneToUsers < ActiveRecord::Migration + def change + add_column :spree_users, :cellphone, :string + add_index :spree_users, :cellphone, unique: true + end +end diff --git a/spree_theme/db/seeds.rb b/spree_theme/db/seeds.rb index 63941011..1102b255 100644 --- a/spree_theme/db/seeds.rb +++ b/spree_theme/db/seeds.rb @@ -1,12 +1,12 @@ -# +# # rake RAILS_ENV=test db:seed - +include SpreeTheme::SeedHelper # plese load section_pieces first, seed sections.rb need it. seeds_path = File.join(File.dirname(__FILE__), 'seeds') -#suffix number of seeds file name indicate loading order. -xpath = File.join(seeds_path, "*.rb") -Dir[xpath].sort.each {|file| +#suffix number of seeds file name indicate loading order. +xpath = File.join(seeds_path,"**", "*.rb") +Dir[xpath].sort.each {|file| puts "loading #{file}" load file } @@ -14,13 +14,12 @@ #if ENV['DISABLE_EXTRA_PARAMS'].blank? # seeds_path = File.join(File.dirname(__FILE__), 'extra_piece_params') # xpath = File.join(seeds_path, "*.rb") -# Dir[xpath].sort.each {|file| +# Dir[xpath].sort.each {|file| # puts "loading #{file}" # load file # } #end -################################################################################################################################################################################################################################################################################################################################################################################### +################################################################################################################################################################################################################################################################################################################################################################################### # Section puts "loading spree_theme seeds complete!" - diff --git a/spree_theme/db/seeds/00_section_pieces.rb b/spree_theme/db/seeds/00_section_pieces.rb index 1d910337..300605ea 100644 --- a/spree_theme/db/seeds/00_section_pieces.rb +++ b/spree_theme/db/seeds/00_section_pieces.rb @@ -2,11 +2,16 @@ def load_section_piece records = YAML.load_file(File.join(File.dirname(__FILE__),'spree_section_pieces.yml')) records.values.each{|row| - #Rails.logger.debug "row=#{row.inspect}" Spree::SectionPiece.connection.insert_fixture(row, Spree::SectionPiece.table_name) - - + } + records = YAML.load_file(File.join(File.dirname(__FILE__),'spree_section_pieces2.yml')) + records.values.each{|row| + Spree::SectionPiece.connection.insert_fixture(row, Spree::SectionPiece.table_name) + } + records = YAML.load_file(File.join(File.dirname(__FILE__),'spree_section_pieces_for_mobile.yml')) + records.values.each{|row| + Spree::SectionPiece.connection.insert_fixture(row, Spree::SectionPiece.table_name) } end Spree::SectionPiece.delete_all -load_section_piece \ No newline at end of file +load_section_piece diff --git a/spree_theme/db/seeds/01_html_attributes.rb b/spree_theme/db/seeds/01_html_attributes.rb index e1181c99..cd790065 100644 --- a/spree_theme/db/seeds/01_html_attributes.rb +++ b/spree_theme/db/seeds/01_html_attributes.rb @@ -22,7 +22,7 @@ {"id"=>21, "title"=>"width", "pvalues"=>"auto,l1", "pvalues_desc"=>"Auto,L1", "punits"=>"l,%", "neg_ok"=>false, "default_value"=>0, "pvspecial"=>"", "css_name"=>"width"}, {"id"=>22, "title"=>"font", "pvalues"=>"caption,icon,menu,message-box,small-caption,status-bar", "pvalues_desc"=>"Caption,Icon,Menu,Message-box,Small-caption,Status-bar", "punits"=>"", "neg_ok"=>false, "default_value"=>0, "pvspecial"=>"inherit", "css_name"=>"font"}, {"id"=>23, "title"=>"font-family", "pvalues"=>"serif,sans-serif", "pvalues_desc"=>"Serif,Sans-serif", "punits"=>"", "neg_ok"=>false, "default_value"=>0, "pvspecial"=>"inherit", "css_name"=>"font-family"}, - {"id"=>24, "title"=>"font-size", "pvalues"=>"l1", "pvalues_desc"=>"L1", "punits"=>"%,em", "neg_ok"=>false, "default_value"=>0, "pvspecial"=>"inherit", "css_name"=>"font-size"}, + {"id"=>24, "title"=>"font-size", "pvalues"=>"l1", "pvalues_desc"=>"L1", "punits"=>"%,em,px", "neg_ok"=>false, "default_value"=>0, "pvspecial"=>"inherit", "css_name"=>"font-size"}, {"id"=>25, "title"=>"font-style", "pvalues"=>"normal,italic,oblique", "pvalues_desc"=>"Normal,Italic,Oblique", "punits"=>"", "neg_ok"=>false, "default_value"=>0, "pvspecial"=>"inherit", "css_name"=>"font-style"}, {"id"=>26, "title"=>"font-variant", "pvalues"=>"normal,small-caps", "pvalues_desc"=>"Normal,Small-caps", "punits"=>"", "neg_ok"=>false, "default_value"=>0, "pvspecial"=>"inherit", "css_name"=>"font-variant"}, {"id"=>27, "title"=>"font-weight", "pvalues"=>"normal,bold,bolder,lighter,100,200,300,400,500,600,700,800,900", "pvalues_desc"=>"Normal,Bold,Bolder,Lighter,100,200,300,400,500,600,700,800,900", "punits"=>"", "neg_ok"=>false, "default_value"=>0, "pvspecial"=>"inherit", "css_name"=>"font-weight"}, @@ -61,7 +61,7 @@ {"id"=>61, "title"=>"src", "pvalues"=>"0i", "pvalues_desc"=>"Src", "punits"=>"", "neg_ok"=>false, "default_value"=>0, "pvspecial"=>"", "css_name"=>"src"}, {"id"=>62, "title"=>"alt", "pvalues"=>"0t", "pvalues_desc"=>"Alt", "punits"=>"", "neg_ok"=>false, "default_value"=>0, "pvspecial"=>"", "css_name"=>"alt"}, {"id"=>63, "title"=>"href", "pvalues"=>"0u", "pvalues_desc"=>"Href", "punits"=>"", "neg_ok"=>false, "default_value"=>-1, "pvspecial"=>"", "css_name"=>"href"}, - {"id"=>64, "title"=>"layout db", "pvalues"=>"", "pvalues_desc"=>"", "punits"=>"", "neg_ok"=>false, "default_value"=>-1, "pvspecial"=>"", "css_name"=>"layout db"}, + {"id"=>64, "title"=>"border-radius", "pvalues"=>"l1", "pvalues_desc"=>"L1", "punits"=>"l,%", "neg_ok"=>false, "default_value"=>0, "pvspecial"=>"trbl", "css_name"=>"border-radius"}, {"id"=>65, "title"=>"layout string", "pvalues"=>"0t", "pvalues_desc"=>"0t", "punits"=>"", "neg_ok"=>false, "default_value"=>-1, "pvspecial"=>"", "css_name"=>"layout string"}, {"id"=>66, "title"=>"layout themeimg", "pvalues"=>"0i", "pvalues_desc"=>"0i", "punits"=>"", "neg_ok"=>false, "default_value"=>-1, "pvspecial"=>"", "css_name"=>"layout themeimg"}, {"id"=>67, "title"=>"layout bool", "pvalues"=>"0b", "pvalues_desc"=>"0b", "punits"=>"", "neg_ok"=>false, "default_value"=>-1, "pvspecial"=>"", "css_name"=>"layout bool"}, @@ -114,13 +114,11 @@ {"id"=>113, "title"=>"background-repeat", "pvalues"=>"repeat-y,no-repeat", "pvalues_desc"=>"Repeat-y,No-repeat", "punits"=>"", "neg_ok"=>false, "default_value"=>-1, "pvspecial"=>"", "css_name"=>"background-repeat"}, {"id"=>114, "title"=>"background-repeat", "pvalues"=>"repeat-x,no-repeat", "pvalues_desc"=>"Repeat-x,No-repeat", "punits"=>"", "neg_ok"=>false, "default_value"=>-1, "pvspecial"=>"", "css_name"=>"background-repeat"}, {"id"=>115, "title"=>"composite", "pvalues"=>"", "pvalues_desc"=>"", "punits"=>"", "neg_ok"=>false, "default_value"=>-1, "pvspecial"=>"", "css_name"=>"composite"}, - {"id"=>116, "title"=>"sitemap_view_style", "pvalues"=>"1,0", "pvalues_desc"=>"1,0", "punits"=>"", "neg_ok"=>false, "default_value"=>-1, "pvspecial"=>"", "css_name"=>"sitemap_view_style"}, - {"id"=>117, "title"=>"composite", "pvalues"=>"1809,1810,1811,1812,1813", "pvalues_desc"=>"1809,1810,1811,1812,1813", "punits"=>"", "neg_ok"=>false, "default_value"=>1, "pvspecial"=>"", "css_name"=>"composite"}] + {"id"=>116, "title"=>"opacity", "pvalues"=>"inherit,l0", "pvalues_desc"=>"inherit,l0", "punits"=>"", "neg_ok"=>false, "default_value"=>0, "pvspecial"=>"", "css_name"=>"opacity"}, + {"id"=>117, "title"=>"background-size", "pvalues"=>"auto|auto,cover|cover,contain|contain,l1|l1", "pvalues_desc"=>"auto|auto,cover|cover,contain|contain,l1|l1", "punits"=>"l,%", "neg_ok"=>false, "default_value"=>1, "pvspecial"=>"hv", "css_name"=>"background-size"}] -Spree::HtmlAttribute.delete_all +Spree::HtmlAttribute.delete_all for ha in objs - obj = Spree::HtmlAttribute.new - obj.assign_attributes( ha, :without_protection => true) - obj.save + ha[:slug] = nil # 5.0, it has to be nil to generate new + obj = Spree::HtmlAttribute.create!( ha ) end - diff --git a/spree_theme/db/seeds/02_editors.rb b/spree_theme/db/seeds/02_editors.rb index b66cd647..9b6bdc9b 100644 --- a/spree_theme/db/seeds/02_editors.rb +++ b/spree_theme/db/seeds/02_editors.rb @@ -7,6 +7,6 @@ Spree::Editor.delete_all for ha in editors obj = Spree::Editor.new - obj.assign_attributes( ha, :without_protection => true) + obj.assign_attributes( ha ) obj.save end \ No newline at end of file diff --git a/spree_theme/db/seeds/03_param_categories.rb b/spree_theme/db/seeds/03_param_categories.rb index c24d1a26..42e6a271 100644 --- a/spree_theme/db/seeds/03_param_categories.rb +++ b/spree_theme/db/seeds/03_param_categories.rb @@ -5,59 +5,70 @@ {"id"=>4, "position"=>5, "is_enabled"=>true, "editor_id"=>0, "slug"=>"dialog_title" }, {"id"=>5, "position"=>6, "is_enabled"=>true, "editor_id"=>0, "slug"=>"dialog_content" }, - {"id"=>6, "position"=>7, "is_enabled"=>true, "editor_id"=>0, "slug"=>"title" }, #header3 + {"id"=>6, "position"=>9, "is_enabled"=>true, "editor_id"=>0, "slug"=>"header3" }, #header3 {"id"=>7, "position"=>2, "is_enabled"=>true, "editor_id"=>0, "slug"=>"fixed_position" }, + {"id"=>9, "position"=>7, "is_enabled"=>true, "editor_id"=>0, "slug"=>"sider" }, {"id"=>10, "position"=>10, "is_enabled"=>true, "editor_id"=>0, "slug"=>"header0" }, #header0 + # a - {"id"=>11, "position"=>11, "is_enabled"=>true, "editor_id"=>4, "slug"=>"link" }, - {"id"=>12, "position"=>12, "is_enabled"=>true, "editor_id"=>4, "slug"=>"link_hover" }, - {"id"=>13, "position"=>13, "is_enabled"=>true, "editor_id"=>4, "slug"=>"link_selected" }, - {"id"=>14, "position"=>14, "is_enabled"=>true, "editor_id"=>4, "slug"=>"link_selected_hover" }, - {"id"=>15, "position"=>15, "is_enabled"=>true, "editor_id"=>4, "slug"=>"unclickable_link" }, - {"id"=>16, "position"=>16, "is_enabled"=>true, "editor_id"=>4, "slug"=>"link_depth1" }, - {"id"=>17, "position"=>17, "is_enabled"=>true, "editor_id"=>4, "slug"=>"link_depth2" }, - {"id"=>18, "position"=>18, "is_enabled"=>true, "editor_id"=>4, "slug"=>"link_depth3" }, - - {"id"=>20, "position"=>20, "is_enabled"=>true, "editor_id"=>0, "slug"=>"slides" }, - {"id"=>21, "position"=>21, "is_enabled"=>true, "editor_id"=>0, "slug"=>"slide_caption" }, - {"id"=>22, "position"=>22, "is_enabled"=>true, "editor_id"=>0, "slug"=>"bullet_navigator" }, - {"id"=>23, "position"=>23, "is_enabled"=>true, "editor_id"=>0, "slug"=>"arraw_navigator" }, - {"id"=>24, "position"=>24, "is_enabled"=>true, "editor_id"=>0, "slug"=>"thumbnail_navigator" }, - + {"id"=>11, "position"=>111, "is_enabled"=>true, "editor_id"=>4, "slug"=>"link" }, + {"id"=>12, "position"=>112, "is_enabled"=>true, "editor_id"=>4, "slug"=>"link_hover" }, + {"id"=>13, "position"=>113, "is_enabled"=>true, "editor_id"=>4, "slug"=>"link_selected" }, + {"id"=>14, "position"=>114, "is_enabled"=>true, "editor_id"=>4, "slug"=>"link_selected_hover" }, + {"id"=>15, "position"=>115, "is_enabled"=>true, "editor_id"=>4, "slug"=>"unclickable_link" }, + {"id"=>16, "position"=>116, "is_enabled"=>true, "editor_id"=>4, "slug"=>"link_depth1" }, + {"id"=>17, "position"=>117, "is_enabled"=>true, "editor_id"=>4, "slug"=>"link_depth2" }, + {"id"=>18, "position"=>118, "is_enabled"=>true, "editor_id"=>4, "slug"=>"link_depth3" }, + + {"id"=>20, "position"=>120, "is_enabled"=>true, "editor_id"=>0, "slug"=>"slides" }, + {"id"=>21, "position"=>121, "is_enabled"=>true, "editor_id"=>0, "slug"=>"slide_caption" }, + {"id"=>22, "position"=>122, "is_enabled"=>true, "editor_id"=>0, "slug"=>"bullet_navigator" }, + {"id"=>23, "position"=>123, "is_enabled"=>true, "editor_id"=>0, "slug"=>"arraw_navigator" }, + {"id"=>24, "position"=>124, "is_enabled"=>true, "editor_id"=>0, "slug"=>"thumbnail_navigator" }, + #product img - {"id"=>28, "position"=>28, "is_enabled"=>true, "editor_id"=>0, "slug"=>"image_style" }, - {"id"=>30, "position"=>30, "is_enabled"=>true, "editor_id"=>0, "slug"=>"main_image" }, - {"id"=>31, "position"=>31, "is_enabled"=>true, "editor_id"=>0, "slug"=>"thumb_image" }, - {"id"=>32, "position"=>32, "is_enabled"=>true, "editor_id"=>0, "slug"=>"thumb_image_selected" }, + {"id"=>28, "position"=>128, "is_enabled"=>true, "editor_id"=>0, "slug"=>"image_style" }, + {"id"=>30, "position"=>130, "is_enabled"=>true, "editor_id"=>0, "slug"=>"main_image" }, + {"id"=>31, "position"=>131, "is_enabled"=>true, "editor_id"=>0, "slug"=>"thumb_image" }, + {"id"=>32, "position"=>132, "is_enabled"=>true, "editor_id"=>0, "slug"=>"thumb_image_selected" }, #form - {"id"=>39, "position"=>39, "is_enabled"=>true, "editor_id"=>0, "slug"=>"form" }, - {"id"=>40, "position"=>40, "is_enabled"=>true, "editor_id"=>0, "slug"=>"form_title" }, - {"id"=>42, "position"=>42, "is_enabled"=>true, "editor_id"=>0, "slug"=>"label_name" }, - {"id"=>43, "position"=>43, "is_enabled"=>true, "editor_id"=>0, "slug"=>"label_error" }, - {"id"=>44, "position"=>44, "is_enabled"=>true, "editor_id"=>0, "slug"=>"input" }, - {"id"=>45, "position"=>45, "is_enabled"=>true, "editor_id"=>0, "slug"=>"button" }, - {"id"=>46, "position"=>46, "is_enabled"=>true, "editor_id"=>0, "slug"=>"button_hover" }, + {"id"=>39, "position"=>139, "is_enabled"=>true, "editor_id"=>0, "slug"=>"form" }, + {"id"=>40, "position"=>140, "is_enabled"=>true, "editor_id"=>0, "slug"=>"form_title" }, + {"id"=>42, "position"=>142, "is_enabled"=>true, "editor_id"=>0, "slug"=>"label_name" }, + {"id"=>43, "position"=>143, "is_enabled"=>true, "editor_id"=>0, "slug"=>"label_error" }, + {"id"=>44, "position"=>144, "is_enabled"=>true, "editor_id"=>0, "slug"=>"input" }, + {"id"=>45, "position"=>145, "is_enabled"=>true, "editor_id"=>0, "slug"=>"button" }, + {"id"=>46, "position"=>146, "is_enabled"=>true, "editor_id"=>0, "slug"=>"button_hover" }, #{"id"=>64, "position"=>64, "is_enabled"=>true, "editor_id"=>3, "slug"=>"link_selected_hover_background" }, #dl dt dd - {"id"=>70, "position"=>70, "is_enabled"=>true, "editor_id"=>0, "slug"=>"term" }, - {"id"=>71, "position"=>71, "is_enabled"=>true, "editor_id"=>0, "slug"=>"term description" }, + {"id"=>70, "position"=>170, "is_enabled"=>true, "editor_id"=>0, "slug"=>"term" }, + {"id"=>71, "position"=>171, "is_enabled"=>true, "editor_id"=>0, "slug"=>"term description" }, #table - {"id"=>78, "position"=>78, "is_enabled"=>true, "editor_id"=>0, "slug"=>"table" }, - {"id"=>79, "position"=>79, "is_enabled"=>true, "editor_id"=>0, "slug"=>"table_title" }, - {"id"=>80, "position"=>80, "is_enabled"=>true, "editor_id"=>2, "slug"=>"cell" }, - {"id"=>81, "position"=>81, "is_enabled"=>true, "editor_id"=>2, "slug"=>"th" }, - {"id"=>82, "position"=>82, "is_enabled"=>true, "editor_id"=>2, "slug"=>"td" }, + {"id"=>78, "position"=>178, "is_enabled"=>true, "editor_id"=>0, "slug"=>"table" }, + {"id"=>79, "position"=>179, "is_enabled"=>true, "editor_id"=>0, "slug"=>"table_title" }, + {"id"=>80, "position"=>180, "is_enabled"=>true, "editor_id"=>2, "slug"=>"cell" }, + {"id"=>81, "position"=>181, "is_enabled"=>true, "editor_id"=>2, "slug"=>"th" }, + {"id"=>82, "position"=>182, "is_enabled"=>true, "editor_id"=>2, "slug"=>"td" }, #{"id"=>84, "position"=>84, "is_enabled"=>true, "editor_id"=>4, "slug"=>"td_text" }, - {"id"=>91, "position"=>91, "is_enabled"=>true, "editor_id"=>0, "slug"=>"first_child" }, - {"id"=>92, "position"=>92, "is_enabled"=>true, "editor_id"=>0, "slug"=>"last_child" }, + {"id"=>91, "position"=>191, "is_enabled"=>true, "editor_id"=>0, "slug"=>"first_child" }, + {"id"=>92, "position"=>192, "is_enabled"=>true, "editor_id"=>0, "slug"=>"last_child" }, + # hovered on hover-effect-expansion-container + {"id"=>101, "position"=>201, "is_enabled"=>true, "editor_id"=>0, "slug"=>"hovered" }, + # query media background + {"id"=>1051, "position"=>1051, "is_enabled"=>true, "editor_id"=>0, "slug"=>"background1" }, + {"id"=>1052, "position"=>1052, "is_enabled"=>true, "editor_id"=>0, "slug"=>"background2" }, + {"id"=>1053, "position"=>1053, "is_enabled"=>true, "editor_id"=>0, "slug"=>"background3" }, + + #dialog + {"id"=>501, "position"=>21, "is_enabled"=>true, "editor_id"=>0, "slug"=>"dialog_close" }, + {"id"=>502, "position"=>22, "is_enabled"=>true, "editor_id"=>0, "slug"=>"dialog_overlay" }, ] -Spree::ParamCategory.delete_all +Spree::ParamCategory.delete_all for ha in objs obj = Spree::ParamCategory.new - obj.assign_attributes( ha, :without_protection => true) + obj.assign_attributes( ha ) obj.editor_id=0 obj.save end - diff --git a/spree_theme/db/seeds/04_section_piece_params.rb b/spree_theme/db/seeds/04_section_piece_params.rb index 20ffdabb..1faa9ce9 100644 --- a/spree_theme/db/seeds/04_section_piece_params.rb +++ b/spree_theme/db/seeds/04_section_piece_params.rb @@ -42,7 +42,7 @@ for ha in objs obj = Spree::SectionPieceParam.new obj.param_conditions={} - obj.assign_attributes( ha, :without_protection => true) + obj.assign_attributes( ha ) obj.save end diff --git a/spree_theme/db/seeds/05_user_terminals.rb b/spree_theme/db/seeds/05_user_terminals.rb new file mode 100644 index 00000000..b70f13b9 --- /dev/null +++ b/spree_theme/db/seeds/05_user_terminals.rb @@ -0,0 +1,5 @@ +# add seeds here, table_exists? do not work for sqlite in migration + + pc = Spree::UserTerminal.create(name: 'PC', medium_width: 'all' ) + phone = Spree::UserTerminal.create(name: 'Cellphone', medium_width: 'all' ) + pad = Spree::UserTerminal.create(name: 'Pad', medium_width: 'all' ) diff --git a/spree_theme/db/seeds/100_sections.rb b/spree_theme/db/seeds/100/100_sections.rb similarity index 75% rename from spree_theme/db/seeds/100_sections.rb rename to spree_theme/db/seeds/100/100_sections.rb index 6fa3816d..fafd1dc1 100644 --- a/spree_theme/db/seeds/100_sections.rb +++ b/spree_theme/db/seeds/100/100_sections.rb @@ -20,74 +20,74 @@ section_piece_hash= sps.inject({}){|h,sp| h[sp.slug] = sp; h} Spree::Section.delete_all -root = Spree::Section.create_section(section_piece_hash['root'].id, {:title=>"root",:global_events=>"page_layout_fixed",:subscribed_global_events=>"page_layout_fixed"}, +root = Spree::Section.create_section(section_piece_hash['root'], {:title=>"root",:global_events=>"page_layout_fixed",:subscribed_global_events=>"page_layout_fixed"}, {'content_layout'=>{85=>'clear:both'}, 'page'=>{21=>"width:800px",'21unset'=>bool_false, 20=>"min-width:800px", '20hidden'=>bool_true}, }) -container = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"container",:subscribed_global_events=>"page_layout_fixed"},{'content_layout'=>{86=>bool_true,'86unset'=>bool_false}, +container = Spree::Section.create_section(section_piece_hash['container'], {:title=>"container",:subscribed_global_events=>"page_layout_fixed"},{'content_layout'=>{86=>bool_true,'86unset'=>bool_false}, 'block'=>{15=>"height:100px",'15unset'=>bool_false,101=>"float:left",'101unset'=>bool_false}, 'inner'=>{'15hidden'=>bool_true}}) -hmenu = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"hmenu"}, +hmenu = Spree::Section.create_section(section_piece_hash['container'], {:title=>"hmenu"}, {'block'=>{'disabled_ha_ids'=>'111'}, #'content_horizontal'=>{'disabled_ha_ids'=>'101'}, 'inner'=>{'15hidden'=>bool_true}}) -hmenu.add_section_piece(section_piece_hash['hmenu'].id).add_section_piece(section_piece_hash['menuitem'].id) +hmenu.add_section_piece(section_piece_hash['hmenu']).add_section_piece(section_piece_hash['menuitem']) -vmenu = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"vmenu"}, +vmenu = Spree::Section.create_section(section_piece_hash['container'], {:title=>"vmenu"}, {'block'=>{'disabled_ha_ids'=>'111'}, #'content_horizontal'=>{'disabled_ha_ids'=>'101'}, 'inner'=>{'15hidden'=>bool_true}}) -vmenu.add_section_piece(section_piece_hash['vmenu'].id).add_section_piece(section_piece_hash['menuitem'].id) +vmenu.add_section_piece(section_piece_hash['vmenu']).add_section_piece(section_piece_hash['menuitem']) -logo = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"image"}, +logo = Spree::Section.create_section(section_piece_hash['container'], {:title=>"image"}, {'block'=>{'disabled_ha_ids'=>'111'}, #'content_horizontal'=>{'disabled_ha_ids'=>'101'}, 'inner'=>{'15hidden'=>bool_true}}) -logo.add_section_piece(section_piece_hash['image'].id) +logo.add_section_piece(section_piece_hash['image']) -text = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"text"}, +text = Spree::Section.create_section(section_piece_hash['container'], {:title=>"text"}, {'block'=>{'disabled_ha_ids'=>'111'}, #'content_horizontal'=>{'disabled_ha_ids'=>'101'}, 'inner'=>{'15hidden'=>bool_true}}) -text.add_section_piece(section_piece_hash['text'].id) +text.add_section_piece(section_piece_hash['text']) -product_name = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"product name"}, +product_name = Spree::Section.create_section(section_piece_hash['container'], {:title=>"product name"}, {'block'=>{'disabled_ha_ids'=>'111'}, #'content_horizontal'=>{'disabled_ha_ids'=>'101'}, 'inner'=>{'15hidden'=>bool_true}}) -product_name.add_section_piece(section_piece_hash['product-name'].id) +product_name.add_section_piece(section_piece_hash['product-name']) -product_description = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"product description"}, +product_description = Spree::Section.create_section(section_piece_hash['container'], {:title=>"product description"}, {'block'=>{'disabled_ha_ids'=>'111'}, #'content_horizontal'=>{'disabled_ha_ids'=>'101'}, 'inner'=>{'15hidden'=>bool_true}}) -product_description.add_section_piece(section_piece_hash['product-description'].id) +product_description.add_section_piece(section_piece_hash['product-description']) -product_image = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"product image"}, +product_image = Spree::Section.create_section(section_piece_hash['container'], {:title=>"product image"}, {'block'=>{'disabled_ha_ids'=>'111'}, #'content_horizontal'=>{'disabled_ha_ids'=>'101'}, 'inner'=>{'15hidden'=>bool_true}}) -product_image.add_section_piece(section_piece_hash['product-image'].id) +product_image.add_section_piece(section_piece_hash['product-image']) ################################################ center area start ############################################## -center_area = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"center_area",:is_enabled=>false,:subscribed_global_events=>"page_layout_fixed,block_width"},{'content_layout'=>{86=>bool_true,'86unset'=>bool_false}, +center_area = Spree::Section.create_section(section_piece_hash['container'], {:title=>"center_area",:is_enabled=>false,:subscribed_global_events=>"page_layout_fixed,block_width"},{'content_layout'=>{86=>bool_true,'86unset'=>bool_false}, 'block'=>{15=>"height:100px",'15unset'=>bool_false,:disabled_ha_ids=>"101"}}) -left_part = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"left_part",:is_enabled=>false,:global_events=>"block_width"}, +left_part = Spree::Section.create_section(section_piece_hash['container'], {:title=>"left_part",:is_enabled=>false,:global_events=>"block_width"}, {'content_layout'=>{86=>bool_true}, 'block'=>{15=>"height:100px",'15unset'=>bool_false,21=>"width:200px",'21unset'=>bool_false, 101=>"float:left",'101unset'=>bool_false,111=>"margin:0 -200px 0 0",'111unset'=>bool_false,:disabled_ha_ids=>"111"}, 'inner'=>{'15hidden'=>bool_true}}) -right_part = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"right_part",:is_enabled=>false,:global_events=>"block_width"}, +right_part = Spree::Section.create_section(section_piece_hash['container'], {:title=>"right_part",:is_enabled=>false,:global_events=>"block_width"}, {'content_layout'=>{86=>bool_true}, 'block'=>{15=>"height:100px",'15unset'=>bool_false,21=>"width:200px",'21unset'=>bool_false, 101=>"float:right",'101unset'=>bool_false,111=>"margin:0 0 0 -200px",'111unset'=>bool_false,:disabled_ha_ids=>"111"}, 'inner'=>{'15hidden'=>bool_true}}) -center_part = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"center_part",:is_enabled=>false,:global_events=>"block_width"}, +center_part = Spree::Section.create_section(section_piece_hash['container'], {:title=>"center_part",:is_enabled=>false,:global_events=>"block_width"}, {'content_layout'=>{86=>bool_true}, 'block'=>{15=>"height:100px",'15unset'=>bool_false,21=>"width:100%",'21unset'=>bool_false, 101=>"float:left",'101unset'=>bool_false,111=>"margin:0 -100% 0 0",'111unset'=>bool_false, '111hidden'=>bool_true,:disabled_ha_ids=>"101,21"}, 'inner'=>{31=>"margin:0 200px 0 200px",'31unset'=>bool_false, '31hidden'=>bool_true, '15hidden'=>bool_true}}) diff --git a/spree_theme/db/seeds/100/101_product_related.rb b/spree_theme/db/seeds/100/101_product_related.rb new file mode 100644 index 00000000..033c879a --- /dev/null +++ b/spree_theme/db/seeds/100/101_product_related.rb @@ -0,0 +1,26 @@ +bool_false = Spree::HtmlAttribute::BOOL_FALSE +bool_true = Spree::HtmlAttribute::BOOL_TRUE +sps = Spree::SectionPiece.all +section_piece_hash= sps.inject({}){|h,sp| h[sp.slug] = sp; h} + +#add product_image_with_thumbnails +Spree::Section.where(:title=>'product image with thumbnails').each(&:destroy) +product_image_with_thumbnails = Spree::Section.create_section(section_piece_hash['container'], {:title=>"product image with thumbnails"}, + {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) + +product_image_with_thumbnails.add_section_piece(section_piece_hash['container'], {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}).add_section_piece(section_piece_hash['product_main_image']) +product_image_with_thumbnails.reload +product_image_with_thumbnails.add_section_piece(section_piece_hash['container'], {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}).add_section_piece(section_piece_hash['product_thumbnails']) + + +#add product_properties +Spree::Section.where(:title=>'product_properties').each(&:destroy) +product_properties = Spree::Section.create_section(section_piece_hash['container'], {:title=>"product properties"}, + {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) +product_properties.add_section_piece(section_piece_hash['product_properties']) + +#add product_price +Spree::Section.where(:title=>'product_price').each(&:destroy) +product_properties = Spree::Section.create_section(section_piece_hash['container'], {:title=>"product price"}, + {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) +product_properties.add_section_piece(section_piece_hash['product_price']) \ No newline at end of file diff --git a/spree_theme/db/seeds/102_product_related.rb b/spree_theme/db/seeds/100/102_product_related.rb similarity index 85% rename from spree_theme/db/seeds/102_product_related.rb rename to spree_theme/db/seeds/100/102_product_related.rb index 1a3d73e3..9db05255 100644 --- a/spree_theme/db/seeds/102_product_related.rb +++ b/spree_theme/db/seeds/100/102_product_related.rb @@ -5,12 +5,12 @@ #add product_quantity Spree::Section.where(:title=>'product quantity').each(&:destroy) -product_properties = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"product quantity"}, +product_properties = Spree::Section.create_section(section_piece_hash['container'], {:title=>"product quantity"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -product_properties.add_section_piece(section_piece_hash['product_quantity'].id) +product_properties.add_section_piece(section_piece_hash['product_quantity']) #add product_atc Spree::Section.where(:title=>'product atc').each(&:destroy) -product_properties = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"product atc"}, +product_properties = Spree::Section.create_section(section_piece_hash['container'], {:title=>"product atc"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -product_properties.add_section_piece(section_piece_hash['product_atc'].id) \ No newline at end of file +product_properties.add_section_piece(section_piece_hash['product_atc']) \ No newline at end of file diff --git a/spree_theme/db/seeds/103_cart_account.rb b/spree_theme/db/seeds/100/103_cart_account.rb similarity index 80% rename from spree_theme/db/seeds/103_cart_account.rb rename to spree_theme/db/seeds/100/103_cart_account.rb index caaf8dc5..5d98d3eb 100644 --- a/spree_theme/db/seeds/103_cart_account.rb +++ b/spree_theme/db/seeds/100/103_cart_account.rb @@ -6,12 +6,12 @@ #cart Spree::Section.where(:title=>'cart').each(&:destroy) -product_properties = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"cart"}, +product_properties = Spree::Section.create_section(section_piece_hash['container'], {:title=>"cart"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -product_properties.add_section_piece(section_piece_hash['cart'].id) +product_properties.add_section_piece(section_piece_hash['cart']) #account Spree::Section.where(:title=>'account').each(&:destroy) -product_properties = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"account"}, +product_properties = Spree::Section.create_section(section_piece_hash['container'], {:title=>"account"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -product_properties.add_section_piece(section_piece_hash['account'].id) \ No newline at end of file +product_properties.add_section_piece(section_piece_hash['account']) \ No newline at end of file diff --git a/spree_theme/db/seeds/104_taxonomy.rb b/spree_theme/db/seeds/100/104_taxonomy.rb similarity index 87% rename from spree_theme/db/seeds/104_taxonomy.rb rename to spree_theme/db/seeds/100/104_taxonomy.rb index 68ab2f7a..323f9481 100644 --- a/spree_theme/db/seeds/104_taxonomy.rb +++ b/spree_theme/db/seeds/100/104_taxonomy.rb @@ -5,8 +5,8 @@ #taxonomy Spree::Section.where(:title=>'taxonomy name').each(&:destroy) -product_properties = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"taxonomy name"}, +product_properties = Spree::Section.create_section(section_piece_hash['container'], {:title=>"taxonomy name"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -product_properties.add_section_piece(section_piece_hash['taxonomy-name'].id) +product_properties.add_section_piece(section_piece_hash['taxonomy-name']) # \ No newline at end of file diff --git a/spree_theme/db/seeds/105_cart_item.rb b/spree_theme/db/seeds/100/105_cart_item.rb similarity index 85% rename from spree_theme/db/seeds/105_cart_item.rb rename to spree_theme/db/seeds/100/105_cart_item.rb index d819b5ce..734bf5ca 100644 --- a/spree_theme/db/seeds/105_cart_item.rb +++ b/spree_theme/db/seeds/100/105_cart_item.rb @@ -5,12 +5,12 @@ #cart items Spree::Section.where(:title=>'cart items').each(&:destroy) -product_properties = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"cart items"}, +product_properties = Spree::Section.create_section(section_piece_hash['container'], {:title=>"cart items"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -product_properties.add_section_piece(section_piece_hash['cart-items'].id) +product_properties.add_section_piece(section_piece_hash['cart-items']) #order_total_price Spree::Section.where(:title=>'order total price').each(&:destroy) -product_properties = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"order total price"}, +product_properties = Spree::Section.create_section(section_piece_hash['container'], {:title=>"order total price"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -product_properties.add_section_piece(section_piece_hash['order-total-price'].id) +product_properties.add_section_piece(section_piece_hash['order-total-price']) diff --git a/spree_theme/db/seeds/106_checkout_thanks.rb b/spree_theme/db/seeds/100/106_checkout_thanks.rb similarity index 87% rename from spree_theme/db/seeds/106_checkout_thanks.rb rename to spree_theme/db/seeds/100/106_checkout_thanks.rb index 20a14d43..6b7814ba 100644 --- a/spree_theme/db/seeds/106_checkout_thanks.rb +++ b/spree_theme/db/seeds/100/106_checkout_thanks.rb @@ -5,12 +5,12 @@ #checkout Spree::Section.where(:title=>'checkout').each(&:destroy) -product_properties = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"checkout"}, +product_properties = Spree::Section.create_section(section_piece_hash['container'], {:title=>"checkout"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -product_properties.add_section_piece(section_piece_hash['checkout'].id) +product_properties.add_section_piece(section_piece_hash['checkout']) #thanks Spree::Section.where(:title=>'thanks').each(&:destroy) -product_properties = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"thanks"}, +product_properties = Spree::Section.create_section(section_piece_hash['container'], {:title=>"thanks"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -product_properties.add_section_piece(section_piece_hash['thanks'].id) +product_properties.add_section_piece(section_piece_hash['thanks']) diff --git a/spree_theme/db/seeds/108_taxon_name.rb b/spree_theme/db/seeds/100/108_taxon_name.rb similarity index 88% rename from spree_theme/db/seeds/108_taxon_name.rb rename to spree_theme/db/seeds/100/108_taxon_name.rb index 0b4787c7..66e0978f 100644 --- a/spree_theme/db/seeds/108_taxon_name.rb +++ b/spree_theme/db/seeds/100/108_taxon_name.rb @@ -5,8 +5,8 @@ #taxon name Spree::Section.where(:title=>'taxon name').each(&:destroy) -product_properties = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"taxon name"}, +product_properties = Spree::Section.create_section(section_piece_hash['container'], {:title=>"taxon name"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -product_properties.add_section_piece(section_piece_hash['taxon-name'].id) +product_properties.add_section_piece(section_piece_hash['taxon-name']) # \ No newline at end of file diff --git a/spree_theme/db/seeds/109_order_related.rb b/spree_theme/db/seeds/100/109_order_related.rb similarity index 83% rename from spree_theme/db/seeds/109_order_related.rb rename to spree_theme/db/seeds/100/109_order_related.rb index 5de8722d..72fdec13 100644 --- a/spree_theme/db/seeds/109_order_related.rb +++ b/spree_theme/db/seeds/100/109_order_related.rb @@ -1,6 +1,6 @@ -include SpreeTheme::SectionPieceParamHelper + #table title cell, border,padding -section_piece = Spree::SectionPiece.find 'container-title' +section_piece = find_section_piece 'container-title' title = { "editor_id"=>2, "class_name"=>"s_h6", "pclass"=>"css", "param_category_id"=>6, "html_attribute_ids"=>"31,32,7,8,6"} create_section_piece_param( section_piece, title) title = { "editor_id"=>3, "class_name"=>"s_h6", "pclass"=>"css", "param_category_id"=>6, "html_attribute_ids"=>"2,3,4,5"} @@ -16,23 +16,23 @@ #order_address Spree::Section.where(:title=>'order address').each(&:destroy) -order_address = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"order address"}, +order_address = Spree::Section.create_section(section_piece_hash['container'], {:title=>"order address"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -order_address.add_section_piece(section_piece_hash['container-title'].id) -order_address.add_section_piece(section_piece_hash['order-address'].id) +order_address.add_section_piece(section_piece_hash['container-title']) +order_address.add_section_piece(section_piece_hash['order-address']) #order_payment Spree::Section.where(:title=>'order payment').each(&:destroy) -order_payment = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"order payment"}, +order_payment = Spree::Section.create_section(section_piece_hash['container'], {:title=>"order payment"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -order_payment.add_section_piece(section_piece_hash['container-title'].id) -order_payment.add_section_piece(section_piece_hash['order-payment'].id) +order_payment.add_section_piece(section_piece_hash['container-title']) +order_payment.add_section_piece(section_piece_hash['order-payment']) #order_items Spree::Section.where(:title=>'order items').each(&:destroy) -order_items = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"order items"}, +order_items = Spree::Section.create_section(section_piece_hash['container'], {:title=>"order items"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -order_items.add_section_piece(section_piece_hash['container-title'].id) -order_items.add_section_piece(section_piece_hash['order-items'].id) +order_items.add_section_piece(section_piece_hash['container-title']) +order_items.add_section_piece(section_piece_hash['order-items']) diff --git a/spree_theme/db/seeds/110_login_siginup.rb b/spree_theme/db/seeds/100/110_login_siginup.rb similarity index 83% rename from spree_theme/db/seeds/110_login_siginup.rb rename to spree_theme/db/seeds/100/110_login_siginup.rb index c0eac56a..28d9ac53 100644 --- a/spree_theme/db/seeds/110_login_siginup.rb +++ b/spree_theme/db/seeds/100/110_login_siginup.rb @@ -1,6 +1,6 @@ -section_piece = Spree::SectionPiece.find 'container-title' -html_attribute = Spree::HtmlAttribute.find 'font-weight' +section_piece = find_section_piece 'container-title' +html_attribute = find_html_attribute 'font-weight' default_value = "font-weight:bold" section_piece_param = section_piece.section_piece_params.where(["editor_id=?",4]).first @@ -18,14 +18,14 @@ #login_form Spree::Section.where(:title=>'login form').each(&:destroy) -order_address = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"login form"}, +order_address = Spree::Section.create_section(section_piece_hash['container'], {:title=>"login form"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -order_address.add_section_piece(section_piece_hash['container-title'].id) -order_address.add_section_piece(section_piece_hash['login-form'].id) +order_address.add_section_piece(section_piece_hash['container-title']) +order_address.add_section_piece(section_piece_hash['login-form']) #sign_up_form Spree::Section.where(:title=>'sign up form').each(&:destroy) -order_address = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"sign up form"}, +order_address = Spree::Section.create_section(section_piece_hash['container'], {:title=>"sign up form"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -order_address.add_section_piece(section_piece_hash['container-title'].id) -order_address.add_section_piece(section_piece_hash['sign-up-form'].id) +order_address.add_section_piece(section_piece_hash['container-title']) +order_address.add_section_piece(section_piece_hash['sign-up-form']) diff --git a/spree_theme/db/seeds/110_order_number.rb b/spree_theme/db/seeds/100/110_order_number.rb similarity index 88% rename from spree_theme/db/seeds/110_order_number.rb rename to spree_theme/db/seeds/100/110_order_number.rb index c863f433..9f677bbb 100644 --- a/spree_theme/db/seeds/110_order_number.rb +++ b/spree_theme/db/seeds/100/110_order_number.rb @@ -5,8 +5,8 @@ #order number Spree::Section.where(:title=>'order number').each(&:destroy) -product_properties = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"order number"}, +product_properties = Spree::Section.create_section(section_piece_hash['container'], {:title=>"order number"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -product_properties.add_section_piece(section_piece_hash['order-number'].id) +product_properties.add_section_piece(section_piece_hash['order-number']) # \ No newline at end of file diff --git a/spree_theme/db/seeds/110_ship_payment.rb b/spree_theme/db/seeds/100/110_ship_payment.rb similarity index 81% rename from spree_theme/db/seeds/110_ship_payment.rb rename to spree_theme/db/seeds/100/110_ship_payment.rb index 57b8dc10..d10e5631 100644 --- a/spree_theme/db/seeds/110_ship_payment.rb +++ b/spree_theme/db/seeds/100/110_ship_payment.rb @@ -4,14 +4,14 @@ #ship_form Spree::Section.where(:title=>'ship form').each(&:destroy) -order_address = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"ship form"}, +order_address = Spree::Section.create_section(section_piece_hash['container'], {:title=>"ship form"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -order_address.add_section_piece(section_piece_hash['container-title'].id) -order_address.add_section_piece(section_piece_hash['ship-form'].id) +order_address.add_section_piece(section_piece_hash['container-title']) +order_address.add_section_piece(section_piece_hash['ship-form']) #payment_form Spree::Section.where(:title=>'payment form').each(&:destroy) -order_address = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"payment form"}, +order_address = Spree::Section.create_section(section_piece_hash['container'], {:title=>"payment form"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -order_address.add_section_piece(section_piece_hash['container-title'].id) -order_address.add_section_piece(section_piece_hash['payment-form'].id) +order_address.add_section_piece(section_piece_hash['container-title']) +order_address.add_section_piece(section_piece_hash['payment-form']) diff --git a/spree_theme/db/seeds/112_container_form_link_table.rb b/spree_theme/db/seeds/100/112_container_form_link_table.rb similarity index 95% rename from spree_theme/db/seeds/112_container_form_link_table.rb rename to spree_theme/db/seeds/100/112_container_form_link_table.rb index 19a68c8a..d7edae29 100644 --- a/spree_theme/db/seeds/112_container_form_link_table.rb +++ b/spree_theme/db/seeds/100/112_container_form_link_table.rb @@ -1,7 +1,7 @@ -include SpreeTheme::SectionPieceParamHelper + #table title cell, border,padding -section_piece = Spree::SectionPiece.find 'container-link' +section_piece = find_section_piece 'container-link' a = { "editor_id"=>2, "class_name"=>"s_a", "pclass"=>"css", "param_category_id"=>11, "html_attribute_ids"=>"31,32,7,8,6"} create_section_piece_param( section_piece, a) @@ -20,7 +20,7 @@ #table title cell, border,padding -section_piece = Spree::SectionPiece.find 'container-table' +section_piece = find_section_piece 'container-table' table = {"editor_id"=>2, "class_name"=>"s_table", "pclass"=>"css", "param_category_id"=>78, "html_attribute_ids"=>"31,7,8,6"} cell = {"editor_id"=>2, "class_name"=>"s_cell", "pclass"=>"css", "param_category_id"=>80, "html_attribute_ids"=>"32,7,8,6"} @@ -43,7 +43,7 @@ create_section_piece_param( section_piece, td) # form label error input -section_piece = Spree::SectionPiece.find 'container-form' +section_piece = find_section_piece 'container-form' form = {"editor_id"=>2, "class_name"=>"s_form", "pclass"=>"css", "param_category_id"=>39, "html_attribute_ids"=>"31,7,8,6"} label = {"editor_id"=>2, "class_name"=>"s_label", "pclass"=>"css", "param_category_id"=>42, "html_attribute_ids"=>"31,32,7,8,6"} diff --git a/spree_theme/db/seeds/100/113_root2.rb b/spree_theme/db/seeds/100/113_root2.rb new file mode 100644 index 00000000..942d3120 --- /dev/null +++ b/spree_theme/db/seeds/100/113_root2.rb @@ -0,0 +1,17 @@ +bool_false = Spree::HtmlAttribute::BOOL_FALSE +bool_true = Spree::HtmlAttribute::BOOL_TRUE +sps = Spree::SectionPiece.all +section_piece_hash= sps.inject({}){|h,sp| h[sp.slug] = sp; h} + +root = Spree::Section.create_section(section_piece_hash['root'], {:title=>"root2"}, + {'content_layout'=>{85=>'clear:both'}, + 'page'=>{21=>"width:960px",'21unset'=>bool_false, 20=>"min-width:960px", '20hidden'=>bool_true}, + }) + +root.add_section_piece(section_piece_hash['container-title'])\ + .add_section_piece(section_piece_hash['container-form'])\ + .add_section_piece(section_piece_hash['container-link'])\ + .add_section_piece(section_piece_hash['container-table']) + + + diff --git a/spree_theme/db/seeds/114_dialog_order_list_profile.rb b/spree_theme/db/seeds/100/114_dialog_order_list_profile.rb similarity index 77% rename from spree_theme/db/seeds/114_dialog_order_list_profile.rb rename to spree_theme/db/seeds/100/114_dialog_order_list_profile.rb index b54f03dc..3841d50e 100644 --- a/spree_theme/db/seeds/114_dialog_order_list_profile.rb +++ b/spree_theme/db/seeds/100/114_dialog_order_list_profile.rb @@ -4,20 +4,20 @@ Spree::Section.where(:title=>'dialog').each(&:destroy) -dialog = Spree::Section.create_section(section_piece_hash['dialog'].id, {:title=>"dialog"}) -dialog.add_section_piece(section_piece_hash['container-title'].id) +dialog = Spree::Section.create_section(section_piece_hash['dialog'], {:title=>"dialog"}) +dialog.add_section_piece(section_piece_hash['container-title']) #order list Spree::Section.where(:title=>'order list').each(&:destroy) -order_address = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"order list"}, +order_address = Spree::Section.create_section(section_piece_hash['container'], {:title=>"order list"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -order_address.add_section_piece(section_piece_hash['container-title'].id) -order_address.add_section_piece(section_piece_hash['order-list'].id) +order_address.add_section_piece(section_piece_hash['container-title']) +order_address.add_section_piece(section_piece_hash['order-list']) #profile Spree::Section.where(:title=>'profile').each(&:destroy) -order_address = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"profile"}, +order_address = Spree::Section.create_section(section_piece_hash['container'], {:title=>"profile"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -order_address.add_section_piece(section_piece_hash['container-title'].id) -order_address.add_section_piece(section_piece_hash['profile'].id) \ No newline at end of file +order_address.add_section_piece(section_piece_hash['container-title']) +order_address.add_section_piece(section_piece_hash['profile']) \ No newline at end of file diff --git a/spree_theme/db/seeds/115_container_with_title.rb b/spree_theme/db/seeds/100/115_container_with_title.rb similarity index 89% rename from spree_theme/db/seeds/115_container_with_title.rb rename to spree_theme/db/seeds/100/115_container_with_title.rb index c901b057..c9905ad6 100644 --- a/spree_theme/db/seeds/115_container_with_title.rb +++ b/spree_theme/db/seeds/100/115_container_with_title.rb @@ -4,6 +4,6 @@ #container-title Spree::Section.where(:title=>'container with title').each(&:destroy) -container = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"container with title"}, +container = Spree::Section.create_section(section_piece_hash['container'], {:title=>"container with title"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -container.add_section_piece(section_piece_hash['container-title'].id) +container.add_section_piece(section_piece_hash['container-title']) diff --git a/spree_theme/db/seeds/117_dialog2.rb b/spree_theme/db/seeds/100/117_dialog2.rb similarity index 93% rename from spree_theme/db/seeds/117_dialog2.rb rename to spree_theme/db/seeds/100/117_dialog2.rb index 38237993..db4d0d99 100644 --- a/spree_theme/db/seeds/117_dialog2.rb +++ b/spree_theme/db/seeds/100/117_dialog2.rb @@ -5,13 +5,13 @@ section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} Spree::Section.where(:title=>'dialog2').each(&:destroy) -dialog = Spree::Section.create_section(section_piece_hash['dialog'].id, {:title=>"dialog2"}) -dialog_container = dialog.add_section_piece(section_piece_hash['container'].id, +dialog = Spree::Section.create_section(section_piece_hash['dialog'], {:title=>"dialog2"}) +dialog_container = dialog.add_section_piece(section_piece_hash['container'], { 'inner'=>{'15hidden'=>bool_true, '15'=>'height:598px', '7'=>'border-style:solid solid solid solid', '8'=>'border-width:1px 1px 1px 1px', '6'=>'border-color:#CCCCCC #CCCCCC #CCCCCC #CCCCCC', '7unset'=>bool_false,'8unset'=>bool_false,'6unset'=>bool_false }, 'block'=>{'21'=>'width:600px','disabled_ha_ids'=>'111', '2'=>'background-color:#FFFFFF','21unset'=>bool_false,'2unset'=>bool_false,}}) -dialog_container.add_section_piece(section_piece_hash['dialog-title'].id) -dialog_container.add_section_piece(section_piece_hash['dialog-content'].id) +dialog_container.add_section_piece(section_piece_hash['dialog-title']) +dialog_container.add_section_piece(section_piece_hash['dialog-content']) diff --git a/spree_theme/db/seeds/118_product_image_with_thumbnails2.rb b/spree_theme/db/seeds/100/118_product_image_with_thumbnails2.rb similarity index 80% rename from spree_theme/db/seeds/118_product_image_with_thumbnails2.rb rename to spree_theme/db/seeds/100/118_product_image_with_thumbnails2.rb index d7bd9d15..8051e25e 100644 --- a/spree_theme/db/seeds/118_product_image_with_thumbnails2.rb +++ b/spree_theme/db/seeds/100/118_product_image_with_thumbnails2.rb @@ -5,7 +5,7 @@ section_piece_hash= sps.inject({}){|h,sp| h[sp.slug] = sp; h} Spree::Section.where(:title=>'product image with thumbnails2').each(&:destroy) -product_image_with_thumbnails = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"product image with thumbnails2"}, +product_image_with_thumbnails = Spree::Section.create_section(section_piece_hash['container'], {:title=>"product image with thumbnails2"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -product_image_with_thumbnails.add_section_piece(section_piece_hash['product_main_image'].id) -product_image_with_thumbnails.add_section_piece(section_piece_hash['product_thumbnails'].id) +product_image_with_thumbnails.add_section_piece(section_piece_hash['product_main_image']) +product_image_with_thumbnails.add_section_piece(section_piece_hash['product_thumbnails']) diff --git a/spree_theme/db/seeds/119_131001_pname_link.rb b/spree_theme/db/seeds/100/119_131001_pname_link.rb similarity index 87% rename from spree_theme/db/seeds/119_131001_pname_link.rb rename to spree_theme/db/seeds/100/119_131001_pname_link.rb index 4a90d90d..d03dc367 100644 --- a/spree_theme/db/seeds/119_131001_pname_link.rb +++ b/spree_theme/db/seeds/100/119_131001_pname_link.rb @@ -1,6 +1,6 @@ -include SpreeTheme::SectionPieceParamHelper -section_piece = Spree::SectionPiece.find "product-name" + +section_piece = find_section_piece "product-name" a = { "editor_id"=>3, "class_name"=>"a", "pclass"=>"css", "param_category_id"=>11, "html_attribute_ids"=>"2,3,4,5"} a_h = { "editor_id"=>3, "class_name"=>"a_h", "pclass"=>"css", "param_category_id"=>12, "html_attribute_ids"=>"2,3,4,5"} create_section_piece_param( section_piece, a) diff --git a/spree_theme/db/seeds/100/119_131003_pimg.rb b/spree_theme/db/seeds/100/119_131003_pimg.rb new file mode 100644 index 00000000..cf8607bc --- /dev/null +++ b/spree_theme/db/seeds/100/119_131003_pimg.rb @@ -0,0 +1,12 @@ + + +#image margin, border,padding +section_piece = find_section_piece 'product_main_image' +img = {"editor_id"=>2, "class_name"=>"img", "pclass"=>"css", "param_category_id"=>30, "html_attribute_ids"=>"31,32,7,8,6"} + +create_section_piece_param( section_piece, img) + +section_piece = find_section_piece 'product_thumbnails' +img = {"editor_id"=>2, "class_name"=>"img", "pclass"=>"css", "param_category_id"=>31, "html_attribute_ids"=>"31,32,7,8,6"} + +create_section_piece_param( section_piece, img) diff --git a/spree_theme/db/seeds/119_131004_pprop.rb b/spree_theme/db/seeds/100/119_131004_pprop.rb similarity index 89% rename from spree_theme/db/seeds/119_131004_pprop.rb rename to spree_theme/db/seeds/100/119_131004_pprop.rb index 5bd5e206..bd0833be 100644 --- a/spree_theme/db/seeds/119_131004_pprop.rb +++ b/spree_theme/db/seeds/100/119_131004_pprop.rb @@ -1,7 +1,7 @@ -include SpreeTheme::SectionPieceParamHelper + #table cell, border,padding -section_piece = Spree::SectionPiece.find 'product_properties' +section_piece = find_section_piece 'product_properties' cell = {"editor_id"=>2, "class_name"=>"cell", "pclass"=>"css", "param_category_id"=>80, "html_attribute_ids"=>"32,7,8,6"} create_section_piece_param( section_piece, cell) diff --git a/spree_theme/db/seeds/119_131004_pqty.rb b/spree_theme/db/seeds/100/119_131004_pqty.rb similarity index 88% rename from spree_theme/db/seeds/119_131004_pqty.rb rename to spree_theme/db/seeds/100/119_131004_pqty.rb index 8ba14f82..5a3a89d0 100644 --- a/spree_theme/db/seeds/119_131004_pqty.rb +++ b/spree_theme/db/seeds/100/119_131004_pqty.rb @@ -1,10 +1,10 @@ -include SpreeTheme::SectionPieceParamHelper + #table cell, border,padding - section_piece = Spree::SectionPiece.find 'product_quantity' + section_piece = find_section_piece 'product_quantity' position = { "editor_id"=>2, "class_name"=>"input", "pclass"=>"css", "param_category_id"=>44, "html_attribute_ids"=>"21,15,31,32,7,8,6"} background = { "editor_id"=>3, "class_name"=>"input", "pclass"=>"css", "param_category_id"=>44, "html_attribute_ids"=>"2,3,4,5"} font = { "editor_id"=>4, "class_name"=>"input", "pclass"=>"css", "param_category_id"=>44, "html_attribute_ids"=>"23,24,25,27,49,53,54,56"} @@ -13,7 +13,7 @@ create_section_piece_param( section_piece, font) - section_piece = Spree::SectionPiece.find 'product_atc' + section_piece = find_section_piece 'product_atc' position = { "editor_id"=>2, "class_name"=>"button", "pclass"=>"css", "param_category_id"=>45, "html_attribute_ids"=>"21,15,31,32,7,8,6"} background = { "editor_id"=>3, "class_name"=>"button", "pclass"=>"css", "param_category_id"=>45, "html_attribute_ids"=>"2,3,4,5"} font = { "editor_id"=>4, "class_name"=>"button", "pclass"=>"css", "param_category_id"=>45, "html_attribute_ids"=>"23,24,25,27,49,53,54,56"} diff --git a/spree_theme/db/seeds/119_131028_remove_root_form_link_table.rb b/spree_theme/db/seeds/100/119_131028_remove_root_form_link_table.rb similarity index 80% rename from spree_theme/db/seeds/119_131028_remove_root_form_link_table.rb rename to spree_theme/db/seeds/100/119_131028_remove_root_form_link_table.rb index e91d6278..813f75cc 100644 --- a/spree_theme/db/seeds/119_131028_remove_root_form_link_table.rb +++ b/spree_theme/db/seeds/100/119_131028_remove_root_form_link_table.rb @@ -1,4 +1,4 @@ -section_piece = Spree::SectionPiece.find 'root' +section_piece = find_section_piece 'root' section_piece.section_piece_params.each{|spp| if ['table', 'table_title','td','th','cell','form','form_title','label','input','form_error','a','a_h'].include? spp.class_name diff --git a/spree_theme/db/seeds/119_131031_dialog.rb b/spree_theme/db/seeds/100/119_131031_dialog.rb similarity index 87% rename from spree_theme/db/seeds/119_131031_dialog.rb rename to spree_theme/db/seeds/100/119_131031_dialog.rb index 8c015442..3a00b1e2 100644 --- a/spree_theme/db/seeds/119_131031_dialog.rb +++ b/spree_theme/db/seeds/100/119_131031_dialog.rb @@ -1,18 +1,17 @@ -include SpreeTheme::SectionPieceParamHelper + bool_false = Spree::HtmlAttribute::BOOL_FALSE bool_true = Spree::HtmlAttribute::BOOL_TRUE -#dialog width, height, -section_piece = Spree::SectionPiece.find 'dialog-title' +section_piece = find_section_piece 'dialog-title' unless section_piece.section_piece_params.exists?( :class_name=>'title' ) title = { "editor_id"=>2, "class_name"=>"title", "pclass"=>"css", "param_category_id"=>4, "html_attribute_ids"=>"31,32,7,8,6"} create_section_piece_param( section_piece, title) - + title = { "editor_id"=>3, "class_name"=>"title", "pclass"=>"css", "param_category_id"=>4, "html_attribute_ids"=>"2,3,4,5"} create_section_piece_param( section_piece, title) - - title = { "editor_id"=>4, "class_name"=>"title", "pclass"=>"css", "param_category_id"=>4, "html_attribute_ids"=>"24,27,49,53,54"} + + title = { "editor_id"=>4, "class_name"=>"title", "pclass"=>"css", "param_category_id"=>4, "html_attribute_ids"=>"24,27,49,53,54"} create_section_piece_param( section_piece, title) end @@ -29,14 +28,14 @@ } } - -section_piece = Spree::SectionPiece.find 'dialog-content' + +section_piece = find_section_piece 'dialog-content' unless section_piece.section_piece_params.exists?( :class_name=>'inner' ) content = { "editor_id"=>2, "class_name"=>"inner", "pclass"=>"css", "param_category_id"=>5, "html_attribute_ids"=>"31,32"} create_section_piece_param( section_piece, content) end section_piece.section_piece_params.where(['editor_id=? and class_name=?',2,'inner']).each{|spp| - spp.section_params.each{|sp| + spp.section_params.each{|sp| sp.add_default_value(32,'padding:0 10px 5px 10px') sp.add_default_value('32unset',bool_false) } diff --git a/spree_theme/db/seeds/119_131127_button.rb b/spree_theme/db/seeds/100/119_131127_button.rb similarity index 81% rename from spree_theme/db/seeds/119_131127_button.rb rename to spree_theme/db/seeds/100/119_131127_button.rb index 13d8de54..388c5484 100644 --- a/spree_theme/db/seeds/119_131127_button.rb +++ b/spree_theme/db/seeds/100/119_131127_button.rb @@ -1,7 +1,7 @@ -include SpreeTheme::SectionPieceParamHelper + #form button, button:hover -section_piece = Spree::SectionPiece.find 'container-form' +section_piece = find_section_piece 'container-form' button = { "editor_id"=>2, "class_name"=>"s_button", "pclass"=>"css", "param_category_id"=>45, "html_attribute_ids"=>"21,15,31,32,7,8,6"} create_section_piece_param( section_piece, button) @@ -18,5 +18,5 @@ button = { "editor_id"=>4, "class_name"=>"s_button_h", "pclass"=>"css", "param_category_id"=>46, "html_attribute_ids"=>"24,27,49,53,54"} create_section_piece_param( section_piece, button) -Spree::SectionPieceParam.update_all( {:class_name=>'a_h'}, {:class_name=>'ah'} ) -Spree::SectionPieceParam.update_all( {:class_name=>'as_h'}, {:class_name=>'ash'} ) +Spree::SectionPieceParam.where({:class_name=>'ah'}).update_all( {:class_name=>'a_h'} ) +Spree::SectionPieceParam.where({:class_name=>'ash'}).update_all( {:class_name=>'as_h'} ) diff --git a/spree_theme/db/seeds/101_product_related.rb b/spree_theme/db/seeds/101_product_related.rb deleted file mode 100644 index da51d10e..00000000 --- a/spree_theme/db/seeds/101_product_related.rb +++ /dev/null @@ -1,26 +0,0 @@ -bool_false = Spree::HtmlAttribute::BOOL_FALSE -bool_true = Spree::HtmlAttribute::BOOL_TRUE -sps = Spree::SectionPiece.all -section_piece_hash= sps.inject({}){|h,sp| h[sp.slug] = sp; h} - -#add product_image_with_thumbnails -Spree::Section.where(:title=>'product image with thumbnails').each(&:destroy) -product_image_with_thumbnails = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"product image with thumbnails"}, - {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) - -product_image_with_thumbnails.add_section_piece(section_piece_hash['container'].id, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}).add_section_piece(section_piece_hash['product_main_image'].id) -product_image_with_thumbnails.reload -product_image_with_thumbnails.add_section_piece(section_piece_hash['container'].id, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}).add_section_piece(section_piece_hash['product_thumbnails'].id) - - -#add product_properties -Spree::Section.where(:title=>'product_properties').each(&:destroy) -product_properties = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"product properties"}, - {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -product_properties.add_section_piece(section_piece_hash['product_properties'].id) - -#add product_price -Spree::Section.where(:title=>'product_price').each(&:destroy) -product_properties = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"product price"}, - {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -product_properties.add_section_piece(section_piece_hash['product_price'].id) \ No newline at end of file diff --git a/spree_theme/db/seeds/113_root2.rb b/spree_theme/db/seeds/113_root2.rb deleted file mode 100644 index 558a233a..00000000 --- a/spree_theme/db/seeds/113_root2.rb +++ /dev/null @@ -1,17 +0,0 @@ -bool_false = Spree::HtmlAttribute::BOOL_FALSE -bool_true = Spree::HtmlAttribute::BOOL_TRUE -sps = Spree::SectionPiece.all -section_piece_hash= sps.inject({}){|h,sp| h[sp.slug] = sp; h} - -root = Spree::Section.create_section(section_piece_hash['root'].id, {:title=>"root2"}, - {'content_layout'=>{85=>'clear:both'}, - 'page'=>{21=>"width:960px",'21unset'=>bool_false, 20=>"min-width:960px", '20hidden'=>bool_true}, - }) - -root.add_section_piece(section_piece_hash['container-title'].id)\ - .add_section_piece(section_piece_hash['container-form'].id)\ - .add_section_piece(section_piece_hash['container-link'].id)\ - .add_section_piece(section_piece_hash['container-table'].id) - - - diff --git a/spree_theme/db/seeds/119_131003_pimg.rb b/spree_theme/db/seeds/119_131003_pimg.rb deleted file mode 100644 index d6b1922b..00000000 --- a/spree_theme/db/seeds/119_131003_pimg.rb +++ /dev/null @@ -1,12 +0,0 @@ -include SpreeTheme::SectionPieceParamHelper - -#image margin, border,padding -section_piece = Spree::SectionPiece.find 'product_main_image' -img = {"editor_id"=>2, "class_name"=>"img", "pclass"=>"css", "param_category_id"=>30, "html_attribute_ids"=>"31,32,7,8,6"} - -create_section_piece_param( section_piece, img) - -section_piece = Spree::SectionPiece.find 'product_thumbnails' -img = {"editor_id"=>2, "class_name"=>"img", "pclass"=>"css", "param_category_id"=>31, "html_attribute_ids"=>"31,32,7,8,6"} - -create_section_piece_param( section_piece, img) diff --git a/spree_theme/db/seeds/200_logo.rb b/spree_theme/db/seeds/200/200_logo.rb similarity index 82% rename from spree_theme/db/seeds/200_logo.rb rename to spree_theme/db/seeds/200/200_logo.rb index 567a5f48..18db4ad3 100644 --- a/spree_theme/db/seeds/200_logo.rb +++ b/spree_theme/db/seeds/200/200_logo.rb @@ -2,8 +2,8 @@ bool_true = Spree::HtmlAttribute::BOOL_TRUE section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} -logo = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"Logo"}, +logo = Spree::Section.create_section(section_piece_hash['container'], {:title=>"Logo"}, {'block'=>{'disabled_ha_ids'=>'111'}, #'content_horizontal'=>{'disabled_ha_ids'=>'101'}, 'inner'=>{'15hidden'=>bool_true}}) -logo.add_section_piece(section_piece_hash['logo'].id) \ No newline at end of file +logo.add_section_piece(section_piece_hash['logo']) \ No newline at end of file diff --git a/spree_theme/db/seeds/201_minicart.rb b/spree_theme/db/seeds/200/201_minicart.rb similarity index 79% rename from spree_theme/db/seeds/201_minicart.rb rename to spree_theme/db/seeds/200/201_minicart.rb index c739e35c..f1f84cb7 100644 --- a/spree_theme/db/seeds/201_minicart.rb +++ b/spree_theme/db/seeds/200/201_minicart.rb @@ -2,8 +2,8 @@ bool_true = Spree::HtmlAttribute::BOOL_TRUE section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} -minicart = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"Mini cart"}, +minicart = Spree::Section.create_section(section_piece_hash['container'], {:title=>"Mini cart"}, {'block'=>{'disabled_ha_ids'=>'111'}, #'content_horizontal'=>{'disabled_ha_ids'=>'101'}, 'inner'=>{'15hidden'=>bool_true}}) -minicart.add_section_piece(section_piece_hash['minicart'].id) \ No newline at end of file +minicart.add_section_piece(section_piece_hash['minicart']) \ No newline at end of file diff --git a/spree_theme/db/seeds/202_logged_menu.rb b/spree_theme/db/seeds/200/202_logged_menu.rb similarity index 77% rename from spree_theme/db/seeds/202_logged_menu.rb rename to spree_theme/db/seeds/200/202_logged_menu.rb index 74237a98..93e13a48 100644 --- a/spree_theme/db/seeds/202_logged_menu.rb +++ b/spree_theme/db/seeds/200/202_logged_menu.rb @@ -4,8 +4,8 @@ Spree::Section.where(:title=>'logged&unlogged menu').each(&:destroy) -logged_and_unlogged_menu = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"logged&unlogged menu"}, +logged_and_unlogged_menu = Spree::Section.create_section(section_piece_hash['container'], {:title=>"logged&unlogged menu"}, {'block'=>{'disabled_ha_ids'=>'111'}, #'content_horizontal'=>{'disabled_ha_ids'=>'101'}, 'inner'=>{'15hidden'=>bool_true}}) -logged_and_unlogged_menu.add_section_piece(section_piece_hash['logged-and-unlogged-menu'].id).add_section_piece(section_piece_hash['menuitem'].id) \ No newline at end of file +logged_and_unlogged_menu.add_section_piece(section_piece_hash['logged-and-unlogged-menu']).add_section_piece(section_piece_hash['menuitem']) \ No newline at end of file diff --git a/spree_theme/db/seeds/203_password_recover.rb b/spree_theme/db/seeds/200/203_password_recover.rb similarity index 86% rename from spree_theme/db/seeds/203_password_recover.rb rename to spree_theme/db/seeds/200/203_password_recover.rb index 0ae7ed2d..4ceccd8c 100644 --- a/spree_theme/db/seeds/203_password_recover.rb +++ b/spree_theme/db/seeds/200/203_password_recover.rb @@ -4,8 +4,8 @@ #login_form Spree::Section.where(:title=>'password recover form').each(&:destroy) -order_address = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"password recover form"}, +order_address = Spree::Section.create_section(section_piece_hash['container'], {:title=>"password recover form"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -order_address.add_section_piece(section_piece_hash['container-title'].id) -order_address.add_section_piece(section_piece_hash['password-recover-form'].id) +order_address.add_section_piece(section_piece_hash['container-title']) +order_address.add_section_piece(section_piece_hash['password-recover-form']) diff --git a/spree_theme/db/seeds/200/204_fix_height_unset_changed.rb b/spree_theme/db/seeds/200/204_fix_height_unset_changed.rb new file mode 100644 index 00000000..1ee1794d --- /dev/null +++ b/spree_theme/db/seeds/200/204_fix_height_unset_changed.rb @@ -0,0 +1,14 @@ +html_attribute = find_html_attribute('height') +section_piece = find_section_piece('container') +section_piece_param = section_piece.section_piece_params.find_by( editor_id: 2, class_name: 'block' ) + +section_piece_param.add_param_value_event( html_attribute, Spree::ParamValue::EventEnum[:unset_changed] ) + +html_attribute = find_html_attribute('margin') +section_piece_param = section_piece.section_piece_params.find_by( editor_id: 2, class_name: 'inner' ) +section_piece_param.add_param_value_event( html_attribute, Spree::ParamValue::EventEnum[:unset_changed] ) + +html_attribute = find_html_attribute('padding') +section_piece_param.add_param_value_event( html_attribute, Spree::ParamValue::EventEnum[:unset_changed] ) +html_attribute = find_html_attribute('border-width') +section_piece_param.add_param_value_event( html_attribute, Spree::ParamValue::EventEnum[:unset_changed] ) diff --git a/spree_theme/db/seeds/205_product_option_values.rb b/spree_theme/db/seeds/200/205_product_option_values.rb similarity index 88% rename from spree_theme/db/seeds/205_product_option_values.rb rename to spree_theme/db/seeds/200/205_product_option_values.rb index 21d6d0e6..107fc1d3 100644 --- a/spree_theme/db/seeds/205_product_option_values.rb +++ b/spree_theme/db/seeds/200/205_product_option_values.rb @@ -2,7 +2,7 @@ bool_true = Spree::HtmlAttribute::BOOL_TRUE section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} -logo = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"Product option values"}, +logo = Spree::Section.create_section(section_piece_hash['container'], {:title=>"Product option values"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -logo.add_section_piece(section_piece_hash['product-option-values'].id) \ No newline at end of file +logo.add_section_piece(section_piece_hash['product-option-values']) \ No newline at end of file diff --git a/spree_theme/db/seeds/200/206_taxon_description.rb b/spree_theme/db/seeds/200/206_taxon_description.rb new file mode 100644 index 00000000..48ca13b8 --- /dev/null +++ b/spree_theme/db/seeds/200/206_taxon_description.rb @@ -0,0 +1,8 @@ +bool_false = Spree::HtmlAttribute::BOOL_FALSE +bool_true = Spree::HtmlAttribute::BOOL_TRUE +section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} + +logo = Spree::Section.create_section(section_piece_hash['container'], {:title=>"Taxon description"}, + {'block'=>{'disabled_ha_ids'=>'111'}, + 'inner'=>{'15hidden'=>bool_true}}) +logo.add_section_piece(section_piece_hash['taxon-description']) \ No newline at end of file diff --git a/spree_theme/db/seeds/200/207_site_form.rb b/spree_theme/db/seeds/200/207_site_form.rb new file mode 100644 index 00000000..2bf5b7a5 --- /dev/null +++ b/spree_theme/db/seeds/200/207_site_form.rb @@ -0,0 +1,9 @@ +bool_false = Spree::HtmlAttribute::BOOL_FALSE +bool_true = Spree::HtmlAttribute::BOOL_TRUE +section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} + +logo = Spree::Section.create_section(section_piece_hash['container'], {:title=>"Site form"}, + {'block'=>{'disabled_ha_ids'=>'111'}, + 'inner'=>{'15hidden'=>bool_true}}) + +logo.add_section_piece(section_piece_hash['container-form']).add_section_piece(section_piece_hash['site-form']) \ No newline at end of file diff --git a/spree_theme/db/seeds/200/208_slider.rb b/spree_theme/db/seeds/200/208_slider.rb new file mode 100644 index 00000000..5838cbf8 --- /dev/null +++ b/spree_theme/db/seeds/200/208_slider.rb @@ -0,0 +1,18 @@ + + +bool_false = Spree::HtmlAttribute::BOOL_FALSE +bool_true = Spree::HtmlAttribute::BOOL_TRUE + +section_piece = find_section_piece 'slider' +unless section_piece.section_piece_params.exists?( :class_name=>'title' ) + slides = { "editor_id"=>2, "class_name"=>"slides", "pclass"=>"css", "param_category_id"=>20, "html_attribute_ids"=>"78,79"} + create_section_piece_param( section_piece, slides) +end + +section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} + +logo = Spree::Section.create_section(section_piece_hash['container'], {:title=>"Slider"}, + {'block'=>{'disabled_ha_ids'=>'111','21unset'=>'0','21'=>'width:600px','15unset'=>'0','15'=>'height:200px'}, + 'inner'=>{'15hidden'=>bool_true}}) + +logo.add_section_piece(section_piece_hash['slider'], {'slides'=>{'78unset'=>'0',78=>'width:600px','79unset'=>'0',79=>'height:200px'}}) diff --git a/spree_theme/db/seeds/200/209_breadcrumbs.rb b/spree_theme/db/seeds/200/209_breadcrumbs.rb new file mode 100644 index 00000000..29254a2e --- /dev/null +++ b/spree_theme/db/seeds/200/209_breadcrumbs.rb @@ -0,0 +1,18 @@ + + +bool_false = Spree::HtmlAttribute::BOOL_FALSE +bool_true = Spree::HtmlAttribute::BOOL_TRUE + +#section_piece = find_section_piece 'slider' +#unless section_piece.section_piece_params.exists?( :class_name=>'title' ) +# slides = { "editor_id"=>2, "class_name"=>"slides", "pclass"=>"css", "param_category_id"=>20, "html_attribute_ids"=>"78,79"} +# create_section_piece_param( section_piece, slides) +#end +Spree::Section.where(:title=>'breadcrumbs').each(&:destroy) + +section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} + +logo = Spree::Section.create_section(section_piece_hash['container'], {:title=>"Breadcrumbs"}, + {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) + +logo.add_section_piece(section_piece_hash['container-link']).add_section_piece(section_piece_hash['breadcrumbs']) diff --git a/spree_theme/db/seeds/200/211_add_param_image_style.rb b/spree_theme/db/seeds/200/211_add_param_image_style.rb new file mode 100644 index 00000000..8902b39e --- /dev/null +++ b/spree_theme/db/seeds/200/211_add_param_image_style.rb @@ -0,0 +1,8 @@ + + + +#form button, button:hover +section_piece = find_section_piece 'product-image' + +button = { "editor_id"=>2, "class_name"=>"image_style", "pclass"=>"text", "param_category_id"=>28, "html_attribute_ids"=>"84"} +create_section_piece_param( section_piece, button) \ No newline at end of file diff --git a/spree_theme/db/seeds/212_disable_page_layout_slug.rb b/spree_theme/db/seeds/200/212_disable_page_layout_slug.rb similarity index 100% rename from spree_theme/db/seeds/212_disable_page_layout_slug.rb rename to spree_theme/db/seeds/200/212_disable_page_layout_slug.rb diff --git a/spree_theme/db/seeds/214_taxon_icon.rb b/spree_theme/db/seeds/200/214_taxon_icon.rb similarity index 75% rename from spree_theme/db/seeds/214_taxon_icon.rb rename to spree_theme/db/seeds/200/214_taxon_icon.rb index fbfe2914..1e310ef2 100644 --- a/spree_theme/db/seeds/214_taxon_icon.rb +++ b/spree_theme/db/seeds/200/214_taxon_icon.rb @@ -1,10 +1,9 @@ -include SpreeTheme::SectionPieceParamHelper + bool_false = Spree::HtmlAttribute::BOOL_FALSE bool_true = Spree::HtmlAttribute::BOOL_TRUE -#dialog width, height, -#section_piece = Spree::SectionPiece.find 'slider' +#section_piece = find_section_piece 'slider' #unless section_piece.section_piece_params.exists?( :class_name=>'title' ) # slides = { "editor_id"=>2, "class_name"=>"slides", "pclass"=>"css", "param_category_id"=>20, "html_attribute_ids"=>"78,79"} # create_section_piece_param( section_piece, slides) @@ -13,7 +12,7 @@ section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} -logo = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"Taxon icon"}, +logo = Spree::Section.create_section(section_piece_hash['container'], {:title=>"Taxon icon"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -logo.add_section_piece(section_piece_hash['taxon-icon'].id) \ No newline at end of file +logo.add_section_piece(section_piece_hash['taxon-icon']) diff --git a/spree_theme/db/seeds/200/215_minicart_with_link.rb b/spree_theme/db/seeds/200/215_minicart_with_link.rb new file mode 100644 index 00000000..df874eb0 --- /dev/null +++ b/spree_theme/db/seeds/200/215_minicart_with_link.rb @@ -0,0 +1,9 @@ +bool_false = Spree::HtmlAttribute::BOOL_FALSE +bool_true = Spree::HtmlAttribute::BOOL_TRUE +section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} + +minicart = Spree::Section.create_section(section_piece_hash['container'], {:title=>"Mini cart2"}, + {'block'=>{'disabled_ha_ids'=>'111'}, + #'content_horizontal'=>{'disabled_ha_ids'=>'101'}, + 'inner'=>{'15hidden'=>bool_true}}) +minicart.add_section_piece(section_piece_hash['container-link']).add_section_piece(section_piece_hash['minicart']) diff --git a/spree_theme/db/seeds/216_support_taxon_depth.rb b/spree_theme/db/seeds/200/216_support_taxon_depth.rb similarity index 87% rename from spree_theme/db/seeds/216_support_taxon_depth.rb rename to spree_theme/db/seeds/200/216_support_taxon_depth.rb index bb66a8bc..83b9aacb 100644 --- a/spree_theme/db/seeds/216_support_taxon_depth.rb +++ b/spree_theme/db/seeds/200/216_support_taxon_depth.rb @@ -1,7 +1,7 @@ -include SpreeTheme::SectionPieceParamHelper + #table title cell, border,padding -section_piece = Spree::SectionPiece.find 'menuitem' +section_piece = find_section_piece 'menuitem' [16,17,18].each_with_index{|param_category_id, i| a = { "editor_id"=>2, "class_name"=>"depth#{i+1}", "pclass"=>"css", "param_category_id"=>param_category_id, "html_attribute_ids"=>"31,32,7,8,6"} create_section_piece_param( section_piece, a) diff --git a/spree_theme/db/seeds/217_convert_pvalue_key_to_string.rb b/spree_theme/db/seeds/200/217_convert_pvalue_key_to_string.rb similarity index 100% rename from spree_theme/db/seeds/217_convert_pvalue_key_to_string.rb rename to spree_theme/db/seeds/200/217_convert_pvalue_key_to_string.rb diff --git a/spree_theme/db/seeds/218_convert_default_value_key_to_string.rb b/spree_theme/db/seeds/200/218_convert_default_value_key_to_string.rb similarity index 100% rename from spree_theme/db/seeds/218_convert_default_value_key_to_string.rb rename to spree_theme/db/seeds/200/218_convert_default_value_key_to_string.rb diff --git a/spree_theme/db/seeds/200/219_create_post_related_section.rb b/spree_theme/db/seeds/200/219_create_post_related_section.rb new file mode 100644 index 00000000..ae74112a --- /dev/null +++ b/spree_theme/db/seeds/200/219_create_post_related_section.rb @@ -0,0 +1,31 @@ + +bool_false = Spree::HtmlAttribute::BOOL_FALSE +bool_true = Spree::HtmlAttribute::BOOL_TRUE + +#section_piece = find_section_piece 'slider' +#unless section_piece.section_piece_params.exists?( :class_name=>'title' ) +# slides = { "editor_id"=>2, "class_name"=>"slides", "pclass"=>"css", "param_category_id"=>20, "html_attribute_ids"=>"78,79"} +# create_section_piece_param( section_piece, slides) +#end +Spree::Section.where(:title=>'Post title').each(&:destroy) +Spree::Section.where(:title=>'Post time').each(&:destroy) +Spree::Section.where(:title=>'Post author').each(&:destroy) +Spree::Section.where(:title=>'Post body').each(&:destroy) + +section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} + +logo = Spree::Section.create_section(section_piece_hash['container'], {:title=>"Post title"}, + {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) +logo.add_section_piece(section_piece_hash['container-link']).add_section_piece(section_piece_hash['post-title']) + +logo = Spree::Section.create_section(section_piece_hash['container'], {:title=>"Post time"}, + {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) +logo.add_section_piece(section_piece_hash['post-time']) + +logo = Spree::Section.create_section(section_piece_hash['container'], {:title=>"Post author"}, + {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) +logo.add_section_piece(section_piece_hash['post-author']) + +logo = Spree::Section.create_section(section_piece_hash['container'], {:title=>"Post body"}, + {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) +logo.add_section_piece(section_piece_hash['post-body']) diff --git a/spree_theme/db/seeds/220_post_cover.rb b/spree_theme/db/seeds/200/220_post_cover.rb similarity index 75% rename from spree_theme/db/seeds/220_post_cover.rb rename to spree_theme/db/seeds/200/220_post_cover.rb index ff3f975d..3aa817b6 100644 --- a/spree_theme/db/seeds/220_post_cover.rb +++ b/spree_theme/db/seeds/200/220_post_cover.rb @@ -1,10 +1,9 @@ -include SpreeTheme::SectionPieceParamHelper + bool_false = Spree::HtmlAttribute::BOOL_FALSE bool_true = Spree::HtmlAttribute::BOOL_TRUE -#dialog width, height, -#section_piece = Spree::SectionPiece.find 'slider' +#section_piece = find_section_piece 'slider' #unless section_piece.section_piece_params.exists?( :class_name=>'title' ) # slides = { "editor_id"=>2, "class_name"=>"slides", "pclass"=>"css", "param_category_id"=>20, "html_attribute_ids"=>"78,79"} # create_section_piece_param( section_piece, slides) @@ -13,7 +12,7 @@ section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} -logo = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"Post cover"}, +logo = Spree::Section.create_section(section_piece_hash['container'], {:title=>"Post cover"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -logo.add_section_piece(section_piece_hash['post-cover'].id) \ No newline at end of file +logo.add_section_piece(section_piece_hash['post-cover']) diff --git a/spree_theme/db/seeds/222_add_more_for_link.rb b/spree_theme/db/seeds/200/222_add_more_for_link.rb similarity index 85% rename from spree_theme/db/seeds/222_add_more_for_link.rb rename to spree_theme/db/seeds/200/222_add_more_for_link.rb index 5e0be8e7..483f7802 100644 --- a/spree_theme/db/seeds/222_add_more_for_link.rb +++ b/spree_theme/db/seeds/200/222_add_more_for_link.rb @@ -1,7 +1,7 @@ -include SpreeTheme::SectionPieceParamHelper + # add param link:hover -section_piece = Spree::SectionPiece.find 'menuitem' +section_piece = find_section_piece 'menuitem' link_hover = { "editor_id"=>2, "class_name"=>"a_h", "pclass"=>"css", "param_category_id"=>12, "html_attribute_ids"=>"7,8,6"} unless Spree::SectionPieceParam.where( link_hover ).present? @@ -9,14 +9,14 @@ end # add param container:hover, border -section_piece = Spree::SectionPiece.find 'container' +section_piece = find_section_piece 'container' container_hover = { "editor_id"=>2, "class_name"=>"block_h", "pclass"=>"css", "param_category_id"=>3, "html_attribute_ids"=>"7,8,6"} unless Spree::SectionPieceParam.where( container_hover ).present? create_section_piece_param( section_piece, container_hover) end # add param container:hover, background -section_piece = Spree::SectionPiece.find 'container' +section_piece = find_section_piece 'container' container_hover = { "editor_id"=>3, "class_name"=>"block_h", "pclass"=>"css", "param_category_id"=>3, "html_attribute_ids"=>"2,3,4,5"} unless Spree::SectionPieceParam.where( container_hover ).present? create_section_piece_param( section_piece, container_hover) diff --git a/spree_theme/db/seeds/223_add_text_indent.rb b/spree_theme/db/seeds/200/223_add_text_indent.rb similarity index 100% rename from spree_theme/db/seeds/223_add_text_indent.rb rename to spree_theme/db/seeds/200/223_add_text_indent.rb diff --git a/spree_theme/db/seeds/224_taxon_name2.rb b/spree_theme/db/seeds/200/224_taxon_name2.rb similarity index 79% rename from spree_theme/db/seeds/224_taxon_name2.rb rename to spree_theme/db/seeds/200/224_taxon_name2.rb index a3199096..d9125d99 100644 --- a/spree_theme/db/seeds/224_taxon_name2.rb +++ b/spree_theme/db/seeds/200/224_taxon_name2.rb @@ -5,9 +5,9 @@ #taxon name Spree::Section.where(:title=>'taxon name as link').each(&:destroy) -product_properties = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"taxon name as link"}, +product_properties = Spree::Section.create_section(section_piece_hash['container'], {:title=>"taxon name as link"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -product_properties.add_section_piece(section_piece_hash['container-link'].id).add_section_piece(section_piece_hash['taxon-name'].id) +product_properties.add_section_piece(section_piece_hash['container-link']).add_section_piece(section_piece_hash['taxon-name']) # \ No newline at end of file diff --git a/spree_theme/db/seeds/225_add_link_width.rb b/spree_theme/db/seeds/200/225_add_link_width.rb similarity index 100% rename from spree_theme/db/seeds/225_add_link_width.rb rename to spree_theme/db/seeds/200/225_add_link_width.rb diff --git a/spree_theme/db/seeds/228_grouped_option_values_selector.rb b/spree_theme/db/seeds/200/228_grouped_option_values_selector.rb similarity index 79% rename from spree_theme/db/seeds/228_grouped_option_values_selector.rb rename to spree_theme/db/seeds/200/228_grouped_option_values_selector.rb index f1bf1837..0169806e 100644 --- a/spree_theme/db/seeds/228_grouped_option_values_selector.rb +++ b/spree_theme/db/seeds/200/228_grouped_option_values_selector.rb @@ -1,10 +1,9 @@ -include SpreeTheme::SectionPieceParamHelper + bool_false = Spree::HtmlAttribute::BOOL_FALSE bool_true = Spree::HtmlAttribute::BOOL_TRUE -#dialog width, height, -#section_piece = Spree::SectionPiece.find 'slider' +#section_piece = find_section_piece 'slider' #unless section_piece.section_piece_params.exists?( :class_name=>'title' ) # slides = { "editor_id"=>2, "class_name"=>"slides", "pclass"=>"css", "param_category_id"=>20, "html_attribute_ids"=>"78,79"} # create_section_piece_param( section_piece, slides) @@ -13,7 +12,7 @@ section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} -logo = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"grouped option values selector"}, +logo = Spree::Section.create_section(section_piece_hash['container'], {:title=>"grouped option values selector"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -logo.add_section_piece(section_piece_hash['grouped-option-values-selector'].id) \ No newline at end of file +logo.add_section_piece(section_piece_hash['grouped-option-values-selector']) diff --git a/spree_theme/db/seeds/229_grouped_option_values_in_slide_style.rb b/spree_theme/db/seeds/200/229_grouped_option_values_in_slide_style.rb similarity index 79% rename from spree_theme/db/seeds/229_grouped_option_values_in_slide_style.rb rename to spree_theme/db/seeds/200/229_grouped_option_values_in_slide_style.rb index 4c31afb1..d81c7ec6 100644 --- a/spree_theme/db/seeds/229_grouped_option_values_in_slide_style.rb +++ b/spree_theme/db/seeds/200/229_grouped_option_values_in_slide_style.rb @@ -1,10 +1,9 @@ -include SpreeTheme::SectionPieceParamHelper + bool_false = Spree::HtmlAttribute::BOOL_FALSE bool_true = Spree::HtmlAttribute::BOOL_TRUE -#dialog width, height, -#section_piece = Spree::SectionPiece.find 'slider' +#section_piece = find_section_piece 'slider' #unless section_piece.section_piece_params.exists?( :class_name=>'title' ) # slides = { "editor_id"=>2, "class_name"=>"slides", "pclass"=>"css", "param_category_id"=>20, "html_attribute_ids"=>"78,79"} # create_section_piece_param( section_piece, slides) @@ -13,7 +12,7 @@ section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} -logo = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"option values in slide style"}, +logo = Spree::Section.create_section(section_piece_hash['container'], {:title=>"option values in slide style"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -logo.add_section_piece(section_piece_hash['option-values-in-slide-style'].id) \ No newline at end of file +logo.add_section_piece(section_piece_hash['option-values-in-slide-style']) diff --git a/spree_theme/db/seeds/230_product_customization_options.rb b/spree_theme/db/seeds/200/230_product_customization_options.rb similarity index 79% rename from spree_theme/db/seeds/230_product_customization_options.rb rename to spree_theme/db/seeds/200/230_product_customization_options.rb index 52ecccc0..d3b33998 100644 --- a/spree_theme/db/seeds/230_product_customization_options.rb +++ b/spree_theme/db/seeds/200/230_product_customization_options.rb @@ -1,10 +1,9 @@ -include SpreeTheme::SectionPieceParamHelper + bool_false = Spree::HtmlAttribute::BOOL_FALSE bool_true = Spree::HtmlAttribute::BOOL_TRUE -#dialog width, height, -#section_piece = Spree::SectionPiece.find 'slider' +#section_piece = find_section_piece 'slider' #unless section_piece.section_piece_params.exists?( :class_name=>'title' ) # slides = { "editor_id"=>2, "class_name"=>"slides", "pclass"=>"css", "param_category_id"=>20, "html_attribute_ids"=>"78,79"} # create_section_piece_param( section_piece, slides) @@ -13,7 +12,7 @@ section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} -logo = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"product customization options"}, +logo = Spree::Section.create_section(section_piece_hash['container'], {:title=>"product customization options"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -logo.add_section_piece(section_piece_hash['product-customization-options'].id) \ No newline at end of file +logo.add_section_piece(section_piece_hash['product-customization-options']) diff --git a/spree_theme/db/seeds/232_rename_h6_to_theme_title.rb b/spree_theme/db/seeds/200/232_rename_h6_to_theme_title.rb similarity index 100% rename from spree_theme/db/seeds/232_rename_h6_to_theme_title.rb rename to spree_theme/db/seeds/200/232_rename_h6_to_theme_title.rb diff --git a/spree_theme/db/seeds/234_add_param_selected.rb b/spree_theme/db/seeds/200/234_add_param_selected.rb similarity index 78% rename from spree_theme/db/seeds/234_add_param_selected.rb rename to spree_theme/db/seeds/200/234_add_param_selected.rb index d528eec1..22a2716a 100644 --- a/spree_theme/db/seeds/234_add_param_selected.rb +++ b/spree_theme/db/seeds/200/234_add_param_selected.rb @@ -1,7 +1,7 @@ -include SpreeTheme::SectionPieceParamHelper -section_piece = Spree::SectionPiece.find('container-link') + +section_piece = find_section_piece('container-link') s_a_sel = { "editor_id"=>3, "class_name"=>"s_a_sel", "pclass"=>"css", "param_category_id"=>13, "html_attribute_ids"=>"2,3,4,5"} create_section_piece_param( section_piece, s_a_sel) diff --git a/spree_theme/db/seeds/235_add_container_header0.rb b/spree_theme/db/seeds/200/235_add_container_header0.rb similarity index 84% rename from spree_theme/db/seeds/235_add_container_header0.rb rename to spree_theme/db/seeds/200/235_add_container_header0.rb index d2103402..be29b3bd 100644 --- a/spree_theme/db/seeds/235_add_container_header0.rb +++ b/spree_theme/db/seeds/200/235_add_container_header0.rb @@ -1,7 +1,7 @@ -include SpreeTheme::SectionPieceParamHelper + #table title cell, border,padding -section_piece = Spree::SectionPiece.find 'container-header0' +section_piece = find_section_piece 'container-header0' title = { "editor_id"=>2, "class_name"=>"s_header0", "pclass"=>"css", "param_category_id"=>10, "html_attribute_ids"=>"31,32,7,8,6"} create_section_piece_param( section_piece, title) title = { "editor_id"=>3, "class_name"=>"s_header0", "pclass"=>"css", "param_category_id"=>10, "html_attribute_ids"=>"2,3,4,5"} diff --git a/spree_theme/db/seeds/200/236_add_option_values_selector2.rb b/spree_theme/db/seeds/200/236_add_option_values_selector2.rb new file mode 100644 index 00000000..e1a6ba0c --- /dev/null +++ b/spree_theme/db/seeds/200/236_add_option_values_selector2.rb @@ -0,0 +1,21 @@ + + +bool_false = Spree::HtmlAttribute::BOOL_FALSE +bool_true = Spree::HtmlAttribute::BOOL_TRUE + +Spree::Section.where(:title=>'Grouped option values selector').each{|section| + section.update_attribute( :is_enabled, false ) +} +Spree::Section.where(:title=>'container with title').each{|section| + section.update_attribute( :is_enabled, false ) +} + + +Spree::Section.where(:title=>'Grouped option values selector2').each(&:destroy) + +section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} + +logo = Spree::Section.create_section(section_piece_hash['container'], {:title=>"grouped option values selector2"}, + {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) + +logo.add_section_piece( section_piece_hash['container-header0'] ).add_section_piece( section_piece_hash['container-link'] ).add_section_piece(section_piece_hash['grouped-option-values-selector']) diff --git a/spree_theme/db/seeds/237_add_param_link_unavailable.rb b/spree_theme/db/seeds/200/237_add_param_link_unavailable.rb similarity index 78% rename from spree_theme/db/seeds/237_add_param_link_unavailable.rb rename to spree_theme/db/seeds/200/237_add_param_link_unavailable.rb index c1a344e5..27bb239c 100644 --- a/spree_theme/db/seeds/237_add_param_link_unavailable.rb +++ b/spree_theme/db/seeds/200/237_add_param_link_unavailable.rb @@ -1,7 +1,7 @@ -include SpreeTheme::SectionPieceParamHelper -section_piece = Spree::SectionPiece.find('container-link') + +section_piece = find_section_piece('container-link') s_a_sel = { "editor_id"=>3, "class_name"=>"s_a_una", "pclass"=>"css", "param_category_id"=>15, "html_attribute_ids"=>"2,3,4,5"} create_section_piece_param( section_piece, s_a_sel) diff --git a/spree_theme/db/seeds/238_disable_minicart.rb b/spree_theme/db/seeds/200/238_disable_minicart.rb similarity index 100% rename from spree_theme/db/seeds/238_disable_minicart.rb rename to spree_theme/db/seeds/200/238_disable_minicart.rb diff --git a/spree_theme/db/seeds/200/239_add_th.rb b/spree_theme/db/seeds/200/239_add_th.rb new file mode 100644 index 00000000..793db376 --- /dev/null +++ b/spree_theme/db/seeds/200/239_add_th.rb @@ -0,0 +1,16 @@ + + +section_piece = find_section_piece 'container-table' + +th = {"editor_id"=>2, "class_name"=>"s_th", "pclass"=>"css", "param_category_id"=>81, "html_attribute_ids"=>"32,7,8,6"} +unless Spree::SectionPieceParam.where( th ).any? + create_section_piece_param( section_piece, th) +end + +section_params = Spree::SectionParam.eager_load(:section_piece_param).where(["spree_section_piece_params.class_name=?",'block_h']) + +if section_params.any? + section_params.each{|param| + param.update_attribute(:is_enabled, false) + } +end diff --git a/spree_theme/db/seeds/200/23a_add_container_dl.rb b/spree_theme/db/seeds/200/23a_add_container_dl.rb new file mode 100644 index 00000000..89786be9 --- /dev/null +++ b/spree_theme/db/seeds/200/23a_add_container_dl.rb @@ -0,0 +1,5 @@ +root2 = Spree::Section.find_by_title('root2') + +container_dl = find_section_piece 'container-dl' + +root2.leaves.last.add_section_piece( container_dl ) diff --git a/spree_theme/db/seeds/23b_add_param_dl.rb b/spree_theme/db/seeds/200/23b_add_param_dl.rb similarity index 91% rename from spree_theme/db/seeds/23b_add_param_dl.rb rename to spree_theme/db/seeds/200/23b_add_param_dl.rb index 989cea9e..4728ae16 100644 --- a/spree_theme/db/seeds/23b_add_param_dl.rb +++ b/spree_theme/db/seeds/200/23b_add_param_dl.rb @@ -1,6 +1,6 @@ -include SpreeTheme::SectionPieceParamHelper -section_piece = Spree::SectionPiece.find('container-dl') + +section_piece = find_section_piece('container-dl') dt = { "editor_id"=>2, "class_name"=>"s_dt", "pclass"=>"css", "param_category_id"=>70, "html_attribute_ids"=>"21,31,32,7,8,6"} create_section_piece_param( section_piece, dt) diff --git a/spree_theme/db/seeds/200/23c_fix_assigned_resource_ids.rb b/spree_theme/db/seeds/200/23c_fix_assigned_resource_ids.rb new file mode 100644 index 00000000..0d3f7d2d --- /dev/null +++ b/spree_theme/db/seeds/200/23c_fix_assigned_resource_ids.rb @@ -0,0 +1,10 @@ +SpreeTheme.site_class.all.each{|site| + site.stores.first.template_themes.each{|template_theme| + template_theme.assigned_resource_ids.each_pair{|key,val| + # fix :undefined method `classify' for :"spree/taxon":Symbol + #spree_theme/app/models/spree/template_resource.rb:44:in `source_class' + val.stringify_keys! + } + template_theme.save! + } +} diff --git a/spree_theme/db/seeds/200/23d_fix_template_text_permalink.rb b/spree_theme/db/seeds/200/23d_fix_template_text_permalink.rb new file mode 100644 index 00000000..50733e32 --- /dev/null +++ b/spree_theme/db/seeds/200/23d_fix_template_text_permalink.rb @@ -0,0 +1,6 @@ +SpreeTheme.site_class.all.each{|site| + site.template_texts.each{|template_text| + template_text.valid? + template_text.save! + } +} diff --git a/spree_theme/db/seeds/200/23e_add_template_related_buttons.rb b/spree_theme/db/seeds/200/23e_add_template_related_buttons.rb new file mode 100644 index 00000000..d5fde124 --- /dev/null +++ b/spree_theme/db/seeds/200/23e_add_template_related_buttons.rb @@ -0,0 +1,16 @@ +bool_false = Spree::HtmlAttribute::BOOL_FALSE +bool_true = Spree::HtmlAttribute::BOOL_TRUE +sps = Spree::SectionPiece.all +section_piece_hash= sps.inject({}){|h,sp| h[sp.slug] = sp; h} + +#theme preview button +Spree::Section.where(:title=>'preview theme button').each(&:destroy) +theme_related_button = Spree::Section.create_section(section_piece_hash['container'], {:title=>"preview theme button"}, + {'inner'=>{'15hidden'=>bool_true}}) +theme_related_button.add_section_piece(section_piece_hash['container-link']).add_section_piece(section_piece_hash['preview-theme-button']) + +#new site with selected theme button +Spree::Section.where(:title=>'install theme with site button').each(&:destroy) +theme_related_button = Spree::Section.create_section(section_piece_hash['container'], {:title=>"install theme with site button"}, + {'inner'=>{'15hidden'=>bool_true}}) +theme_related_button.add_section_piece(section_piece_hash['container-link']).add_section_piece(section_piece_hash['install-theme-with-site-button']) diff --git a/spree_theme/db/seeds/200/23f_change_to_root2.rb b/spree_theme/db/seeds/200/23f_change_to_root2.rb new file mode 100644 index 00000000..124f944d --- /dev/null +++ b/spree_theme/db/seeds/200/23f_change_to_root2.rb @@ -0,0 +1,7 @@ +root2 = Spree::Section.find_by_title('root2') + +template2 = Spree::TemplateTheme.find_by_id( 2 ) + +if root2 && template2 + template2.page_layout_root.replace_with root2 +end diff --git a/spree_theme/db/seeds/23g_add_container_fixed.rb b/spree_theme/db/seeds/200/23g_add_container_fixed.rb similarity index 84% rename from spree_theme/db/seeds/23g_add_container_fixed.rb rename to spree_theme/db/seeds/200/23g_add_container_fixed.rb index ede67d1d..5e545505 100644 --- a/spree_theme/db/seeds/23g_add_container_fixed.rb +++ b/spree_theme/db/seeds/200/23g_add_container_fixed.rb @@ -1,7 +1,7 @@ -include SpreeTheme::SectionPieceParamHelper + #table title cell, border,padding -section_piece = Spree::SectionPiece.find 'container-fixed' +section_piece = find_section_piece 'container-fixed' fixed_position = { "editor_id"=>2, "class_name"=>"fixed_position", "pclass"=>"css", "param_category_id"=>7, "html_attribute_ids"=>"41,40,33,35"} unless section_piece.section_piece_params.where(:class_name=>'fixed_position').any? create_section_piece_param( section_piece, fixed_position) @@ -15,7 +15,7 @@ #fixed_container Spree::Section.where(:title=>'fixed container').each(&:destroy) -fixed_container = Spree::Section.create_section( section_piece_hash['container'].id, {:title=>"fixed container"}, +fixed_container = Spree::Section.create_section( section_piece_hash['container'], {:title=>"fixed container"}, { 'content_layout'=>{'86'=>bool_true,'86unset'=>bool_false}, 'block'=>{'15'=>"height:100px",'15unset'=>bool_false,'101'=>"float:left",'101unset'=>bool_false}, 'inner'=>{'15hidden'=>bool_true}} ) -fixed_container.add_section_piece(section_piece_hash['container-fixed'].id) +fixed_container.add_section_piece(section_piece_hash['container-fixed']) diff --git a/spree_theme/db/seeds/200/23h_hover_effect_slide.rb b/spree_theme/db/seeds/200/23h_hover_effect_slide.rb new file mode 100644 index 00000000..f2a891cc --- /dev/null +++ b/spree_theme/db/seeds/200/23h_hover_effect_slide.rb @@ -0,0 +1,7 @@ + +#hover_effect_container +Spree::Section.where(:title=>'hover effect slide container').each(&:destroy) +container = Spree::Section.create_section( section_piece_hash['container'], {:title=>"hover effect slide container",:content_param=>4}, +{ 'content_layout'=>{'86'=>bool_true,'86unset'=>bool_false}, 'block'=>{'101'=>"float:left",'101unset'=>bool_false}, 'inner'=>{'15hidden'=>bool_true}} +) +container.add_section_piece(section_piece_hash['hover-effect-slide-container']) diff --git a/spree_theme/db/seeds/200/23i_add_mobile_root.rb b/spree_theme/db/seeds/200/23i_add_mobile_root.rb new file mode 100644 index 00000000..ab653693 --- /dev/null +++ b/spree_theme/db/seeds/200/23i_add_mobile_root.rb @@ -0,0 +1,5 @@ + +Spree::Section.where(:title=>'root for mobile').each(&:destroy) +root_for_terminal = Spree::Section.create_section(section_piece_hash['root-for-mobile'], {:title=>"root for mobile"}) + + diff --git a/spree_theme/db/seeds/200/23j_add_height_into_menu_item.rb b/spree_theme/db/seeds/200/23j_add_height_into_menu_item.rb new file mode 100644 index 00000000..5ebae645 --- /dev/null +++ b/spree_theme/db/seeds/200/23j_add_height_into_menu_item.rb @@ -0,0 +1,8 @@ +# add html_attribute margin into a +spps = Spree::SectionPieceParam.where(:editor_id=>2,:class_name=>'a').all + +if spps.size == 1 + margin = Spree::HtmlAttribute.find 31 #margin + height = Spree::HtmlAttribute.find 15 #height + spps.first.insert_html_attribute height, margin +end diff --git a/spree_theme/db/seeds/200/23k_taxon_tooltips.rb b/spree_theme/db/seeds/200/23k_taxon_tooltips.rb new file mode 100644 index 00000000..d18aa716 --- /dev/null +++ b/spree_theme/db/seeds/200/23k_taxon_tooltips.rb @@ -0,0 +1,9 @@ + + +Spree::Section.where(:title=>'Taxon tooltips').each(&:destroy) + + +logo = Spree::Section.create_section(section_piece_hash['container'], {:title=>"Taxon tooltips"}, + {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) + +logo.add_section_piece(section_piece_hash['taxon-tooltips']) \ No newline at end of file diff --git a/spree_theme/db/seeds/200/23l_hover_effect_show.rb b/spree_theme/db/seeds/200/23l_hover_effect_show.rb new file mode 100644 index 00000000..2ece125f --- /dev/null +++ b/spree_theme/db/seeds/200/23l_hover_effect_show.rb @@ -0,0 +1,28 @@ +#hover_effect_container +Spree::Section.where(:title=>'hover effect show container').each(&:destroy) +container = Spree::Section.create_section( section_piece_hash['container'], {:title=>"hover effect show container", :content_param=>Spree::Section::MouseEffect.show}, + { 'content_layout'=>{'86'=>bool_true,'86unset'=>bool_false}, 'block'=>{'101'=>"float:left",'101unset'=>bool_false}, 'inner'=>{'15hidden'=>bool_true}} +) +container.add_section_piece(section_piece_hash['hover-effect-show-container']) + +#hover_effect_container +Spree::Section.where(:title=>'hover effect expansion container').each(&:destroy) +container = Spree::Section.create_section( section_piece_hash['container'], {:title=>"hover effect expansion container", :content_param=>Spree::Section::MouseEffect.expansion}, + { 'content_layout'=>{'86'=>bool_true,'86unset'=>bool_false}, 'block'=>{'101'=>"float:left",'101unset'=>bool_false}, 'inner'=>{'15hidden'=>bool_true}} +) +container.add_section_piece(section_piece_hash['hover-effect-expansion-container']) + +#hover_effect_container +Spree::Section.where(:title=>'hover effect overlay container').each(&:destroy) +container = Spree::Section.create_section( section_piece_hash['container'], {:title=>"hover effect overlay container", :content_param=> Spree::Section::MouseEffect.overlay}, + { 'content_layout'=>{'86'=>bool_true,'86unset'=>bool_false}, 'block'=>{'101'=>"float:left",'101unset'=>bool_false}, 'inner'=>{'15hidden'=>bool_true}} +) +container.add_section_piece(section_piece_hash['hover-effect-overlay-container']) + + +#hover_effect_container +Spree::Section.where(:title=>'hover effect popup container').each(&:destroy) +container = Spree::Section.create_section( section_piece_hash['container'], {:title=>"hover effect popup container", :content_param=> Spree::Section::MouseEffect.popup}, + { 'content_layout'=>{'86'=>bool_true,'86unset'=>bool_false}, 'block'=>{'101'=>"float:left",'101unset'=>bool_false}, 'inner'=>{'15hidden'=>bool_true}} +) +container.add_section_piece(section_piece_hash['hover-effect-popup-container']) diff --git a/spree_theme/db/seeds/200/23m_baidu_map.rb b/spree_theme/db/seeds/200/23m_baidu_map.rb new file mode 100644 index 00000000..13b954e5 --- /dev/null +++ b/spree_theme/db/seeds/200/23m_baidu_map.rb @@ -0,0 +1,26 @@ + + +Spree::Section.where(:title=>'Baidu Map').each(&:destroy) + + +logo = Spree::Section.create_section(section_piece_hash['container'], {:title=>"Baidu Map"}, + {'block'=>{'disabled_ha_ids'=>'111', '21'=>'width:300px','15'=>'height:300px','15unset'=>bool_false,'21unset'=>bool_false}, 'inner'=>{'15hidden'=>bool_true}}) + +logo.add_section_piece(section_piece_hash['baidu-map']) + +# add param inner_width +# add width pv changed event +block_param = Spree::SectionPieceParam.where(:section_piece_id=>2, :class_name=>"block", :editor_id=>2).first +block_param.param_conditions[21]=["pv_changed","unset_changed"] +block_param.save! +#inner +inner_param = Spree::SectionPieceParam.where(:section_piece_id=>2, :class_name=>"inner", :editor_id=>2).first +inner_param.insert_html_attribute( Spree::HtmlAttribute.find(21) ) +inner_param.section_params.each{|sp| + sp.default_value['21hidden'] = bool_true + sp.save! + sp.param_values.each{|pv| + pv.pvalue['21hidden'] = bool_true + pv.save! + } +} diff --git a/spree_theme/db/seeds/200/23n_add_param_hovered.rb b/spree_theme/db/seeds/200/23n_add_param_hovered.rb new file mode 100644 index 00000000..97fa8cf2 --- /dev/null +++ b/spree_theme/db/seeds/200/23n_add_param_hovered.rb @@ -0,0 +1,7 @@ +# add param link:hover +section_piece = find_section_piece 'hover-effect-expansion-container' + +hovered = { "editor_id"=>4, "class_name"=>"block_hovered", "pclass"=>"css", "param_category_id"=>101, "html_attribute_ids"=>"23,24,25,27,49,53,54,56"} +unless Spree::SectionPieceParam.where( hovered ).present? + create_section_piece_param( section_piece, hovered) +end \ No newline at end of file diff --git a/spree_theme/db/seeds/200/23p_add_section_usage.rb b/spree_theme/db/seeds/200/23p_add_section_usage.rb new file mode 100644 index 00000000..aee92b07 --- /dev/null +++ b/spree_theme/db/seeds/200/23p_add_section_usage.rb @@ -0,0 +1,15 @@ +Spree::Section.roots.each{|section| + case section.title + when /image with thumbnails/ + section.usage = 'image-with-thumbnails' + when /image/ + section.usage = 'image' + when /dialog/ + section.usage = 'dialog' + when /container/ + section.usage = 'container' + when /root/ + section.usage = 'root' + end + section.save! +} diff --git a/spree_theme/db/seeds/200/23r_bootstrap_container.rb b/spree_theme/db/seeds/200/23r_bootstrap_container.rb new file mode 100644 index 00000000..91cfc3c7 --- /dev/null +++ b/spree_theme/db/seeds/200/23r_bootstrap_container.rb @@ -0,0 +1,10 @@ +Spree::Section.where(:title=>'Bootstrap container').each(&:destroy) + + +bootstrap_container = Spree::Section.create_section(section_piece_hash['bootstrap-container'], {:title=>"Bootstrap container", :usage=>'container'}) + + +Spree::Section.where(:title=>'Bootstrap column').each(&:destroy) + + +bootstrap_column = Spree::Section.create_section(section_piece_hash['bootstrap-column'], {:title=>"Bootstrap column", :usage=>'container'}) diff --git a/spree_theme/db/seeds/200/23s_bootstrap_container_position_params.rb b/spree_theme/db/seeds/200/23s_bootstrap_container_position_params.rb new file mode 100644 index 00000000..36d0586e --- /dev/null +++ b/spree_theme/db/seeds/200/23s_bootstrap_container_position_params.rb @@ -0,0 +1,14 @@ +section_piece = find_section_piece 'bootstrap-column' +block = {"editor_id"=>2, "class_name"=>"block", "pclass"=>"css", "param_category_id"=>2, "html_attribute_ids"=>"31,32,7,8,6"} +create_section_piece_param( section_piece, block) + +section_piece = find_section_piece 'bootstrap-container' + +inner = {"editor_id"=>2, "class_name"=>"inner", "pclass"=>"css", "param_category_id"=>2, "html_attribute_ids"=>"31,32,7,8,6"} +create_section_piece_param( section_piece, inner) + +inner = { "editor_id"=>3, "class_name"=>"inner", "pclass"=>"css", "param_category_id"=>2, "html_attribute_ids"=>"2,3,4,5"} +create_section_piece_param( section_piece, inner) + +inner = { "editor_id"=>4, "class_name"=>"inner", "pclass"=>"css", "param_category_id"=>2, "html_attribute_ids"=>"24,27,49,53,54"} +create_section_piece_param( section_piece, inner) diff --git a/spree_theme/db/seeds/200/23t_mobile_root2.rb b/spree_theme/db/seeds/200/23t_mobile_root2.rb new file mode 100644 index 00000000..8b47e219 --- /dev/null +++ b/spree_theme/db/seeds/200/23t_mobile_root2.rb @@ -0,0 +1,14 @@ + + +root = Spree::Section.create_section(section_piece_hash['root-for-mobile'], {:title=>"root2 for mobile"}) + +root.add_section_piece(section_piece_hash['container-title'])\ + .add_section_piece(section_piece_hash['container-form'])\ + .add_section_piece(section_piece_hash['container-link'])\ + .add_section_piece(section_piece_hash['container-table']) + +#section = Spree::Section.find_by_title 'root-for-mobile' + +#templates = Spree::TemplateTheme.all( ) + + diff --git a/spree_theme/db/seeds/200/23u_post_summary.rb b/spree_theme/db/seeds/200/23u_post_summary.rb new file mode 100644 index 00000000..954e858e --- /dev/null +++ b/spree_theme/db/seeds/200/23u_post_summary.rb @@ -0,0 +1,4 @@ + +post_summary = Spree::Section.create_section(section_piece_hash['container'], {:title=>"post summary",:content_param=>100}, {'inner'=>{'15hidden'=>bool_true}}) + +post_summary.add_section_piece(section_piece_hash['post-summary']) diff --git a/spree_theme/db/seeds/200/23v_font_awesome.rb b/spree_theme/db/seeds/200/23v_font_awesome.rb new file mode 100644 index 00000000..3456e98c --- /dev/null +++ b/spree_theme/db/seeds/200/23v_font_awesome.rb @@ -0,0 +1,10 @@ + +post_summary = Spree::Section.create_section(section_piece_hash['container'], {:title=>"bootstrap glyphicon"}, {'inner'=>{'15hidden'=>bool_true}}) + +post_summary.add_section_piece(section_piece_hash['bootstrap-glyphicon']) + + +post_summary = Spree::Section.create_section(section_piece_hash['container'], {:title=>"font awesome"}, {'inner'=>{'15hidden'=>bool_true}}) + +post_summary.add_section_piece(section_piece_hash['font-awesome']) + diff --git a/spree_theme/db/seeds/200/23w_site_title.rb b/spree_theme/db/seeds/200/23w_site_title.rb new file mode 100644 index 00000000..24e0eb2c --- /dev/null +++ b/spree_theme/db/seeds/200/23w_site_title.rb @@ -0,0 +1,3 @@ +post_summary = Spree::Section.create_section(section_piece_hash['container'], {:title=>"site title"}, {'inner'=>{'15hidden'=>bool_true}}) + +post_summary.add_section_piece(section_piece_hash['site-title']) diff --git a/spree_theme/db/seeds/23x_add_dialog3.rbx b/spree_theme/db/seeds/200/23x_add_dialog3.rbx similarity index 88% rename from spree_theme/db/seeds/23x_add_dialog3.rbx rename to spree_theme/db/seeds/200/23x_add_dialog3.rbx index 506f6b0b..0660188c 100644 --- a/spree_theme/db/seeds/23x_add_dialog3.rbx +++ b/spree_theme/db/seeds/200/23x_add_dialog3.rbx @@ -8,10 +8,10 @@ bool_true = Spree::HtmlAttribute::BOOL_TRUE section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} Spree::Section.where(:title=>'dialog3').each(&:destroy) -dialog = Spree::Section.create_section(section_piece_hash['dialog'].id, {:title=>"dialog3"}) +dialog = Spree::Section.create_section(section_piece_hash['dialog'], {:title=>"dialog3"}) -dialog_container = dialog.add_section_piece(section_piece_hash['container'].id, +dialog_container = dialog.add_section_piece(section_piece_hash['container'], { 'inner'=>{'15hidden'=>bool_true, '15'=>'height:598px', '7'=>'border-style:solid solid solid solid', '8'=>'border-width:1px 1px 1px 1px', '6'=>'border-color:#CCCCCC #CCCCCC #CCCCCC #CCCCCC', '7unset'=>bool_false,'8unset'=>bool_false,'6unset'=>bool_false, @@ -20,7 +20,7 @@ dialog_container = dialog.add_section_piece(section_piece_hash['container'].id, 'block'=>{'21'=>'width:600px', '21unset'=>bool_false,}, 'content_layout'=>{'disabled_ha_ids'=>'85'}}) -dialog_container.add_section_piece(section_piece_hash['dialog-title'].id) -dialog_content = dialog_container.add_section_piece(section_piece_hash['dialog-content'].id) -dialog_content.add_section_piece(section_piece_hash['container-form'].id ).add_section_piece(section_piece_hash['container-table'].id ) +dialog_container.add_section_piece(section_piece_hash['dialog-title']) +dialog_content = dialog_container.add_section_piece(section_piece_hash['dialog-content']) +dialog_content.add_section_piece(section_piece_hash['container-form'] ).add_section_piece(section_piece_hash['container-table'] ) diff --git a/spree_theme/db/seeds/23x_add_param_for_option_slides.rbx b/spree_theme/db/seeds/200/23x_add_param_for_option_slides.rbx similarity index 97% rename from spree_theme/db/seeds/23x_add_param_for_option_slides.rbx rename to spree_theme/db/seeds/200/23x_add_param_for_option_slides.rbx index c74e113f..a46b3b6e 100644 --- a/spree_theme/db/seeds/23x_add_param_for_option_slides.rbx +++ b/spree_theme/db/seeds/200/23x_add_param_for_option_slides.rbx @@ -1,4 +1,3 @@ -include SpreeTheme::SectionPieceParamHelper # add param option type presentation margin, padding, border, background section_piece = Spree::SectionPiece.find 'option-values-in-slide-style' diff --git a/spree_theme/db/seeds/200/23x_support_border_radius.rb b/spree_theme/db/seeds/200/23x_support_border_radius.rb new file mode 100644 index 00000000..01d63968 --- /dev/null +++ b/spree_theme/db/seeds/200/23x_support_border_radius.rb @@ -0,0 +1,16 @@ +# add html_attribute border_radius into block, a +spps = Spree::SectionPieceParam.where(:section_piece_id=>2, :editor_id=>2,:class_name=>'inner').all + +border_radius = Spree::HtmlAttribute.find_by_css_name 'border-radius' +border_color = Spree::HtmlAttribute.find_by_css_name 'border-color' + +if spps.size == 1 + spps.first.insert_html_attribute border_radius, border_color +end + + +spps = Spree::SectionPieceParam.where(:editor_id=>2,:class_name=>'a').all + +if spps.size == 1 + spps.first.insert_html_attribute border_radius, border_color +end diff --git a/spree_theme/db/seeds/200/23y_taxon_summary.rb b/spree_theme/db/seeds/200/23y_taxon_summary.rb new file mode 100644 index 00000000..5c72d86a --- /dev/null +++ b/spree_theme/db/seeds/200/23y_taxon_summary.rb @@ -0,0 +1,4 @@ + +post_summary = Spree::Section.create_section(section_piece_hash['container'], {:title=>"taxon summary",:content_param=>100}, {'inner'=>{'15hidden'=>bool_true}}) + +post_summary.add_section_piece(section_piece_hash['taxon-summary']) diff --git a/spree_theme/db/seeds/200/23z_taxon_more.rb b/spree_theme/db/seeds/200/23z_taxon_more.rb new file mode 100644 index 00000000..d26a126b --- /dev/null +++ b/spree_theme/db/seeds/200/23z_taxon_more.rb @@ -0,0 +1,4 @@ + +post_summary = Spree::Section.create_section(section_piece_hash['container'], {:title=>"taxon more",:content_param=>1}, {'inner'=>{'15hidden'=>bool_true}}) + +post_summary.add_section_piece(section_piece_hash['taxon-more']) diff --git a/spree_theme/db/seeds/200/240_change_to_mobile_root2.rb b/spree_theme/db/seeds/200/240_change_to_mobile_root2.rb new file mode 100644 index 00000000..71b26bee --- /dev/null +++ b/spree_theme/db/seeds/200/240_change_to_mobile_root2.rb @@ -0,0 +1,7 @@ +root2 = Spree::Section.find_by_title('root2 for mobile') + +template2 = Spree::TemplateTheme.for_mobile.last + +if root2 && template2 + template2.page_layout_root.replace_with root2 +end diff --git a/spree_theme/db/seeds/200/241_slider_scrolling.rb b/spree_theme/db/seeds/200/241_slider_scrolling.rb new file mode 100644 index 00000000..a58df388 --- /dev/null +++ b/spree_theme/db/seeds/200/241_slider_scrolling.rb @@ -0,0 +1,6 @@ + +post_summary = Spree::Section.create_section(section_piece_hash['container'], {:title=>"Slider scrolling"}, +{'block'=>{'disabled_ha_ids'=>'111','21unset'=>'0','21'=>'width:600px','15unset'=>'0','15'=>'height:80px'}, + 'inner'=>{'15hidden'=>bool_true}}) + +post_summary.add_section_piece(section_piece_hash['slider-scrolling']) diff --git a/spree_theme/db/seeds/200/242_hover_effect_popup_menu.rb b/spree_theme/db/seeds/200/242_hover_effect_popup_menu.rb new file mode 100644 index 00000000..e4397920 --- /dev/null +++ b/spree_theme/db/seeds/200/242_hover_effect_popup_menu.rb @@ -0,0 +1,6 @@ +#hover_effect_container +Spree::Section.where(:title=>'hover effect popup menu container').each(&:destroy) +container = Spree::Section.create_section( section_piece_hash['container'], {:title=>"hover effect popup menu container", :content_param=> Spree::Section::MouseEffect.popup_menu, :usage=>'container'}, + { 'content_layout'=>{'86'=>bool_true,'86unset'=>bool_false}, 'block'=>{'101'=>"float:left",'101unset'=>bool_false}, 'inner'=>{'15hidden'=>bool_true,'21hidden'=>bool_true}} +) +container.add_section_piece(section_piece_hash['hover-effect-popup-menu-container']) diff --git a/spree_theme/db/seeds/200/243_enable_block_hover.rb b/spree_theme/db/seeds/200/243_enable_block_hover.rb new file mode 100644 index 00000000..71040b24 --- /dev/null +++ b/spree_theme/db/seeds/200/243_enable_block_hover.rb @@ -0,0 +1,11 @@ +section_piece_params = Spree::SectionPieceParam.includes(:section_params).where(class_name: 'block_h') + + +if section_piece_params.any? + section_piece_params.each{|param| + param.update_attributes( class_name: 'hover' ) + param.section_params.each{|section_param| + section_param.update_attributes( is_enabled: true) + } + } +end \ No newline at end of file diff --git a/spree_theme/db/seeds/200/244_add_letter_space.rb b/spree_theme/db/seeds/200/244_add_letter_space.rb new file mode 100644 index 00000000..81e09e4a --- /dev/null +++ b/spree_theme/db/seeds/200/244_add_letter_space.rb @@ -0,0 +1,8 @@ +# add html_attribute letter_space into container +spps = Spree::SectionPieceParam.where(:editor_id=>4,:class_name=>'block').all + +if spps.size == 1 + text_align = Spree::HtmlAttribute.find 53 + letter_space = Spree::HtmlAttribute.find 52 + spps.first.insert_html_attribute letter_space,text_align +end \ No newline at end of file diff --git a/spree_theme/db/seeds/200/245_page_attribute.rb b/spree_theme/db/seeds/200/245_page_attribute.rb new file mode 100644 index 00000000..a48341a0 --- /dev/null +++ b/spree_theme/db/seeds/200/245_page_attribute.rb @@ -0,0 +1,3 @@ +page_attribute = Spree::Section.create_section(section_piece_hash['container'], {:title=>"page attribute"}, {'block'=>{'disabled_ha_ids'=>'111'},'inner'=>{'15hidden'=>bool_true,'21hidden'=>bool_true}}) + +page_attribute.add_section_piece(section_piece_hash['container-link']).add_section_piece(section_piece_hash['page-attribute']) diff --git a/spree_theme/db/seeds/200/246_th_td_width.rb b/spree_theme/db/seeds/200/246_th_td_width.rb new file mode 100644 index 00000000..820795e8 --- /dev/null +++ b/spree_theme/db/seeds/200/246_th_td_width.rb @@ -0,0 +1,6 @@ +section_piece = find_section_piece 'product_properties' + +th = { "editor_id"=>2, "class_name"=>"th", "pclass"=>"css", "param_category_id"=>81, "html_attribute_ids"=>"21"} +td = { "editor_id"=>2, "class_name"=>"td", "pclass"=>"css", "param_category_id"=>82, "html_attribute_ids"=>"21"} +create_section_piece_param( section_piece, th) +create_section_piece_param( section_piece, td) \ No newline at end of file diff --git a/spree_theme/db/seeds/200/247_vertical_align.rb b/spree_theme/db/seeds/200/247_vertical_align.rb new file mode 100644 index 00000000..2706a118 --- /dev/null +++ b/spree_theme/db/seeds/200/247_vertical_align.rb @@ -0,0 +1,10 @@ +# add html_attribute letter_space into container +spps = Spree::SectionPieceParam.where(:editor_id=>4,:class_name=>['td','th']).all + +if spps.size == 2 + spps.each{|spp| + text_align = Spree::HtmlAttribute.find 53 + vertical_align = Spree::HtmlAttribute.find 42 + spp.insert_html_attribute vertical_align,text_align + } +end \ No newline at end of file diff --git a/spree_theme/db/seeds/200/248_unset_changed_event.rb b/spree_theme/db/seeds/200/248_unset_changed_event.rb new file mode 100644 index 00000000..083ed0a1 --- /dev/null +++ b/spree_theme/db/seeds/200/248_unset_changed_event.rb @@ -0,0 +1,4 @@ +# add unset changed event width/height +block_param = Spree::SectionPieceParam.where(:section_piece_id=>2, :class_name=>"block", :editor_id=>2).first +block_param.param_conditions[21]=['pv_changed','unset_changed'] +block_param.save! diff --git a/spree_theme/db/seeds/200/249_add_link_letter_space.rb b/spree_theme/db/seeds/200/249_add_link_letter_space.rb new file mode 100644 index 00000000..ccd07c78 --- /dev/null +++ b/spree_theme/db/seeds/200/249_add_link_letter_space.rb @@ -0,0 +1,8 @@ +# add html_attribute letter_space into container +spps = Spree::SectionPieceParam.where(:editor_id=>4,:class_name=>'s_a').all + +if spps.size == 1 + text_align = Spree::HtmlAttribute.find 53 + letter_space = Spree::HtmlAttribute.find 52 + spps.first.insert_html_attribute letter_space,text_align +end \ No newline at end of file diff --git a/spree_theme/db/seeds/200/24a_clickable_font_awesome.rb b/spree_theme/db/seeds/200/24a_clickable_font_awesome.rb new file mode 100644 index 00000000..80880570 --- /dev/null +++ b/spree_theme/db/seeds/200/24a_clickable_font_awesome.rb @@ -0,0 +1,4 @@ +post_summary = Spree::Section.create_section(section_piece_hash['container'], {:title=>"font awesome plus"}, {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true,'21hidden'=>bool_true}}) + +post_summary.add_section_piece(section_piece_hash['container-link']).add_section_piece(section_piece_hash['font-awesome']) + diff --git a/spree_theme/db/seeds/200/24b_related_post.rb b/spree_theme/db/seeds/200/24b_related_post.rb new file mode 100644 index 00000000..feaaa766 --- /dev/null +++ b/spree_theme/db/seeds/200/24b_related_post.rb @@ -0,0 +1,7 @@ +#next_post_title +page_attribute = Spree::Section.create_section(section_piece_hash['container'], {:title=>"Next post title"}, {'block'=>{'disabled_ha_ids'=>'111'},'inner'=>{'15hidden'=>bool_true,'21hidden'=>bool_true}}) +page_attribute.add_section_piece(section_piece_hash['container-dl']).add_section_piece(section_piece_hash['container-link']).add_section_piece(section_piece_hash['next-post-title']) + +#previous_post_title +page_attribute = Spree::Section.create_section(section_piece_hash['container'], {:title=>"Previous post title"}, {'block'=>{'disabled_ha_ids'=>'111'},'inner'=>{'15hidden'=>bool_true,'21hidden'=>bool_true}}) +page_attribute.add_section_piece(section_piece_hash['container-dl']).add_section_piece(section_piece_hash['container-link']).add_section_piece(section_piece_hash['previous-post-title']) diff --git a/spree_theme/db/seeds/204_fix_height_unset_changed.rb b/spree_theme/db/seeds/204_fix_height_unset_changed.rb deleted file mode 100644 index 37f1e0d8..00000000 --- a/spree_theme/db/seeds/204_fix_height_unset_changed.rb +++ /dev/null @@ -1,14 +0,0 @@ -html_attribute = Spree::HtmlAttribute.find('height') -section_piece = Spree::SectionPiece.find('container') -section_piece_param = section_piece.section_piece_params.find(:first, :conditions=>["editor_id=? and class_name=?", 2, 'block']) - -section_piece_param.add_param_value_event( html_attribute, Spree::ParamValue::EventEnum[:unset_changed] ) - -html_attribute = Spree::HtmlAttribute.find('margin') -section_piece_param = section_piece.section_piece_params.find(:first, :conditions=>["editor_id=? and class_name=?", 2, 'inner']) -section_piece_param.add_param_value_event( html_attribute, Spree::ParamValue::EventEnum[:unset_changed] ) - -html_attribute = Spree::HtmlAttribute.find('padding') -section_piece_param.add_param_value_event( html_attribute, Spree::ParamValue::EventEnum[:unset_changed] ) -html_attribute = Spree::HtmlAttribute.find('border-width') -section_piece_param.add_param_value_event( html_attribute, Spree::ParamValue::EventEnum[:unset_changed] ) diff --git a/spree_theme/db/seeds/206_taxon_description.rb b/spree_theme/db/seeds/206_taxon_description.rb deleted file mode 100644 index 9bd0d587..00000000 --- a/spree_theme/db/seeds/206_taxon_description.rb +++ /dev/null @@ -1,8 +0,0 @@ -bool_false = Spree::HtmlAttribute::BOOL_FALSE -bool_true = Spree::HtmlAttribute::BOOL_TRUE -section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} - -logo = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"Taxon description"}, - {'block'=>{'disabled_ha_ids'=>'111'}, - 'inner'=>{'15hidden'=>bool_true}}) -logo.add_section_piece(section_piece_hash['taxon-description'].id) \ No newline at end of file diff --git a/spree_theme/db/seeds/207_site_form.rb b/spree_theme/db/seeds/207_site_form.rb deleted file mode 100644 index c668f0be..00000000 --- a/spree_theme/db/seeds/207_site_form.rb +++ /dev/null @@ -1,9 +0,0 @@ -bool_false = Spree::HtmlAttribute::BOOL_FALSE -bool_true = Spree::HtmlAttribute::BOOL_TRUE -section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} - -logo = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"Site form"}, - {'block'=>{'disabled_ha_ids'=>'111'}, - 'inner'=>{'15hidden'=>bool_true}}) - -logo.add_section_piece(section_piece_hash['container-form'].id).add_section_piece(section_piece_hash['site-form'].id) \ No newline at end of file diff --git a/spree_theme/db/seeds/208_slider.rb b/spree_theme/db/seeds/208_slider.rb deleted file mode 100644 index 286af5a0..00000000 --- a/spree_theme/db/seeds/208_slider.rb +++ /dev/null @@ -1,19 +0,0 @@ - -include SpreeTheme::SectionPieceParamHelper -bool_false = Spree::HtmlAttribute::BOOL_FALSE -bool_true = Spree::HtmlAttribute::BOOL_TRUE - -#dialog width, height, -section_piece = Spree::SectionPiece.find 'slider' -unless section_piece.section_piece_params.exists?( :class_name=>'title' ) - slides = { "editor_id"=>2, "class_name"=>"slides", "pclass"=>"css", "param_category_id"=>20, "html_attribute_ids"=>"78,79"} - create_section_piece_param( section_piece, slides) -end - -section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} - -logo = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"Slider"}, - {'block'=>{'disabled_ha_ids'=>'111','21unset'=>'0',21=>'width:600px','17unset'=>'0',17=>'height:200px'}, - 'inner'=>{'15hidden'=>bool_true}}) - -logo.add_section_piece(section_piece_hash['slider'].id, {'slides'=>{'78unset'=>'0',78=>'width:600px','79unset'=>'0',79=>'height:200px'}}) \ No newline at end of file diff --git a/spree_theme/db/seeds/209_breadcrumbs.rb b/spree_theme/db/seeds/209_breadcrumbs.rb deleted file mode 100644 index 3dc391bd..00000000 --- a/spree_theme/db/seeds/209_breadcrumbs.rb +++ /dev/null @@ -1,19 +0,0 @@ - -include SpreeTheme::SectionPieceParamHelper -bool_false = Spree::HtmlAttribute::BOOL_FALSE -bool_true = Spree::HtmlAttribute::BOOL_TRUE - -#dialog width, height, -#section_piece = Spree::SectionPiece.find 'slider' -#unless section_piece.section_piece_params.exists?( :class_name=>'title' ) -# slides = { "editor_id"=>2, "class_name"=>"slides", "pclass"=>"css", "param_category_id"=>20, "html_attribute_ids"=>"78,79"} -# create_section_piece_param( section_piece, slides) -#end -Spree::Section.where(:title=>'breadcrumbs').each(&:destroy) - -section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} - -logo = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"Breadcrumbs"}, - {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) - -logo.add_section_piece(section_piece_hash['container-link'].id).add_section_piece(section_piece_hash['breadcrumbs'].id) \ No newline at end of file diff --git a/spree_theme/db/seeds/211_add_param_image_style.rb b/spree_theme/db/seeds/211_add_param_image_style.rb deleted file mode 100644 index e4e00ed3..00000000 --- a/spree_theme/db/seeds/211_add_param_image_style.rb +++ /dev/null @@ -1,8 +0,0 @@ - -include SpreeTheme::SectionPieceParamHelper - -#form button, button:hover -section_piece = Spree::SectionPiece.find 'product-image' - -button = { "editor_id"=>2, "class_name"=>"image_style", "pclass"=>"text", "param_category_id"=>28, "html_attribute_ids"=>"84"} -create_section_piece_param( section_piece, button) \ No newline at end of file diff --git a/spree_theme/db/seeds/215_minicart_with_link.rb b/spree_theme/db/seeds/215_minicart_with_link.rb deleted file mode 100644 index 2b5a7ab3..00000000 --- a/spree_theme/db/seeds/215_minicart_with_link.rb +++ /dev/null @@ -1,9 +0,0 @@ -bool_false = Spree::HtmlAttribute::BOOL_FALSE -bool_true = Spree::HtmlAttribute::BOOL_TRUE -section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} - -minicart = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"Mini cart2"}, - {'block'=>{'disabled_ha_ids'=>'111'}, - #'content_horizontal'=>{'disabled_ha_ids'=>'101'}, - 'inner'=>{'15hidden'=>bool_true}}) -minicart.add_section_piece(section_piece_hash['container-link'].id).add_section_piece(section_piece_hash['minicart'].id) diff --git a/spree_theme/db/seeds/219_create_post_related_section.rb b/spree_theme/db/seeds/219_create_post_related_section.rb deleted file mode 100644 index 18c66c78..00000000 --- a/spree_theme/db/seeds/219_create_post_related_section.rb +++ /dev/null @@ -1,32 +0,0 @@ -include SpreeTheme::SectionPieceParamHelper -bool_false = Spree::HtmlAttribute::BOOL_FALSE -bool_true = Spree::HtmlAttribute::BOOL_TRUE - -#dialog width, height, -#section_piece = Spree::SectionPiece.find 'slider' -#unless section_piece.section_piece_params.exists?( :class_name=>'title' ) -# slides = { "editor_id"=>2, "class_name"=>"slides", "pclass"=>"css", "param_category_id"=>20, "html_attribute_ids"=>"78,79"} -# create_section_piece_param( section_piece, slides) -#end -Spree::Section.where(:title=>'Post title').each(&:destroy) -Spree::Section.where(:title=>'Post time').each(&:destroy) -Spree::Section.where(:title=>'Post author').each(&:destroy) -Spree::Section.where(:title=>'Post body').each(&:destroy) - -section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} - -logo = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"Post title"}, - {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -logo.add_section_piece(section_piece_hash['container-link'].id).add_section_piece(section_piece_hash['post-title'].id) - -logo = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"Post time"}, - {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -logo.add_section_piece(section_piece_hash['post-time'].id) - -logo = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"Post author"}, - {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -logo.add_section_piece(section_piece_hash['post-author'].id) - -logo = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"Post body"}, - {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) -logo.add_section_piece(section_piece_hash['post-body'].id) diff --git a/spree_theme/db/seeds/236_add_option_values_selector2.rb b/spree_theme/db/seeds/236_add_option_values_selector2.rb deleted file mode 100644 index e02c5278..00000000 --- a/spree_theme/db/seeds/236_add_option_values_selector2.rb +++ /dev/null @@ -1,21 +0,0 @@ - -include SpreeTheme::SectionPieceParamHelper -bool_false = Spree::HtmlAttribute::BOOL_FALSE -bool_true = Spree::HtmlAttribute::BOOL_TRUE - -Spree::Section.where(:title=>'Grouped option values selector').each{|section| - section.update_attribute( :is_enabled, false ) -} -Spree::Section.where(:title=>'container with title').each{|section| - section.update_attribute( :is_enabled, false ) -} - - -Spree::Section.where(:title=>'Grouped option values selector2').each(&:destroy) - -section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} - -logo = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"grouped option values selector2"}, - {'block'=>{'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) - -logo.add_section_piece( section_piece_hash['container-header0'].id ).add_section_piece( section_piece_hash['container-link'].id ).add_section_piece(section_piece_hash['grouped-option-values-selector'].id) diff --git a/spree_theme/db/seeds/239_add_th.rb b/spree_theme/db/seeds/239_add_th.rb deleted file mode 100644 index 3aefae7a..00000000 --- a/spree_theme/db/seeds/239_add_th.rb +++ /dev/null @@ -1,16 +0,0 @@ -include SpreeTheme::SectionPieceParamHelper - -section_piece = Spree::SectionPiece.find 'container-table' - -th = {"editor_id"=>2, "class_name"=>"s_th", "pclass"=>"css", "param_category_id"=>81, "html_attribute_ids"=>"32,7,8,6"} -unless Spree::SectionPieceParam.where( th ).any? - create_section_piece_param( section_piece, th) -end - -section_params = Spree::SectionParam.includes(:section_piece_param).where(["spree_section_piece_params.class_name=?",'block_h']) - -if section_params.any? - section_params.each{|param| - param.update_attribute(:is_enabled, false) - } -end diff --git a/spree_theme/db/seeds/23a_add_container_dl.rb b/spree_theme/db/seeds/23a_add_container_dl.rb deleted file mode 100644 index ae73d22a..00000000 --- a/spree_theme/db/seeds/23a_add_container_dl.rb +++ /dev/null @@ -1,5 +0,0 @@ -root2 = Spree::Section.find_by_title('root2') - -container_dl = Spree::SectionPiece.find 'container-dl' - -root2.leaves.last.add_section_piece( container_dl.id ) diff --git a/spree_theme/db/seeds/23c_fix_assigned_resource_ids.rb b/spree_theme/db/seeds/23c_fix_assigned_resource_ids.rb deleted file mode 100644 index 58a43004..00000000 --- a/spree_theme/db/seeds/23c_fix_assigned_resource_ids.rb +++ /dev/null @@ -1,10 +0,0 @@ -Spree::Site.all.each{|site| - site.template_themes.each{|template_theme| - template_theme.assigned_resource_ids.each_pair{|key,val| - # fix :undefined method `classify' for :"spree/taxon":Symbol - #spree_theme/app/models/spree/template_resource.rb:44:in `source_class' - val.stringify_keys! - } - template_theme.save! - } -} diff --git a/spree_theme/db/seeds/23d_fix_template_text_permalink.rb b/spree_theme/db/seeds/23d_fix_template_text_permalink.rb deleted file mode 100644 index 2ea25d28..00000000 --- a/spree_theme/db/seeds/23d_fix_template_text_permalink.rb +++ /dev/null @@ -1,6 +0,0 @@ -Spree::Site.all.each{|site| - site.template_texts.each{|template_text| - template_text.valid? - template_text.save! - } -} \ No newline at end of file diff --git a/spree_theme/db/seeds/23e_add_template_related_buttons.rb b/spree_theme/db/seeds/23e_add_template_related_buttons.rb deleted file mode 100644 index d82375ae..00000000 --- a/spree_theme/db/seeds/23e_add_template_related_buttons.rb +++ /dev/null @@ -1,16 +0,0 @@ -bool_false = Spree::HtmlAttribute::BOOL_FALSE -bool_true = Spree::HtmlAttribute::BOOL_TRUE -sps = Spree::SectionPiece.all -section_piece_hash= sps.inject({}){|h,sp| h[sp.slug] = sp; h} - -#theme preview button -Spree::Section.where(:title=>'preview theme button').each(&:destroy) -theme_related_button = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"preview theme button"}, - {'inner'=>{'15hidden'=>bool_true}}) -theme_related_button.add_section_piece(section_piece_hash['container-link'].id).add_section_piece(section_piece_hash['preview-theme-button'].id) - -#new site with selected theme button -Spree::Section.where(:title=>'install theme with site button').each(&:destroy) -theme_related_button = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"install theme with site button"}, - {'inner'=>{'15hidden'=>bool_true}}) -theme_related_button.add_section_piece(section_piece_hash['container-link'].id).add_section_piece(section_piece_hash['install-theme-with-site-button'].id) diff --git a/spree_theme/db/seeds/23f_change_to_root2.rb b/spree_theme/db/seeds/23f_change_to_root2.rb deleted file mode 100644 index 6356b874..00000000 --- a/spree_theme/db/seeds/23f_change_to_root2.rb +++ /dev/null @@ -1,8 +0,0 @@ -root2 = Spree::Section.find_by_title('root2') - -template2 = Spree::TemplateTheme.find_by_id( 2 ) - -if root2 && template2 - template2.page_layout.replace_with root2 -end - \ No newline at end of file diff --git a/spree_theme/db/seeds/23h_add_container_hover_effect.rb b/spree_theme/db/seeds/23h_add_container_hover_effect.rb deleted file mode 100644 index 21ef4ca9..00000000 --- a/spree_theme/db/seeds/23h_add_container_hover_effect.rb +++ /dev/null @@ -1,11 +0,0 @@ - -bool_false = Spree::HtmlAttribute::BOOL_FALSE -bool_true = Spree::HtmlAttribute::BOOL_TRUE -section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} - -#hover_effect_container -Spree::Section.where(:title=>'hover effect container').each(&:destroy) -fixed_container = Spree::Section.create_section( section_piece_hash['container'].id, {:title=>"hover effect container"}, -{ 'content_layout'=>{'86'=>bool_true,'86unset'=>bool_false}, 'block'=>{'101'=>"float:left",'101unset'=>bool_false}, 'inner'=>{'15hidden'=>bool_true}} -) -fixed_container.add_section_piece(section_piece_hash['container-hover-effect'].id) diff --git a/spree_theme/db/seeds/250/251_product_name_ellipsis.rb b/spree_theme/db/seeds/250/251_product_name_ellipsis.rb new file mode 100644 index 00000000..7a4d4447 --- /dev/null +++ b/spree_theme/db/seeds/250/251_product_name_ellipsis.rb @@ -0,0 +1,3 @@ +product_name = Spree::Section.create_section(section_piece_hash['container'], {:title=>"product name with ellipsis"}, {'block'=>{'disabled_ha_ids'=>'111'},'inner'=>{'15hidden'=>bool_true,'21hidden'=>bool_true}}) + +product_name.add_section_piece(section_piece_hash['container-link']).add_section_piece(section_piece_hash['product-name-with-ellipsis']) diff --git a/spree_theme/db/seeds/250/252_add_section_usage.rb b/spree_theme/db/seeds/250/252_add_section_usage.rb new file mode 100644 index 00000000..0453391f --- /dev/null +++ b/spree_theme/db/seeds/250/252_add_section_usage.rb @@ -0,0 +1,9 @@ +Spree::Section.roots.each{|section| + case section.title + when /Logo/ + section.usage = 'logo' + when /Mini cart/ + section.usage = 'minicart' + end + section.save! +} diff --git a/spree_theme/db/seeds/250/253_container_default_width.rb b/spree_theme/db/seeds/250/253_container_default_width.rb new file mode 100644 index 00000000..1b0cca89 --- /dev/null +++ b/spree_theme/db/seeds/250/253_container_default_width.rb @@ -0,0 +1,13 @@ +# set container width 100% + +section = Spree::Section.includes(section_params: :section_piece_param).where( + spree_section_piece_params: {class_name: 'block',editor_id: 2}, title: 'container' ).first + +if section.section_params.size == 1 + sp = section.section_params.first + sp.default_value['21'] = 'width:100%' + sp.default_value['21unset'] = bool_false + sp.save! +else + raise 'more section params named block' +end diff --git a/spree_theme/db/seeds/250/254_product_image_slider.rb b/spree_theme/db/seeds/250/254_product_image_slider.rb new file mode 100644 index 00000000..4cdce8d4 --- /dev/null +++ b/spree_theme/db/seeds/250/254_product_image_slider.rb @@ -0,0 +1,12 @@ +product_image_slider = Spree::Section.create_section(section_piece_hash['container'], {:title=>"slider for product images"}, + {'block'=>{'disabled_ha_ids'=>'111','21unset'=>'0','21'=>'width:600px','15unset'=>'0','15'=>'height:200px'}, + 'inner'=>{'15unset'=>'0','15'=>'height:200px','15hidden'=>bool_true,'21hidden'=>bool_true}}) + +product_image_slider.add_section_piece(section_piece_hash['slider-core']).add_section_piece(section_piece_hash['slider-data-product-images']) + + +taxon_slider = Spree::Section.create_section(section_piece_hash['container'], {:title=>"Slider for taxonomy images "}, + {'block'=>{'disabled_ha_ids'=>'111','21unset'=>'0','21'=>'width:600px','15unset'=>'0','15'=>'height:200px'}, + 'inner'=>{'15unset'=>'0','15'=>'height:200px','15hidden'=>bool_true,'21hidden'=>bool_true}}) + +taxon_slider.add_section_piece(section_piece_hash['slider-core']).add_section_piece(section_piece_hash['slider-data-taxons']) diff --git a/spree_theme/db/seeds/250/255_rename_login_form.rb b/spree_theme/db/seeds/250/255_rename_login_form.rb new file mode 100644 index 00000000..b14b5cc8 --- /dev/null +++ b/spree_theme/db/seeds/250/255_rename_login_form.rb @@ -0,0 +1,5 @@ +Spree::Section.where(title:'login form').each{|section| + section.title = 'sign in form' + section.slug = 'sign-in-form' + section.save! +} diff --git a/spree_theme/db/seeds/250/256_add_sider.rb b/spree_theme/db/seeds/250/256_add_sider.rb new file mode 100644 index 00000000..eb0ae566 --- /dev/null +++ b/spree_theme/db/seeds/250/256_add_sider.rb @@ -0,0 +1,13 @@ +# this section is added careless, it is exist in fact. +#Spree::Section.where(:title=>'fixed container stupid').each(&:destroy) +fixed_container = Spree::Section.create_section( section_piece_hash['container'], {:title=>"fixed container useless"}, +{ 'content_layout'=>{'86'=>bool_true,'86unset'=>bool_false}, 'block'=>{'15'=>"height:100px",'15unset'=>bool_false,'101'=>"float:left",'101unset'=>bool_false}, 'inner'=>{'15hidden'=>bool_true}} +) +fixed_container.add_section_piece(section_piece_hash['container-fixed']) + + +# clickable sider +container = Spree::Section.create_section( section_piece_hash['container'], {:title=>"click effect sider container", :usage =>'container', :content_param=> Spree::Section::MouseEffect.sider+1 }, + { 'content_layout'=>{'86'=>bool_true,'86unset'=>bool_false}, 'block'=>{'101'=>"float:left",'101unset'=>bool_false}, 'inner'=>{'15hidden'=>bool_true,'21hidden'=>bool_true}} +) +container.add_section_piece(section_piece_hash['click-effect-sider']) diff --git a/spree_theme/db/seeds/250/257_line_height.rb b/spree_theme/db/seeds/250/257_line_height.rb new file mode 100644 index 00000000..03dd0aa5 --- /dev/null +++ b/spree_theme/db/seeds/250/257_line_height.rb @@ -0,0 +1,10 @@ +# add html_attribute margin into a +spps = Spree::SectionPieceParam.where(:editor_id=>4,:class_name=>'block').all + +if spps.size == 1 + letter_space = Spree::HtmlAttribute.find 52 + line_height = Spree::HtmlAttribute.find 16 #height + spps.first.insert_html_attribute line_height, letter_space +else + raise 'more than one section piece param named block and editor is 4' +end diff --git a/spree_theme/db/seeds/250/258_minicart_badge.rb b/spree_theme/db/seeds/250/258_minicart_badge.rb new file mode 100644 index 00000000..38f60f64 --- /dev/null +++ b/spree_theme/db/seeds/250/258_minicart_badge.rb @@ -0,0 +1,12 @@ +product_name = Spree::Section.create_section(section_piece_hash['container'], {:title=>"minicart badge"}, + {'block'=>{'disabled_ha_ids'=>'111'},'inner'=>{'15hidden'=>bool_true,'21hidden'=>bool_true, + '32unset'=> bool_false, '32'=>'padding:3px 7px 3px 7px', + '64unset'=> bool_false, '64'=>'border-radius:10px 10px 10px 10px', + '2unset'=> bool_false, '2'=>'background-color:#777777', + '16unset'=>bool_false,'16'=>'line-height:1em' + }}) + +product_name.add_section_piece(section_piece_hash['container-link'], + {'s_a'=>{'54unset'=>bool_false,'54'=>'text-decoration:none', + '49unset'=>bool_false,'49'=>'color:white' + }}).add_section_piece(section_piece_hash['minicart-badge']) diff --git a/spree_theme/db/seeds/250/259_mobile_root_params.rb b/spree_theme/db/seeds/250/259_mobile_root_params.rb new file mode 100644 index 00000000..5e5dd703 --- /dev/null +++ b/spree_theme/db/seeds/250/259_mobile_root_params.rb @@ -0,0 +1,7 @@ +section_piece = find_section_piece('root-for-mobile') + +inner = { "editor_id"=>2, "class_name"=>"inner", "pclass"=>"css", "param_category_id"=>2, "html_attribute_ids"=>"32,7,8,6"} +create_section_piece_param( section_piece, inner) + +inner = { "editor_id"=>3, "class_name"=>"inner", "pclass"=>"css", "param_category_id"=>2, "html_attribute_ids"=>"2,3,4,5"} +create_section_piece_param( section_piece, inner) diff --git a/spree_theme/db/seeds/250/25b_unset_changed_event.rb b/spree_theme/db/seeds/250/25b_unset_changed_event.rb new file mode 100644 index 00000000..0f1ee1e5 --- /dev/null +++ b/spree_theme/db/seeds/250/25b_unset_changed_event.rb @@ -0,0 +1,4 @@ +# add unset changed event width/height +block_param = Spree::SectionPieceParam.where(:section_piece_id=>2, :class_name=>"block", :editor_id=>2).first +block_param.param_conditions[15]=['pv_changed','unset_changed'] +block_param.save! diff --git a/spree_theme/db/seeds/250/25c_cart_items.rb b/spree_theme/db/seeds/250/25c_cart_items.rb new file mode 100644 index 00000000..6d58288d --- /dev/null +++ b/spree_theme/db/seeds/250/25c_cart_items.rb @@ -0,0 +1,5 @@ +#cart items for mobile +#Spree::Section.where(:title=>'cart items for mobile').each(&:destroy) +cart_items_for_mobile = Spree::Section.create_section(section_piece_hash['container'], {:title=>"cart items for mobile"}, + { 'content_layout'=>{'86'=>bool_true,'86unset'=>bool_false}, 'block'=>{'101'=>"float:left",'101unset'=>bool_false}, 'inner'=>{'15hidden'=>bool_true,'21hidden'=>bool_true}}) +cart_items_for_mobile.add_section_piece(section_piece_hash['cart-items-for-mobile']) diff --git a/spree_theme/db/seeds/250/25d_rename_cart.rb b/spree_theme/db/seeds/250/25d_rename_cart.rb new file mode 100644 index 00000000..bf4dc1a7 --- /dev/null +++ b/spree_theme/db/seeds/250/25d_rename_cart.rb @@ -0,0 +1,10 @@ +Spree::Section.where(title:'cart').each{|section| + section.title = 'cart form' + section.slug = 'cart-form' + section.save! +} +Spree::Section.where(title:'checkout').each{|section| + section.title = 'checkout form' + section.slug = 'checkout-form' + section.save! +} diff --git a/spree_theme/db/seeds/250/25e_sider_params.rb b/spree_theme/db/seeds/250/25e_sider_params.rb new file mode 100644 index 00000000..7f92ccc7 --- /dev/null +++ b/spree_theme/db/seeds/250/25e_sider_params.rb @@ -0,0 +1,7 @@ +section_piece = find_section_piece('click-effect-sider') + +dt = { "editor_id"=>2, "class_name"=>"sidr", "pclass"=>"css", "param_category_id"=>9, "html_attribute_ids"=>"21,15,32"} +create_section_piece_param( section_piece, dt) + +dt = { "editor_id"=>3, "class_name"=>"sidr", "pclass"=>"css", "param_category_id"=>9, "html_attribute_ids"=>"2,3,4,5"} +create_section_piece_param( section_piece, dt) diff --git a/spree_theme/db/seeds/250/25g_fix_taxon_depth.rb b/spree_theme/db/seeds/250/25g_fix_taxon_depth.rb new file mode 100644 index 00000000..5107616f --- /dev/null +++ b/spree_theme/db/seeds/250/25g_fix_taxon_depth.rb @@ -0,0 +1,4 @@ +SpreeTheme.site_class.all.each{|site| + SpreeTheme.site_class.current = site + Spree::Taxon.where( depth: 3 ).each { |t| t.save } +} diff --git a/spree_theme/db/seeds/250/25h_fix_slug.rb b/spree_theme/db/seeds/250/25h_fix_slug.rb new file mode 100644 index 00000000..7c8174fd --- /dev/null +++ b/spree_theme/db/seeds/250/25h_fix_slug.rb @@ -0,0 +1,16 @@ +#ActiveRecord::RecordInvalid: Validation failed: Slug has already been taken +Spree::Site.all.each{|site| + Spree::Site.current = site + site.products.each{|product| + unless product.valid? + puts "#{product.id} #{product.errors.messages}" + product.price = 1 if product.errors.get :price + product.sku = "sku#{rand(10)}" if product.errors.get :sku + product.slug = nil if product.errors.get :slug + #unless product.valid? + # puts "#{product.id}, invalid, #{product.errors.messages}" + #end + product.save! + end + } +} diff --git a/spree_theme/db/seeds/250/25i_fix_store_id_for_orders.rb b/spree_theme/db/seeds/250/25i_fix_store_id_for_orders.rb new file mode 100644 index 00000000..9267d122 --- /dev/null +++ b/spree_theme/db/seeds/250/25i_fix_store_id_for_orders.rb @@ -0,0 +1,3 @@ +Spree::Order.unscoped.where(store_id: nil).each{|order| + order.update_column :store_id, Spree::Store.unscoped.where(site_id: order.site_id).first.id +} diff --git a/spree_theme/db/seeds/250/25j_fix_site_demo.rb b/spree_theme/db/seeds/250/25j_fix_site_demo.rb new file mode 100644 index 00000000..a03c86e0 --- /dev/null +++ b/spree_theme/db/seeds/250/25j_fix_site_demo.rb @@ -0,0 +1,8 @@ +Spree::Site.where( short_name: 'demo').each_with_index{|site, i| + if i>0 + Spree::Site.with_site(site) do + site.update_attribute :short_name, "demo#{site.id}" + site.stores.first.update_attribute :code, site.short_name + end + end +} diff --git a/spree_theme/db/seeds/250/25k_fix_store_theme.rb b/spree_theme/db/seeds/250/25k_fix_store_theme.rb new file mode 100644 index 00000000..3c6ddc08 --- /dev/null +++ b/spree_theme/db/seeds/250/25k_fix_store_theme.rb @@ -0,0 +1,9 @@ +Spree::Store.all.each{|store| + if store.theme_id == 0 + if store.site.theme_id>0 + store.update_attribute :theme_id, store.site.theme_id + else + puts "store #{store.name} have no theme" + end + end +} diff --git a/spree_theme/db/seeds/250/25l_post_title_with_ellipsis.rb b/spree_theme/db/seeds/250/25l_post_title_with_ellipsis.rb new file mode 100644 index 00000000..5ae07e3e --- /dev/null +++ b/spree_theme/db/seeds/250/25l_post_title_with_ellipsis.rb @@ -0,0 +1,3 @@ +product_name = Spree::Section.create_section(section_piece_hash['container'], {:title=>"post title with ellipsis"}, {'block'=>{'21'=>'width:100px','21unset'=>bool_false, 'disabled_ha_ids'=>'111'},'inner'=>{'15hidden'=>bool_true,'21hidden'=>bool_true}}) + +product_name.add_section_piece(section_piece_hash['container-link']).add_section_piece(section_piece_hash['post-title-with-ellipsis']) diff --git a/spree_theme/db/seeds/250/25m_add_link_border.rb b/spree_theme/db/seeds/250/25m_add_link_border.rb new file mode 100644 index 00000000..70e17567 --- /dev/null +++ b/spree_theme/db/seeds/250/25m_add_link_border.rb @@ -0,0 +1,9 @@ +section_piece = Spree::SectionPiece.where( slug: 'container-link' ).first + +a_h = { "editor_id"=>2, "class_name"=>"s_a_h", "pclass"=>"css", "param_category_id"=>12, "html_attribute_ids"=>"7,8,6"} +s_a_sel = { "editor_id"=>2, "class_name"=>"s_a_sel", "pclass"=>"css", "param_category_id"=>13, "html_attribute_ids"=>"7,8,6"} +s_a_una = { "editor_id"=>2, "class_name"=>"s_a_una", "pclass"=>"css", "param_category_id"=>15, "html_attribute_ids"=>"7,8,6"} + +create_section_piece_param( section_piece, a_h) +create_section_piece_param( section_piece, s_a_sel) +create_section_piece_param( section_piece, s_a_una) diff --git a/spree_theme/db/seeds/250/25n_post_files.rb b/spree_theme/db/seeds/250/25n_post_files.rb new file mode 100644 index 00000000..69717efd --- /dev/null +++ b/spree_theme/db/seeds/250/25n_post_files.rb @@ -0,0 +1,3 @@ +post_files = Spree::Section.create_section(section_piece_hash['container'], {:title=>"post files"}, {'block'=>{'21'=>'width:100px','21unset'=>bool_false, 'disabled_ha_ids'=>'111'},'inner'=>{'15hidden'=>bool_true,'21hidden'=>bool_true}}) + +post_files.add_section_piece(section_piece_hash['container-link']).add_section_piece(section_piece_hash['post-files']) diff --git a/spree_theme/db/seeds/250/25o_border_radius.rb b/spree_theme/db/seeds/250/25o_border_radius.rb new file mode 100644 index 00000000..bc4ef76c --- /dev/null +++ b/spree_theme/db/seeds/250/25o_border_radius.rb @@ -0,0 +1,12 @@ +# add html_attribute border_radius into block, a + +border_color = Spree::HtmlAttribute.find_by_css_name 'border-color' +border_radius = Spree::HtmlAttribute.find_by_css_name 'border-radius' + +spps = Spree::SectionPieceParam.where(:editor_id=>2,:class_name=>['s_a','s_button','s_input']) + +if spps.size == 3 + spps.each{|spp| + spp.insert_html_attribute border_radius, border_color + } +end diff --git a/spree_theme/db/seeds/250/25q_background_size.rb b/spree_theme/db/seeds/250/25q_background_size.rb new file mode 100644 index 00000000..fb03ab37 --- /dev/null +++ b/spree_theme/db/seeds/250/25q_background_size.rb @@ -0,0 +1,11 @@ +# add html_attribute border_radius into block, a + +background_size = Spree::HtmlAttribute.find_by_css_name 'background-size' + +spps = Spree::SectionPieceParam.where(:editor_id=>3,:class_name=>'inner') +#container, bootstrap_container, root_for_mobile +if spps.size == 3 + spps.each{|spp| + spp.insert_html_attribute background_size + } +end diff --git a/spree_theme/db/seeds/250/25r_container_background.rb b/spree_theme/db/seeds/250/25r_container_background.rb new file mode 100644 index 00000000..8507adb7 --- /dev/null +++ b/spree_theme/db/seeds/250/25r_container_background.rb @@ -0,0 +1,12 @@ +section_piece = find_section_piece('container-background') + + +inner = { "editor_id"=>3, "class_name"=>"inner1", "pclass"=>"css", "param_category_id"=>1051, "html_attribute_ids"=>"2,3,4,5,117"} +create_section_piece_param( section_piece, inner) +inner = { "editor_id"=>3, "class_name"=>"inner2", "pclass"=>"css", "param_category_id"=>1052, "html_attribute_ids"=>"2,3,4,5,117"} +create_section_piece_param( section_piece, inner) + + +container_background = Spree::Section.create_section(section_piece_hash['container'], {:title=>"container background"}, {'block'=>{'21'=>'width:100px','21unset'=>bool_false, 'disabled_ha_ids'=>'111'},'inner'=>{'15hidden'=>bool_true,'21hidden'=>bool_true}}) + +container_background.add_section_piece(section_piece_hash['container-background']) diff --git a/spree_theme/db/seeds/250/25s_rename_dialog_content_params.rb b/spree_theme/db/seeds/250/25s_rename_dialog_content_params.rb new file mode 100644 index 00000000..3e661fab --- /dev/null +++ b/spree_theme/db/seeds/250/25s_rename_dialog_content_params.rb @@ -0,0 +1,5 @@ +dialog_content = Spree::SectionPiece.where( title: "dialog content").first +dialog_content.section_piece_params.where(class_name: 'inner').update_all( class_name: 'dialog_content') + +dialog_title = Spree::SectionPiece.where( title: "dialog title").first +dialog_title.section_piece_params.where(class_name: 'title').update_all( class_name: 'dialog_title') diff --git a/spree_theme/db/seeds/250/25t_dialog3.rb b/spree_theme/db/seeds/250/25t_dialog3.rb new file mode 100644 index 00000000..645c96be --- /dev/null +++ b/spree_theme/db/seeds/250/25t_dialog3.rb @@ -0,0 +1,13 @@ + + + +dialog = Spree::Section.create_section(section_piece_hash['container'], {:title=>"dialog3", :usage=>"dialog"}, +{ 'inner'=>{'15hidden'=>bool_true, '15'=>'height:598px', '2'=>'background-color:#FFFFFF','2unset'=>bool_false, + '7'=>'border-style:solid solid solid solid', '8'=>'border-width:1px 1px 1px 1px', '6'=>'border-color:#CCCCCC #CCCCCC #CCCCCC #CCCCCC', + '7unset'=>bool_false,'8unset'=>bool_false,'6unset'=>bool_false + }, + 'block'=>{'21'=>'width:600px','disabled_ha_ids'=>'111','21unset'=>bool_false} + }) +dialog_container = dialog.add_section_piece(section_piece_hash['container-dialog']).add_section_piece(section_piece_hash['container-form']) +dialog_container.add_section_piece(section_piece_hash['dialog-title'], { 'dialog_title'=>{'2'=>'background-color:#000000','2unset'=>bool_false,'49'=>'color:#FFFFFF','49unset'=>bool_false } } ) +dialog_container.add_section_piece(section_piece_hash['dialog-content'], {'dialog_content'=>{'32'=>'padding:10px 30px 20px 30px','32unset'=>bool_false }} ) diff --git a/spree_theme/db/seeds/250/25u_dialog_overlay.rb b/spree_theme/db/seeds/250/25u_dialog_overlay.rb new file mode 100644 index 00000000..3fb25e52 --- /dev/null +++ b/spree_theme/db/seeds/250/25u_dialog_overlay.rb @@ -0,0 +1,14 @@ +# section param for dialog_overlay and dialog_close +section_piece = Spree::SectionPiece.where( slug: 'dialog-title' ).first + +dialog_close = { "editor_id"=>2, "class_name"=>"dialog_close", "pclass"=>"css", "param_category_id"=>501, "html_attribute_ids"=>"31,32,7,8,6"} +create_section_piece_param( section_piece, dialog_close) + +dialog_close = { "editor_id"=>4, "class_name"=>"dialog_close", "pclass"=>"css", "param_category_id"=>501, "html_attribute_ids"=>"24,27,49,53,54"} +create_section_piece_param( section_piece, dialog_close) + +section_piece = Spree::SectionPiece.where( slug: 'container-dialog' ).first + +dialog_overlay = { "editor_id"=>3, "class_name"=>"dialog_overlay", "pclass"=>"css", "param_category_id"=>502, "html_attribute_ids"=>"2,3,4,5,116"} + +create_section_piece_param( section_piece, dialog_overlay) diff --git a/spree_theme/db/seeds/250/25v_header_params.rb b/spree_theme/db/seeds/250/25v_header_params.rb new file mode 100644 index 00000000..432a22fb --- /dev/null +++ b/spree_theme/db/seeds/250/25v_header_params.rb @@ -0,0 +1,14 @@ +# add html_attribute border_radius into block, a + +color = Spree::HtmlAttribute.find_by_css_name 'color' +line_height = Spree::HtmlAttribute.find_by_css_name 'line-height' +letter_spacing = Spree::HtmlAttribute.find_by_css_name 'letter-spacing' + +spps = Spree::SectionPieceParam.where(:editor_id=>4,:class_name=>'s_header3') + +if spps.size == 1 + spps.each{|spp| + spp.insert_html_attribute line_height,color + spp.insert_html_attribute letter_spacing + } +end diff --git a/spree_theme/db/seeds/250/25x_bootstrap_carousel.rb b/spree_theme/db/seeds/250/25x_bootstrap_carousel.rb new file mode 100644 index 00000000..350c20d0 --- /dev/null +++ b/spree_theme/db/seeds/250/25x_bootstrap_carousel.rb @@ -0,0 +1,3 @@ + +carousel = Spree::Section.create_section(section_piece_hash['container'], {:title=>"product image carousel"}, {'block'=>{'disabled_ha_ids'=>'111'},'inner'=>{'15hidden'=>bool_true,'21hidden'=>bool_true}}) +carousel.add_section_piece(section_piece_hash['bootstrap-carousel']) diff --git a/spree_theme/db/seeds/250/25x_hmenu_with_vertical_submenu.rb b/spree_theme/db/seeds/250/25x_hmenu_with_vertical_submenu.rb new file mode 100644 index 00000000..7fc3be49 --- /dev/null +++ b/spree_theme/db/seeds/250/25x_hmenu_with_vertical_submenu.rb @@ -0,0 +1,5 @@ +hmenu = Spree::Section.create_section(section_piece_hash['container'], {:title=>"hmenu with vertical submenu", :usage =>'container', :content_param=> Spree::Section::MouseEffect.multi_level_menu }, + { 'content_layout'=>{'86'=>bool_true,'86unset'=>bool_false}, 'block'=>{'101'=>"float:left",'101unset'=>bool_false}, 'inner'=>{'15hidden'=>bool_true,'21hidden'=>bool_true}}) + + +hmenu.add_section_piece(section_piece_hash['container-hmenu-with-vertical-submenu']).add_section_piece(section_piece_hash['hmenu']).add_section_piece(section_piece_hash['menuitem']) diff --git a/spree_theme/db/seeds/250/25x_one_click_trial.rb b/spree_theme/db/seeds/250/25x_one_click_trial.rb new file mode 100644 index 00000000..605689f6 --- /dev/null +++ b/spree_theme/db/seeds/250/25x_one_click_trial.rb @@ -0,0 +1,5 @@ +container = Spree::Section.create_section(section_piece_hash['container'], {:title=>"one click trial"}, {'block'=>{'21'=>'width:100px','21unset'=>bool_false, 'disabled_ha_ids'=>'111'},'inner'=>{'15hidden'=>bool_true,'21hidden'=>bool_true}}) + +container.add_section_piece(section_piece_hash['container-form'])\ + .add_section_piece(section_piece_hash['container-link'])\ + .add_section_piece(section_piece_hash['one-click-trial']) diff --git a/spree_theme/db/seeds/seed_migration b/spree_theme/db/seeds/seed_migration index fddff02b..cc541c02 100644 --- a/spree_theme/db/seeds/seed_migration +++ b/spree_theme/db/seeds/seed_migration @@ -1,7 +1,9 @@ -# last updated seed for each env +# last updated seed for each env staging: - version: 23f + version: 25e +aliyun_staging: + version: 25r local_staging: - version: 220 + version: 23z development: - version: 230 \ No newline at end of file + version: 230 diff --git a/spree_theme/db/seeds/spree_section_pieces.yml b/spree_theme/db/seeds/spree_section_pieces.yml index 2e8f8bcd..517c8d4e 100644 --- a/spree_theme/db/seeds/spree_section_pieces.yml +++ b/spree_theme/db/seeds/spree_section_pieces.yml @@ -1,54 +1,57 @@ -# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html -# id is required, or reload_section_piece would not work, sections is using section_piece_id. +# id is required, or reload_section_piece would not work, sections is using section_piece_id. root: id: 1 is_selectable: true is_container: true is_root: true html: |- - - - + + + <%= @current_page.title%> + - <%== meta_data_tags %> - - <%# it is in main app/assets/ include spree_theme, spree_china_checkout, store/product, store/cart, store/checkout ... %> - <%= javascript_include_tag 'spree/frontend/all' %> - <% if @current_page.is_preview %> - <%= stylesheet_link_tag 'store/spree_theme', :media => 'screen' %> - <% else%> - <%= stylesheet_link_tag 'store/spree_theme.client', :media => 'screen' %> - - <% end %> - <%= csrf_meta_tags %> - <%= render "spree/shared/analytics" %> - - - <% if @current_page.site_design? %> - <%= render "spree/shared/theme_selection_for_nondesigner" %> + <%= favicon_link_tag 'favicon.ico' %> + <%# it is in main app/assets/ include spree_theme, spree_china_checkout, store/product, store/cart, store/checkout ... %> + <%= javascript_include_tag 'spree/frontend/all', "data-turbolinks-track" => true %> + <%= stylesheet_link_tag 'store/spree_theme.desktop', "data-turbolinks-track" => true %> + <% if @current_page.is_preview %> + <%= stylesheet_link_tag 'store/spree_theme' %> + <% else%> + + <% end %> + <%= csrf_meta_tags %> + <%= render "spree/shared/sync_analytics" %> + + + <% if @current_page.site_design? && !@current_page.is_preview %> + <%= render "spree/shared/theme_selection_for_nondesigner" %> <% end %> <%= flash_messages %> -
      -
      +
      +
      ~~content~~
      <%= javascript_tag do -%> - g_is_preview = <%= @current_page.is_preview.to_json %> + g_client_info = <%== @client_info.to_json %> <% end -%> - + <% if @current_page.is_preview %> + <%= render 'layout_editor_panel' %> + <% end %> + <%= render "spree/shared/analytics" %> + css: | body - { font-size: 100%; - /*line-height: 1em;*/ + { /*font-size: 100%; #use font-size define in bootstrap + line-height: 1em;*/ margin: 0; padding: 0; <%= @template.css :body %> - } + } body, caption, th, td, input, textarea, select, option, legend, fieldset { <% if @template.css(:font_family)== 'serif' %> @@ -56,101 +59,76 @@ root: <% else %> font-family: Tahoma, Verdana, Arial, Helvetica, STXihei, "Microsoft YaHei", SimHei, sans-serif; <% end %> - } + } /*ol,ul { list-style: none; }*/ - /* **** Defaults **** */ /** headings **/ + /* **** Defaults **** */ /** headings **/ h1 { font-size: 2em; line-height: 1.3em; margin-top: 0; margin-bottom: 0.5em; /* 0.5em is equavalent to 1em in the page's base font. A margin specified in ems is relative to the element's font-size, not to the pages' base font size. */ - } + } h2 { font-size: 1.5em; line-height: 1.3em; margin-top: 0.667em; /* Equivalent to 1em in the page's base font: 1 / 1.5 = 0.667em */ margin-bottom: 0.667em; - } + } h3 { font-size: 1.3em; line-height: 1.3em; margin-top: 0.769em; /* Equivalent to 1em in the page's base font: 1 / 1.3 = 0.769 */ margin-bottom: 0.769em; - } + } table { border-collapse:collapse; border-spacing:0 } th, thead th, tbody th { text-align: left; font-style:normal; - font-weight:normal; + font-weight:normal; vertical-align: middle; } img { border: 0; - /* remove extra height, + /* remove extra height, * http://stackoverflow.com/questions/6483994/css-font-size-img-tag */ - vertical-align:middle; + vertical-align:middle; } table { - width:100%; + width:100%; } + /* all global setting apply to page_wrapper, simplemodal append to it. */ /* set padding margin to label */ - #page form[id] label { + #page-wrapper form[id] label { display: inline-block; } - /* - * product description should escape css reset - * checkout_form, login_form, site_form... + /* + * product description should escape css reset + * checkout_form, login_form, site_form... */ - #page form[id] p { + #page-wrapper form[id] p { margin: 0; padding: 0; } - - <% if @template.css :use_bbtl %> - div#bbtl - { position:absolute; - top:0; - left:0; - <%= @template.css :bbtl %> + /* keep input width same with container, exclude radio,checkbox */ + /* us .selector, descendants could override it by .selector input */ + form.fullwidth input[type="text"], form.fullwidth input[type="password"], form.fullwidth input[type="phone"], form.fullwidth input[type="email"], form.fullwidth input[type="number"], form.fullwidth input[type="url"], textarea.fullwidth{ + box-sizing: border-box; + width: 100%; } - <% end %> - <% if @template.css :use_bbtr %> - div#bbtr - { position:absolute; - top:0; - right:0; - <%= @template.css :bbtr %> - } - <% end %> - <% if @template.css :use_pbbl %> - div#pbbl - { position:absolute; - bottom:0; - left:0; - <%= @template.css :pbbl %> - } - <% end %> - <% if @template.css :use_pbbr %> - div#pbbr - { position:absolute; - bottom:0; - right:0; - <%= @template.css :pbbr %> - } - <% end %> + #page { - <% if @template.css(:font_size)== 10%> + <% if 'font_size' == 'font_size:10px' %> font-size: 0.625em; /* 16px x .625 = 10px */ line-height: 1.4em; /* 10px x 1.4 = 14px */ - <% elsif @template.css(:font_size)== 12%> + <% elsif 'font_size' == 'font_size:12px' %> font-size: 0.75em; /* 16px x .75 = 12px */ line-height: 1.333em; /* 12px x 1.333 = 16px */ - <% elsif @template.css(:font_size)== 14%> + <% elsif 'font_size' == 'font_size:14px' %> font-size: 0.875em; /* 16px x .875 = 14px */ line-height: 1.286; /* 14px x 1.286 = 18px */ - <% elsif @template.css(:font_size)== 16%> + <% else %> font-size: 1em; /* 16px x 1 = 16px */ line-height: 1.13; /* 16px x 1.13 = 18px */ <% end %> @@ -162,10 +140,10 @@ root: } #page-inner { position:relative; - <% @template.css :inner %> + <%= @template.css :inner %> } - .<%=@template.current_piece.child_selector%> - { + .<%=@template.current_piece.child_selector%> + { <% if @template.css(:content_layout).to_i > 0 %> clear:none; <% else %> @@ -183,25 +161,12 @@ root: .clear-block { display: block; } - .tlc, .trc, .blc, .brc - { background-repeat: no-repeat; - width:100%; - height:100%; - } - .tb, .bb - { background-repeat: repeat-x; - width:100%; - height:100%; - } - .lb, .rb - { width:100%; - height:100%; - } + /* common setting for subsections, they are in container-link, container-form, container-table now. - * a + * a * a active * a visited - * a hover + * a hover * a select * a select hover * table border, margin, bg, font(font-size, font-weight, text-decoration, color, text-align ) @@ -214,8 +179,8 @@ root: * lable margin, border, padding, bg, font * error margin, border, padding, bg, font * input margin, border, padding, bg, font - */ - + */ + title: root slug: root js: "" @@ -225,33 +190,31 @@ container: is_selectable: "1" is_container: "1" html: |- - -
      -
      - ~~content~~ - <% if @template.current_piece.current_data_source.present? - if @var_collection.present? && @var_collection.try( :has_pages? ) %> - <%= paginate @var_collection %> - <% #set it to nil, or render pagination more times - @var_collection = nil - end - end %> -
      -
      +
      +
      ~~content~~
      +
      css: |- /* width,height, skinnables */ - .<%=g_piece_selector%> - { float:left; overflow:hidden; padding:0; margin:0 auto; + .<%=@template.section_selector%> + { float:left; padding:0; margin:0 auto; + overflow:hidden; + /* overflow is required for centered block float:none, margin: auto. + * http://yuiblog.com/blog/2010/05/19/css-101-block-formatting-contexts/ + */ position:relative; <%=@template.css(:block)%> } /* background, margin, border, padding */ - .<%=g_piece_selector%> .<%=g_piece_selector%>_inner + .<%=@template.section_selector%> > .inner { overflow: hidden;/* keep border visible*/ - min-height:1px;min-width:1px; /* it is required as placeholder */ + /* min-height:1px;min-width:1px; it is required as placeholder,cause problem when image width 100% */ <%=@template.css(:inner)%> } - .<%=@template.current_piece.child_selector%> + .<%=@template.section_selector%> > .inner.hover + { + <%=@template.css(:hover)%> + } + .<%=@template.current_piece.child_selector%> { <%if @template.css(:content_layout).present? %> <%= @template.css(:content_layout) %> @@ -259,47 +222,43 @@ container: clear:both; <%end%> } - /* #copy from spree_backend/assets/stylesheets/admin/components/pagination */ - .<%=g_piece_selector%> .pagination { float:left; clear:both; } /* add clear */ - .<%=g_piece_selector%> .pagination .page{ display: inline-block; text-align: center; - <%=@template.css(:pagination_page)%> - } - .<%=g_piece_selector%> .pagination .current{ - <%=@template.css(:pagination_current)%> - } - /* !unused, css for first/last child, feature center content */ - <% if @template.current_piece.current_data_source.present? %> - .<%=@template.current_piece.child_selector%>:first-child{ - } - .<%=@template.current_piece.child_selector%>:last-child{ - } - <% end %> - + <% if @template.current_piece.per_page >0 %> + /* #copy from spree_backend/assets/stylesheets/admin/components/pagination */ + .<%=@template.section_selector%> .pagination { float:left; clear:both; } /* add clear */ + .<%=@template.section_selector%> .pagination .page{ display: inline-block; text-align: center; + <%=@template.css(:pagination_page)%> + } + .<%=@template.section_selector%> .pagination .current{ + <%=@template.css(:pagination_current)%> + } + <% end %> + <% if @template.current_piece.column_count >0 %> + /* css for last column in row, feature center content, for mobile column, no inner div */ + .<%=@template.current_piece.child_selector%>.data_last, .<%=@template.current_piece.child_selector%>.data_last>div{ margin-right:0; padding-right:0; border-right:0; } + <% end %> title: container slug: container - + hmenu: id: 3 is_selectable: "0" is_container: "1" resources: m html: |- -
        - <% if @template.menu.present? %> - <% @template.menu.children.each{|page| %> - ~~content~~ - <% } %> - <% end %> +
          <% get_menu_items(@template.current_piece).each{|page| %> + ~~content~~ + <% } %>
        css: |- - .<%=g_piece_selector%>, .<%=g_piece_selector%> ul{ margin: 0; padding: 0;} - .<%=g_piece_selector%> li{ + .<%=@template.section_selector%> ul{ margin: 0; padding: 0;} + .<%=@template.section_selector%> li{ list-style-type:none; display:inline;} - .<%=g_piece_selector%> a{ - display:inline-block; - float:left; - margin:0; /* non-editable */} + .<%=@template.section_selector%> a{ + display:inline-block; + float:left; + margin:0; /* non-editable */ + } title: hmenu slug: hmenu vmenu: @@ -310,20 +269,16 @@ vmenu: title: vmenu slug: vmenu html: |- -
          - <% if @template.menu.present? %> - <% @template.menu.children.each{|page| %> - ~~content~~ - <% } %> - <% end %> +
            <% get_menu_items(@template.current_piece).each{|page| %> + ~~content~~ + <% } %>
          css: |- - .<%=g_piece_selector%>,.<%=g_piece_selector%> ul{ margin: 0; padding: 0;} - .<%=g_piece_selector%> li{ list-style-type:none; } - .<%=g_piece_selector%> a{ float: left; clear: left; text-align: left; margin: 0px; border: 0px; } - + .<%=@template.section_selector %> ul{ margin: 0; padding: 0;} + .<%=@template.section_selector %> li{ list-style-type:none; } + .<%=@template.section_selector %> a{ float: left; clear: left; text-align: left; margin: 0px; border: 0px; } js: "" - + menuitem: id: 6 is_selectable: "0" @@ -331,53 +286,29 @@ menuitem: title: menuitem slug: menuitem html: | - <% lambda_item = lambda{ |page| - if page.clickable? - if page.current? - link_to page.name, page.path, page.extra_html_attributes.merge( {:id=>"pi#{g_piece_selector}_page.id", :class=>"selected depth#{page.depth}"} ) - else - link_to page.name, page.path, page.extra_html_attributes.merge( {:id=>"pi#{g_piece_selector}_page.id", :class=>"depth#{page.depth}"} ) - end - else - link_to page.name, page.path, page.extra_html_attributes.merge( {:id=>"pi#{g_piece_selector}_page.id", :class=>"noclick depth#{page.depth}", :href=>'javascript:void(0)'} ) - end - } - %> -
        • - <%= lambda_item.call(page) %> - <% unless page.leaf? %> -
            <% page.children.each{|page| %> -
          • <%= lambda_item.call(page) %> - <% unless page.leaf? %> -
              <% page.children.each{|page| %> -
            • <%= lambda_item.call(page) %>
            • - <% } %>
            - <% end %> -
          • - <% } %>
          - <% end %> -
        • - + <%= menu_item_atom( @template.current_piece, page ) %> css: |- - .<%=g_piece_selector%> { + .<%=@template.section_selector %> { <%= @template.css :shell %> - } - /*override parent container .selector a */ - .<%=g_piece_selector%> a{ - <%= @template.css :a %> } - .<%=g_piece_selector%> a:hover{ - <%= @template.css :a_h %> + /* override parent container .selector a */ + .<%=@template.section_selector %> a{ + position:relative;overflow: hidden; + <%= @template.css :a %> } - .<%=g_piece_selector%> .selected{ - <%= @template.css :selected %> + .<%=@template.section_selector %> a:hover{ + <%= @template.css :a_h %> } - .<%=g_piece_selector%> a.selected:hover{ <%= @template.css :as_h %> } - .<%=g_piece_selector%> .noclick{ cursor:default; <%= @template.css :noclick %> } - .<%=g_piece_selector%> a.depth1{ <%= @template.css :depth1 %> } - .<%=g_piece_selector%> a.depth2{ <%= @template.css :depth2 %> } - .<%=g_piece_selector%> a.depth3{ <%= @template.css :depth3 %> } - .<%=g_piece_selector%> a.depth4{ <%= @template.css :depth4 %> } + .<%=@template.section_selector %> .selected{ + <%= @template.css :selected %> + } + .<%=@template.section_selector %> a.selected:hover{ <%= @template.css :as_h %> } + .<%=@template.section_selector %> .noclick{ cursor:default; <%= @template.css :noclick %> } + .<%=@template.section_selector %> a.depth1{ <%= @template.css :depth1 %> } + .<%=@template.section_selector %> a.depth2{ <%= @template.css :depth2 %> } + .<%=@template.section_selector %> a.depth3{ <%= @template.css :depth3 %> } + .<%=@template.section_selector %> a.depth4{ <%= @template.css :depth4 %> } + js: "" image: id: 7 @@ -386,15 +317,15 @@ image: is_selectable: "0" is_container: "0" resources: i - html: | - <% if @template.image.present? %> + html: | + <% if @template.image.present? %> <% else %> - no image + no image <% end %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 - css: "" + css: .<%= @template.section_selector %> img { width:100%; } js: "" text: id: 8 @@ -403,7 +334,7 @@ text: is_selectable: "0" is_container: "0" resources: t - html: <%= raw @template.text %> + html: <%== @template.text %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 css: "" @@ -414,17 +345,12 @@ product_image: slug: product-image is_selectable: "0" is_container: "0" - html: | - <% if defined? product %> - <% if @template.current_piece.view_as_clickable? %> - <%= link_to product_main_image( @template.current_piece, product ), product.path %> - <% else %> - <%= product_main_image( @template.current_piece, product ) %> - <% end %> - <% end %> + html: | + <%= @template.product_attribute( :image ) %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 - css: "" + css: | + .<%= @template.section_selector %> img { width:100%; } js: "" product_description: id: 12 @@ -432,37 +358,28 @@ product_description: slug: product-description is_selectable: "0" is_container: "0" - html: | - <% if defined? product %> - <%=raw product.description %> - <% end %> + html: | + <%== @template.product_attribute( :description ) %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 css: "" - js: "" + js: "" product_name: id: 13 title: Product name slug: product-name is_selectable: "0" is_container: "0" - html: | - <% if defined? product %> - <%# span only for selector .g_piece_selector a %> - <% if @template.current_piece.view_as_clickable? %> - <%=product.name %> - <% else %> - <%=product.name %> - <% end %> - <% end %> + html: | + <%= @template.product_attribute( :name ) %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 css: | - .<%=@template.current_piece.section_selector%> a{ - <%= @template.css :a %> + .<%=@template.section_selector%> a{ + <%= @template.css :a %> } - .<%=@template.current_piece.section_selector%> a:hover{ - <%= @template.css :a_h %> + .<%=@template.section_selector%> a:hover{ + <%= @template.css :a_h %> } js: "" product_thumbnails: @@ -471,20 +388,20 @@ product_thumbnails: slug: product_thumbnails is_selectable: "0" is_container: "0" - html: | - <%# no need for thumbnails unless there is more than one image %> -
          + html: | + +
          <% if (product.images + product.variant_images).uniq.size > 1 %>
            <% product.images.each do |i| %>
          • - <%= link_to_product_thumbnail( @template.current_piece, i ) %> + <%= @template.product_attribute( :thumbnail, image: i ) %>
          • <% end %> <% if product.has_variants? %> <% product.variant_images.each do |i| %> <% next if product.images.include?(i) %>
          • - <%= link_to_product_thumbnail( @template.current_piece, i ) %> + <%= @template.product_attribute( :thumbnail, image: i ) %>
          • <% end %> <% end %> @@ -494,9 +411,9 @@ product_thumbnails: created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 css: |- - .<%=g_piece_selector%> ul{ margin: 0; padding: 0;} - .<%=g_piece_selector%> li{ list-style-type:none; } - .<%=g_piece_selector%> ul.inline li { + .<%=@template.section_selector%> ul{ margin: 0; padding: 0;} + .<%=@template.section_selector%> li{ list-style-type:none; } + .<%=@template.section_selector%> ul.inline li { /* * it is inline-block, we should remove space between li. * http://stackoverflow.com/questions/16234440/space-between-li @@ -504,8 +421,8 @@ product_thumbnails: display: inline; float:left; } - .<%=g_piece_selector%> img { - <%= @template.css :img %> + .<%=@template.section_selector%> .thumbnails img { + <%= @template.css :img %> } js: "" product_main_image: @@ -514,16 +431,22 @@ product_main_image: slug: product_main_image is_selectable: "0" is_container: "0" - html: | -
            - <%= product_main_image( @template.current_piece, product ) %> + html: | +
            + <%= @template.product_attribute( :image ) %>
            created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 css: | - .<%=g_piece_selector%> img{ - <%= @template.css :img %> + /* do not apply css padding,margin on image, image-zoom required. use wrapper instead */ + .<%=@template.section_selector%> .main_image_wrapper img{ + width: 100%; + <% if @template.current_piece.lightboxable? %> + cursor: pointer; + <% end %> } + /* since img has width:100%; padding/border/margin should apply to wrapper, or image width> container width*/ + .<%=@template.section_selector%> .main_image_wrapper{ <%= @template.css :img %> } js: "" product_properties: id: 16 @@ -531,9 +454,9 @@ product_properties: slug: product_properties is_selectable: "0" is_container: "0" - html: | - <% unless product.product_properties.empty? %> - + html: | + <% unless product.product_properties.empty? %> +
            <% product.product_properties.each do |product_property| %> <% css_class = cycle('even', 'odd', :name => "properties") %> @@ -549,17 +472,17 @@ product_properties: created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 css: | - .<%=g_piece_selector%> { - width:100%; + .<%=@template.section_selector%> table { + width:100%; } - .<%=g_piece_selector%> .cell{ - <%= @template.css :cell %> + .<%=@template.section_selector%> .cell{ + <%= @template.css :cell %> } - .<%=g_piece_selector%> th{ - <%= @template.css :th %> + .<%=@template.section_selector%> th{ + <%= @template.css :th %> } - .<%=g_piece_selector%> td{ - <%= @template.css :td %> + .<%=@template.section_selector%> td{ + <%= @template.css :td %> } js: "" @@ -577,7 +500,7 @@ product_price:
            <%= display_price(product.master) %> - +
            @@ -586,8 +509,8 @@ product_price:
            <%= Spree.t('product_not_available_in_this_currency') %>
            - <% end %> - <% end %> + <% end %> + <% end %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 css: "" @@ -598,16 +521,13 @@ product_quantity: slug: product_quantity is_selectable: "0" is_container: "0" - html: | - <% # products[product_id]&quantity for product contained options or just variants[id]=>quantity, more detail in Spree::OrderPopulator %> - <%= number_field_tag (product.variants_and_option_values.any? ? :quantity : "variants[#{product.master.id}]"), 1, :class => 'title', :min => 1 %> - + html: | + <%= number_field_tag :quantity, 1, :class => 'title', :min => 1 %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 css: | - .<%=@template.current_piece.section_selector%> input{ - <%= @template.css :input %> - } + .<%=@template.section_selector%> > .inner {overflow:visible; } /* fix missing input bottom border on mobile*/ + .<%=@template.section_selector%> input{ <%= @template.css :input %> } js: "" product_atc: id: 19 @@ -615,16 +535,15 @@ product_atc: slug: product_atc is_selectable: "0" is_container: "0" - html: | + html: | <%= button_tag :id => 'add-to-cart-button', :type => :submit do %> <%= Spree.t(:add_to_cart) %> <% end %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 css: | - .<%=@template.current_piece.section_selector%> button{ - <%= @template.css :button %> - } + .<%=@template.section_selector%> > .inner {overflow:visible; } /* fix missing input bottom border on mobile*/ + .<%=@template.section_selector%> button{ <%= @template.css :button %> } js: "" cart: id: 20 @@ -633,12 +552,12 @@ cart: is_selectable: "1" is_container: "1" html: | - <% if @order.line_items.empty? %> -
            + <% if @order.line_items.empty? %> +

            <%= Spree.t(:your_cart_is_empty) %>

            -
            +
            <% else %> -
            +
            <%= form_for @order, :url => update_cart_path, :html => {:id => 'update-cart'} do |order_form| %>
            <% #place holder for action /cart %> @@ -654,16 +573,16 @@ cart:
            <% end %> -
            + <% end %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 css: | - .<%=g_piece_selector%> .cart_buttons{ clear:both; } - .<%=g_piece_selector%> button{ + .<%=@template.section_selector%> .cart_buttons{ clear:both; } + .<%=@template.section_selector%> button{ <%= @template.css :button %> } - .<%=g_piece_selector%> .line_item_quantity{ width:60px; } + .<%=@template.section_selector%> .line_item_quantity{ width:60px; } js: "" account: id: 21 @@ -671,7 +590,7 @@ account: slug: account is_selectable: "0" is_container: "0" - html: | + html: | <%= yield %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 @@ -684,12 +603,7 @@ taxonomy_name: is_selectable: "1" is_container: "0" resources: m - html: | - <% if @template.menu.present? %> - <%= @template.menu.taxonomy.name %> - <% end %> - created_at: 2011-09-20 19:40:07 - updated_at: 2011-09-20 19:40:07 + html: <%= @template.page_attribute(:root_name) %> css: "" js: "" cart_items: @@ -698,25 +612,25 @@ cart_items: slug: cart-items is_selectable: "1" is_container: "0" - html: | - <%= render :partial => 'form', :locals => { :order_form => order_form } %> + html: | + <%= render :partial => 'spree/orders/form', :locals => { :order_form => order_form } %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 css: "" js: "" -order_total_price: +order_total_price: id: 24 title: order total price slug: order-total-price is_selectable: "1" is_container: "0" - html: | - <%= Spree.t(:subtotal) %>: <%= @order.display_total.to_html %> + html: | + <%= Spree.t(:total) %>: <%= @order.display_total.to_html %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 css: | .g-order-total{ - + } js: "" checkout: @@ -725,35 +639,15 @@ checkout: slug: checkout is_selectable: "0" is_container: "0" - html: | -
            - <%= render :partial => 'spree/shared/error_messages', :locals => { :target => @order } %> -
            - <%= form_for @order, :url => update_checkout_path(@order.state), :html => { :id => "checkout_form", :class=>'form' } do |form| %> - <% unless @order.email? %> -

            - <%= form.label :email %>
            - <%= form.text_field :email %> -

            - <% end %> - <%= yield %>~~content~~ -
            - <%= button_tag :class => 'continue button primary', :type => 'submit' do %> - <%= Spree.t(:save_and_continue) %> - <% end %> - -
            - <% end %> -
            -
            - <% if I18n.locale != :en %> - - <% end %> + html: | + <%= yield %>~~content~~ created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 - css: - .<%=g_piece_selector%> .form-buttons{ clear:both; } - + css: | + .<%=@template.section_selector%> .form-buttons{ clear:both; } + .<%=@template.section_selector%> ul{ margin: 0; padding: 0;} + .<%=@template.section_selector%> li{ list-style-type:none; } + .<%=@template.section_selector%> .stock-shipping-method-title {margin:0;} js: "" thanks: id: 26 @@ -761,7 +655,7 @@ thanks: slug: thanks is_selectable: "0" is_container: "0" - html: | + html: | <%= yield %>~~content~~ created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 @@ -774,13 +668,7 @@ taxon_name: is_selectable: "1" is_container: "0" html: | - <% (defined?(page) ? page : @current_page).tap{|page| %> - <% if @template.current_piece.view_as_clickable? %> - <%= link_to page.name, page.path, page.extra_html_attributes %> - <% else %> - <%= page.name %> - <% end %> - <% }%> + <%= @template.page_attribute( :name ) %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 css: | @@ -791,11 +679,11 @@ container_title: slug: container-title is_selectable: "0" is_container: "1" - html: ~~content~~ + html: ~~content~~ css: | .header3 { margin: 0; padding: 0; font-size: 100%;line-height:1em; } - .<%=@template.current_piece.section_selector%> .header3{ - <%= @template.css :s_header3 %> + .<%=@template.section_selector%> .header3{ + <%= @template.css :s_header3 %> } js: "" order_number: @@ -804,7 +692,7 @@ order_number: slug: order-number is_selectable: "1" is_container: "0" - html: | + html: | <%= Spree.t(:order) + " #" + @order.number %> css: "" js: "" @@ -822,7 +710,7 @@ order_address: <%= render :partial => 'spree/shared/address', :locals => { :address => @order.ship_address } %> <% end %> - <% end %> + <% end %> css: " " js: " " order_payment: @@ -831,7 +719,7 @@ order_payment: slug: order-payment is_selectable: "1" is_container: "0" - html: | + html: |

            <%= Spree.t(:payment_information) %> <%= link_to "(#{Spree.t(:edit)})", checkout_state_path(:payment) unless @order.completed? %>

            <% @order.payments.valid.each do |payment| %> @@ -846,8 +734,8 @@ order_items: slug: order-items is_selectable: "1" is_container: "0" - html: | - <%= render :partial => 'order_items' %> + html: | + <%= render partial: 'order_items', locals: {order: @order} %> css: "" js: "" payment_form: @@ -856,34 +744,7 @@ payment_form: slug: payment-form is_selectable: "1" is_container: "0" - html: | -
            -

            <%= Spree.t(:payment_information) %>

            - <% @order.available_payment_methods.each do |method| %> -

            - -

            - <% end %> -
              - <% @order.available_payment_methods.each do |method| %> -
            • -
              - <%= render :partial => "spree/checkout/payment/#{method.method_type}", :locals => { :payment_method => method } %> -
              -
            • - <% end %> -
            -
            - <% if Spree::Promotion.with_code.count > 0 %> -

            - <%= form.label :coupon_code %>
            - <%= form.text_field :coupon_code %> -

            - <% end %> -
            + html: "" css: |- #checkout_form_payment ul{ margin: 0; padding: 0;} #checkout_form_payment li{ list-style-type:none; } @@ -895,16 +756,7 @@ ship_form: slug: ship-form is_selectable: "1" is_container: "0" - html: | -
            - <%= form.fields_for :bill_address do |bill_form| %> -

            <%= Spree.t(:shipping_address) %>

            - <%= render :partial => 'spree/address/form', :locals => { :form => bill_form, :address_type => 'billing', :address => @order.bill_address } %> - <% end %> - <%= form.fields_for :ship_address do |ship_form| %> - <%= hidden_field_tag 'order[use_billing]', '1' %> - <% end %> -
            + html: "" css: | #baddress1 input{ width:480px; } js: "" @@ -914,10 +766,10 @@ order_summary: slug: order-summary is_selectable: "1" is_container: "0" - html: | + html: | <% if @order.state != 'confirm' %> <%= render :partial => 'summary', :locals => { :order => @order } %> - <% end %> + <% end %> css: "" js: "" login_form: @@ -926,7 +778,7 @@ login_form: slug: login-form is_selectable: "1" is_container: "0" - html: | + html: | <%= render :partial => 'spree/user_sessions/new' %> css: "" js: "" @@ -936,7 +788,7 @@ checkout_as_guest_form: slug: checkout-as-guest-form is_selectable: "1" is_container: "0" - html: "" + html: "" css: "" js: "" sign_up_form: @@ -945,7 +797,7 @@ sign_up_form: slug: sign-up-form is_selectable: "1" is_container: "0" - html: | + html: | <%= render :partial => 'spree/user_registrations/new' %> css: "" js: "" @@ -955,7 +807,7 @@ profile: slug: profile is_selectable: "1" is_container: "0" - html: | + html: |
            <%= Spree.t(:email) %>
            <%= @user.email %> (<%= link_to Spree.t(:edit), spree.edit_account_path, :remote=>true %>)
            @@ -968,36 +820,8 @@ order_list: slug: order-list is_selectable: "1" is_container: "0" - html: | -

            <%= Spree.t(:my_orders) %>

            - <% if @orders.present? %> -
            - - - - - - - - - - - - <% @orders.each do |order| %> - - - - - - - - - <% end %> - -
            <%= Spree.t(:order_number) %><%= Spree.t(:order_date) %><%= Spree.t(:status) %><%= Spree.t(:payment_state) %><%= Spree.t(:shipment_state) %><%= Spree.t(:total) %>
            <%= link_to order.number, order_url(order), :remote=>true %><%= l order.completed_at.to_date %><%= Spree.t(order.state).titleize %><%= Spree.t("payment_states.#{order.payment_state}") if order.payment_state %><%= Spree.t("shipment_states.#{order.shipment_state}") if order.shipment_state %><%= order.display_total %>
            - <% else %> -

            <%= Spree.t(:you_have_no_orders_yet) %>

            - <% end %> + html: | + <%= render partial: 'themes/orders/list' %> css: "" js: "" dialog: @@ -1007,15 +831,15 @@ dialog: is_selectable: "1" is_container: "0" usage: "dialog" - html: | -
            -
            + html: | +
            +
            ~~content~~
            -
            +
            css: | - div.<%=g_piece_selector%> - { + #dialog + { display:none; ~~PageParams.get:outer~~ } @@ -1027,12 +851,12 @@ container_link: slug: container-link is_selectable: "0" is_container: "1" - html: ~~content~~ + html: ~~content~~ css: | - .<%=@template.current_piece.section_selector%> a{ display: inline-block; <%=@template.css(:s_a) %> } - .<%=@template.current_piece.section_selector%> a:hover{ <%=@template.css(:s_a_h) %> } - .<%=@template.current_piece.section_selector%> a.selected{ <%=@template.css(:s_a_sel) %> } - .<%=@template.current_piece.section_selector%> a.unavailable{ <%=@template.css(:s_a_una) %> } + .<%=@template.section_selector%> a{ display: inline-block; <%=@template.css(:s_a) %> } + .<%=@template.section_selector%> a:hover{ <%=@template.css(:s_a_h) %> } + .<%=@template.section_selector%> a.selected{ <%=@template.css(:s_a_sel) %> } + .<%=@template.section_selector%> a.unavailable{ <%=@template.css(:s_a_una) %> } js: "" container_table: id: 43 @@ -1040,12 +864,12 @@ container_table: slug: container-table is_selectable: "0" is_container: "1" - html: ~~content~~ + html: ~~content~~ css: | - .<%=@template.current_piece.section_selector%> table{ <%= @template.css :s_table %> } - .<%=@template.current_piece.section_selector%> th, .<%=@template.current_piece.section_selector%> td{ <%= @template.css :s_cell %> } - .<%=@template.current_piece.section_selector%> th{ <%= @template.css :s_th %> } - .<%=@template.current_piece.section_selector%> td{ <%= @template.css :s_td %> } + .<%=@template.section_selector%> table{ <%= @template.css :s_table %> } + .<%=@template.section_selector%> th, .<%=@template.section_selector%> td{ <%= @template.css :s_cell %> } + .<%=@template.section_selector%> th{ <%= @template.css :s_th %> } + .<%=@template.section_selector%> td{ <%= @template.css :s_td %> } js: "" container_form: id: 44 @@ -1053,13 +877,14 @@ container_form: slug: container-form is_selectable: "0" is_container: "1" - html: ~~content~~ + html: ~~content~~ css: | - .<%=@template.current_piece.section_selector%> label.error{ <%=@template.css(:s_error) %> } - .<%=@template.current_piece.section_selector%> label{ <%=@template.css(:s_label) %> } - .<%=@template.current_piece.section_selector%> input{ <%=@template.css(:s_input) %> } - .<%=@template.current_piece.section_selector%> button{ <%=@template.css(:s_button) %> } - .<%=@template.current_piece.section_selector%> button:hover{ <%=@template.css(:s_button_h) %> } + .<%=@template.section_selector%> label.error{ <%=@template.css(:s_error) %> } + .<%=@template.section_selector%> label{ <%=@template.css(:s_label) %> } + .<%=@template.section_selector%> form input[type='text'], .<%=@template.section_selector%> form input[type='password'], .<%=@template.section_selector%> form input[type='email'], .<%=@template.section_selector%> form textarea + { <%=@template.css(:s_input) %> } + .<%=@template.section_selector%> button{ <%=@template.css(:s_button) %> } + .<%=@template.section_selector%> button:hover{ <%=@template.css(:s_button_h) %> } js: "" dialog_title: @@ -1069,15 +894,13 @@ dialog_title: is_selectable: "0" is_container: "0" html: | -
            -
            <%= Spree.t(:dialog_title) %> X
            -
            - css: | - .<%=g_piece_selector%> .title{ <%=@template.css(:title) %> } - .<%=g_piece_selector%> a.cancel{ +
            <%= Spree.t(:dialog_title) %> X
            + css: | + .<%=@template.section_selector%> .dialog_title{ <%=@template.css(:dialog_title) %> } + .<%=@template.section_selector%> .dialog_title a.dialog_close{ border:0; padding:0; margin:0; background: transparent none; text-decoration: none;/*reset it, prevent root's default */ - float:right; cursor:pointer; - <%=@template.css(:cancel) %> + float:right; cursor:pointer; + <%=@template.css(:dialog_close) %> } js: "" # set padding, margin, without affecting dialog title @@ -1089,24 +912,14 @@ dialog_content: is_container: "1" usage: "dial-cont" html: | - -
            -
            - ~~content~~ -
            -
            - css: | - .<%=g_piece_selector%> - { - position:relative; - <%=@template.css(:block)%> - } +
            ~~content~~
            + css: | /* background, margin, border, padding */ - .<%=g_piece_selector%> .<%=g_piece_selector%>_inner + .<%=@template.section_selector%> .dialog_content { - <%=@template.css(:inner)%> + <%=@template.css(:dialog_content)%> } - js: "" + js: "" logo: id: 47 title: logo @@ -1114,15 +927,15 @@ logo: is_selectable: "0" is_container: "0" resources: i - html: | - <% if @template.image.present? %> - <%= link_to image_tag( @template.image.url ), spree.root_path %> + html: | + <% if @template.image.present? %> + <%= link_to image_tag( @template.image.url ), spree.root_path %> <% else %> - <%= logo %> + <%= logo %> <% end %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 - css: "" + css: .<%= @template.section_selector %> img { width:100%; } js: "" minicart: id: 48 @@ -1131,18 +944,7 @@ minicart: is_selectable: "0" is_container: "0" html: | - <% - text = Spree.t('cart') - css_class = nil - if current_order.nil? or current_order.item_count.zero? - text = "#{text}: (#{Spree.t('empty')})" - css_class = 'empty' - else - text = "#{text}: (#{current_order.item_count}) #{current_order.display_total.to_html}".html_safe - css_class = 'full' - end - %> - <%= link_to text, spree.cart_path, :class => "cart-info #{css_class}" %> + <%= link_to_cart %> css: "" js: "" logged_and_unlogged_menu: @@ -1155,18 +957,18 @@ logged_and_unlogged_menu: html: | <% menu = (spree_current_user ? @template.menu : @template.menu2) %> <% if menu.present? %> -
              +
                <% menu.children.each{|page| %> ~~content~~ <% } %>
              <% end %> css: |- - ul.<%=g_piece_selector%> { margin: 0; padding: 0;} - .<%=g_piece_selector%> li{ + .<%=@template.section_selector%> ul { margin: 0; padding: 0;} + .<%=@template.section_selector%> li{ list-style-type:none; display:inline;float: left;} - .<%=g_piece_selector%> a{ + .<%=@template.section_selector%> a{ display:inline-block; float:left; margin:0; /* non-editable */} @@ -1176,7 +978,7 @@ password_recover_form: slug: password-recover-form is_selectable: "1" is_container: "0" - html: | + html: | <%= render :partial => 'spree/user_passwords/new' %> css: "" js: "" @@ -1186,29 +988,13 @@ product_option_values: slug: product-option-values is_selectable: "1" is_container: "0" - html: | - <% if product.variants_and_option_values(current_currency).any? %> -
              -
                - <% product.variants_and_option_values(current_currency).each_with_index do |variant, index| %> -
              • - <%= radio_button_tag "products[#{product.id}]", variant.id, index == 0, 'data-price' => display_price(variant).to_s %> - -
              • - <% end%> -
              -
              - <% end%> + html: | + <% if defined? product %> + <%= render :partial => 'themes/variants_and_option_values', :locals=>{:product=>product} %> + <% end %> css: |- - .<%=g_piece_selector%> ul{ margin: 0; padding: 0;} - .<%=g_piece_selector%> li{ list-style-type:none; } + .<%=@template.section_selector%> ul{ margin: 0; padding: 0;} + .<%=@template.section_selector%> li{ list-style-type:none; } js: "" taxon_description: id: 52 @@ -1216,20 +1002,20 @@ taxon_description: slug: taxon-description is_selectable: "1" is_container: "0" - html: | - <%=raw (defined?(page) ? page : @current_page).description %> + html: | + <%== @template.page_attribute(:description) %> css: "" - js: "" + js: "" site_form: id: 53 title: site form slug: site-form is_selectable: "1" is_container: "0" - html: | - <%= render :partial => 'spree/sites/form_for_spree_theme' %> + html: | + <%= render :partial => 'themes/sites/quick_lunch' %> css: | - .<%=@template.current_piece.section_selector%> p{ + .<%=@template.section_selector%> .field{ float:left; } js: "" @@ -1240,65 +1026,40 @@ slider: resources: m is_selectable: "1" is_container: "0" - html: | -
              + html: |- +
              + <%# outer div is required, jssor duplicate it and set style. %> <% if @template.menu.present? %>
              - <% # jssor require with,height in element style. %> -
              - <% @template.menu.children.each{|page| %> -
              <%= image_tag page.icon.url(:original), :u=>'image', :alt=>page.name %>
              - <% } %> + <%# jssor require with,height in element style. %> +
              + <% @template.menu.children.each{|page| %> +
              + <%= link_to_if @template.current_piece.clickable?, image_tag( page.icon.url(:original), :u=>'image', :alt=>page.name), page.path %> +
              + <% } %>
              -
              - <% end %>
              - css: |- - #<%=g_piece_selector%> { position:relative; } - #<%=g_piece_selector%> [u='slides']{ - cursor: move; left: 0px; top: 0px; + .<%=@template.section_selector%> > .inner { min-height:1px;min-width:1px; /* hight, width are required*/} + .effect_slider { position:relative; } + .<%=@template.section_selector%> [u='slides']{ + cursor: move; left: 0px; top: 0px; } - #<%=g_piece_selector%> [u='navigator']{ + .<%=@template.section_selector%> [u='navigator']{ position: absolute; bottom:0; - } + } .jssorb03 div, .jssorb03 div:hover, .jssorb03 .av { background: url('/shops/shared/images/jssor/n21.png') no-repeat; @@ -1317,12 +1078,12 @@ breadcrumbs: slug: breadcrumbs is_selectable: "1" is_container: "0" - html: | + html: | <%= breadcrumbs(@current_page) %> css: | - .<%=@template.current_piece.section_selector%> ul{ margin: 0; padding: 0;} - .<%=@template.current_piece.section_selector%> li{ - list-style-type:none; + .<%=@template.section_selector%> ul{ margin: 0; padding: 0;} + .<%=@template.section_selector%> li{ + list-style-type:none; display: inline-block; } js: "" @@ -1332,18 +1093,16 @@ taxon_icon: slug: taxon-icon is_selectable: "1" is_container: "0" - html: | - <% if defined? page %> - <% if page.icon.present? %> - <%= link_to image_tag(page.icon.url(:original), :u=>'image', :alt=>page.name), page.path %> - <% end %> - <% end %> + html: | + <%= @template.page_attribute(:icon) %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 css: | - .<%=@template.current_piece.section_selector%> { - margin: 0; padding: 0; + .<%=@template.section_selector%> { + /*margin: 0; it is required to align center*/ + padding: 0; } + .<%= @template.section_selector %> img { width:100%; } js: "" post_title: id: 57 @@ -1351,14 +1110,8 @@ post_title: slug: post-title is_selectable: "0" is_container: "0" - html: | - <% if defined? post %> - <% if @template.current_piece.view_as_clickable? %> - <%=post.title %> - <% else %> - <%=post.title %> - <% end %> - <% end %> + html: | + <%= @template.post_attribute(:title) %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 css: "" @@ -1369,10 +1122,8 @@ post_author: slug: post-author is_selectable: "0" is_container: "0" - html: | - <% if defined? post %> - <%=post.author %> - <% end %> + html: | + <%= @template.post_attribute(:author) %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 css: "" @@ -1383,10 +1134,8 @@ post_time: slug: post-time is_selectable: "0" is_container: "0" - html: | - <% if defined? post %> - <%= pretty_time post.posted_at %> - <% end %> + html: | + <%= @template.post_attribute(:posted_at) %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 css: "" @@ -1397,10 +1146,8 @@ post_body: slug: post-body is_selectable: "0" is_container: "0" - html: | - <% if defined? post %> - <%=raw post.body %> - <% end %> + html: | + <%== @template.post_attribute(:body) %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 css: "" @@ -1411,15 +1158,11 @@ post_cover: slug: post-cover is_selectable: "1" is_container: "0" - html: | - <% if defined? post %> - <% if post.cover.present? %> - <%= link_to image_tag(post.cover.url(:original), :u=>'image', :alt=>post.title), post.path %> - <% end %> - <% end %> + html: | + <%= @template.post_attribute(:cover) %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 - css: '' + css: .<%= @template.section_selector %> img { width:100%; } js: "" grouped_option_values_selector: id: 62 @@ -1427,40 +1170,38 @@ grouped_option_values_selector: slug: grouped-option-values-selector is_selectable: "1" is_container: "0" - html: | + html: | <% if defined? product %> - <% if product.has_variants? %> - <%= render :partial => 'themes/grouped_option_values_selector', :locals=>{:product=>product,:g_piece_selector=>g_piece_selector} %> - <% end%> + <%= render :partial => 'themes/grouped_option_values_selector', :locals=>{:product=>product} %> <% end%> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 css: | #product-details .price.unselected { - color: #bbb; + color: #bbb; } - .<%=g_piece_selector%> .option_type { - <%=@template.css(:option_type)%> + .<%=@template.section_selector%> .option_type { + <%=@template.css(:option_type)%> } - .<%=g_piece_selector%> .option_value { - <%=@template.css(:option_value)%> + .<%=@template.section_selector%> .option_value { + <%=@template.css(:option_value)%> } - .<%=g_piece_selector%> ul.option_values { - list-style-type: none; + .<%=@template.section_selector%> ul.option_values { + list-style-type: none; margin: 0; padding: 0; } - .<%=g_piece_selector%> .option_values li { + .<%=@template.section_selector%> .option_values li { display: block; position: relative; float: left; } - .<%=g_piece_selector%> .option_values li a { + .<%=@template.section_selector%> .option_values li a { display: block; cursor: pointer; text-decoration: none; } .option-value.selected, - .option-value.in-stock:hover { + .option-value.in-stock:hover { } .option-value.out-of-stock { display: block; @@ -1469,8 +1210,8 @@ grouped_option_values_selector: cursor: default; } .option-value.locked, - .option-value.locked:hover { - cursor: default; + .option-value.locked:hover { + cursor: not-allowed; } .option-value.locked img { filter:alpha(opacity=50); @@ -1478,6 +1219,7 @@ grouped_option_values_selector: -khtml-opacity: 0.5; opacity: 0.5; } + js: "" option_values_in_slide_style: id: 63 @@ -1485,24 +1227,24 @@ option_values_in_slide_style: slug: option-values-in-slide-style is_selectable: "1" is_container: "0" - html: | + html: | <% if defined? product %> -
              - <%= render :partial => 'themes/product_options_in_slide_style', :locals=>{:product=>product,:g_piece_selector=>g_piece_selector} %> -
              +
              + <%= render :partial => 'themes/product_options_in_slide_style', :locals=>{:product=>product} %> +
              <% end%> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 css: | - .<%=g_piece_selector%> .variant-option{ + .<%=@template.section_selector%> .variant-option{ display:none; } - .<%=g_piece_selector%> ul.option_values { + .<%=@template.section_selector%> ul.option_values { list-style-type: none; margin:0; - padding:0; + padding:0; } - .<%=g_piece_selector%> .option_values li { + .<%=@template.section_selector%> .option_values li { display: block; position: relative; float: left; @@ -1513,9 +1255,9 @@ option_values_in_slide_style: border-color: #1072B9; color: #ffffff; } - .<%=g_piece_selector%> .option_type{ <%=@template.css(:option_type)%> } - .<%=g_piece_selector%> .large_image{ <%=@template.css(:large_image)%> } - .<%=g_piece_selector%> .thumb_image{ <%=@template.css(:thumb_image)%> } + .<%=@template.section_selector%> .option_type{ <%=@template.css(:option_type)%> } + .<%=@template.section_selector%> .large_image{ <%=@template.css(:large_image)%> } + .<%=@template.section_selector%> .thumb_image{ <%=@template.css(:thumb_image)%> } js: "" product_customization_options: id: 64 @@ -1523,7 +1265,7 @@ product_customization_options: slug: product-customization-options is_selectable: "1" is_container: "0" - html: | + html: | <% if defined? product %> <%= render :partial => 'themes/product_customizations', :locals=>{:product=>product} %> <% end %> @@ -1537,11 +1279,11 @@ container_header0: slug: container-header0 is_selectable: "0" is_container: "1" - html: ~~content~~ + html: ~~content~~ css: | - .<%=@template.current_piece.section_selector%> .header0 { + .<%=@template.section_selector%> .header0 { margin: 0; padding: 0; font-size: 100%;line-height:1em; - <%= @template.css :s_header0 %> + <%= @template.css :s_header0 %> } js: "" container_dl: @@ -1550,11 +1292,11 @@ container_dl: slug: container-dl is_selectable: "0" is_container: "1" - html: ~~content~~ + html: ~~content~~ css: | - .<%=@template.current_piece.section_selector%> dl,dd{ margin:0;padding:0; } - .<%=@template.current_piece.section_selector%> dt{ <%= @template.css :s_dt %> } - .<%=@template.current_piece.section_selector%> dd{ <%= @template.css :s_dd %> } + .<%=@template.section_selector%> dl,dd{ margin:0;padding:0; } + .<%=@template.section_selector%> dt{ float:left; <%= @template.css :s_dt %> } + .<%=@template.section_selector%> dd{ float:left; <%= @template.css :s_dd %> } js: "" preview_theme_button: id: 67 @@ -1563,12 +1305,12 @@ preview_theme_button: is_selectable: "0" is_container: "0" html: | - <% if defined? product %> - <%=link_to Spree.t(:preview_theme), preview_template_theme_url( product.template_theme, :host=>product.template_theme.site.subdomain ), {:target=>'_blank'} %> + <% if defined? product %> + <%=link_to Spree.t(:preview_theme), preview_template_theme_url( product.template_theme, :host=>product.template_theme.site.subdomain ), {:target=>'_blank'} %> <% end %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 - css: "" + css: "" js: "" install_theme_with_site_button: id: 68 @@ -1577,12 +1319,12 @@ install_theme_with_site_button: is_selectable: "0" is_container: "0" html: | - <% if defined? product %> + <% if defined? product %> <%= link_to Spree.t(:install_theme_with_site), new_site_path(:template_theme_id=> product.theme_id), {:remote=>true} %> <% end %> created_at: 2011-09-20 19:40:07 updated_at: 2011-09-20 19:40:07 - css: "" + css: "" js: "" container_fixed: id: 69 @@ -1591,21 +1333,429 @@ container_fixed: is_selectable: "0" is_container: "1" html: | - ~~content~~ - + ~~content~~ + css: | - .<%=@template.current_piece.section_selector%> { position: fixed; right:0; top:250px; <%=@template.css(:position) %>} + .<%=@template.section_selector%> {z-index:1; position:fixed; <%=@template.css(:fixed_position) %>} js: '' -container_hover_effect: +hover_effect_slide_container: id: 70 - title: container hover effect - slug: container-hover-effect + title: hover effect slide container + slug: hover-effect-slide-container is_selectable: "0" is_container: "1" html: | - ~~content~~ - + ~~content~~ + css: | + /* slide_effect: width,height is required, children are absolute */ + /* override original position,display */ + .<%= @template.section_selector %> .child_1{ position:absolute; display:block;height:100%; } + .<%= @template.section_selector %> .child_2{ position:absolute; display:block;height:0; } + js: '' + +taxon_tooltips: + id: 71 + title: taxon tooltips + slug: taxon-tooltips + is_selectable: "1" + is_container: "0" + html: | + <%= @template.page_attribute( :tooltips ) %> + created_at: 2011-09-20 19:40:07 + updated_at: 2011-09-20 19:40:07 css: | - /* since ie 6-8 do not support :last_child, have first child hidden initially */ - .<%=@template.current_piece.section_selector%>_inner>:first-child { display:none; <%=@template.css(:position) %>} + js: "" +hover_effect_show_container: + id: 72 + title: hover effect show container + slug: hover-effect-show-container + is_selectable: "0" + is_container: "1" + html: | + ~~content~~ + css: | + .<%= @template.section_selector %> .child_1{ } + .<%= @template.section_selector %> .child_2{ position:absolute; display:none;bottom:0; } + js: '' +hover_effect_expansion_container: + id: 73 + title: hover effect expansion container + slug: hover-effect-expansion-container + is_selectable: "0" + is_container: "1" + html: | + ~~content~~ + css: | + .<%= @template.section_selector %> .child_1{ } + .<%= @template.section_selector %> .child_2{ display:none; } + .<%= @template.section_selector %>.hovered, .<%= @template.section_selector %>.data_current_ancestor { + <%= @template.css :block_hovered %> } + .<%= @template.section_selector %>.data_current_ancestor .child_2, + .<%= @template.section_selector %>.data_current .child_2 { display:block;} + js: '' + +hover_effect_overlay_container: + id: 74 + title: hover effect overlay container + slug: hover-effect-overlay-container + is_selectable: "0" + is_container: "1" + html: | + ~~content~~ + css: | + /* overlay_effect: width,height is required, children are absolute */ + /* override original position,display */ + /* child_1.z-index < child_2.z-index, child_2 is on top of child_1 initially, slideUp on hovering */ + .<%= @template.section_selector %> .child_1{ } + .<%= @template.section_selector %> .child_2{ position:absolute; } + js: '' +hover_effect_popup_container: + id: 75 + title: hover effect popup container + slug: hover-effect-popup-container + is_selectable: "0" + is_container: "1" + html: | + ~~content~~ + css: | + /* popup_effect: width,height is required, children are absolute */ + /* override original position,display */ + /* child_1.z-index < child_2.z-index, child_2 is on top of child_1 initially, slideUp on hovering */ + .<%= @template.section_selector %> .child_1{ } + .<%= @template.section_selector %> .child_2{ position:absolute; display:none; } + js: '' + +baidu_map: + id: 76 + title: baidu map + slug: baidu-map + is_selectable: "0" + is_container: "0" + html: | + <%= render 'map' %> + css: '/* width,height are required for map */' + js: '' + +container_pagination: + id: 77 + title: container pagination + slug: container-pagination + is_selectable: "0" + is_container: "1" + html: ~~content~~ + css: | + <% if @template.current_piece.per_page >0 %> + /* #copy from spree_backend/assets/stylesheets/admin/components/pagination */ + .<%=@template.section_selector%> .pagination { float:left; clear:both; } /* add clear */ + .<%=@template.section_selector%> .pagination .page{ display: inline-block; text-align: center; + <%=@template.css(:pagination_page)%> + } + .<%=@template.section_selector%> .pagination .current{ + <%=@template.css(:pagination_current)%> + } + <% end %> + js: "" +post_summary: + id: 78 + title: post summary + slug: post-summary + is_selectable: "0" + is_container: "0" + html: | + <%== @template.post_attribute(:summary) %> + css: '' + js: '' + +site_title: + id: 79 + title: site title + slug: site-title + is_selectable: "0" + is_container: "0" + html: | + <%= @template.site_attribute(:name) %> + css: '' + js: '' +taxon_summary: + id: 80 + title: taxon summary + slug: taxon-summary + is_selectable: "0" + is_container: "0" + html: | + <%== @template.page_attribute(:summary) %> + css: '' + js: '' +taxon_more: + id: 81 + title: taxon more + slug: taxon-more + is_selectable: "0" + is_container: "0" + html: | + <%= @template.page_attribute(:more) %> + css: '' + js: '' +slider_scrolling: + id: 82 + title: slider scrolling + slug: slider-scrolling + resources: '' + is_selectable: "1" + is_container: "0" + html: |- +
              + +
              +
              +
              +
              + <%# jssor require with,height in element style. %> +
              + ~~content~~ +
              +
              + css: |- + .<%=@template.section_selector%> > .inner { min-height:1px;min-width:1px; /* hight, width are required*/} + .effect_slider { position:relative; } + .<%=@template.section_selector%> [u='slides']{ + cursor: move; left: 0px; top: 0px; + } + +hover_effect_popup_menu_container: + id: 83 + title: hover effect popup menu container + slug: hover-effect-popup-menu-container + is_selectable: "0" + is_container: "1" + html: | + ~~content~~ + css: | + /* popup_effect: width,height is required, children are absolute */ + /* override original position,display */ + /* child_1.z-index < child_2.z-index, child_2 is on top of child_1 initially, slideUp on hovering */ + .<%= @template.section_selector %> .child_1{ } + .<%= @template.section_selector %> .child_2{ position:absolute; display:none; } + js: '' + +page_attribute: + id: 84 + title: page attribute + slug: page-attribute + is_selectable: "0" + is_container: "0" + html: | + <%= @template.page_attribute() %> + css: '' js: '' +next_post_title: + id: 85 + title: next post title + slug: next-post-title + is_selectable: "0" + is_container: "0" + html: | + <%= render "themes/posts/next_post_title" %> + css: '' + js: '' +previous_post_title: + id: 86 + title: previous post title + slug: previous-post-title + is_selectable: "0" + is_container: "0" + html: | + <%= render "themes/posts/previous_post_title" %> + css: '' + js: '' +slider_core: + id: 87 + title: slider core + slug: slider-core + is_selectable: "1" + is_container: "1" + html: |- +
              + +
              +
              +
              +
              + ~~content~~ + +
              + +
              +
              +
              + css: |- + .<%=@template.section_selector%> > .inner { min-height:1px;min-width:1px; /* hight, width are required*/} + .effect_slider { position:relative; } + .<%=@template.section_selector%> [u='slides']{ + cursor: move; left: 0px; top: 0px; + } + .<%=@template.section_selector%> [u='navigator']{ + position: absolute; + bottom:0; + } + .jssorb03 div, .jssorb03 div:hover, .jssorb03 .av + { + background: url('/shops/shared/images/jssor/n21.png') no-repeat; + overflow:hidden; + cursor: pointer; + } + .jssorb03 div { background-position: -5px -5px; } + .jssorb03 div:hover, .jssorb03 .av:hover { background-position: -35px -5px; } + .jssorb03 .av { background-position: -65px -5px; } + .jssorb03 .dn, .jssorb03 .dn:hover { background-position: -95px -5px; } + +slider_data_taxons: + id: 88 + title: slider data taxons + slug: slider-data-taxons + is_selectable: "0" + is_container: "0" + html: |- + <%# jssor require with,height in element style. %> +
              + <% if @template.menu.present? %> + <% @template.menu.children.each{|page| %> +
              <%= image_tag page.icon.url(:original), :u=>'image', :alt=>page.name %>
              + <% } %> + <% end %> +
              + css: '' + js: '' +slider_data_product_images: + id: 89 + title: slider data product images + slug: slider-data-product-images + is_selectable: "0" + is_container: "0" + html: |- +
              + <% (@template.running_data_item.try(:whole_images)).each{|image| %> +
              <%= @template.product_attribute( :image, image: image ) %>
              + <% } %> +
              + css: |- + .<%=@template.section_selector%> img{ width: 100%; } + js: '' +click_effect_sider: + id: 90 + title: click effect sider + slug: click-effect-sider + is_selectable: "0" + is_container: "1" + html: ~~content~~ + css: |- + /* slide_effect: */ + .<%= @template.section_selector %> .child_1{ } + .<%= @template.section_selector %> .child_2{ display: none; } + .sidr { + /* Default Settings */ + display: none; + position: absolute; + position: fixed; + top: 0; + height: 100%; + min-width: 10%; + z-index: 3; + overflow-x: none; + overflow-y: auto; + /* Theme Settings */ + box-shadow: inset 0 0 5px 5px #ebebeb; + <%= @template.css :sidr %> + } + .sidr-close{ + float:right; + } + .sidr-close .fa{ + font-size: 2em; + } + .sidr-overlay{ + display: none; + position: fixed; + top: 0; + left: 0; + height: 100%; + width: 100%; + z-index: 2; + background-color:gray; + opacity: 0.3; + } + js: '' + +video: + id: 91 + title: video + slug: video + is_selectable: "0" + is_container: "0" + html: |- + +
              + + css: |- + .<%=@template.section_selector%> video-player{ <%= @template.css :video %> } + js: '' +container_hmenu_with_vertical_submenu: + id: 92 + title: container hmenu with vertical submenu + slug: container-hmenu-with-vertical-submenu + is_selectable: "0" + is_container: "1" + html: ~~content~~ + css: | + .<%=@template.section_selector%> > .inner { + overflow: visible;/* submenu required*/ + } + /* mainly copy from superfish.css */ + /* 'section_selector ul li' override 'section_selector li'*/ + .<%=@template.section_selector%> ul li { + position: relative; display:inline-block; + } + .<%=@template.section_selector%> ul.depth2 li{ + display: block; + } + .<%=@template.section_selector%> ul.depth2 a{ + display: block; + } + .<%=@template.section_selector%> ul ul { + position: absolute; + display: none; + top: 100%; + left: 0; + z-index: 99; + opacity:0.8 ; + } + /*.<%=@template.section_selector%> ul ul ul{ + top: 0; + left: 100%; + }*/ + js: "" +post_title_with_ellipsis: + id: 93 + title: post title with ellipsis + slug: post-title-with-ellipsis + is_selectable: "0" + is_container: "0" + for_terminal: "0" + html: | + <%= @template.post_attribute( :title ) %> + css: | + .<%=@template.section_selector%> .inner a{ + display:inline; /*it has to be inline for overflow:ellipsis*/ + } + .<%=@template.section_selector%> .inner { + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; + } + js: "" diff --git a/spree_theme/db/seeds/spree_section_pieces2.yml b/spree_theme/db/seeds/spree_section_pieces2.yml new file mode 100644 index 00000000..8f87285b --- /dev/null +++ b/spree_theme/db/seeds/spree_section_pieces2.yml @@ -0,0 +1,70 @@ +post_files: + id: 100 + title: post files + slug: post-files + is_selectable: "0" + is_container: "0" + for_terminal: "0" + html: | +
              + <% if post.files.any? %> +
                + <% post.files.each do |i| %> +
              • + <%= @template.post_attribute( :file, file: i ) %> +
              • + <% end %> +
              + <% end %> +
              + css: | + .<%=@template.section_selector%> ul{ + list-style: none; + margin: 0; padding: 0;} + js: "" +container_background: + id: 101 + title: container background + slug: container-background + is_selectable: "0" + is_container: "1" + html: ~~content~~ + css: | + @media screen and (min-width: 1441px) { + /*1440*731 1920x975 */ + .<%=@template.section_selector%> > .inner{ background-size: cover; <%=@template.css(:inner1)%> } + } + js: "" +one_click_trial: + id: 102 + title: one click trial + slug: one-click-trial + is_selectable: "0" + is_container: "1" + usage: unused + html: | + <%= render "themes/sites/one_click_trial" %> + css: | + #launch_site_container { + display:none; + } + .<%=@template.section_selector%> .modal_close_img{ + position:absolute; + font-size: 22px; + } + js: "" +container_dialog: + id: 103 + title: container dialog + slug: container-dialog + is_selectable: "0" + is_container: "1" + usage: "dialog" + html: ~~content~~ + css: | + .<%=@template.section_selector%> + { display:none; } + .simplemodal-overlay{ background-color:black; + opacity: 50; + <%=@template.css(:dialog_overlay)%> + } diff --git a/spree_theme/db/seeds/spree_section_pieces_for_mobile.yml b/spree_theme/db/seeds/spree_section_pieces_for_mobile.yml new file mode 100644 index 00000000..0fc91f44 --- /dev/null +++ b/spree_theme/db/seeds/spree_section_pieces_for_mobile.yml @@ -0,0 +1,262 @@ +# mobile section pieces +root_for_mobile: + id: 200 + title: root for mobile + slug: root-for-mobile + is_selectable: "1" + is_container: "1" + is_root: true + for_terminal: "1" + html: | + + + + <%= @current_page.title%> + + + + <%== meta_data_tags %> + <%= favicon_link_tag 'favicon.ico' %> + <%# it is in main app/assets/ include spree_theme, spree_china_checkout, store/product, store/cart, store/checkout ... %> + <%= javascript_include_tag 'spree/frontend/all.mobile', "data-turbolinks-track" => true %> + <%= stylesheet_link_tag 'store/spree_theme.mobile', "data-turbolinks-track" => true %> + <% if @current_page.is_preview %> + <%= stylesheet_link_tag 'store/spree_theme' %> + <% else%> + + <% end %> + <%= csrf_meta_tags %> + <%= render "spree/shared/sync_analytics" %> + + + <% if @current_page.site_design? && !@current_page.is_preview %> + <%= render "spree/shared/theme_selection_for_nondesigner" %> + <% end %> + <%= flash_messages %> +
              + ~~content~~ +
              +
              + <%= javascript_tag do -%> + g_client_info = <%== @client_info.to_json %> + <% end -%> + <% if @current_page.is_preview %> + <%= render 'layout_editor_panel' %> + <% end %> + <%= render "spree/shared/analytics" %> + + + css: |- + #page-inner + { position:relative; + <%= @template.css :inner %> + } + .clear-block:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; + font-size: 0; + } + .clear-block { + display: block; + } + + js: "" +bootstrap_container: + id: 201 + title: bootstrap container + slug: bootstrap-container + is_selectable: "1" + is_container: "1" + for_terminal: "1" + html: | +
              +
              ~~content~~
              +
              + css: | + /* width,height, skinnables */ + .<%=@template.section_selector%> + { + <%=@template.css(:block)%> + } + /* background, margin, border, padding */ + .<%=@template.section_selector%> > .inner + { overflow: hidden;/* keep border visible*/ + min-height:1px;min-width:1px; /* it is required as placeholder */ + <%=@template.css(:inner)%> + } + <% if @template.current_piece.column_count >0 %> + /* css for last column in row, feature center content */ + .<%=@template.current_piece.child_selector%>.data_last { margin-right:0; padding-right:0; border-right:0; } + <% end %> + + js: "" +bootstrap_column: + id: 202 + title: bootstrap column + slug: bootstrap-column + is_selectable: "1" + is_container: "1" + for_terminal: "1" + html: | +
              ~~content~~
              + css: | + .<%=@template.section_selector%> + { padding:0; margin:0 auto; + <%=@template.css(:block)%> + } + js: "" +bootstrap_glyphicon: + id: 203 + title: bootstrap glyphicon + slug: bootstrap-glyphicon + is_selectable: "1" + is_container: "0" + for_terminal: "1" + html: | + + css: '' + js: "" +font_awesome: + id: 204 + title: font awesome + slug: font-awesome + is_selectable: "1" + is_container: "0" + for_terminal: "1" + html: | + <%=@template.font_awesome %> + css: '' + js: "" +#http://www.tuicool.com/articles/3QnyAf , width is required, one line only. +product_name_with_ellipsis: + id: 205 + title: Product name with ellipsis + slug: product-name-with-ellipsis + is_selectable: "0" + is_container: "0" + for_terminal: "1" + html: | + <%= @template.product_attribute( :name ) %> + css: | + .<%=@template.section_selector%> a{ + <%= @template.css :a %> + } + .<%=@template.section_selector%> a:hover{ + <%= @template.css :a_h %> + } + .<%=@template.section_selector%> > .inner { + text-overflow:ellipsis; + } + .<%=@template.section_selector%> span { + white-space:nowrap; + } + js: "" +minicart_badge: + id: 206 + title: minicart badge + slug: minicart-badge + is_selectable: "0" + is_container: "0" + for_terminal: "1" + html: | + <%= link_to_cart_badge %> + css: "" + js: "" +option_values_for_mobile: + id: 207 + title: option values for mobile + slug: option-values-for-mobile + is_selectable: "1" + is_container: "0" + for_terminal: "1" + html: | + <% if defined? product %> + <%= render :partial => 'themes/product_options_for_mobile', :locals=>{:product=>product} %> + <% end%> + css: | + .<%=@template.section_selector%> .variant-option{ + display:none; + } + .<%=@template.section_selector%> ul.option_values { + list-style-type: none; + margin:0; + padding:0; + } + .<%=@template.section_selector%> .option_values li { + display: block; + position: relative; + float: left; + } + .option-value.selected, + .option-value.in-stock:hover { + background-color: #1491EB; + border-color: #1072B9; + color: #ffffff; + } + .<%=@template.section_selector%> .option_type{ <%=@template.css(:option_type)%> } + .<%=@template.section_selector%> .large_image{ <%=@template.css(:large_image)%> } + .<%=@template.section_selector%> .thumb_image{ <%=@template.css(:thumb_image)%> } + js: "" +bootstrap_carousel: + id: 208 + title: bootstrap carousel + slug: bootstrap-carousel + is_selectable: "1" + is_container: "0" + for_terminal: "1" + html: |- + <%# http://v3.bootcss.com/javascript/#carousel %> + + css: '' +cart_items_for_mobile: + id: 209 + title: cart items for mobile + slug: cart-items-for-mobile + is_selectable: "1" + is_container: "0" + for_terminal: "1" + html: | + <%= render :partial => 'spree/orders/form_bootstrap', :locals => { :order_form => order_form } %> + created_at: 2011-09-20 19:40:07 + updated_at: 2011-09-20 19:40:07 + css: |- + .<%=@template.section_selector%> .cart-item-image img {width:60px;} + js: "" +bootstrap_sign_up_form: + id: 210 + title: bootstrap sign up form + slug: bootstrap-sign-up-form + is_selectable: "1" + is_container: "0" + for_terminal: "1" + html: | + <%= render :partial => 'spree/user_registrations/new_bootstrap' %> + css: "" + js: "" diff --git a/spree_theme/db/themes/10_taxonomies.rb b/spree_theme/db/themes/10_taxonomies.rb deleted file mode 100644 index 6fef70fe..00000000 --- a/spree_theme/db/themes/10_taxonomies.rb +++ /dev/null @@ -1,45 +0,0 @@ -#encoding: utf-8 -taxonomies = [ -# { :name => "MainMenu" }, -# { :name => "Unlogged" }, -# { :name => "Logged" } -] - -taxonomies.each do |taxonomy_attrs| - Spree::Taxonomy.create!(taxonomy_attrs) -end - -#main_menu = Spree::Taxonomy.find_by_name!("MainMenu") -#unlogged = Spree::Taxonomy.find_by_name!("Unlogged") -#logged = Spree::Taxonomy.find_by_name!("Logged") - -taxons = [ -# { -# :name => "首页", -# :taxonomy => main_menu, -# :parent => "MainMenu", -# :page_context => 1, -# :position => 1 -# }, -# { -# :name => "Login", -# :taxonomy => unlogged, -# :parent => "Unlogged", -# :page_context => 6, -# :position => 1 -# }, -# { -# :name => "My account", -# :taxonomy => logged, -# :parent => "Logged", -# :page_context => 7, -# :position => 1 -# }, -] - -taxons.each do |taxon_attrs| - if taxon_attrs[:parent] - taxon_attrs[:parent] = Spree::Taxon.find_by_name!(taxon_attrs[:parent]) - Spree::Taxon.create!(taxon_attrs, :without_protection => true) - end -end diff --git a/spree_theme/db/themes/11_templates.rb b/spree_theme/db/themes/11_templates.rb index 71e525ee..22b65a31 100644 --- a/spree_theme/db/themes/11_templates.rb +++ b/spree_theme/db/themes/11_templates.rb @@ -1,25 +1,26 @@ -=begin -objs=[ - { "is_enabled"=>true, "section_id"=>1, "id"=>1, "root_id"=>1, "parent_id"=>0, "lft"=>1, "rgt"=>10, "section_instance"=>0, "slug"=>"layout1"}, - { "is_enabled"=>true, "section_id"=>2, "id"=>2, "root_id"=>1, "parent_id"=>1, "lft"=>2, "rgt"=>9, "section_instance"=>0, "slug"=>"bd"}, - { "is_enabled"=>true, "section_id"=>2, "id"=>3, "root_id"=>1, "parent_id"=>2, "lft"=>3, "rgt"=>4, "section_instance"=>2, "slug"=>"header"}, - { "is_enabled"=>true, "section_id"=>2, "id"=>4, "root_id"=>1, "parent_id"=>2, "lft"=>5, "rgt"=>8, "section_instance"=>3, "slug"=>"content"}, - { "is_enabled"=>true, "section_id"=>3, "id"=>5, "root_id"=>1, "parent_id"=>4, "lft"=>6, "rgt"=>7, "section_instance"=>0, "slug"=>"menu"}] - - PageLayout.delete_all - for ha in objs - obj = PageLayout.new - obj.send(:attributes=, ha, false) - obj.save - end -=end +#objs=[ +# { "is_enabled"=>true, "section_id"=>1, "id"=>1, "root_id"=>1, "parent_id"=>0, "lft"=>1, "rgt"=>10, "section_instance"=>0, "slug"=>"layout1"}, +# { "is_enabled"=>true, "section_id"=>2, "id"=>2, "root_id"=>1, "parent_id"=>1, "lft"=>2, "rgt"=>9, "section_instance"=>0, "slug"=>"bd"}, +# { "is_enabled"=>true, "section_id"=>2, "id"=>3, "root_id"=>1, "parent_id"=>2, "lft"=>3, "rgt"=>4, "section_instance"=>2, "slug"=>"header"}, +# { "is_enabled"=>true, "section_id"=>2, "id"=>4, "root_id"=>1, "parent_id"=>2, "lft"=>5, "rgt"=>8, "section_instance"=>3, "slug"=>"content"}, +# { "is_enabled"=>true, "section_id"=>3, "id"=>5, "root_id"=>1, "parent_id"=>4, "lft"=>6, "rgt"=>7, "section_instance"=>0, "slug"=>"menu"}] +# +# PageLayout.delete_all +# for ha in objs +# obj = PageLayout.new +# obj.send(:attributes=, ha, false) +# obj.save +# end +bool_false = Spree::HtmlAttribute::BOOL_FALSE +bool_true = Spree::HtmlAttribute::BOOL_TRUE # section slugs= [root,container,menu] objects = Spree::Section.roots section_hash= objects.inject({}){|h,sp| h[sp.slug] = sp; h} # puts "section_hash=#{section_hash.keys}" template = Spree::TemplateTheme.create_plain_template(section_hash['root2'], "Template One") -document = template.page_layout + +document = template.page_layout_root header = template.add_section(section_hash['container'],document, :title=>"Header") template.add_section(section_hash['image'], header,:title=>"Logo") main_menu = template.add_section(section_hash['hmenu'], header,:title=>"Main menu") @@ -34,10 +35,10 @@ template.add_section(section_hash['vmenu'], lftnav, :title=>"Categories") product_list = template.add_section(section_hash['container'], main_content, :title=>"product list") -product_detail = template.add_section(section_hash['container'], main_content, :title=>"product detail") +product_detail = template.add_section(section_hash['container'], main_content, { title: "product detail"}) product = template.add_section(section_hash['container'], product_list, :title=>"product") -template.add_section(section_hash['product-name'], product, :title=>"product name") -template.add_section(section_hash['product-image'], product, :title=>"product image") +template.add_section(section_hash['product-name'], product, { title: "product name", content_param: 1 }) +template.add_section(section_hash['product-image'], product, { title: "product name", content_param: 1 }) template.add_section(section_hash['product-price'], product, :title=>"product price") detail_left = template.add_section(section_hash['container'], product_detail, :title=>"left part") @@ -45,22 +46,23 @@ template.add_section(section_hash['product-image-with-thumbnails'], detail_left, :title=>"image with thumbnails") template.add_section(section_hash['product-properties'], detail_left, :title=>"product_properties") - + template.add_section(section_hash['product-name'], detail_right, :title=>"product name") template.add_section(section_hash['product-description'], detail_right, :title=>"product description") template.add_section(section_hash['product-price'], detail_right, :title=>"product price") qty_atc_container = template.add_section(section_hash['container'], detail_right, :title=>"container") +template.add_section(section_hash['product-option-values'], qty_atc_container, :title=>"product options") template.add_section(section_hash['product-quantity'], qty_atc_container, :title=>"product quantity") template.add_section(section_hash['product-atc'], qty_atc_container, :title=>"product atc") others = template.add_section(section_hash['container'], main_content, :title=>"Others") template.add_section(section_hash['taxon-name'], others, :title=>"Taxon name") -cart = template.add_section(section_hash['cart'], others, :title=>"Cart") +cart = template.add_section(section_hash['cart-form'], others, :title=>"Cart") template.add_section(section_hash['cart-items'], cart, :title=>"Cart items") template.add_section(section_hash['order-total-price'], cart, :title=>"Order total price") -checkout = template.add_section(section_hash['checkout'], others, :title=>"Checkout") +checkout = template.add_section(section_hash['checkout-form'], others, :title=>"Checkout") template.add_section(section_hash['ship-form'], checkout, :title=>"Ship form") template.add_section(section_hash['payment-form'], checkout, :title=>"Payment form") @@ -76,11 +78,13 @@ template.add_section(section_hash['order-list'], account, :title=>"Order history") login = template.add_section(section_hash['container'], others, :title=>"Login") - template.add_section(section_hash['login-form'], login, :title=>"Login form") - + template.add_section(section_hash['sign-in-form'], login, :title=>"Login form") + signup = template.add_section(section_hash['container'], others, :title=>"Signup") template.add_section(section_hash['sign-up-form'], signup, :title=>"Sign up form") + +# set context others.reload others.update_section_context( [Spree::PageLayout::ContextEnum.cart,Spree::PageLayout::ContextEnum.checkout, Spree::PageLayout::ContextEnum.thanks, Spree::PageLayout::ContextEnum.login, Spree::PageLayout::ContextEnum.signup, Spree::PageLayout::ContextEnum.account] ) cart.reload @@ -99,11 +103,13 @@ product_list.reload #reload left, right product_detail.reload #reload left, right product_list.update_section_context( Spree::PageLayout::ContextEnum.list ) -product_list.update_data_source( Spree::PageLayout::ContextDataSourceMap[Spree::PageLayout::ContextEnum.list].first ) +product_list.update_data_source( Spree::PageLayout::DataSourceEnum.gpvs ) product_detail.update_section_context( Spree::PageLayout::ContextEnum.detail ) -product_detail.update_data_source( Spree::PageLayout::ContextDataSourceMap[Spree::PageLayout::ContextEnum.detail].first ) +product_detail.update_data_source( Spree::PageLayout::DataSourceEnum.this_product ) +#form enable +product_detail.update_attribute( :content_param, 512 ) template.add_section(section_hash['hmenu'], footer, :title=>"footer menu") diff --git a/spree_theme/db/themes/14_template_images.rb b/spree_theme/db/themes/14_template_images.rb index d60083c3..4c9ac0ca 100644 --- a/spree_theme/db/themes/14_template_images.rb +++ b/spree_theme/db/themes/14_template_images.rb @@ -1,10 +1,10 @@ base_path = File.expand_path(File.join( File.dirname(__FILE__), 'template_images')) -logo_file_path = File.join(base_path, 'logo.gif') +logo_file_path = File.join(base_path, 'logo.png') -File.open(logo_file_path) do|f| +File.open(logo_file_path) do|f| image = Spree::TemplateFile.new image.template_theme = Spree::TemplateTheme.find_by_title('Template One') - image.attachment =f + image.attachment =f image.save! end diff --git a/spree_theme/db/themes/15_configure_template.rb b/spree_theme/db/themes/15_configure_template.rb index 12e4dba0..7547f998 100644 --- a/spree_theme/db/themes/15_configure_template.rb +++ b/spree_theme/db/themes/15_configure_template.rb @@ -1,26 +1,11 @@ ################################# template resource ##################################### template = Spree::TemplateTheme.first -taxon_class = SpreeTheme.taxon_class - -categories = taxon_class.find_by_name("Categories") -brands = taxon_class.find_by_name("Brand") -main_menu = taxon_class.find_by_name("MainMenu") - -#main_menu_section = template.page_layout.self_and_descendants.where(:title=>title).first - -#template.assign_resource(main_menu, main_menu_section) -main_menu_section = template.page_layout.self_and_descendants.where(:title=>'Main menu').first -#template.assign_resource(main_menu, main_menu_section) - -category_section = template.page_layout.self_and_descendants.where(:title=>'Categories').first -template.assign_resource(categories, category_section) - - +main_menu_section = template.page_layouts.where(:title=>'Main menu').first template_files = template.template_files title="Logo" -logo_section = template.page_layout.self_and_descendants.where(:title=>title).first +logo_section = template.page_layouts.where(:title=>title).first logo_file = template_files.select{|file| file.attachment_file_name=~/logo/ }.first template.assign_resource(logo_file, logo_section) @@ -40,19 +25,25 @@ when 'content' partial_html['block_height']['unset'] = true partial_html['block_height'].update + partial_html['content_layout_clear']['unset'] = false partial_html['content_layout_clear']['psvalue'] = 'none' partial_html['content_layout_clear'].update - + when 'main content' partial_html['block_height']['unset'] = true partial_html['block_height'].update partial_html['block_width']['pvalue'] = 600 + partial_html['block_width']['unit'] = 'px' partial_html['block_width'].update - + when 'Others','Login','Account','Signup', 'product list', 'product detail', 'product', 'left part', 'right part' + partial_html['block_height']['unset'] = true + partial_html['block_height'].update + when 'lftnav' partial_html['block_height']['unset'] = true partial_html['block_height'].update partial_html['block_width']['pvalue'] = 200 + partial_html['block_width']['unit'] = 'px' partial_html['block_width'].update partial_html['inner_background-color']['pvalue'] = '#FFF8ED' partial_html['inner_background-color'].update @@ -60,4 +51,4 @@ partial_html['inner_background-color']['pvalue'] = '#F5F5F5' partial_html['inner_background-color'].update end -end \ No newline at end of file +end diff --git a/spree_theme/db/themes/16_template_release.rb b/spree_theme/db/themes/16_template_release.rb index 78924daf..cef5fbc8 100644 --- a/spree_theme/db/themes/16_template_release.rb +++ b/spree_theme/db/themes/16_template_release.rb @@ -2,4 +2,4 @@ @theme = Spree::TemplateTheme.first @theme.release -SpreeTheme.site_class.current.apply_theme @theme +Spree::Store.current.apply_theme @theme diff --git a/spree_theme/db/themes/designs/1_2_1406938122.yml b/spree_theme/db/themes/designs/1_2_1406938122.yml deleted file mode 100644 index a4f9d32a..00000000 --- a/spree_theme/db/themes/designs/1_2_1406938122.yml +++ /dev/null @@ -1 +0,0 @@ -{"template":{"assigned_resource_ids":{"69":{"spree/taxon":[23]},"78":{"spree/template_text":[1]},"79":{"spree/template_text":[0]},"80":{"spree/template_text":[0]},"82":{"spree/template_text":[4]}},"created_at":"2014-03-09T01:13:21.000Z","id":2,"page_layout_root_id":64,"release_id":6,"site_id":1,"slug":"","title":"Dalianshops","updated_at":"2014-07-31T14:19:41.000Z"},"param_values":[{"computed_pvalue":null,"created_at":"2014-03-09T01:13:22.000Z","id":811,"page_layout_id":64,"page_layout_root_id":64,"pvalue":{"21":"width:800px","21unset":"1","20":"min-width:800px","20hidden":"1"},"section_param_id":1,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:20.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T01:13:22.000Z","id":812,"page_layout_id":64,"page_layout_root_id":64,"pvalue":{},"section_param_id":2,"theme_id":2,"unset":null,"updated_at":"2014-03-09T01:13:22.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T01:13:22.000Z","id":813,"page_layout_id":64,"page_layout_root_id":64,"pvalue":{"85":"clear:both"},"section_param_id":3,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:20.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T01:13:22.000Z","id":814,"page_layout_id":64,"page_layout_root_id":64,"pvalue":{"2unset":"0","2":"background-color:#EFEFEF"},"section_param_id":4,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:20.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T01:13:22.000Z","id":815,"page_layout_id":64,"page_layout_root_id":64,"pvalue":{},"section_param_id":5,"theme_id":2,"unset":null,"updated_at":"2014-03-09T01:13:22.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:07:03.000Z","id":816,"page_layout_id":65,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:07:03.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:07:03.000Z","id":817,"page_layout_id":65,"page_layout_root_id":64,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:20.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:07:03.000Z","id":818,"page_layout_id":65,"page_layout_root_id":64,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto auto"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:20.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:07:03.000Z","id":819,"page_layout_id":65,"page_layout_root_id":64,"pvalue":{"2unset":"1","2":"background-color:#EFEFEF"},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:20.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:07:03.000Z","id":820,"page_layout_id":65,"page_layout_root_id":64,"pvalue":{"53unset":"0","53":"text-align:center"},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:20.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:07:08.000Z","id":821,"page_layout_id":66,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:07:08.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:07:08.000Z","id":822,"page_layout_id":66,"page_layout_root_id":64,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:20.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:07:08.000Z","id":823,"page_layout_id":66,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:20.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:07:08.000Z","id":824,"page_layout_id":66,"page_layout_root_id":64,"pvalue":{"2unset":"0","2":"background-color:black"},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:20.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:07:08.000Z","id":825,"page_layout_id":66,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:07:08.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:07:12.000Z","id":826,"page_layout_id":67,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:07:12.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:07:12.000Z","id":827,"page_layout_id":67,"page_layout_root_id":64,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:800px"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:20.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:07:12.000Z","id":828,"page_layout_id":67,"page_layout_root_id":64,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto auto","7unset":"0","7":"border-style:solid none none none","8unset":"0","8":"border-width:1px 0px 0px 0px","6unset":"0","6":"border-color:#CCCCCC transparent transparent transparent"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:20.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:07:12.000Z","id":829,"page_layout_id":67,"page_layout_root_id":64,"pvalue":{},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:07:12.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:07:12.000Z","id":830,"page_layout_id":67,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:07:12.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:05.000Z","id":831,"page_layout_id":68,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:05.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:05.000Z","id":832,"page_layout_id":68,"page_layout_root_id":64,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:320px"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:20.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:05.000Z","id":833,"page_layout_id":68,"page_layout_root_id":64,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto 260px","15unset":"1","15":"height:100px"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:20.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:05.000Z","id":834,"page_layout_id":68,"page_layout_root_id":64,"pvalue":{},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:05.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:05.000Z","id":835,"page_layout_id":68,"page_layout_root_id":64,"pvalue":{"53unset":"1","53":"text-align:center"},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":836,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":11,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":837,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{"21unset":"1","21":"width:600px"},"section_param_id":12,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":838,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto 250px","32unset":"0","32":"padding:5px 0px 5px 0px"},"section_param_id":13,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":839,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":14,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":840,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{"53unset":"1","53":"text-align:center"},"section_param_id":15,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":841,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{"32unset":"0","32":"padding:5px 5px 5px 5px"},"section_param_id":16,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":842,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{"54unset":"0","54":"text-decoration:none","49unset":"0","49":"color:black","27unset":"0","27":"font-weight:bolder","24unset":"0","24":"font-size:90%"},"section_param_id":17,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":843,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{"49unset":"0","49":"color:#4183C4"},"section_param_id":18,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":844,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":19,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":845,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":20,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":846,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":21,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":847,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":22,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":848,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":23,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":849,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":24,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":850,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":25,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":851,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":26,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:39.000Z","id":852,"page_layout_id":70,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:39.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:39.000Z","id":853,"page_layout_id":70,"page_layout_root_id":64,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:200px"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:39.000Z","id":854,"page_layout_id":70,"page_layout_root_id":64,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto 300px"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:39.000Z","id":855,"page_layout_id":70,"page_layout_root_id":64,"pvalue":{},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:39.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:08:39.000Z","id":856,"page_layout_id":70,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:39.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:09:00.000Z","id":857,"page_layout_id":71,"page_layout_root_id":64,"pvalue":{},"section_param_id":323,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:09:00.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:09:00.000Z","id":858,"page_layout_id":71,"page_layout_root_id":64,"pvalue":{},"section_param_id":324,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:09:00.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:09:00.000Z","id":859,"page_layout_id":71,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":325,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:09:00.000Z","id":860,"page_layout_id":71,"page_layout_root_id":64,"pvalue":{},"section_param_id":326,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:09:00.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T02:09:00.000Z","id":861,"page_layout_id":71,"page_layout_root_id":64,"pvalue":{},"section_param_id":327,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:09:00.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T03:11:13.000Z","id":862,"page_layout_id":72,"page_layout_root_id":64,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T03:11:14.000Z","id":863,"page_layout_id":72,"page_layout_root_id":64,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:800px"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T03:11:14.000Z","id":864,"page_layout_id":72,"page_layout_root_id":64,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:20px 0px 20px 0px"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T03:11:14.000Z","id":865,"page_layout_id":72,"page_layout_root_id":64,"pvalue":{"2unset":"1","2":"background-color:white"},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T03:11:14.000Z","id":866,"page_layout_id":72,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-03-09T03:11:14.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T03:13:28.000Z","id":867,"page_layout_id":73,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-03-09T03:13:28.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T03:13:28.000Z","id":868,"page_layout_id":73,"page_layout_root_id":64,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:800px"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T03:13:28.000Z","id":869,"page_layout_id":73,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T03:13:28.000Z","id":870,"page_layout_id":73,"page_layout_root_id":64,"pvalue":{},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-03-09T03:13:28.000Z"},{"computed_pvalue":null,"created_at":"2014-03-09T03:13:28.000Z","id":871,"page_layout_id":73,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-03-09T03:13:28.000Z"},{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":872,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":367,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:42.000Z"},{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":873,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"21unset":"0","21":"width:290px","101unset":"0","101":"float:right"},"section_param_id":368,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":874,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:100px auto auto auto"},"section_param_id":369,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":875,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"3unset":"1","3":"background-image:"},"section_param_id":370,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":876,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":371,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:42.000Z"},{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":877,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":372,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:42.000Z"},{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":878,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":373,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:42.000Z"},{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":879,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":374,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:42.000Z"},{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":880,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"21unset":"0","21":"width:260px","31unset":"0","31":"margin:auto auto 5px auto","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#CCCCCC #CCCCCC #CCCCCC #CCCCCC","32unset":"0","32":"padding:5px 10px 5px 10px"},"section_param_id":375,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":881,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":376,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:43.000Z"},{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":882,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":377,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:43.000Z"},{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":883,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":378,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:43.000Z"},{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":884,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":379,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:43.000Z"},{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":885,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"49unset":"0","49":"color:red"},"section_param_id":380,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":886,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":381,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:43.000Z"},{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":887,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"21unset":"0","21":"width:280px","32unset":"0","32":"padding:5px 10px 5px 10px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:transparent transparent transparent transparent"},"section_param_id":382,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":888,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"2unset":"0","2":"background-color:#73CF54"},"section_param_id":383,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":889,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"49unset":"0","49":"color:white","27unset":"0","27":"font-weight:bolder"},"section_param_id":384,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":890,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":385,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:43.000Z"},{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":891,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"2unset":"0","2":"background-color:#62B246"},"section_param_id":386,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":892,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":387,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:43.000Z"},{"computed_pvalue":null,"created_at":"2014-03-15T08:35:58.000Z","id":893,"page_layout_id":78,"page_layout_root_id":64,"pvalue":{},"section_param_id":50,"theme_id":2,"unset":null,"updated_at":"2014-03-15T08:35:58.000Z"},{"computed_pvalue":null,"created_at":"2014-03-15T08:35:58.000Z","id":894,"page_layout_id":78,"page_layout_root_id":64,"pvalue":{"21unset":"0","21":"width:400px","15unset":"1","15":"height:220px","101unset":"1","101":"float:left"},"section_param_id":51,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-15T08:35:58.000Z","id":895,"page_layout_id":78,"page_layout_root_id":64,"pvalue":{"15hidden":"1","15unset":"1","15":"height:220px"},"section_param_id":52,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-15T08:35:58.000Z","id":896,"page_layout_id":78,"page_layout_root_id":64,"pvalue":{},"section_param_id":53,"theme_id":2,"unset":null,"updated_at":"2014-03-15T08:35:58.000Z"},{"computed_pvalue":null,"created_at":"2014-03-15T08:35:58.000Z","id":897,"page_layout_id":78,"page_layout_root_id":64,"pvalue":{"49unset":"0","49":"color:white"},"section_param_id":54,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-17T12:57:54.000Z","id":898,"page_layout_id":79,"page_layout_root_id":64,"pvalue":{},"section_param_id":50,"theme_id":2,"unset":null,"updated_at":"2014-03-17T12:57:54.000Z"},{"computed_pvalue":null,"created_at":"2014-03-17T12:57:54.000Z","id":899,"page_layout_id":79,"page_layout_root_id":64,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":51,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-17T12:57:54.000Z","id":900,"page_layout_id":79,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":52,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-17T12:57:54.000Z","id":901,"page_layout_id":79,"page_layout_root_id":64,"pvalue":{},"section_param_id":53,"theme_id":2,"unset":null,"updated_at":"2014-03-17T12:57:54.000Z"},{"computed_pvalue":null,"created_at":"2014-03-17T12:57:54.000Z","id":902,"page_layout_id":79,"page_layout_root_id":64,"pvalue":{},"section_param_id":54,"theme_id":2,"unset":null,"updated_at":"2014-03-17T12:57:54.000Z"},{"computed_pvalue":null,"created_at":"2014-03-18T13:23:00.000Z","id":903,"page_layout_id":81,"page_layout_root_id":64,"pvalue":{},"section_param_id":362,"theme_id":2,"unset":null,"updated_at":"2014-03-18T13:23:00.000Z"},{"computed_pvalue":null,"created_at":"2014-03-18T13:23:00.000Z","id":904,"page_layout_id":81,"page_layout_root_id":64,"pvalue":{"21unset":"0","21":"width:800px","101unset":"0","101":"float:none"},"section_param_id":363,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-18T13:23:00.000Z","id":905,"page_layout_id":81,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":364,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-18T13:23:00.000Z","id":906,"page_layout_id":81,"page_layout_root_id":64,"pvalue":{},"section_param_id":365,"theme_id":2,"unset":null,"updated_at":"2014-03-18T13:23:00.000Z"},{"computed_pvalue":null,"created_at":"2014-03-18T13:23:00.000Z","id":907,"page_layout_id":81,"page_layout_root_id":64,"pvalue":{},"section_param_id":366,"theme_id":2,"unset":null,"updated_at":"2014-03-18T13:23:00.000Z"},{"computed_pvalue":null,"created_at":"2014-03-18T13:48:55.000Z","id":908,"page_layout_id":82,"page_layout_root_id":64,"pvalue":{},"section_param_id":50,"theme_id":2,"unset":null,"updated_at":"2014-03-18T13:48:55.000Z"},{"computed_pvalue":null,"created_at":"2014-03-18T13:48:55.000Z","id":909,"page_layout_id":82,"page_layout_root_id":64,"pvalue":{},"section_param_id":51,"theme_id":2,"unset":null,"updated_at":"2014-03-18T13:48:55.000Z"},{"computed_pvalue":null,"created_at":"2014-03-18T13:48:55.000Z","id":910,"page_layout_id":82,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":52,"theme_id":2,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2014-03-18T13:48:55.000Z","id":911,"page_layout_id":82,"page_layout_root_id":64,"pvalue":{},"section_param_id":53,"theme_id":2,"unset":null,"updated_at":"2014-03-18T13:48:55.000Z"},{"computed_pvalue":null,"created_at":"2014-03-18T13:48:55.000Z","id":912,"page_layout_id":82,"page_layout_root_id":64,"pvalue":{},"section_param_id":54,"theme_id":2,"unset":null,"updated_at":"2014-03-18T13:48:55.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4130,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":420,"theme_id":2,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4147,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":423,"theme_id":2,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4164,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":426,"theme_id":2,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4181,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":429,"theme_id":2,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4198,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":432,"theme_id":2,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4215,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":435,"theme_id":2,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4232,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":438,"theme_id":2,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4249,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":441,"theme_id":2,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4266,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":444,"theme_id":2,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}],"page_layouts":[{"copy_from_root_id":0,"created_at":"2014-03-09T01:13:22.000Z","data_filter":"","data_source":"","id":64,"is_enabled":true,"is_full_html":true,"lft":1,"parent_id":null,"rgt":30,"root_id":64,"section_context":"","section_id":1,"section_instance":1,"site_id":1,"slug":"pageroot","title":"PageRoot","updated_at":"2014-07-12T06:22:33.000Z"},{"copy_from_root_id":0,"created_at":"2014-03-09T02:07:03.000Z","data_filter":"","data_source":"","id":65,"is_enabled":true,"is_full_html":false,"lft":2,"parent_id":64,"rgt":11,"root_id":64,"section_context":"","section_id":2,"section_instance":1,"site_id":1,"slug":"header--4","title":"header","updated_at":"2014-07-12T06:27:35.000Z"},{"copy_from_root_id":0,"created_at":"2014-03-09T02:08:39.000Z","data_filter":"","data_source":"","id":70,"is_enabled":true,"is_full_html":false,"lft":3,"parent_id":65,"rgt":6,"root_id":64,"section_context":"","section_id":2,"section_instance":5,"site_id":1,"slug":"container--2","title":"container","updated_at":"2014-07-12T06:27:35.000Z"},{"copy_from_root_id":0,"created_at":"2014-03-09T02:09:00.000Z","data_filter":"","data_source":"","id":71,"is_enabled":true,"is_full_html":false,"lft":4,"parent_id":70,"rgt":5,"root_id":64,"section_context":"","section_id":97,"section_instance":1,"site_id":1,"slug":"logo--4","title":"Logo","updated_at":"2014-07-12T06:27:35.000Z"},{"copy_from_root_id":0,"created_at":"2014-03-09T02:08:05.000Z","data_filter":"","data_source":"","id":68,"is_enabled":true,"is_full_html":false,"lft":7,"parent_id":65,"rgt":10,"root_id":64,"section_context":"","section_id":2,"section_instance":4,"site_id":1,"slug":"container","title":"container","updated_at":"2014-07-12T06:27:35.000Z"},{"copy_from_root_id":0,"created_at":"2014-03-09T02:08:32.000Z","data_filter":"","data_source":"","id":69,"is_enabled":true,"is_full_html":false,"lft":8,"parent_id":68,"rgt":9,"root_id":64,"section_context":"","section_id":3,"section_instance":1,"site_id":1,"slug":"hmenu","title":"hmenu","updated_at":"2014-07-12T06:27:35.000Z"},{"copy_from_root_id":0,"created_at":"2014-03-09T02:07:08.000Z","data_filter":"","data_source":"","id":66,"is_enabled":true,"is_full_html":false,"lft":12,"parent_id":64,"rgt":19,"root_id":64,"section_context":"home","section_id":2,"section_instance":2,"site_id":1,"slug":"slogan","title":"slogan","updated_at":"2014-07-12T06:27:35.000Z"},{"copy_from_root_id":0,"created_at":"2014-03-09T03:11:13.000Z","data_filter":"","data_source":"","id":72,"is_enabled":true,"is_full_html":false,"lft":13,"parent_id":66,"rgt":18,"root_id":64,"section_context":"","section_id":2,"section_instance":6,"site_id":1,"slug":"container--3","title":"container","updated_at":"2014-07-12T06:27:35.000Z"},{"copy_from_root_id":0,"created_at":"2014-03-15T08:35:58.000Z","data_filter":"","data_source":"","id":78,"is_enabled":true,"is_full_html":false,"lft":14,"parent_id":72,"rgt":15,"root_id":64,"section_context":"","section_id":11,"section_instance":1,"site_id":1,"slug":"text","title":"text","updated_at":"2014-07-12T06:27:35.000Z"},{"copy_from_root_id":0,"created_at":"2014-03-10T12:22:42.000Z","data_filter":"","data_source":"","id":77,"is_enabled":true,"is_full_html":false,"lft":16,"parent_id":72,"rgt":17,"root_id":64,"section_context":"","section_id":111,"section_instance":1,"site_id":1,"slug":"site-form","title":"Site form","updated_at":"2014-07-12T06:27:35.000Z"},{"copy_from_root_id":0,"created_at":"2014-03-18T13:23:00.000Z","data_filter":"","data_source":"","id":81,"is_enabled":true,"is_full_html":false,"lft":20,"parent_id":64,"rgt":21,"root_id":64,"section_context":"","section_id":109,"section_instance":1,"site_id":1,"slug":"taxon-description","title":"Taxon description","updated_at":"2014-07-12T06:27:35.000Z"},{"copy_from_root_id":0,"created_at":"2014-03-09T03:13:27.000Z","data_filter":"","data_source":"","id":73,"is_enabled":true,"is_full_html":false,"lft":22,"parent_id":64,"rgt":25,"root_id":64,"section_context":"","section_id":2,"section_instance":7,"site_id":1,"slug":"container--4","title":"container","updated_at":"2014-07-12T06:27:35.000Z"},{"copy_from_root_id":0,"created_at":"2014-03-17T12:57:54.000Z","data_filter":"","data_source":"","id":79,"is_enabled":true,"is_full_html":false,"lft":23,"parent_id":73,"rgt":24,"root_id":64,"section_context":"","section_id":11,"section_instance":2,"site_id":1,"slug":"text--2","title":"text","updated_at":"2014-07-12T06:27:35.000Z"},{"copy_from_root_id":0,"created_at":"2014-03-09T02:07:12.000Z","data_filter":"","data_source":"","id":67,"is_enabled":true,"is_full_html":false,"lft":26,"parent_id":64,"rgt":29,"root_id":64,"section_context":"","section_id":2,"section_instance":3,"site_id":1,"slug":"footer--4","title":"footer","updated_at":"2014-07-12T06:27:35.000Z"},{"copy_from_root_id":0,"created_at":"2014-03-18T13:48:55.000Z","data_filter":"","data_source":"","id":82,"is_enabled":true,"is_full_html":false,"lft":27,"parent_id":67,"rgt":28,"root_id":64,"section_context":"","section_id":11,"section_instance":3,"site_id":1,"slug":"text--3","title":"text","updated_at":"2014-07-12T06:27:35.000Z"}],"template_files":[],"template_releases":[{"created_at":"2014-06-21T13:37:49.000Z","id":6,"name":"just a test","theme_id":2,"updated_at":"2014-06-21T13:37:49.000Z"}]} \ No newline at end of file diff --git a/spree_theme/db/themes/designs/1_2_1408541489.yml b/spree_theme/db/themes/designs/1_2_1408541489.yml deleted file mode 100644 index 66fdf132..00000000 --- a/spree_theme/db/themes/designs/1_2_1408541489.yml +++ /dev/null @@ -1,1854 +0,0 @@ ---- -template: !ruby/object:Spree::TemplateTheme - attributes: - id: 2 - site_id: 1 - page_layout_root_id: 64 - release_id: 6 - title: Dalianshops - slug: '' - assigned_resource_ids: - '69': - :spree/taxon: - - 23 - '78': - :spree/template_text: - - 1 - '79': - :spree/template_text: - - 0 - '80': - :spree/template_text: - - 0 - '82': - :spree/template_text: - - 4 - created_at: 2014-03-09 01:13:21.000000000 Z - updated_at: 2014-08-09 07:34:42.000000000 Z -param_values: -- !ruby/object:Spree::ParamValue - attributes: - id: 811 - page_layout_root_id: 64 - page_layout_id: 64 - section_param_id: 1 - theme_id: 2 - pvalue: - '21': width:800px - 21unset: '1' - '20': min-width:800px - 20hidden: '1' - unset: - computed_pvalue: - created_at: 2014-03-09 01:13:22.000000000 Z - updated_at: 2014-08-09 07:34:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 812 - page_layout_root_id: 64 - page_layout_id: 64 - section_param_id: 2 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 01:13:22.000000000 Z - updated_at: 2014-03-09 01:13:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 813 - page_layout_root_id: 64 - page_layout_id: 64 - section_param_id: 3 - theme_id: 2 - pvalue: - '85': clear:both - unset: - computed_pvalue: - created_at: 2014-03-09 01:13:22.000000000 Z - updated_at: 2014-08-09 07:34:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 814 - page_layout_root_id: 64 - page_layout_id: 64 - section_param_id: 4 - theme_id: 2 - pvalue: - 2unset: '0' - '2': background-color:#EFEFEF - unset: - computed_pvalue: - created_at: 2014-03-09 01:13:22.000000000 Z - updated_at: 2014-08-09 07:34:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 815 - page_layout_root_id: 64 - page_layout_id: 64 - section_param_id: 5 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 01:13:22.000000000 Z - updated_at: 2014-03-09 01:13:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 816 - page_layout_root_id: 64 - page_layout_id: 65 - section_param_id: 6 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:07:03.000000000 Z - updated_at: 2014-03-09 02:07:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 817 - page_layout_root_id: 64 - page_layout_id: 65 - section_param_id: 7 - theme_id: 2 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2014-03-09 02:07:03.000000000 Z - updated_at: 2014-08-09 07:34:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 818 - page_layout_root_id: 64 - page_layout_id: 65 - section_param_id: 8 - theme_id: 2 - pvalue: - 15hidden: '1' - 31unset: '1' - '31': margin:auto auto auto auto - unset: - computed_pvalue: - created_at: 2014-03-09 02:07:03.000000000 Z - updated_at: 2014-08-09 07:34:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 819 - page_layout_root_id: 64 - page_layout_id: 65 - section_param_id: 9 - theme_id: 2 - pvalue: - 2unset: '1' - '2': background-color:#EFEFEF - unset: - computed_pvalue: - created_at: 2014-03-09 02:07:03.000000000 Z - updated_at: 2014-08-09 07:34:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 820 - page_layout_root_id: 64 - page_layout_id: 65 - section_param_id: 10 - theme_id: 2 - pvalue: - 53unset: '0' - '53': text-align:center - unset: - computed_pvalue: - created_at: 2014-03-09 02:07:03.000000000 Z - updated_at: 2014-08-09 07:34:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 821 - page_layout_root_id: 64 - page_layout_id: 66 - section_param_id: 6 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:07:08.000000000 Z - updated_at: 2014-03-09 02:07:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 822 - page_layout_root_id: 64 - page_layout_id: 66 - section_param_id: 7 - theme_id: 2 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2014-03-09 02:07:08.000000000 Z - updated_at: 2014-08-09 07:34:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 823 - page_layout_root_id: 64 - page_layout_id: 66 - section_param_id: 8 - theme_id: 2 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-03-09 02:07:08.000000000 Z - updated_at: 2014-08-09 07:34:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 824 - page_layout_root_id: 64 - page_layout_id: 66 - section_param_id: 9 - theme_id: 2 - pvalue: - 2unset: '0' - '2': background-color:black - unset: - computed_pvalue: - created_at: 2014-03-09 02:07:08.000000000 Z - updated_at: 2014-08-09 07:34:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 825 - page_layout_root_id: 64 - page_layout_id: 66 - section_param_id: 10 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:07:08.000000000 Z - updated_at: 2014-03-09 02:07:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 826 - page_layout_root_id: 64 - page_layout_id: 67 - section_param_id: 6 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:07:12.000000000 Z - updated_at: 2014-03-09 02:07:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 827 - page_layout_root_id: 64 - page_layout_id: 67 - section_param_id: 7 - theme_id: 2 - pvalue: - '101': float:none - 101unset: '0' - '15': height:100px - 15unset: '1' - 21unset: '0' - '21': width:800px - unset: - computed_pvalue: - created_at: 2014-03-09 02:07:12.000000000 Z - updated_at: 2014-08-09 07:34:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 828 - page_layout_root_id: 64 - page_layout_id: 67 - section_param_id: 8 - theme_id: 2 - pvalue: - 15hidden: '1' - 31unset: '1' - '31': margin:auto auto auto auto - 7unset: '0' - '7': border-style:solid none none none - 8unset: '0' - '8': border-width:1px 0px 0px 0px - 6unset: '0' - '6': border-color:#CCCCCC transparent transparent transparent - unset: - computed_pvalue: - created_at: 2014-03-09 02:07:12.000000000 Z - updated_at: 2014-08-09 07:34:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 829 - page_layout_root_id: 64 - page_layout_id: 67 - section_param_id: 9 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:07:12.000000000 Z - updated_at: 2014-03-09 02:07:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 830 - page_layout_root_id: 64 - page_layout_id: 67 - section_param_id: 10 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:07:12.000000000 Z - updated_at: 2014-03-09 02:07:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 831 - page_layout_root_id: 64 - page_layout_id: 68 - section_param_id: 6 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:05.000000000 Z - updated_at: 2014-03-09 02:08:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 832 - page_layout_root_id: 64 - page_layout_id: 68 - section_param_id: 7 - theme_id: 2 - pvalue: - '101': float:none - 101unset: '0' - '15': height:100px - 15unset: '1' - 21unset: '0' - '21': width:320px - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:05.000000000 Z - updated_at: 2014-08-09 07:34:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 833 - page_layout_root_id: 64 - page_layout_id: 68 - section_param_id: 8 - theme_id: 2 - pvalue: - 15hidden: '1' - 31unset: '1' - '31': margin:auto auto auto 260px - 15unset: '1' - '15': height:100px - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:05.000000000 Z - updated_at: 2014-08-09 07:34:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 834 - page_layout_root_id: 64 - page_layout_id: 68 - section_param_id: 9 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:05.000000000 Z - updated_at: 2014-03-09 02:08:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 835 - page_layout_root_id: 64 - page_layout_id: 68 - section_param_id: 10 - theme_id: 2 - pvalue: - 53unset: '1' - '53': text-align:center - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:05.000000000 Z - updated_at: 2014-08-09 07:34:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 836 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 11 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:32.000000000 Z - updated_at: 2014-03-09 02:08:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 837 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 12 - theme_id: 2 - pvalue: - 21unset: '1' - '21': width:600px - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:32.000000000 Z - updated_at: 2014-08-09 07:34:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 838 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 13 - theme_id: 2 - pvalue: - 15hidden: '1' - 31unset: '1' - '31': margin:auto auto auto 250px - 32unset: '0' - '32': padding:5px 0px 5px 0px - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:32.000000000 Z - updated_at: 2014-08-09 07:34:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 839 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 14 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:32.000000000 Z - updated_at: 2014-03-09 02:08:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 840 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 15 - theme_id: 2 - pvalue: - 53unset: '1' - '53': text-align:center - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:32.000000000 Z - updated_at: 2014-08-09 07:34:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 841 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 16 - theme_id: 2 - pvalue: - 32unset: '0' - '32': padding:5px 5px 5px 5px - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:32.000000000 Z - updated_at: 2014-08-09 07:34:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 842 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 17 - theme_id: 2 - pvalue: - 54unset: '0' - '54': text-decoration:none - 49unset: '0' - '49': color:black - 27unset: '0' - '27': font-weight:bolder - 24unset: '0' - '24': font-size:90% - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:32.000000000 Z - updated_at: 2014-08-09 07:34:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 843 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 18 - theme_id: 2 - pvalue: - 49unset: '0' - '49': color:#4183C4 - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:32.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 844 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 19 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:32.000000000 Z - updated_at: 2014-03-09 02:08:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 845 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 20 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:32.000000000 Z - updated_at: 2014-03-09 02:08:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 846 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 21 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:32.000000000 Z - updated_at: 2014-03-09 02:08:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 847 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 22 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:32.000000000 Z - updated_at: 2014-03-09 02:08:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 848 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 23 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:32.000000000 Z - updated_at: 2014-03-09 02:08:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 849 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 24 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:32.000000000 Z - updated_at: 2014-03-09 02:08:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 850 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 25 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:32.000000000 Z - updated_at: 2014-03-09 02:08:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 851 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 26 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:32.000000000 Z - updated_at: 2014-03-09 02:08:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 852 - page_layout_root_id: 64 - page_layout_id: 70 - section_param_id: 6 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:39.000000000 Z - updated_at: 2014-03-09 02:08:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 853 - page_layout_root_id: 64 - page_layout_id: 70 - section_param_id: 7 - theme_id: 2 - pvalue: - '101': float:none - 101unset: '0' - '15': height:100px - 15unset: '1' - 21unset: '0' - '21': width:200px - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:39.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 854 - page_layout_root_id: 64 - page_layout_id: 70 - section_param_id: 8 - theme_id: 2 - pvalue: - 15hidden: '1' - 31unset: '1' - '31': margin:auto auto auto 300px - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:39.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 855 - page_layout_root_id: 64 - page_layout_id: 70 - section_param_id: 9 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:39.000000000 Z - updated_at: 2014-03-09 02:08:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 856 - page_layout_root_id: 64 - page_layout_id: 70 - section_param_id: 10 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:08:39.000000000 Z - updated_at: 2014-03-09 02:08:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 857 - page_layout_root_id: 64 - page_layout_id: 71 - section_param_id: 323 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:09:00.000000000 Z - updated_at: 2014-03-09 02:09:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 858 - page_layout_root_id: 64 - page_layout_id: 71 - section_param_id: 324 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:09:00.000000000 Z - updated_at: 2014-03-09 02:09:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 859 - page_layout_root_id: 64 - page_layout_id: 71 - section_param_id: 325 - theme_id: 2 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-03-09 02:09:00.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 860 - page_layout_root_id: 64 - page_layout_id: 71 - section_param_id: 326 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:09:00.000000000 Z - updated_at: 2014-03-09 02:09:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 861 - page_layout_root_id: 64 - page_layout_id: 71 - section_param_id: 327 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 02:09:00.000000000 Z - updated_at: 2014-03-09 02:09:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 862 - page_layout_root_id: 64 - page_layout_id: 72 - section_param_id: 6 - theme_id: 2 - pvalue: - 85unset: '0' - '85': clear:none - unset: - computed_pvalue: - created_at: 2014-03-09 03:11:13.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 863 - page_layout_root_id: 64 - page_layout_id: 72 - section_param_id: 7 - theme_id: 2 - pvalue: - '101': float:none - 101unset: '0' - '15': height:100px - 15unset: '1' - 21unset: '0' - '21': width:800px - unset: - computed_pvalue: - created_at: 2014-03-09 03:11:14.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 864 - page_layout_root_id: 64 - page_layout_id: 72 - section_param_id: 8 - theme_id: 2 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:20px 0px 20px 0px - unset: - computed_pvalue: - created_at: 2014-03-09 03:11:14.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 865 - page_layout_root_id: 64 - page_layout_id: 72 - section_param_id: 9 - theme_id: 2 - pvalue: - 2unset: '1' - '2': background-color:white - unset: - computed_pvalue: - created_at: 2014-03-09 03:11:14.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 866 - page_layout_root_id: 64 - page_layout_id: 72 - section_param_id: 10 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 03:11:14.000000000 Z - updated_at: 2014-03-09 03:11:14.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 867 - page_layout_root_id: 64 - page_layout_id: 73 - section_param_id: 6 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 03:13:28.000000000 Z - updated_at: 2014-03-09 03:13:28.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 868 - page_layout_root_id: 64 - page_layout_id: 73 - section_param_id: 7 - theme_id: 2 - pvalue: - '101': float:none - 101unset: '0' - '15': height:100px - 15unset: '1' - 21unset: '0' - '21': width:800px - unset: - computed_pvalue: - created_at: 2014-03-09 03:13:28.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 869 - page_layout_root_id: 64 - page_layout_id: 73 - section_param_id: 8 - theme_id: 2 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-03-09 03:13:28.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 870 - page_layout_root_id: 64 - page_layout_id: 73 - section_param_id: 9 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 03:13:28.000000000 Z - updated_at: 2014-03-09 03:13:28.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 871 - page_layout_root_id: 64 - page_layout_id: 73 - section_param_id: 10 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-09 03:13:28.000000000 Z - updated_at: 2014-03-09 03:13:28.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 872 - page_layout_root_id: 64 - page_layout_id: 77 - section_param_id: 367 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-10 12:22:42.000000000 Z - updated_at: 2014-03-10 12:22:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 873 - page_layout_root_id: 64 - page_layout_id: 77 - section_param_id: 368 - theme_id: 2 - pvalue: - 21unset: '0' - '21': width:290px - 101unset: '0' - '101': float:right - unset: - computed_pvalue: - created_at: 2014-03-10 12:22:42.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 874 - page_layout_root_id: 64 - page_layout_id: 77 - section_param_id: 369 - theme_id: 2 - pvalue: - 15hidden: '1' - 31unset: '1' - '31': margin:100px auto auto auto - unset: - computed_pvalue: - created_at: 2014-03-10 12:22:42.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 875 - page_layout_root_id: 64 - page_layout_id: 77 - section_param_id: 370 - theme_id: 2 - pvalue: - 3unset: '1' - '3': ! 'background-image:' - unset: - computed_pvalue: - created_at: 2014-03-10 12:22:42.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 876 - page_layout_root_id: 64 - page_layout_id: 77 - section_param_id: 371 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-10 12:22:42.000000000 Z - updated_at: 2014-03-10 12:22:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 877 - page_layout_root_id: 64 - page_layout_id: 77 - section_param_id: 372 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-10 12:22:42.000000000 Z - updated_at: 2014-03-10 12:22:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 878 - page_layout_root_id: 64 - page_layout_id: 77 - section_param_id: 373 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-10 12:22:42.000000000 Z - updated_at: 2014-03-10 12:22:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 879 - page_layout_root_id: 64 - page_layout_id: 77 - section_param_id: 374 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-10 12:22:42.000000000 Z - updated_at: 2014-03-10 12:22:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 880 - page_layout_root_id: 64 - page_layout_id: 77 - section_param_id: 375 - theme_id: 2 - pvalue: - 21unset: '0' - '21': width:260px - 31unset: '0' - '31': margin:auto auto 5px auto - 7unset: '0' - '7': border-style:solid solid solid solid - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 6unset: '0' - '6': ! 'border-color:#CCCCCC #CCCCCC #CCCCCC #CCCCCC' - 32unset: '0' - '32': padding:5px 10px 5px 10px - unset: - computed_pvalue: - created_at: 2014-03-10 12:22:42.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 881 - page_layout_root_id: 64 - page_layout_id: 77 - section_param_id: 376 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-10 12:22:43.000000000 Z - updated_at: 2014-03-10 12:22:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 882 - page_layout_root_id: 64 - page_layout_id: 77 - section_param_id: 377 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-10 12:22:43.000000000 Z - updated_at: 2014-03-10 12:22:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 883 - page_layout_root_id: 64 - page_layout_id: 77 - section_param_id: 378 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-10 12:22:43.000000000 Z - updated_at: 2014-03-10 12:22:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 884 - page_layout_root_id: 64 - page_layout_id: 77 - section_param_id: 379 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-10 12:22:43.000000000 Z - updated_at: 2014-03-10 12:22:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 885 - page_layout_root_id: 64 - page_layout_id: 77 - section_param_id: 380 - theme_id: 2 - pvalue: - 49unset: '0' - '49': color:red - unset: - computed_pvalue: - created_at: 2014-03-10 12:22:43.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 886 - page_layout_root_id: 64 - page_layout_id: 77 - section_param_id: 381 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-10 12:22:43.000000000 Z - updated_at: 2014-03-10 12:22:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 887 - page_layout_root_id: 64 - page_layout_id: 77 - section_param_id: 382 - theme_id: 2 - pvalue: - 21unset: '0' - '21': width:280px - 32unset: '0' - '32': padding:5px 10px 5px 10px - 7unset: '0' - '7': border-style:solid solid solid solid - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 6unset: '0' - '6': border-color:transparent transparent transparent transparent - unset: - computed_pvalue: - created_at: 2014-03-10 12:22:43.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 888 - page_layout_root_id: 64 - page_layout_id: 77 - section_param_id: 383 - theme_id: 2 - pvalue: - 2unset: '0' - '2': background-color:#73CF54 - unset: - computed_pvalue: - created_at: 2014-03-10 12:22:43.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 889 - page_layout_root_id: 64 - page_layout_id: 77 - section_param_id: 384 - theme_id: 2 - pvalue: - 49unset: '0' - '49': color:white - 27unset: '0' - '27': font-weight:bolder - unset: - computed_pvalue: - created_at: 2014-03-10 12:22:43.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 890 - page_layout_root_id: 64 - page_layout_id: 77 - section_param_id: 385 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-10 12:22:43.000000000 Z - updated_at: 2014-03-10 12:22:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 891 - page_layout_root_id: 64 - page_layout_id: 77 - section_param_id: 386 - theme_id: 2 - pvalue: - 2unset: '0' - '2': background-color:#62B246 - unset: - computed_pvalue: - created_at: 2014-03-10 12:22:43.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 892 - page_layout_root_id: 64 - page_layout_id: 77 - section_param_id: 387 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-10 12:22:43.000000000 Z - updated_at: 2014-03-10 12:22:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 893 - page_layout_root_id: 64 - page_layout_id: 78 - section_param_id: 50 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-15 08:35:58.000000000 Z - updated_at: 2014-03-15 08:35:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 894 - page_layout_root_id: 64 - page_layout_id: 78 - section_param_id: 51 - theme_id: 2 - pvalue: - 21unset: '0' - '21': width:400px - 15unset: '1' - '15': height:220px - 101unset: '1' - '101': float:left - unset: - computed_pvalue: - created_at: 2014-03-15 08:35:58.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 895 - page_layout_root_id: 64 - page_layout_id: 78 - section_param_id: 52 - theme_id: 2 - pvalue: - 15hidden: '1' - 15unset: '1' - '15': height:220px - unset: - computed_pvalue: - created_at: 2014-03-15 08:35:58.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 896 - page_layout_root_id: 64 - page_layout_id: 78 - section_param_id: 53 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-15 08:35:58.000000000 Z - updated_at: 2014-03-15 08:35:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 897 - page_layout_root_id: 64 - page_layout_id: 78 - section_param_id: 54 - theme_id: 2 - pvalue: - 49unset: '0' - '49': color:white - unset: - computed_pvalue: - created_at: 2014-03-15 08:35:58.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 898 - page_layout_root_id: 64 - page_layout_id: 79 - section_param_id: 50 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-17 12:57:54.000000000 Z - updated_at: 2014-03-17 12:57:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 899 - page_layout_root_id: 64 - page_layout_id: 79 - section_param_id: 51 - theme_id: 2 - pvalue: - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2014-03-17 12:57:54.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 900 - page_layout_root_id: 64 - page_layout_id: 79 - section_param_id: 52 - theme_id: 2 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-03-17 12:57:54.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 901 - page_layout_root_id: 64 - page_layout_id: 79 - section_param_id: 53 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-17 12:57:54.000000000 Z - updated_at: 2014-03-17 12:57:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 902 - page_layout_root_id: 64 - page_layout_id: 79 - section_param_id: 54 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-17 12:57:54.000000000 Z - updated_at: 2014-03-17 12:57:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 903 - page_layout_root_id: 64 - page_layout_id: 81 - section_param_id: 362 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-18 13:23:00.000000000 Z - updated_at: 2014-03-18 13:23:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 904 - page_layout_root_id: 64 - page_layout_id: 81 - section_param_id: 363 - theme_id: 2 - pvalue: - 21unset: '0' - '21': width:800px - 101unset: '0' - '101': float:none - unset: - computed_pvalue: - created_at: 2014-03-18 13:23:00.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 905 - page_layout_root_id: 64 - page_layout_id: 81 - section_param_id: 364 - theme_id: 2 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-03-18 13:23:00.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 906 - page_layout_root_id: 64 - page_layout_id: 81 - section_param_id: 365 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-18 13:23:00.000000000 Z - updated_at: 2014-03-18 13:23:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 907 - page_layout_root_id: 64 - page_layout_id: 81 - section_param_id: 366 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-18 13:23:00.000000000 Z - updated_at: 2014-03-18 13:23:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 908 - page_layout_root_id: 64 - page_layout_id: 82 - section_param_id: 50 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-18 13:48:55.000000000 Z - updated_at: 2014-03-18 13:48:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 909 - page_layout_root_id: 64 - page_layout_id: 82 - section_param_id: 51 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-18 13:48:55.000000000 Z - updated_at: 2014-03-18 13:48:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 910 - page_layout_root_id: 64 - page_layout_id: 82 - section_param_id: 52 - theme_id: 2 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-03-18 13:48:55.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 911 - page_layout_root_id: 64 - page_layout_id: 82 - section_param_id: 53 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-18 13:48:55.000000000 Z - updated_at: 2014-03-18 13:48:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 912 - page_layout_root_id: 64 - page_layout_id: 82 - section_param_id: 54 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-18 13:48:55.000000000 Z - updated_at: 2014-03-18 13:48:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4130 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 420 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4147 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 423 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4164 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 426 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4181 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 429 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4198 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 432 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4215 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 435 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4232 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 438 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4249 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 441 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4266 - page_layout_root_id: 64 - page_layout_id: 69 - section_param_id: 444 - theme_id: 2 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -page_layouts: -- !ruby/object:Spree::PageLayout - attributes: - id: 64 - site_id: 1 - root_id: 64 - parent_id: - lft: 1 - rgt: 30 - title: PageRoot - slug: pageroot - section_id: 1 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: true - created_at: 2014-03-09 01:13:22.000000000 Z - updated_at: 2014-07-12 06:22:33.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 65 - site_id: 1 - root_id: 64 - parent_id: 64 - lft: 2 - rgt: 11 - title: header - slug: header--4 - section_id: 2 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-03-09 02:07:03.000000000 Z - updated_at: 2014-07-12 06:27:35.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 70 - site_id: 1 - root_id: 64 - parent_id: 65 - lft: 3 - rgt: 6 - title: container - slug: container--2 - section_id: 2 - section_instance: 5 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-03-09 02:08:39.000000000 Z - updated_at: 2014-07-12 06:27:35.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 71 - site_id: 1 - root_id: 64 - parent_id: 70 - lft: 4 - rgt: 5 - title: Logo - slug: logo--4 - section_id: 97 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-03-09 02:09:00.000000000 Z - updated_at: 2014-07-12 06:27:35.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 68 - site_id: 1 - root_id: 64 - parent_id: 65 - lft: 7 - rgt: 10 - title: container - slug: container - section_id: 2 - section_instance: 4 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-03-09 02:08:05.000000000 Z - updated_at: 2014-07-12 06:27:35.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 69 - site_id: 1 - root_id: 64 - parent_id: 68 - lft: 8 - rgt: 9 - title: hmenu - slug: hmenu - section_id: 3 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-03-09 02:08:32.000000000 Z - updated_at: 2014-07-12 06:27:35.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 66 - site_id: 1 - root_id: 64 - parent_id: 64 - lft: 12 - rgt: 19 - title: slogan - slug: slogan - section_id: 2 - section_instance: 2 - section_context: home - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-03-09 02:07:08.000000000 Z - updated_at: 2014-07-12 06:27:35.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 72 - site_id: 1 - root_id: 64 - parent_id: 66 - lft: 13 - rgt: 18 - title: container - slug: container--3 - section_id: 2 - section_instance: 6 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-03-09 03:11:13.000000000 Z - updated_at: 2014-07-12 06:27:35.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 78 - site_id: 1 - root_id: 64 - parent_id: 72 - lft: 14 - rgt: 15 - title: text - slug: text - section_id: 11 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-03-15 08:35:58.000000000 Z - updated_at: 2014-07-12 06:27:35.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 77 - site_id: 1 - root_id: 64 - parent_id: 72 - lft: 16 - rgt: 17 - title: Site form - slug: site-form - section_id: 111 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-03-10 12:22:42.000000000 Z - updated_at: 2014-07-12 06:27:35.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 81 - site_id: 1 - root_id: 64 - parent_id: 64 - lft: 20 - rgt: 21 - title: Taxon description - slug: taxon-description - section_id: 109 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-03-18 13:23:00.000000000 Z - updated_at: 2014-07-12 06:27:35.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 73 - site_id: 1 - root_id: 64 - parent_id: 64 - lft: 22 - rgt: 25 - title: container - slug: container--4 - section_id: 2 - section_instance: 7 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-03-09 03:13:27.000000000 Z - updated_at: 2014-07-12 06:27:35.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 79 - site_id: 1 - root_id: 64 - parent_id: 73 - lft: 23 - rgt: 24 - title: text - slug: text--2 - section_id: 11 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-03-17 12:57:54.000000000 Z - updated_at: 2014-07-12 06:27:35.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 67 - site_id: 1 - root_id: 64 - parent_id: 64 - lft: 26 - rgt: 29 - title: footer - slug: footer--4 - section_id: 2 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-03-09 02:07:12.000000000 Z - updated_at: 2014-07-12 06:27:35.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 82 - site_id: 1 - root_id: 64 - parent_id: 67 - lft: 27 - rgt: 28 - title: text - slug: text--3 - section_id: 11 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-03-18 13:48:55.000000000 Z - updated_at: 2014-07-12 06:27:35.000000000 Z - data_source_param: '' -template_files: [] -template_releases: -- !ruby/object:Spree::TemplateRelease - attributes: - id: 6 - name: just a test - theme_id: 2 - created_at: 2014-06-21 13:37:49.000000000 Z - updated_at: 2014-06-21 13:37:49.000000000 Z diff --git a/spree_theme/db/themes/designs/1_2_1410526881.json b/spree_theme/db/themes/designs/1_2_1410526881.json deleted file mode 100644 index 749d5ab9..00000000 --- a/spree_theme/db/themes/designs/1_2_1410526881.json +++ /dev/null @@ -1 +0,0 @@ -{"template":{"template_theme":{"assigned_resource_ids":{"69":{"spree/taxon":[23]},"78":{"spree/template_text":[1]},"79":{"spree/template_text":[0]},"80":{"spree/template_text":[0]},"82":{"spree/template_text":[4]}},"created_at":"2014-03-09T01:13:21.000Z","id":2,"page_layout_root_id":64,"release_id":0,"site_id":1,"slug":"","title":"Dalianshops","updated_at":"2014-08-23T00:09:42.000Z"}},"param_values":[{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T01:13:22.000Z","id":913,"page_layout_id":64,"page_layout_root_id":64,"pvalue":{"21":"width:800px","21unset":"1","20":"min-width:800px","20hidden":"1"},"section_param_id":1,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T01:13:22.000Z","id":914,"page_layout_id":64,"page_layout_root_id":64,"pvalue":{},"section_param_id":2,"theme_id":2,"unset":null,"updated_at":"2014-03-09T01:13:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T01:13:22.000Z","id":915,"page_layout_id":64,"page_layout_root_id":64,"pvalue":{"85":"clear:both"},"section_param_id":3,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T01:13:22.000Z","id":916,"page_layout_id":64,"page_layout_root_id":64,"pvalue":{"2unset":"0","2":"background-color:#EFEFEF"},"section_param_id":4,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T01:13:22.000Z","id":917,"page_layout_id":64,"page_layout_root_id":64,"pvalue":{},"section_param_id":5,"theme_id":2,"unset":null,"updated_at":"2014-03-09T01:13:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:03.000Z","id":918,"page_layout_id":65,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:07:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:03.000Z","id":919,"page_layout_id":65,"page_layout_root_id":64,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:03.000Z","id":920,"page_layout_id":65,"page_layout_root_id":64,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto auto"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:03.000Z","id":921,"page_layout_id":65,"page_layout_root_id":64,"pvalue":{"2unset":"1","2":"background-color:#EFEFEF"},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:03.000Z","id":922,"page_layout_id":65,"page_layout_root_id":64,"pvalue":{"53unset":"0","53":"text-align:center"},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:08.000Z","id":923,"page_layout_id":66,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:07:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:08.000Z","id":924,"page_layout_id":66,"page_layout_root_id":64,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:08.000Z","id":925,"page_layout_id":66,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:08.000Z","id":926,"page_layout_id":66,"page_layout_root_id":64,"pvalue":{"2unset":"0","2":"background-color:black"},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:08.000Z","id":927,"page_layout_id":66,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:07:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:12.000Z","id":928,"page_layout_id":67,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:07:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:12.000Z","id":929,"page_layout_id":67,"page_layout_root_id":64,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:800px"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:12.000Z","id":930,"page_layout_id":67,"page_layout_root_id":64,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto auto","7unset":"0","7":"border-style:solid none none none","8unset":"0","8":"border-width:1px 0px 0px 0px","6unset":"0","6":"border-color:#CCCCCC transparent transparent transparent"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:12.000Z","id":931,"page_layout_id":67,"page_layout_root_id":64,"pvalue":{},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:07:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:12.000Z","id":932,"page_layout_id":67,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:07:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:05.000Z","id":933,"page_layout_id":68,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:05.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:05.000Z","id":934,"page_layout_id":68,"page_layout_root_id":64,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:320px"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:05.000Z","id":935,"page_layout_id":68,"page_layout_root_id":64,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto 260px","15unset":"1","15":"height:100px"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:05.000Z","id":936,"page_layout_id":68,"page_layout_root_id":64,"pvalue":{},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:05.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:05.000Z","id":937,"page_layout_id":68,"page_layout_root_id":64,"pvalue":{"53unset":"1","53":"text-align:center"},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":938,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":11,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":939,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{"21unset":"1","21":"width:600px"},"section_param_id":12,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":940,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto 250px","32unset":"0","32":"padding:5px 0px 5px 0px"},"section_param_id":13,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":941,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":14,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":942,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{"53unset":"1","53":"text-align:center"},"section_param_id":15,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":943,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{"32unset":"0","32":"padding:5px 5px 5px 5px"},"section_param_id":16,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":944,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{"54unset":"0","54":"text-decoration:none","49unset":"0","49":"color:black","27unset":"0","27":"font-weight:bolder","24unset":"0","24":"font-size:90%"},"section_param_id":17,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":945,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{"49unset":"0","49":"color:#4183C4"},"section_param_id":18,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":946,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":19,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":947,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":20,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":948,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":21,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":949,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":22,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":950,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":23,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":951,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":24,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":952,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":25,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":953,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":26,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:39.000Z","id":954,"page_layout_id":70,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:39.000Z","id":955,"page_layout_id":70,"page_layout_root_id":64,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:200px"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:39.000Z","id":956,"page_layout_id":70,"page_layout_root_id":64,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto 300px"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:39.000Z","id":957,"page_layout_id":70,"page_layout_root_id":64,"pvalue":{},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:39.000Z","id":958,"page_layout_id":70,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:09:00.000Z","id":959,"page_layout_id":71,"page_layout_root_id":64,"pvalue":{},"section_param_id":323,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:09:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:09:00.000Z","id":960,"page_layout_id":71,"page_layout_root_id":64,"pvalue":{},"section_param_id":324,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:09:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:09:00.000Z","id":961,"page_layout_id":71,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":325,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:09:00.000Z","id":962,"page_layout_id":71,"page_layout_root_id":64,"pvalue":{},"section_param_id":326,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:09:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:09:00.000Z","id":963,"page_layout_id":71,"page_layout_root_id":64,"pvalue":{},"section_param_id":327,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:09:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T03:11:13.000Z","id":964,"page_layout_id":72,"page_layout_root_id":64,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T03:11:14.000Z","id":965,"page_layout_id":72,"page_layout_root_id":64,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:800px"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T03:11:14.000Z","id":966,"page_layout_id":72,"page_layout_root_id":64,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:20px 0px 20px 0px"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T03:11:14.000Z","id":967,"page_layout_id":72,"page_layout_root_id":64,"pvalue":{"2unset":"1","2":"background-color:white"},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T03:11:14.000Z","id":968,"page_layout_id":72,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-03-09T03:11:14.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T03:13:28.000Z","id":969,"page_layout_id":73,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-03-09T03:13:28.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T03:13:28.000Z","id":970,"page_layout_id":73,"page_layout_root_id":64,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:800px"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T03:13:28.000Z","id":971,"page_layout_id":73,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T03:13:28.000Z","id":972,"page_layout_id":73,"page_layout_root_id":64,"pvalue":{},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-03-09T03:13:28.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T03:13:28.000Z","id":973,"page_layout_id":73,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-03-09T03:13:28.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":974,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":367,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":975,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"21unset":"0","21":"width:290px","101unset":"0","101":"float:right"},"section_param_id":368,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":976,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:100px auto auto auto"},"section_param_id":369,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":977,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"3unset":"1","3":"background-image:"},"section_param_id":370,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":978,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":371,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":979,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":372,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":980,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":373,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":981,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":374,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":982,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"21unset":"0","21":"width:260px","31unset":"0","31":"margin:auto auto 5px auto","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#CCCCCC #CCCCCC #CCCCCC #CCCCCC","32unset":"0","32":"padding:5px 10px 5px 10px"},"section_param_id":375,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":983,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":376,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":984,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":377,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":985,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":378,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":986,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":379,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":987,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"49unset":"0","49":"color:white"},"section_param_id":380,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":988,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":381,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":989,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"21unset":"0","21":"width:280px","32unset":"0","32":"padding:5px 10px 5px 10px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:transparent transparent transparent transparent"},"section_param_id":382,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":990,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"2unset":"0","2":"background-color:#73CF54"},"section_param_id":383,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":991,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"49unset":"0","49":"color:white","27unset":"0","27":"font-weight:bolder"},"section_param_id":384,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":992,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":385,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":993,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"2unset":"0","2":"background-color:#62B246"},"section_param_id":386,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":994,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":387,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-15T08:35:58.000Z","id":995,"page_layout_id":78,"page_layout_root_id":64,"pvalue":{},"section_param_id":50,"theme_id":2,"unset":null,"updated_at":"2014-03-15T08:35:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-15T08:35:58.000Z","id":996,"page_layout_id":78,"page_layout_root_id":64,"pvalue":{"21unset":"0","21":"width:400px","15unset":"1","15":"height:220px","101unset":"1","101":"float:left"},"section_param_id":51,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-15T08:35:58.000Z","id":997,"page_layout_id":78,"page_layout_root_id":64,"pvalue":{"15hidden":"1","15unset":"1","15":"height:220px"},"section_param_id":52,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-15T08:35:58.000Z","id":998,"page_layout_id":78,"page_layout_root_id":64,"pvalue":{},"section_param_id":53,"theme_id":2,"unset":null,"updated_at":"2014-03-15T08:35:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-15T08:35:58.000Z","id":999,"page_layout_id":78,"page_layout_root_id":64,"pvalue":{"49unset":"0","49":"color:white"},"section_param_id":54,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-17T12:57:54.000Z","id":1000,"page_layout_id":79,"page_layout_root_id":64,"pvalue":{},"section_param_id":50,"theme_id":2,"unset":null,"updated_at":"2014-03-17T12:57:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-17T12:57:54.000Z","id":1001,"page_layout_id":79,"page_layout_root_id":64,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":51,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-17T12:57:54.000Z","id":1002,"page_layout_id":79,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":52,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-17T12:57:54.000Z","id":1003,"page_layout_id":79,"page_layout_root_id":64,"pvalue":{},"section_param_id":53,"theme_id":2,"unset":null,"updated_at":"2014-03-17T12:57:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-17T12:57:54.000Z","id":1004,"page_layout_id":79,"page_layout_root_id":64,"pvalue":{},"section_param_id":54,"theme_id":2,"unset":null,"updated_at":"2014-03-17T12:57:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-18T13:23:00.000Z","id":1005,"page_layout_id":81,"page_layout_root_id":64,"pvalue":{},"section_param_id":362,"theme_id":2,"unset":null,"updated_at":"2014-03-18T13:23:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-18T13:23:00.000Z","id":1006,"page_layout_id":81,"page_layout_root_id":64,"pvalue":{"21unset":"0","21":"width:800px","101unset":"0","101":"float:none"},"section_param_id":363,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-18T13:23:00.000Z","id":1007,"page_layout_id":81,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":364,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-18T13:23:00.000Z","id":1008,"page_layout_id":81,"page_layout_root_id":64,"pvalue":{},"section_param_id":365,"theme_id":2,"unset":null,"updated_at":"2014-03-18T13:23:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-18T13:23:00.000Z","id":1009,"page_layout_id":81,"page_layout_root_id":64,"pvalue":{},"section_param_id":366,"theme_id":2,"unset":null,"updated_at":"2014-03-18T13:23:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-18T13:48:55.000Z","id":1010,"page_layout_id":82,"page_layout_root_id":64,"pvalue":{},"section_param_id":50,"theme_id":2,"unset":null,"updated_at":"2014-03-18T13:48:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-18T13:48:55.000Z","id":1011,"page_layout_id":82,"page_layout_root_id":64,"pvalue":{},"section_param_id":51,"theme_id":2,"unset":null,"updated_at":"2014-03-18T13:48:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-18T13:48:55.000Z","id":1012,"page_layout_id":82,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":52,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-18T13:48:55.000Z","id":1013,"page_layout_id":82,"page_layout_root_id":64,"pvalue":{},"section_param_id":53,"theme_id":2,"unset":null,"updated_at":"2014-03-18T13:48:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-18T13:48:55.000Z","id":1014,"page_layout_id":82,"page_layout_root_id":64,"pvalue":{},"section_param_id":54,"theme_id":2,"unset":null,"updated_at":"2014-03-18T13:48:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T06:04:00.000Z","id":2138,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":420,"theme_id":2,"unset":null,"updated_at":"2014-08-02T06:04:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T06:04:00.000Z","id":2183,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":423,"theme_id":2,"unset":null,"updated_at":"2014-08-02T06:04:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T06:04:01.000Z","id":2228,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":426,"theme_id":2,"unset":null,"updated_at":"2014-08-02T06:04:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T06:04:01.000Z","id":2273,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":429,"theme_id":2,"unset":null,"updated_at":"2014-08-02T06:04:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T06:04:01.000Z","id":2318,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":432,"theme_id":2,"unset":null,"updated_at":"2014-08-02T06:04:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T06:04:01.000Z","id":2363,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":435,"theme_id":2,"unset":null,"updated_at":"2014-08-02T06:04:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T06:04:02.000Z","id":2408,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":438,"theme_id":2,"unset":null,"updated_at":"2014-08-02T06:04:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T06:04:02.000Z","id":2453,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":441,"theme_id":2,"unset":null,"updated_at":"2014-08-02T06:04:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T06:04:02.000Z","id":2498,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":444,"theme_id":2,"unset":null,"updated_at":"2014-08-02T06:04:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:57.000Z","id":4599,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":477,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4615,"page_layout_id":65,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4616,"page_layout_id":66,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4617,"page_layout_id":67,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4618,"page_layout_id":68,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4619,"page_layout_id":70,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4620,"page_layout_id":72,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4621,"page_layout_id":73,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4749,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":481,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4762,"page_layout_id":78,"page_layout_root_id":64,"pvalue":{},"section_param_id":484,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4763,"page_layout_id":79,"page_layout_root_id":64,"pvalue":{},"section_param_id":484,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4764,"page_layout_id":82,"page_layout_root_id":64,"pvalue":{},"section_param_id":484,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4870,"page_layout_id":71,"page_layout_root_id":64,"pvalue":{},"section_param_id":520,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4885,"page_layout_id":81,"page_layout_root_id":64,"pvalue":{},"section_param_id":525,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4888,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":526,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4901,"page_layout_id":65,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4902,"page_layout_id":66,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4903,"page_layout_id":67,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4904,"page_layout_id":68,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4905,"page_layout_id":70,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4906,"page_layout_id":72,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4907,"page_layout_id":73,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5035,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":537,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5048,"page_layout_id":78,"page_layout_root_id":64,"pvalue":{},"section_param_id":540,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5049,"page_layout_id":79,"page_layout_root_id":64,"pvalue":{},"section_param_id":540,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5050,"page_layout_id":82,"page_layout_root_id":64,"pvalue":{},"section_param_id":540,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5156,"page_layout_id":71,"page_layout_root_id":64,"pvalue":{},"section_param_id":576,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5171,"page_layout_id":81,"page_layout_root_id":64,"pvalue":{},"section_param_id":581,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5174,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":582,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}}],"page_layouts":[{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-09T01:13:22.000Z","data_filter":"","data_source":"","data_source_param":"","id":64,"is_enabled":true,"is_full_html":true,"lft":1,"parent_id":null,"rgt":30,"root_id":64,"section_context":"","section_id":1,"section_instance":1,"site_id":1,"slug":"root1","title":"root1","updated_at":"2014-03-09T01:13:22.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-09T02:07:03.000Z","data_filter":"","data_source":"","data_source_param":"","id":65,"is_enabled":true,"is_full_html":false,"lft":2,"parent_id":64,"rgt":11,"root_id":64,"section_context":"","section_id":2,"section_instance":1,"site_id":1,"slug":"container1","title":"header","updated_at":"2014-03-09T02:07:03.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-09T02:08:39.000Z","data_filter":"","data_source":"","data_source_param":"","id":70,"is_enabled":true,"is_full_html":false,"lft":3,"parent_id":65,"rgt":6,"root_id":64,"section_context":"","section_id":2,"section_instance":5,"site_id":1,"slug":"container5","title":"container5","updated_at":"2014-03-09T02:08:39.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-09T02:09:00.000Z","data_filter":"","data_source":"","data_source_param":"","id":71,"is_enabled":true,"is_full_html":false,"lft":4,"parent_id":70,"rgt":5,"root_id":64,"section_context":"","section_id":97,"section_instance":1,"site_id":1,"slug":"logo1","title":"Logo1","updated_at":"2014-03-09T02:09:00.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-09T02:08:05.000Z","data_filter":"","data_source":"","data_source_param":"","id":68,"is_enabled":true,"is_full_html":false,"lft":7,"parent_id":65,"rgt":10,"root_id":64,"section_context":"","section_id":2,"section_instance":4,"site_id":1,"slug":"container4","title":"container4","updated_at":"2014-03-09T02:08:05.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-09T02:08:32.000Z","data_filter":"","data_source":"","data_source_param":"","id":69,"is_enabled":true,"is_full_html":false,"lft":8,"parent_id":68,"rgt":9,"root_id":64,"section_context":"","section_id":3,"section_instance":1,"site_id":1,"slug":"hmenu1","title":"hmenu1","updated_at":"2014-03-09T02:08:32.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-09T02:07:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":66,"is_enabled":true,"is_full_html":false,"lft":12,"parent_id":64,"rgt":19,"root_id":64,"section_context":"home","section_id":2,"section_instance":2,"site_id":1,"slug":"container2","title":"slogan","updated_at":"2014-03-09T02:07:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-09T03:11:13.000Z","data_filter":"","data_source":"","data_source_param":"","id":72,"is_enabled":true,"is_full_html":false,"lft":13,"parent_id":66,"rgt":18,"root_id":64,"section_context":"","section_id":2,"section_instance":6,"site_id":1,"slug":"container6","title":"container6","updated_at":"2014-03-09T03:11:13.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-15T08:35:58.000Z","data_filter":"","data_source":"","data_source_param":"","id":78,"is_enabled":true,"is_full_html":false,"lft":14,"parent_id":72,"rgt":15,"root_id":64,"section_context":"","section_id":11,"section_instance":1,"site_id":1,"slug":"text1","title":"text1","updated_at":"2014-03-15T08:35:58.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-10T12:22:42.000Z","data_filter":"","data_source":"","data_source_param":"","id":77,"is_enabled":true,"is_full_html":false,"lft":16,"parent_id":72,"rgt":17,"root_id":64,"section_context":"","section_id":111,"section_instance":1,"site_id":1,"slug":"site-form1","title":"Site form1","updated_at":"2014-03-10T12:22:42.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-18T13:23:00.000Z","data_filter":"","data_source":"","data_source_param":"","id":81,"is_enabled":true,"is_full_html":false,"lft":20,"parent_id":64,"rgt":21,"root_id":64,"section_context":"","section_id":109,"section_instance":1,"site_id":1,"slug":"taxon-description1","title":"Taxon description1","updated_at":"2014-03-18T13:23:00.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-09T03:13:27.000Z","data_filter":"","data_source":"","data_source_param":"","id":73,"is_enabled":true,"is_full_html":false,"lft":22,"parent_id":64,"rgt":25,"root_id":64,"section_context":"","section_id":2,"section_instance":7,"site_id":1,"slug":"container7","title":"container7","updated_at":"2014-03-09T03:13:27.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-17T12:57:54.000Z","data_filter":"","data_source":"","data_source_param":"","id":79,"is_enabled":true,"is_full_html":false,"lft":23,"parent_id":73,"rgt":24,"root_id":64,"section_context":"","section_id":11,"section_instance":2,"site_id":1,"slug":"text2","title":"text2","updated_at":"2014-03-17T12:57:54.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-09T02:07:12.000Z","data_filter":"","data_source":"","data_source_param":"","id":67,"is_enabled":true,"is_full_html":false,"lft":26,"parent_id":64,"rgt":29,"root_id":64,"section_context":"","section_id":2,"section_instance":3,"site_id":1,"slug":"container3","title":"footer","updated_at":"2014-06-22T00:18:00.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-18T13:48:55.000Z","data_filter":"","data_source":"","data_source_param":"","id":82,"is_enabled":true,"is_full_html":false,"lft":27,"parent_id":67,"rgt":28,"root_id":64,"section_context":"","section_id":11,"section_instance":3,"site_id":1,"slug":"text3","title":"text3","updated_at":"2014-03-18T13:48:55.000Z"}}],"template_files":[],"template_releases":[]} \ No newline at end of file diff --git a/spree_theme/db/themes/designs/1_2_1414758766.json b/spree_theme/db/themes/designs/1_2_1414758766.json deleted file mode 100644 index 2f166bee..00000000 --- a/spree_theme/db/themes/designs/1_2_1414758766.json +++ /dev/null @@ -1 +0,0 @@ -{"template":{"template_theme":{"assigned_resource_ids":{"69":{"spree/taxon":[23]},"78":{"spree/template_text":[1]},"79":{"spree/template_text":[0]},"80":{"spree/template_text":[0]},"82":{"spree/template_text":[4]},"71":{"spree/template_file":[49]},"550":{"spree/taxon":[134],"spree/specific_taxon":[25]},"557":{"spree/taxon":[139]},"561":{"spree/specific_taxon":[28]},"562":{"spree/template_text":[16]}},"created_at":"2014-03-09T01:13:21.000Z","id":2,"is_public":false,"page_layout_root_id":64,"release_id":22,"site_id":1,"slug":"","title":"Dalianshops","updated_at":"2014-10-26T09:01:10.000Z"}},"param_values":[{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T01:13:22.000Z","id":913,"page_layout_id":64,"page_layout_root_id":64,"pvalue":{"21":"width:800px","21unset":"1","20":"min-width:800px","20hidden":"1"},"section_param_id":1,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T01:13:22.000Z","id":914,"page_layout_id":64,"page_layout_root_id":64,"pvalue":{},"section_param_id":2,"theme_id":2,"unset":null,"updated_at":"2014-03-09T01:13:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T01:13:22.000Z","id":915,"page_layout_id":64,"page_layout_root_id":64,"pvalue":{"85":"clear:both"},"section_param_id":3,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T01:13:22.000Z","id":916,"page_layout_id":64,"page_layout_root_id":64,"pvalue":{"2unset":"0","2":"background-color:#EFEFEF"},"section_param_id":4,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T01:13:22.000Z","id":917,"page_layout_id":64,"page_layout_root_id":64,"pvalue":{"16unset":"0","16":"line-height:1.3em"},"section_param_id":5,"theme_id":2,"unset":null,"updated_at":"2014-09-23T15:26:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:03.000Z","id":918,"page_layout_id":65,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:07:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:03.000Z","id":919,"page_layout_id":65,"page_layout_root_id":64,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:980px"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-09-22T11:47:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:03.000Z","id":920,"page_layout_id":65,"page_layout_root_id":64,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto auto"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:03.000Z","id":921,"page_layout_id":65,"page_layout_root_id":64,"pvalue":{"2unset":"1","2":"background-color:#EFEFEF"},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:03.000Z","id":922,"page_layout_id":65,"page_layout_root_id":64,"pvalue":{"53unset":"0","53":"text-align:center"},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:08.000Z","id":923,"page_layout_id":66,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:07:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:08.000Z","id":924,"page_layout_id":66,"page_layout_root_id":64,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:08.000Z","id":925,"page_layout_id":66,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:08.000Z","id":926,"page_layout_id":66,"page_layout_root_id":64,"pvalue":{"2unset":"0","2":"background-color:#009de6"},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-09-22T11:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:08.000Z","id":927,"page_layout_id":66,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:07:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:12.000Z","id":928,"page_layout_id":67,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:07:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:12.000Z","id":929,"page_layout_id":67,"page_layout_root_id":64,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:980px"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-09-22T11:58:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:12.000Z","id":930,"page_layout_id":67,"page_layout_root_id":64,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto auto","7unset":"0","7":"border-style:solid none none none","8unset":"0","8":"border-width:1px 0px 0px 0px","6unset":"0","6":"border-color:#CCCCCC transparent transparent transparent","32unset":"1","32":"padding:0px 0px 0px 0px"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-09-23T14:57:34.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:12.000Z","id":931,"page_layout_id":67,"page_layout_root_id":64,"pvalue":{"2unset":"0","2":"background-color:white"},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:09:51.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:07:12.000Z","id":932,"page_layout_id":67,"page_layout_root_id":64,"pvalue":{"53unset":"1","53":"text-align:center"},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-10-15T02:43:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:05.000Z","id":933,"page_layout_id":68,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:05.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:05.000Z","id":934,"page_layout_id":68,"page_layout_root_id":64,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-09-22T11:50:13.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:05.000Z","id":935,"page_layout_id":68,"page_layout_root_id":64,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto 260px","15unset":"1","15":"height:100px"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:05.000Z","id":936,"page_layout_id":68,"page_layout_root_id":64,"pvalue":{"2unset":"0","2":"background-color:#232d3b"},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-09-23T12:46:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:05.000Z","id":937,"page_layout_id":68,"page_layout_root_id":64,"pvalue":{"53unset":"1","53":"text-align:center","49unset":"1","49":"color:white"},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-09-22T11:51:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":938,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":11,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":939,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{"21unset":"1","21":"width:600px","101unset":"0","101":"float:right"},"section_param_id":12,"theme_id":2,"unset":null,"updated_at":"2014-09-22T11:51:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":940,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto 250px","32unset":"0","32":"padding:0px 0px 3px 0px"},"section_param_id":13,"theme_id":2,"unset":null,"updated_at":"2014-09-22T11:54:47.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":941,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":14,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":942,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{"53unset":"1","53":"text-align:center"},"section_param_id":15,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":943,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{"32unset":"0","32":"padding:10px 15px 10px 15px"},"section_param_id":16,"theme_id":2,"unset":null,"updated_at":"2014-09-22T11:55:13.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":944,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{"54unset":"0","54":"text-decoration:none","49unset":"0","49":"color:white","27unset":"0","27":"font-weight:bolder","24unset":"0","24":"font-size:90%"},"section_param_id":17,"theme_id":2,"unset":null,"updated_at":"2014-09-22T11:52:13.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":945,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{"49unset":"1","49":"color:#4183C4"},"section_param_id":18,"theme_id":2,"unset":null,"updated_at":"2014-09-22T11:59:37.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":946,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":19,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":947,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":20,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":948,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":21,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":949,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":22,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":950,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{"2unset":"0","2":"background-color:#73cd54"},"section_param_id":23,"theme_id":2,"unset":null,"updated_at":"2014-09-22T11:54:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":951,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{"2unset":"0","2":"background-color:#73cd54"},"section_param_id":24,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:00:05.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":952,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":25,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:32.000Z","id":953,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":26,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:39.000Z","id":954,"page_layout_id":70,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:39.000Z","id":955,"page_layout_id":70,"page_layout_root_id":64,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"1","21":"width:200px"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-09-22T11:47:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:39.000Z","id":956,"page_layout_id":70,"page_layout_root_id":64,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto 300px","32unset":"1","32":"padding:5px 0px 0px 0px"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-09-23T16:45:14.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:39.000Z","id":957,"page_layout_id":70,"page_layout_root_id":64,"pvalue":{},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:08:39.000Z","id":958,"page_layout_id":70,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:08:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:09:00.000Z","id":959,"page_layout_id":71,"page_layout_root_id":64,"pvalue":{},"section_param_id":323,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:09:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:09:00.000Z","id":960,"page_layout_id":71,"page_layout_root_id":64,"pvalue":{},"section_param_id":324,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:09:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:09:00.000Z","id":961,"page_layout_id":71,"page_layout_root_id":64,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:5px 0px 0px 0px"},"section_param_id":325,"theme_id":2,"unset":null,"updated_at":"2014-09-23T16:45:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:09:00.000Z","id":962,"page_layout_id":71,"page_layout_root_id":64,"pvalue":{},"section_param_id":326,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:09:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T02:09:00.000Z","id":963,"page_layout_id":71,"page_layout_root_id":64,"pvalue":{},"section_param_id":327,"theme_id":2,"unset":null,"updated_at":"2014-03-09T02:09:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T03:11:13.000Z","id":964,"page_layout_id":72,"page_layout_root_id":64,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T03:11:14.000Z","id":965,"page_layout_id":72,"page_layout_root_id":64,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:980px"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-09-23T16:36:11.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T03:11:14.000Z","id":966,"page_layout_id":72,"page_layout_root_id":64,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:35px 40px 35px 10px"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-09-23T16:36:36.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T03:11:14.000Z","id":967,"page_layout_id":72,"page_layout_root_id":64,"pvalue":{"2unset":"1","2":"background-color:white"},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T03:11:14.000Z","id":968,"page_layout_id":72,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-03-09T03:11:14.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T03:13:28.000Z","id":969,"page_layout_id":73,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-03-09T03:13:28.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T03:13:28.000Z","id":970,"page_layout_id":73,"page_layout_root_id":64,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:800px"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T03:13:28.000Z","id":971,"page_layout_id":73,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T03:13:28.000Z","id":972,"page_layout_id":73,"page_layout_root_id":64,"pvalue":{},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-03-09T03:13:28.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-09T03:13:28.000Z","id":973,"page_layout_id":73,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-03-09T03:13:28.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":974,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":367,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":975,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"21unset":"0","21":"width:290px","101unset":"0","101":"float:right"},"section_param_id":368,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":976,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:100px auto auto auto"},"section_param_id":369,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":977,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"3unset":"1","3":"background-image:"},"section_param_id":370,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":978,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":371,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":979,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":372,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":980,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":373,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":981,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":374,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:42.000Z","id":982,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"21unset":"0","21":"width:260px","31unset":"0","31":"margin:auto auto 5px auto","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#CCCCCC #CCCCCC #CCCCCC #CCCCCC","32unset":"0","32":"padding:5px 10px 5px 10px"},"section_param_id":375,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":983,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":376,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":984,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":377,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":985,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":378,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":986,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":379,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":987,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"49unset":"0","49":"color:white"},"section_param_id":380,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":988,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":381,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":989,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"21unset":"0","21":"width:282px","32unset":"0","32":"padding:5px 10px 5px 10px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#73CF54 #73CF54 #73CF54 #73CF54"},"section_param_id":382,"theme_id":2,"unset":null,"updated_at":"2014-09-23T16:41:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":990,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"2unset":"0","2":"background-color:#73CF54"},"section_param_id":383,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":991,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"49unset":"0","49":"color:white","27unset":"0","27":"font-weight:bolder"},"section_param_id":384,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":992,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":385,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":993,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{"2unset":"0","2":"background-color:#62B246"},"section_param_id":386,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-10T12:22:43.000Z","id":994,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":387,"theme_id":2,"unset":null,"updated_at":"2014-03-10T12:22:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-15T08:35:58.000Z","id":995,"page_layout_id":78,"page_layout_root_id":64,"pvalue":{},"section_param_id":50,"theme_id":2,"unset":null,"updated_at":"2014-03-15T08:35:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-15T08:35:58.000Z","id":996,"page_layout_id":78,"page_layout_root_id":64,"pvalue":{"21unset":"0","21":"width:400px","15unset":"1","15":"height:220px","101unset":"1","101":"float:left"},"section_param_id":51,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-15T08:35:58.000Z","id":997,"page_layout_id":78,"page_layout_root_id":64,"pvalue":{"15hidden":"1","15unset":"1","15":"height:220px"},"section_param_id":52,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-15T08:35:58.000Z","id":998,"page_layout_id":78,"page_layout_root_id":64,"pvalue":{},"section_param_id":53,"theme_id":2,"unset":null,"updated_at":"2014-03-15T08:35:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-15T08:35:58.000Z","id":999,"page_layout_id":78,"page_layout_root_id":64,"pvalue":{"49unset":"0","49":"color:white"},"section_param_id":54,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-17T12:57:54.000Z","id":1000,"page_layout_id":79,"page_layout_root_id":64,"pvalue":{},"section_param_id":50,"theme_id":2,"unset":null,"updated_at":"2014-03-17T12:57:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-17T12:57:54.000Z","id":1001,"page_layout_id":79,"page_layout_root_id":64,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":51,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-17T12:57:54.000Z","id":1002,"page_layout_id":79,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":52,"theme_id":2,"unset":null,"updated_at":"2014-08-23T00:09:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-17T12:57:54.000Z","id":1003,"page_layout_id":79,"page_layout_root_id":64,"pvalue":{},"section_param_id":53,"theme_id":2,"unset":null,"updated_at":"2014-03-17T12:57:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-17T12:57:54.000Z","id":1004,"page_layout_id":79,"page_layout_root_id":64,"pvalue":{},"section_param_id":54,"theme_id":2,"unset":null,"updated_at":"2014-03-17T12:57:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-18T13:23:00.000Z","id":1005,"page_layout_id":81,"page_layout_root_id":64,"pvalue":{},"section_param_id":362,"theme_id":2,"unset":null,"updated_at":"2014-03-18T13:23:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-18T13:23:00.000Z","id":1006,"page_layout_id":81,"page_layout_root_id":64,"pvalue":{"21unset":"0","21":"width:100%","101unset":"0","101":"float:none"},"section_param_id":363,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:29:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-18T13:23:00.000Z","id":1007,"page_layout_id":81,"page_layout_root_id":64,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:10px 20px 20px 40px","31unset":"1","31":"margin:auto auto 20px auto"},"section_param_id":364,"theme_id":2,"unset":null,"updated_at":"2014-09-23T16:07:10.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-18T13:23:00.000Z","id":1008,"page_layout_id":81,"page_layout_root_id":64,"pvalue":{"2unset":"0","2":"background-color:#009de6","3unset":"1","3":"background-image:sanjiao.png","4unset":"1","4":"background-position:left bottom"},"section_param_id":365,"theme_id":2,"unset":null,"updated_at":"2014-09-23T13:34:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-18T13:23:00.000Z","id":1009,"page_layout_id":81,"page_layout_root_id":64,"pvalue":{"49unset":"0","49":"color:white"},"section_param_id":366,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:28:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-18T13:48:55.000Z","id":1010,"page_layout_id":82,"page_layout_root_id":64,"pvalue":{},"section_param_id":50,"theme_id":2,"unset":null,"updated_at":"2014-03-18T13:48:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-18T13:48:55.000Z","id":1011,"page_layout_id":82,"page_layout_root_id":64,"pvalue":{"101unset":"1","101":"float:none"},"section_param_id":51,"theme_id":2,"unset":null,"updated_at":"2014-10-15T02:43:28.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-18T13:48:55.000Z","id":1012,"page_layout_id":82,"page_layout_root_id":64,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 10px 0px 20px"},"section_param_id":52,"theme_id":2,"unset":null,"updated_at":"2014-09-23T15:27:46.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-18T13:48:55.000Z","id":1013,"page_layout_id":82,"page_layout_root_id":64,"pvalue":{},"section_param_id":53,"theme_id":2,"unset":null,"updated_at":"2014-03-18T13:48:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-03-18T13:48:55.000Z","id":1014,"page_layout_id":82,"page_layout_root_id":64,"pvalue":{"24unset":"0","24":"font-size:85%"},"section_param_id":54,"theme_id":2,"unset":null,"updated_at":"2014-10-15T02:41:30.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T06:04:00.000Z","id":2138,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":420,"theme_id":2,"unset":null,"updated_at":"2014-08-02T06:04:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T06:04:00.000Z","id":2183,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":423,"theme_id":2,"unset":null,"updated_at":"2014-08-02T06:04:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T06:04:01.000Z","id":2228,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":426,"theme_id":2,"unset":null,"updated_at":"2014-08-02T06:04:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T06:04:01.000Z","id":2273,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":429,"theme_id":2,"unset":null,"updated_at":"2014-08-02T06:04:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T06:04:01.000Z","id":2318,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":432,"theme_id":2,"unset":null,"updated_at":"2014-08-02T06:04:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T06:04:01.000Z","id":2363,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":435,"theme_id":2,"unset":null,"updated_at":"2014-08-02T06:04:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T06:04:02.000Z","id":2408,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":438,"theme_id":2,"unset":null,"updated_at":"2014-08-02T06:04:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T06:04:02.000Z","id":2453,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":441,"theme_id":2,"unset":null,"updated_at":"2014-08-02T06:04:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T06:04:02.000Z","id":2498,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":444,"theme_id":2,"unset":null,"updated_at":"2014-08-02T06:04:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:57.000Z","id":4599,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":477,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4615,"page_layout_id":65,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4616,"page_layout_id":66,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4617,"page_layout_id":67,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4618,"page_layout_id":68,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4619,"page_layout_id":70,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4620,"page_layout_id":72,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4621,"page_layout_id":73,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4749,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":481,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4762,"page_layout_id":78,"page_layout_root_id":64,"pvalue":{},"section_param_id":484,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4763,"page_layout_id":79,"page_layout_root_id":64,"pvalue":{},"section_param_id":484,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4764,"page_layout_id":82,"page_layout_root_id":64,"pvalue":{},"section_param_id":484,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4870,"page_layout_id":71,"page_layout_root_id":64,"pvalue":{},"section_param_id":520,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4885,"page_layout_id":81,"page_layout_root_id":64,"pvalue":{},"section_param_id":525,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4888,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":526,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4901,"page_layout_id":65,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4902,"page_layout_id":66,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4903,"page_layout_id":67,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4904,"page_layout_id":68,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4905,"page_layout_id":70,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4906,"page_layout_id":72,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4907,"page_layout_id":73,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5035,"page_layout_id":69,"page_layout_root_id":64,"pvalue":{},"section_param_id":537,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5048,"page_layout_id":78,"page_layout_root_id":64,"pvalue":{},"section_param_id":540,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5049,"page_layout_id":79,"page_layout_root_id":64,"pvalue":{},"section_param_id":540,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5050,"page_layout_id":82,"page_layout_root_id":64,"pvalue":{},"section_param_id":540,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5156,"page_layout_id":71,"page_layout_root_id":64,"pvalue":{},"section_param_id":576,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5171,"page_layout_id":81,"page_layout_root_id":64,"pvalue":{},"section_param_id":581,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5174,"page_layout_id":77,"page_layout_root_id":64,"pvalue":{},"section_param_id":582,"theme_id":2,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T11:49:22.000Z","id":5495,"page_layout_id":548,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-09-22T11:49:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T11:49:22.000Z","id":5496,"page_layout_id":548,"page_layout_root_id":64,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:980px"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-09-22T11:50:45.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T11:49:22.000Z","id":5497,"page_layout_id":548,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-09-22T11:49:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T11:49:22.000Z","id":5498,"page_layout_id":548,"page_layout_root_id":64,"pvalue":{},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-09-22T11:49:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T11:49:22.000Z","id":5499,"page_layout_id":548,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-09-22T11:49:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T11:49:22.000Z","id":5500,"page_layout_id":548,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-09-22T11:49:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T11:49:22.000Z","id":5501,"page_layout_id":548,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-09-22T11:49:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:11:23.000Z","id":5502,"page_layout_id":549,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:11:23.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:11:23.000Z","id":5503,"page_layout_id":549,"page_layout_root_id":64,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:980px"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:17:05.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:11:23.000Z","id":5504,"page_layout_id":549,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:11:23.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:11:23.000Z","id":5505,"page_layout_id":549,"page_layout_root_id":64,"pvalue":{"2unset":"0","2":"background-color:white"},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:21:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:11:23.000Z","id":5506,"page_layout_id":549,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:11:23.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:11:23.000Z","id":5507,"page_layout_id":549,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:11:23.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:11:23.000Z","id":5508,"page_layout_id":549,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:11:23.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:11:59.000Z","id":5509,"page_layout_id":550,"page_layout_root_id":64,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:25:44.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:11:59.000Z","id":5510,"page_layout_id":550,"page_layout_root_id":64,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:860px"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-09-23T16:47:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:11:59.000Z","id":5511,"page_layout_id":550,"page_layout_root_id":64,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:20px 20px 20px 20px"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-09-23T16:07:36.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:12:00.000Z","id":5512,"page_layout_id":550,"page_layout_root_id":64,"pvalue":{},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:12:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:12:00.000Z","id":5513,"page_layout_id":550,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:12:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:12:00.000Z","id":5514,"page_layout_id":550,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:12:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:12:00.000Z","id":5515,"page_layout_id":550,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:12:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:12:08.000Z","id":5516,"page_layout_id":551,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:12:08.000Z","id":5517,"page_layout_id":551,"page_layout_root_id":64,"pvalue":{"101":"float:left","101unset":"0","15":"height:254px","15unset":"0","21unset":"0","21":"width:410px"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-09-23T13:45:05.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:12:08.000Z","id":5518,"page_layout_id":551,"page_layout_root_id":64,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:15px 15px 10px 10px","15unset":"0","15":"height:229px","31unset":"0","31":"margin:auto 10px auto auto"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-09-23T13:45:06.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:12:08.000Z","id":5519,"page_layout_id":551,"page_layout_root_id":64,"pvalue":{"3unset":"0","3":"background-image:feature-bg2.jpg","5unset":"0","5":"background-repeat:no-repeat"},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-09-23T13:40:46.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:12:08.000Z","id":5520,"page_layout_id":551,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:12:08.000Z","id":5521,"page_layout_id":551,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:12:08.000Z","id":5522,"page_layout_id":551,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:12:24.000Z","id":5523,"page_layout_id":552,"page_layout_root_id":64,"pvalue":{},"section_param_id":160,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:12:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:12:24.000Z","id":5524,"page_layout_id":552,"page_layout_root_id":64,"pvalue":{},"section_param_id":161,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:12:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:12:24.000Z","id":5525,"page_layout_id":552,"page_layout_root_id":64,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:30px 0px 30px 10px"},"section_param_id":162,"theme_id":2,"unset":null,"updated_at":"2014-09-23T14:23:20.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:12:24.000Z","id":5526,"page_layout_id":552,"page_layout_root_id":64,"pvalue":{},"section_param_id":163,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:12:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:12:24.000Z","id":5527,"page_layout_id":552,"page_layout_root_id":64,"pvalue":{},"section_param_id":164,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:12:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:12:24.000Z","id":5528,"page_layout_id":552,"page_layout_root_id":64,"pvalue":{},"section_param_id":506,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:12:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:12:24.000Z","id":5529,"page_layout_id":552,"page_layout_root_id":64,"pvalue":{},"section_param_id":562,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:12:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:14:04.000Z","id":5537,"page_layout_id":554,"page_layout_root_id":64,"pvalue":{},"section_param_id":362,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:14:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:14:04.000Z","id":5538,"page_layout_id":554,"page_layout_root_id":64,"pvalue":{"21unset":"0","21":"width:320px","101unset":"0","101":"float:none"},"section_param_id":363,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:14:04.000Z","id":5539,"page_layout_id":554,"page_layout_root_id":64,"pvalue":{"15hidden":"1","32unset":"1","32":"padding:0px 0px 0px 0px"},"section_param_id":364,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:39:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:14:04.000Z","id":5540,"page_layout_id":554,"page_layout_root_id":64,"pvalue":{},"section_param_id":365,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:14:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:14:04.000Z","id":5541,"page_layout_id":554,"page_layout_root_id":64,"pvalue":{},"section_param_id":366,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:14:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:14:04.000Z","id":5542,"page_layout_id":554,"page_layout_root_id":64,"pvalue":{},"section_param_id":525,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:14:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:14:04.000Z","id":5543,"page_layout_id":554,"page_layout_root_id":64,"pvalue":{},"section_param_id":581,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:14:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:32:02.000Z","id":5544,"page_layout_id":555,"page_layout_root_id":64,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-09-23T13:20:06.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:32:02.000Z","id":5545,"page_layout_id":555,"page_layout_root_id":64,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:36:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:32:02.000Z","id":5546,"page_layout_id":555,"page_layout_root_id":64,"pvalue":{"15hidden":"1","32unset":"1","32":"padding:0px 10px 0px 0px"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-09-23T16:27:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:32:02.000Z","id":5547,"page_layout_id":555,"page_layout_root_id":64,"pvalue":{"2unset":"1","2":"background-color:#EFEFEF"},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-09-23T13:45:29.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:32:02.000Z","id":5548,"page_layout_id":555,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:32:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:32:02.000Z","id":5549,"page_layout_id":555,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:32:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T12:32:02.000Z","id":5550,"page_layout_id":555,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-09-22T12:32:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:07:22.000Z","id":5551,"page_layout_id":556,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:07:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:07:22.000Z","id":5552,"page_layout_id":556,"page_layout_root_id":64,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:12:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:07:22.000Z","id":5553,"page_layout_id":556,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:07:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:07:22.000Z","id":5554,"page_layout_id":556,"page_layout_root_id":64,"pvalue":{"2unset":"0","2":"background-color:white"},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-09-23T11:52:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:07:22.000Z","id":5555,"page_layout_id":556,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:07:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:07:22.000Z","id":5556,"page_layout_id":556,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:07:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:07:22.000Z","id":5557,"page_layout_id":556,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:07:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:07:33.000Z","id":5558,"page_layout_id":557,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:07:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:07:33.000Z","id":5559,"page_layout_id":557,"page_layout_root_id":64,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:900px"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:13:29.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:07:33.000Z","id":5560,"page_layout_id":557,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:07:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:07:33.000Z","id":5561,"page_layout_id":557,"page_layout_root_id":64,"pvalue":{},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:07:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:07:33.000Z","id":5562,"page_layout_id":557,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:07:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:07:33.000Z","id":5563,"page_layout_id":557,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:07:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:07:33.000Z","id":5564,"page_layout_id":557,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:07:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:08:14.000Z","id":5565,"page_layout_id":558,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:08:14.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:08:14.000Z","id":5566,"page_layout_id":558,"page_layout_root_id":64,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-09-23T11:54:05.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:08:14.000Z","id":5567,"page_layout_id":558,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:08:14.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:08:14.000Z","id":5568,"page_layout_id":558,"page_layout_root_id":64,"pvalue":{},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:08:14.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:08:14.000Z","id":5569,"page_layout_id":558,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:08:14.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:08:14.000Z","id":5570,"page_layout_id":558,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:08:14.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:08:14.000Z","id":5571,"page_layout_id":558,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:08:14.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:08:24.000Z","id":5572,"page_layout_id":559,"page_layout_root_id":64,"pvalue":{},"section_param_id":135,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:08:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:08:24.000Z","id":5573,"page_layout_id":559,"page_layout_root_id":64,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":136,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:17:07.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:08:24.000Z","id":5574,"page_layout_id":559,"page_layout_root_id":64,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto auto","32unset":"0","32":"padding:30px 0px 30px 0px"},"section_param_id":137,"theme_id":2,"unset":null,"updated_at":"2014-09-23T15:11:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:08:24.000Z","id":5575,"page_layout_id":559,"page_layout_root_id":64,"pvalue":{},"section_param_id":138,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:08:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:08:24.000Z","id":5576,"page_layout_id":559,"page_layout_root_id":64,"pvalue":{"53unset":"0","53":"text-align:center","24unset":"0","24":"font-size:200%","27unset":"0","27":"font-weight:bolder","49unset":"0","49":"color:#009de6"},"section_param_id":139,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:19:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:08:24.000Z","id":5577,"page_layout_id":559,"page_layout_root_id":64,"pvalue":{},"section_param_id":501,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:08:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:08:24.000Z","id":5578,"page_layout_id":559,"page_layout_root_id":64,"pvalue":{},"section_param_id":557,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:08:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:09:09.000Z","id":5579,"page_layout_id":560,"page_layout_root_id":64,"pvalue":{},"section_param_id":362,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:09:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:09:09.000Z","id":5580,"page_layout_id":560,"page_layout_root_id":64,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":363,"theme_id":2,"unset":null,"updated_at":"2014-09-23T11:46:34.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:09:09.000Z","id":5581,"page_layout_id":560,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":364,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:09:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:09:09.000Z","id":5582,"page_layout_id":560,"page_layout_root_id":64,"pvalue":{},"section_param_id":365,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:09:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:09:09.000Z","id":5583,"page_layout_id":560,"page_layout_root_id":64,"pvalue":{"24unset":"0","24":"font-size:103%"},"section_param_id":366,"theme_id":2,"unset":null,"updated_at":"2014-09-23T15:13:28.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:09:09.000Z","id":5584,"page_layout_id":560,"page_layout_root_id":64,"pvalue":{},"section_param_id":525,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:09:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:09:09.000Z","id":5585,"page_layout_id":560,"page_layout_root_id":64,"pvalue":{},"section_param_id":581,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:09:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:22:52.000Z","id":5586,"page_layout_id":561,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:22:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:22:52.000Z","id":5587,"page_layout_id":561,"page_layout_root_id":64,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:30:25.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:22:52.000Z","id":5588,"page_layout_id":561,"page_layout_root_id":64,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 20px 0px 40px"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:30:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:22:52.000Z","id":5589,"page_layout_id":561,"page_layout_root_id":64,"pvalue":{},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:22:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:22:52.000Z","id":5590,"page_layout_id":561,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:22:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:22:52.000Z","id":5591,"page_layout_id":561,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:22:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:22:52.000Z","id":5592,"page_layout_id":561,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:22:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:23:04.000Z","id":5593,"page_layout_id":562,"page_layout_root_id":64,"pvalue":{},"section_param_id":50,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:23:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:23:04.000Z","id":5594,"page_layout_id":562,"page_layout_root_id":64,"pvalue":{},"section_param_id":51,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:23:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:23:04.000Z","id":5595,"page_layout_id":562,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":52,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:23:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:23:04.000Z","id":5596,"page_layout_id":562,"page_layout_root_id":64,"pvalue":{},"section_param_id":53,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:23:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:23:04.000Z","id":5597,"page_layout_id":562,"page_layout_root_id":64,"pvalue":{},"section_param_id":54,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:23:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:23:04.000Z","id":5598,"page_layout_id":562,"page_layout_root_id":64,"pvalue":{},"section_param_id":484,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:23:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-22T14:23:04.000Z","id":5599,"page_layout_id":562,"page_layout_root_id":64,"pvalue":{},"section_param_id":540,"theme_id":2,"unset":null,"updated_at":"2014-09-22T14:23:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T11:22:58.000Z","id":5600,"page_layout_id":563,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-09-23T11:22:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T11:22:58.000Z","id":5601,"page_layout_id":563,"page_layout_root_id":64,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-09-23T11:23:31.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T11:22:58.000Z","id":5602,"page_layout_id":563,"page_layout_root_id":64,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:solid none none none","8unset":"0","8":"border-width:1px 0px 0px 0px","6unset":"0","6":"border-color:#EFEFEF transparent transparent transparent"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-09-23T11:23:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T11:22:58.000Z","id":5603,"page_layout_id":563,"page_layout_root_id":64,"pvalue":{},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-09-23T11:22:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T11:22:58.000Z","id":5604,"page_layout_id":563,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-09-23T11:22:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T11:22:58.000Z","id":5605,"page_layout_id":563,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-09-23T11:22:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T11:22:58.000Z","id":5606,"page_layout_id":563,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-09-23T11:22:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T13:12:09.000Z","id":5607,"page_layout_id":564,"page_layout_root_id":64,"pvalue":{},"section_param_id":405,"theme_id":2,"unset":null,"updated_at":"2014-09-23T13:12:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T13:12:09.000Z","id":5608,"page_layout_id":564,"page_layout_root_id":64,"pvalue":{},"section_param_id":406,"theme_id":2,"unset":null,"updated_at":"2014-09-23T13:12:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T13:12:09.000Z","id":5609,"page_layout_id":564,"page_layout_root_id":64,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 0px 0px 18px"},"section_param_id":407,"theme_id":2,"unset":null,"updated_at":"2014-09-23T14:23:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T13:12:09.000Z","id":5610,"page_layout_id":564,"page_layout_root_id":64,"pvalue":{},"section_param_id":408,"theme_id":2,"unset":null,"updated_at":"2014-09-23T13:12:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T13:12:09.000Z","id":5611,"page_layout_id":564,"page_layout_root_id":64,"pvalue":{},"section_param_id":409,"theme_id":2,"unset":null,"updated_at":"2014-09-23T13:12:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T13:12:09.000Z","id":5612,"page_layout_id":564,"page_layout_root_id":64,"pvalue":{},"section_param_id":529,"theme_id":2,"unset":null,"updated_at":"2014-09-23T13:12:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T13:12:09.000Z","id":5613,"page_layout_id":564,"page_layout_root_id":64,"pvalue":{},"section_param_id":585,"theme_id":2,"unset":null,"updated_at":"2014-09-23T13:12:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T13:32:20.000Z","id":5614,"page_layout_id":565,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-09-23T13:32:20.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T13:32:20.000Z","id":5615,"page_layout_id":565,"page_layout_root_id":64,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-09-23T13:33:30.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T13:32:20.000Z","id":5616,"page_layout_id":565,"page_layout_root_id":64,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 0px 17px 0px"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-09-23T13:36:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T13:32:20.000Z","id":5617,"page_layout_id":565,"page_layout_root_id":64,"pvalue":{"3unset":"0","3":"background-image:sanjiao.png","5unset":"0","5":"background-repeat:no-repeat","4unset":"0","4":"background-position:80px bottom"},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-09-23T13:36:49.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T13:32:20.000Z","id":5618,"page_layout_id":565,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-09-23T13:32:20.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T13:32:20.000Z","id":5619,"page_layout_id":565,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-09-23T13:32:20.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T13:32:20.000Z","id":5620,"page_layout_id":565,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-09-23T13:32:20.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T14:05:36.000Z","id":5621,"page_layout_id":566,"page_layout_root_id":64,"pvalue":{},"section_param_id":405,"theme_id":2,"unset":null,"updated_at":"2014-09-23T14:05:36.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T14:05:36.000Z","id":5622,"page_layout_id":566,"page_layout_root_id":64,"pvalue":{},"section_param_id":406,"theme_id":2,"unset":null,"updated_at":"2014-09-23T14:05:36.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T14:05:36.000Z","id":5623,"page_layout_id":566,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":407,"theme_id":2,"unset":null,"updated_at":"2014-09-23T14:05:36.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T14:05:36.000Z","id":5624,"page_layout_id":566,"page_layout_root_id":64,"pvalue":{},"section_param_id":408,"theme_id":2,"unset":null,"updated_at":"2014-09-23T14:05:36.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T14:05:36.000Z","id":5625,"page_layout_id":566,"page_layout_root_id":64,"pvalue":{},"section_param_id":409,"theme_id":2,"unset":null,"updated_at":"2014-09-23T14:05:36.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T14:05:36.000Z","id":5626,"page_layout_id":566,"page_layout_root_id":64,"pvalue":{},"section_param_id":529,"theme_id":2,"unset":null,"updated_at":"2014-09-23T14:05:36.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-23T14:05:36.000Z","id":5627,"page_layout_id":566,"page_layout_root_id":64,"pvalue":{},"section_param_id":585,"theme_id":2,"unset":null,"updated_at":"2014-09-23T14:05:36.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:54:42.000Z","id":7024,"page_layout_id":651,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:54:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:54:42.000Z","id":7025,"page_layout_id":651,"page_layout_root_id":64,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"0"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:54:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:54:42.000Z","id":7026,"page_layout_id":651,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:54:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:54:42.000Z","id":7027,"page_layout_id":651,"page_layout_root_id":64,"pvalue":{},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:54:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:54:43.000Z","id":7028,"page_layout_id":651,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:54:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:54:43.000Z","id":7029,"page_layout_id":651,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:54:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:54:43.000Z","id":7030,"page_layout_id":651,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:54:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:12.000Z","id":7031,"page_layout_id":652,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:12.000Z","id":7032,"page_layout_id":652,"page_layout_root_id":64,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"0"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:12.000Z","id":7033,"page_layout_id":652,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:12.000Z","id":7034,"page_layout_id":652,"page_layout_root_id":64,"pvalue":{},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:12.000Z","id":7035,"page_layout_id":652,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:12.000Z","id":7036,"page_layout_id":652,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:12.000Z","id":7037,"page_layout_id":652,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:21.000Z","id":7038,"page_layout_id":653,"page_layout_root_id":64,"pvalue":{},"section_param_id":6,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:22.000Z","id":7039,"page_layout_id":653,"page_layout_root_id":64,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"0"},"section_param_id":7,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:22.000Z","id":7040,"page_layout_id":653,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:22.000Z","id":7041,"page_layout_id":653,"page_layout_root_id":64,"pvalue":{},"section_param_id":9,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:22.000Z","id":7042,"page_layout_id":653,"page_layout_root_id":64,"pvalue":{},"section_param_id":10,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:22.000Z","id":7043,"page_layout_id":653,"page_layout_root_id":64,"pvalue":{},"section_param_id":480,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:22.000Z","id":7044,"page_layout_id":653,"page_layout_root_id":64,"pvalue":{},"section_param_id":536,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:50.000Z","id":7045,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":27,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:50.000Z","id":7046,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":28,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:50.000Z","id":7047,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{"15hidden":"1"},"section_param_id":29,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:50.000Z","id":7048,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":30,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:50.000Z","id":7049,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":31,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:50.000Z","id":7050,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":482,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:50.000Z","id":7051,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":538,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:50.000Z","id":7052,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":32,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:50.000Z","id":7053,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":33,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:50.000Z","id":7054,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":34,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:50.000Z","id":7055,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":35,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:50.000Z","id":7056,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":36,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:50.000Z","id":7057,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":37,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:50.000Z","id":7058,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":38,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:50.000Z","id":7059,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":39,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:50.000Z","id":7060,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":40,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:50.000Z","id":7061,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":41,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:50.000Z","id":7062,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":42,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:50.000Z","id":7063,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":421,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:51.000Z","id":7064,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":424,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:51.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:51.000Z","id":7065,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":427,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:51.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:51.000Z","id":7066,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":430,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:51.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:51.000Z","id":7067,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":433,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:51.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:51.000Z","id":7068,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":436,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:51.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:51.000Z","id":7069,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":439,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:51.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:51.000Z","id":7070,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":442,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:51.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:51.000Z","id":7071,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":445,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:51.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-20T03:55:51.000Z","id":7072,"page_layout_id":654,"page_layout_root_id":64,"pvalue":{},"section_param_id":478,"theme_id":2,"unset":null,"updated_at":"2014-10-20T03:55:51.000Z"}}],"page_layouts":[{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-09T01:13:22.000Z","data_filter":"","data_source":"","data_source_param":"","id":64,"is_enabled":true,"is_full_html":true,"lft":1,"parent_id":null,"rgt":74,"root_id":64,"section_context":"","section_id":1,"section_instance":1,"site_id":1,"slug":"root1","title":"root1","updated_at":"2014-03-09T01:13:22.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-09T02:07:03.000Z","data_filter":"","data_source":"","data_source_param":"","id":65,"is_enabled":true,"is_full_html":false,"lft":2,"parent_id":64,"rgt":7,"root_id":64,"section_context":"","section_id":2,"section_instance":1,"site_id":1,"slug":"container1","title":"header","updated_at":"2014-03-09T02:07:03.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-09T02:08:39.000Z","data_filter":"","data_source":"","data_source_param":"","id":70,"is_enabled":true,"is_full_html":false,"lft":3,"parent_id":65,"rgt":6,"root_id":64,"section_context":"","section_id":2,"section_instance":5,"site_id":1,"slug":"container5","title":"container5","updated_at":"2014-03-09T02:08:39.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-09T02:09:00.000Z","data_filter":"","data_source":"","data_source_param":"","id":71,"is_enabled":true,"is_full_html":false,"lft":4,"parent_id":70,"rgt":5,"root_id":64,"section_context":"","section_id":97,"section_instance":1,"site_id":1,"slug":"logo1","title":"Logo1","updated_at":"2014-03-09T02:09:00.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-09T02:08:05.000Z","data_filter":"","data_source":"","data_source_param":"","id":68,"is_enabled":true,"is_full_html":false,"lft":8,"parent_id":64,"rgt":13,"root_id":64,"section_context":"","section_id":2,"section_instance":4,"site_id":1,"slug":"container4","title":"main menu","updated_at":"2014-10-20T03:51:21.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-22T11:49:22.000Z","data_filter":"","data_source":"","data_source_param":"","id":548,"is_enabled":true,"is_full_html":false,"lft":9,"parent_id":68,"rgt":12,"root_id":64,"section_context":"","section_id":2,"section_instance":8,"site_id":1,"slug":"","title":"container8","updated_at":"2014-09-22T11:49:22.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-09T02:08:32.000Z","data_filter":"","data_source":"","data_source_param":"","id":69,"is_enabled":true,"is_full_html":false,"lft":10,"parent_id":548,"rgt":11,"root_id":64,"section_context":"","section_id":3,"section_instance":1,"site_id":1,"slug":"hmenu1","title":"hmenu1","updated_at":"2014-03-09T02:08:32.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-09T02:07:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":66,"is_enabled":true,"is_full_html":false,"lft":14,"parent_id":64,"rgt":21,"root_id":64,"section_context":"home","section_id":2,"section_instance":2,"site_id":1,"slug":"container2","title":"slogan","updated_at":"2014-03-09T02:07:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-09T03:11:13.000Z","data_filter":"","data_source":"","data_source_param":"","id":72,"is_enabled":true,"is_full_html":false,"lft":15,"parent_id":66,"rgt":20,"root_id":64,"section_context":"","section_id":2,"section_instance":6,"site_id":1,"slug":"container6","title":"container6","updated_at":"2014-03-09T03:11:13.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-15T08:35:58.000Z","data_filter":"","data_source":"","data_source_param":"","id":78,"is_enabled":true,"is_full_html":false,"lft":16,"parent_id":72,"rgt":17,"root_id":64,"section_context":"","section_id":11,"section_instance":1,"site_id":1,"slug":"text1","title":"text1","updated_at":"2014-03-15T08:35:58.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-10T12:22:42.000Z","data_filter":"","data_source":"","data_source_param":"","id":77,"is_enabled":true,"is_full_html":false,"lft":18,"parent_id":72,"rgt":19,"root_id":64,"section_context":"","section_id":111,"section_instance":1,"site_id":1,"slug":"site-form1","title":"Site form1","updated_at":"2014-03-10T12:22:42.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-22T12:11:23.000Z","data_filter":"","data_source":"","data_source_param":"","id":549,"is_enabled":true,"is_full_html":false,"lft":22,"parent_id":64,"rgt":65,"root_id":64,"section_context":"","section_id":2,"section_instance":9,"site_id":1,"slug":"","title":"content container","updated_at":"2014-10-20T03:51:59.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-23T13:32:20.000Z","data_filter":"","data_source":"","data_source_param":"","id":565,"is_enabled":true,"is_full_html":false,"lft":23,"parent_id":549,"rgt":26,"root_id":64,"section_context":"list","section_id":2,"section_instance":18,"site_id":1,"slug":"","title":"common description","updated_at":"2014-10-20T03:52:28.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-18T13:23:00.000Z","data_filter":"","data_source":"","data_source_param":"","id":81,"is_enabled":true,"is_full_html":false,"lft":24,"parent_id":565,"rgt":25,"root_id":64,"section_context":"","section_id":109,"section_instance":1,"site_id":1,"slug":"taxon-description1","title":"Taxon description1","updated_at":"2014-03-18T13:23:00.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-22T12:11:59.000Z","data_filter":"","data_source":"taxon","data_source_param":"","id":550,"is_enabled":true,"is_full_html":false,"lft":27,"parent_id":549,"rgt":38,"root_id":64,"section_context":"list","section_id":2,"section_instance":10,"site_id":1,"slug":"","title":"feature container","updated_at":"2014-10-20T03:52:50.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-22T12:12:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":551,"is_enabled":true,"is_full_html":false,"lft":28,"parent_id":550,"rgt":37,"root_id":64,"section_context":"","section_id":2,"section_instance":11,"site_id":1,"slug":"","title":"container11","updated_at":"2014-09-22T12:12:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-22T12:32:02.000Z","data_filter":"","data_source":"","data_source_param":"","id":555,"is_enabled":true,"is_full_html":false,"lft":29,"parent_id":551,"rgt":36,"root_id":64,"section_context":"","section_id":2,"section_instance":12,"site_id":1,"slug":"","title":"container12","updated_at":"2014-09-22T12:32:02.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-23T13:12:09.000Z","data_filter":"","data_source":"","data_source_param":"","id":564,"is_enabled":true,"is_full_html":false,"lft":30,"parent_id":555,"rgt":31,"root_id":64,"section_context":"","section_id":119,"section_instance":1,"site_id":1,"slug":"","title":"Taxon icon1","updated_at":"2014-09-23T13:12:09.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-22T12:12:24.000Z","data_filter":"","data_source":"","data_source_param":"","id":552,"is_enabled":true,"is_full_html":false,"lft":32,"parent_id":555,"rgt":33,"root_id":64,"section_context":"","section_id":50,"section_instance":1,"site_id":1,"slug":"","title":"taxon name1","updated_at":"2014-09-22T12:12:24.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-22T12:14:04.000Z","data_filter":"","data_source":"","data_source_param":"","id":554,"is_enabled":true,"is_full_html":false,"lft":34,"parent_id":555,"rgt":35,"root_id":64,"section_context":"","section_id":109,"section_instance":2,"site_id":1,"slug":"","title":"Taxon description2","updated_at":"2014-09-22T12:14:04.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-22T14:07:22.000Z","data_filter":"","data_source":"","data_source_param":"","id":556,"is_enabled":true,"is_full_html":false,"lft":39,"parent_id":549,"rgt":52,"root_id":64,"section_context":"home","section_id":2,"section_instance":13,"site_id":1,"slug":"","title":"index","updated_at":"2014-09-22T14:22:14.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-22T14:07:33.000Z","data_filter":"","data_source":"","data_source_param":"","id":557,"is_enabled":true,"is_full_html":false,"lft":40,"parent_id":556,"rgt":51,"root_id":64,"section_context":"","section_id":2,"section_instance":14,"site_id":1,"slug":"","title":"container14","updated_at":"2014-09-22T14:14:37.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-22T14:08:24.000Z","data_filter":"","data_source":"","data_source_param":"","id":559,"is_enabled":true,"is_full_html":false,"lft":41,"parent_id":557,"rgt":42,"root_id":64,"section_context":"","section_id":40,"section_instance":1,"site_id":1,"slug":"","title":"taxonomy name1","updated_at":"2014-09-22T14:08:24.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-22T14:08:14.000Z","data_filter":"","data_source":"taxon","data_source_param":"","id":558,"is_enabled":true,"is_full_html":false,"lft":43,"parent_id":557,"rgt":50,"root_id":64,"section_context":"","section_id":2,"section_instance":15,"site_id":1,"slug":"","title":"container15","updated_at":"2014-09-22T14:14:41.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-23T11:22:58.000Z","data_filter":"","data_source":"","data_source_param":"","id":563,"is_enabled":true,"is_full_html":false,"lft":44,"parent_id":558,"rgt":49,"root_id":64,"section_context":"","section_id":2,"section_instance":17,"site_id":1,"slug":"","title":"container17","updated_at":"2014-09-23T11:22:58.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-22T14:09:09.000Z","data_filter":"","data_source":"","data_source_param":"","id":560,"is_enabled":true,"is_full_html":false,"lft":45,"parent_id":563,"rgt":46,"root_id":64,"section_context":"","section_id":109,"section_instance":3,"site_id":1,"slug":"","title":"Taxon description3","updated_at":"2014-09-22T14:09:09.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-23T14:05:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":566,"is_enabled":true,"is_full_html":false,"lft":47,"parent_id":563,"rgt":48,"root_id":64,"section_context":"","section_id":119,"section_instance":2,"site_id":1,"slug":"","title":"Taxon icon2","updated_at":"2014-09-23T14:05:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-22T14:22:52.000Z","data_filter":"","data_source":"","data_source_param":"","id":561,"is_enabled":true,"is_full_html":false,"lft":53,"parent_id":549,"rgt":56,"root_id":64,"section_context":"list","section_id":2,"section_instance":16,"site_id":1,"slug":"","title":"contact us","updated_at":"2014-10-20T03:53:03.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-22T14:23:04.000Z","data_filter":"","data_source":"","data_source_param":"","id":562,"is_enabled":true,"is_full_html":false,"lft":54,"parent_id":561,"rgt":55,"root_id":64,"section_context":"","section_id":11,"section_instance":4,"site_id":1,"slug":"","title":"text4","updated_at":"2014-09-22T14:23:04.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-10-20T03:54:42.000Z","data_filter":"","data_source":"","data_source_param":"","id":651,"is_enabled":true,"is_full_html":false,"lft":57,"parent_id":549,"rgt":64,"root_id":64,"section_context":"","section_id":2,"section_instance":19,"site_id":1,"slug":"","title":"templates","updated_at":"2014-10-20T03:55:01.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-10-20T03:55:12.000Z","data_filter":"","data_source":"","data_source_param":"","id":652,"is_enabled":true,"is_full_html":false,"lft":58,"parent_id":651,"rgt":61,"root_id":64,"section_context":"","section_id":2,"section_instance":20,"site_id":1,"slug":"","title":"container20","updated_at":"2014-10-20T03:55:12.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-10-20T03:55:50.000Z","data_filter":"","data_source":"","data_source_param":"","id":654,"is_enabled":true,"is_full_html":false,"lft":59,"parent_id":652,"rgt":60,"root_id":64,"section_context":"","section_id":6,"section_instance":1,"site_id":1,"slug":"","title":"vmenu1","updated_at":"2014-10-20T03:55:50.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-10-20T03:55:21.000Z","data_filter":"","data_source":"","data_source_param":"","id":653,"is_enabled":true,"is_full_html":false,"lft":62,"parent_id":651,"rgt":63,"root_id":64,"section_context":"","section_id":2,"section_instance":21,"site_id":1,"slug":"","title":"container21","updated_at":"2014-10-20T03:55:21.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-09T03:13:27.000Z","data_filter":"","data_source":"","data_source_param":"","id":73,"is_enabled":true,"is_full_html":false,"lft":66,"parent_id":64,"rgt":69,"root_id":64,"section_context":"","section_id":2,"section_instance":7,"site_id":1,"slug":"container7","title":"container7","updated_at":"2014-03-09T03:13:27.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-17T12:57:54.000Z","data_filter":"","data_source":"","data_source_param":"","id":79,"is_enabled":true,"is_full_html":false,"lft":67,"parent_id":73,"rgt":68,"root_id":64,"section_context":"","section_id":11,"section_instance":2,"site_id":1,"slug":"text2","title":"text2","updated_at":"2014-03-17T12:57:54.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-09T02:07:12.000Z","data_filter":"","data_source":"","data_source_param":"","id":67,"is_enabled":true,"is_full_html":false,"lft":70,"parent_id":64,"rgt":73,"root_id":64,"section_context":"","section_id":2,"section_instance":3,"site_id":1,"slug":"container3","title":"footer","updated_at":"2014-06-22T00:18:00.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-03-18T13:48:55.000Z","data_filter":"","data_source":"","data_source_param":"","id":82,"is_enabled":true,"is_full_html":false,"lft":71,"parent_id":67,"rgt":72,"root_id":64,"section_context":"","section_id":11,"section_instance":3,"site_id":1,"slug":"text3","title":"text3","updated_at":"2014-03-18T13:48:55.000Z"}}],"template_files":[{"template_file":{"attachment_content_type":"image/png","attachment_file_name":"dalianshops-logo.png","attachment_file_size":4503,"attachment_height":null,"attachment_updated_at":"2014-09-22T11:24:22.000Z","attachment_width":null,"created_at":"2014-09-22T11:24:22.000Z","id":44,"theme_id":2}},{"template_file":{"attachment_content_type":"image/png","attachment_file_name":"feature-bg.png","attachment_file_size":1769,"attachment_height":null,"attachment_updated_at":"2014-09-23T13:26:31.000Z","attachment_width":null,"created_at":"2014-09-23T13:26:31.000Z","id":45,"theme_id":2}},{"template_file":{"attachment_content_type":"image/png","attachment_file_name":"sanjiao.png","attachment_file_size":284,"attachment_height":null,"attachment_updated_at":"2014-09-23T13:30:55.000Z","attachment_width":null,"created_at":"2014-09-23T13:30:55.000Z","id":46,"theme_id":2}},{"template_file":{"attachment_content_type":"image/png","attachment_file_name":"feature-bg.png","attachment_file_size":1769,"attachment_height":null,"attachment_updated_at":"2014-09-23T13:38:29.000Z","attachment_width":null,"created_at":"2014-09-23T13:38:29.000Z","id":47,"theme_id":2}},{"template_file":{"attachment_content_type":"image/jpeg","attachment_file_name":"feature-bg2.jpg","attachment_file_size":23127,"attachment_height":null,"attachment_updated_at":"2014-09-23T13:38:50.000Z","attachment_width":null,"created_at":"2014-09-23T13:38:50.000Z","id":48,"theme_id":2}},{"template_file":{"attachment_content_type":"image/png","attachment_file_name":"dalianshop-logo2.png","attachment_file_size":3676,"attachment_height":null,"attachment_updated_at":"2014-09-23T15:32:25.000Z","attachment_width":null,"created_at":"2014-09-23T15:32:25.000Z","id":49,"theme_id":2}}],"template_releases":[{"template_release":{"created_at":"2014-09-20T02:23:24.000Z","id":22,"name":"just a test","theme_id":2,"updated_at":"2014-09-20T02:23:24.000Z"}}]} \ No newline at end of file diff --git a/spree_theme/db/themes/designs/1_2_1414758766/dalianshops-logo.png b/spree_theme/db/themes/designs/1_2_1414758766/dalianshops-logo.png deleted file mode 100644 index db6b01a8..00000000 Binary files a/spree_theme/db/themes/designs/1_2_1414758766/dalianshops-logo.png and /dev/null differ diff --git a/spree_theme/db/themes/designs/1_2_1414758766/feature-bg.png b/spree_theme/db/themes/designs/1_2_1414758766/feature-bg.png deleted file mode 100644 index 79ad0c1c..00000000 Binary files a/spree_theme/db/themes/designs/1_2_1414758766/feature-bg.png and /dev/null differ diff --git a/spree_theme/db/themes/designs/1_2_1414758766/feature-bg2.jpg b/spree_theme/db/themes/designs/1_2_1414758766/feature-bg2.jpg deleted file mode 100644 index 81ea4af0..00000000 Binary files a/spree_theme/db/themes/designs/1_2_1414758766/feature-bg2.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/1_2_1414758766/sanjiao.png b/spree_theme/db/themes/designs/1_2_1414758766/sanjiao.png deleted file mode 100644 index 030dd8e3..00000000 Binary files a/spree_theme/db/themes/designs/1_2_1414758766/sanjiao.png and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_12_1410527017.json b/spree_theme/db/themes/designs/2_12_1410527017.json deleted file mode 100644 index 05104ebe..00000000 --- a/spree_theme/db/themes/designs/2_12_1410527017.json +++ /dev/null @@ -1 +0,0 @@ -{"template":{"template_theme":{"assigned_resource_ids":{"479":{"spree/taxon":[101]},"483":{"spree/taxon":[82]},"476":{"spree/taxon":[69]},"489":{"spree/template_text":[9]},"492":{"spree/taxon":[0]},"496":{"spree/taxon":[0]},"498":{"spree/template_text":[8]},"500":{"spree/template_text":[10]},"490":{"spree/taxon":[0]},"508":{"spree/taxon":[76]},"494":{"spree/taxon":[87]},"513":{"spree/template_text":[11]},"478":{"spree/template_file":[29]}},"created_at":"2014-08-26T03:00:40.000Z","id":12,"page_layout_root_id":470,"release_id":20,"site_id":2,"slug":"","title":"\u5927\u8fde\u77e5\u8bc6\u4ea7\u6743\u4ee3\u7406\u516c\u53f8","updated_at":"2014-09-06T04:06:57.000Z"}},"param_values":[{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4266,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{"21":"width:960px","21unset":"1","20":"min-width:960px","20hidden":"1"},"section_param_id":226,"theme_id":12,"unset":null,"updated_at":"2014-08-27T05:32:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4267,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":227,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4268,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{"85":"clear:both"},"section_param_id":228,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4269,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":229,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4270,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{"49unset":"1","49":"color:aqua","52unset":"0","52":"letter-spacing:1px","16unset":"0","16":"line-height:110%","55unset":"1","55":"text-indent:200%"},"section_param_id":230,"theme_id":12,"unset":null,"updated_at":"2014-09-06T08:23:25.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4271,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":231,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4272,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":232,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4273,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":233,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4274,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":234,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4275,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":235,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4276,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":236,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4277,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":237,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4278,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":238,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4279,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":239,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4280,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":240,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4281,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":241,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4282,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":242,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4283,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":243,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4284,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":317,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4285,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":318,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4286,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":319,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4287,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":320,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4288,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":321,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4289,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":322,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4290,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":244,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4291,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":245,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4292,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":246,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4293,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{"49unset":"0","49":"color:#333333"},"section_param_id":247,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:41:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4294,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":248,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4295,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":249,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4296,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":250,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4297,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":251,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4298,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":252,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4299,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":253,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4300,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":254,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4301,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":255,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:00:40.000Z","id":4302,"page_layout_id":470,"page_layout_root_id":470,"pvalue":{},"section_param_id":256,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:00:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:01:10.000Z","id":4303,"page_layout_id":471,"page_layout_root_id":470,"pvalue":{},"section_param_id":6,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:01:10.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:01:10.000Z","id":4304,"page_layout_id":471,"page_layout_root_id":470,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":12,"unset":null,"updated_at":"2014-09-05T13:51:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:01:10.000Z","id":4305,"page_layout_id":471,"page_layout_root_id":470,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:solid none none none","8unset":"0","8":"border-width:4px 0px 0px 0px","6unset":"0","6":"border-color:#C21F1F transparent transparent transparent"},"section_param_id":8,"theme_id":12,"unset":null,"updated_at":"2014-09-11T11:27:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:01:10.000Z","id":4306,"page_layout_id":471,"page_layout_root_id":470,"pvalue":{},"section_param_id":9,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:01:10.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:01:10.000Z","id":4307,"page_layout_id":471,"page_layout_root_id":470,"pvalue":{},"section_param_id":10,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:01:10.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:01:17.000Z","id":4308,"page_layout_id":472,"page_layout_root_id":470,"pvalue":{},"section_param_id":6,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:01:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:01:17.000Z","id":4309,"page_layout_id":472,"page_layout_root_id":470,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":12,"unset":null,"updated_at":"2014-08-27T05:33:14.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:01:17.000Z","id":4310,"page_layout_id":472,"page_layout_root_id":470,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:01:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:01:17.000Z","id":4311,"page_layout_id":472,"page_layout_root_id":470,"pvalue":{},"section_param_id":9,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:01:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:01:17.000Z","id":4312,"page_layout_id":472,"page_layout_root_id":470,"pvalue":{},"section_param_id":10,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:01:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:01:21.000Z","id":4313,"page_layout_id":473,"page_layout_root_id":470,"pvalue":{},"section_param_id":6,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:01:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:01:21.000Z","id":4314,"page_layout_id":473,"page_layout_root_id":470,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:960px"},"section_param_id":7,"theme_id":12,"unset":null,"updated_at":"2014-08-27T05:34:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:01:21.000Z","id":4315,"page_layout_id":473,"page_layout_root_id":470,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:01:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:01:21.000Z","id":4316,"page_layout_id":473,"page_layout_root_id":470,"pvalue":{},"section_param_id":9,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:01:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:01:21.000Z","id":4317,"page_layout_id":473,"page_layout_root_id":470,"pvalue":{},"section_param_id":10,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:01:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:01:31.000Z","id":4318,"page_layout_id":474,"page_layout_root_id":470,"pvalue":{},"section_param_id":6,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:01:31.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:01:31.000Z","id":4319,"page_layout_id":474,"page_layout_root_id":470,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":12,"unset":null,"updated_at":"2014-08-27T03:38:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:01:31.000Z","id":4320,"page_layout_id":474,"page_layout_root_id":470,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:solid none none none","8unset":"0","8":"border-width:5px 0px 0px 0px","6unset":"0","6":"border-color:#D8D8D8 transparent transparent transparent"},"section_param_id":8,"theme_id":12,"unset":null,"updated_at":"2014-08-27T05:31:47.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:01:31.000Z","id":4321,"page_layout_id":474,"page_layout_root_id":470,"pvalue":{"2unset":"0","2":"background-color:#F7F7F8"},"section_param_id":9,"theme_id":12,"unset":null,"updated_at":"2014-08-27T05:25:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:01:31.000Z","id":4322,"page_layout_id":474,"page_layout_root_id":470,"pvalue":{},"section_param_id":10,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:01:31.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:02:38.000Z","id":4323,"page_layout_id":475,"page_layout_root_id":470,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":12,"unset":null,"updated_at":"2014-08-28T03:53:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:02:38.000Z","id":4324,"page_layout_id":475,"page_layout_root_id":470,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"1","21":"width:960px"},"section_param_id":7,"theme_id":12,"unset":null,"updated_at":"2014-09-05T13:53:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:02:38.000Z","id":4325,"page_layout_id":475,"page_layout_root_id":470,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:10px auto auto auto"},"section_param_id":8,"theme_id":12,"unset":null,"updated_at":"2014-09-11T10:42:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:02:38.000Z","id":4326,"page_layout_id":475,"page_layout_root_id":470,"pvalue":{},"section_param_id":9,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:02:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:02:38.000Z","id":4327,"page_layout_id":475,"page_layout_root_id":470,"pvalue":{},"section_param_id":10,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:02:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4328,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{},"section_param_id":11,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:03:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4329,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{"101unset":"1","101":"float:left"},"section_param_id":12,"theme_id":12,"unset":null,"updated_at":"2014-09-11T03:52:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4330,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{"15hidden":"1"},"section_param_id":13,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:03:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4331,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{"3unset":"1","3":"background-image:none"},"section_param_id":14,"theme_id":12,"unset":null,"updated_at":"2014-09-11T13:28:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4332,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{},"section_param_id":15,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:03:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4333,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{"32unset":"0","32":"padding:5px 15px 5px 15px","7unset":"0","7":"border-style:solid none none none","31unset":"0","31":"margin:auto 2px auto auto","8unset":"0","8":"border-width:3px 1px 0px 0px","6unset":"0","6":"border-color:#D8D8D8 transparent transparent transparent"},"section_param_id":16,"theme_id":12,"unset":null,"updated_at":"2014-09-11T11:30:45.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4334,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{"49unset":"0","49":"color:#4C4C4C","54unset":"0","54":"text-decoration:none","24unset":"0","24":"font-size:0.8em"},"section_param_id":17,"theme_id":12,"unset":null,"updated_at":"2014-09-06T03:52:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4335,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{"49unset":"0","49":"color:#C21F1F","54unset":"1","54":"text-decoration:underline"},"section_param_id":18,"theme_id":12,"unset":null,"updated_at":"2014-09-11T11:26:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4336,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{"49unset":"0","49":"color:#C21F1F"},"section_param_id":19,"theme_id":12,"unset":null,"updated_at":"2014-09-11T11:28:31.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4337,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{},"section_param_id":20,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:03:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4338,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{},"section_param_id":21,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:03:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4339,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{"3unset":"0","3":"background-image:10px-bg.jpg","5unset":"0","5":"background-repeat:no-repeat","4unset":"0","4":"background-position:right center"},"section_param_id":22,"theme_id":12,"unset":null,"updated_at":"2014-09-11T13:29:14.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4340,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{"2unset":"1","2":"background-color:white"},"section_param_id":23,"theme_id":12,"unset":null,"updated_at":"2014-08-30T01:49:49.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4341,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{},"section_param_id":24,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:03:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4342,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{},"section_param_id":25,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:03:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4343,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{},"section_param_id":26,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:03:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4344,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{"31unset":"1","31":"margin:auto auto auto auto"},"section_param_id":420,"theme_id":12,"unset":null,"updated_at":"2014-08-27T03:27:23.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4345,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{},"section_param_id":423,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:03:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4346,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{},"section_param_id":426,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:03:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4347,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{},"section_param_id":429,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:03:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4348,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{},"section_param_id":432,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:03:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4349,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{},"section_param_id":435,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:03:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4350,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{},"section_param_id":438,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:03:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:26.000Z","id":4351,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{},"section_param_id":441,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:03:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:27.000Z","id":4352,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{},"section_param_id":444,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:03:27.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:35.000Z","id":4353,"page_layout_id":477,"page_layout_root_id":470,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":12,"unset":null,"updated_at":"2014-09-05T13:54:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:35.000Z","id":4354,"page_layout_id":477,"page_layout_root_id":470,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:960px"},"section_param_id":7,"theme_id":12,"unset":null,"updated_at":"2014-09-05T13:54:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:35.000Z","id":4355,"page_layout_id":477,"page_layout_root_id":470,"pvalue":{"15hidden":"1","15unset":"1","15":"height:100px"},"section_param_id":8,"theme_id":12,"unset":null,"updated_at":"2014-08-28T02:56:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:35.000Z","id":4356,"page_layout_id":477,"page_layout_root_id":470,"pvalue":{"2unset":"1","2":"background-color:#CC0000"},"section_param_id":9,"theme_id":12,"unset":null,"updated_at":"2014-08-30T01:50:07.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:03:35.000Z","id":4357,"page_layout_id":477,"page_layout_root_id":470,"pvalue":{},"section_param_id":10,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:03:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:04:00.000Z","id":4358,"page_layout_id":478,"page_layout_root_id":470,"pvalue":{},"section_param_id":323,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:04:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:04:00.000Z","id":4359,"page_layout_id":478,"page_layout_root_id":470,"pvalue":{},"section_param_id":324,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:04:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:04:00.000Z","id":4360,"page_layout_id":478,"page_layout_root_id":470,"pvalue":{"15hidden":"1"},"section_param_id":325,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:04:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:04:00.000Z","id":4361,"page_layout_id":478,"page_layout_root_id":470,"pvalue":{},"section_param_id":326,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:04:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:04:00.000Z","id":4362,"page_layout_id":478,"page_layout_root_id":470,"pvalue":{},"section_param_id":327,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:04:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:04:11.000Z","id":4363,"page_layout_id":479,"page_layout_root_id":470,"pvalue":{},"section_param_id":388,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:04:11.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:04:11.000Z","id":4364,"page_layout_id":479,"page_layout_root_id":470,"pvalue":{"21":"width:960px","21unset":"0","101unset":"0","101":"float:none"},"section_param_id":389,"theme_id":12,"unset":null,"updated_at":"2014-08-28T02:56:06.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:04:11.000Z","id":4365,"page_layout_id":479,"page_layout_root_id":470,"pvalue":{"15hidden":"1"},"section_param_id":390,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:04:11.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:04:11.000Z","id":4366,"page_layout_id":479,"page_layout_root_id":470,"pvalue":{},"section_param_id":391,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:04:11.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:04:11.000Z","id":4367,"page_layout_id":479,"page_layout_root_id":470,"pvalue":{},"section_param_id":392,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:04:11.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:04:11.000Z","id":4368,"page_layout_id":479,"page_layout_root_id":470,"pvalue":{"78":"width:600px","78unset":"0","79":"height:200px","79unset":"0"},"section_param_id":393,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:04:11.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:04:24.000Z","id":4369,"page_layout_id":480,"page_layout_root_id":470,"pvalue":{},"section_param_id":6,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:04:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:04:24.000Z","id":4370,"page_layout_id":480,"page_layout_root_id":470,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":12,"unset":null,"updated_at":"2014-09-11T12:16:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:04:24.000Z","id":4371,"page_layout_id":480,"page_layout_root_id":470,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:04:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:04:24.000Z","id":4372,"page_layout_id":480,"page_layout_root_id":470,"pvalue":{},"section_param_id":9,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:04:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:04:24.000Z","id":4373,"page_layout_id":480,"page_layout_root_id":470,"pvalue":{},"section_param_id":10,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:04:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:04:37.000Z","id":4374,"page_layout_id":481,"page_layout_root_id":470,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:37:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:04:37.000Z","id":4375,"page_layout_id":481,"page_layout_root_id":470,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:41:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:04:37.000Z","id":4376,"page_layout_id":481,"page_layout_root_id":470,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto auto","32unset":"0","32":"padding:10px 0px 0px 0px"},"section_param_id":8,"theme_id":12,"unset":null,"updated_at":"2014-08-28T06:33:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:04:37.000Z","id":4377,"page_layout_id":481,"page_layout_root_id":470,"pvalue":{},"section_param_id":9,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:04:37.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:04:37.000Z","id":4378,"page_layout_id":481,"page_layout_root_id":470,"pvalue":{},"section_param_id":10,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:04:37.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:06:13.000Z","id":4384,"page_layout_id":483,"page_layout_root_id":470,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":12,"unset":null,"updated_at":"2014-08-27T02:24:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:06:13.000Z","id":4385,"page_layout_id":483,"page_layout_root_id":470,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:968px"},"section_param_id":7,"theme_id":12,"unset":null,"updated_at":"2014-09-11T12:25:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:06:13.000Z","id":4386,"page_layout_id":483,"page_layout_root_id":470,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:8px auto auto auto"},"section_param_id":8,"theme_id":12,"unset":null,"updated_at":"2014-09-11T13:01:06.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:06:13.000Z","id":4387,"page_layout_id":483,"page_layout_root_id":470,"pvalue":{},"section_param_id":9,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:06:13.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:06:13.000Z","id":4388,"page_layout_id":483,"page_layout_root_id":470,"pvalue":{},"section_param_id":10,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:06:13.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:06:24.000Z","id":4389,"page_layout_id":484,"page_layout_root_id":470,"pvalue":{},"section_param_id":6,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:06:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:06:24.000Z","id":4390,"page_layout_id":484,"page_layout_root_id":470,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:960px"},"section_param_id":7,"theme_id":12,"unset":null,"updated_at":"2014-09-11T12:21:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:06:24.000Z","id":4391,"page_layout_id":484,"page_layout_root_id":470,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:35px 0px 0px 0px","31unset":"0","31":"margin:8px auto auto auto"},"section_param_id":8,"theme_id":12,"unset":null,"updated_at":"2014-09-11T13:01:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:06:24.000Z","id":4392,"page_layout_id":484,"page_layout_root_id":470,"pvalue":{"2unset":"0","2":"background-color:#EEEEEE","3unset":"0","3":"background-image:company-desc-head.jpg","5unset":"0","5":"background-repeat:no-repeat"},"section_param_id":9,"theme_id":12,"unset":null,"updated_at":"2014-09-11T12:40:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:06:24.000Z","id":4393,"page_layout_id":484,"page_layout_root_id":470,"pvalue":{},"section_param_id":10,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:06:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:14:54.000Z","id":4394,"page_layout_id":485,"page_layout_root_id":470,"pvalue":{},"section_param_id":6,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:14:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:14:54.000Z","id":4395,"page_layout_id":485,"page_layout_root_id":470,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:242px"},"section_param_id":7,"theme_id":12,"unset":null,"updated_at":"2014-09-11T12:25:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:14:54.000Z","id":4396,"page_layout_id":485,"page_layout_root_id":470,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:0px 4px auto 4px"},"section_param_id":8,"theme_id":12,"unset":null,"updated_at":"2014-09-11T13:00:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:14:54.000Z","id":4397,"page_layout_id":485,"page_layout_root_id":470,"pvalue":{},"section_param_id":9,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:14:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:14:54.000Z","id":4398,"page_layout_id":485,"page_layout_root_id":470,"pvalue":{},"section_param_id":10,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:14:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:21:37.000Z","id":4404,"page_layout_id":487,"page_layout_root_id":470,"pvalue":{},"section_param_id":405,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:21:37.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:21:37.000Z","id":4405,"page_layout_id":487,"page_layout_root_id":470,"pvalue":{"15unset":"1","15":"height:auto","21unset":"0","21":"width:234px"},"section_param_id":406,"theme_id":12,"unset":null,"updated_at":"2014-09-11T12:37:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:21:37.000Z","id":4406,"page_layout_id":487,"page_layout_root_id":470,"pvalue":{"15hidden":"1","32unset":"1","32":"padding:0px 0px 0px 0px","7unset":"0","7":"border-style:solid solid none solid","8unset":"0","8":"border-width:1px 1px 0px 1px","6unset":"0","6":"border-color:#CCCCCC #CCCCCC #CCCCCC #CCCCCC"},"section_param_id":407,"theme_id":12,"unset":null,"updated_at":"2014-09-11T12:39:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:21:37.000Z","id":4407,"page_layout_id":487,"page_layout_root_id":470,"pvalue":{},"section_param_id":408,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:21:37.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:21:37.000Z","id":4408,"page_layout_id":487,"page_layout_root_id":470,"pvalue":{},"section_param_id":409,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:21:37.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:21:55.000Z","id":4409,"page_layout_id":488,"page_layout_root_id":470,"pvalue":{},"section_param_id":362,"theme_id":12,"unset":null,"updated_at":"2014-08-26T03:21:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:21:55.000Z","id":4410,"page_layout_id":488,"page_layout_root_id":470,"pvalue":{"21unset":"0","21":"width:234px"},"section_param_id":363,"theme_id":12,"unset":null,"updated_at":"2014-09-11T12:07:05.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:21:55.000Z","id":4411,"page_layout_id":488,"page_layout_root_id":470,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:5px 5px 5px 10px"},"section_param_id":364,"theme_id":12,"unset":null,"updated_at":"2014-09-11T03:29:49.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:21:55.000Z","id":4412,"page_layout_id":488,"page_layout_root_id":470,"pvalue":{"2unset":"0","2":"background-color:#EEEEEE"},"section_param_id":365,"theme_id":12,"unset":null,"updated_at":"2014-09-11T03:26:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-26T03:21:55.000Z","id":4413,"page_layout_id":488,"page_layout_root_id":470,"pvalue":{"24unset":"0","24":"font-size:0.8em","49unset":"0","49":"color:#666666","55unset":"0","55":"text-indent:2.2em"},"section_param_id":366,"theme_id":12,"unset":null,"updated_at":"2014-09-06T14:30:28.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T03:36:04.000Z","id":4414,"page_layout_id":489,"page_layout_root_id":470,"pvalue":{},"section_param_id":50,"theme_id":12,"unset":null,"updated_at":"2014-08-27T03:36:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T03:36:04.000Z","id":4415,"page_layout_id":489,"page_layout_root_id":470,"pvalue":{"21unset":"0","21":"width:960px","101unset":"0","101":"float:none"},"section_param_id":51,"theme_id":12,"unset":null,"updated_at":"2014-08-27T05:33:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T03:36:04.000Z","id":4416,"page_layout_id":489,"page_layout_root_id":470,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto auto"},"section_param_id":52,"theme_id":12,"unset":null,"updated_at":"2014-08-27T05:33:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T03:36:04.000Z","id":4417,"page_layout_id":489,"page_layout_root_id":470,"pvalue":{},"section_param_id":53,"theme_id":12,"unset":null,"updated_at":"2014-08-27T03:36:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T03:36:04.000Z","id":4418,"page_layout_id":489,"page_layout_root_id":470,"pvalue":{"53unset":"0","53":"text-align:right","49unset":"0","49":"color:#8D9095","24unset":"0","24":"font-size:80%"},"section_param_id":54,"theme_id":12,"unset":null,"updated_at":"2014-08-31T04:14:07.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:18:25.000Z","id":4419,"page_layout_id":490,"page_layout_root_id":470,"pvalue":{},"section_param_id":6,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:18:25.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:18:25.000Z","id":4420,"page_layout_id":490,"page_layout_root_id":470,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:240px"},"section_param_id":7,"theme_id":12,"unset":null,"updated_at":"2014-09-10T12:05:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:18:25.000Z","id":4421,"page_layout_id":490,"page_layout_root_id":470,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 10px 10px 0px"},"section_param_id":8,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:04:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:18:25.000Z","id":4422,"page_layout_id":490,"page_layout_root_id":470,"pvalue":{},"section_param_id":9,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:18:25.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:18:25.000Z","id":4423,"page_layout_id":490,"page_layout_root_id":470,"pvalue":{},"section_param_id":10,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:18:25.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:18:33.000Z","id":4424,"page_layout_id":491,"page_layout_root_id":470,"pvalue":{},"section_param_id":6,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:18:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:18:33.000Z","id":4425,"page_layout_id":491,"page_layout_root_id":470,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:720px"},"section_param_id":7,"theme_id":12,"unset":null,"updated_at":"2014-09-11T03:43:30.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:18:33.000Z","id":4426,"page_layout_id":491,"page_layout_root_id":470,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:5px 25px 5px 25px","31unset":"0","31":"margin:auto auto 10px auto"},"section_param_id":8,"theme_id":12,"unset":null,"updated_at":"2014-09-11T03:47:29.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:18:33.000Z","id":4427,"page_layout_id":491,"page_layout_root_id":470,"pvalue":{"2unset":"0","2":"background-color:#EEEEEE"},"section_param_id":9,"theme_id":12,"unset":null,"updated_at":"2014-09-11T03:43:51.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:18:33.000Z","id":4428,"page_layout_id":491,"page_layout_root_id":470,"pvalue":{"55unset":"0","55":"text-indent:2em"},"section_param_id":10,"theme_id":12,"unset":null,"updated_at":"2014-09-11T03:47:44.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:34.000Z","id":4429,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{},"section_param_id":27,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:24:34.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:34.000Z","id":4430,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":28,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:08:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:34.000Z","id":4431,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:15px auto 10px auto"},"section_param_id":29,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:21:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:34.000Z","id":4432,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{},"section_param_id":30,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:24:34.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:34.000Z","id":4433,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{},"section_param_id":31,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:24:34.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:34.000Z","id":4434,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{"7unset":"0","7":"border-style:none none solid solid","8unset":"0","8":"border-width:0px 0px 1px 5px","32unset":"0","32":"padding:10px 0px 12px 0px","6unset":"0","6":"border-color:transparent transparent #D8D8D8 transparent","21unset":"0","21":"width:100%"},"section_param_id":32,"theme_id":12,"unset":null,"updated_at":"2014-09-11T12:59:10.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:34.000Z","id":4435,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{"54unset":"0","54":"text-decoration:none","53unset":"0","53":"text-align:center","49unset":"0","49":"color:#333333"},"section_param_id":33,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:15:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:34.000Z","id":4436,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{"49unset":"0","49":"color:#AF1233"},"section_param_id":34,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:19:51.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:34.000Z","id":4437,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{},"section_param_id":35,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:24:34.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:35.000Z","id":4438,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{},"section_param_id":36,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:24:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:35.000Z","id":4439,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{},"section_param_id":37,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:24:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:35.000Z","id":4440,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{},"section_param_id":38,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:24:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:35.000Z","id":4441,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{"2unset":"0","2":"background-color:white"},"section_param_id":39,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:19:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:35.000Z","id":4442,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{},"section_param_id":40,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:24:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:35.000Z","id":4443,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{},"section_param_id":41,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:24:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:35.000Z","id":4444,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{},"section_param_id":42,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:24:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:35.000Z","id":4445,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{},"section_param_id":421,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:24:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:35.000Z","id":4446,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{},"section_param_id":424,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:24:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:35.000Z","id":4447,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{},"section_param_id":427,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:24:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:35.000Z","id":4448,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{},"section_param_id":430,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:24:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:35.000Z","id":4449,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{},"section_param_id":433,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:24:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:35.000Z","id":4450,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{},"section_param_id":436,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:24:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:35.000Z","id":4451,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{},"section_param_id":439,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:24:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:35.000Z","id":4452,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{},"section_param_id":442,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:24:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:24:35.000Z","id":4453,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{},"section_param_id":445,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:24:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:26:26.000Z","id":4454,"page_layout_id":493,"page_layout_root_id":470,"pvalue":{},"section_param_id":362,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:26:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:26:26.000Z","id":4455,"page_layout_id":493,"page_layout_root_id":470,"pvalue":{},"section_param_id":363,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:26:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:26:26.000Z","id":4456,"page_layout_id":493,"page_layout_root_id":470,"pvalue":{"15hidden":"1"},"section_param_id":364,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:26:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:26:26.000Z","id":4457,"page_layout_id":493,"page_layout_root_id":470,"pvalue":{},"section_param_id":365,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:26:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:26:26.000Z","id":4458,"page_layout_id":493,"page_layout_root_id":470,"pvalue":{},"section_param_id":366,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:26:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:27:53.000Z","id":4459,"page_layout_id":494,"page_layout_root_id":470,"pvalue":{},"section_param_id":6,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:27:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:27:53.000Z","id":4460,"page_layout_id":494,"page_layout_root_id":470,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:25:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:27:53.000Z","id":4461,"page_layout_id":494,"page_layout_root_id":470,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:27:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:27:54.000Z","id":4462,"page_layout_id":494,"page_layout_root_id":470,"pvalue":{"2unset":"0","2":"background-color:#EEEEEE"},"section_param_id":9,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:32:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:27:54.000Z","id":4463,"page_layout_id":494,"page_layout_root_id":470,"pvalue":{},"section_param_id":10,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:27:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4469,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{},"section_param_id":27,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4470,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":28,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:27:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4471,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:15px auto 10px auto"},"section_param_id":29,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:28:20.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4472,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{},"section_param_id":30,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4473,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{},"section_param_id":31,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4474,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{"32unset":"0","32":"padding:18px 0px 12px 0px","21unset":"0","21":"width:100%","7unset":"0","7":"border-style:none none solid solid","6unset":"0","6":"border-color:transparent transparent #D8D8D8 transparent","8unset":"0","8":"border-width:0px 0px 1px 5px"},"section_param_id":32,"theme_id":12,"unset":null,"updated_at":"2014-09-11T13:11:25.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4475,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{"49unset":"0","49":"color:#333333","53unset":"0","53":"text-align:center","54unset":"0","54":"text-decoration:none"},"section_param_id":33,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:33:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4476,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{"49unset":"0","49":"color:#AF1233"},"section_param_id":34,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:34:27.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4477,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{},"section_param_id":35,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4478,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{},"section_param_id":36,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4479,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{},"section_param_id":37,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4480,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{},"section_param_id":38,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4481,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{"2unset":"0","2":"background-color:white"},"section_param_id":39,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:33:49.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4482,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{},"section_param_id":40,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4483,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{},"section_param_id":41,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4484,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{},"section_param_id":42,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4485,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{},"section_param_id":421,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4486,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{},"section_param_id":424,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4487,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{},"section_param_id":427,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4488,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{},"section_param_id":430,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4489,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{},"section_param_id":433,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4490,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{},"section_param_id":436,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4491,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{},"section_param_id":439,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4492,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{},"section_param_id":442,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:19.000Z","id":4493,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{},"section_param_id":445,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:48.000Z","id":4494,"page_layout_id":497,"page_layout_root_id":470,"pvalue":{},"section_param_id":362,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:48.000Z","id":4495,"page_layout_id":497,"page_layout_root_id":470,"pvalue":{},"section_param_id":363,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:48.000Z","id":4496,"page_layout_id":497,"page_layout_root_id":470,"pvalue":{"15hidden":"1"},"section_param_id":364,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:48.000Z","id":4497,"page_layout_id":497,"page_layout_root_id":470,"pvalue":{},"section_param_id":365,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-27T06:28:48.000Z","id":4498,"page_layout_id":497,"page_layout_root_id":470,"pvalue":{},"section_param_id":366,"theme_id":12,"unset":null,"updated_at":"2014-08-27T06:28:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T02:57:41.000Z","id":4499,"page_layout_id":498,"page_layout_root_id":470,"pvalue":{},"section_param_id":50,"theme_id":12,"unset":null,"updated_at":"2014-08-28T02:57:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T02:57:41.000Z","id":4500,"page_layout_id":498,"page_layout_root_id":470,"pvalue":{},"section_param_id":51,"theme_id":12,"unset":null,"updated_at":"2014-08-28T02:57:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T02:57:41.000Z","id":4501,"page_layout_id":498,"page_layout_root_id":470,"pvalue":{"15hidden":"1","7unset":"1","7":"border-style:solid solid none solid","8unset":"1","8":"border-width:1px 0px 0px 0px","6unset":"1","6":"border-color:#D8D8D8 #D8D8D8 transparent #D8D8D8","32unset":"0","32":"padding:10px 180px 0px 30px"},"section_param_id":52,"theme_id":12,"unset":null,"updated_at":"2014-09-11T12:41:34.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T02:57:41.000Z","id":4502,"page_layout_id":498,"page_layout_root_id":470,"pvalue":{"3unset":"0","3":"background-image:company-desc-bg5.jpg","5unset":"0","5":"background-repeat:no-repeat","4unset":"0","4":"background-position:right bottom"},"section_param_id":53,"theme_id":12,"unset":null,"updated_at":"2014-09-11T12:44:05.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T02:57:41.000Z","id":4503,"page_layout_id":498,"page_layout_root_id":470,"pvalue":{"53unset":"1","53":"text-align:left","49unset":"0","49":"color:#666666","55unset":"0","55":"text-indent:2em","24unset":"0","24":"font-size:90%"},"section_param_id":54,"theme_id":12,"unset":null,"updated_at":"2014-09-11T13:57:31.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T03:12:50.000Z","id":4504,"page_layout_id":499,"page_layout_root_id":470,"pvalue":{},"section_param_id":6,"theme_id":12,"unset":null,"updated_at":"2014-08-28T03:12:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T03:12:50.000Z","id":4505,"page_layout_id":499,"page_layout_root_id":470,"pvalue":{"101":"float:right","101unset":"0","15":"height:100px","15unset":"1","21unset":"1","21":"width:960px"},"section_param_id":7,"theme_id":12,"unset":null,"updated_at":"2014-09-05T13:53:20.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T03:12:50.000Z","id":4506,"page_layout_id":499,"page_layout_root_id":470,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:20px 0px 0px 0px"},"section_param_id":8,"theme_id":12,"unset":null,"updated_at":"2014-09-11T11:44:27.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T03:12:50.000Z","id":4507,"page_layout_id":499,"page_layout_root_id":470,"pvalue":{},"section_param_id":9,"theme_id":12,"unset":null,"updated_at":"2014-08-28T03:12:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T03:12:50.000Z","id":4508,"page_layout_id":499,"page_layout_root_id":470,"pvalue":{},"section_param_id":10,"theme_id":12,"unset":null,"updated_at":"2014-08-28T03:12:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T03:52:00.000Z","id":4509,"page_layout_id":500,"page_layout_root_id":470,"pvalue":{},"section_param_id":50,"theme_id":12,"unset":null,"updated_at":"2014-08-28T03:52:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T03:52:00.000Z","id":4510,"page_layout_id":500,"page_layout_root_id":470,"pvalue":{"101unset":"0","101":"float:right","15unset":"0","15":"height:80px","21unset":"0","21":"width:380px"},"section_param_id":51,"theme_id":12,"unset":null,"updated_at":"2014-09-11T11:43:05.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T03:52:00.000Z","id":4511,"page_layout_id":500,"page_layout_root_id":470,"pvalue":{"15hidden":"1","15unset":"0","15":"height:45px","31unset":"0","31":"margin:15px auto auto auto","32unset":"0","32":"padding:20px 0px 0px 0px"},"section_param_id":52,"theme_id":12,"unset":null,"updated_at":"2014-09-10T12:01:27.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T03:52:00.000Z","id":4512,"page_layout_id":500,"page_layout_root_id":470,"pvalue":{"3unset":"0","3":"background-image:social-media4.jpg","5unset":"0","5":"background-repeat:no-repeat"},"section_param_id":53,"theme_id":12,"unset":null,"updated_at":"2014-09-11T11:42:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T03:52:00.000Z","id":4513,"page_layout_id":500,"page_layout_root_id":470,"pvalue":{"24unset":"0","24":"font-size:80%"},"section_param_id":54,"theme_id":12,"unset":null,"updated_at":"2014-09-10T11:58:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T06:15:39.000Z","id":4514,"page_layout_id":501,"page_layout_root_id":470,"pvalue":{},"section_param_id":135,"theme_id":12,"unset":null,"updated_at":"2014-08-28T06:15:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T06:15:39.000Z","id":4515,"page_layout_id":501,"page_layout_root_id":470,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":136,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:04:30.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T06:15:39.000Z","id":4516,"page_layout_id":501,"page_layout_root_id":470,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto auto auto","32unset":"0","32":"padding:15px 10px 15px 10px"},"section_param_id":137,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:13:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T06:15:39.000Z","id":4517,"page_layout_id":501,"page_layout_root_id":470,"pvalue":{"2unset":"0","2":"background-color:#AF1233"},"section_param_id":138,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:04:49.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T06:15:39.000Z","id":4518,"page_layout_id":501,"page_layout_root_id":470,"pvalue":{"24unset":"0","24":"font-size:120%","27unset":"0","27":"font-weight:bolder","49unset":"0","49":"color:white","53unset":"0","53":"text-align:center"},"section_param_id":139,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:07:18.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:02:09.000Z","id":4519,"page_layout_id":502,"page_layout_root_id":470,"pvalue":{},"section_param_id":6,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:02:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:02:09.000Z","id":4520,"page_layout_id":502,"page_layout_root_id":470,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:40:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:02:09.000Z","id":4521,"page_layout_id":502,"page_layout_root_id":470,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 40px auto"},"section_param_id":8,"theme_id":12,"unset":null,"updated_at":"2014-08-30T02:37:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:02:09.000Z","id":4522,"page_layout_id":502,"page_layout_root_id":470,"pvalue":{},"section_param_id":9,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:02:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:02:09.000Z","id":4523,"page_layout_id":502,"page_layout_root_id":470,"pvalue":{},"section_param_id":10,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:02:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:02:57.000Z","id":4524,"page_layout_id":503,"page_layout_root_id":470,"pvalue":{},"section_param_id":6,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:02:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:02:57.000Z","id":4525,"page_layout_id":503,"page_layout_root_id":470,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":12,"unset":null,"updated_at":"2014-08-29T12:45:13.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:02:58.000Z","id":4526,"page_layout_id":503,"page_layout_root_id":470,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:02:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:02:58.000Z","id":4527,"page_layout_id":503,"page_layout_root_id":470,"pvalue":{},"section_param_id":9,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:02:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:02:58.000Z","id":4528,"page_layout_id":503,"page_layout_root_id":470,"pvalue":{},"section_param_id":10,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:02:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:03:52.000Z","id":4529,"page_layout_id":504,"page_layout_root_id":470,"pvalue":{},"section_param_id":447,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:03:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:03:52.000Z","id":4530,"page_layout_id":504,"page_layout_root_id":470,"pvalue":{},"section_param_id":448,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:03:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:03:52.000Z","id":4531,"page_layout_id":504,"page_layout_root_id":470,"pvalue":{"15hidden":"1"},"section_param_id":449,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:03:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:03:52.000Z","id":4532,"page_layout_id":504,"page_layout_root_id":470,"pvalue":{},"section_param_id":450,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:03:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:03:52.000Z","id":4533,"page_layout_id":504,"page_layout_root_id":470,"pvalue":{"55unset":"0","55":"text-indent:0em"},"section_param_id":451,"theme_id":12,"unset":null,"updated_at":"2014-09-11T13:14:11.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:03:52.000Z","id":4534,"page_layout_id":504,"page_layout_root_id":470,"pvalue":{},"section_param_id":452,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:03:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:03:52.000Z","id":4535,"page_layout_id":504,"page_layout_root_id":470,"pvalue":{},"section_param_id":453,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:03:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:03:52.000Z","id":4536,"page_layout_id":504,"page_layout_root_id":470,"pvalue":{},"section_param_id":454,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:03:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:03:52.000Z","id":4537,"page_layout_id":504,"page_layout_root_id":470,"pvalue":{},"section_param_id":455,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:03:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:03:52.000Z","id":4538,"page_layout_id":504,"page_layout_root_id":470,"pvalue":{},"section_param_id":456,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:03:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:04:02.000Z","id":4539,"page_layout_id":505,"page_layout_root_id":470,"pvalue":{},"section_param_id":457,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:04:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:04:02.000Z","id":4540,"page_layout_id":505,"page_layout_root_id":470,"pvalue":{"101unset":"0","101":"float:right"},"section_param_id":458,"theme_id":12,"unset":null,"updated_at":"2014-08-29T12:40:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:04:02.000Z","id":4541,"page_layout_id":505,"page_layout_root_id":470,"pvalue":{"15hidden":"1"},"section_param_id":459,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:04:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:04:02.000Z","id":4542,"page_layout_id":505,"page_layout_root_id":470,"pvalue":{},"section_param_id":460,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:04:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:04:02.000Z","id":4543,"page_layout_id":505,"page_layout_root_id":470,"pvalue":{"24unset":"0","24":"font-size:80%","55unset":"0","55":"text-indent:0em"},"section_param_id":461,"theme_id":12,"unset":null,"updated_at":"2014-09-11T13:14:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:04:30.000Z","id":4554,"page_layout_id":507,"page_layout_root_id":470,"pvalue":{},"section_param_id":467,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:04:30.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:04:30.000Z","id":4555,"page_layout_id":507,"page_layout_root_id":470,"pvalue":{},"section_param_id":468,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:04:30.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:04:30.000Z","id":4556,"page_layout_id":507,"page_layout_root_id":470,"pvalue":{"15hidden":"1"},"section_param_id":469,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:04:30.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:04:30.000Z","id":4557,"page_layout_id":507,"page_layout_root_id":470,"pvalue":{},"section_param_id":470,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:04:30.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-28T14:04:30.000Z","id":4558,"page_layout_id":507,"page_layout_root_id":470,"pvalue":{},"section_param_id":471,"theme_id":12,"unset":null,"updated_at":"2014-08-28T14:04:30.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-29T12:34:14.000Z","id":4559,"page_layout_id":508,"page_layout_root_id":470,"pvalue":{},"section_param_id":6,"theme_id":12,"unset":null,"updated_at":"2014-08-29T12:34:14.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-29T12:34:14.000Z","id":4560,"page_layout_id":508,"page_layout_root_id":470,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":12,"unset":null,"updated_at":"2014-09-10T12:05:20.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-29T12:34:14.000Z","id":4561,"page_layout_id":508,"page_layout_root_id":470,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":12,"unset":null,"updated_at":"2014-08-29T12:34:14.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-29T12:34:14.000Z","id":4562,"page_layout_id":508,"page_layout_root_id":470,"pvalue":{"2unset":"0","2":"background-color:#EEEEEE"},"section_param_id":9,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:09:47.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-29T12:34:14.000Z","id":4563,"page_layout_id":508,"page_layout_root_id":470,"pvalue":{},"section_param_id":10,"theme_id":12,"unset":null,"updated_at":"2014-08-29T12:34:14.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-29T12:38:21.000Z","id":4564,"page_layout_id":509,"page_layout_root_id":470,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":12,"unset":null,"updated_at":"2014-08-29T12:40:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-29T12:38:21.000Z","id":4565,"page_layout_id":509,"page_layout_root_id":470,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:39:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-29T12:38:21.000Z","id":4566,"page_layout_id":509,"page_layout_root_id":470,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #F7F7F8 transparent","32unset":"0","32":"padding:15px 0px 8px 0px"},"section_param_id":8,"theme_id":12,"unset":null,"updated_at":"2014-08-30T02:36:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-29T12:38:21.000Z","id":4567,"page_layout_id":509,"page_layout_root_id":470,"pvalue":{},"section_param_id":9,"theme_id":12,"unset":null,"updated_at":"2014-08-29T12:38:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-29T12:38:21.000Z","id":4568,"page_layout_id":509,"page_layout_root_id":470,"pvalue":{},"section_param_id":10,"theme_id":12,"unset":null,"updated_at":"2014-08-29T12:38:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T02:06:58.000Z","id":4569,"page_layout_id":510,"page_layout_root_id":470,"pvalue":{},"section_param_id":6,"theme_id":12,"unset":null,"updated_at":"2014-08-30T02:06:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T02:06:58.000Z","id":4570,"page_layout_id":510,"page_layout_root_id":470,"pvalue":{"101":"float:none","101unset":"0","15":"height:150px","15unset":"0","21unset":"0","21":"width:960px"},"section_param_id":7,"theme_id":12,"unset":null,"updated_at":"2014-09-11T13:17:37.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T02:06:58.000Z","id":4571,"page_layout_id":510,"page_layout_root_id":470,"pvalue":{"15hidden":"1","15unset":"0","15":"height:150px"},"section_param_id":8,"theme_id":12,"unset":null,"updated_at":"2014-09-11T13:17:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T02:06:58.000Z","id":4572,"page_layout_id":510,"page_layout_root_id":470,"pvalue":{"2unset":"0","2":"background-color:#3D2315","3unset":"0","3":"background-image:banner4.jpg"},"section_param_id":9,"theme_id":12,"unset":null,"updated_at":"2014-09-11T13:17:20.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T02:06:58.000Z","id":4573,"page_layout_id":510,"page_layout_root_id":470,"pvalue":{"49unset":"0","49":"color:white","53unset":"1","53":"text-align:center"},"section_param_id":10,"theme_id":12,"unset":null,"updated_at":"2014-08-31T05:32:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T02:46:06.000Z","id":4579,"page_layout_id":512,"page_layout_root_id":470,"pvalue":{},"section_param_id":447,"theme_id":12,"unset":null,"updated_at":"2014-08-30T02:46:06.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T02:46:06.000Z","id":4580,"page_layout_id":512,"page_layout_root_id":470,"pvalue":{"101unset":"0","101":"float:none"},"section_param_id":448,"theme_id":12,"unset":null,"updated_at":"2014-08-30T02:47:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T02:46:06.000Z","id":4581,"page_layout_id":512,"page_layout_root_id":470,"pvalue":{"15hidden":"1"},"section_param_id":449,"theme_id":12,"unset":null,"updated_at":"2014-08-30T02:46:06.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T02:46:06.000Z","id":4582,"page_layout_id":512,"page_layout_root_id":470,"pvalue":{},"section_param_id":450,"theme_id":12,"unset":null,"updated_at":"2014-08-30T02:46:06.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T02:46:06.000Z","id":4583,"page_layout_id":512,"page_layout_root_id":470,"pvalue":{"53unset":"0","53":"text-align:center"},"section_param_id":451,"theme_id":12,"unset":null,"updated_at":"2014-08-30T02:48:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T02:46:06.000Z","id":4584,"page_layout_id":512,"page_layout_root_id":470,"pvalue":{},"section_param_id":452,"theme_id":12,"unset":null,"updated_at":"2014-08-30T02:46:06.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T02:46:06.000Z","id":4585,"page_layout_id":512,"page_layout_root_id":470,"pvalue":{},"section_param_id":453,"theme_id":12,"unset":null,"updated_at":"2014-08-30T02:46:06.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T02:46:06.000Z","id":4586,"page_layout_id":512,"page_layout_root_id":470,"pvalue":{},"section_param_id":454,"theme_id":12,"unset":null,"updated_at":"2014-08-30T02:46:06.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T02:46:06.000Z","id":4587,"page_layout_id":512,"page_layout_root_id":470,"pvalue":{},"section_param_id":455,"theme_id":12,"unset":null,"updated_at":"2014-08-30T02:46:06.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T02:46:06.000Z","id":4588,"page_layout_id":512,"page_layout_root_id":470,"pvalue":{},"section_param_id":456,"theme_id":12,"unset":null,"updated_at":"2014-08-30T02:46:06.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T02:47:09.000Z","id":4589,"page_layout_id":513,"page_layout_root_id":470,"pvalue":{},"section_param_id":50,"theme_id":12,"unset":null,"updated_at":"2014-08-30T02:47:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T02:47:09.000Z","id":4590,"page_layout_id":513,"page_layout_root_id":470,"pvalue":{"15unset":"0","15":"height:100px","21unset":"0","21":"width:960px"},"section_param_id":51,"theme_id":12,"unset":null,"updated_at":"2014-08-31T05:32:28.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T02:47:09.000Z","id":4591,"page_layout_id":513,"page_layout_root_id":470,"pvalue":{"15hidden":"1","15unset":"0","15":"height:100px"},"section_param_id":52,"theme_id":12,"unset":null,"updated_at":"2014-08-31T05:30:47.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T02:47:09.000Z","id":4592,"page_layout_id":513,"page_layout_root_id":470,"pvalue":{},"section_param_id":53,"theme_id":12,"unset":null,"updated_at":"2014-08-30T02:47:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T02:47:09.000Z","id":4593,"page_layout_id":513,"page_layout_root_id":470,"pvalue":{"53unset":"0","53":"text-align:center"},"section_param_id":54,"theme_id":12,"unset":null,"updated_at":"2014-08-31T05:32:37.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T03:01:47.000Z","id":4594,"page_layout_id":514,"page_layout_root_id":470,"pvalue":{},"section_param_id":135,"theme_id":12,"unset":null,"updated_at":"2014-08-30T03:01:47.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T03:01:47.000Z","id":4595,"page_layout_id":514,"page_layout_root_id":470,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":136,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:25:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T03:01:47.000Z","id":4596,"page_layout_id":514,"page_layout_root_id":470,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto auto","32unset":"0","32":"padding:15px 10px 15px 10px"},"section_param_id":137,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:26:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T03:01:47.000Z","id":4597,"page_layout_id":514,"page_layout_root_id":470,"pvalue":{"2unset":"0","2":"background-color:#AF1233"},"section_param_id":138,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:26:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-30T03:01:47.000Z","id":4598,"page_layout_id":514,"page_layout_root_id":470,"pvalue":{"24unset":"0","24":"font-size:120%","27unset":"0","27":"font-weight:bold","49unset":"0","49":"color:white","53unset":"0","53":"text-align:center"},"section_param_id":139,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:27:10.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:57.000Z","id":4603,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{"6unset":"0","6":"border-color:#C21F1F gray transparent transparent"},"section_param_id":477,"theme_id":12,"unset":null,"updated_at":"2014-09-11T11:26:34.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4610,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{"7unset":"0","7":"border-style:none none none solid","8unset":"0","8":"border-width:0px 0px 1px 5px","6unset":"0","6":"border-color:transparent transparent #D8D8D8 #AF1233"},"section_param_id":478,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:22:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4611,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{"7unset":"0","7":"border-style:none none solid solid","8unset":"0","8":"border-width:0px 0px 1px 5px","6unset":"0","6":"border-color:transparent transparent #D8D8D8 #AF1233"},"section_param_id":478,"theme_id":12,"unset":null,"updated_at":"2014-09-10T13:32:10.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4729,"page_layout_id":471,"page_layout_root_id":470,"pvalue":{},"section_param_id":480,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4730,"page_layout_id":472,"page_layout_root_id":470,"pvalue":{},"section_param_id":480,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4731,"page_layout_id":473,"page_layout_root_id":470,"pvalue":{},"section_param_id":480,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4732,"page_layout_id":474,"page_layout_root_id":470,"pvalue":{},"section_param_id":480,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4733,"page_layout_id":475,"page_layout_root_id":470,"pvalue":{},"section_param_id":480,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4734,"page_layout_id":477,"page_layout_root_id":470,"pvalue":{},"section_param_id":480,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4735,"page_layout_id":480,"page_layout_root_id":470,"pvalue":{},"section_param_id":480,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4736,"page_layout_id":481,"page_layout_root_id":470,"pvalue":{},"section_param_id":480,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4737,"page_layout_id":483,"page_layout_root_id":470,"pvalue":{},"section_param_id":480,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4738,"page_layout_id":484,"page_layout_root_id":470,"pvalue":{},"section_param_id":480,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4739,"page_layout_id":485,"page_layout_root_id":470,"pvalue":{},"section_param_id":480,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4740,"page_layout_id":490,"page_layout_root_id":470,"pvalue":{},"section_param_id":480,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4741,"page_layout_id":491,"page_layout_root_id":470,"pvalue":{},"section_param_id":480,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4742,"page_layout_id":494,"page_layout_root_id":470,"pvalue":{},"section_param_id":480,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4743,"page_layout_id":499,"page_layout_root_id":470,"pvalue":{},"section_param_id":480,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4744,"page_layout_id":502,"page_layout_root_id":470,"pvalue":{},"section_param_id":480,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4745,"page_layout_id":503,"page_layout_root_id":470,"pvalue":{},"section_param_id":480,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4746,"page_layout_id":508,"page_layout_root_id":470,"pvalue":{},"section_param_id":480,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4747,"page_layout_id":509,"page_layout_root_id":470,"pvalue":{},"section_param_id":480,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4748,"page_layout_id":510,"page_layout_root_id":470,"pvalue":{},"section_param_id":480,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4753,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{},"section_param_id":481,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4760,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{},"section_param_id":482,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4761,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{},"section_param_id":482,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4772,"page_layout_id":489,"page_layout_root_id":470,"pvalue":{},"section_param_id":484,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4773,"page_layout_id":498,"page_layout_root_id":470,"pvalue":{},"section_param_id":484,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4774,"page_layout_id":500,"page_layout_root_id":470,"pvalue":{},"section_param_id":484,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4775,"page_layout_id":513,"page_layout_root_id":470,"pvalue":{},"section_param_id":484,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4818,"page_layout_id":501,"page_layout_root_id":470,"pvalue":{},"section_param_id":501,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4819,"page_layout_id":514,"page_layout_root_id":470,"pvalue":{},"section_param_id":501,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4874,"page_layout_id":478,"page_layout_root_id":470,"pvalue":{},"section_param_id":520,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4886,"page_layout_id":488,"page_layout_root_id":470,"pvalue":{},"section_param_id":525,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4887,"page_layout_id":493,"page_layout_root_id":470,"pvalue":{},"section_param_id":525,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4891,"page_layout_id":479,"page_layout_root_id":470,"pvalue":{},"section_param_id":527,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4894,"page_layout_id":487,"page_layout_root_id":470,"pvalue":{},"section_param_id":529,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4897,"page_layout_id":504,"page_layout_root_id":470,"pvalue":{},"section_param_id":531,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4898,"page_layout_id":512,"page_layout_root_id":470,"pvalue":{},"section_param_id":531,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4899,"page_layout_id":505,"page_layout_root_id":470,"pvalue":{},"section_param_id":532,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4900,"page_layout_id":507,"page_layout_root_id":470,"pvalue":{},"section_param_id":534,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5015,"page_layout_id":471,"page_layout_root_id":470,"pvalue":{},"section_param_id":536,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5016,"page_layout_id":472,"page_layout_root_id":470,"pvalue":{},"section_param_id":536,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5017,"page_layout_id":473,"page_layout_root_id":470,"pvalue":{},"section_param_id":536,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5018,"page_layout_id":474,"page_layout_root_id":470,"pvalue":{},"section_param_id":536,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5019,"page_layout_id":475,"page_layout_root_id":470,"pvalue":{},"section_param_id":536,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5020,"page_layout_id":477,"page_layout_root_id":470,"pvalue":{"2unset":"1","2":"background-color:silver"},"section_param_id":536,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:55:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5021,"page_layout_id":480,"page_layout_root_id":470,"pvalue":{},"section_param_id":536,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5022,"page_layout_id":481,"page_layout_root_id":470,"pvalue":{},"section_param_id":536,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5023,"page_layout_id":483,"page_layout_root_id":470,"pvalue":{},"section_param_id":536,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5024,"page_layout_id":484,"page_layout_root_id":470,"pvalue":{},"section_param_id":536,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5025,"page_layout_id":485,"page_layout_root_id":470,"pvalue":{"2unset":"0","2":"background-color:#C8C8C8"},"section_param_id":536,"theme_id":12,"unset":null,"updated_at":"2014-09-07T14:10:14.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5026,"page_layout_id":490,"page_layout_root_id":470,"pvalue":{},"section_param_id":536,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5027,"page_layout_id":491,"page_layout_root_id":470,"pvalue":{},"section_param_id":536,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5028,"page_layout_id":494,"page_layout_root_id":470,"pvalue":{},"section_param_id":536,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5029,"page_layout_id":499,"page_layout_root_id":470,"pvalue":{},"section_param_id":536,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5030,"page_layout_id":502,"page_layout_root_id":470,"pvalue":{},"section_param_id":536,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5031,"page_layout_id":503,"page_layout_root_id":470,"pvalue":{},"section_param_id":536,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5032,"page_layout_id":508,"page_layout_root_id":470,"pvalue":{},"section_param_id":536,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5033,"page_layout_id":509,"page_layout_root_id":470,"pvalue":{},"section_param_id":536,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5034,"page_layout_id":510,"page_layout_root_id":470,"pvalue":{},"section_param_id":536,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5039,"page_layout_id":476,"page_layout_root_id":470,"pvalue":{},"section_param_id":537,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5046,"page_layout_id":492,"page_layout_root_id":470,"pvalue":{},"section_param_id":538,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5047,"page_layout_id":496,"page_layout_root_id":470,"pvalue":{},"section_param_id":538,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5058,"page_layout_id":489,"page_layout_root_id":470,"pvalue":{},"section_param_id":540,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5059,"page_layout_id":498,"page_layout_root_id":470,"pvalue":{},"section_param_id":540,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5060,"page_layout_id":500,"page_layout_root_id":470,"pvalue":{},"section_param_id":540,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5061,"page_layout_id":513,"page_layout_root_id":470,"pvalue":{},"section_param_id":540,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5104,"page_layout_id":501,"page_layout_root_id":470,"pvalue":{},"section_param_id":557,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5105,"page_layout_id":514,"page_layout_root_id":470,"pvalue":{},"section_param_id":557,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5160,"page_layout_id":478,"page_layout_root_id":470,"pvalue":{},"section_param_id":576,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5172,"page_layout_id":488,"page_layout_root_id":470,"pvalue":{},"section_param_id":581,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5173,"page_layout_id":493,"page_layout_root_id":470,"pvalue":{},"section_param_id":581,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5177,"page_layout_id":479,"page_layout_root_id":470,"pvalue":{},"section_param_id":583,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5180,"page_layout_id":487,"page_layout_root_id":470,"pvalue":{},"section_param_id":585,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5183,"page_layout_id":504,"page_layout_root_id":470,"pvalue":{},"section_param_id":587,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5184,"page_layout_id":512,"page_layout_root_id":470,"pvalue":{},"section_param_id":587,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5185,"page_layout_id":505,"page_layout_root_id":470,"pvalue":{},"section_param_id":588,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5186,"page_layout_id":507,"page_layout_root_id":470,"pvalue":{},"section_param_id":590,"theme_id":12,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-07T13:27:29.000Z","id":5287,"page_layout_id":525,"page_layout_root_id":470,"pvalue":{},"section_param_id":592,"theme_id":12,"unset":null,"updated_at":"2014-09-07T13:27:29.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-07T13:27:29.000Z","id":5288,"page_layout_id":525,"page_layout_root_id":470,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":593,"theme_id":12,"unset":null,"updated_at":"2014-09-11T12:27:11.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-07T13:27:29.000Z","id":5289,"page_layout_id":525,"page_layout_root_id":470,"pvalue":{"15hidden":"1","32unset":"1","32":"padding:5px 0px 5px 0px"},"section_param_id":594,"theme_id":12,"unset":null,"updated_at":"2014-09-07T14:25:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-07T13:27:29.000Z","id":5290,"page_layout_id":525,"page_layout_root_id":470,"pvalue":{"2unset":"0","2":"background-color:#C21F1F"},"section_param_id":595,"theme_id":12,"unset":null,"updated_at":"2014-09-11T11:29:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-07T13:27:29.000Z","id":5291,"page_layout_id":525,"page_layout_root_id":470,"pvalue":{},"section_param_id":596,"theme_id":12,"unset":null,"updated_at":"2014-09-07T13:27:29.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-07T13:27:29.000Z","id":5292,"page_layout_id":525,"page_layout_root_id":470,"pvalue":{},"section_param_id":597,"theme_id":12,"unset":null,"updated_at":"2014-09-07T13:27:29.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-07T13:27:29.000Z","id":5293,"page_layout_id":525,"page_layout_root_id":470,"pvalue":{"2unset":"1","2":"background-color:lime"},"section_param_id":598,"theme_id":12,"unset":null,"updated_at":"2014-09-07T13:51:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-07T13:27:29.000Z","id":5294,"page_layout_id":525,"page_layout_root_id":470,"pvalue":{"32unset":"0","32":"padding:5px 0px 5px 0px","21unset":"0","21":"width:100%"},"section_param_id":599,"theme_id":12,"unset":null,"updated_at":"2014-09-07T14:26:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-07T13:27:30.000Z","id":5295,"page_layout_id":525,"page_layout_root_id":470,"pvalue":{"2unset":"1","2":"background-color:transparent"},"section_param_id":600,"theme_id":12,"unset":null,"updated_at":"2014-09-07T13:51:20.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-07T13:27:30.000Z","id":5296,"page_layout_id":525,"page_layout_root_id":470,"pvalue":{"2unset":"0","2":"background-color:silver"},"section_param_id":601,"theme_id":12,"unset":null,"updated_at":"2014-09-07T14:25:45.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-07T13:27:30.000Z","id":5297,"page_layout_id":525,"page_layout_root_id":470,"pvalue":{"49unset":"0","49":"color:white","54unset":"0","54":"text-decoration:none","24unset":"0","24":"font-size:120%","53unset":"0","53":"text-align:center"},"section_param_id":602,"theme_id":12,"unset":null,"updated_at":"2014-09-07T13:47:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-07T13:27:30.000Z","id":5298,"page_layout_id":525,"page_layout_root_id":470,"pvalue":{},"section_param_id":603,"theme_id":12,"unset":null,"updated_at":"2014-09-07T13:27:30.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-11T03:50:20.000Z","id":5299,"page_layout_id":526,"page_layout_root_id":470,"pvalue":{},"section_param_id":6,"theme_id":12,"unset":null,"updated_at":"2014-09-11T03:50:20.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-11T03:50:20.000Z","id":5300,"page_layout_id":526,"page_layout_root_id":470,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":12,"unset":null,"updated_at":"2014-09-11T03:51:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-11T03:50:20.000Z","id":5301,"page_layout_id":526,"page_layout_root_id":470,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":12,"unset":null,"updated_at":"2014-09-11T03:50:20.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-11T03:50:20.000Z","id":5302,"page_layout_id":526,"page_layout_root_id":470,"pvalue":{"3unset":"0","3":"background-image:10px-bg.jpg","5unset":"0","5":"background-repeat:repeat-x","4unset":"0","4":"background-position:left -7px"},"section_param_id":9,"theme_id":12,"unset":null,"updated_at":"2014-09-11T13:28:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-11T03:50:20.000Z","id":5303,"page_layout_id":526,"page_layout_root_id":470,"pvalue":{},"section_param_id":10,"theme_id":12,"unset":null,"updated_at":"2014-09-11T03:50:20.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-11T03:50:21.000Z","id":5304,"page_layout_id":526,"page_layout_root_id":470,"pvalue":{},"section_param_id":480,"theme_id":12,"unset":null,"updated_at":"2014-09-11T03:50:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-11T03:50:21.000Z","id":5305,"page_layout_id":526,"page_layout_root_id":470,"pvalue":{},"section_param_id":536,"theme_id":12,"unset":null,"updated_at":"2014-09-11T03:50:21.000Z"}}],"page_layouts":[{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-26T03:00:40.000Z","data_filter":"","data_source":"","data_source_param":"","id":470,"is_enabled":true,"is_full_html":true,"lft":1,"parent_id":null,"rgt":82,"root_id":470,"section_context":"","section_id":75,"section_instance":1,"site_id":2,"slug":"","title":"root21","updated_at":"2014-08-26T03:00:40.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-26T03:01:10.000Z","data_filter":"","data_source":"","data_source_param":"","id":471,"is_enabled":true,"is_full_html":false,"lft":2,"parent_id":470,"rgt":17,"root_id":470,"section_context":"","section_id":2,"section_instance":1,"site_id":2,"slug":"","title":"header","updated_at":"2014-08-26T03:01:42.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-26T03:03:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":477,"is_enabled":true,"is_full_html":false,"lft":3,"parent_id":471,"rgt":16,"root_id":470,"section_context":"","section_id":2,"section_instance":6,"site_id":2,"slug":"","title":"container6","updated_at":"2014-08-26T03:03:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-26T03:02:38.000Z","data_filter":"","data_source":"","data_source_param":"","id":475,"is_enabled":true,"is_full_html":false,"lft":4,"parent_id":477,"rgt":7,"root_id":470,"section_context":"","section_id":2,"section_instance":5,"site_id":2,"slug":"","title":"container5","updated_at":"2014-08-26T03:02:38.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-26T03:04:00.000Z","data_filter":"","data_source":"","data_source_param":"","id":478,"is_enabled":true,"is_full_html":false,"lft":5,"parent_id":475,"rgt":6,"root_id":470,"section_context":"","section_id":97,"section_instance":1,"site_id":2,"slug":"","title":"Logo1","updated_at":"2014-08-26T03:04:00.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-28T03:12:50.000Z","data_filter":"","data_source":"","data_source_param":"","id":499,"is_enabled":true,"is_full_html":false,"lft":8,"parent_id":477,"rgt":11,"root_id":470,"section_context":"","section_id":2,"section_instance":17,"site_id":2,"slug":"","title":"container17","updated_at":"2014-08-28T03:12:50.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-28T03:52:00.000Z","data_filter":"","data_source":"","data_source_param":"","id":500,"is_enabled":true,"is_full_html":false,"lft":9,"parent_id":499,"rgt":10,"root_id":470,"section_context":"","section_id":11,"section_instance":3,"site_id":2,"slug":"","title":"social media","updated_at":"2014-08-28T03:52:12.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-11T03:50:20.000Z","data_filter":"","data_source":"","data_source_param":"","id":526,"is_enabled":true,"is_full_html":false,"lft":12,"parent_id":477,"rgt":15,"root_id":470,"section_context":"","section_id":2,"section_instance":21,"site_id":2,"slug":"","title":"container21","updated_at":"2014-09-11T03:50:20.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-26T03:03:26.000Z","data_filter":"","data_source":"","data_source_param":"","id":476,"is_enabled":true,"is_full_html":false,"lft":13,"parent_id":526,"rgt":14,"root_id":470,"section_context":"","section_id":3,"section_instance":1,"site_id":2,"slug":"","title":"hmenu1","updated_at":"2014-08-26T03:03:26.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-26T03:01:17.000Z","data_filter":"","data_source":"","data_source_param":"","id":472,"is_enabled":true,"is_full_html":false,"lft":18,"parent_id":470,"rgt":21,"root_id":470,"section_context":"home","section_id":2,"section_instance":2,"site_id":2,"slug":"","title":"slider container","updated_at":"2014-08-30T02:06:15.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-26T03:04:11.000Z","data_filter":"","data_source":"","data_source_param":"","id":479,"is_enabled":true,"is_full_html":false,"lft":19,"parent_id":472,"rgt":20,"root_id":470,"section_context":"","section_id":114,"section_instance":1,"site_id":2,"slug":"","title":"Slider1","updated_at":"2014-08-26T03:04:11.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-30T02:06:58.000Z","data_filter":"","data_source":"","data_source_param":"","id":510,"is_enabled":true,"is_full_html":false,"lft":22,"parent_id":470,"rgt":25,"root_id":470,"section_context":"list,detail,blog,post","section_id":2,"section_instance":20,"site_id":2,"slug":"","title":"banner container","updated_at":"2014-08-30T02:09:38.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-30T02:47:09.000Z","data_filter":"","data_source":"","data_source_param":"","id":513,"is_enabled":true,"is_full_html":false,"lft":23,"parent_id":510,"rgt":24,"root_id":470,"section_context":"","section_id":11,"section_instance":4,"site_id":2,"slug":"","title":"text4","updated_at":"2014-08-30T02:47:09.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-26T03:04:24.000Z","data_filter":"","data_source":"","data_source_param":"","id":480,"is_enabled":true,"is_full_html":false,"lft":26,"parent_id":470,"rgt":41,"root_id":470,"section_context":"home","section_id":2,"section_instance":7,"site_id":2,"slug":"","title":"index container","updated_at":"2014-08-26T03:48:06.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-26T03:06:13.000Z","data_filter":"","data_source":"taxon","data_source_param":"","id":483,"is_enabled":true,"is_full_html":false,"lft":27,"parent_id":480,"rgt":36,"root_id":470,"section_context":"","section_id":2,"section_instance":10,"site_id":2,"slug":"","title":"container10","updated_at":"2014-08-26T04:06:05.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-26T03:14:54.000Z","data_filter":"","data_source":"","data_source_param":"","id":485,"is_enabled":true,"is_full_html":false,"lft":28,"parent_id":483,"rgt":35,"root_id":470,"section_context":"","section_id":2,"section_instance":12,"site_id":2,"slug":"","title":"container12","updated_at":"2014-08-26T03:14:54.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-26T03:21:37.000Z","data_filter":"","data_source":"","data_source_param":"","id":487,"is_enabled":true,"is_full_html":false,"lft":29,"parent_id":485,"rgt":30,"root_id":470,"section_context":"","section_id":119,"section_instance":1,"site_id":2,"slug":"","title":"Taxon icon1","updated_at":"2014-08-26T03:21:37.000Z"}},{"page_layout":{"content_param":1,"copy_from_root_id":0,"created_at":"2014-09-07T13:27:29.000Z","data_filter":"","data_source":"","data_source_param":"","id":525,"is_enabled":true,"is_full_html":false,"lft":31,"parent_id":485,"rgt":32,"root_id":470,"section_context":"","section_id":135,"section_instance":1,"site_id":2,"slug":"","title":"taxon name as link1","updated_at":"2014-09-07T13:32:40.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-26T03:21:55.000Z","data_filter":"","data_source":"","data_source_param":"","id":488,"is_enabled":true,"is_full_html":false,"lft":33,"parent_id":485,"rgt":34,"root_id":470,"section_context":"","section_id":109,"section_instance":1,"site_id":2,"slug":"","title":"Taxon description1","updated_at":"2014-08-26T03:21:55.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-26T03:06:24.000Z","data_filter":"","data_source":"","data_source_param":"","id":484,"is_enabled":true,"is_full_html":false,"lft":37,"parent_id":480,"rgt":40,"root_id":470,"section_context":"","section_id":2,"section_instance":11,"site_id":2,"slug":"","title":"container11","updated_at":"2014-08-26T03:06:24.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-28T02:57:41.000Z","data_filter":"","data_source":"","data_source_param":"","id":498,"is_enabled":true,"is_full_html":false,"lft":38,"parent_id":484,"rgt":39,"root_id":470,"section_context":"","section_id":11,"section_instance":2,"site_id":2,"slug":"","title":"company intro","updated_at":"2014-08-28T02:58:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-26T03:01:21.000Z","data_filter":"","data_source":"","data_source_param":"","id":473,"is_enabled":true,"is_full_html":false,"lft":42,"parent_id":470,"rgt":77,"root_id":470,"section_context":"","section_id":2,"section_instance":3,"site_id":2,"slug":"","title":"content","updated_at":"2014-08-26T03:02:07.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-26T03:04:37.000Z","data_filter":"","data_source":"","data_source_param":"","id":481,"is_enabled":true,"is_full_html":false,"lft":43,"parent_id":473,"rgt":76,"root_id":470,"section_context":"list,detail,blog,post","section_id":2,"section_instance":8,"site_id":2,"slug":"","title":"product container","updated_at":"2014-08-29T07:52:21.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-27T06:18:25.000Z","data_filter":"","data_source":"","data_source_param":"","id":490,"is_enabled":true,"is_full_html":false,"lft":44,"parent_id":481,"rgt":57,"root_id":470,"section_context":"","section_id":2,"section_instance":13,"site_id":2,"slug":"","title":"left container","updated_at":"2014-08-27T06:18:55.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-29T12:34:13.000Z","data_filter":"","data_source":"","data_source_param":"","id":508,"is_enabled":true,"is_full_html":false,"lft":45,"parent_id":490,"rgt":50,"root_id":470,"section_context":"list,detail","section_id":2,"section_instance":18,"site_id":2,"slug":"","title":"container18","updated_at":"2014-08-29T12:36:09.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-28T06:15:39.000Z","data_filter":"","data_source":"","data_source_param":"","id":501,"is_enabled":true,"is_full_html":false,"lft":46,"parent_id":508,"rgt":47,"root_id":470,"section_context":"","section_id":40,"section_instance":1,"site_id":2,"slug":"","title":"taxonomy name1","updated_at":"2014-08-28T06:15:39.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-27T06:24:34.000Z","data_filter":"","data_source":"","data_source_param":"","id":492,"is_enabled":true,"is_full_html":false,"lft":48,"parent_id":508,"rgt":49,"root_id":470,"section_context":"","section_id":6,"section_instance":1,"site_id":2,"slug":"","title":"vmenu1","updated_at":"2014-08-27T06:24:34.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-27T06:27:53.000Z","data_filter":"","data_source":"","data_source_param":"","id":494,"is_enabled":true,"is_full_html":false,"lft":51,"parent_id":490,"rgt":56,"root_id":470,"section_context":"blog,post","section_id":2,"section_instance":15,"site_id":2,"slug":"","title":"container15","updated_at":"2014-08-29T12:36:22.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-30T03:01:47.000Z","data_filter":"","data_source":"","data_source_param":"","id":514,"is_enabled":true,"is_full_html":false,"lft":52,"parent_id":494,"rgt":53,"root_id":470,"section_context":"","section_id":40,"section_instance":2,"site_id":2,"slug":"","title":"taxonomy name2","updated_at":"2014-08-30T03:01:47.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-27T06:28:19.000Z","data_filter":"","data_source":"","data_source_param":"","id":496,"is_enabled":true,"is_full_html":false,"lft":54,"parent_id":494,"rgt":55,"root_id":470,"section_context":"","section_id":6,"section_instance":2,"site_id":2,"slug":"","title":"vmenu2","updated_at":"2014-08-27T06:28:19.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-27T06:18:32.000Z","data_filter":"","data_source":"","data_source_param":"","id":491,"is_enabled":true,"is_full_html":false,"lft":58,"parent_id":481,"rgt":75,"root_id":470,"section_context":"","section_id":2,"section_instance":14,"site_id":2,"slug":"","title":"main content","updated_at":"2014-08-27T06:19:19.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-27T06:26:26.000Z","data_filter":"","data_source":"","data_source_param":"","id":493,"is_enabled":true,"is_full_html":false,"lft":59,"parent_id":491,"rgt":60,"root_id":470,"section_context":"","section_id":109,"section_instance":2,"site_id":2,"slug":"","title":"Taxon description2","updated_at":"2014-08-27T06:26:26.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-28T14:02:09.000Z","data_filter":"","data_source":"blog","data_source_param":"","id":502,"is_enabled":true,"is_full_html":false,"lft":61,"parent_id":491,"rgt":68,"root_id":470,"section_context":"blog","section_id":2,"section_instance":18,"site_id":2,"slug":"","title":"post list","updated_at":"2014-08-29T12:39:40.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-29T12:38:21.000Z","data_filter":"","data_source":"","data_source_param":"","id":509,"is_enabled":true,"is_full_html":false,"lft":62,"parent_id":502,"rgt":67,"root_id":470,"section_context":"","section_id":2,"section_instance":19,"site_id":2,"slug":"","title":"container19","updated_at":"2014-08-29T12:38:21.000Z"}},{"page_layout":{"content_param":1,"copy_from_root_id":0,"created_at":"2014-08-28T14:03:52.000Z","data_filter":"","data_source":"","data_source_param":"","id":504,"is_enabled":true,"is_full_html":false,"lft":63,"parent_id":509,"rgt":64,"root_id":470,"section_context":"","section_id":124,"section_instance":1,"site_id":2,"slug":"","title":"Post title1","updated_at":"2014-09-01T14:22:41.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-28T14:04:02.000Z","data_filter":"","data_source":"","data_source_param":"","id":505,"is_enabled":true,"is_full_html":false,"lft":65,"parent_id":509,"rgt":66,"root_id":470,"section_context":"","section_id":127,"section_instance":1,"site_id":2,"slug":"","title":"Post time1","updated_at":"2014-08-28T14:04:02.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-28T14:02:57.000Z","data_filter":"","data_source":"post","data_source_param":"","id":503,"is_enabled":true,"is_full_html":false,"lft":69,"parent_id":491,"rgt":74,"root_id":470,"section_context":"post","section_id":2,"section_instance":19,"site_id":2,"slug":"","title":"post detail","updated_at":"2014-08-29T12:44:41.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-30T02:46:06.000Z","data_filter":"","data_source":"","data_source_param":"","id":512,"is_enabled":true,"is_full_html":false,"lft":70,"parent_id":503,"rgt":71,"root_id":470,"section_context":"","section_id":124,"section_instance":2,"site_id":2,"slug":"","title":"Post title2","updated_at":"2014-08-30T02:46:06.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-28T14:04:30.000Z","data_filter":"","data_source":"","data_source_param":"","id":507,"is_enabled":true,"is_full_html":false,"lft":72,"parent_id":503,"rgt":73,"root_id":470,"section_context":"","section_id":131,"section_instance":1,"site_id":2,"slug":"","title":"Post body1","updated_at":"2014-08-28T14:04:30.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-26T03:01:31.000Z","data_filter":"","data_source":"","data_source_param":"","id":474,"is_enabled":true,"is_full_html":false,"lft":78,"parent_id":470,"rgt":81,"root_id":470,"section_context":"","section_id":2,"section_instance":4,"site_id":2,"slug":"","title":"footer","updated_at":"2014-08-26T03:02:13.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-08-27T03:36:04.000Z","data_filter":"","data_source":"","data_source_param":"","id":489,"is_enabled":true,"is_full_html":false,"lft":79,"parent_id":474,"rgt":80,"root_id":470,"section_context":"","section_id":11,"section_instance":1,"site_id":2,"slug":"","title":"text1","updated_at":"2014-08-27T03:36:04.000Z"}}],"template_files":[{"template_file":{"attachment_content_type":"image/jpeg","attachment_file_name":"lnwz-logo2.jpg","attachment_file_size":37244,"attachment_height":null,"attachment_updated_at":"2014-09-06T04:13:50.000Z","attachment_width":null,"created_at":"2014-09-05T13:22:40.000Z","id":29,"theme_id":12}},{"template_file":{"attachment_content_type":"image/jpeg","attachment_file_name":"company-desc-bg.jpg","attachment_file_size":79958,"attachment_height":null,"attachment_updated_at":"2014-09-06T04:05:02.000Z","attachment_width":null,"created_at":"2014-09-06T04:05:03.000Z","id":30,"theme_id":12}},{"template_file":{"attachment_content_type":"image/gif","attachment_file_name":"social-media3.gif","attachment_file_size":3029,"attachment_height":null,"attachment_updated_at":"2014-09-10T11:46:29.000Z","attachment_width":null,"created_at":"2014-09-10T11:46:29.000Z","id":31,"theme_id":12}},{"template_file":{"attachment_content_type":"image/jpeg","attachment_file_name":"company-desc-bg3.jpg","attachment_file_size":156399,"attachment_height":null,"attachment_updated_at":"2014-09-10T12:25:26.000Z","attachment_width":null,"created_at":"2014-09-10T12:25:26.000Z","id":32,"theme_id":12}},{"template_file":{"attachment_content_type":"image/jpeg","attachment_file_name":"company-desc-bg4.jpg","attachment_file_size":53195,"attachment_height":null,"attachment_updated_at":"2014-09-10T12:54:38.000Z","attachment_width":null,"created_at":"2014-09-10T12:54:38.000Z","id":33,"theme_id":12}},{"template_file":{"attachment_content_type":"image/jpeg","attachment_file_name":"banner1.jpg","attachment_file_size":78247,"attachment_height":null,"attachment_updated_at":"2014-09-11T03:22:01.000Z","attachment_width":null,"created_at":"2014-09-11T03:22:01.000Z","id":34,"theme_id":12}},{"template_file":{"attachment_content_type":"image/jpeg","attachment_file_name":"social-media4.jpg","attachment_file_size":34485,"attachment_height":null,"attachment_updated_at":"2014-09-11T11:42:41.000Z","attachment_width":null,"created_at":"2014-09-11T11:42:41.000Z","id":35,"theme_id":12}},{"template_file":{"attachment_content_type":"image/jpeg","attachment_file_name":"main-menu-top-border.jpg","attachment_file_size":9869,"attachment_height":null,"attachment_updated_at":"2014-09-11T11:52:36.000Z","attachment_width":null,"created_at":"2014-09-11T11:52:36.000Z","id":36,"theme_id":12}},{"template_file":{"attachment_content_type":"image/jpeg","attachment_file_name":"company-desc-head.jpg","attachment_file_size":35477,"attachment_height":null,"attachment_updated_at":"2014-09-11T12:40:39.000Z","attachment_width":null,"created_at":"2014-09-11T12:40:39.000Z","id":37,"theme_id":12}},{"template_file":{"attachment_content_type":"image/jpeg","attachment_file_name":"company-desc-bg4.jpg","attachment_file_size":153740,"attachment_height":null,"attachment_updated_at":"2014-09-11T12:41:58.000Z","attachment_width":null,"created_at":"2014-09-11T12:41:58.000Z","id":38,"theme_id":12}},{"template_file":{"attachment_content_type":"image/jpeg","attachment_file_name":"company-desc-bg5.jpg","attachment_file_size":153740,"attachment_height":null,"attachment_updated_at":"2014-09-11T12:44:05.000Z","attachment_width":null,"created_at":"2014-09-11T12:44:05.000Z","id":39,"theme_id":12}},{"template_file":{"attachment_content_type":"image/jpeg","attachment_file_name":"banner3.jpg","attachment_file_size":96559,"attachment_height":null,"attachment_updated_at":"2014-09-11T12:57:49.000Z","attachment_width":null,"created_at":"2014-09-11T12:57:49.000Z","id":40,"theme_id":12}},{"template_file":{"attachment_content_type":"image/jpeg","attachment_file_name":"banner4.jpg","attachment_file_size":85219,"attachment_height":null,"attachment_updated_at":"2014-09-11T13:17:20.000Z","attachment_width":null,"created_at":"2014-09-11T13:17:20.000Z","id":41,"theme_id":12}},{"template_file":{"attachment_content_type":"image/jpeg","attachment_file_name":"10px-bg.jpg","attachment_file_size":10320,"attachment_height":null,"attachment_updated_at":"2014-09-11T13:27:12.000Z","attachment_width":null,"created_at":"2014-09-11T13:27:12.000Z","id":42,"theme_id":12}}],"template_releases":[{"template_release":{"created_at":"2014-08-30T06:33:25.000Z","id":16,"name":"just a test","theme_id":12,"updated_at":"2014-08-30T06:33:25.000Z"}},{"template_release":{"created_at":"2014-08-30T06:34:25.000Z","id":17,"name":"just a test","theme_id":12,"updated_at":"2014-08-30T06:34:25.000Z"}},{"template_release":{"created_at":"2014-09-05T14:03:18.000Z","id":19,"name":"just a test","theme_id":12,"updated_at":"2014-09-05T14:03:18.000Z"}},{"template_release":{"created_at":"2014-09-06T04:06:57.000Z","id":20,"name":"just a test","theme_id":12,"updated_at":"2014-09-06T04:06:57.000Z"}}]} \ No newline at end of file diff --git a/spree_theme/db/themes/designs/2_12_1410527017/10px-bg.jpg b/spree_theme/db/themes/designs/2_12_1410527017/10px-bg.jpg deleted file mode 100644 index e8b984fe..00000000 Binary files a/spree_theme/db/themes/designs/2_12_1410527017/10px-bg.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_12_1410527017/banner1.jpg b/spree_theme/db/themes/designs/2_12_1410527017/banner1.jpg deleted file mode 100644 index c3af3c26..00000000 Binary files a/spree_theme/db/themes/designs/2_12_1410527017/banner1.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_12_1410527017/banner3.jpg b/spree_theme/db/themes/designs/2_12_1410527017/banner3.jpg deleted file mode 100644 index 121eeb7c..00000000 Binary files a/spree_theme/db/themes/designs/2_12_1410527017/banner3.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_12_1410527017/banner4.jpg b/spree_theme/db/themes/designs/2_12_1410527017/banner4.jpg deleted file mode 100644 index c0a1f1a4..00000000 Binary files a/spree_theme/db/themes/designs/2_12_1410527017/banner4.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_12_1410527017/company-desc-bg.jpg b/spree_theme/db/themes/designs/2_12_1410527017/company-desc-bg.jpg deleted file mode 100644 index 84de93df..00000000 Binary files a/spree_theme/db/themes/designs/2_12_1410527017/company-desc-bg.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_12_1410527017/company-desc-bg3.jpg b/spree_theme/db/themes/designs/2_12_1410527017/company-desc-bg3.jpg deleted file mode 100644 index c2bdb23a..00000000 Binary files a/spree_theme/db/themes/designs/2_12_1410527017/company-desc-bg3.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_12_1410527017/company-desc-bg4.jpg b/spree_theme/db/themes/designs/2_12_1410527017/company-desc-bg4.jpg deleted file mode 100644 index 8849e1fd..00000000 Binary files a/spree_theme/db/themes/designs/2_12_1410527017/company-desc-bg4.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_12_1410527017/company-desc-bg5.jpg b/spree_theme/db/themes/designs/2_12_1410527017/company-desc-bg5.jpg deleted file mode 100644 index 8849e1fd..00000000 Binary files a/spree_theme/db/themes/designs/2_12_1410527017/company-desc-bg5.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_12_1410527017/company-desc-head.jpg b/spree_theme/db/themes/designs/2_12_1410527017/company-desc-head.jpg deleted file mode 100644 index 86d7adae..00000000 Binary files a/spree_theme/db/themes/designs/2_12_1410527017/company-desc-head.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_12_1410527017/lnwz-logo2.jpg b/spree_theme/db/themes/designs/2_12_1410527017/lnwz-logo2.jpg deleted file mode 100644 index 6d8bcdfd..00000000 Binary files a/spree_theme/db/themes/designs/2_12_1410527017/lnwz-logo2.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_12_1410527017/main-menu-top-border.jpg b/spree_theme/db/themes/designs/2_12_1410527017/main-menu-top-border.jpg deleted file mode 100644 index ed905628..00000000 Binary files a/spree_theme/db/themes/designs/2_12_1410527017/main-menu-top-border.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_12_1410527017/social-media3.gif b/spree_theme/db/themes/designs/2_12_1410527017/social-media3.gif deleted file mode 100644 index 2ce56fa7..00000000 Binary files a/spree_theme/db/themes/designs/2_12_1410527017/social-media3.gif and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_12_1410527017/social-media4.jpg b/spree_theme/db/themes/designs/2_12_1410527017/social-media4.jpg deleted file mode 100644 index 5edd6f35..00000000 Binary files a/spree_theme/db/themes/designs/2_12_1410527017/social-media4.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_16_1414758979.json b/spree_theme/db/themes/designs/2_16_1414758979.json deleted file mode 100644 index 79f6195a..00000000 --- a/spree_theme/db/themes/designs/2_16_1414758979.json +++ /dev/null @@ -1 +0,0 @@ -{"template":{"template_theme":{"assigned_resource_ids":{"237":{},"573":{"spree/taxon":[0,0]},"575":{"spree/taxon":[144]},"579":{"spree/taxon":[149]},"582":{"spree/taxon":[155]},"633":{"spree/taxon":[95]},"636":{"spree/taxon":[166]},"571":{"spree/template_file":[50]},"639":{"spree/taxon":[0]},"647":{"spree/taxon":[169]},"645":{"spree/taxon":[171]}},"created_at":"2014-09-27T11:37:04.000Z","id":16,"is_public":true,"page_layout_root_id":568,"release_id":23,"site_id":2,"slug":"","title":"\u65f6\u5c1a\u7537\u88c5","updated_at":"2014-10-26T09:01:10.000Z"}},"param_values":[{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5665,"page_layout_id":569,"page_layout_root_id":568,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5666,"page_layout_id":569,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"1","101":"float:none","101unset":"0","21unset":"0","21":"width:980px"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:02:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5667,"page_layout_id":569,"page_layout_root_id":568,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 20px auto"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5668,"page_layout_id":569,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5669,"page_layout_id":569,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5670,"page_layout_id":577,"page_layout_root_id":568,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5671,"page_layout_id":577,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"1","101":"float:none","101unset":"0","21unset":"0","21":"width:980px"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-09-29T11:44:34.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5672,"page_layout_id":577,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5673,"page_layout_id":577,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0","2unset":"1","2":"background-color:yellow"},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5674,"page_layout_id":577,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5675,"page_layout_id":627,"page_layout_root_id":568,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5676,"page_layout_id":627,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"1","101":"float:none","101unset":"0","21unset":"0","21":"width:980px"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-09-29T11:44:46.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5677,"page_layout_id":627,"page_layout_root_id":568,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:15px 0px 30px 0px","7unset":"0","7":"border-style:solid none none none","8unset":"0","8":"border-width:1px 0px 0px 0px","6unset":"0","6":"border-color:#D9D9DB transparent transparent transparent"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-10-09T14:49:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5678,"page_layout_id":627,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0","2unset":"1","2":"background-color:#F5F5F5","3unset":"0","3":"background-image:16-logo-mini.png","5unset":"0","5":"background-repeat:no-repeat","4unset":"0","4":"background-position:right 10px"},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:35:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5679,"page_layout_id":627,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5680,"page_layout_id":578,"page_layout_root_id":568,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5681,"page_layout_id":578,"page_layout_root_id":568,"pvalue":{"15":"height:100%","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:160px"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:42:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5682,"page_layout_id":578,"page_layout_root_id":568,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto 10px auto 10px","15unset":"1","15":"height:100%","32unset":"0","32":"padding:10px 0px 20px 0px"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-09-27T13:57:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5683,"page_layout_id":578,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0","2unset":"1","2":"background-color:#FFF8ED"},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5684,"page_layout_id":578,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0","49unset":"1","49":"color:black"},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5685,"page_layout_id":585,"page_layout_root_id":568,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5686,"page_layout_id":585,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"1","101":"float:right","101unset":"0","21unset":"0","21":"width:800px"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:43:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5687,"page_layout_id":585,"page_layout_root_id":568,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:none none none solid","8unset":"0","8":"border-width:0px 0px 0px 1px","6unset":"0","6":"border-color:transparent transparent transparent #D9D9DB","32unset":"0","32":"padding:0px 0px 0px 20px","31unset":"1","31":"margin:auto auto auto auto"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:41:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5688,"page_layout_id":585,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5689,"page_layout_id":585,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5690,"page_layout_id":586,"page_layout_root_id":568,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5691,"page_layout_id":586,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5692,"page_layout_id":586,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5693,"page_layout_id":586,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5694,"page_layout_id":586,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5695,"page_layout_id":591,"page_layout_root_id":568,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5696,"page_layout_id":591,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-09-28T12:39:27.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5697,"page_layout_id":591,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5698,"page_layout_id":591,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5699,"page_layout_id":591,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5700,"page_layout_id":588,"page_layout_root_id":568,"pvalue":{},"section_param_id":65,"theme_id":16,"unset":null,"updated_at":"2013-04-08T13:27:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5701,"page_layout_id":588,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111","15unset":"1","15":"height:110px","21unset":"0","21":"width:240px"},"section_param_id":66,"theme_id":16,"unset":null,"updated_at":"2014-09-27T14:40:51.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5702,"page_layout_id":588,"page_layout_root_id":568,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB","32unset":"1","32":"padding:5px 0px 5px 0px","15unset":"1","15":"height:98px"},"section_param_id":67,"theme_id":16,"unset":null,"updated_at":"2014-09-27T14:39:51.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5703,"page_layout_id":588,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":68,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5704,"page_layout_id":588,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111","53unset":"0","53":"text-align:center"},"section_param_id":69,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5705,"page_layout_id":597,"page_layout_root_id":568,"pvalue":{},"section_param_id":60,"theme_id":16,"unset":null,"updated_at":"2013-04-08T13:27:10.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5706,"page_layout_id":597,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":61,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5707,"page_layout_id":597,"page_layout_root_id":568,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:10px 0px 10px 0px"},"section_param_id":62,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5708,"page_layout_id":597,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":63,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5709,"page_layout_id":597,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111","24unset":"0","24":"font-size:90%"},"section_param_id":64,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5710,"page_layout_id":628,"page_layout_root_id":568,"pvalue":{},"section_param_id":50,"theme_id":16,"unset":null,"updated_at":"2013-04-08T13:27:11.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5711,"page_layout_id":628,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":51,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5712,"page_layout_id":628,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":52,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5713,"page_layout_id":628,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":53,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5714,"page_layout_id":628,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":54,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5715,"page_layout_id":587,"page_layout_root_id":568,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-10-09T11:39:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5716,"page_layout_id":587,"page_layout_root_id":568,"pvalue":{"15":"height:160px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-10-09T09:37:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5717,"page_layout_id":587,"page_layout_root_id":568,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 20px auto","15unset":"1","15":"height:140px","32unset":"1","32":"padding:0px 0px 0px 0px","8unset":"1","8":"border-width:0px 0px 0px 0px"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5718,"page_layout_id":587,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5719,"page_layout_id":587,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5720,"page_layout_id":595,"page_layout_root_id":568,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5721,"page_layout_id":595,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"1","101":"float:right","101unset":"0","21unset":"0","21":"width:260px"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-09-28T12:41:13.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5722,"page_layout_id":595,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5723,"page_layout_id":595,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5724,"page_layout_id":595,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5725,"page_layout_id":592,"page_layout_root_id":568,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5726,"page_layout_id":592,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5727,"page_layout_id":592,"page_layout_root_id":568,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto 10px auto auto"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5728,"page_layout_id":592,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5729,"page_layout_id":592,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5730,"page_layout_id":601,"page_layout_root_id":568,"pvalue":{},"section_param_id":110,"theme_id":16,"unset":null,"updated_at":"2014-07-30T23:08:13.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5731,"page_layout_id":601,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":111,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5732,"page_layout_id":601,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":112,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5733,"page_layout_id":601,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":113,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5734,"page_layout_id":601,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111","27unset":"0","27":"font-weight:normal","24unset":"0","24":"font-size:150%","49unset":"0","49":"color:black"},"section_param_id":114,"theme_id":16,"unset":null,"updated_at":"2014-10-08T12:02:18.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5735,"page_layout_id":598,"page_layout_root_id":568,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:both"},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5736,"page_layout_id":598,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"1","21unset":"0","21":"width:450px"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5737,"page_layout_id":598,"page_layout_root_id":568,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:10px auto auto auto"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5738,"page_layout_id":598,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5739,"page_layout_id":598,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5740,"page_layout_id":607,"page_layout_root_id":568,"pvalue":{},"section_param_id":125,"theme_id":16,"unset":null,"updated_at":"2013-04-16T14:20:10.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5741,"page_layout_id":607,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111","21unset":"1","21":"width:670px"},"section_param_id":126,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5742,"page_layout_id":607,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":127,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5743,"page_layout_id":607,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":128,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5744,"page_layout_id":607,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111","53unset":"1","53":"text-align:right"},"section_param_id":129,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5745,"page_layout_id":590,"page_layout_root_id":568,"pvalue":{},"section_param_id":110,"theme_id":16,"unset":null,"updated_at":"2013-04-19T13:03:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5746,"page_layout_id":590,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111","21unset":"0","21":"width:240px"},"section_param_id":111,"theme_id":16,"unset":null,"updated_at":"2014-09-27T14:42:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5747,"page_layout_id":590,"page_layout_root_id":568,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:5px 0px 0px 0px","31unset":"0","31":"margin:auto auto 5px auto"},"section_param_id":112,"theme_id":16,"unset":null,"updated_at":"2014-10-09T11:42:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5748,"page_layout_id":590,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":113,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5749,"page_layout_id":590,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111","53unset":"0","53":"text-align:center","49unset":"0","49":"color:black","27unset":"0","27":"font-weight:bold"},"section_param_id":114,"theme_id":16,"unset":null,"updated_at":"2014-09-28T01:15:14.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5750,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{},"section_param_id":27,"theme_id":16,"unset":null,"updated_at":"2013-10-02T10:20:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5751,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":28,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5752,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{"15hidden":"1","32unset":"1","32":"padding:0px 0px 0px 20px"},"section_param_id":29,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:18:27.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5753,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":30,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5754,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":31,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5755,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{"32unset":"0","32":"padding:5px 0px 5px 32px","21unset":"0","21":"width:120px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent"},"section_param_id":32,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:19:28.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5756,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{"54unset":"0","54":"text-decoration:none","24unset":"1","24":"font-size:100%","49unset":"0","49":"color:black"},"section_param_id":33,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:22:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5757,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{},"section_param_id":34,"theme_id":16,"unset":null,"updated_at":"2013-10-02T10:20:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5758,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{},"section_param_id":35,"theme_id":16,"unset":null,"updated_at":"2013-10-02T10:20:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5759,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{},"section_param_id":36,"theme_id":16,"unset":null,"updated_at":"2013-10-02T10:20:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5760,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{},"section_param_id":37,"theme_id":16,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5761,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{"3unset":"0","3":"background-image:taxon-arrow.png","5unset":"0","5":"background-repeat:no-repeat","4unset":"0","4":"background-position:left 6px"},"section_param_id":38,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:09:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5762,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{},"section_param_id":39,"theme_id":16,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5763,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{},"section_param_id":40,"theme_id":16,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5764,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{},"section_param_id":41,"theme_id":16,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5765,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{},"section_param_id":42,"theme_id":16,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5766,"page_layout_id":579,"page_layout_root_id":568,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5767,"page_layout_id":579,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5768,"page_layout_id":579,"page_layout_root_id":568,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 20px auto"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5769,"page_layout_id":579,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5770,"page_layout_id":579,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5771,"page_layout_id":582,"page_layout_root_id":568,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5772,"page_layout_id":582,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5773,"page_layout_id":582,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5774,"page_layout_id":582,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5775,"page_layout_id":582,"page_layout_root_id":568,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5776,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{},"section_param_id":27,"theme_id":16,"unset":null,"updated_at":"2013-10-05T00:38:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5777,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":28,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5778,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto 20px","32unset":"1","32":"padding:0px 0px 0px 20px"},"section_param_id":29,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:25:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5779,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":30,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5780,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":31,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5781,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{"32unset":"0","32":"padding:5px 0px 5px 32px","21unset":"0","21":"width:120px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent"},"section_param_id":32,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:25:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5782,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{"24unset":"0","24":"font-size:100%","49unset":"0","49":"color:black","54unset":"0","54":"text-decoration:none"},"section_param_id":33,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:24:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5783,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{},"section_param_id":34,"theme_id":16,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5784,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{},"section_param_id":35,"theme_id":16,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5785,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{},"section_param_id":36,"theme_id":16,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5786,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{},"section_param_id":37,"theme_id":16,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5787,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{"3unset":"0","3":"background-image:taxon-arrow.png","5unset":"0","5":"background-repeat:no-repeat","4unset":"0","4":"background-position:left 6px"},"section_param_id":38,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:11:36.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5788,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{},"section_param_id":39,"theme_id":16,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5789,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{},"section_param_id":40,"theme_id":16,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5790,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{},"section_param_id":41,"theme_id":16,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5791,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{},"section_param_id":42,"theme_id":16,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5792,"page_layout_id":611,"page_layout_root_id":568,"pvalue":{},"section_param_id":210,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:20:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5793,"page_layout_id":611,"page_layout_root_id":568,"pvalue":{"21unset":"0","21":"width:360px"},"section_param_id":211,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5794,"page_layout_id":611,"page_layout_root_id":568,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:10px 10px 10px 0px","7unset":"1","7":"border-style:solid solid solid solid","8unset":"1","8":"border-width:1px 1px 1px 1px","6unset":"1","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB"},"section_param_id":212,"theme_id":16,"unset":null,"updated_at":"2014-10-12T11:36:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5795,"page_layout_id":611,"page_layout_root_id":568,"pvalue":{},"section_param_id":213,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:20:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5796,"page_layout_id":611,"page_layout_root_id":568,"pvalue":{},"section_param_id":214,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:20:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5797,"page_layout_id":611,"page_layout_root_id":568,"pvalue":{},"section_param_id":215,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:20:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5798,"page_layout_id":611,"page_layout_root_id":568,"pvalue":{"2unset":"1","2":"background-color:#000000"},"section_param_id":216,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5799,"page_layout_id":611,"page_layout_root_id":568,"pvalue":{"49unset":"1","49":"color:#00ADEE","53unset":"1","53":"text-align:center"},"section_param_id":217,"theme_id":16,"unset":null,"updated_at":"2014-10-12T05:17:06.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5800,"page_layout_id":612,"page_layout_root_id":568,"pvalue":{},"section_param_id":218,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:21:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5801,"page_layout_id":612,"page_layout_root_id":568,"pvalue":{"21unset":"0","21":"width:360px"},"section_param_id":219,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5802,"page_layout_id":612,"page_layout_root_id":568,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:10px 10px 10px 0px","7unset":"1","7":"border-style:solid solid solid solid","8unset":"1","8":"border-width:1px 1px 1px 1px","6unset":"1","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB","31unset":"0","31":"margin:10px auto 10px auto"},"section_param_id":220,"theme_id":16,"unset":null,"updated_at":"2014-10-12T11:36:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5803,"page_layout_id":612,"page_layout_root_id":568,"pvalue":{},"section_param_id":221,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:21:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5804,"page_layout_id":612,"page_layout_root_id":568,"pvalue":{},"section_param_id":222,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:21:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5805,"page_layout_id":612,"page_layout_root_id":568,"pvalue":{},"section_param_id":223,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:21:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5806,"page_layout_id":612,"page_layout_root_id":568,"pvalue":{},"section_param_id":224,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:21:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5807,"page_layout_id":612,"page_layout_root_id":568,"pvalue":{"49unset":"1","49":"color:#00ADEE","53unset":"1","53":"text-align:center"},"section_param_id":225,"theme_id":16,"unset":null,"updated_at":"2014-10-12T05:17:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5808,"page_layout_id":605,"page_layout_root_id":568,"pvalue":{},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:35:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5809,"page_layout_id":605,"page_layout_root_id":568,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5810,"page_layout_id":605,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5811,"page_layout_id":605,"page_layout_root_id":568,"pvalue":{},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:35:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5812,"page_layout_id":605,"page_layout_root_id":568,"pvalue":{},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:35:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5813,"page_layout_id":606,"page_layout_root_id":568,"pvalue":{},"section_param_id":160,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:36:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5814,"page_layout_id":606,"page_layout_root_id":568,"pvalue":{},"section_param_id":161,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:36:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5815,"page_layout_id":606,"page_layout_root_id":568,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 0px 10px 0px"},"section_param_id":162,"theme_id":16,"unset":null,"updated_at":"2014-10-12T05:47:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5816,"page_layout_id":606,"page_layout_root_id":568,"pvalue":{},"section_param_id":163,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:36:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5817,"page_layout_id":606,"page_layout_root_id":568,"pvalue":{"24unset":"0","24":"font-size:150%"},"section_param_id":164,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5818,"page_layout_id":615,"page_layout_root_id":568,"pvalue":{},"section_param_id":165,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5819,"page_layout_id":615,"page_layout_root_id":568,"pvalue":{},"section_param_id":166,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5820,"page_layout_id":615,"page_layout_root_id":568,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto 10px auto auto"},"section_param_id":167,"theme_id":16,"unset":null,"updated_at":"2014-10-12T05:42:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5821,"page_layout_id":615,"page_layout_root_id":568,"pvalue":{},"section_param_id":168,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5822,"page_layout_id":615,"page_layout_root_id":568,"pvalue":{},"section_param_id":169,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5823,"page_layout_id":615,"page_layout_root_id":568,"pvalue":{"31unset":"0","31":"margin:auto auto 10px auto","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent","32unset":"0","32":"padding:5px 0px 5px 0px"},"section_param_id":170,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5824,"page_layout_id":615,"page_layout_root_id":568,"pvalue":{},"section_param_id":171,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5825,"page_layout_id":615,"page_layout_root_id":568,"pvalue":{"27":"font-weight:bold","54unset":"1","54":"text-decoration:underline","53unset":"1","53":"text-align:left"},"section_param_id":172,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5826,"page_layout_id":616,"page_layout_root_id":568,"pvalue":{},"section_param_id":173,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:30.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5827,"page_layout_id":616,"page_layout_root_id":568,"pvalue":{"21unset":"0","21":"width:300px"},"section_param_id":174,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5828,"page_layout_id":616,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":175,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5829,"page_layout_id":616,"page_layout_root_id":568,"pvalue":{},"section_param_id":176,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:31.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5830,"page_layout_id":616,"page_layout_root_id":568,"pvalue":{},"section_param_id":177,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:31.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5831,"page_layout_id":616,"page_layout_root_id":568,"pvalue":{"31unset":"0","31":"margin:auto auto 10px auto","32unset":"0","32":"padding:5px 0px 5px 0px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent"},"section_param_id":178,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5832,"page_layout_id":616,"page_layout_root_id":568,"pvalue":{},"section_param_id":179,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:31.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5833,"page_layout_id":616,"page_layout_root_id":568,"pvalue":{"27":"font-weight:bold","54unset":"1","54":"text-decoration:underline"},"section_param_id":180,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5834,"page_layout_id":617,"page_layout_root_id":568,"pvalue":{},"section_param_id":181,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5835,"page_layout_id":617,"page_layout_root_id":568,"pvalue":{},"section_param_id":182,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5836,"page_layout_id":617,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":183,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5837,"page_layout_id":617,"page_layout_root_id":568,"pvalue":{},"section_param_id":184,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5838,"page_layout_id":617,"page_layout_root_id":568,"pvalue":{},"section_param_id":185,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5839,"page_layout_id":617,"page_layout_root_id":568,"pvalue":{},"section_param_id":186,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5840,"page_layout_id":617,"page_layout_root_id":568,"pvalue":{},"section_param_id":187,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5841,"page_layout_id":617,"page_layout_root_id":568,"pvalue":{"27":"font-weight:bold"},"section_param_id":188,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5842,"page_layout_id":619,"page_layout_root_id":568,"pvalue":{},"section_param_id":268,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:51.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5843,"page_layout_id":619,"page_layout_root_id":568,"pvalue":{},"section_param_id":269,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:51.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5844,"page_layout_id":619,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":270,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5845,"page_layout_id":619,"page_layout_root_id":568,"pvalue":{},"section_param_id":271,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5846,"page_layout_id":619,"page_layout_root_id":568,"pvalue":{},"section_param_id":272,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5847,"page_layout_id":619,"page_layout_root_id":568,"pvalue":{},"section_param_id":273,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5848,"page_layout_id":619,"page_layout_root_id":568,"pvalue":{},"section_param_id":274,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5849,"page_layout_id":619,"page_layout_root_id":568,"pvalue":{},"section_param_id":275,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5850,"page_layout_id":620,"page_layout_root_id":568,"pvalue":{},"section_param_id":260,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5851,"page_layout_id":620,"page_layout_root_id":568,"pvalue":{},"section_param_id":261,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5852,"page_layout_id":620,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":262,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5853,"page_layout_id":620,"page_layout_root_id":568,"pvalue":{},"section_param_id":263,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5854,"page_layout_id":620,"page_layout_root_id":568,"pvalue":{},"section_param_id":264,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5855,"page_layout_id":620,"page_layout_root_id":568,"pvalue":{},"section_param_id":265,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5856,"page_layout_id":620,"page_layout_root_id":568,"pvalue":{},"section_param_id":266,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5857,"page_layout_id":620,"page_layout_root_id":568,"pvalue":{},"section_param_id":267,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:38:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5858,"page_layout_id":621,"page_layout_root_id":568,"pvalue":{},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:39:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5859,"page_layout_id":621,"page_layout_root_id":568,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5860,"page_layout_id":621,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5861,"page_layout_id":621,"page_layout_root_id":568,"pvalue":{},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:39:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5862,"page_layout_id":621,"page_layout_root_id":568,"pvalue":{},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:39:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5863,"page_layout_id":623,"page_layout_root_id":568,"pvalue":{},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:39:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5864,"page_layout_id":623,"page_layout_root_id":568,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5865,"page_layout_id":623,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5866,"page_layout_id":623,"page_layout_root_id":568,"pvalue":{},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:39:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5867,"page_layout_id":623,"page_layout_root_id":568,"pvalue":{},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:39:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5868,"page_layout_id":622,"page_layout_root_id":568,"pvalue":{},"section_param_id":189,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5869,"page_layout_id":622,"page_layout_root_id":568,"pvalue":{},"section_param_id":190,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5870,"page_layout_id":622,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":191,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5871,"page_layout_id":622,"page_layout_root_id":568,"pvalue":{},"section_param_id":192,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5872,"page_layout_id":622,"page_layout_root_id":568,"pvalue":{},"section_param_id":193,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5873,"page_layout_id":622,"page_layout_root_id":568,"pvalue":{},"section_param_id":194,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5874,"page_layout_id":622,"page_layout_root_id":568,"pvalue":{},"section_param_id":195,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5875,"page_layout_id":622,"page_layout_root_id":568,"pvalue":{},"section_param_id":196,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5876,"page_layout_id":624,"page_layout_root_id":568,"pvalue":{},"section_param_id":197,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5877,"page_layout_id":624,"page_layout_root_id":568,"pvalue":{},"section_param_id":198,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5878,"page_layout_id":624,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":199,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5879,"page_layout_id":624,"page_layout_root_id":568,"pvalue":{},"section_param_id":200,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5880,"page_layout_id":624,"page_layout_root_id":568,"pvalue":{},"section_param_id":201,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5881,"page_layout_id":624,"page_layout_root_id":568,"pvalue":{},"section_param_id":202,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5882,"page_layout_id":624,"page_layout_root_id":568,"pvalue":{},"section_param_id":203,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5883,"page_layout_id":624,"page_layout_root_id":568,"pvalue":{},"section_param_id":204,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5884,"page_layout_id":618,"page_layout_root_id":568,"pvalue":{},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:50:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5885,"page_layout_id":618,"page_layout_root_id":568,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5886,"page_layout_id":618,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5887,"page_layout_id":618,"page_layout_root_id":568,"pvalue":{},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:50:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5888,"page_layout_id":618,"page_layout_root_id":568,"pvalue":{},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:50:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5889,"page_layout_id":613,"page_layout_root_id":568,"pvalue":{},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:50:37.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5890,"page_layout_id":613,"page_layout_root_id":568,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5891,"page_layout_id":613,"page_layout_root_id":568,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 0px 0px 0px"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5892,"page_layout_id":613,"page_layout_root_id":568,"pvalue":{},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:50:37.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5893,"page_layout_id":613,"page_layout_root_id":568,"pvalue":{},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2013-11-02T09:50:37.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5894,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{},"section_param_id":11,"theme_id":16,"unset":null,"updated_at":"2013-11-05T03:16:07.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5895,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{"21unset":"1","21":"width:960px"},"section_param_id":12,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5896,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":13,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5897,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{"2unset":"1","2":"background-color:lime"},"section_param_id":14,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5898,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{"27unset":"1","27":"font-weight:bold","49unset":"1","49":"color:#00ADEE"},"section_param_id":15,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:12:07.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5899,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{"32unset":"0","32":"padding:5px 0px 8px 0px","21unset":"0","21":"width:90px","8unset":"0","8":"border-width:0px 1px 0px 0px","7unset":"0","7":"border-style:none solid none none","6unset":"0","6":"border-color:transparent gray transparent transparent"},"section_param_id":16,"theme_id":16,"unset":null,"updated_at":"2014-09-29T13:30:18.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5900,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{"54unset":"0","54":"text-decoration:none","49unset":"0","49":"color:white","53unset":"0","53":"text-align:center"},"section_param_id":17,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:14:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5901,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{"49unset":"0","49":"color:white"},"section_param_id":18,"theme_id":16,"unset":null,"updated_at":"2014-10-13T15:03:29.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5902,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{},"section_param_id":19,"theme_id":16,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5903,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{},"section_param_id":20,"theme_id":16,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5904,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{},"section_param_id":21,"theme_id":16,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5905,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{},"section_param_id":22,"theme_id":16,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5906,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{"2unset":"0","2":"background-color:black"},"section_param_id":23,"theme_id":16,"unset":null,"updated_at":"2014-09-29T13:25:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5907,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{"2unset":"0","2":"background-color:black"},"section_param_id":24,"theme_id":16,"unset":null,"updated_at":"2014-09-29T13:24:44.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5908,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{},"section_param_id":25,"theme_id":16,"unset":null,"updated_at":"2013-11-05T03:16:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5909,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{},"section_param_id":26,"theme_id":16,"unset":null,"updated_at":"2013-11-05T03:16:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5910,"page_layout_id":580,"page_layout_root_id":568,"pvalue":{},"section_param_id":135,"theme_id":16,"unset":null,"updated_at":"2013-11-25T06:53:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5911,"page_layout_id":580,"page_layout_root_id":568,"pvalue":{"21unset":"0","21":"width:150px"},"section_param_id":136,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:21:37.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5912,"page_layout_id":580,"page_layout_root_id":568,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent","32unset":"0","32":"padding:5px 0px 5px 32px"},"section_param_id":137,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:20:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5913,"page_layout_id":580,"page_layout_root_id":568,"pvalue":{"2unset":"1","2":"background-color:transparent","3unset":"0","3":"background-image:taxonmy-arrow.png","5unset":"0","5":"background-repeat:no-repeat","4unset":"0","4":"background-position:left 6px"},"section_param_id":138,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:08:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5914,"page_layout_id":580,"page_layout_root_id":568,"pvalue":{"27unset":"0","27":"font-weight:bold"},"section_param_id":139,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:26:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5915,"page_layout_id":583,"page_layout_root_id":568,"pvalue":{},"section_param_id":135,"theme_id":16,"unset":null,"updated_at":"2013-11-25T06:53:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5916,"page_layout_id":583,"page_layout_root_id":568,"pvalue":{"21unset":"0","21":"width:152px"},"section_param_id":136,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:26:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5917,"page_layout_id":583,"page_layout_root_id":568,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 0px 5px 32px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent"},"section_param_id":137,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:26:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5918,"page_layout_id":583,"page_layout_root_id":568,"pvalue":{"3unset":"0","3":"background-image:taxonmy-arrow.png","5unset":"0","5":"background-repeat:no-repeat","4unset":"0","4":"background-position:left top"},"section_param_id":138,"theme_id":16,"unset":null,"updated_at":"2014-09-29T13:01:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5919,"page_layout_id":583,"page_layout_root_id":568,"pvalue":{"27unset":"0","27":"font-weight:bold"},"section_param_id":139,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:26:47.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5920,"page_layout_id":608,"page_layout_root_id":568,"pvalue":{},"section_param_id":140,"theme_id":16,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5921,"page_layout_id":608,"page_layout_root_id":568,"pvalue":{},"section_param_id":141,"theme_id":16,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5922,"page_layout_id":608,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":142,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5923,"page_layout_id":608,"page_layout_root_id":568,"pvalue":{},"section_param_id":143,"theme_id":16,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5924,"page_layout_id":608,"page_layout_root_id":568,"pvalue":{},"section_param_id":144,"theme_id":16,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5925,"page_layout_id":609,"page_layout_root_id":568,"pvalue":{},"section_param_id":145,"theme_id":16,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5926,"page_layout_id":609,"page_layout_root_id":568,"pvalue":{"101unset":"0","101":"float:left","21unset":"0","21":"width:100%"},"section_param_id":146,"theme_id":16,"unset":null,"updated_at":"2014-10-12T00:51:47.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5927,"page_layout_id":609,"page_layout_root_id":568,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:10px auto 10px auto","32unset":"0","32":"padding:15px 15px 15px 0px","7unset":"1","7":"border-style:none none solid none","8unset":"1","8":"border-width:0px 0px 1px 0px"},"section_param_id":147,"theme_id":16,"unset":null,"updated_at":"2014-10-12T00:55:36.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5928,"page_layout_id":609,"page_layout_root_id":568,"pvalue":{"2unset":"0","2":"background-color:#D9D9DB"},"section_param_id":148,"theme_id":16,"unset":null,"updated_at":"2014-10-12T00:52:10.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5929,"page_layout_id":609,"page_layout_root_id":568,"pvalue":{"53unset":"0","53":"text-align:right","27unset":"0","27":"font-weight:bold"},"section_param_id":149,"theme_id":16,"unset":null,"updated_at":"2014-10-12T00:52:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5930,"page_layout_id":610,"page_layout_root_id":568,"pvalue":{},"section_param_id":150,"theme_id":16,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5931,"page_layout_id":610,"page_layout_root_id":568,"pvalue":{"21unset":"1","21":"width:600px"},"section_param_id":151,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5932,"page_layout_id":610,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":152,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5933,"page_layout_id":610,"page_layout_root_id":568,"pvalue":{},"section_param_id":153,"theme_id":16,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5934,"page_layout_id":610,"page_layout_root_id":568,"pvalue":{},"section_param_id":154,"theme_id":16,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5935,"page_layout_id":571,"page_layout_root_id":568,"pvalue":{},"section_param_id":323,"theme_id":16,"unset":null,"updated_at":"2013-11-29T02:49:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5936,"page_layout_id":571,"page_layout_root_id":568,"pvalue":{"21unset":"1","21":"width:220px","101unset":"1","101":"float:none"},"section_param_id":324,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5937,"page_layout_id":571,"page_layout_root_id":568,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:30px auto auto auto"},"section_param_id":325,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:02:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5938,"page_layout_id":571,"page_layout_root_id":568,"pvalue":{},"section_param_id":326,"theme_id":16,"unset":null,"updated_at":"2013-11-29T02:49:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5939,"page_layout_id":571,"page_layout_root_id":568,"pvalue":{},"section_param_id":327,"theme_id":16,"unset":null,"updated_at":"2013-11-29T02:49:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5940,"page_layout_id":574,"page_layout_root_id":568,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5941,"page_layout_id":574,"page_layout_root_id":568,"pvalue":{"101":"float:left","101unset":"1","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-09-29T13:29:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5942,"page_layout_id":574,"page_layout_root_id":568,"pvalue":{"15hidden":"1","32unset":"1","32":"padding:0px 0px 6px 0px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent","31unset":"1","31":"margin:auto 10px auto 10px","15unset":"1","15":"height:99px"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-09-29T13:29:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5943,"page_layout_id":574,"page_layout_root_id":568,"pvalue":{"2unset":"1","2":"background-color:black","3unset":"0","3":"background-image:menu-bg.jpg"},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-09-29T13:24:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5944,"page_layout_id":574,"page_layout_root_id":568,"pvalue":{"49unset":"1","49":"color:teal","25unset":"1","25":"font-style:normal","24unset":"1","24":"font-size:0%","27unset":"1","27":"font-weight:bold"},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5950,"page_layout_id":570,"page_layout_root_id":568,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5951,"page_layout_id":570,"page_layout_root_id":568,"pvalue":{"101":"float:left","101unset":"0","15":"height:128px","15unset":"0","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:02:18.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5952,"page_layout_id":570,"page_layout_root_id":568,"pvalue":{"15hidden":"1","15unset":"0","15":"height:128px"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:02:18.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5953,"page_layout_id":570,"page_layout_root_id":568,"pvalue":{},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2013-12-05T08:06:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5954,"page_layout_id":570,"page_layout_root_id":568,"pvalue":{},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2013-12-05T08:06:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5955,"page_layout_id":572,"page_layout_root_id":568,"pvalue":{},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2013-12-05T08:11:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5956,"page_layout_id":572,"page_layout_root_id":568,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-09-27T13:17:34.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5957,"page_layout_id":572,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5958,"page_layout_id":572,"page_layout_root_id":568,"pvalue":{},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2013-12-05T08:11:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5959,"page_layout_id":572,"page_layout_root_id":568,"pvalue":{},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2013-12-05T08:11:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5960,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"21":"width:100%","21unset":"0","20":"min-width:960px","20hidden":"1"},"section_param_id":226,"theme_id":16,"unset":null,"updated_at":"2014-09-27T11:49:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5961,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":227,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5962,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"85":"clear:both"},"section_param_id":228,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5963,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":229,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5964,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"24unset":"0","24":"font-size:0.85em"},"section_param_id":230,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:11:31.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5965,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent gray transparent","32unset":"0","32":"padding:5px 0px 10px 0px"},"section_param_id":231,"theme_id":16,"unset":null,"updated_at":"2014-10-13T01:59:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5966,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":232,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5967,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"53unset":"0","53":"text-align:left"},"section_param_id":233,"theme_id":16,"unset":null,"updated_at":"2014-10-12T05:14:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5968,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":234,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5969,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"31unset":"0","31":"margin:10px auto 5px auto"},"section_param_id":235,"theme_id":16,"unset":null,"updated_at":"2014-10-13T02:03:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5970,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":236,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5971,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:gray gray gray gray","32unset":"0","32":"padding:5px 5px 5px 5px","31unset":"1","31":"margin:auto auto 5px auto"},"section_param_id":237,"theme_id":16,"unset":null,"updated_at":"2014-10-13T02:03:29.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5972,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":238,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5973,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":239,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5974,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":240,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5975,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":241,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5976,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"49unset":"0","49":"color:red","24unset":"0","24":"font-size:82%"},"section_param_id":242,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5977,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":243,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5978,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"32unset":"0","32":"padding:5px 20px 5px 20px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:black black black black","31unset":"0","31":"margin:5px auto 10px auto"},"section_param_id":317,"theme_id":16,"unset":null,"updated_at":"2014-10-13T02:06:30.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5979,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"2unset":"0","2":"background-color:black"},"section_param_id":318,"theme_id":16,"unset":null,"updated_at":"2014-10-12T00:58:20.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5980,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"49unset":"0","49":"color:white"},"section_param_id":319,"theme_id":16,"unset":null,"updated_at":"2014-10-12T00:58:45.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5981,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":320,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5982,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"2unset":"0","2":"background-color:#595757"},"section_param_id":321,"theme_id":16,"unset":null,"updated_at":"2014-10-13T13:54:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5983,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":322,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5984,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":244,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5985,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":245,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5986,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":246,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5987,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"49unset":"0","49":"color:#888889","24unset":"1","24":"font-size:80%"},"section_param_id":247,"theme_id":16,"unset":null,"updated_at":"2014-10-13T14:43:13.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5988,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"49unset":"0","49":"color:#595757"},"section_param_id":248,"theme_id":16,"unset":null,"updated_at":"2014-10-13T14:43:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5989,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"7unset":"0","7":"border-style:solid none solid none","8unset":"0","8":"border-width:1px 0px 1px 0px","6unset":"0","6":"border-color:#D9D9DB transparent #D9D9DB transparent"},"section_param_id":249,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5990,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"32unset":"0","32":"padding:10px 15px 10px 0px"},"section_param_id":250,"theme_id":16,"unset":null,"updated_at":"2014-10-12T00:50:25.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5991,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":251,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5992,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"2unset":"1","2":"background-color:#D9D9DB"},"section_param_id":252,"theme_id":16,"unset":null,"updated_at":"2014-10-12T00:48:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5993,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":253,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5994,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":254,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5995,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"27unset":"0","27":"font-weight:bold"},"section_param_id":255,"theme_id":16,"unset":null,"updated_at":"2014-10-12T00:18:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5996,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":256,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5997,"page_layout_id":589,"page_layout_root_id":568,"pvalue":{},"section_param_id":55,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5998,"page_layout_id":589,"page_layout_root_id":568,"pvalue":{"21unset":"0","21":"width:240px","15unset":"1","15":"height:34px"},"section_param_id":56,"theme_id":16,"unset":null,"updated_at":"2014-09-27T14:43:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":5999,"page_layout_id":589,"page_layout_root_id":568,"pvalue":{"15hidden":"1","15unset":"1","15":"height:24px","32unset":"0","32":"padding:5px 0px 5px 0px","7unset":"1","7":"border-style:none none solid none","8unset":"1","8":"border-width:0px 0px 1px 0px","6unset":"1","6":"border-color:transparent transparent #BBBBBB transparent"},"section_param_id":57,"theme_id":16,"unset":null,"updated_at":"2014-09-27T14:43:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6000,"page_layout_id":589,"page_layout_root_id":568,"pvalue":{},"section_param_id":58,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6001,"page_layout_id":589,"page_layout_root_id":568,"pvalue":{"53unset":"0","53":"text-align:center"},"section_param_id":59,"theme_id":16,"unset":null,"updated_at":"2014-09-27T14:41:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6002,"page_layout_id":589,"page_layout_root_id":568,"pvalue":{},"section_param_id":294,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6003,"page_layout_id":589,"page_layout_root_id":568,"pvalue":{},"section_param_id":295,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6004,"page_layout_id":589,"page_layout_root_id":568,"pvalue":{"49unset":"0","49":"color:black","27unset":"0","27":"font-weight:normal","24unset":"0","24":"font-size:100%","54unset":"0","54":"text-decoration:none","53unset":"0","53":"text-align:center"},"section_param_id":296,"theme_id":16,"unset":null,"updated_at":"2014-09-28T01:15:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6005,"page_layout_id":589,"page_layout_root_id":568,"pvalue":{},"section_param_id":297,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:39:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6006,"page_layout_id":594,"page_layout_root_id":568,"pvalue":{},"section_param_id":105,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:40:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6007,"page_layout_id":594,"page_layout_root_id":568,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":106,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6008,"page_layout_id":594,"page_layout_root_id":568,"pvalue":{},"section_param_id":107,"theme_id":16,"unset":null,"updated_at":"2014-07-30T23:08:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6009,"page_layout_id":594,"page_layout_root_id":568,"pvalue":{},"section_param_id":108,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:40:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6010,"page_layout_id":594,"page_layout_root_id":568,"pvalue":{},"section_param_id":109,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:40:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6011,"page_layout_id":594,"page_layout_root_id":568,"pvalue":{"32unset":"0","32":"padding:5px 5px 5px 5px","7unset":"0","7":"border-style:solid none solid none","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB"},"section_param_id":302,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6012,"page_layout_id":594,"page_layout_root_id":568,"pvalue":{"2unset":"0","2":"background-color:transparent"},"section_param_id":303,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6013,"page_layout_id":594,"page_layout_root_id":568,"pvalue":{},"section_param_id":304,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6014,"page_layout_id":594,"page_layout_root_id":568,"pvalue":{"27unset":"0","27":"font-weight:bold"},"section_param_id":305,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6015,"page_layout_id":594,"page_layout_root_id":568,"pvalue":{},"section_param_id":306,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6016,"page_layout_id":596,"page_layout_root_id":568,"pvalue":{},"section_param_id":55,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6017,"page_layout_id":596,"page_layout_root_id":568,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":56,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6018,"page_layout_id":596,"page_layout_root_id":568,"pvalue":{"15hidden":"1","32unset":"1","32":"padding:0px 0px 0px 0px","7unset":"1","7":"border-style:none none solid none","8unset":"1","8":"border-width:0px 0px 1px 0px","6unset":"1","6":"border-color:transparent transparent #D9D9DB transparent"},"section_param_id":57,"theme_id":16,"unset":null,"updated_at":"2014-10-08T11:59:06.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6019,"page_layout_id":596,"page_layout_root_id":568,"pvalue":{},"section_param_id":58,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6020,"page_layout_id":596,"page_layout_root_id":568,"pvalue":{"24unset":"0","24":"font-size:200%","27unset":"0","27":"font-weight:bold"},"section_param_id":59,"theme_id":16,"unset":null,"updated_at":"2014-10-08T12:02:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6021,"page_layout_id":596,"page_layout_root_id":568,"pvalue":{},"section_param_id":294,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6022,"page_layout_id":596,"page_layout_root_id":568,"pvalue":{},"section_param_id":295,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6023,"page_layout_id":596,"page_layout_root_id":568,"pvalue":{"49unset":"0","49":"color:black","54unset":"0","54":"text-decoration:none","27unset":"0","27":"font-weight:bold","24unset":"0","24":"font-size:150%"},"section_param_id":296,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6024,"page_layout_id":596,"page_layout_root_id":568,"pvalue":{},"section_param_id":297,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6025,"page_layout_id":603,"page_layout_root_id":568,"pvalue":{},"section_param_id":115,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6026,"page_layout_id":603,"page_layout_root_id":568,"pvalue":{},"section_param_id":116,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6027,"page_layout_id":603,"page_layout_root_id":568,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:5px auto auto auto"},"section_param_id":117,"theme_id":16,"unset":null,"updated_at":"2014-10-13T02:07:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6028,"page_layout_id":603,"page_layout_root_id":568,"pvalue":{},"section_param_id":118,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6029,"page_layout_id":603,"page_layout_root_id":568,"pvalue":{},"section_param_id":119,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6030,"page_layout_id":603,"page_layout_root_id":568,"pvalue":{"21unset":"0","21":"width:60px","7unset":"0","7":"border-style:solid solid solid solid","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB","8unset":"0","8":"border-width:1px 1px 1px 1px","32unset":"0","32":"padding:7px 10px 7px 10px"},"section_param_id":307,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6031,"page_layout_id":603,"page_layout_root_id":568,"pvalue":{},"section_param_id":308,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6032,"page_layout_id":603,"page_layout_root_id":568,"pvalue":{"53unset":"0","53":"text-align:left"},"section_param_id":309,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6033,"page_layout_id":604,"page_layout_root_id":568,"pvalue":{},"section_param_id":120,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:40:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6034,"page_layout_id":604,"page_layout_root_id":568,"pvalue":{},"section_param_id":121,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:40:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6035,"page_layout_id":604,"page_layout_root_id":568,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto auto 10px"},"section_param_id":122,"theme_id":16,"unset":null,"updated_at":"2014-10-08T12:08:30.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6036,"page_layout_id":604,"page_layout_root_id":568,"pvalue":{},"section_param_id":123,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:40:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6037,"page_layout_id":604,"page_layout_root_id":568,"pvalue":{},"section_param_id":124,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:40:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6038,"page_layout_id":604,"page_layout_root_id":568,"pvalue":{"32unset":"0","32":"padding:7px 30px 7px 30px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:black black black black"},"section_param_id":310,"theme_id":16,"unset":null,"updated_at":"2014-10-08T12:07:37.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6039,"page_layout_id":604,"page_layout_root_id":568,"pvalue":{"2unset":"0","2":"background-color:black"},"section_param_id":311,"theme_id":16,"unset":null,"updated_at":"2014-10-08T12:04:45.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6040,"page_layout_id":604,"page_layout_root_id":568,"pvalue":{"49unset":"0","49":"color:white","24unset":"1","24":"font-size:14em"},"section_param_id":312,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6041,"page_layout_id":629,"page_layout_root_id":568,"pvalue":{},"section_param_id":284,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6042,"page_layout_id":629,"page_layout_root_id":568,"pvalue":{"21":"width:600px","21unset":"0"},"section_param_id":285,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6043,"page_layout_id":629,"page_layout_root_id":568,"pvalue":{"7":"border-style:solid solid solid solid","7unset":"0","8":"border-width:1px 1px 1px 1px","8unset":"0","6":"border-color:#CCCCCC #CCCCCC #CCCCCC #CCCCCC","6unset":"0","15":"height:598px","15hidden":"1"},"section_param_id":286,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6044,"page_layout_id":629,"page_layout_root_id":568,"pvalue":{"2":"background-color:#FFFFFF","2unset":"0"},"section_param_id":287,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6045,"page_layout_id":629,"page_layout_root_id":568,"pvalue":{},"section_param_id":288,"theme_id":16,"unset":null,"updated_at":"2014-01-22T03:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6046,"page_layout_id":629,"page_layout_root_id":568,"pvalue":{"32":"padding:5px 2px 5px 2px","32unset":"0","31unset":"0","31":"margin:auto auto 10px auto"},"section_param_id":313,"theme_id":16,"unset":null,"updated_at":"2014-10-13T16:27:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6047,"page_layout_id":629,"page_layout_root_id":568,"pvalue":{"2":"background-color:#dfdede","2unset":"0"},"section_param_id":314,"theme_id":16,"unset":null,"updated_at":"2014-10-13T16:19:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6048,"page_layout_id":629,"page_layout_root_id":568,"pvalue":{"49unset":"1","49":"color:aqua","53unset":"0","53":"text-align:center"},"section_param_id":315,"theme_id":16,"unset":null,"updated_at":"2014-10-13T16:15:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6049,"page_layout_id":629,"page_layout_root_id":568,"pvalue":{"32":"padding:0px 25px 20px 25px","32unset":"0"},"section_param_id":316,"theme_id":16,"unset":null,"updated_at":"2014-10-12T11:24:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6050,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":333,"theme_id":16,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6051,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":334,"theme_id":16,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6052,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":335,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6053,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":336,"theme_id":16,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6054,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{"49unset":"1","49":"color:white","54unset":"1","54":"text-decoration:none"},"section_param_id":337,"theme_id":16,"unset":null,"updated_at":"2014-09-27T13:35:23.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6055,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{"32unset":"0","32":"padding:5px 5px 5px 10px"},"section_param_id":338,"theme_id":16,"unset":null,"updated_at":"2014-09-27T13:39:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6056,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{"53unset":"1","53":"text-align:left","49unset":"0","49":"color:white","54unset":"0","54":"text-decoration:none"},"section_param_id":339,"theme_id":16,"unset":null,"updated_at":"2014-09-27T13:35:36.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6057,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{"49unset":"0","49":"color:white"},"section_param_id":340,"theme_id":16,"unset":null,"updated_at":"2014-10-14T08:46:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6058,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":341,"theme_id":16,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6059,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":342,"theme_id":16,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6060,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":343,"theme_id":16,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6061,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":344,"theme_id":16,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6062,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":345,"theme_id":16,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6063,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":346,"theme_id":16,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6064,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":347,"theme_id":16,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6065,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":348,"theme_id":16,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6066,"page_layout_id":625,"page_layout_root_id":568,"pvalue":{},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-02-19T13:03:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6067,"page_layout_id":625,"page_layout_root_id":568,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6068,"page_layout_id":625,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6069,"page_layout_id":625,"page_layout_root_id":568,"pvalue":{},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-02-19T13:03:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6070,"page_layout_id":625,"page_layout_root_id":568,"pvalue":{},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-02-19T13:03:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6071,"page_layout_id":626,"page_layout_root_id":568,"pvalue":{},"section_param_id":349,"theme_id":16,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6072,"page_layout_id":626,"page_layout_root_id":568,"pvalue":{},"section_param_id":350,"theme_id":16,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6073,"page_layout_id":626,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":351,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6074,"page_layout_id":626,"page_layout_root_id":568,"pvalue":{},"section_param_id":352,"theme_id":16,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6075,"page_layout_id":626,"page_layout_root_id":568,"pvalue":{},"section_param_id":353,"theme_id":16,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6076,"page_layout_id":626,"page_layout_root_id":568,"pvalue":{},"section_param_id":354,"theme_id":16,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6077,"page_layout_id":626,"page_layout_root_id":568,"pvalue":{},"section_param_id":355,"theme_id":16,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6078,"page_layout_id":626,"page_layout_root_id":568,"pvalue":{},"section_param_id":356,"theme_id":16,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6079,"page_layout_id":593,"page_layout_root_id":568,"pvalue":{},"section_param_id":289,"theme_id":16,"unset":null,"updated_at":"2014-02-23T13:34:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6080,"page_layout_id":593,"page_layout_root_id":568,"pvalue":{},"section_param_id":290,"theme_id":16,"unset":null,"updated_at":"2014-02-23T13:34:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6081,"page_layout_id":593,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":291,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6082,"page_layout_id":593,"page_layout_root_id":568,"pvalue":{},"section_param_id":292,"theme_id":16,"unset":null,"updated_at":"2014-02-23T13:34:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6083,"page_layout_id":593,"page_layout_root_id":568,"pvalue":{},"section_param_id":293,"theme_id":16,"unset":null,"updated_at":"2014-02-23T13:34:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6084,"page_layout_id":593,"page_layout_root_id":568,"pvalue":{"32unset":"0","32":"padding:0px 0px 5px 0px","7unset":"1","7":"border-style:solid solid solid solid","8unset":"1","8":"border-width:1px 1px 1px 1px","6unset":"1","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB"},"section_param_id":299,"theme_id":16,"unset":null,"updated_at":"2014-09-29T01:03:05.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6085,"page_layout_id":593,"page_layout_root_id":568,"pvalue":{"32unset":"0","32":"padding:2px 2px 2px 2px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB","31unset":"0","31":"margin:auto 6px 6px auto"},"section_param_id":301,"theme_id":16,"unset":null,"updated_at":"2014-09-29T08:47:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6086,"page_layout_id":614,"page_layout_root_id":568,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6087,"page_layout_id":614,"page_layout_root_id":568,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"0"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6088,"page_layout_id":614,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6089,"page_layout_id":614,"page_layout_root_id":568,"pvalue":{},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-03-04T14:20:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6090,"page_layout_id":614,"page_layout_root_id":568,"pvalue":{},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-03-04T14:20:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6096,"page_layout_id":602,"page_layout_root_id":568,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6097,"page_layout_id":602,"page_layout_root_id":568,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:230px"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6098,"page_layout_id":602,"page_layout_root_id":568,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:25px auto auto auto"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-10-13T02:06:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6099,"page_layout_id":602,"page_layout_root_id":568,"pvalue":{},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-03-06T13:42:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6100,"page_layout_id":602,"page_layout_root_id":568,"pvalue":{},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-03-06T13:42:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6101,"page_layout_id":600,"page_layout_root_id":568,"pvalue":{"85unset":"0","85":"clear:both"},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6102,"page_layout_id":600,"page_layout_root_id":568,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6103,"page_layout_id":600,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6104,"page_layout_id":600,"page_layout_root_id":568,"pvalue":{},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-03-06T15:17:45.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6105,"page_layout_id":600,"page_layout_root_id":568,"pvalue":{},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-03-06T15:17:45.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6106,"page_layout_id":588,"page_layout_root_id":568,"pvalue":{"84unset":"0","84":"product"},"section_param_id":404,"theme_id":16,"unset":null,"updated_at":"2014-09-27T14:34:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6107,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{},"section_param_id":420,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6108,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{},"section_param_id":421,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6109,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{},"section_param_id":421,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6110,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":422,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6111,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{},"section_param_id":423,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6112,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{},"section_param_id":424,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6113,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{},"section_param_id":424,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6114,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":425,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6115,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{},"section_param_id":426,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6116,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{},"section_param_id":427,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6117,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{},"section_param_id":427,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6118,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":428,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6119,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{},"section_param_id":429,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6120,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{},"section_param_id":430,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6121,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{},"section_param_id":430,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6122,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":431,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6123,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{},"section_param_id":432,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6124,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{},"section_param_id":433,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6125,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{},"section_param_id":433,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6126,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":434,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6127,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{},"section_param_id":435,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6128,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{},"section_param_id":436,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6129,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{},"section_param_id":436,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6130,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":437,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6131,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{},"section_param_id":438,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6132,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{},"section_param_id":439,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6133,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{},"section_param_id":439,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6134,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":440,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6135,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{},"section_param_id":441,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6136,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{},"section_param_id":442,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6137,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{},"section_param_id":442,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6138,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":443,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6139,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{},"section_param_id":444,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6140,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{},"section_param_id":445,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6141,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{},"section_param_id":445,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6142,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":446,"theme_id":16,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6143,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{},"section_param_id":477,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6144,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{},"section_param_id":478,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6145,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{},"section_param_id":478,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6146,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":479,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6147,"page_layout_id":569,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6148,"page_layout_id":570,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6149,"page_layout_id":572,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6150,"page_layout_id":574,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6151,"page_layout_id":577,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6152,"page_layout_id":578,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6153,"page_layout_id":579,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6154,"page_layout_id":582,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6155,"page_layout_id":585,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6156,"page_layout_id":586,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6157,"page_layout_id":587,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6158,"page_layout_id":591,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6159,"page_layout_id":592,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6160,"page_layout_id":595,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6161,"page_layout_id":598,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6162,"page_layout_id":600,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6163,"page_layout_id":602,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6164,"page_layout_id":605,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6165,"page_layout_id":613,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6166,"page_layout_id":614,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6167,"page_layout_id":618,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6168,"page_layout_id":621,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6169,"page_layout_id":623,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6170,"page_layout_id":625,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6171,"page_layout_id":627,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6172,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{},"section_param_id":481,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6173,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{},"section_param_id":482,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6174,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{},"section_param_id":482,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6175,"page_layout_id":628,"page_layout_root_id":568,"pvalue":{},"section_param_id":484,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6176,"page_layout_id":589,"page_layout_root_id":568,"pvalue":{},"section_param_id":485,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6177,"page_layout_id":596,"page_layout_root_id":568,"pvalue":{},"section_param_id":485,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6178,"page_layout_id":597,"page_layout_root_id":568,"pvalue":{},"section_param_id":486,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6179,"page_layout_id":588,"page_layout_root_id":568,"pvalue":{},"section_param_id":487,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6180,"page_layout_id":594,"page_layout_root_id":568,"pvalue":{},"section_param_id":495,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6181,"page_layout_id":590,"page_layout_root_id":568,"pvalue":{},"section_param_id":496,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6182,"page_layout_id":601,"page_layout_root_id":568,"pvalue":{},"section_param_id":496,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6183,"page_layout_id":603,"page_layout_root_id":568,"pvalue":{},"section_param_id":497,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6184,"page_layout_id":604,"page_layout_root_id":568,"pvalue":{},"section_param_id":498,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6185,"page_layout_id":607,"page_layout_root_id":568,"pvalue":{},"section_param_id":499,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6186,"page_layout_id":580,"page_layout_root_id":568,"pvalue":{},"section_param_id":501,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6187,"page_layout_id":583,"page_layout_root_id":568,"pvalue":{},"section_param_id":501,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6188,"page_layout_id":608,"page_layout_root_id":568,"pvalue":{},"section_param_id":502,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6189,"page_layout_id":609,"page_layout_root_id":568,"pvalue":{},"section_param_id":503,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6190,"page_layout_id":610,"page_layout_root_id":568,"pvalue":{},"section_param_id":504,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6191,"page_layout_id":606,"page_layout_root_id":568,"pvalue":{},"section_param_id":506,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6192,"page_layout_id":615,"page_layout_root_id":568,"pvalue":{},"section_param_id":507,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6193,"page_layout_id":616,"page_layout_root_id":568,"pvalue":{},"section_param_id":508,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6194,"page_layout_id":617,"page_layout_root_id":568,"pvalue":{},"section_param_id":509,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6195,"page_layout_id":622,"page_layout_root_id":568,"pvalue":{},"section_param_id":510,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6196,"page_layout_id":624,"page_layout_root_id":568,"pvalue":{},"section_param_id":511,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6197,"page_layout_id":611,"page_layout_root_id":568,"pvalue":{},"section_param_id":513,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6198,"page_layout_id":612,"page_layout_root_id":568,"pvalue":{},"section_param_id":514,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6199,"page_layout_id":620,"page_layout_root_id":568,"pvalue":{},"section_param_id":515,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6200,"page_layout_id":619,"page_layout_root_id":568,"pvalue":{},"section_param_id":516,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6201,"page_layout_id":629,"page_layout_root_id":568,"pvalue":{},"section_param_id":518,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6202,"page_layout_id":593,"page_layout_root_id":568,"pvalue":{},"section_param_id":519,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6203,"page_layout_id":571,"page_layout_root_id":568,"pvalue":{},"section_param_id":520,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6205,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":522,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6206,"page_layout_id":626,"page_layout_root_id":568,"pvalue":{},"section_param_id":523,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6208,"page_layout_id":569,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6209,"page_layout_id":570,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6210,"page_layout_id":572,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6211,"page_layout_id":574,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6212,"page_layout_id":577,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6213,"page_layout_id":578,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6214,"page_layout_id":579,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6215,"page_layout_id":582,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6216,"page_layout_id":585,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6217,"page_layout_id":586,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6218,"page_layout_id":587,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6219,"page_layout_id":591,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6220,"page_layout_id":592,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6221,"page_layout_id":595,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6222,"page_layout_id":598,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6223,"page_layout_id":600,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6224,"page_layout_id":602,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6225,"page_layout_id":605,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6226,"page_layout_id":613,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6227,"page_layout_id":614,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6228,"page_layout_id":618,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6229,"page_layout_id":621,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6230,"page_layout_id":623,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6231,"page_layout_id":625,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6232,"page_layout_id":627,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6233,"page_layout_id":575,"page_layout_root_id":568,"pvalue":{},"section_param_id":537,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6234,"page_layout_id":581,"page_layout_root_id":568,"pvalue":{},"section_param_id":538,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6235,"page_layout_id":584,"page_layout_root_id":568,"pvalue":{},"section_param_id":538,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6236,"page_layout_id":628,"page_layout_root_id":568,"pvalue":{},"section_param_id":540,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6237,"page_layout_id":589,"page_layout_root_id":568,"pvalue":{},"section_param_id":541,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6238,"page_layout_id":596,"page_layout_root_id":568,"pvalue":{},"section_param_id":541,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6239,"page_layout_id":597,"page_layout_root_id":568,"pvalue":{},"section_param_id":542,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6240,"page_layout_id":588,"page_layout_root_id":568,"pvalue":{},"section_param_id":543,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6241,"page_layout_id":594,"page_layout_root_id":568,"pvalue":{},"section_param_id":551,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6242,"page_layout_id":590,"page_layout_root_id":568,"pvalue":{},"section_param_id":552,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6243,"page_layout_id":601,"page_layout_root_id":568,"pvalue":{},"section_param_id":552,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6244,"page_layout_id":603,"page_layout_root_id":568,"pvalue":{},"section_param_id":553,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6245,"page_layout_id":604,"page_layout_root_id":568,"pvalue":{},"section_param_id":554,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6246,"page_layout_id":607,"page_layout_root_id":568,"pvalue":{},"section_param_id":555,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6247,"page_layout_id":580,"page_layout_root_id":568,"pvalue":{},"section_param_id":557,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6248,"page_layout_id":583,"page_layout_root_id":568,"pvalue":{"3unset":"1","3":"background-image:taxon-arrow.png","4unset":"1","4":"background-position:left 6px","5unset":"1","5":"background-repeat:no-repeat"},"section_param_id":557,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:10:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6249,"page_layout_id":608,"page_layout_root_id":568,"pvalue":{},"section_param_id":558,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6250,"page_layout_id":609,"page_layout_root_id":568,"pvalue":{},"section_param_id":559,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6251,"page_layout_id":610,"page_layout_root_id":568,"pvalue":{},"section_param_id":560,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6252,"page_layout_id":606,"page_layout_root_id":568,"pvalue":{},"section_param_id":562,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6253,"page_layout_id":615,"page_layout_root_id":568,"pvalue":{},"section_param_id":563,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6254,"page_layout_id":616,"page_layout_root_id":568,"pvalue":{},"section_param_id":564,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6255,"page_layout_id":617,"page_layout_root_id":568,"pvalue":{},"section_param_id":565,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6256,"page_layout_id":622,"page_layout_root_id":568,"pvalue":{},"section_param_id":566,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6257,"page_layout_id":624,"page_layout_root_id":568,"pvalue":{},"section_param_id":567,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6258,"page_layout_id":611,"page_layout_root_id":568,"pvalue":{},"section_param_id":569,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6259,"page_layout_id":612,"page_layout_root_id":568,"pvalue":{},"section_param_id":570,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6260,"page_layout_id":620,"page_layout_root_id":568,"pvalue":{},"section_param_id":571,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6261,"page_layout_id":619,"page_layout_root_id":568,"pvalue":{},"section_param_id":572,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6262,"page_layout_id":629,"page_layout_root_id":568,"pvalue":{},"section_param_id":574,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6263,"page_layout_id":593,"page_layout_root_id":568,"pvalue":{},"section_param_id":575,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6264,"page_layout_id":571,"page_layout_root_id":568,"pvalue":{},"section_param_id":576,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6266,"page_layout_id":573,"page_layout_root_id":568,"pvalue":{},"section_param_id":578,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:37:01.000Z","id":6267,"page_layout_id":626,"page_layout_root_id":568,"pvalue":{},"section_param_id":579,"theme_id":16,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:48:20.000Z","id":6688,"page_layout_id":630,"page_layout_root_id":568,"pvalue":{},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-09-27T11:48:20.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:48:20.000Z","id":6689,"page_layout_id":630,"page_layout_root_id":568,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:01:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:48:20.000Z","id":6690,"page_layout_id":630,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-09-27T11:48:20.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:48:20.000Z","id":6691,"page_layout_id":630,"page_layout_root_id":568,"pvalue":{"3unset":"0","3":"background-image:header-bg2.png","5unset":"0","5":"background-repeat:repeat-x"},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:01:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:48:20.000Z","id":6692,"page_layout_id":630,"page_layout_root_id":568,"pvalue":{},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-09-27T11:48:20.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:48:20.000Z","id":6693,"page_layout_id":630,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-09-27T11:48:20.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:48:20.000Z","id":6694,"page_layout_id":630,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-09-27T11:48:20.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:52:19.000Z","id":6695,"page_layout_id":631,"page_layout_root_id":568,"pvalue":{},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-09-27T11:52:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:52:19.000Z","id":6696,"page_layout_id":631,"page_layout_root_id":568,"pvalue":{"101":"float:none","101unset":"0","15":"height:20px","15unset":"1","21unset":"0","21":"width:980px"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-09-27T13:38:28.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:52:19.000Z","id":6697,"page_layout_id":631,"page_layout_root_id":568,"pvalue":{"15hidden":"1","15unset":"1","15":"height:20px"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-09-27T13:38:29.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:52:19.000Z","id":6698,"page_layout_id":631,"page_layout_root_id":568,"pvalue":{"2unset":"0","2":"background-color:black"},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-09-27T11:54:14.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:52:19.000Z","id":6699,"page_layout_id":631,"page_layout_root_id":568,"pvalue":{},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-09-27T11:52:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:52:19.000Z","id":6700,"page_layout_id":631,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-09-27T11:52:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T11:52:19.000Z","id":6701,"page_layout_id":631,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-09-27T11:52:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6730,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":11,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6731,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":12,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6732,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":13,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6733,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":14,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6734,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{"54unset":"1","54":"text-decoration:none","49unset":"1","49":"color:black"},"section_param_id":15,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:58:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6735,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":481,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6736,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":537,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6737,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{"32unset":"0","32":"padding:0px 20px 5px 0px"},"section_param_id":16,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:58:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6738,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{"49unset":"1","49":"color:#717071","54unset":"0","54":"text-decoration:none"},"section_param_id":17,"theme_id":16,"unset":null,"updated_at":"2014-10-13T14:59:35.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6739,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":18,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6740,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":19,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6741,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":20,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6742,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":21,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6743,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":22,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6744,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":23,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6745,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":24,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6746,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":25,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6747,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":26,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6748,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":420,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6749,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":423,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6750,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":426,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6751,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":429,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6752,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":432,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6753,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":435,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6754,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":438,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6755,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":441,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6756,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":444,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-27T12:51:39.000Z","id":6757,"page_layout_id":633,"page_layout_root_id":568,"pvalue":{},"section_param_id":477,"theme_id":16,"unset":null,"updated_at":"2014-09-27T12:51:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:16:05.000Z","id":6758,"page_layout_id":634,"page_layout_root_id":568,"pvalue":{},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:16:05.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:16:05.000Z","id":6759,"page_layout_id":634,"page_layout_root_id":568,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:36:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:16:05.000Z","id":6760,"page_layout_id":634,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:16:05.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:16:05.000Z","id":6761,"page_layout_id":634,"page_layout_root_id":568,"pvalue":{},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:16:05.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:16:05.000Z","id":6762,"page_layout_id":634,"page_layout_root_id":568,"pvalue":{},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:16:05.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:16:05.000Z","id":6763,"page_layout_id":634,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:16:05.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:16:05.000Z","id":6764,"page_layout_id":634,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:16:05.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:01.000Z","id":6765,"page_layout_id":635,"page_layout_root_id":568,"pvalue":{},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:01.000Z","id":6766,"page_layout_id":635,"page_layout_root_id":568,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:34:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:01.000Z","id":6767,"page_layout_id":635,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:01.000Z","id":6768,"page_layout_id":635,"page_layout_root_id":568,"pvalue":{},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:01.000Z","id":6769,"page_layout_id":635,"page_layout_root_id":568,"pvalue":{},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:01.000Z","id":6770,"page_layout_id":635,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:01.000Z","id":6771,"page_layout_id":635,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:09.000Z","id":6772,"page_layout_id":636,"page_layout_root_id":568,"pvalue":{},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:09.000Z","id":6773,"page_layout_id":636,"page_layout_root_id":568,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:35:14.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:09.000Z","id":6774,"page_layout_id":636,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:09.000Z","id":6775,"page_layout_id":636,"page_layout_root_id":568,"pvalue":{},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:09.000Z","id":6776,"page_layout_id":636,"page_layout_root_id":568,"pvalue":{},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:09.000Z","id":6777,"page_layout_id":636,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:09.000Z","id":6778,"page_layout_id":636,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:38.000Z","id":6779,"page_layout_id":637,"page_layout_root_id":568,"pvalue":{},"section_param_id":160,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:38.000Z","id":6780,"page_layout_id":637,"page_layout_root_id":568,"pvalue":{"21unset":"0","21":"width:720px","101unset":"0","101":"float:none"},"section_param_id":161,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:58:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:38.000Z","id":6781,"page_layout_id":637,"page_layout_root_id":568,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:solid none none none","8unset":"0","8":"border-width:1px 0px 0px 0px","6unset":"0","6":"border-color:#d9d9db transparent transparent transparent","32unset":"0","32":"padding:5px 0px 15px 0px"},"section_param_id":162,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:43:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:38.000Z","id":6782,"page_layout_id":637,"page_layout_root_id":568,"pvalue":{},"section_param_id":163,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:38.000Z","id":6783,"page_layout_id":637,"page_layout_root_id":568,"pvalue":{},"section_param_id":164,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:38.000Z","id":6784,"page_layout_id":637,"page_layout_root_id":568,"pvalue":{},"section_param_id":506,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:38.000Z","id":6785,"page_layout_id":637,"page_layout_root_id":568,"pvalue":{},"section_param_id":562,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:50.000Z","id":6786,"page_layout_id":638,"page_layout_root_id":568,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:38:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:50.000Z","id":6787,"page_layout_id":638,"page_layout_root_id":568,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:39:28.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:50.000Z","id":6788,"page_layout_id":638,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:50.000Z","id":6789,"page_layout_id":638,"page_layout_root_id":568,"pvalue":{},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:50.000Z","id":6790,"page_layout_id":638,"page_layout_root_id":568,"pvalue":{},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:50.000Z","id":6791,"page_layout_id":638,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:17:50.000Z","id":6792,"page_layout_id":638,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:17:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:18:19.000Z","id":6793,"page_layout_id":639,"page_layout_root_id":568,"pvalue":{},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:18:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:18:19.000Z","id":6794,"page_layout_id":639,"page_layout_root_id":568,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:31:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:18:19.000Z","id":6795,"page_layout_id":639,"page_layout_root_id":568,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 20px auto"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:33:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:18:19.000Z","id":6796,"page_layout_id":639,"page_layout_root_id":568,"pvalue":{},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:18:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:18:19.000Z","id":6797,"page_layout_id":639,"page_layout_root_id":568,"pvalue":{},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:18:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:18:19.000Z","id":6798,"page_layout_id":639,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:18:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:18:19.000Z","id":6799,"page_layout_id":639,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:18:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:09.000Z","id":6800,"page_layout_id":640,"page_layout_root_id":568,"pvalue":{},"section_param_id":65,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:20:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:09.000Z","id":6801,"page_layout_id":640,"page_layout_root_id":568,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":66,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:46:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:09.000Z","id":6802,"page_layout_id":640,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":67,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:20:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:09.000Z","id":6803,"page_layout_id":640,"page_layout_root_id":568,"pvalue":{},"section_param_id":68,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:20:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:09.000Z","id":6804,"page_layout_id":640,"page_layout_root_id":568,"pvalue":{"53unset":"0","53":"text-align:center"},"section_param_id":69,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:46:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:09.000Z","id":6805,"page_layout_id":640,"page_layout_root_id":568,"pvalue":{},"section_param_id":487,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:20:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:09.000Z","id":6806,"page_layout_id":640,"page_layout_root_id":568,"pvalue":{},"section_param_id":543,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:20:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:09.000Z","id":6807,"page_layout_id":640,"page_layout_root_id":568,"pvalue":{},"section_param_id":404,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:20:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:23.000Z","id":6808,"page_layout_id":641,"page_layout_root_id":568,"pvalue":{},"section_param_id":110,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:20:23.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:23.000Z","id":6809,"page_layout_id":641,"page_layout_root_id":568,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":111,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:44:36.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:23.000Z","id":6810,"page_layout_id":641,"page_layout_root_id":568,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:10px 0px 0px 0px"},"section_param_id":112,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:49:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:23.000Z","id":6811,"page_layout_id":641,"page_layout_root_id":568,"pvalue":{},"section_param_id":113,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:20:23.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:23.000Z","id":6812,"page_layout_id":641,"page_layout_root_id":568,"pvalue":{"53unset":"0","53":"text-align:center"},"section_param_id":114,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:47:06.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:23.000Z","id":6813,"page_layout_id":641,"page_layout_root_id":568,"pvalue":{},"section_param_id":496,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:20:23.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:23.000Z","id":6814,"page_layout_id":641,"page_layout_root_id":568,"pvalue":{},"section_param_id":552,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:20:23.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:32.000Z","id":6815,"page_layout_id":642,"page_layout_root_id":568,"pvalue":{},"section_param_id":55,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:20:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:32.000Z","id":6816,"page_layout_id":642,"page_layout_root_id":568,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":56,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:47:51.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:32.000Z","id":6817,"page_layout_id":642,"page_layout_root_id":568,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:10px 0px 20px 0px"},"section_param_id":57,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:49:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:32.000Z","id":6818,"page_layout_id":642,"page_layout_root_id":568,"pvalue":{},"section_param_id":58,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:20:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:32.000Z","id":6819,"page_layout_id":642,"page_layout_root_id":568,"pvalue":{"53unset":"0","53":"text-align:center"},"section_param_id":59,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:47:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:32.000Z","id":6820,"page_layout_id":642,"page_layout_root_id":568,"pvalue":{},"section_param_id":485,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:20:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:32.000Z","id":6821,"page_layout_id":642,"page_layout_root_id":568,"pvalue":{},"section_param_id":541,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:20:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:32.000Z","id":6822,"page_layout_id":642,"page_layout_root_id":568,"pvalue":{},"section_param_id":294,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:20:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:32.000Z","id":6823,"page_layout_id":642,"page_layout_root_id":568,"pvalue":{},"section_param_id":295,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:20:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:32.000Z","id":6824,"page_layout_id":642,"page_layout_root_id":568,"pvalue":{"53unset":"1","53":"text-align:center"},"section_param_id":296,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:47:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:20:32.000Z","id":6825,"page_layout_id":642,"page_layout_root_id":568,"pvalue":{},"section_param_id":297,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:20:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:36:48.000Z","id":6826,"page_layout_id":643,"page_layout_root_id":568,"pvalue":{},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:36:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:36:48.000Z","id":6827,"page_layout_id":643,"page_layout_root_id":568,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:250px"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:45:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:36:48.000Z","id":6828,"page_layout_id":643,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:36:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:36:48.000Z","id":6829,"page_layout_id":643,"page_layout_root_id":568,"pvalue":{},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:36:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:36:48.000Z","id":6830,"page_layout_id":643,"page_layout_root_id":568,"pvalue":{},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:36:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:36:48.000Z","id":6831,"page_layout_id":643,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:36:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-28T13:36:48.000Z","id":6832,"page_layout_id":643,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-09-28T13:36:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:19:33.000Z","id":6840,"page_layout_id":645,"page_layout_root_id":568,"pvalue":{},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:19:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:19:33.000Z","id":6841,"page_layout_id":645,"page_layout_root_id":568,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:54:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:19:33.000Z","id":6842,"page_layout_id":645,"page_layout_root_id":568,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:20px auto auto auto"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:55:20.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:19:33.000Z","id":6843,"page_layout_id":645,"page_layout_root_id":568,"pvalue":{},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:19:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:19:33.000Z","id":6844,"page_layout_id":645,"page_layout_root_id":568,"pvalue":{},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:19:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:19:33.000Z","id":6845,"page_layout_id":645,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:19:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:19:33.000Z","id":6846,"page_layout_id":645,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:19:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:20:41.000Z","id":6847,"page_layout_id":646,"page_layout_root_id":568,"pvalue":{},"section_param_id":405,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:20:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:20:41.000Z","id":6848,"page_layout_id":646,"page_layout_root_id":568,"pvalue":{},"section_param_id":406,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:20:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:20:41.000Z","id":6849,"page_layout_id":646,"page_layout_root_id":568,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 10px auto"},"section_param_id":407,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:57:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:20:41.000Z","id":6850,"page_layout_id":646,"page_layout_root_id":568,"pvalue":{},"section_param_id":408,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:20:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:20:41.000Z","id":6851,"page_layout_id":646,"page_layout_root_id":568,"pvalue":{},"section_param_id":409,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:20:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:20:41.000Z","id":6852,"page_layout_id":646,"page_layout_root_id":568,"pvalue":{},"section_param_id":529,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:20:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:20:41.000Z","id":6853,"page_layout_id":646,"page_layout_root_id":568,"pvalue":{},"section_param_id":585,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:20:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:23:23.000Z","id":6854,"page_layout_id":647,"page_layout_root_id":568,"pvalue":{},"section_param_id":388,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:23:23.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:23:23.000Z","id":6855,"page_layout_id":647,"page_layout_root_id":568,"pvalue":{"21":"width:749px","21unset":"0","101unset":"0","101":"float:none"},"section_param_id":389,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:32:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:23:23.000Z","id":6856,"page_layout_id":647,"page_layout_root_id":568,"pvalue":{"15hidden":"1"},"section_param_id":390,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:23:23.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:23:23.000Z","id":6857,"page_layout_id":647,"page_layout_root_id":568,"pvalue":{},"section_param_id":391,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:23:23.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:23:23.000Z","id":6858,"page_layout_id":647,"page_layout_root_id":568,"pvalue":{},"section_param_id":392,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:23:23.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:23:23.000Z","id":6859,"page_layout_id":647,"page_layout_root_id":568,"pvalue":{},"section_param_id":527,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:23:23.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:23:23.000Z","id":6860,"page_layout_id":647,"page_layout_root_id":568,"pvalue":{},"section_param_id":583,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:23:23.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-09-29T12:23:23.000Z","id":6861,"page_layout_id":647,"page_layout_root_id":568,"pvalue":{"78":"width:600px","78unset":"0","79":"height:200px","79unset":"0"},"section_param_id":393,"theme_id":16,"unset":null,"updated_at":"2014-09-29T12:23:23.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T13:29:12.000Z","id":6869,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":631,"theme_id":16,"unset":null,"updated_at":"2014-10-07T13:29:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T13:29:12.000Z","id":6885,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":636,"theme_id":16,"unset":null,"updated_at":"2014-10-07T13:29:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T13:34:47.000Z","id":6901,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":658,"theme_id":16,"unset":null,"updated_at":"2014-10-07T13:34:47.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T13:34:47.000Z","id":6917,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":664,"theme_id":16,"unset":null,"updated_at":"2014-10-07T13:34:47.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T13:50:38.000Z","id":6926,"page_layout_id":648,"page_layout_root_id":568,"pvalue":{},"section_param_id":410,"theme_id":16,"unset":null,"updated_at":"2014-10-07T13:50:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T13:50:38.000Z","id":6927,"page_layout_id":648,"page_layout_root_id":568,"pvalue":{"101unset":"0","101":"float:right"},"section_param_id":411,"theme_id":16,"unset":null,"updated_at":"2014-10-07T13:51:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T13:50:38.000Z","id":6928,"page_layout_id":648,"page_layout_root_id":568,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:5px 5px 5px 25px"},"section_param_id":412,"theme_id":16,"unset":null,"updated_at":"2014-10-09T14:34:29.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T13:50:38.000Z","id":6929,"page_layout_id":648,"page_layout_root_id":568,"pvalue":{"3unset":"0","3":"background-image:cart.png","4unset":"0","4":"background-position:left center","5unset":"0","5":"background-repeat:no-repeat"},"section_param_id":413,"theme_id":16,"unset":null,"updated_at":"2014-10-09T14:33:46.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T13:50:38.000Z","id":6930,"page_layout_id":648,"page_layout_root_id":568,"pvalue":{"49unset":"1","49":"color:white"},"section_param_id":414,"theme_id":16,"unset":null,"updated_at":"2014-10-07T13:52:07.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T13:50:38.000Z","id":6931,"page_layout_id":648,"page_layout_root_id":568,"pvalue":{},"section_param_id":530,"theme_id":16,"unset":null,"updated_at":"2014-10-07T13:50:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T13:50:38.000Z","id":6932,"page_layout_id":648,"page_layout_root_id":568,"pvalue":{},"section_param_id":586,"theme_id":16,"unset":null,"updated_at":"2014-10-07T13:50:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T13:50:38.000Z","id":6933,"page_layout_id":648,"page_layout_root_id":568,"pvalue":{},"section_param_id":415,"theme_id":16,"unset":null,"updated_at":"2014-10-07T13:50:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T13:50:38.000Z","id":6934,"page_layout_id":648,"page_layout_root_id":568,"pvalue":{},"section_param_id":416,"theme_id":16,"unset":null,"updated_at":"2014-10-07T13:50:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T13:50:38.000Z","id":6935,"page_layout_id":648,"page_layout_root_id":568,"pvalue":{},"section_param_id":417,"theme_id":16,"unset":null,"updated_at":"2014-10-07T13:50:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T13:50:38.000Z","id":6936,"page_layout_id":648,"page_layout_root_id":568,"pvalue":{"49unset":"0","49":"color:white","54unset":"0","54":"text-decoration:none"},"section_param_id":418,"theme_id":16,"unset":null,"updated_at":"2014-10-07T13:52:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T13:50:38.000Z","id":6937,"page_layout_id":648,"page_layout_root_id":568,"pvalue":{"49unset":"0","49":"color:white"},"section_param_id":419,"theme_id":16,"unset":null,"updated_at":"2014-10-13T15:03:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T13:50:38.000Z","id":6938,"page_layout_id":648,"page_layout_root_id":568,"pvalue":{},"section_param_id":633,"theme_id":16,"unset":null,"updated_at":"2014-10-07T13:50:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T13:50:38.000Z","id":6939,"page_layout_id":648,"page_layout_root_id":568,"pvalue":{},"section_param_id":638,"theme_id":16,"unset":null,"updated_at":"2014-10-07T13:50:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T13:50:38.000Z","id":6940,"page_layout_id":648,"page_layout_root_id":568,"pvalue":{},"section_param_id":660,"theme_id":16,"unset":null,"updated_at":"2014-10-07T13:50:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T13:50:38.000Z","id":6941,"page_layout_id":648,"page_layout_root_id":568,"pvalue":{},"section_param_id":666,"theme_id":16,"unset":null,"updated_at":"2014-10-07T13:50:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T14:03:08.000Z","id":6942,"page_layout_id":649,"page_layout_root_id":568,"pvalue":{},"section_param_id":641,"theme_id":16,"unset":null,"updated_at":"2014-10-07T14:03:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T14:03:08.000Z","id":6943,"page_layout_id":649,"page_layout_root_id":568,"pvalue":{"21unset":"0","21":"width:160px"},"section_param_id":642,"theme_id":16,"unset":null,"updated_at":"2014-10-07T14:11:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T14:03:08.000Z","id":6944,"page_layout_id":649,"page_layout_root_id":568,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:10px auto auto auto"},"section_param_id":643,"theme_id":16,"unset":null,"updated_at":"2014-10-07T14:15:18.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T14:03:08.000Z","id":6945,"page_layout_id":649,"page_layout_root_id":568,"pvalue":{},"section_param_id":644,"theme_id":16,"unset":null,"updated_at":"2014-10-07T14:03:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T14:03:08.000Z","id":6946,"page_layout_id":649,"page_layout_root_id":568,"pvalue":{},"section_param_id":645,"theme_id":16,"unset":null,"updated_at":"2014-10-07T14:03:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T14:03:08.000Z","id":6947,"page_layout_id":649,"page_layout_root_id":568,"pvalue":{},"section_param_id":646,"theme_id":16,"unset":null,"updated_at":"2014-10-07T14:03:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T14:03:08.000Z","id":6948,"page_layout_id":649,"page_layout_root_id":568,"pvalue":{},"section_param_id":647,"theme_id":16,"unset":null,"updated_at":"2014-10-07T14:03:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T14:03:08.000Z","id":6949,"page_layout_id":649,"page_layout_root_id":568,"pvalue":{"32unset":"0","32":"padding:20px 5px 10px 0px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent black transparent","31unset":"1","31":"margin:auto auto auto auto"},"section_param_id":648,"theme_id":16,"unset":null,"updated_at":"2014-10-07T14:15:10.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T14:03:08.000Z","id":6950,"page_layout_id":649,"page_layout_root_id":568,"pvalue":{},"section_param_id":649,"theme_id":16,"unset":null,"updated_at":"2014-10-07T14:03:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T14:03:08.000Z","id":6951,"page_layout_id":649,"page_layout_root_id":568,"pvalue":{},"section_param_id":650,"theme_id":16,"unset":null,"updated_at":"2014-10-07T14:03:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T14:03:08.000Z","id":6952,"page_layout_id":649,"page_layout_root_id":568,"pvalue":{"21unset":"1","21":"width:120px","32unset":"0","32":"padding:8px 0px 0px 0px"},"section_param_id":651,"theme_id":16,"unset":null,"updated_at":"2014-10-07T14:15:47.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T14:03:08.000Z","id":6953,"page_layout_id":649,"page_layout_root_id":568,"pvalue":{},"section_param_id":652,"theme_id":16,"unset":null,"updated_at":"2014-10-07T14:03:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T14:03:08.000Z","id":6954,"page_layout_id":649,"page_layout_root_id":568,"pvalue":{},"section_param_id":653,"theme_id":16,"unset":null,"updated_at":"2014-10-07T14:03:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T14:03:08.000Z","id":6955,"page_layout_id":649,"page_layout_root_id":568,"pvalue":{"49unset":"0","49":"color:gray"},"section_param_id":654,"theme_id":16,"unset":null,"updated_at":"2014-10-08T12:00:18.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T14:03:08.000Z","id":6956,"page_layout_id":649,"page_layout_root_id":568,"pvalue":{},"section_param_id":655,"theme_id":16,"unset":null,"updated_at":"2014-10-07T14:03:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T14:03:08.000Z","id":6957,"page_layout_id":649,"page_layout_root_id":568,"pvalue":{},"section_param_id":656,"theme_id":16,"unset":null,"updated_at":"2014-10-07T14:03:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T14:03:08.000Z","id":6958,"page_layout_id":649,"page_layout_root_id":568,"pvalue":{"49unset":"0","49":"color:black"},"section_param_id":657,"theme_id":16,"unset":null,"updated_at":"2014-10-08T11:59:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T14:03:08.000Z","id":6959,"page_layout_id":649,"page_layout_root_id":568,"pvalue":{},"section_param_id":663,"theme_id":16,"unset":null,"updated_at":"2014-10-07T14:03:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-07T14:03:08.000Z","id":6960,"page_layout_id":649,"page_layout_root_id":568,"pvalue":{},"section_param_id":669,"theme_id":16,"unset":null,"updated_at":"2014-10-07T14:03:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-09T09:34:30.000Z","id":6961,"page_layout_id":650,"page_layout_root_id":568,"pvalue":{},"section_param_id":6,"theme_id":16,"unset":null,"updated_at":"2014-10-09T09:34:30.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-09T09:34:30.000Z","id":6962,"page_layout_id":650,"page_layout_root_id":568,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":16,"unset":null,"updated_at":"2014-10-09T09:35:36.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-09T09:34:30.000Z","id":6963,"page_layout_id":650,"page_layout_root_id":568,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto 15px 20px auto"},"section_param_id":8,"theme_id":16,"unset":null,"updated_at":"2014-10-09T11:42:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-09T09:34:30.000Z","id":6964,"page_layout_id":650,"page_layout_root_id":568,"pvalue":{},"section_param_id":9,"theme_id":16,"unset":null,"updated_at":"2014-10-09T09:34:30.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-09T09:34:30.000Z","id":6965,"page_layout_id":650,"page_layout_root_id":568,"pvalue":{},"section_param_id":10,"theme_id":16,"unset":null,"updated_at":"2014-10-09T09:34:30.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-09T09:34:30.000Z","id":6966,"page_layout_id":650,"page_layout_root_id":568,"pvalue":{},"section_param_id":480,"theme_id":16,"unset":null,"updated_at":"2014-10-09T09:34:30.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-09T09:34:30.000Z","id":6967,"page_layout_id":650,"page_layout_root_id":568,"pvalue":{},"section_param_id":536,"theme_id":16,"unset":null,"updated_at":"2014-10-09T09:34:30.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-12T00:45:54.000Z","id":6975,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"7unset":"0","7":"border-style:solid none solid none","8unset":"0","8":"border-width:1px 0px 1px 0px","6unset":"0","6":"border-color:#D9D9DB transparent #D9D9DB transparent"},"section_param_id":670,"theme_id":16,"unset":null,"updated_at":"2014-10-12T00:48:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-13T12:48:39.000Z","id":6983,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"32unset":"0","32":"padding:0px 0px 5px 0px"},"section_param_id":671,"theme_id":16,"unset":null,"updated_at":"2014-10-13T16:23:24.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-13T12:48:39.000Z","id":6991,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"2unset":"1","2":"background-color:transparent"},"section_param_id":672,"theme_id":16,"unset":null,"updated_at":"2014-10-13T12:49:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-13T12:48:40.000Z","id":6999,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"49unset":"1","49":"color:aqua","27unset":"0","27":"font-weight:bold"},"section_param_id":673,"theme_id":16,"unset":null,"updated_at":"2014-10-13T15:11:36.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-13T12:48:40.000Z","id":7007,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{"32unset":"0","32":"padding:0px 0px 10px 0px"},"section_param_id":674,"theme_id":16,"unset":null,"updated_at":"2014-10-13T16:22:46.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-13T12:48:40.000Z","id":7015,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":675,"theme_id":16,"unset":null,"updated_at":"2014-10-13T12:48:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-10-13T12:48:40.000Z","id":7023,"page_layout_id":568,"page_layout_root_id":568,"pvalue":{},"section_param_id":676,"theme_id":16,"unset":null,"updated_at":"2014-10-13T12:48:40.000Z"}}],"page_layouts":[{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:01.000Z","data_filter":"","data_source":"","data_source_param":"","id":568,"is_enabled":true,"is_full_html":true,"lft":1,"parent_id":null,"rgt":158,"root_id":568,"section_context":"","section_id":75,"section_instance":2,"site_id":2,"slug":"root","title":"root","updated_at":"2014-09-27T11:37:01.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-27T11:48:20.000Z","data_filter":"","data_source":"","data_source_param":"","id":630,"is_enabled":true,"is_full_html":false,"lft":2,"parent_id":568,"rgt":21,"root_id":568,"section_context":"","section_id":2,"section_instance":26,"site_id":2,"slug":"","title":"container26","updated_at":"2014-09-27T11:48:20.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-27T11:52:19.000Z","data_filter":"","data_source":"","data_source_param":"","id":631,"is_enabled":true,"is_full_html":false,"lft":3,"parent_id":630,"rgt":8,"root_id":568,"section_context":"","section_id":2,"section_instance":27,"site_id":2,"slug":"","title":"container27","updated_at":"2014-09-27T11:52:19.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:01.000Z","data_filter":"","data_source":"","data_source_param":"","id":572,"is_enabled":true,"is_full_html":false,"lft":4,"parent_id":631,"rgt":7,"root_id":568,"section_context":"","section_id":2,"section_instance":21,"site_id":2,"slug":"container--6","title":"container","updated_at":"2014-09-27T11:37:01.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:01.000Z","data_filter":"","data_source":"","data_source_param":"","id":573,"is_enabled":true,"is_full_html":false,"lft":5,"parent_id":572,"rgt":6,"root_id":568,"section_context":"","section_id":101,"section_instance":2,"site_id":2,"slug":"logged-unlogged-menu","title":"logged\u0026unlogged menu","updated_at":"2014-09-27T11:37:01.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:01.000Z","data_filter":"","data_source":"","data_source_param":"","id":569,"is_enabled":true,"is_full_html":false,"lft":9,"parent_id":630,"rgt":20,"root_id":568,"section_context":"","section_id":2,"section_instance":1,"site_id":2,"slug":"header","title":"Header","updated_at":"2014-09-27T11:37:01.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:01.000Z","data_filter":"","data_source":"","data_source_param":"","id":570,"is_enabled":true,"is_full_html":false,"lft":10,"parent_id":569,"rgt":13,"root_id":568,"section_context":"","section_id":2,"section_instance":20,"site_id":2,"slug":"container000","title":"container000","updated_at":"2014-09-27T11:37:01.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:01.000Z","data_filter":"","data_source":"","data_source_param":"","id":571,"is_enabled":true,"is_full_html":false,"lft":11,"parent_id":570,"rgt":12,"root_id":568,"section_context":"","section_id":97,"section_instance":1,"site_id":2,"slug":"logo","title":"Logo","updated_at":"2014-09-27T11:37:01.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:01.000Z","data_filter":"","data_source":"","data_source_param":"","id":574,"is_enabled":true,"is_full_html":false,"lft":14,"parent_id":569,"rgt":19,"root_id":568,"section_context":"","section_id":2,"section_instance":19,"site_id":2,"slug":"container--7","title":"container","updated_at":"2014-09-27T11:37:01.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:01.000Z","data_filter":"","data_source":"","data_source_param":"","id":575,"is_enabled":true,"is_full_html":false,"lft":15,"parent_id":574,"rgt":16,"root_id":568,"section_context":"","section_id":3,"section_instance":3,"site_id":2,"slug":"main-menu","title":"Main menu","updated_at":"2014-09-27T11:37:01.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-10-07T13:50:38.000Z","data_filter":"","data_source":"","data_source_param":"","id":648,"is_enabled":true,"is_full_html":false,"lft":17,"parent_id":574,"rgt":18,"root_id":568,"section_context":"","section_id":121,"section_instance":1,"site_id":2,"slug":"","title":"Mini cart21","updated_at":"2014-10-07T13:50:38.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:01.000Z","data_filter":"","data_source":"","data_source_param":"","id":577,"is_enabled":true,"is_full_html":false,"lft":22,"parent_id":568,"rgt":149,"root_id":568,"section_context":"","section_id":2,"section_instance":2,"site_id":2,"slug":"content","title":"content","updated_at":"2014-09-27T11:37:01.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:01.000Z","data_filter":"","data_source":"","data_source_param":"","id":578,"is_enabled":true,"is_full_html":false,"lft":23,"parent_id":577,"rgt":40,"root_id":568,"section_context":"","section_id":2,"section_instance":4,"site_id":2,"slug":"lftnav","title":"lftnav","updated_at":"2014-09-27T11:37:01.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:01.000Z","data_filter":"","data_source":"","data_source_param":"","id":579,"is_enabled":true,"is_full_html":false,"lft":24,"parent_id":578,"rgt":29,"root_id":568,"section_context":"","section_id":2,"section_instance":12,"site_id":2,"slug":"container--8","title":"container","updated_at":"2014-09-27T11:37:01.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:01.000Z","data_filter":"","data_source":"","data_source_param":"","id":580,"is_enabled":true,"is_full_html":false,"lft":25,"parent_id":579,"rgt":26,"root_id":568,"section_context":"","section_id":40,"section_instance":3,"site_id":2,"slug":"taxonomy-name","title":"taxonomy name","updated_at":"2014-09-27T11:37:01.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:01.000Z","data_filter":"","data_source":"","data_source_param":"","id":581,"is_enabled":true,"is_full_html":false,"lft":27,"parent_id":579,"rgt":28,"root_id":568,"section_context":"","section_id":6,"section_instance":1,"site_id":2,"slug":"vmenu","title":"vmenu","updated_at":"2014-09-27T11:37:01.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:02.000Z","data_filter":"","data_source":"","data_source_param":"","id":582,"is_enabled":true,"is_full_html":false,"lft":30,"parent_id":578,"rgt":35,"root_id":568,"section_context":"","section_id":2,"section_instance":13,"site_id":2,"slug":"container--9","title":"container","updated_at":"2014-09-27T11:37:02.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:02.000Z","data_filter":"","data_source":"","data_source_param":"","id":583,"is_enabled":true,"is_full_html":false,"lft":31,"parent_id":582,"rgt":32,"root_id":568,"section_context":"","section_id":40,"section_instance":3,"site_id":2,"slug":"taxonomy-name--2","title":"taxonomy name","updated_at":"2014-09-27T11:37:02.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:02.000Z","data_filter":"","data_source":"","data_source_param":"","id":584,"is_enabled":true,"is_full_html":false,"lft":33,"parent_id":582,"rgt":34,"root_id":568,"section_context":"","section_id":6,"section_instance":2,"site_id":2,"slug":"vmenu--2","title":"vmenu","updated_at":"2014-09-27T11:37:02.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-29T12:19:33.000Z","data_filter":"","data_source":"taxon","data_source_param":"","id":645,"is_enabled":true,"is_full_html":false,"lft":36,"parent_id":578,"rgt":39,"root_id":568,"section_context":"","section_id":2,"section_instance":34,"site_id":2,"slug":"","title":"container34","updated_at":"2014-09-29T12:54:28.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-29T12:20:41.000Z","data_filter":"","data_source":"","data_source_param":"","id":646,"is_enabled":true,"is_full_html":false,"lft":37,"parent_id":645,"rgt":38,"root_id":568,"section_context":"","section_id":119,"section_instance":1,"site_id":2,"slug":"","title":"Taxon icon1","updated_at":"2014-09-29T12:54:23.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:02.000Z","data_filter":"","data_source":"","data_source_param":"","id":585,"is_enabled":true,"is_full_html":false,"lft":41,"parent_id":577,"rgt":148,"root_id":568,"section_context":"","section_id":2,"section_instance":5,"site_id":2,"slug":"main-content","title":"main content","updated_at":"2014-09-27T11:37:02.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-28T13:16:05.000Z","data_filter":"","data_source":"","data_source_param":"","id":634,"is_enabled":true,"is_full_html":false,"lft":42,"parent_id":585,"rgt":63,"root_id":568,"section_context":"home","section_id":2,"section_instance":28,"site_id":2,"slug":"","title":"index","updated_at":"2014-09-28T13:32:26.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-28T13:18:18.000Z","data_filter":"","data_source":"","data_source_param":"","id":639,"is_enabled":true,"is_full_html":false,"lft":43,"parent_id":634,"rgt":46,"root_id":568,"section_context":"","section_id":2,"section_instance":32,"site_id":2,"slug":"","title":"slider container","updated_at":"2014-09-28T13:26:40.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-29T12:23:23.000Z","data_filter":"","data_source":"","data_source_param":"","id":647,"is_enabled":true,"is_full_html":false,"lft":44,"parent_id":639,"rgt":45,"root_id":568,"section_context":"","section_id":114,"section_instance":1,"site_id":2,"slug":"","title":"Slider1","updated_at":"2014-09-29T12:23:23.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-28T13:17:01.000Z","data_filter":"","data_source":"","data_source_param":"","id":635,"is_enabled":true,"is_full_html":false,"lft":47,"parent_id":634,"rgt":62,"root_id":568,"section_context":"","section_id":2,"section_instance":29,"site_id":2,"slug":"","title":"products container","updated_at":"2014-09-28T13:27:14.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-28T13:17:09.000Z","data_filter":"","data_source":"taxon","data_source_param":"","id":636,"is_enabled":true,"is_full_html":false,"lft":48,"parent_id":635,"rgt":61,"root_id":568,"section_context":"","section_id":2,"section_instance":30,"site_id":2,"slug":"","title":"taxon data","updated_at":"2014-09-28T13:28:43.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-28T13:17:38.000Z","data_filter":"","data_source":"","data_source_param":"","id":637,"is_enabled":true,"is_full_html":false,"lft":49,"parent_id":636,"rgt":50,"root_id":568,"section_context":"","section_id":50,"section_instance":2,"site_id":2,"slug":"","title":"taxon name2","updated_at":"2014-09-28T13:17:38.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-28T13:17:50.000Z","data_filter":"","data_source":"gpvs","data_source_param":"","id":638,"is_enabled":true,"is_full_html":false,"lft":51,"parent_id":636,"rgt":60,"root_id":568,"section_context":"","section_id":2,"section_instance":31,"site_id":2,"slug":"","title":"product data","updated_at":"2014-09-28T13:28:51.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-28T13:36:48.000Z","data_filter":"","data_source":"","data_source_param":"","id":643,"is_enabled":true,"is_full_html":false,"lft":52,"parent_id":638,"rgt":59,"root_id":568,"section_context":"","section_id":2,"section_instance":33,"site_id":2,"slug":"","title":"container33","updated_at":"2014-09-28T13:36:48.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-28T13:20:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":640,"is_enabled":true,"is_full_html":false,"lft":53,"parent_id":643,"rgt":54,"root_id":568,"section_context":"","section_id":17,"section_instance":2,"site_id":2,"slug":"","title":"product image2","updated_at":"2014-09-28T13:20:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-28T13:20:23.000Z","data_filter":"","data_source":"","data_source_param":"","id":641,"is_enabled":true,"is_full_html":false,"lft":55,"parent_id":643,"rgt":56,"root_id":568,"section_context":"","section_id":30,"section_instance":3,"site_id":2,"slug":"","title":"product price3","updated_at":"2014-09-28T13:20:23.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-28T13:20:32.000Z","data_filter":"","data_source":"","data_source_param":"","id":642,"is_enabled":true,"is_full_html":false,"lft":57,"parent_id":643,"rgt":58,"root_id":568,"section_context":"","section_id":13,"section_instance":3,"site_id":2,"slug":"","title":"product name3","updated_at":"2014-09-28T13:20:32.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:02.000Z","data_filter":"","data_source":"","data_source_param":"","id":586,"is_enabled":true,"is_full_html":false,"lft":64,"parent_id":585,"rgt":75,"root_id":568,"section_context":"list","section_id":2,"section_instance":6,"site_id":2,"slug":"product-list","title":"product list","updated_at":"2014-09-28T13:32:37.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:02.000Z","data_filter":"","data_source":"gpvs","data_source_param":"","id":587,"is_enabled":true,"is_full_html":false,"lft":65,"parent_id":586,"rgt":74,"root_id":568,"section_context":"","section_id":2,"section_instance":8,"site_id":2,"slug":"container--10","title":"container","updated_at":"2014-10-09T09:33:20.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-10-09T09:34:30.000Z","data_filter":"","data_source":"","data_source_param":"","id":650,"is_enabled":true,"is_full_html":false,"lft":66,"parent_id":587,"rgt":73,"root_id":568,"section_context":"","section_id":2,"section_instance":35,"site_id":2,"slug":"","title":"container35","updated_at":"2014-10-09T09:34:30.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:02.000Z","data_filter":"","data_source":"","data_source_param":"","id":588,"is_enabled":true,"is_full_html":false,"lft":67,"parent_id":650,"rgt":68,"root_id":568,"section_context":"","section_id":17,"section_instance":1,"site_id":2,"slug":"product-image","title":"product image","updated_at":"2014-09-27T11:37:02.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:02.000Z","data_filter":"","data_source":"","data_source_param":"","id":590,"is_enabled":true,"is_full_html":false,"lft":69,"parent_id":650,"rgt":70,"root_id":568,"section_context":"","section_id":30,"section_instance":2,"site_id":2,"slug":"product-price","title":"product price","updated_at":"2014-09-27T11:37:02.000Z"}},{"page_layout":{"content_param":1,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:02.000Z","data_filter":"","data_source":"","data_source_param":"","id":589,"is_enabled":true,"is_full_html":false,"lft":71,"parent_id":650,"rgt":72,"root_id":568,"section_context":"","section_id":13,"section_instance":3,"site_id":2,"slug":"product-name","title":"product name","updated_at":"2014-09-27T11:37:02.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:02.000Z","data_filter":"","data_source":"this_product","data_source_param":"","id":591,"is_enabled":true,"is_full_html":false,"lft":76,"parent_id":585,"rgt":103,"root_id":568,"section_context":"detail","section_id":2,"section_instance":7,"site_id":2,"slug":"product-detail","title":"product detail","updated_at":"2014-09-27T11:37:02.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:02.000Z","data_filter":"","data_source":"","data_source_param":"","id":592,"is_enabled":true,"is_full_html":false,"lft":77,"parent_id":591,"rgt":82,"root_id":568,"section_context":"","section_id":2,"section_instance":10,"site_id":2,"slug":"container--11","title":"container","updated_at":"2014-09-27T11:37:02.000Z"}},{"page_layout":{"content_param":2,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:02.000Z","data_filter":"","data_source":"","data_source_param":"","id":593,"is_enabled":true,"is_full_html":false,"lft":78,"parent_id":592,"rgt":79,"root_id":568,"section_context":"","section_id":94,"section_instance":2,"site_id":2,"slug":"image-with-thumbnails","title":"image with thumbnails","updated_at":"2014-09-28T12:14:30.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:02.000Z","data_filter":"","data_source":"","data_source_param":"","id":594,"is_enabled":true,"is_full_html":false,"lft":80,"parent_id":592,"rgt":81,"root_id":568,"section_context":"","section_id":28,"section_instance":2,"site_id":2,"slug":"product_properties","title":"product_properties","updated_at":"2014-09-27T11:37:02.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:02.000Z","data_filter":"","data_source":"","data_source_param":"","id":595,"is_enabled":true,"is_full_html":false,"lft":83,"parent_id":591,"rgt":102,"root_id":568,"section_context":"","section_id":2,"section_instance":9,"site_id":2,"slug":"container--12","title":"container","updated_at":"2014-09-27T11:37:02.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:02.000Z","data_filter":"","data_source":"","data_source_param":"","id":596,"is_enabled":true,"is_full_html":false,"lft":84,"parent_id":595,"rgt":85,"root_id":568,"section_context":"","section_id":13,"section_instance":3,"site_id":2,"slug":"product-name--2","title":"product name","updated_at":"2014-09-27T11:37:02.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:02.000Z","data_filter":"","data_source":"","data_source_param":"","id":597,"is_enabled":true,"is_full_html":false,"lft":86,"parent_id":595,"rgt":87,"root_id":568,"section_context":"","section_id":15,"section_instance":1,"site_id":2,"slug":"product-description","title":"product description","updated_at":"2014-09-27T11:37:02.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:02.000Z","data_filter":"","data_source":"","data_source_param":"","id":598,"is_enabled":true,"is_full_html":false,"lft":88,"parent_id":595,"rgt":101,"root_id":568,"section_context":"","section_id":2,"section_instance":11,"site_id":2,"slug":"container--13","title":"container","updated_at":"2014-09-27T11:37:02.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:02.000Z","data_filter":"","data_source":"","data_source_param":"","id":601,"is_enabled":true,"is_full_html":false,"lft":89,"parent_id":598,"rgt":90,"root_id":568,"section_context":"","section_id":30,"section_instance":1,"site_id":2,"slug":"product-price--2","title":"product price","updated_at":"2014-09-27T11:37:02.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-10-07T14:03:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":649,"is_enabled":true,"is_full_html":false,"lft":91,"parent_id":598,"rgt":92,"root_id":568,"section_context":"","section_id":144,"section_instance":1,"site_id":2,"slug":"","title":"grouped option values selector21","updated_at":"2014-10-07T14:03:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:02.000Z","data_filter":"","data_source":"","data_source_param":"","id":600,"is_enabled":true,"is_full_html":false,"lft":93,"parent_id":598,"rgt":100,"root_id":568,"section_context":"","section_id":2,"section_instance":25,"site_id":2,"slug":"container--14","title":"container","updated_at":"2014-09-27T11:37:02.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:03.000Z","data_filter":"","data_source":"","data_source_param":"","id":602,"is_enabled":true,"is_full_html":false,"lft":94,"parent_id":600,"rgt":99,"root_id":568,"section_context":"","section_id":2,"section_instance":24,"site_id":2,"slug":"container--15","title":"container","updated_at":"2014-09-27T11:37:03.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:03.000Z","data_filter":"","data_source":"","data_source_param":"","id":603,"is_enabled":true,"is_full_html":false,"lft":95,"parent_id":602,"rgt":96,"root_id":568,"section_context":"","section_id":32,"section_instance":2,"site_id":2,"slug":"product-quantity","title":"product quantity","updated_at":"2014-09-27T11:37:03.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:03.000Z","data_filter":"","data_source":"","data_source_param":"","id":604,"is_enabled":true,"is_full_html":false,"lft":97,"parent_id":602,"rgt":98,"root_id":568,"section_context":"","section_id":34,"section_instance":2,"site_id":2,"slug":"product-atc","title":"product atc","updated_at":"2014-09-27T11:37:03.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:03.000Z","data_filter":"","data_source":"","data_source_param":"","id":605,"is_enabled":true,"is_full_html":false,"lft":104,"parent_id":585,"rgt":147,"root_id":568,"section_context":"cart,checkout,thanks,account,signup,login,password","section_id":2,"section_instance":14,"site_id":2,"slug":"other-pages","title":"other pages","updated_at":"2014-09-27T11:37:03.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:03.000Z","data_filter":"","data_source":"","data_source_param":"","id":606,"is_enabled":true,"is_full_html":false,"lft":105,"parent_id":605,"rgt":106,"root_id":568,"section_context":"","section_id":50,"section_instance":1,"site_id":2,"slug":"taxon-name","title":"taxon name","updated_at":"2014-09-27T11:37:03.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:03.000Z","data_filter":"","data_source":"","data_source_param":"","id":607,"is_enabled":true,"is_full_html":false,"lft":107,"parent_id":605,"rgt":112,"root_id":568,"section_context":"cart","section_id":36,"section_instance":1,"site_id":2,"slug":"cart","title":"cart","updated_at":"2014-09-27T11:37:03.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:03.000Z","data_filter":"","data_source":"","data_source_param":"","id":608,"is_enabled":true,"is_full_html":false,"lft":108,"parent_id":607,"rgt":109,"root_id":568,"section_context":"","section_id":42,"section_instance":2,"site_id":2,"slug":"cart-items","title":"cart items","updated_at":"2014-09-27T11:37:03.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:03.000Z","data_filter":"","data_source":"","data_source_param":"","id":609,"is_enabled":true,"is_full_html":false,"lft":110,"parent_id":607,"rgt":111,"root_id":568,"section_context":"","section_id":44,"section_instance":2,"site_id":2,"slug":"order-total-price","title":"order total price","updated_at":"2014-09-27T11:37:03.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:03.000Z","data_filter":"","data_source":"","data_source_param":"","id":610,"is_enabled":true,"is_full_html":false,"lft":113,"parent_id":605,"rgt":118,"root_id":568,"section_context":"checkout","section_id":46,"section_instance":2,"site_id":2,"slug":"checkout","title":"checkout","updated_at":"2014-09-27T11:37:03.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:03.000Z","data_filter":"","data_source":"","data_source_param":"","id":611,"is_enabled":true,"is_full_html":false,"lft":114,"parent_id":610,"rgt":115,"root_id":568,"section_context":"","section_id":69,"section_instance":1,"site_id":2,"slug":"ship-form","title":"ship form","updated_at":"2014-09-27T11:37:03.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:03.000Z","data_filter":"","data_source":"","data_source_param":"","id":612,"is_enabled":true,"is_full_html":false,"lft":116,"parent_id":610,"rgt":117,"root_id":568,"section_context":"","section_id":72,"section_instance":1,"site_id":2,"slug":"payment-form","title":"payment form","updated_at":"2014-09-27T11:37:03.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:03.000Z","data_filter":"","data_source":"","data_source_param":"","id":613,"is_enabled":true,"is_full_html":false,"lft":119,"parent_id":605,"rgt":128,"root_id":568,"section_context":"thanks","section_id":2,"section_instance":18,"site_id":2,"slug":"thanks","title":"thanks","updated_at":"2014-09-27T11:37:03.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:03.000Z","data_filter":"","data_source":"","data_source_param":"","id":614,"is_enabled":true,"is_full_html":false,"lft":120,"parent_id":613,"rgt":125,"root_id":568,"section_context":"","section_id":2,"section_instance":23,"site_id":2,"slug":"container--16","title":"container","updated_at":"2014-09-27T11:37:03.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:03.000Z","data_filter":"","data_source":"","data_source_param":"","id":615,"is_enabled":true,"is_full_html":false,"lft":121,"parent_id":614,"rgt":122,"root_id":568,"section_context":"","section_id":52,"section_instance":1,"site_id":2,"slug":"order-address","title":"order address","updated_at":"2014-09-27T11:37:03.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:03.000Z","data_filter":"","data_source":"","data_source_param":"","id":616,"is_enabled":true,"is_full_html":false,"lft":123,"parent_id":614,"rgt":124,"root_id":568,"section_context":"","section_id":55,"section_instance":1,"site_id":2,"slug":"order-payment","title":"order payment","updated_at":"2014-09-27T11:37:03.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:03.000Z","data_filter":"","data_source":"","data_source_param":"","id":617,"is_enabled":true,"is_full_html":false,"lft":126,"parent_id":613,"rgt":127,"root_id":568,"section_context":"","section_id":58,"section_instance":1,"site_id":2,"slug":"order-items","title":"order items","updated_at":"2014-09-27T11:37:03.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:03.000Z","data_filter":"","data_source":"","data_source_param":"","id":618,"is_enabled":true,"is_full_html":false,"lft":129,"parent_id":605,"rgt":134,"root_id":568,"section_context":"account","section_id":2,"section_instance":17,"site_id":2,"slug":"account","title":"account","updated_at":"2014-09-27T11:37:03.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:03.000Z","data_filter":"","data_source":"","data_source_param":"","id":619,"is_enabled":true,"is_full_html":false,"lft":130,"parent_id":618,"rgt":131,"root_id":568,"section_context":"","section_id":85,"section_instance":1,"site_id":2,"slug":"profile","title":"profile","updated_at":"2014-09-27T11:37:03.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:04.000Z","data_filter":"","data_source":"","data_source_param":"","id":620,"is_enabled":true,"is_full_html":false,"lft":132,"parent_id":618,"rgt":133,"root_id":568,"section_context":"","section_id":82,"section_instance":1,"site_id":2,"slug":"order-list","title":"order list","updated_at":"2014-09-27T11:37:04.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:04.000Z","data_filter":"","data_source":"","data_source_param":"","id":621,"is_enabled":true,"is_full_html":false,"lft":135,"parent_id":605,"rgt":138,"root_id":568,"section_context":"login","section_id":2,"section_instance":15,"site_id":2,"slug":"login","title":"login","updated_at":"2014-09-27T11:37:04.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:04.000Z","data_filter":"","data_source":"","data_source_param":"","id":622,"is_enabled":true,"is_full_html":false,"lft":136,"parent_id":621,"rgt":137,"root_id":568,"section_context":"","section_id":61,"section_instance":1,"site_id":2,"slug":"login-form","title":"login form","updated_at":"2014-09-27T11:37:04.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:04.000Z","data_filter":"","data_source":"","data_source_param":"","id":623,"is_enabled":true,"is_full_html":false,"lft":139,"parent_id":605,"rgt":142,"root_id":568,"section_context":"signup","section_id":2,"section_instance":16,"site_id":2,"slug":"signup","title":"signup","updated_at":"2014-09-27T11:37:04.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:04.000Z","data_filter":"","data_source":"","data_source_param":"","id":624,"is_enabled":true,"is_full_html":false,"lft":140,"parent_id":623,"rgt":141,"root_id":568,"section_context":"","section_id":64,"section_instance":1,"site_id":2,"slug":"sign-up-form","title":"sign up form","updated_at":"2014-09-27T11:37:04.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:04.000Z","data_filter":"","data_source":"","data_source_param":"","id":625,"is_enabled":true,"is_full_html":false,"lft":143,"parent_id":605,"rgt":146,"root_id":568,"section_context":"password","section_id":2,"section_instance":22,"site_id":2,"slug":"password","title":"password","updated_at":"2014-09-27T11:37:04.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:04.000Z","data_filter":"","data_source":"","data_source_param":"","id":626,"is_enabled":true,"is_full_html":false,"lft":144,"parent_id":625,"rgt":145,"root_id":568,"section_context":"","section_id":104,"section_instance":1,"site_id":2,"slug":"password-recover-form","title":"password recover form","updated_at":"2014-09-27T11:37:04.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:04.000Z","data_filter":"","data_source":"","data_source_param":"","id":627,"is_enabled":true,"is_full_html":false,"lft":150,"parent_id":568,"rgt":155,"root_id":568,"section_context":"","section_id":2,"section_instance":3,"site_id":2,"slug":"footer","title":"footer","updated_at":"2014-09-27T11:37:04.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":0,"created_at":"2014-09-27T12:51:38.000Z","data_filter":"","data_source":"","data_source_param":"","id":633,"is_enabled":true,"is_full_html":false,"lft":151,"parent_id":627,"rgt":152,"root_id":568,"section_context":"","section_id":3,"section_instance":3,"site_id":2,"slug":"","title":"hmenu3","updated_at":"2014-09-27T12:51:38.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:04.000Z","data_filter":"","data_source":"","data_source_param":"","id":628,"is_enabled":true,"is_full_html":false,"lft":153,"parent_id":627,"rgt":154,"root_id":568,"section_context":"","section_id":11,"section_instance":1,"site_id":2,"slug":"copyright","title":"copyright","updated_at":"2014-09-27T11:37:04.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":234,"created_at":"2014-09-27T11:37:04.000Z","data_filter":"","data_source":"","data_source_param":"","id":629,"is_enabled":true,"is_full_html":false,"lft":156,"parent_id":568,"rgt":157,"root_id":568,"section_context":"","section_id":90,"section_instance":2,"site_id":2,"slug":"dialog","title":"dialog","updated_at":"2014-09-27T11:37:04.000Z"}}],"template_files":[{"template_file":{"attachment_content_type":"image/png","attachment_file_name":"16-logo.png","attachment_file_size":3653,"attachment_height":null,"attachment_updated_at":"2014-09-29T11:54:03.000Z","attachment_width":null,"created_at":"2014-09-27T11:37:01.000Z","id":50,"theme_id":16}},{"template_file":{"attachment_content_type":"image/jpeg","attachment_file_name":"6a5e31b1jw1doccdf5tdqj.jpg","attachment_file_size":16469,"attachment_height":null,"attachment_updated_at":"2014-09-27T11:37:04.000Z","attachment_width":null,"created_at":"2014-09-27T11:37:01.000Z","id":51,"theme_id":16}},{"template_file":{"attachment_content_type":"image/png","attachment_file_name":"header-bg.png","attachment_file_size":2855,"attachment_height":null,"attachment_updated_at":"2014-09-29T11:55:32.000Z","attachment_width":null,"created_at":"2014-09-29T11:55:32.000Z","id":52,"theme_id":16}},{"template_file":{"attachment_content_type":"image/png","attachment_file_name":"header-bg2.png","attachment_file_size":2866,"attachment_height":null,"attachment_updated_at":"2014-09-29T12:01:33.000Z","attachment_width":null,"created_at":"2014-09-29T12:01:33.000Z","id":53,"theme_id":16}},{"template_file":{"attachment_content_type":"image/png","attachment_file_name":"taxonmy-arrow.png","attachment_file_size":254,"attachment_height":null,"attachment_updated_at":"2014-09-29T12:08:00.000Z","attachment_width":null,"created_at":"2014-09-29T12:08:00.000Z","id":54,"theme_id":16}},{"template_file":{"attachment_content_type":"image/png","attachment_file_name":"taxon-arrow.png","attachment_file_size":248,"attachment_height":null,"attachment_updated_at":"2014-09-29T12:09:11.000Z","attachment_width":null,"created_at":"2014-09-29T12:09:11.000Z","id":55,"theme_id":16}},{"template_file":{"attachment_content_type":"image/png","attachment_file_name":"16-logo-mini.png","attachment_file_size":1807,"attachment_height":null,"attachment_updated_at":"2014-09-29T12:35:17.000Z","attachment_width":null,"created_at":"2014-09-29T12:35:17.000Z","id":56,"theme_id":16}},{"template_file":{"attachment_content_type":"image/jpeg","attachment_file_name":"menu-bg.jpg","attachment_file_size":14805,"attachment_height":null,"attachment_updated_at":"2014-09-29T13:24:03.000Z","attachment_width":null,"created_at":"2014-09-29T13:24:03.000Z","id":57,"theme_id":16}},{"template_file":{"attachment_content_type":"image/png","attachment_file_name":"cart.png","attachment_file_size":325,"attachment_height":null,"attachment_updated_at":"2014-10-09T14:33:05.000Z","attachment_width":null,"created_at":"2014-10-09T14:33:05.000Z","id":58,"theme_id":16}}],"template_releases":[{"template_release":{"created_at":"2014-09-28T13:59:52.000Z","id":23,"name":"just a test","theme_id":16,"updated_at":"2014-09-28T13:59:52.000Z"}}]} \ No newline at end of file diff --git a/spree_theme/db/themes/designs/2_16_1414758979/16-logo-mini.png b/spree_theme/db/themes/designs/2_16_1414758979/16-logo-mini.png deleted file mode 100644 index 23f487bc..00000000 Binary files a/spree_theme/db/themes/designs/2_16_1414758979/16-logo-mini.png and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_16_1414758979/16-logo.png b/spree_theme/db/themes/designs/2_16_1414758979/16-logo.png deleted file mode 100644 index 081ad92c..00000000 Binary files a/spree_theme/db/themes/designs/2_16_1414758979/16-logo.png and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_16_1414758979/6a5e31b1jw1doccdf5tdqj.jpg b/spree_theme/db/themes/designs/2_16_1414758979/6a5e31b1jw1doccdf5tdqj.jpg deleted file mode 100644 index 7fff0f08..00000000 Binary files a/spree_theme/db/themes/designs/2_16_1414758979/6a5e31b1jw1doccdf5tdqj.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_16_1414758979/cart.png b/spree_theme/db/themes/designs/2_16_1414758979/cart.png deleted file mode 100644 index 36cf0018..00000000 Binary files a/spree_theme/db/themes/designs/2_16_1414758979/cart.png and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_16_1414758979/header-bg.png b/spree_theme/db/themes/designs/2_16_1414758979/header-bg.png deleted file mode 100644 index 3407142d..00000000 Binary files a/spree_theme/db/themes/designs/2_16_1414758979/header-bg.png and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_16_1414758979/header-bg2.png b/spree_theme/db/themes/designs/2_16_1414758979/header-bg2.png deleted file mode 100644 index bbbd3eed..00000000 Binary files a/spree_theme/db/themes/designs/2_16_1414758979/header-bg2.png and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_16_1414758979/menu-bg.jpg b/spree_theme/db/themes/designs/2_16_1414758979/menu-bg.jpg deleted file mode 100644 index edeb8b62..00000000 Binary files a/spree_theme/db/themes/designs/2_16_1414758979/menu-bg.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_16_1414758979/taxon-arrow.png b/spree_theme/db/themes/designs/2_16_1414758979/taxon-arrow.png deleted file mode 100644 index fcdfd3f6..00000000 Binary files a/spree_theme/db/themes/designs/2_16_1414758979/taxon-arrow.png and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_16_1414758979/taxonmy-arrow.png b/spree_theme/db/themes/designs/2_16_1414758979/taxonmy-arrow.png deleted file mode 100644 index 547928c8..00000000 Binary files a/spree_theme/db/themes/designs/2_16_1414758979/taxonmy-arrow.png and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_1_1406937516.yml b/spree_theme/db/themes/designs/2_1_1406937516.yml deleted file mode 100644 index e7f76600..00000000 --- a/spree_theme/db/themes/designs/2_1_1406937516.yml +++ /dev/null @@ -1 +0,0 @@ -{"template":{"assigned_resource_ids":{"86":{"spree/template_file":[1]},"88":{"spree/taxon":[0,0]},"90":{"spree/taxon":[0]},"94":{"spree/taxon":[1]},"97":{"spree/taxon":[2]}},"created_at":"2013-04-08T13:27:02.000Z","id":1,"page_layout_root_id":83,"release_id":8,"site_id":2,"slug":"","title":"\u793a\u4f8b\u6a21\u677f","updated_at":"2014-07-31T14:19:41.000Z"},"param_values":[{"computed_pvalue":null,"created_at":"2013-04-08T13:27:02.000Z","id":2134,"page_layout_id":84,"page_layout_root_id":83,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:02.000Z","id":2135,"page_layout_id":84,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:03.000Z","id":2136,"page_layout_id":84,"page_layout_root_id":83,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 20px auto"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:03.000Z","id":2137,"page_layout_id":84,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:03.000Z","id":2138,"page_layout_id":84,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:04.000Z","id":2139,"page_layout_id":92,"page_layout_root_id":83,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:21.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:04.000Z","id":2140,"page_layout_id":92,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:04.000Z","id":2141,"page_layout_id":92,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:04.000Z","id":2142,"page_layout_id":92,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0","2unset":"1","2":"background-color:yellow"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:04.000Z","id":2143,"page_layout_id":92,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:05.000Z","id":2144,"page_layout_id":142,"page_layout_root_id":83,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:05.000Z","id":2145,"page_layout_id":142,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:05.000Z","id":2146,"page_layout_id":142,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:05.000Z","id":2147,"page_layout_id":142,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0","2unset":"0","2":"background-color:#F5F5F5"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:05.000Z","id":2148,"page_layout_id":142,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:05.000Z","id":2149,"page_layout_id":93,"page_layout_root_id":83,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:05.000Z","id":2150,"page_layout_id":93,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:200px"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:05.000Z","id":2151,"page_layout_id":93,"page_layout_root_id":83,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto 10px auto 10px"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:05.000Z","id":2152,"page_layout_id":93,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0","2unset":"1","2":"background-color:#FFF8ED"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:06.000Z","id":2153,"page_layout_id":93,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0","49unset":"1","49":"color:black"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:06.000Z","id":2154,"page_layout_id":100,"page_layout_root_id":83,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:06.000Z","id":2155,"page_layout_id":100,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:750px"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:06.000Z","id":2156,"page_layout_id":100,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:06.000Z","id":2157,"page_layout_id":100,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:06.000Z","id":2158,"page_layout_id":100,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:07.000Z","id":2159,"page_layout_id":101,"page_layout_root_id":83,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:07.000Z","id":2160,"page_layout_id":101,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:07.000Z","id":2161,"page_layout_id":101,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:07.000Z","id":2162,"page_layout_id":101,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:07.000Z","id":2163,"page_layout_id":101,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:07.000Z","id":2164,"page_layout_id":106,"page_layout_root_id":83,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:08.000Z","id":2165,"page_layout_id":106,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"1","21":"width:200px"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:08.000Z","id":2166,"page_layout_id":106,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:08.000Z","id":2167,"page_layout_id":106,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:08.000Z","id":2168,"page_layout_id":106,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:08.000Z","id":2169,"page_layout_id":103,"page_layout_root_id":83,"pvalue":{},"section_param_id":65,"theme_id":1,"unset":null,"updated_at":"2013-04-08T13:27:08.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:09.000Z","id":2170,"page_layout_id":103,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111","15unset":"0","15":"height:110px","21unset":"0","21":"width:150px"},"section_param_id":66,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:09.000Z","id":2171,"page_layout_id":103,"page_layout_root_id":83,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB","32unset":"0","32":"padding:5px 0px 5px 0px","15unset":"0","15":"height:98px"},"section_param_id":67,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:09.000Z","id":2172,"page_layout_id":103,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":68,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:09.000Z","id":2173,"page_layout_id":103,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111","53unset":"0","53":"text-align:center"},"section_param_id":69,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:10.000Z","id":2174,"page_layout_id":112,"page_layout_root_id":83,"pvalue":{},"section_param_id":60,"theme_id":1,"unset":null,"updated_at":"2013-04-08T13:27:10.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:10.000Z","id":2175,"page_layout_id":112,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":61,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:10.000Z","id":2176,"page_layout_id":112,"page_layout_root_id":83,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:10px 0px 10px 0px"},"section_param_id":62,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:10.000Z","id":2177,"page_layout_id":112,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":63,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:10.000Z","id":2178,"page_layout_id":112,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111","24unset":"0","24":"font-size:90%"},"section_param_id":64,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:22.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:11.000Z","id":2179,"page_layout_id":143,"page_layout_root_id":83,"pvalue":{},"section_param_id":50,"theme_id":1,"unset":null,"updated_at":"2013-04-08T13:27:11.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:11.000Z","id":2180,"page_layout_id":143,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":51,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:11.000Z","id":2181,"page_layout_id":143,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":52,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:11.000Z","id":2182,"page_layout_id":143,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":53,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:11.000Z","id":2183,"page_layout_id":143,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":54,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T14:05:42.000Z","id":2184,"page_layout_id":102,"page_layout_root_id":83,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:both"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T14:05:42.000Z","id":2185,"page_layout_id":102,"page_layout_root_id":83,"pvalue":{"15":"height:160px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:160px"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T14:05:42.000Z","id":2186,"page_layout_id":102,"page_layout_root_id":83,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 20px auto","15unset":"1","15":"height:140px","32unset":"1","32":"padding:0px 0px 0px 0px","8unset":"1","8":"border-width:0px 0px 0px 0px"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T14:05:42.000Z","id":2187,"page_layout_id":102,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T14:05:42.000Z","id":2188,"page_layout_id":102,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-09T13:12:32.000Z","id":2189,"page_layout_id":110,"page_layout_root_id":83,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-09T13:12:32.000Z","id":2190,"page_layout_id":110,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:350px"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-09T13:12:32.000Z","id":2191,"page_layout_id":110,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-09T13:12:32.000Z","id":2192,"page_layout_id":110,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-09T13:12:32.000Z","id":2193,"page_layout_id":110,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-12T13:44:05.000Z","id":2194,"page_layout_id":107,"page_layout_root_id":83,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-12T13:44:05.000Z","id":2195,"page_layout_id":107,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-12T13:44:05.000Z","id":2196,"page_layout_id":107,"page_layout_root_id":83,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto 10px auto auto"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-12T13:44:05.000Z","id":2197,"page_layout_id":107,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-12T13:44:05.000Z","id":2198,"page_layout_id":107,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-13T01:32:40.000Z","id":2199,"page_layout_id":116,"page_layout_root_id":83,"pvalue":{},"section_param_id":110,"theme_id":1,"unset":null,"updated_at":"2014-07-30T23:08:13.000Z"},{"computed_pvalue":null,"created_at":"2013-04-13T01:32:40.000Z","id":2200,"page_layout_id":116,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":111,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-13T01:32:40.000Z","id":2201,"page_layout_id":116,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":112,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-13T01:32:40.000Z","id":2202,"page_layout_id":116,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":113,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-13T01:32:40.000Z","id":2203,"page_layout_id":116,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111","27unset":"0","27":"font-weight:bolder","24unset":"0","24":"font-size:110%","49unset":"0","49":"color:#00ADEE"},"section_param_id":114,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-13T02:35:25.000Z","id":2204,"page_layout_id":113,"page_layout_root_id":83,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:both"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-13T02:35:25.000Z","id":2205,"page_layout_id":113,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"1","21unset":"0","21":"width:450px"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-13T02:35:25.000Z","id":2206,"page_layout_id":113,"page_layout_root_id":83,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:10px auto auto auto"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-13T02:35:25.000Z","id":2207,"page_layout_id":113,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-13T02:35:26.000Z","id":2208,"page_layout_id":113,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-16T14:20:10.000Z","id":2209,"page_layout_id":122,"page_layout_root_id":83,"pvalue":{},"section_param_id":125,"theme_id":1,"unset":null,"updated_at":"2013-04-16T14:20:10.000Z"},{"computed_pvalue":null,"created_at":"2013-04-16T14:20:10.000Z","id":2210,"page_layout_id":122,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111","21unset":"1","21":"width:670px"},"section_param_id":126,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-16T14:20:10.000Z","id":2211,"page_layout_id":122,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":127,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-16T14:20:10.000Z","id":2212,"page_layout_id":122,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":128,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-16T14:20:10.000Z","id":2213,"page_layout_id":122,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111","53unset":"1","53":"text-align:right"},"section_param_id":129,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-19T13:03:09.000Z","id":2214,"page_layout_id":105,"page_layout_root_id":83,"pvalue":{},"section_param_id":110,"theme_id":1,"unset":null,"updated_at":"2013-04-19T13:03:09.000Z"},{"computed_pvalue":null,"created_at":"2013-04-19T13:03:10.000Z","id":2215,"page_layout_id":105,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111","21unset":"0","21":"width:150px"},"section_param_id":111,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-19T13:03:10.000Z","id":2216,"page_layout_id":105,"page_layout_root_id":83,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:5px 0px 0px 0px","31unset":"0","31":"margin:auto auto 10px auto"},"section_param_id":112,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-19T13:03:10.000Z","id":2217,"page_layout_id":105,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":113,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-04-19T13:03:10.000Z","id":2218,"page_layout_id":105,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111","53unset":"0","53":"text-align:center","49unset":"0","49":"color:#00ADEE","27unset":"0","27":"font-weight:bold"},"section_param_id":114,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:54.000Z","id":2219,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{},"section_param_id":27,"theme_id":1,"unset":null,"updated_at":"2013-10-02T10:20:54.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:54.000Z","id":2220,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":28,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:54.000Z","id":2221,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 0px 0px 20px"},"section_param_id":29,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:54.000Z","id":2222,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":30,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:23.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:54.000Z","id":2223,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":31,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:54.000Z","id":2224,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{"32unset":"0","32":"padding:5px 0px 0px 0px"},"section_param_id":32,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:54.000Z","id":2225,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{"54unset":"0","54":"text-decoration:none","24unset":"0","24":"font-size:90%","49unset":"0","49":"color:#00ADEE"},"section_param_id":33,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:54.000Z","id":2226,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{},"section_param_id":34,"theme_id":1,"unset":null,"updated_at":"2013-10-02T10:20:54.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:54.000Z","id":2227,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{},"section_param_id":35,"theme_id":1,"unset":null,"updated_at":"2013-10-02T10:20:54.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:54.000Z","id":2228,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{},"section_param_id":36,"theme_id":1,"unset":null,"updated_at":"2013-10-02T10:20:54.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:55.000Z","id":2229,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{},"section_param_id":37,"theme_id":1,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:55.000Z","id":2230,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{},"section_param_id":38,"theme_id":1,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:55.000Z","id":2231,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{},"section_param_id":39,"theme_id":1,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:55.000Z","id":2232,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{},"section_param_id":40,"theme_id":1,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:55.000Z","id":2233,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{},"section_param_id":41,"theme_id":1,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:55.000Z","id":2234,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{},"section_param_id":42,"theme_id":1,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:36:48.000Z","id":2235,"page_layout_id":94,"page_layout_root_id":83,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:36:48.000Z","id":2236,"page_layout_id":94,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:36:48.000Z","id":2237,"page_layout_id":94,"page_layout_root_id":83,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 20px auto"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:36:48.000Z","id":2238,"page_layout_id":94,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:36:48.000Z","id":2239,"page_layout_id":94,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:37:55.000Z","id":2240,"page_layout_id":97,"page_layout_root_id":83,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:37:55.000Z","id":2241,"page_layout_id":97,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:37:55.000Z","id":2242,"page_layout_id":97,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:37:56.000Z","id":2243,"page_layout_id":97,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:37:56.000Z","id":2244,"page_layout_id":97,"page_layout_root_id":83,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:16.000Z","id":2245,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{},"section_param_id":27,"theme_id":1,"unset":null,"updated_at":"2013-10-05T00:38:16.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:16.000Z","id":2246,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":28,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:16.000Z","id":2247,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto 20px","32unset":"0","32":"padding:0px 0px 0px 20px"},"section_param_id":29,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:16.000Z","id":2248,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":30,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:16.000Z","id":2249,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":31,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":2250,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{"32unset":"0","32":"padding:5px 0px 0px 0px"},"section_param_id":32,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":2251,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{"24unset":"0","24":"font-size:90%","49unset":"0","49":"color:#00ADEE","54unset":"0","54":"text-decoration:none"},"section_param_id":33,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":2252,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{},"section_param_id":34,"theme_id":1,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":2253,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{},"section_param_id":35,"theme_id":1,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":2254,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{},"section_param_id":36,"theme_id":1,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":2255,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{},"section_param_id":37,"theme_id":1,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":2256,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{},"section_param_id":38,"theme_id":1,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":2257,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{},"section_param_id":39,"theme_id":1,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":2258,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{},"section_param_id":40,"theme_id":1,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":2259,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{},"section_param_id":41,"theme_id":1,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":2260,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{},"section_param_id":42,"theme_id":1,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:20:58.000Z","id":2261,"page_layout_id":126,"page_layout_root_id":83,"pvalue":{},"section_param_id":210,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:20:58.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:20:58.000Z","id":2262,"page_layout_id":126,"page_layout_root_id":83,"pvalue":{"21unset":"0","21":"width:360px"},"section_param_id":211,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:20:58.000Z","id":2263,"page_layout_id":126,"page_layout_root_id":83,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:10px 10px 10px 10px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB"},"section_param_id":212,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:20:58.000Z","id":2264,"page_layout_id":126,"page_layout_root_id":83,"pvalue":{},"section_param_id":213,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:20:58.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:20:59.000Z","id":2265,"page_layout_id":126,"page_layout_root_id":83,"pvalue":{},"section_param_id":214,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:20:59.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:20:59.000Z","id":2266,"page_layout_id":126,"page_layout_root_id":83,"pvalue":{},"section_param_id":215,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:20:59.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:20:59.000Z","id":2267,"page_layout_id":126,"page_layout_root_id":83,"pvalue":{"2unset":"1","2":"background-color:#000000"},"section_param_id":216,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:20:59.000Z","id":2268,"page_layout_id":126,"page_layout_root_id":83,"pvalue":{"49unset":"0","49":"color:#00ADEE","53unset":"0","53":"text-align:center"},"section_param_id":217,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:21:08.000Z","id":2269,"page_layout_id":127,"page_layout_root_id":83,"pvalue":{},"section_param_id":218,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:21:08.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:21:08.000Z","id":2270,"page_layout_id":127,"page_layout_root_id":83,"pvalue":{"21unset":"0","21":"width:360px"},"section_param_id":219,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:21:08.000Z","id":2271,"page_layout_id":127,"page_layout_root_id":83,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:10px 20px 10px 20px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB","31unset":"0","31":"margin:10px auto 10px auto"},"section_param_id":220,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:21:09.000Z","id":2272,"page_layout_id":127,"page_layout_root_id":83,"pvalue":{},"section_param_id":221,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:21:09.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:21:09.000Z","id":2273,"page_layout_id":127,"page_layout_root_id":83,"pvalue":{},"section_param_id":222,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:21:09.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:21:09.000Z","id":2274,"page_layout_id":127,"page_layout_root_id":83,"pvalue":{},"section_param_id":223,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:21:09.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:21:09.000Z","id":2275,"page_layout_id":127,"page_layout_root_id":83,"pvalue":{},"section_param_id":224,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:21:09.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:21:09.000Z","id":2276,"page_layout_id":127,"page_layout_root_id":83,"pvalue":{"49unset":"0","49":"color:#00ADEE","53unset":"0","53":"text-align:center"},"section_param_id":225,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:35:02.000Z","id":2277,"page_layout_id":120,"page_layout_root_id":83,"pvalue":{},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:35:02.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:35:02.000Z","id":2278,"page_layout_id":120,"page_layout_root_id":83,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:35:02.000Z","id":2279,"page_layout_id":120,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:35:02.000Z","id":2280,"page_layout_id":120,"page_layout_root_id":83,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:35:02.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:35:02.000Z","id":2281,"page_layout_id":120,"page_layout_root_id":83,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:35:02.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:36:17.000Z","id":2282,"page_layout_id":121,"page_layout_root_id":83,"pvalue":{},"section_param_id":160,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:36:17.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:36:17.000Z","id":2283,"page_layout_id":121,"page_layout_root_id":83,"pvalue":{},"section_param_id":161,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:36:17.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:36:17.000Z","id":2284,"page_layout_id":121,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":162,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:36:17.000Z","id":2285,"page_layout_id":121,"page_layout_root_id":83,"pvalue":{},"section_param_id":163,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:36:17.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:36:18.000Z","id":2286,"page_layout_id":121,"page_layout_root_id":83,"pvalue":{"24unset":"0","24":"font-size:150%"},"section_param_id":164,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:21.000Z","id":2287,"page_layout_id":130,"page_layout_root_id":83,"pvalue":{},"section_param_id":165,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:21.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:21.000Z","id":2288,"page_layout_id":130,"page_layout_root_id":83,"pvalue":{},"section_param_id":166,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:21.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:21.000Z","id":2289,"page_layout_id":130,"page_layout_root_id":83,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto 10px auto 10px"},"section_param_id":167,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:21.000Z","id":2290,"page_layout_id":130,"page_layout_root_id":83,"pvalue":{},"section_param_id":168,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:21.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:21.000Z","id":2291,"page_layout_id":130,"page_layout_root_id":83,"pvalue":{},"section_param_id":169,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:21.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:21.000Z","id":2292,"page_layout_id":130,"page_layout_root_id":83,"pvalue":{"31unset":"0","31":"margin:auto auto 10px auto","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent","32unset":"0","32":"padding:5px 0px 5px 0px"},"section_param_id":170,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:22.000Z","id":2293,"page_layout_id":130,"page_layout_root_id":83,"pvalue":{},"section_param_id":171,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:22.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:22.000Z","id":2294,"page_layout_id":130,"page_layout_root_id":83,"pvalue":{"27":"font-weight:bold","54unset":"1","54":"text-decoration:underline","53unset":"1","53":"text-align:left"},"section_param_id":172,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:30.000Z","id":2295,"page_layout_id":131,"page_layout_root_id":83,"pvalue":{},"section_param_id":173,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:30.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:31.000Z","id":2296,"page_layout_id":131,"page_layout_root_id":83,"pvalue":{"21unset":"0","21":"width:300px"},"section_param_id":174,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:31.000Z","id":2297,"page_layout_id":131,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":175,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:31.000Z","id":2298,"page_layout_id":131,"page_layout_root_id":83,"pvalue":{},"section_param_id":176,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:31.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:31.000Z","id":2299,"page_layout_id":131,"page_layout_root_id":83,"pvalue":{},"section_param_id":177,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:31.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:31.000Z","id":2300,"page_layout_id":131,"page_layout_root_id":83,"pvalue":{"31unset":"0","31":"margin:auto auto 10px auto","32unset":"0","32":"padding:5px 0px 5px 0px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent"},"section_param_id":178,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:24.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:31.000Z","id":2301,"page_layout_id":131,"page_layout_root_id":83,"pvalue":{},"section_param_id":179,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:31.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:31.000Z","id":2302,"page_layout_id":131,"page_layout_root_id":83,"pvalue":{"27":"font-weight:bold","54unset":"1","54":"text-decoration:underline"},"section_param_id":180,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:40.000Z","id":2303,"page_layout_id":132,"page_layout_root_id":83,"pvalue":{},"section_param_id":181,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:40.000Z","id":2304,"page_layout_id":132,"page_layout_root_id":83,"pvalue":{},"section_param_id":182,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:40.000Z","id":2305,"page_layout_id":132,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":183,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:40.000Z","id":2306,"page_layout_id":132,"page_layout_root_id":83,"pvalue":{},"section_param_id":184,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:40.000Z","id":2307,"page_layout_id":132,"page_layout_root_id":83,"pvalue":{},"section_param_id":185,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:40.000Z","id":2308,"page_layout_id":132,"page_layout_root_id":83,"pvalue":{},"section_param_id":186,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:40.000Z","id":2309,"page_layout_id":132,"page_layout_root_id":83,"pvalue":{},"section_param_id":187,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:40.000Z","id":2310,"page_layout_id":132,"page_layout_root_id":83,"pvalue":{"27":"font-weight:bold"},"section_param_id":188,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:51.000Z","id":2311,"page_layout_id":134,"page_layout_root_id":83,"pvalue":{},"section_param_id":268,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:51.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:51.000Z","id":2312,"page_layout_id":134,"page_layout_root_id":83,"pvalue":{},"section_param_id":269,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:51.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:52.000Z","id":2313,"page_layout_id":134,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":270,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:52.000Z","id":2314,"page_layout_id":134,"page_layout_root_id":83,"pvalue":{},"section_param_id":271,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:52.000Z","id":2315,"page_layout_id":134,"page_layout_root_id":83,"pvalue":{},"section_param_id":272,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:52.000Z","id":2316,"page_layout_id":134,"page_layout_root_id":83,"pvalue":{},"section_param_id":273,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:52.000Z","id":2317,"page_layout_id":134,"page_layout_root_id":83,"pvalue":{},"section_param_id":274,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:52.000Z","id":2318,"page_layout_id":134,"page_layout_root_id":83,"pvalue":{},"section_param_id":275,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:38:01.000Z","id":2319,"page_layout_id":135,"page_layout_root_id":83,"pvalue":{},"section_param_id":260,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:38:01.000Z","id":2320,"page_layout_id":135,"page_layout_root_id":83,"pvalue":{},"section_param_id":261,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:38:01.000Z","id":2321,"page_layout_id":135,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":262,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:38:01.000Z","id":2322,"page_layout_id":135,"page_layout_root_id":83,"pvalue":{},"section_param_id":263,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:38:01.000Z","id":2323,"page_layout_id":135,"page_layout_root_id":83,"pvalue":{},"section_param_id":264,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:38:01.000Z","id":2324,"page_layout_id":135,"page_layout_root_id":83,"pvalue":{},"section_param_id":265,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:38:01.000Z","id":2325,"page_layout_id":135,"page_layout_root_id":83,"pvalue":{},"section_param_id":266,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:38:02.000Z","id":2326,"page_layout_id":135,"page_layout_root_id":83,"pvalue":{},"section_param_id":267,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:38:02.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:01.000Z","id":2327,"page_layout_id":136,"page_layout_root_id":83,"pvalue":{},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:01.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:01.000Z","id":2328,"page_layout_id":136,"page_layout_root_id":83,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:01.000Z","id":2329,"page_layout_id":136,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:01.000Z","id":2330,"page_layout_id":136,"page_layout_root_id":83,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:01.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:01.000Z","id":2331,"page_layout_id":136,"page_layout_root_id":83,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:01.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:32.000Z","id":2332,"page_layout_id":138,"page_layout_root_id":83,"pvalue":{},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:32.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:33.000Z","id":2333,"page_layout_id":138,"page_layout_root_id":83,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:33.000Z","id":2334,"page_layout_id":138,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:33.000Z","id":2335,"page_layout_id":138,"page_layout_root_id":83,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:33.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:33.000Z","id":2336,"page_layout_id":138,"page_layout_root_id":83,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:33.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:53.000Z","id":2337,"page_layout_id":137,"page_layout_root_id":83,"pvalue":{},"section_param_id":189,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:53.000Z","id":2338,"page_layout_id":137,"page_layout_root_id":83,"pvalue":{},"section_param_id":190,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:53.000Z","id":2339,"page_layout_id":137,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":191,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:53.000Z","id":2340,"page_layout_id":137,"page_layout_root_id":83,"pvalue":{},"section_param_id":192,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:53.000Z","id":2341,"page_layout_id":137,"page_layout_root_id":83,"pvalue":{},"section_param_id":193,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:53.000Z","id":2342,"page_layout_id":137,"page_layout_root_id":83,"pvalue":{},"section_param_id":194,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:53.000Z","id":2343,"page_layout_id":137,"page_layout_root_id":83,"pvalue":{},"section_param_id":195,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:53.000Z","id":2344,"page_layout_id":137,"page_layout_root_id":83,"pvalue":{},"section_param_id":196,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:40:04.000Z","id":2345,"page_layout_id":139,"page_layout_root_id":83,"pvalue":{},"section_param_id":197,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:40:04.000Z","id":2346,"page_layout_id":139,"page_layout_root_id":83,"pvalue":{},"section_param_id":198,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:40:04.000Z","id":2347,"page_layout_id":139,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":199,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:40:04.000Z","id":2348,"page_layout_id":139,"page_layout_root_id":83,"pvalue":{},"section_param_id":200,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:40:04.000Z","id":2349,"page_layout_id":139,"page_layout_root_id":83,"pvalue":{},"section_param_id":201,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:40:04.000Z","id":2350,"page_layout_id":139,"page_layout_root_id":83,"pvalue":{},"section_param_id":202,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:40:04.000Z","id":2351,"page_layout_id":139,"page_layout_root_id":83,"pvalue":{},"section_param_id":203,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:40:04.000Z","id":2352,"page_layout_id":139,"page_layout_root_id":83,"pvalue":{},"section_param_id":204,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:50:08.000Z","id":2353,"page_layout_id":133,"page_layout_root_id":83,"pvalue":{},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:50:08.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:50:08.000Z","id":2354,"page_layout_id":133,"page_layout_root_id":83,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:50:08.000Z","id":2355,"page_layout_id":133,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:50:08.000Z","id":2356,"page_layout_id":133,"page_layout_root_id":83,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:50:08.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:50:09.000Z","id":2357,"page_layout_id":133,"page_layout_root_id":83,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:50:09.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:50:37.000Z","id":2358,"page_layout_id":128,"page_layout_root_id":83,"pvalue":{},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:50:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:50:37.000Z","id":2359,"page_layout_id":128,"page_layout_root_id":83,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:50:37.000Z","id":2360,"page_layout_id":128,"page_layout_root_id":83,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 0px 0px 0px"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:50:37.000Z","id":2361,"page_layout_id":128,"page_layout_root_id":83,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:50:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:50:37.000Z","id":2362,"page_layout_id":128,"page_layout_root_id":83,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:50:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:07.000Z","id":2363,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{},"section_param_id":11,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:07.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:07.000Z","id":2364,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{"21unset":"1","21":"width:960px"},"section_param_id":12,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":2365,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":13,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":2366,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{"2unset":"1","2":"background-color:lime"},"section_param_id":14,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":2367,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{"27unset":"0","27":"font-weight:bold","49unset":"1","49":"color:#00ADEE"},"section_param_id":15,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":2368,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{},"section_param_id":16,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":2369,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{"54unset":"0","54":"text-decoration:none","49unset":"0","49":"color:#00ADEE"},"section_param_id":17,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":2370,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{},"section_param_id":18,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":2371,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{},"section_param_id":19,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":2372,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{},"section_param_id":20,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":2373,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{},"section_param_id":21,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":2374,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{},"section_param_id":22,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":2375,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{},"section_param_id":23,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:09.000Z","id":2376,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{},"section_param_id":24,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:09.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:09.000Z","id":2377,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{},"section_param_id":25,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:09.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:09.000Z","id":2378,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{},"section_param_id":26,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:09.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:08.000Z","id":2379,"page_layout_id":95,"page_layout_root_id":83,"pvalue":{},"section_param_id":135,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:08.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:08.000Z","id":2380,"page_layout_id":95,"page_layout_root_id":83,"pvalue":{"21unset":"0","21":"width:160px"},"section_param_id":136,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:09.000Z","id":2381,"page_layout_id":95,"page_layout_root_id":83,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent","32unset":"0","32":"padding:0px 0px 5px 0px"},"section_param_id":137,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:25.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:09.000Z","id":2382,"page_layout_id":95,"page_layout_root_id":83,"pvalue":{},"section_param_id":138,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:09.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:09.000Z","id":2383,"page_layout_id":95,"page_layout_root_id":83,"pvalue":{"27unset":"0","27":"font-weight:bold"},"section_param_id":139,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:09.000Z","id":2384,"page_layout_id":98,"page_layout_root_id":83,"pvalue":{},"section_param_id":135,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:09.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:09.000Z","id":2385,"page_layout_id":98,"page_layout_root_id":83,"pvalue":{"21unset":"0","21":"width:160px"},"section_param_id":136,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:09.000Z","id":2386,"page_layout_id":98,"page_layout_root_id":83,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 0px 5px 0px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent"},"section_param_id":137,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:09.000Z","id":2387,"page_layout_id":98,"page_layout_root_id":83,"pvalue":{},"section_param_id":138,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:09.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:09.000Z","id":2388,"page_layout_id":98,"page_layout_root_id":83,"pvalue":{"27unset":"0","27":"font-weight:bold"},"section_param_id":139,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:15.000Z","id":2389,"page_layout_id":123,"page_layout_root_id":83,"pvalue":{},"section_param_id":140,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:15.000Z","id":2390,"page_layout_id":123,"page_layout_root_id":83,"pvalue":{},"section_param_id":141,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:15.000Z","id":2391,"page_layout_id":123,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":142,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:15.000Z","id":2392,"page_layout_id":123,"page_layout_root_id":83,"pvalue":{},"section_param_id":143,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:15.000Z","id":2393,"page_layout_id":123,"page_layout_root_id":83,"pvalue":{},"section_param_id":144,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:15.000Z","id":2394,"page_layout_id":124,"page_layout_root_id":83,"pvalue":{},"section_param_id":145,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:16.000Z","id":2395,"page_layout_id":124,"page_layout_root_id":83,"pvalue":{"101unset":"0","101":"float:right"},"section_param_id":146,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:16.000Z","id":2396,"page_layout_id":124,"page_layout_root_id":83,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:10px auto auto auto"},"section_param_id":147,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:16.000Z","id":2397,"page_layout_id":124,"page_layout_root_id":83,"pvalue":{},"section_param_id":148,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:16.000Z","id":2398,"page_layout_id":124,"page_layout_root_id":83,"pvalue":{},"section_param_id":149,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:16.000Z","id":2399,"page_layout_id":125,"page_layout_root_id":83,"pvalue":{},"section_param_id":150,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:16.000Z","id":2400,"page_layout_id":125,"page_layout_root_id":83,"pvalue":{"21unset":"1","21":"width:600px"},"section_param_id":151,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:16.000Z","id":2401,"page_layout_id":125,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":152,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:16.000Z","id":2402,"page_layout_id":125,"page_layout_root_id":83,"pvalue":{},"section_param_id":153,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:16.000Z","id":2403,"page_layout_id":125,"page_layout_root_id":83,"pvalue":{},"section_param_id":154,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"},{"computed_pvalue":null,"created_at":"2013-11-29T02:49:56.000Z","id":2404,"page_layout_id":86,"page_layout_root_id":83,"pvalue":{},"section_param_id":323,"theme_id":1,"unset":null,"updated_at":"2013-11-29T02:49:56.000Z"},{"computed_pvalue":null,"created_at":"2013-11-29T02:49:56.000Z","id":2405,"page_layout_id":86,"page_layout_root_id":83,"pvalue":{"21unset":"1","21":"width:220px","101unset":"1","101":"float:none"},"section_param_id":324,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-11-29T02:49:57.000Z","id":2406,"page_layout_id":86,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":325,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-11-29T02:49:57.000Z","id":2407,"page_layout_id":86,"page_layout_root_id":83,"pvalue":{},"section_param_id":326,"theme_id":1,"unset":null,"updated_at":"2013-11-29T02:49:57.000Z"},{"computed_pvalue":null,"created_at":"2013-11-29T02:49:57.000Z","id":2408,"page_layout_id":86,"page_layout_root_id":83,"pvalue":{},"section_param_id":327,"theme_id":1,"unset":null,"updated_at":"2013-11-29T02:49:57.000Z"},{"computed_pvalue":null,"created_at":"2013-12-03T08:14:45.000Z","id":2409,"page_layout_id":89,"page_layout_root_id":83,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-12-03T08:14:45.000Z","id":2410,"page_layout_id":89,"page_layout_root_id":83,"pvalue":{"101":"float:left","101unset":"1","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-12-03T08:14:46.000Z","id":2411,"page_layout_id":89,"page_layout_root_id":83,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 0px 6px 0px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent","31unset":"0","31":"margin:auto 10px auto 10px"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-12-03T08:14:46.000Z","id":2412,"page_layout_id":89,"page_layout_root_id":83,"pvalue":{"2unset":"1","2":"background-color:green","3unset":"1","3":"background-image:pattern-1.png"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-12-03T08:14:46.000Z","id":2413,"page_layout_id":89,"page_layout_root_id":83,"pvalue":{"49unset":"1","49":"color:teal","25unset":"1","25":"font-style:normal","24unset":"1","24":"font-size:0%","27unset":"1","27":"font-weight:bold"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-12-03T08:15:21.000Z","id":2414,"page_layout_id":91,"page_layout_root_id":83,"pvalue":{},"section_param_id":328,"theme_id":1,"unset":null,"updated_at":"2013-12-03T08:15:21.000Z"},{"computed_pvalue":null,"created_at":"2013-12-03T08:15:21.000Z","id":2415,"page_layout_id":91,"page_layout_root_id":83,"pvalue":{"101unset":"0","101":"float:right"},"section_param_id":329,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-12-03T08:15:21.000Z","id":2416,"page_layout_id":91,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":330,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-12-03T08:15:21.000Z","id":2417,"page_layout_id":91,"page_layout_root_id":83,"pvalue":{},"section_param_id":331,"theme_id":1,"unset":null,"updated_at":"2013-12-03T08:15:21.000Z"},{"computed_pvalue":null,"created_at":"2013-12-03T08:15:21.000Z","id":2418,"page_layout_id":91,"page_layout_root_id":83,"pvalue":{},"section_param_id":332,"theme_id":1,"unset":null,"updated_at":"2013-12-03T08:15:21.000Z"},{"computed_pvalue":null,"created_at":"2013-12-05T08:06:08.000Z","id":2419,"page_layout_id":85,"page_layout_root_id":83,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-12-05T08:06:08.000Z","id":2420,"page_layout_id":85,"page_layout_root_id":83,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-12-05T08:06:08.000Z","id":2421,"page_layout_id":85,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-12-05T08:06:08.000Z","id":2422,"page_layout_id":85,"page_layout_root_id":83,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2013-12-05T08:06:08.000Z"},{"computed_pvalue":null,"created_at":"2013-12-05T08:06:08.000Z","id":2423,"page_layout_id":85,"page_layout_root_id":83,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2013-12-05T08:06:08.000Z"},{"computed_pvalue":null,"created_at":"2013-12-05T08:11:48.000Z","id":2424,"page_layout_id":87,"page_layout_root_id":83,"pvalue":{},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2013-12-05T08:11:48.000Z"},{"computed_pvalue":null,"created_at":"2013-12-05T08:11:48.000Z","id":2425,"page_layout_id":87,"page_layout_root_id":83,"pvalue":{"101":"float:right","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-12-05T08:11:48.000Z","id":2426,"page_layout_id":87,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2013-12-05T08:11:48.000Z","id":2427,"page_layout_id":87,"page_layout_root_id":83,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2013-12-05T08:11:48.000Z"},{"computed_pvalue":null,"created_at":"2013-12-05T08:11:48.000Z","id":2428,"page_layout_id":87,"page_layout_root_id":83,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2013-12-05T08:11:48.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:53.000Z","id":2429,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{"21":"width:960px","21unset":"0","20":"min-width:960px","20hidden":"1"},"section_param_id":226,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:53.000Z","id":2430,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":227,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:53.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:53.000Z","id":2431,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{"85":"clear:both"},"section_param_id":228,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:53.000Z","id":2432,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":229,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:53.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:53.000Z","id":2433,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":230,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:53.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":2434,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":231,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":2435,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":232,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":2436,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":233,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":2437,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":234,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":2438,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{"31unset":"0","31":"margin:10px auto 2px auto"},"section_param_id":235,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":2439,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":236,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":2440,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":237,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":2441,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":238,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":2442,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":239,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":2443,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":240,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":2444,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":241,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:55.000Z","id":2445,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{"49unset":"0","49":"color:red","24unset":"0","24":"font-size:82%"},"section_param_id":242,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:55.000Z","id":2446,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":243,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:55.000Z","id":2447,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":317,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:55.000Z","id":2448,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":318,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:55.000Z","id":2449,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":319,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:55.000Z","id":2450,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":320,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:55.000Z","id":2451,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":321,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:55.000Z","id":2452,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":322,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:55.000Z","id":2453,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":244,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:55.000Z","id":2454,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":245,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:56.000Z","id":2455,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":246,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:56.000Z","id":2456,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{"49unset":"0","49":"color:#00ADEE","24unset":"1","24":"font-size:80%"},"section_param_id":247,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:56.000Z","id":2457,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":248,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:56.000Z","id":2458,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{"7unset":"0","7":"border-style:solid none solid none","8unset":"0","8":"border-width:1px 0px 1px 0px","6unset":"0","6":"border-color:#D9D9DB transparent #D9D9DB transparent"},"section_param_id":249,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:56.000Z","id":2459,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{"32unset":"0","32":"padding:5px 10px 5px 10px"},"section_param_id":250,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:56.000Z","id":2460,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":251,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:56.000Z","id":2461,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{"2unset":"0","2":"background-color:#D9D9DB"},"section_param_id":252,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:56.000Z","id":2462,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":253,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:56.000Z","id":2463,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":254,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:57.000Z","id":2464,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":255,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:57.000Z","id":2465,"page_layout_id":83,"page_layout_root_id":83,"pvalue":{},"section_param_id":256,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:57.000Z","id":2466,"page_layout_id":104,"page_layout_root_id":83,"pvalue":{},"section_param_id":55,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:57.000Z","id":2467,"page_layout_id":104,"page_layout_root_id":83,"pvalue":{"21unset":"0","21":"width:150px","15unset":"0","15":"height:34px"},"section_param_id":56,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:57.000Z","id":2468,"page_layout_id":104,"page_layout_root_id":83,"pvalue":{"15hidden":"1","15unset":"0","15":"height:33px","32unset":"1","32":"padding:0px 0px 0px 0px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #BBBBBB transparent"},"section_param_id":57,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:57.000Z","id":2469,"page_layout_id":104,"page_layout_root_id":83,"pvalue":{},"section_param_id":58,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:57.000Z","id":2470,"page_layout_id":104,"page_layout_root_id":83,"pvalue":{},"section_param_id":59,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:57.000Z","id":2471,"page_layout_id":104,"page_layout_root_id":83,"pvalue":{},"section_param_id":294,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:57.000Z","id":2472,"page_layout_id":104,"page_layout_root_id":83,"pvalue":{},"section_param_id":295,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:57.000Z","id":2473,"page_layout_id":104,"page_layout_root_id":83,"pvalue":{"49unset":"0","49":"color:#BBBBBB","27unset":"0","27":"font-weight:bold","24unset":"0","24":"font-size:80%","54unset":"0","54":"text-decoration:none","53unset":"0","53":"text-align:center"},"section_param_id":296,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:58.000Z","id":2474,"page_layout_id":104,"page_layout_root_id":83,"pvalue":{},"section_param_id":297,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:58.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:00.000Z","id":2475,"page_layout_id":109,"page_layout_root_id":83,"pvalue":{},"section_param_id":105,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:00.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:00.000Z","id":2476,"page_layout_id":109,"page_layout_root_id":83,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":106,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:00.000Z","id":2477,"page_layout_id":109,"page_layout_root_id":83,"pvalue":{},"section_param_id":107,"theme_id":1,"unset":null,"updated_at":"2014-07-30T23:08:17.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:00.000Z","id":2478,"page_layout_id":109,"page_layout_root_id":83,"pvalue":{},"section_param_id":108,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:00.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:00.000Z","id":2479,"page_layout_id":109,"page_layout_root_id":83,"pvalue":{},"section_param_id":109,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:00.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:00.000Z","id":2480,"page_layout_id":109,"page_layout_root_id":83,"pvalue":{"32unset":"0","32":"padding:5px 5px 5px 5px","7unset":"0","7":"border-style:solid none solid none","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB"},"section_param_id":302,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:00.000Z","id":2481,"page_layout_id":109,"page_layout_root_id":83,"pvalue":{"2unset":"0","2":"background-color:transparent"},"section_param_id":303,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:01.000Z","id":2482,"page_layout_id":109,"page_layout_root_id":83,"pvalue":{},"section_param_id":304,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:01.000Z","id":2483,"page_layout_id":109,"page_layout_root_id":83,"pvalue":{"27unset":"0","27":"font-weight:bold"},"section_param_id":305,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:01.000Z","id":2484,"page_layout_id":109,"page_layout_root_id":83,"pvalue":{},"section_param_id":306,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:01.000Z","id":2485,"page_layout_id":111,"page_layout_root_id":83,"pvalue":{},"section_param_id":55,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:01.000Z","id":2486,"page_layout_id":111,"page_layout_root_id":83,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":56,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:26.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:01.000Z","id":2487,"page_layout_id":111,"page_layout_root_id":83,"pvalue":{"15hidden":"1","32unset":"1","32":"padding:0px 0px 0px 0px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent"},"section_param_id":57,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:01.000Z","id":2488,"page_layout_id":111,"page_layout_root_id":83,"pvalue":{},"section_param_id":58,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:01.000Z","id":2489,"page_layout_id":111,"page_layout_root_id":83,"pvalue":{},"section_param_id":59,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:01.000Z","id":2490,"page_layout_id":111,"page_layout_root_id":83,"pvalue":{},"section_param_id":294,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:01.000Z","id":2491,"page_layout_id":111,"page_layout_root_id":83,"pvalue":{},"section_param_id":295,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:02.000Z","id":2492,"page_layout_id":111,"page_layout_root_id":83,"pvalue":{"49unset":"0","49":"color:black","54unset":"0","54":"text-decoration:none","27unset":"0","27":"font-weight:bold","24unset":"0","24":"font-size:150%"},"section_param_id":296,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:02.000Z","id":2493,"page_layout_id":111,"page_layout_root_id":83,"pvalue":{},"section_param_id":297,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:02.000Z","id":2494,"page_layout_id":118,"page_layout_root_id":83,"pvalue":{},"section_param_id":115,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:02.000Z","id":2495,"page_layout_id":118,"page_layout_root_id":83,"pvalue":{},"section_param_id":116,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:02.000Z","id":2496,"page_layout_id":118,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":117,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:02.000Z","id":2497,"page_layout_id":118,"page_layout_root_id":83,"pvalue":{},"section_param_id":118,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:02.000Z","id":2498,"page_layout_id":118,"page_layout_root_id":83,"pvalue":{},"section_param_id":119,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:02.000Z","id":2499,"page_layout_id":118,"page_layout_root_id":83,"pvalue":{"21unset":"0","21":"width:60px","7unset":"0","7":"border-style:solid solid solid solid","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB","8unset":"0","8":"border-width:1px 1px 1px 1px","32unset":"0","32":"padding:7px 10px 7px 10px"},"section_param_id":307,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:02.000Z","id":2500,"page_layout_id":118,"page_layout_root_id":83,"pvalue":{},"section_param_id":308,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:03.000Z","id":2501,"page_layout_id":118,"page_layout_root_id":83,"pvalue":{"53unset":"0","53":"text-align:left"},"section_param_id":309,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:03.000Z","id":2502,"page_layout_id":119,"page_layout_root_id":83,"pvalue":{},"section_param_id":120,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:03.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:03.000Z","id":2503,"page_layout_id":119,"page_layout_root_id":83,"pvalue":{},"section_param_id":121,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:03.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:03.000Z","id":2504,"page_layout_id":119,"page_layout_root_id":83,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto auto 5px"},"section_param_id":122,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:03.000Z","id":2505,"page_layout_id":119,"page_layout_root_id":83,"pvalue":{},"section_param_id":123,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:03.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:03.000Z","id":2506,"page_layout_id":119,"page_layout_root_id":83,"pvalue":{},"section_param_id":124,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:03.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:03.000Z","id":2507,"page_layout_id":119,"page_layout_root_id":83,"pvalue":{},"section_param_id":310,"theme_id":1,"unset":null,"updated_at":"2014-07-30T23:08:17.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:03.000Z","id":2508,"page_layout_id":119,"page_layout_root_id":83,"pvalue":{"2unset":"0","2":"background-color:#00ADEE"},"section_param_id":311,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:03.000Z","id":2509,"page_layout_id":119,"page_layout_root_id":83,"pvalue":{"49unset":"0","49":"color:white","24unset":"1","24":"font-size:14em"},"section_param_id":312,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:04.000Z","id":2510,"page_layout_id":144,"page_layout_root_id":83,"pvalue":{},"section_param_id":284,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:04.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:04.000Z","id":2511,"page_layout_id":144,"page_layout_root_id":83,"pvalue":{"21":"width:600px","21unset":"0"},"section_param_id":285,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:04.000Z","id":2512,"page_layout_id":144,"page_layout_root_id":83,"pvalue":{"7":"border-style:solid solid solid solid","7unset":"0","8":"border-width:1px 1px 1px 1px","8unset":"0","6":"border-color:#CCCCCC #CCCCCC #CCCCCC #CCCCCC","6unset":"0","15":"height:598px","15hidden":"1"},"section_param_id":286,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:04.000Z","id":2513,"page_layout_id":144,"page_layout_root_id":83,"pvalue":{"2":"background-color:#FFFFFF","2unset":"0"},"section_param_id":287,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:04.000Z","id":2514,"page_layout_id":144,"page_layout_root_id":83,"pvalue":{},"section_param_id":288,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:04.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:04.000Z","id":2515,"page_layout_id":144,"page_layout_root_id":83,"pvalue":{"32":"padding:2px 2px 2px 2px","32unset":"0"},"section_param_id":313,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:04.000Z","id":2516,"page_layout_id":144,"page_layout_root_id":83,"pvalue":{"2":"background-color:#EEEEEE","2unset":"0"},"section_param_id":314,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:05.000Z","id":2517,"page_layout_id":144,"page_layout_root_id":83,"pvalue":{},"section_param_id":315,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:05.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:05.000Z","id":2518,"page_layout_id":144,"page_layout_root_id":83,"pvalue":{"32":"padding:0 10px 5px 10px","32unset":"0"},"section_param_id":316,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":2519,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":333,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":2520,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":334,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":2521,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":335,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":2522,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":336,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":2523,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":337,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":2524,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":338,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":2525,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":339,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":2526,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":340,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":2527,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":341,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":2528,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":342,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":2529,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":343,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":2530,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":344,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":2531,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":345,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":2532,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":346,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":2533,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":347,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":2534,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":348,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:03:39.000Z","id":2535,"page_layout_id":140,"page_layout_root_id":83,"pvalue":{},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-02-19T13:03:39.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:03:39.000Z","id":2536,"page_layout_id":140,"page_layout_root_id":83,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:03:39.000Z","id":2537,"page_layout_id":140,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:03:39.000Z","id":2538,"page_layout_id":140,"page_layout_root_id":83,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-02-19T13:03:39.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:03:39.000Z","id":2539,"page_layout_id":140,"page_layout_root_id":83,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-02-19T13:03:39.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:12:08.000Z","id":2540,"page_layout_id":141,"page_layout_root_id":83,"pvalue":{},"section_param_id":349,"theme_id":1,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"},{"computed_pvalue":null,"created_at":"2014-05-10T13:08:24.000Z","id":2541,"page_layout_id":141,"page_layout_root_id":83,"pvalue":{},"section_param_id":350,"theme_id":1,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:12:08.000Z","id":2542,"page_layout_id":141,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":351,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:12:08.000Z","id":2543,"page_layout_id":141,"page_layout_root_id":83,"pvalue":{},"section_param_id":352,"theme_id":1,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:12:08.000Z","id":2544,"page_layout_id":141,"page_layout_root_id":83,"pvalue":{},"section_param_id":353,"theme_id":1,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:12:08.000Z","id":2545,"page_layout_id":141,"page_layout_root_id":83,"pvalue":{},"section_param_id":354,"theme_id":1,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:12:08.000Z","id":2546,"page_layout_id":141,"page_layout_root_id":83,"pvalue":{},"section_param_id":355,"theme_id":1,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:12:08.000Z","id":2547,"page_layout_id":141,"page_layout_root_id":83,"pvalue":{},"section_param_id":356,"theme_id":1,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"},{"computed_pvalue":null,"created_at":"2014-02-23T13:34:50.000Z","id":2548,"page_layout_id":108,"page_layout_root_id":83,"pvalue":{},"section_param_id":289,"theme_id":1,"unset":null,"updated_at":"2014-02-23T13:34:50.000Z"},{"computed_pvalue":null,"created_at":"2014-02-23T13:34:50.000Z","id":2549,"page_layout_id":108,"page_layout_root_id":83,"pvalue":{},"section_param_id":290,"theme_id":1,"unset":null,"updated_at":"2014-02-23T13:34:50.000Z"},{"computed_pvalue":null,"created_at":"2014-02-23T13:34:50.000Z","id":2550,"page_layout_id":108,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":291,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-02-23T13:34:50.000Z","id":2551,"page_layout_id":108,"page_layout_root_id":83,"pvalue":{},"section_param_id":292,"theme_id":1,"unset":null,"updated_at":"2014-02-23T13:34:50.000Z"},{"computed_pvalue":null,"created_at":"2014-02-23T13:34:50.000Z","id":2552,"page_layout_id":108,"page_layout_root_id":83,"pvalue":{},"section_param_id":293,"theme_id":1,"unset":null,"updated_at":"2014-02-23T13:34:50.000Z"},{"computed_pvalue":null,"created_at":"2014-02-23T13:34:50.000Z","id":2553,"page_layout_id":108,"page_layout_root_id":83,"pvalue":{"32unset":"0","32":"padding:5px 10px 5px 10px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB"},"section_param_id":299,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-02-23T13:34:50.000Z","id":2554,"page_layout_id":108,"page_layout_root_id":83,"pvalue":{"32unset":"0","32":"padding:5px 5px 5px 5px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB","31unset":"0","31":"margin:6px 6px 6px auto"},"section_param_id":301,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-03-04T14:20:03.000Z","id":2555,"page_layout_id":129,"page_layout_root_id":83,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-03-04T14:20:03.000Z","id":2556,"page_layout_id":129,"page_layout_root_id":83,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"0"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-03-04T14:20:03.000Z","id":2557,"page_layout_id":129,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-03-04T14:20:03.000Z","id":2558,"page_layout_id":129,"page_layout_root_id":83,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-03-04T14:20:03.000Z"},{"computed_pvalue":null,"created_at":"2014-03-04T14:20:03.000Z","id":2559,"page_layout_id":129,"page_layout_root_id":83,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-03-04T14:20:03.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T13:19:56.000Z","id":2560,"page_layout_id":114,"page_layout_root_id":83,"pvalue":{},"section_param_id":357,"theme_id":1,"unset":null,"updated_at":"2014-03-06T13:19:56.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T13:19:56.000Z","id":2561,"page_layout_id":114,"page_layout_root_id":83,"pvalue":{},"section_param_id":358,"theme_id":1,"unset":null,"updated_at":"2014-03-06T13:19:56.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T13:19:56.000Z","id":2562,"page_layout_id":114,"page_layout_root_id":83,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 10px auto"},"section_param_id":359,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T13:19:56.000Z","id":2563,"page_layout_id":114,"page_layout_root_id":83,"pvalue":{},"section_param_id":360,"theme_id":1,"unset":null,"updated_at":"2014-03-06T13:19:56.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T13:19:56.000Z","id":2564,"page_layout_id":114,"page_layout_root_id":83,"pvalue":{},"section_param_id":361,"theme_id":1,"unset":null,"updated_at":"2014-03-06T13:19:56.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T13:42:19.000Z","id":2565,"page_layout_id":117,"page_layout_root_id":83,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T13:42:19.000Z","id":2566,"page_layout_id":117,"page_layout_root_id":83,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:230px"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T13:42:19.000Z","id":2567,"page_layout_id":117,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T13:42:19.000Z","id":2568,"page_layout_id":117,"page_layout_root_id":83,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-03-06T13:42:19.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T13:42:19.000Z","id":2569,"page_layout_id":117,"page_layout_root_id":83,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-03-06T13:42:19.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T15:17:45.000Z","id":2570,"page_layout_id":115,"page_layout_root_id":83,"pvalue":{"85unset":"0","85":"clear:both"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T15:17:45.000Z","id":2571,"page_layout_id":115,"page_layout_root_id":83,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T15:17:45.000Z","id":2572,"page_layout_id":115,"page_layout_root_id":83,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-07-31T14:19:27.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T15:17:45.000Z","id":2573,"page_layout_id":115,"page_layout_root_id":83,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-03-06T15:17:45.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T15:17:45.000Z","id":2574,"page_layout_id":115,"page_layout_root_id":83,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-03-06T15:17:45.000Z"},{"computed_pvalue":null,"created_at":"2014-07-04T12:47:18.000Z","id":3973,"page_layout_id":103,"page_layout_root_id":83,"pvalue":{},"section_param_id":404,"theme_id":1,"unset":null,"updated_at":"2014-07-04T12:47:18.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4131,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{},"section_param_id":420,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4135,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{},"section_param_id":421,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4137,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{},"section_param_id":421,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4143,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":422,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4148,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{},"section_param_id":423,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4152,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{},"section_param_id":424,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4154,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{},"section_param_id":424,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4160,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":425,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4165,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{},"section_param_id":426,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4169,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{},"section_param_id":427,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4171,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{},"section_param_id":427,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4177,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":428,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4182,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{},"section_param_id":429,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4186,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{},"section_param_id":430,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4188,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{},"section_param_id":430,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4194,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":431,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4199,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{},"section_param_id":432,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4203,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{},"section_param_id":433,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4205,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{},"section_param_id":433,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4211,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":434,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4216,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{},"section_param_id":435,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4220,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{},"section_param_id":436,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4222,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{},"section_param_id":436,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4228,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":437,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4233,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{},"section_param_id":438,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4237,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{},"section_param_id":439,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4239,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{},"section_param_id":439,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4245,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":440,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4250,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{},"section_param_id":441,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4254,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{},"section_param_id":442,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4256,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{},"section_param_id":442,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4262,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":443,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4267,"page_layout_id":90,"page_layout_root_id":83,"pvalue":{},"section_param_id":444,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4271,"page_layout_id":96,"page_layout_root_id":83,"pvalue":{},"section_param_id":445,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4273,"page_layout_id":99,"page_layout_root_id":83,"pvalue":{},"section_param_id":445,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4279,"page_layout_id":88,"page_layout_root_id":83,"pvalue":{},"section_param_id":446,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}],"page_layouts":[{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":83,"is_enabled":true,"is_full_html":true,"lft":1,"parent_id":null,"rgt":124,"root_id":83,"section_context":"","section_id":75,"section_instance":2,"site_id":2,"slug":"root","title":"root","updated_at":"2014-07-12T06:27:35.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":84,"is_enabled":true,"is_full_html":false,"lft":2,"parent_id":83,"rgt":17,"root_id":83,"section_context":"","section_id":2,"section_instance":1,"site_id":2,"slug":"header","title":"Header","updated_at":"2014-05-10T13:08:24.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":85,"is_enabled":true,"is_full_html":false,"lft":3,"parent_id":84,"rgt":10,"root_id":83,"section_context":"","section_id":2,"section_instance":20,"site_id":2,"slug":"container000","title":"container000","updated_at":"2014-07-16T09:30:58.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":86,"is_enabled":true,"is_full_html":false,"lft":4,"parent_id":85,"rgt":5,"root_id":83,"section_context":"","section_id":97,"section_instance":1,"site_id":2,"slug":"logo","title":"Logo","updated_at":"2014-05-10T13:08:24.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":87,"is_enabled":true,"is_full_html":false,"lft":6,"parent_id":85,"rgt":9,"root_id":83,"section_context":"","section_id":2,"section_instance":21,"site_id":2,"slug":"container--6","title":"container","updated_at":"2014-07-12T06:27:35.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":88,"is_enabled":true,"is_full_html":false,"lft":7,"parent_id":87,"rgt":8,"root_id":83,"section_context":"","section_id":101,"section_instance":2,"site_id":2,"slug":"logged-unlogged-menu","title":"logged&unlogged menu","updated_at":"2014-07-12T06:27:35.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":89,"is_enabled":true,"is_full_html":false,"lft":11,"parent_id":84,"rgt":16,"root_id":83,"section_context":"","section_id":2,"section_instance":19,"site_id":2,"slug":"container--7","title":"container","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":90,"is_enabled":true,"is_full_html":false,"lft":12,"parent_id":89,"rgt":13,"root_id":83,"section_context":"","section_id":3,"section_instance":3,"site_id":2,"slug":"main-menu","title":"Main menu","updated_at":"2014-05-10T13:08:24.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":91,"is_enabled":true,"is_full_html":false,"lft":14,"parent_id":89,"rgt":15,"root_id":83,"section_context":"","section_id":99,"section_instance":1,"site_id":2,"slug":"mini-cart","title":"Mini cart","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":92,"is_enabled":true,"is_full_html":false,"lft":18,"parent_id":83,"rgt":117,"root_id":83,"section_context":"","section_id":2,"section_instance":2,"site_id":2,"slug":"content","title":"content","updated_at":"2014-05-10T13:08:24.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":93,"is_enabled":true,"is_full_html":false,"lft":19,"parent_id":92,"rgt":32,"root_id":83,"section_context":"","section_id":2,"section_instance":4,"site_id":2,"slug":"lftnav","title":"lftnav","updated_at":"2014-05-10T13:08:24.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":94,"is_enabled":true,"is_full_html":false,"lft":20,"parent_id":93,"rgt":25,"root_id":83,"section_context":"","section_id":2,"section_instance":12,"site_id":2,"slug":"container--8","title":"container","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":95,"is_enabled":true,"is_full_html":false,"lft":21,"parent_id":94,"rgt":22,"root_id":83,"section_context":"","section_id":40,"section_instance":3,"site_id":2,"slug":"taxonomy-name","title":"taxonomy name","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":96,"is_enabled":true,"is_full_html":false,"lft":23,"parent_id":94,"rgt":24,"root_id":83,"section_context":"","section_id":6,"section_instance":1,"site_id":2,"slug":"vmenu","title":"vmenu","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":97,"is_enabled":true,"is_full_html":false,"lft":26,"parent_id":93,"rgt":31,"root_id":83,"section_context":"","section_id":2,"section_instance":13,"site_id":2,"slug":"container--9","title":"container","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":98,"is_enabled":true,"is_full_html":false,"lft":27,"parent_id":97,"rgt":28,"root_id":83,"section_context":"","section_id":40,"section_instance":3,"site_id":2,"slug":"taxonomy-name--2","title":"taxonomy name","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":99,"is_enabled":true,"is_full_html":false,"lft":29,"parent_id":97,"rgt":30,"root_id":83,"section_context":"","section_id":6,"section_instance":2,"site_id":2,"slug":"vmenu--2","title":"vmenu","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":100,"is_enabled":true,"is_full_html":false,"lft":33,"parent_id":92,"rgt":116,"root_id":83,"section_context":"","section_id":2,"section_instance":5,"site_id":2,"slug":"main-content","title":"main content","updated_at":"2014-05-10T13:08:24.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"gpvs","id":101,"is_enabled":true,"is_full_html":false,"lft":34,"parent_id":100,"rgt":43,"root_id":83,"section_context":"home,list","section_id":2,"section_instance":6,"site_id":2,"slug":"product-list","title":"product list","updated_at":"2014-07-26T09:44:58.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":102,"is_enabled":true,"is_full_html":false,"lft":35,"parent_id":101,"rgt":42,"root_id":83,"section_context":"","section_id":2,"section_instance":8,"site_id":2,"slug":"container--10","title":"container","updated_at":"2014-07-26T09:44:58.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":103,"is_enabled":true,"is_full_html":false,"lft":36,"parent_id":102,"rgt":37,"root_id":83,"section_context":"","section_id":17,"section_instance":1,"site_id":2,"slug":"product-image","title":"product image","updated_at":"2014-05-10T13:08:24.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":104,"is_enabled":true,"is_full_html":false,"lft":38,"parent_id":102,"rgt":39,"root_id":83,"section_context":"","section_id":13,"section_instance":3,"site_id":2,"slug":"product-name","title":"product name","updated_at":"2014-05-10T13:08:24.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":105,"is_enabled":true,"is_full_html":false,"lft":40,"parent_id":102,"rgt":41,"root_id":83,"section_context":"","section_id":30,"section_instance":2,"site_id":2,"slug":"product-price","title":"product price","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"this_product","id":106,"is_enabled":true,"is_full_html":false,"lft":44,"parent_id":100,"rgt":71,"root_id":83,"section_context":"detail","section_id":2,"section_instance":7,"site_id":2,"slug":"product-detail","title":"product detail","updated_at":"2014-05-10T13:08:24.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":107,"is_enabled":true,"is_full_html":false,"lft":45,"parent_id":106,"rgt":50,"root_id":83,"section_context":"","section_id":2,"section_instance":10,"site_id":2,"slug":"container--11","title":"container","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":108,"is_enabled":true,"is_full_html":false,"lft":46,"parent_id":107,"rgt":47,"root_id":83,"section_context":"","section_id":94,"section_instance":2,"site_id":2,"slug":"image-with-thumbnails","title":"image with thumbnails","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":109,"is_enabled":true,"is_full_html":false,"lft":48,"parent_id":107,"rgt":49,"root_id":83,"section_context":"","section_id":28,"section_instance":2,"site_id":2,"slug":"product_properties","title":"product_properties","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":110,"is_enabled":true,"is_full_html":false,"lft":51,"parent_id":106,"rgt":70,"root_id":83,"section_context":"","section_id":2,"section_instance":9,"site_id":2,"slug":"container--12","title":"container","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":111,"is_enabled":true,"is_full_html":false,"lft":52,"parent_id":110,"rgt":53,"root_id":83,"section_context":"","section_id":13,"section_instance":3,"site_id":2,"slug":"product-name--2","title":"product name","updated_at":"2014-05-10T13:08:24.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":112,"is_enabled":true,"is_full_html":false,"lft":54,"parent_id":110,"rgt":55,"root_id":83,"section_context":"","section_id":15,"section_instance":1,"site_id":2,"slug":"product-description","title":"product description","updated_at":"2014-05-10T13:08:24.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":113,"is_enabled":true,"is_full_html":false,"lft":56,"parent_id":110,"rgt":69,"root_id":83,"section_context":"","section_id":2,"section_instance":11,"site_id":2,"slug":"container--13","title":"container","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":114,"is_enabled":true,"is_full_html":false,"lft":57,"parent_id":113,"rgt":58,"root_id":83,"section_context":"","section_id":107,"section_instance":1,"site_id":2,"slug":"product-option-values","title":"Product option values","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":115,"is_enabled":true,"is_full_html":false,"lft":59,"parent_id":113,"rgt":68,"root_id":83,"section_context":"","section_id":2,"section_instance":25,"site_id":2,"slug":"container--14","title":"container","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":116,"is_enabled":true,"is_full_html":false,"lft":60,"parent_id":115,"rgt":61,"root_id":83,"section_context":"","section_id":30,"section_instance":1,"site_id":2,"slug":"product-price--2","title":"product price","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":117,"is_enabled":true,"is_full_html":false,"lft":62,"parent_id":115,"rgt":67,"root_id":83,"section_context":"","section_id":2,"section_instance":24,"site_id":2,"slug":"container--15","title":"container","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":118,"is_enabled":true,"is_full_html":false,"lft":63,"parent_id":117,"rgt":64,"root_id":83,"section_context":"","section_id":32,"section_instance":2,"site_id":2,"slug":"product-quantity","title":"product quantity","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":119,"is_enabled":true,"is_full_html":false,"lft":65,"parent_id":117,"rgt":66,"root_id":83,"section_context":"","section_id":34,"section_instance":2,"site_id":2,"slug":"product-atc","title":"product atc","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":120,"is_enabled":true,"is_full_html":false,"lft":72,"parent_id":100,"rgt":115,"root_id":83,"section_context":"cart,checkout,thanks,account,signup,login,password","section_id":2,"section_instance":14,"site_id":2,"slug":"other-pages","title":"other pages","updated_at":"2014-05-10T13:08:24.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":121,"is_enabled":true,"is_full_html":false,"lft":73,"parent_id":120,"rgt":74,"root_id":83,"section_context":"","section_id":50,"section_instance":1,"site_id":2,"slug":"taxon-name","title":"taxon name","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":122,"is_enabled":true,"is_full_html":false,"lft":75,"parent_id":120,"rgt":80,"root_id":83,"section_context":"cart","section_id":36,"section_instance":1,"site_id":2,"slug":"cart","title":"cart","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":123,"is_enabled":true,"is_full_html":false,"lft":76,"parent_id":122,"rgt":77,"root_id":83,"section_context":"","section_id":42,"section_instance":2,"site_id":2,"slug":"cart-items","title":"cart items","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":124,"is_enabled":true,"is_full_html":false,"lft":78,"parent_id":122,"rgt":79,"root_id":83,"section_context":"","section_id":44,"section_instance":2,"site_id":2,"slug":"order-total-price","title":"order total price","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":125,"is_enabled":true,"is_full_html":false,"lft":81,"parent_id":120,"rgt":86,"root_id":83,"section_context":"checkout","section_id":46,"section_instance":2,"site_id":2,"slug":"checkout","title":"checkout","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":126,"is_enabled":true,"is_full_html":false,"lft":82,"parent_id":125,"rgt":83,"root_id":83,"section_context":"","section_id":69,"section_instance":1,"site_id":2,"slug":"ship-form","title":"ship form","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":127,"is_enabled":true,"is_full_html":false,"lft":84,"parent_id":125,"rgt":85,"root_id":83,"section_context":"","section_id":72,"section_instance":1,"site_id":2,"slug":"payment-form","title":"payment form","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":128,"is_enabled":true,"is_full_html":false,"lft":87,"parent_id":120,"rgt":96,"root_id":83,"section_context":"thanks","section_id":2,"section_instance":18,"site_id":2,"slug":"thanks","title":"thanks","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":129,"is_enabled":true,"is_full_html":false,"lft":88,"parent_id":128,"rgt":93,"root_id":83,"section_context":"","section_id":2,"section_instance":23,"site_id":2,"slug":"container--16","title":"container","updated_at":"2014-07-12T06:27:36.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":130,"is_enabled":true,"is_full_html":false,"lft":89,"parent_id":129,"rgt":90,"root_id":83,"section_context":"","section_id":52,"section_instance":1,"site_id":2,"slug":"order-address","title":"order address","updated_at":"2014-07-12T06:27:37.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":131,"is_enabled":true,"is_full_html":false,"lft":91,"parent_id":129,"rgt":92,"root_id":83,"section_context":"","section_id":55,"section_instance":1,"site_id":2,"slug":"order-payment","title":"order payment","updated_at":"2014-07-12T06:27:37.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":132,"is_enabled":true,"is_full_html":false,"lft":94,"parent_id":128,"rgt":95,"root_id":83,"section_context":"","section_id":58,"section_instance":1,"site_id":2,"slug":"order-items","title":"order items","updated_at":"2014-07-12T06:27:37.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":133,"is_enabled":true,"is_full_html":false,"lft":97,"parent_id":120,"rgt":102,"root_id":83,"section_context":"account","section_id":2,"section_instance":17,"site_id":2,"slug":"account","title":"account","updated_at":"2014-07-12T06:27:37.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":134,"is_enabled":true,"is_full_html":false,"lft":98,"parent_id":133,"rgt":99,"root_id":83,"section_context":"","section_id":85,"section_instance":1,"site_id":2,"slug":"profile","title":"profile","updated_at":"2014-07-12T06:27:37.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":135,"is_enabled":true,"is_full_html":false,"lft":100,"parent_id":133,"rgt":101,"root_id":83,"section_context":"","section_id":82,"section_instance":1,"site_id":2,"slug":"order-list","title":"order list","updated_at":"2014-07-12T06:27:37.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":136,"is_enabled":true,"is_full_html":false,"lft":103,"parent_id":120,"rgt":106,"root_id":83,"section_context":"login","section_id":2,"section_instance":15,"site_id":2,"slug":"login","title":"login","updated_at":"2014-05-10T13:08:24.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":137,"is_enabled":true,"is_full_html":false,"lft":104,"parent_id":136,"rgt":105,"root_id":83,"section_context":"","section_id":61,"section_instance":1,"site_id":2,"slug":"login-form","title":"login form","updated_at":"2014-07-12T06:27:37.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":138,"is_enabled":true,"is_full_html":false,"lft":107,"parent_id":120,"rgt":110,"root_id":83,"section_context":"signup","section_id":2,"section_instance":16,"site_id":2,"slug":"signup","title":"signup","updated_at":"2014-05-10T13:08:24.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":139,"is_enabled":true,"is_full_html":false,"lft":108,"parent_id":138,"rgt":109,"root_id":83,"section_context":"","section_id":64,"section_instance":1,"site_id":2,"slug":"sign-up-form","title":"sign up form","updated_at":"2014-07-12T06:27:37.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":140,"is_enabled":true,"is_full_html":false,"lft":111,"parent_id":120,"rgt":114,"root_id":83,"section_context":"password","section_id":2,"section_instance":22,"site_id":2,"slug":"password","title":"password","updated_at":"2014-05-10T13:08:24.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":141,"is_enabled":true,"is_full_html":false,"lft":112,"parent_id":140,"rgt":113,"root_id":83,"section_context":"","section_id":104,"section_instance":1,"site_id":2,"slug":"password-recover-form","title":"password recover form","updated_at":"2014-07-12T06:27:37.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":142,"is_enabled":true,"is_full_html":false,"lft":118,"parent_id":83,"rgt":121,"root_id":83,"section_context":"","section_id":2,"section_instance":3,"site_id":2,"slug":"footer","title":"footer","updated_at":"2014-05-10T13:08:24.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":143,"is_enabled":true,"is_full_html":false,"lft":119,"parent_id":142,"rgt":120,"root_id":83,"section_context":"","section_id":11,"section_instance":1,"site_id":2,"slug":"copyright","title":"copyright","updated_at":"2014-05-10T13:08:24.000Z"},{"copy_from_root_id":1,"created_at":"2014-05-10T13:08:24.000Z","data_filter":"","data_source":"","id":144,"is_enabled":true,"is_full_html":false,"lft":122,"parent_id":83,"rgt":123,"root_id":83,"section_context":"","section_id":90,"section_instance":2,"site_id":2,"slug":"dialog","title":"dialog","updated_at":"2014-07-12T06:27:37.000Z"}],"template_files":[{"attachment_content_type":"image/gif","attachment_file_name":"logo.gif","attachment_file_size":1574,"attachment_height":null,"attachment_updated_at":"2013-05-12T13:29:47.000Z","attachment_width":null,"created_at":"2013-05-12T13:29:53.000Z","id":1,"theme_id":1},{"attachment_content_type":"image/jpeg","attachment_file_name":"6a5e31b1jw1doccdf5tdqj.jpg","attachment_file_size":16469,"attachment_height":null,"attachment_updated_at":"2014-07-03T15:26:52.000Z","attachment_width":null,"created_at":"2014-07-03T15:26:52.000Z","id":16,"theme_id":1}],"template_releases":[{"created_at":"2013-05-12T13:29:53.000Z","id":1,"name":"First theme released","theme_id":1,"updated_at":"2013-05-12T13:29:47.000Z"},{"created_at":"2014-02-16T13:05:22.000Z","id":2,"name":"just a test","theme_id":1,"updated_at":"2014-02-16T13:05:22.000Z"},{"created_at":"2014-02-20T14:39:05.000Z","id":3,"name":"just a test","theme_id":1,"updated_at":"2014-02-20T14:39:05.000Z"},{"created_at":"2014-03-02T06:58:26.000Z","id":4,"name":"just a test","theme_id":1,"updated_at":"2014-03-02T06:58:26.000Z"},{"created_at":"2014-04-03T14:04:43.000Z","id":5,"name":"just a test","theme_id":1,"updated_at":"2014-04-03T14:04:43.000Z"},{"created_at":"2014-07-26T08:14:37.000Z","id":8,"name":"just a test","theme_id":1,"updated_at":"2014-07-26T08:14:37.000Z"}]} \ No newline at end of file diff --git a/spree_theme/db/themes/designs/2_1_1406937516/6a5e31b1jw1doccdf5tdqj.jpg b/spree_theme/db/themes/designs/2_1_1406937516/6a5e31b1jw1doccdf5tdqj.jpg deleted file mode 100644 index 7fff0f08..00000000 Binary files a/spree_theme/db/themes/designs/2_1_1406937516/6a5e31b1jw1doccdf5tdqj.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_1_1406937516/logo.gif b/spree_theme/db/themes/designs/2_1_1406937516/logo.gif deleted file mode 100644 index 2782a6b2..00000000 Binary files a/spree_theme/db/themes/designs/2_1_1406937516/logo.gif and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_1_1408541455.yml b/spree_theme/db/themes/designs/2_1_1408541455.yml deleted file mode 100644 index c19a0724..00000000 --- a/spree_theme/db/themes/designs/2_1_1408541455.yml +++ /dev/null @@ -1,7861 +0,0 @@ ---- -template: !ruby/object:Spree::TemplateTheme - attributes: - id: 1 - site_id: 2 - page_layout_root_id: 83 - release_id: 8 - title: 示例模板 - slug: '' - assigned_resource_ids: - '86': - :spree/template_file: - - 1 - '88': - :spree/taxon: - - 0 - - 0 - '90': - :spree/taxon: - - 0 - '94': - :spree/taxon: - - 1 - '97': - :spree/taxon: - - 2 - created_at: 2013-04-08 13:27:02.000000000 Z - updated_at: 2014-08-09 07:34:42.000000000 Z -param_values: -- !ruby/object:Spree::ParamValue - attributes: - id: 2134 - page_layout_root_id: 83 - page_layout_id: 84 - section_param_id: 6 - theme_id: 1 - pvalue: - '86': '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:02.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &106647770 - id: 2135 - page_layout_root_id: 83 - page_layout_id: 84 - section_param_id: 7 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '0' - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:02.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2136 - page_layout_root_id: 83 - page_layout_id: 84 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:auto auto 20px auto - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:03.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2137 - page_layout_root_id: 83 - page_layout_id: 84 - section_param_id: 9 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:03.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2138 - page_layout_root_id: 83 - page_layout_id: 84 - section_param_id: 10 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:03.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2139 - page_layout_root_id: 83 - page_layout_id: 92 - section_param_id: 6 - theme_id: 1 - pvalue: - '86': '1' - 86unset: '0' - 85unset: '0' - '85': clear:none - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:04.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2140 - page_layout_root_id: 83 - page_layout_id: 92 - section_param_id: 7 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '0' - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:04.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2141 - page_layout_root_id: 83 - page_layout_id: 92 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:04.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2142 - page_layout_root_id: 83 - page_layout_id: 92 - section_param_id: 9 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - 2unset: '1' - '2': background-color:yellow - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:04.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2143 - page_layout_root_id: 83 - page_layout_id: 92 - section_param_id: 10 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:04.000000000 Z - updated_at: 2014-08-09 07:34:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2144 - page_layout_root_id: 83 - page_layout_id: 142 - section_param_id: 6 - theme_id: 1 - pvalue: - '86': '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2145 - page_layout_root_id: 83 - page_layout_id: 142 - section_param_id: 7 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2146 - page_layout_root_id: 83 - page_layout_id: 142 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2147 - page_layout_root_id: 83 - page_layout_id: 142 - section_param_id: 9 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - 2unset: '0' - '2': background-color:#F5F5F5 - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2148 - page_layout_root_id: 83 - page_layout_id: 142 - section_param_id: 10 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2149 - page_layout_root_id: 83 - page_layout_id: 93 - section_param_id: 6 - theme_id: 1 - pvalue: - '86': '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2150 - page_layout_root_id: 83 - page_layout_id: 93 - section_param_id: 7 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '0' - 21unset: '0' - '21': width:200px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2151 - page_layout_root_id: 83 - page_layout_id: 93 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:auto 10px auto 10px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2152 - page_layout_root_id: 83 - page_layout_id: 93 - section_param_id: 9 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - 2unset: '1' - '2': background-color:#FFF8ED - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2153 - page_layout_root_id: 83 - page_layout_id: 93 - section_param_id: 10 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - 49unset: '1' - '49': color:black - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2154 - page_layout_root_id: 83 - page_layout_id: 100 - section_param_id: 6 - theme_id: 1 - pvalue: - '86': '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2155 - page_layout_root_id: 83 - page_layout_id: 100 - section_param_id: 7 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '0' - 21unset: '0' - '21': width:750px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2156 - page_layout_root_id: 83 - page_layout_id: 100 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2157 - page_layout_root_id: 83 - page_layout_id: 100 - section_param_id: 9 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2158 - page_layout_root_id: 83 - page_layout_id: 100 - section_param_id: 10 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2159 - page_layout_root_id: 83 - page_layout_id: 101 - section_param_id: 6 - theme_id: 1 - pvalue: - '86': '1' - 86unset: '0' - 85unset: '0' - '85': clear:none - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2160 - page_layout_root_id: 83 - page_layout_id: 101 - section_param_id: 7 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '0' - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2161 - page_layout_root_id: 83 - page_layout_id: 101 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2162 - page_layout_root_id: 83 - page_layout_id: 101 - section_param_id: 9 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2163 - page_layout_root_id: 83 - page_layout_id: 101 - section_param_id: 10 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2164 - page_layout_root_id: 83 - page_layout_id: 106 - section_param_id: 6 - theme_id: 1 - pvalue: - '86': '1' - 86unset: '0' - 85unset: '0' - '85': clear:none - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2165 - page_layout_root_id: 83 - page_layout_id: 106 - section_param_id: 7 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '0' - 21unset: '1' - '21': width:200px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:08.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2166 - page_layout_root_id: 83 - page_layout_id: 106 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:08.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2167 - page_layout_root_id: 83 - page_layout_id: 106 - section_param_id: 9 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:08.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2168 - page_layout_root_id: 83 - page_layout_id: 106 - section_param_id: 10 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:08.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2169 - page_layout_root_id: 83 - page_layout_id: 103 - section_param_id: 65 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:08.000000000 Z - updated_at: 2013-04-08 13:27:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2170 - page_layout_root_id: 83 - page_layout_id: 103 - section_param_id: 66 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - 15unset: '0' - '15': height:110px - 21unset: '0' - '21': width:150px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:09.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2171 - page_layout_root_id: 83 - page_layout_id: 103 - section_param_id: 67 - theme_id: 1 - pvalue: - 15hidden: '1' - 7unset: '0' - '7': border-style:solid solid solid solid - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 6unset: '0' - '6': ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - 32unset: '0' - '32': padding:5px 0px 5px 0px - 15unset: '0' - '15': height:98px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:09.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2172 - page_layout_root_id: 83 - page_layout_id: 103 - section_param_id: 68 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:09.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2173 - page_layout_root_id: 83 - page_layout_id: 103 - section_param_id: 69 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - 53unset: '0' - '53': text-align:center - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:09.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2174 - page_layout_root_id: 83 - page_layout_id: 112 - section_param_id: 60 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:10.000000000 Z - updated_at: 2013-04-08 13:27:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2175 - page_layout_root_id: 83 - page_layout_id: 112 - section_param_id: 61 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:10.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2176 - page_layout_root_id: 83 - page_layout_id: 112 - section_param_id: 62 - theme_id: 1 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:10px 0px 10px 0px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:10.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2177 - page_layout_root_id: 83 - page_layout_id: 112 - section_param_id: 63 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:10.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2178 - page_layout_root_id: 83 - page_layout_id: 112 - section_param_id: 64 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - 24unset: '0' - '24': font-size:90% - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:10.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2179 - page_layout_root_id: 83 - page_layout_id: 143 - section_param_id: 50 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:11.000000000 Z - updated_at: 2013-04-08 13:27:11.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2180 - page_layout_root_id: 83 - page_layout_id: 143 - section_param_id: 51 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:11.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2181 - page_layout_root_id: 83 - page_layout_id: 143 - section_param_id: 52 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:11.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2182 - page_layout_root_id: 83 - page_layout_id: 143 - section_param_id: 53 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:11.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2183 - page_layout_root_id: 83 - page_layout_id: 143 - section_param_id: 54 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:11.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2184 - page_layout_root_id: 83 - page_layout_id: 102 - section_param_id: 6 - theme_id: 1 - pvalue: - '86': '1' - 86unset: '0' - 85unset: '0' - '85': clear:both - unset: - computed_pvalue: - created_at: 2013-04-08 14:05:42.000000000 Z - updated_at: 2014-08-09 07:34:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2185 - page_layout_root_id: 83 - page_layout_id: 102 - section_param_id: 7 - theme_id: 1 - pvalue: - '15': height:160px - 15unset: '1' - '101': float:left - 101unset: '0' - 21unset: '0' - '21': width:160px - unset: - computed_pvalue: - created_at: 2013-04-08 14:05:42.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2186 - page_layout_root_id: 83 - page_layout_id: 102 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:auto auto 20px auto - 15unset: '1' - '15': height:140px - 32unset: '1' - '32': padding:0px 0px 0px 0px - 8unset: '1' - '8': border-width:0px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2013-04-08 14:05:42.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2187 - page_layout_root_id: 83 - page_layout_id: 102 - section_param_id: 9 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 14:05:42.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2188 - page_layout_root_id: 83 - page_layout_id: 102 - section_param_id: 10 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 14:05:42.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2189 - page_layout_root_id: 83 - page_layout_id: 110 - section_param_id: 6 - theme_id: 1 - pvalue: - '86': '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-09 13:12:32.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2190 - page_layout_root_id: 83 - page_layout_id: 110 - section_param_id: 7 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '0' - 21unset: '0' - '21': width:350px - unset: - computed_pvalue: - created_at: 2013-04-09 13:12:32.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2191 - page_layout_root_id: 83 - page_layout_id: 110 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-09 13:12:32.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2192 - page_layout_root_id: 83 - page_layout_id: 110 - section_param_id: 9 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-09 13:12:32.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2193 - page_layout_root_id: 83 - page_layout_id: 110 - section_param_id: 10 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-09 13:12:32.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2194 - page_layout_root_id: 83 - page_layout_id: 107 - section_param_id: 6 - theme_id: 1 - pvalue: - '86': '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-12 13:44:05.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2195 - page_layout_root_id: 83 - page_layout_id: 107 - section_param_id: 7 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-12 13:44:05.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2196 - page_layout_root_id: 83 - page_layout_id: 107 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:auto 10px auto auto - unset: - computed_pvalue: - created_at: 2013-04-12 13:44:05.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2197 - page_layout_root_id: 83 - page_layout_id: 107 - section_param_id: 9 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-12 13:44:05.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2198 - page_layout_root_id: 83 - page_layout_id: 107 - section_param_id: 10 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-12 13:44:05.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2199 - page_layout_root_id: 83 - page_layout_id: 116 - section_param_id: 110 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-13 01:32:40.000000000 Z - updated_at: 2014-07-30 23:08:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2200 - page_layout_root_id: 83 - page_layout_id: 116 - section_param_id: 111 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-13 01:32:40.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2201 - page_layout_root_id: 83 - page_layout_id: 116 - section_param_id: 112 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-13 01:32:40.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2202 - page_layout_root_id: 83 - page_layout_id: 116 - section_param_id: 113 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-13 01:32:40.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2203 - page_layout_root_id: 83 - page_layout_id: 116 - section_param_id: 114 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - 27unset: '0' - '27': font-weight:bolder - 24unset: '0' - '24': font-size:110% - 49unset: '0' - '49': color:#00ADEE - unset: - computed_pvalue: - created_at: 2013-04-13 01:32:40.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &106563270 - id: 2204 - page_layout_root_id: 83 - page_layout_id: 113 - section_param_id: 6 - theme_id: 1 - pvalue: - '86': '1' - 86unset: '0' - 85unset: '0' - '85': clear:both - unset: - computed_pvalue: - created_at: 2013-04-13 02:35:25.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2205 - page_layout_root_id: 83 - page_layout_id: 113 - section_param_id: 7 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '1' - 21unset: '0' - '21': width:450px - unset: - computed_pvalue: - created_at: 2013-04-13 02:35:25.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2206 - page_layout_root_id: 83 - page_layout_id: 113 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:10px auto auto auto - unset: - computed_pvalue: - created_at: 2013-04-13 02:35:25.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2207 - page_layout_root_id: 83 - page_layout_id: 113 - section_param_id: 9 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-13 02:35:25.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2208 - page_layout_root_id: 83 - page_layout_id: 113 - section_param_id: 10 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-13 02:35:26.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2209 - page_layout_root_id: 83 - page_layout_id: 122 - section_param_id: 125 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-16 14:20:10.000000000 Z - updated_at: 2013-04-16 14:20:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2210 - page_layout_root_id: 83 - page_layout_id: 122 - section_param_id: 126 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - *106647770: '1' - '21': width:670px - unset: - computed_pvalue: - created_at: 2013-04-16 14:20:10.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2211 - page_layout_root_id: 83 - page_layout_id: 122 - section_param_id: 127 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-16 14:20:10.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2212 - page_layout_root_id: 83 - page_layout_id: 122 - section_param_id: 128 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-16 14:20:10.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2213 - page_layout_root_id: 83 - page_layout_id: 122 - section_param_id: 129 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - 53unset: '1' - '53': text-align:right - unset: - computed_pvalue: - created_at: 2013-04-16 14:20:10.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2214 - page_layout_root_id: 83 - page_layout_id: 105 - section_param_id: 110 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-19 13:03:09.000000000 Z - updated_at: 2013-04-19 13:03:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2215 - page_layout_root_id: 83 - page_layout_id: 105 - section_param_id: 111 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - 21unset: '0' - '21': width:150px - unset: - computed_pvalue: - created_at: 2013-04-19 13:03:10.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2216 - page_layout_root_id: 83 - page_layout_id: 105 - section_param_id: 112 - theme_id: 1 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:5px 0px 0px 0px - 31unset: '0' - '31': margin:auto auto 10px auto - unset: - computed_pvalue: - created_at: 2013-04-19 13:03:10.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2217 - page_layout_root_id: 83 - page_layout_id: 105 - section_param_id: 113 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-19 13:03:10.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2218 - page_layout_root_id: 83 - page_layout_id: 105 - section_param_id: 114 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - 53unset: '0' - '53': text-align:center - 49unset: '0' - '49': color:#00ADEE - 27unset: '0' - '27': font-weight:bold - unset: - computed_pvalue: - created_at: 2013-04-19 13:03:10.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2219 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 27 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2220 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 28 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2221 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 29 - theme_id: 1 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:0px 0px 0px 20px - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2222 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 30 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2223 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 31 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2224 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 32 - theme_id: 1 - pvalue: - 32unset: '0' - '32': padding:5px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2014-08-09 07:34:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2225 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 33 - theme_id: 1 - pvalue: - 54unset: '0' - '54': text-decoration:none - 24unset: '0' - '24': font-size:90% - 49unset: '0' - '49': color:#00ADEE - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2226 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 34 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2227 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 35 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2228 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 36 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2229 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 37 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2230 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 38 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2231 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 39 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2232 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 40 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2233 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 41 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2234 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 42 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2235 - page_layout_root_id: 83 - page_layout_id: 94 - section_param_id: 6 - theme_id: 1 - pvalue: - '86': '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:36:48.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2236 - page_layout_root_id: 83 - page_layout_id: 94 - section_param_id: 7 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:36:48.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2237 - page_layout_root_id: 83 - page_layout_id: 94 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:auto auto 20px auto - unset: - computed_pvalue: - created_at: 2013-10-05 00:36:48.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2238 - page_layout_root_id: 83 - page_layout_id: 94 - section_param_id: 9 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:36:48.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2239 - page_layout_root_id: 83 - page_layout_id: 94 - section_param_id: 10 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:36:48.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2240 - page_layout_root_id: 83 - page_layout_id: 97 - section_param_id: 6 - theme_id: 1 - pvalue: - '86': '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:37:55.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2241 - page_layout_root_id: 83 - page_layout_id: 97 - section_param_id: 7 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:37:55.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2242 - page_layout_root_id: 83 - page_layout_id: 97 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-10-05 00:37:55.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2243 - page_layout_root_id: 83 - page_layout_id: 97 - section_param_id: 9 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:37:56.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2244 - page_layout_root_id: 83 - page_layout_id: 97 - section_param_id: 10 - theme_id: 1 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:37:56.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2245 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 27 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:16.000000000 Z - updated_at: 2013-10-05 00:38:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2246 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 28 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:16.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2247 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 29 - theme_id: 1 - pvalue: - 15hidden: '1' - 31unset: '1' - '31': margin:auto auto auto 20px - 32unset: '0' - '32': padding:0px 0px 0px 20px - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:16.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2248 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 30 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:16.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2249 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 31 - theme_id: 1 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:16.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2250 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 32 - theme_id: 1 - pvalue: - 32unset: '0' - '32': padding:5px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2251 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 33 - theme_id: 1 - pvalue: - 24unset: '0' - '24': font-size:90% - 49unset: '0' - '49': color:#00ADEE - 54unset: '0' - '54': text-decoration:none - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2252 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 34 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2253 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 35 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2254 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 36 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2255 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 37 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2256 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 38 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2257 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 39 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2258 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 40 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2259 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 41 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2260 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 42 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2261 - page_layout_root_id: 83 - page_layout_id: 126 - section_param_id: 210 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:58.000000000 Z - updated_at: 2013-11-02 09:20:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2262 - page_layout_root_id: 83 - page_layout_id: 126 - section_param_id: 211 - theme_id: 1 - pvalue: - 21unset: '0' - '21': width:360px - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:58.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2263 - page_layout_root_id: 83 - page_layout_id: 126 - section_param_id: 212 - theme_id: 1 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:10px 10px 10px 10px - 7unset: '0' - '7': border-style:solid solid solid solid - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 6unset: '0' - '6': ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:58.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2264 - page_layout_root_id: 83 - page_layout_id: 126 - section_param_id: 213 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:58.000000000 Z - updated_at: 2013-11-02 09:20:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2265 - page_layout_root_id: 83 - page_layout_id: 126 - section_param_id: 214 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:59.000000000 Z - updated_at: 2013-11-02 09:20:59.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &106806970 - id: 2266 - page_layout_root_id: 83 - page_layout_id: 126 - section_param_id: 215 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:59.000000000 Z - updated_at: 2013-11-02 09:20:59.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2267 - page_layout_root_id: 83 - page_layout_id: 126 - section_param_id: 216 - theme_id: 1 - pvalue: - 2unset: '1' - '2': background-color:#000000 - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:59.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2268 - page_layout_root_id: 83 - page_layout_id: 126 - section_param_id: 217 - theme_id: 1 - pvalue: - 49unset: '0' - '49': color:#00ADEE - 53unset: '0' - '53': text-align:center - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:59.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2269 - page_layout_root_id: 83 - page_layout_id: 127 - section_param_id: 218 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:08.000000000 Z - updated_at: 2013-11-02 09:21:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2270 - page_layout_root_id: 83 - page_layout_id: 127 - section_param_id: 219 - theme_id: 1 - pvalue: - 21unset: '0' - '21': width:360px - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:08.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2271 - page_layout_root_id: 83 - page_layout_id: 127 - section_param_id: 220 - theme_id: 1 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:10px 20px 10px 20px - 7unset: '0' - '7': border-style:solid solid solid solid - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 6unset: '0' - '6': ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - 31unset: '0' - '31': margin:10px auto 10px auto - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:08.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2272 - page_layout_root_id: 83 - page_layout_id: 127 - section_param_id: 221 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:09.000000000 Z - updated_at: 2013-11-02 09:21:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2273 - page_layout_root_id: 83 - page_layout_id: 127 - section_param_id: 222 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:09.000000000 Z - updated_at: 2013-11-02 09:21:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2274 - page_layout_root_id: 83 - page_layout_id: 127 - section_param_id: 223 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:09.000000000 Z - updated_at: 2013-11-02 09:21:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2275 - page_layout_root_id: 83 - page_layout_id: 127 - section_param_id: 224 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:09.000000000 Z - updated_at: 2013-11-02 09:21:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2276 - page_layout_root_id: 83 - page_layout_id: 127 - section_param_id: 225 - theme_id: 1 - pvalue: - 49unset: '0' - '49': color:#00ADEE - 53unset: '0' - '53': text-align:center - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:09.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2277 - page_layout_root_id: 83 - page_layout_id: 120 - section_param_id: 6 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:35:02.000000000 Z - updated_at: 2013-11-02 09:35:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2278 - page_layout_root_id: 83 - page_layout_id: 120 - section_param_id: 7 - theme_id: 1 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2013-11-02 09:35:02.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2279 - page_layout_root_id: 83 - page_layout_id: 120 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:35:02.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2280 - page_layout_root_id: 83 - page_layout_id: 120 - section_param_id: 9 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:35:02.000000000 Z - updated_at: 2013-11-02 09:35:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2281 - page_layout_root_id: 83 - page_layout_id: 120 - section_param_id: 10 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:35:02.000000000 Z - updated_at: 2013-11-02 09:35:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2282 - page_layout_root_id: 83 - page_layout_id: 121 - section_param_id: 160 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:36:17.000000000 Z - updated_at: 2013-11-02 09:36:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2283 - page_layout_root_id: 83 - page_layout_id: 121 - section_param_id: 161 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:36:17.000000000 Z - updated_at: 2013-11-02 09:36:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2284 - page_layout_root_id: 83 - page_layout_id: 121 - section_param_id: 162 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:36:17.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2285 - page_layout_root_id: 83 - page_layout_id: 121 - section_param_id: 163 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:36:17.000000000 Z - updated_at: 2013-11-02 09:36:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2286 - page_layout_root_id: 83 - page_layout_id: 121 - section_param_id: 164 - theme_id: 1 - pvalue: - 24unset: '0' - '24': font-size:150% - unset: - computed_pvalue: - created_at: 2013-11-02 09:36:18.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2287 - page_layout_root_id: 83 - page_layout_id: 130 - section_param_id: 165 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2013-11-02 09:37:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2288 - page_layout_root_id: 83 - page_layout_id: 130 - section_param_id: 166 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2013-11-02 09:37:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2289 - page_layout_root_id: 83 - page_layout_id: 130 - section_param_id: 167 - theme_id: 1 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:auto 10px auto 10px - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2290 - page_layout_root_id: 83 - page_layout_id: 130 - section_param_id: 168 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2013-11-02 09:37:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2291 - page_layout_root_id: 83 - page_layout_id: 130 - section_param_id: 169 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2013-11-02 09:37:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2292 - page_layout_root_id: 83 - page_layout_id: 130 - section_param_id: 170 - theme_id: 1 - pvalue: - 31unset: '0' - '31': margin:auto auto 10px auto - 7unset: '0' - '7': border-style:none none solid none - 8unset: '0' - '8': border-width:0px 0px 1px 0px - 6unset: '0' - '6': ! 'border-color:transparent transparent #D9D9DB transparent' - 32unset: '0' - '32': padding:5px 0px 5px 0px - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2293 - page_layout_root_id: 83 - page_layout_id: 130 - section_param_id: 171 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:22.000000000 Z - updated_at: 2013-11-02 09:37:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2294 - page_layout_root_id: 83 - page_layout_id: 130 - section_param_id: 172 - theme_id: 1 - pvalue: - '27': font-weight:bold - 54unset: '1' - '54': text-decoration:underline - 53unset: '1' - '53': text-align:left - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:22.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2295 - page_layout_root_id: 83 - page_layout_id: 131 - section_param_id: 173 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:30.000000000 Z - updated_at: 2013-11-02 09:37:30.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2296 - page_layout_root_id: 83 - page_layout_id: 131 - section_param_id: 174 - theme_id: 1 - pvalue: - 21unset: '0' - '21': width:300px - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2297 - page_layout_root_id: 83 - page_layout_id: 131 - section_param_id: 175 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2298 - page_layout_root_id: 83 - page_layout_id: 131 - section_param_id: 176 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2013-11-02 09:37:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2299 - page_layout_root_id: 83 - page_layout_id: 131 - section_param_id: 177 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2013-11-02 09:37:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2300 - page_layout_root_id: 83 - page_layout_id: 131 - section_param_id: 178 - theme_id: 1 - pvalue: - 31unset: '0' - '31': margin:auto auto 10px auto - 32unset: '0' - '32': padding:5px 0px 5px 0px - 7unset: '0' - '7': border-style:none none solid none - 8unset: '0' - '8': border-width:0px 0px 1px 0px - 6unset: '0' - '6': ! 'border-color:transparent transparent #D9D9DB transparent' - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2301 - page_layout_root_id: 83 - page_layout_id: 131 - section_param_id: 179 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2013-11-02 09:37:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2302 - page_layout_root_id: 83 - page_layout_id: 131 - section_param_id: 180 - theme_id: 1 - pvalue: - '27': font-weight:bold - 54unset: '1' - '54': text-decoration:underline - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2303 - page_layout_root_id: 83 - page_layout_id: 132 - section_param_id: 181 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2304 - page_layout_root_id: 83 - page_layout_id: 132 - section_param_id: 182 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2305 - page_layout_root_id: 83 - page_layout_id: 132 - section_param_id: 183 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2014-08-09 07:34:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2306 - page_layout_root_id: 83 - page_layout_id: 132 - section_param_id: 184 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2307 - page_layout_root_id: 83 - page_layout_id: 132 - section_param_id: 185 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2308 - page_layout_root_id: 83 - page_layout_id: 132 - section_param_id: 186 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2309 - page_layout_root_id: 83 - page_layout_id: 132 - section_param_id: 187 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2310 - page_layout_root_id: 83 - page_layout_id: 132 - section_param_id: 188 - theme_id: 1 - pvalue: - '27': font-weight:bold - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2311 - page_layout_root_id: 83 - page_layout_id: 134 - section_param_id: 268 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:51.000000000 Z - updated_at: 2013-11-02 09:37:51.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2312 - page_layout_root_id: 83 - page_layout_id: 134 - section_param_id: 269 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:51.000000000 Z - updated_at: 2013-11-02 09:37:51.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2313 - page_layout_root_id: 83 - page_layout_id: 134 - section_param_id: 270 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2314 - page_layout_root_id: 83 - page_layout_id: 134 - section_param_id: 271 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2315 - page_layout_root_id: 83 - page_layout_id: 134 - section_param_id: 272 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2316 - page_layout_root_id: 83 - page_layout_id: 134 - section_param_id: 273 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2317 - page_layout_root_id: 83 - page_layout_id: 134 - section_param_id: 274 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2318 - page_layout_root_id: 83 - page_layout_id: 134 - section_param_id: 275 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2319 - page_layout_root_id: 83 - page_layout_id: 135 - section_param_id: 260 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2320 - page_layout_root_id: 83 - page_layout_id: 135 - section_param_id: 261 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2321 - page_layout_root_id: 83 - page_layout_id: 135 - section_param_id: 262 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2322 - page_layout_root_id: 83 - page_layout_id: 135 - section_param_id: 263 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2323 - page_layout_root_id: 83 - page_layout_id: 135 - section_param_id: 264 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2324 - page_layout_root_id: 83 - page_layout_id: 135 - section_param_id: 265 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2325 - page_layout_root_id: 83 - page_layout_id: 135 - section_param_id: 266 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2326 - page_layout_root_id: 83 - page_layout_id: 135 - section_param_id: 267 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:02.000000000 Z - updated_at: 2013-11-02 09:38:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2327 - page_layout_root_id: 83 - page_layout_id: 136 - section_param_id: 6 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:01.000000000 Z - updated_at: 2013-11-02 09:39:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2328 - page_layout_root_id: 83 - page_layout_id: 136 - section_param_id: 7 - theme_id: 1 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:01.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2329 - page_layout_root_id: 83 - page_layout_id: 136 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:01.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2330 - page_layout_root_id: 83 - page_layout_id: 136 - section_param_id: 9 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:01.000000000 Z - updated_at: 2013-11-02 09:39:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2331 - page_layout_root_id: 83 - page_layout_id: 136 - section_param_id: 10 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:01.000000000 Z - updated_at: 2013-11-02 09:39:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2332 - page_layout_root_id: 83 - page_layout_id: 138 - section_param_id: 6 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:32.000000000 Z - updated_at: 2013-11-02 09:39:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2333 - page_layout_root_id: 83 - page_layout_id: 138 - section_param_id: 7 - theme_id: 1 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:33.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2334 - page_layout_root_id: 83 - page_layout_id: 138 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:33.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2335 - page_layout_root_id: 83 - page_layout_id: 138 - section_param_id: 9 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:33.000000000 Z - updated_at: 2013-11-02 09:39:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2336 - page_layout_root_id: 83 - page_layout_id: 138 - section_param_id: 10 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:33.000000000 Z - updated_at: 2013-11-02 09:39:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2337 - page_layout_root_id: 83 - page_layout_id: 137 - section_param_id: 189 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2338 - page_layout_root_id: 83 - page_layout_id: 137 - section_param_id: 190 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2339 - page_layout_root_id: 83 - page_layout_id: 137 - section_param_id: 191 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2340 - page_layout_root_id: 83 - page_layout_id: 137 - section_param_id: 192 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2341 - page_layout_root_id: 83 - page_layout_id: 137 - section_param_id: 193 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2342 - page_layout_root_id: 83 - page_layout_id: 137 - section_param_id: 194 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2343 - page_layout_root_id: 83 - page_layout_id: 137 - section_param_id: 195 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2344 - page_layout_root_id: 83 - page_layout_id: 137 - section_param_id: 196 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2345 - page_layout_root_id: 83 - page_layout_id: 139 - section_param_id: 197 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2346 - page_layout_root_id: 83 - page_layout_id: 139 - section_param_id: 198 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2347 - page_layout_root_id: 83 - page_layout_id: 139 - section_param_id: 199 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2348 - page_layout_root_id: 83 - page_layout_id: 139 - section_param_id: 200 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2349 - page_layout_root_id: 83 - page_layout_id: 139 - section_param_id: 201 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2350 - page_layout_root_id: 83 - page_layout_id: 139 - section_param_id: 202 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2351 - page_layout_root_id: 83 - page_layout_id: 139 - section_param_id: 203 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2352 - page_layout_root_id: 83 - page_layout_id: 139 - section_param_id: 204 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2353 - page_layout_root_id: 83 - page_layout_id: 133 - section_param_id: 6 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:08.000000000 Z - updated_at: 2013-11-02 09:50:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2354 - page_layout_root_id: 83 - page_layout_id: 133 - section_param_id: 7 - theme_id: 1 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:08.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2355 - page_layout_root_id: 83 - page_layout_id: 133 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:08.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2356 - page_layout_root_id: 83 - page_layout_id: 133 - section_param_id: 9 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:08.000000000 Z - updated_at: 2013-11-02 09:50:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2357 - page_layout_root_id: 83 - page_layout_id: 133 - section_param_id: 10 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:09.000000000 Z - updated_at: 2013-11-02 09:50:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2358 - page_layout_root_id: 83 - page_layout_id: 128 - section_param_id: 6 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:37.000000000 Z - updated_at: 2013-11-02 09:50:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2359 - page_layout_root_id: 83 - page_layout_id: 128 - section_param_id: 7 - theme_id: 1 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:37.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2360 - page_layout_root_id: 83 - page_layout_id: 128 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:0px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:37.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2361 - page_layout_root_id: 83 - page_layout_id: 128 - section_param_id: 9 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:37.000000000 Z - updated_at: 2013-11-02 09:50:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2362 - page_layout_root_id: 83 - page_layout_id: 128 - section_param_id: 10 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:37.000000000 Z - updated_at: 2013-11-02 09:50:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2363 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 11 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:07.000000000 Z - updated_at: 2013-11-05 03:16:07.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2364 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 12 - theme_id: 1 - pvalue: - 21unset: '1' - '21': width:960px - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:07.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2365 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 13 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2366 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 14 - theme_id: 1 - pvalue: - 2unset: '1' - '2': background-color:lime - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2367 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 15 - theme_id: 1 - pvalue: - 27unset: '0' - '27': font-weight:bold - 49unset: '1' - '49': color:#00ADEE - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2368 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 16 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2369 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 17 - theme_id: 1 - pvalue: - 54unset: '0' - '54': text-decoration:none - 49unset: '0' - '49': color:#00ADEE - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2370 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 18 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2371 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 19 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2372 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 20 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2373 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 21 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2374 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 22 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2375 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 23 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2376 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 24 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:09.000000000 Z - updated_at: 2013-11-05 03:16:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2377 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 25 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:09.000000000 Z - updated_at: 2013-11-05 03:16:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2378 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 26 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:09.000000000 Z - updated_at: 2013-11-05 03:16:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2379 - page_layout_root_id: 83 - page_layout_id: 95 - section_param_id: 135 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:08.000000000 Z - updated_at: 2013-11-25 06:53:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2380 - page_layout_root_id: 83 - page_layout_id: 95 - section_param_id: 136 - theme_id: 1 - pvalue: - 21unset: '0' - '21': width:160px - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:08.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2381 - page_layout_root_id: 83 - page_layout_id: 95 - section_param_id: 137 - theme_id: 1 - pvalue: - 15hidden: '1' - 7unset: '0' - '7': border-style:none none solid none - 8unset: '0' - '8': border-width:0px 0px 1px 0px - 6unset: '0' - '6': ! 'border-color:transparent transparent #D9D9DB transparent' - 32unset: '0' - '32': padding:0px 0px 5px 0px - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2382 - page_layout_root_id: 83 - page_layout_id: 95 - section_param_id: 138 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2013-11-25 06:53:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2383 - page_layout_root_id: 83 - page_layout_id: 95 - section_param_id: 139 - theme_id: 1 - pvalue: - 27unset: '0' - '27': font-weight:bold - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2384 - page_layout_root_id: 83 - page_layout_id: 98 - section_param_id: 135 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2013-11-25 06:53:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2385 - page_layout_root_id: 83 - page_layout_id: 98 - section_param_id: 136 - theme_id: 1 - pvalue: - 21unset: '0' - '21': width:160px - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2386 - page_layout_root_id: 83 - page_layout_id: 98 - section_param_id: 137 - theme_id: 1 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:0px 0px 5px 0px - 7unset: '0' - '7': border-style:none none solid none - 8unset: '0' - '8': border-width:0px 0px 1px 0px - 6unset: '0' - '6': ! 'border-color:transparent transparent #D9D9DB transparent' - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2387 - page_layout_root_id: 83 - page_layout_id: 98 - section_param_id: 138 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2013-11-25 06:53:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2388 - page_layout_root_id: 83 - page_layout_id: 98 - section_param_id: 139 - theme_id: 1 - pvalue: - 27unset: '0' - '27': font-weight:bold - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2389 - page_layout_root_id: 83 - page_layout_id: 123 - section_param_id: 140 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2390 - page_layout_root_id: 83 - page_layout_id: 123 - section_param_id: 141 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2391 - page_layout_root_id: 83 - page_layout_id: 123 - section_param_id: 142 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2392 - page_layout_root_id: 83 - page_layout_id: 123 - section_param_id: 143 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2393 - page_layout_root_id: 83 - page_layout_id: 123 - section_param_id: 144 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2394 - page_layout_root_id: 83 - page_layout_id: 124 - section_param_id: 145 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2395 - page_layout_root_id: 83 - page_layout_id: 124 - section_param_id: 146 - theme_id: 1 - pvalue: - 101unset: '0' - '101': float:right - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2396 - page_layout_root_id: 83 - page_layout_id: 124 - section_param_id: 147 - theme_id: 1 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:10px auto auto auto - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2397 - page_layout_root_id: 83 - page_layout_id: 124 - section_param_id: 148 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2398 - page_layout_root_id: 83 - page_layout_id: 124 - section_param_id: 149 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2399 - page_layout_root_id: 83 - page_layout_id: 125 - section_param_id: 150 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2400 - page_layout_root_id: 83 - page_layout_id: 125 - section_param_id: 151 - theme_id: 1 - pvalue: - 21unset: '1' - '21': width:600px - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2401 - page_layout_root_id: 83 - page_layout_id: 125 - section_param_id: 152 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2402 - page_layout_root_id: 83 - page_layout_id: 125 - section_param_id: 153 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2403 - page_layout_root_id: 83 - page_layout_id: 125 - section_param_id: 154 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2404 - page_layout_root_id: 83 - page_layout_id: 86 - section_param_id: 323 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-29 02:49:56.000000000 Z - updated_at: 2013-11-29 02:49:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2405 - page_layout_root_id: 83 - page_layout_id: 86 - section_param_id: 324 - theme_id: 1 - pvalue: - 21unset: '1' - '21': width:220px - 101unset: '1' - '101': float:none - unset: - computed_pvalue: - created_at: 2013-11-29 02:49:56.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2406 - page_layout_root_id: 83 - page_layout_id: 86 - section_param_id: 325 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-29 02:49:57.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2407 - page_layout_root_id: 83 - page_layout_id: 86 - section_param_id: 326 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-29 02:49:57.000000000 Z - updated_at: 2013-11-29 02:49:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2408 - page_layout_root_id: 83 - page_layout_id: 86 - section_param_id: 327 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-29 02:49:57.000000000 Z - updated_at: 2013-11-29 02:49:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2409 - page_layout_root_id: 83 - page_layout_id: 89 - section_param_id: 6 - theme_id: 1 - pvalue: - 85unset: '0' - '85': clear:none - unset: - computed_pvalue: - created_at: 2013-12-03 08:14:45.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2410 - page_layout_root_id: 83 - page_layout_id: 89 - section_param_id: 7 - theme_id: 1 - pvalue: - '101': float:left - 101unset: '1' - '15': height:100px - 15unset: '1' - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2013-12-03 08:14:45.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2411 - page_layout_root_id: 83 - page_layout_id: 89 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:0px 0px 6px 0px - 7unset: '0' - '7': border-style:none none solid none - 8unset: '0' - '8': border-width:0px 0px 1px 0px - 6unset: '0' - '6': ! 'border-color:transparent transparent #D9D9DB transparent' - 31unset: '0' - '31': margin:auto 10px auto 10px - unset: - computed_pvalue: - created_at: 2013-12-03 08:14:46.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2412 - page_layout_root_id: 83 - page_layout_id: 89 - section_param_id: 9 - theme_id: 1 - pvalue: - 2unset: '1' - '2': background-color:green - 3unset: '1' - '3': background-image:pattern-1.png - unset: - computed_pvalue: - created_at: 2013-12-03 08:14:46.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2413 - page_layout_root_id: 83 - page_layout_id: 89 - section_param_id: 10 - theme_id: 1 - pvalue: - 49unset: '1' - '49': color:teal - 25unset: '1' - '25': font-style:normal - 24unset: '1' - '24': font-size:0% - 27unset: '1' - '27': font-weight:bold - unset: - computed_pvalue: - created_at: 2013-12-03 08:14:46.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2414 - page_layout_root_id: 83 - page_layout_id: 91 - section_param_id: 328 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-03 08:15:21.000000000 Z - updated_at: 2013-12-03 08:15:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2415 - page_layout_root_id: 83 - page_layout_id: 91 - section_param_id: 329 - theme_id: 1 - pvalue: - 101unset: '0' - '101': float:right - unset: - computed_pvalue: - created_at: 2013-12-03 08:15:21.000000000 Z - updated_at: 2014-08-09 07:34:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2416 - page_layout_root_id: 83 - page_layout_id: 91 - section_param_id: 330 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-12-03 08:15:21.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2417 - page_layout_root_id: 83 - page_layout_id: 91 - section_param_id: 331 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-03 08:15:21.000000000 Z - updated_at: 2013-12-03 08:15:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2418 - page_layout_root_id: 83 - page_layout_id: 91 - section_param_id: 332 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-03 08:15:21.000000000 Z - updated_at: 2013-12-03 08:15:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2419 - page_layout_root_id: 83 - page_layout_id: 85 - section_param_id: 6 - theme_id: 1 - pvalue: - 85unset: '0' - '85': clear:none - unset: - computed_pvalue: - created_at: 2013-12-05 08:06:08.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2420 - page_layout_root_id: 83 - page_layout_id: 85 - section_param_id: 7 - theme_id: 1 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2013-12-05 08:06:08.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2421 - page_layout_root_id: 83 - page_layout_id: 85 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-12-05 08:06:08.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2422 - page_layout_root_id: 83 - page_layout_id: 85 - section_param_id: 9 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-05 08:06:08.000000000 Z - updated_at: 2013-12-05 08:06:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2423 - page_layout_root_id: 83 - page_layout_id: 85 - section_param_id: 10 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-05 08:06:08.000000000 Z - updated_at: 2013-12-05 08:06:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2424 - page_layout_root_id: 83 - page_layout_id: 87 - section_param_id: 6 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-05 08:11:48.000000000 Z - updated_at: 2013-12-05 08:11:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2425 - page_layout_root_id: 83 - page_layout_id: 87 - section_param_id: 7 - theme_id: 1 - pvalue: - '101': float:right - 101unset: '0' - '15': height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2013-12-05 08:11:48.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2426 - page_layout_root_id: 83 - page_layout_id: 87 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-12-05 08:11:48.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2427 - page_layout_root_id: 83 - page_layout_id: 87 - section_param_id: 9 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-05 08:11:48.000000000 Z - updated_at: 2013-12-05 08:11:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2428 - page_layout_root_id: 83 - page_layout_id: 87 - section_param_id: 10 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-05 08:11:48.000000000 Z - updated_at: 2013-12-05 08:11:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2429 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 226 - theme_id: 1 - pvalue: - '21': width:960px - 21unset: '0' - '20': min-width:960px - 20hidden: '1' - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:53.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2430 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 227 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:53.000000000 Z - updated_at: 2014-01-22 03:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2431 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 228 - theme_id: 1 - pvalue: - '85': clear:both - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:53.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2432 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 229 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:53.000000000 Z - updated_at: 2014-01-22 03:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2433 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 230 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:53.000000000 Z - updated_at: 2014-01-22 03:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2434 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 231 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2435 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 232 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2436 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 233 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2437 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 234 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2438 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 235 - theme_id: 1 - pvalue: - 31unset: '0' - '31': margin:10px auto 2px auto - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2439 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 236 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2440 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 237 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2441 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 238 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2442 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 239 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2443 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 240 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2444 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 241 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2445 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 242 - theme_id: 1 - pvalue: - 49unset: '0' - '49': color:red - 24unset: '0' - '24': font-size:82% - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2446 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 243 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2447 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 317 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2448 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 318 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2449 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 319 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2450 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 320 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2451 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 321 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2452 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 322 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2453 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 244 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2454 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 245 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2455 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 246 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-01-22 03:39:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2456 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 247 - theme_id: 1 - pvalue: - 49unset: '0' - '49': color:#00ADEE - 24unset: '1' - '24': font-size:80% - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2457 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 248 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-01-22 03:39:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2458 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 249 - theme_id: 1 - pvalue: - 7unset: '0' - '7': border-style:solid none solid none - 8unset: '0' - '8': border-width:1px 0px 1px 0px - 6unset: '0' - '6': ! 'border-color:#D9D9DB transparent #D9D9DB transparent' - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2459 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 250 - theme_id: 1 - pvalue: - 32unset: '0' - '32': padding:5px 10px 5px 10px - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2460 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 251 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-01-22 03:39:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2461 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 252 - theme_id: 1 - pvalue: - 2unset: '0' - '2': background-color:#D9D9DB - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2462 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 253 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-01-22 03:39:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2463 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 254 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-01-22 03:39:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2464 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 255 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2465 - page_layout_root_id: 83 - page_layout_id: 83 - section_param_id: 256 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2466 - page_layout_root_id: 83 - page_layout_id: 104 - section_param_id: 55 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2467 - page_layout_root_id: 83 - page_layout_id: 104 - section_param_id: 56 - theme_id: 1 - pvalue: - 21unset: '0' - '21': width:150px - 15unset: '0' - '15': height:34px - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2468 - page_layout_root_id: 83 - page_layout_id: 104 - section_param_id: 57 - theme_id: 1 - pvalue: - 15hidden: '1' - 15unset: '0' - '15': height:33px - 32unset: '1' - '32': padding:0px 0px 0px 0px - 7unset: '0' - '7': border-style:none none solid none - 8unset: '0' - '8': border-width:0px 0px 1px 0px - 6unset: '0' - '6': ! 'border-color:transparent transparent #BBBBBB transparent' - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2469 - page_layout_root_id: 83 - page_layout_id: 104 - section_param_id: 58 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2470 - page_layout_root_id: 83 - page_layout_id: 104 - section_param_id: 59 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2471 - page_layout_root_id: 83 - page_layout_id: 104 - section_param_id: 294 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2472 - page_layout_root_id: 83 - page_layout_id: 104 - section_param_id: 295 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2473 - page_layout_root_id: 83 - page_layout_id: 104 - section_param_id: 296 - theme_id: 1 - pvalue: - 49unset: '0' - '49': color:#BBBBBB - 27unset: '0' - '27': font-weight:bold - 24unset: '0' - '24': font-size:80% - 54unset: '0' - '54': text-decoration:none - 53unset: '0' - '53': text-align:center - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2474 - page_layout_root_id: 83 - page_layout_id: 104 - section_param_id: 297 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:58.000000000 Z - updated_at: 2014-01-22 03:39:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2475 - page_layout_root_id: 83 - page_layout_id: 109 - section_param_id: 105 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-01-22 03:40:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2476 - page_layout_root_id: 83 - page_layout_id: 109 - section_param_id: 106 - theme_id: 1 - pvalue: - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2477 - page_layout_root_id: 83 - page_layout_id: 109 - section_param_id: 107 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-07-30 23:08:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2478 - page_layout_root_id: 83 - page_layout_id: 109 - section_param_id: 108 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-01-22 03:40:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2479 - page_layout_root_id: 83 - page_layout_id: 109 - section_param_id: 109 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-01-22 03:40:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2480 - page_layout_root_id: 83 - page_layout_id: 109 - section_param_id: 302 - theme_id: 1 - pvalue: - 32unset: '0' - '32': padding:5px 5px 5px 5px - 7unset: '0' - '7': border-style:solid none solid none - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 6unset: '0' - '6': ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2481 - page_layout_root_id: 83 - page_layout_id: 109 - section_param_id: 303 - theme_id: 1 - pvalue: - 2unset: '0' - '2': background-color:transparent - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2482 - page_layout_root_id: 83 - page_layout_id: 109 - section_param_id: 304 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2483 - page_layout_root_id: 83 - page_layout_id: 109 - section_param_id: 305 - theme_id: 1 - pvalue: - 27unset: '0' - '27': font-weight:bold - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2484 - page_layout_root_id: 83 - page_layout_id: 109 - section_param_id: 306 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2485 - page_layout_root_id: 83 - page_layout_id: 111 - section_param_id: 55 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2486 - page_layout_root_id: 83 - page_layout_id: 111 - section_param_id: 56 - theme_id: 1 - pvalue: - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2487 - page_layout_root_id: 83 - page_layout_id: 111 - section_param_id: 57 - theme_id: 1 - pvalue: - 15hidden: '1' - 32unset: '1' - '32': padding:0px 0px 0px 0px - 7unset: '0' - '7': border-style:none none solid none - 8unset: '0' - '8': border-width:0px 0px 1px 0px - 6unset: '0' - '6': ! 'border-color:transparent transparent #D9D9DB transparent' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2488 - page_layout_root_id: 83 - page_layout_id: 111 - section_param_id: 58 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2489 - page_layout_root_id: 83 - page_layout_id: 111 - section_param_id: 59 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2490 - page_layout_root_id: 83 - page_layout_id: 111 - section_param_id: 294 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2491 - page_layout_root_id: 83 - page_layout_id: 111 - section_param_id: 295 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2492 - page_layout_root_id: 83 - page_layout_id: 111 - section_param_id: 296 - theme_id: 1 - pvalue: - 49unset: '0' - '49': color:black - 54unset: '0' - '54': text-decoration:none - 27unset: '0' - '27': font-weight:bold - 24unset: '0' - '24': font-size:150% - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2493 - page_layout_root_id: 83 - page_layout_id: 111 - section_param_id: 297 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2494 - page_layout_root_id: 83 - page_layout_id: 118 - section_param_id: 115 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2495 - page_layout_root_id: 83 - page_layout_id: 118 - section_param_id: 116 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2496 - page_layout_root_id: 83 - page_layout_id: 118 - section_param_id: 117 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2497 - page_layout_root_id: 83 - page_layout_id: 118 - section_param_id: 118 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2498 - page_layout_root_id: 83 - page_layout_id: 118 - section_param_id: 119 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2499 - page_layout_root_id: 83 - page_layout_id: 118 - section_param_id: 307 - theme_id: 1 - pvalue: - 21unset: '0' - '21': width:60px - 7unset: '0' - '7': border-style:solid solid solid solid - 6unset: '0' - '6': ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 32unset: '0' - '32': padding:7px 10px 7px 10px - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2500 - page_layout_root_id: 83 - page_layout_id: 118 - section_param_id: 308 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2501 - page_layout_root_id: 83 - page_layout_id: 118 - section_param_id: 309 - theme_id: 1 - pvalue: - 53unset: '0' - '53': text-align:left - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2502 - page_layout_root_id: 83 - page_layout_id: 119 - section_param_id: 120 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-01-22 03:40:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2503 - page_layout_root_id: 83 - page_layout_id: 119 - section_param_id: 121 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-01-22 03:40:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2504 - page_layout_root_id: 83 - page_layout_id: 119 - section_param_id: 122 - theme_id: 1 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:auto auto auto 5px - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2505 - page_layout_root_id: 83 - page_layout_id: 119 - section_param_id: 123 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-01-22 03:40:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2506 - page_layout_root_id: 83 - page_layout_id: 119 - section_param_id: 124 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-01-22 03:40:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2507 - page_layout_root_id: 83 - page_layout_id: 119 - section_param_id: 310 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-07-30 23:08:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2508 - page_layout_root_id: 83 - page_layout_id: 119 - section_param_id: 311 - theme_id: 1 - pvalue: - 2unset: '0' - '2': background-color:#00ADEE - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2509 - page_layout_root_id: 83 - page_layout_id: 119 - section_param_id: 312 - theme_id: 1 - pvalue: - 49unset: '0' - '49': color:white - 24unset: '1' - '24': font-size:14em - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2510 - page_layout_root_id: 83 - page_layout_id: 144 - section_param_id: 284 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-01-22 03:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2511 - page_layout_root_id: 83 - page_layout_id: 144 - section_param_id: 285 - theme_id: 1 - pvalue: - '21': width:600px - 21unset: '0' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2512 - page_layout_root_id: 83 - page_layout_id: 144 - section_param_id: 286 - theme_id: 1 - pvalue: - '7': border-style:solid solid solid solid - 7unset: '0' - '8': border-width:1px 1px 1px 1px - 8unset: '0' - '6': ! 'border-color:#CCCCCC #CCCCCC #CCCCCC #CCCCCC' - 6unset: '0' - '15': height:598px - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2513 - page_layout_root_id: 83 - page_layout_id: 144 - section_param_id: 287 - theme_id: 1 - pvalue: - '2': background-color:#FFFFFF - 2unset: '0' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2514 - page_layout_root_id: 83 - page_layout_id: 144 - section_param_id: 288 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-01-22 03:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2515 - page_layout_root_id: 83 - page_layout_id: 144 - section_param_id: 313 - theme_id: 1 - pvalue: - '32': padding:2px 2px 2px 2px - 32unset: '0' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2516 - page_layout_root_id: 83 - page_layout_id: 144 - section_param_id: 314 - theme_id: 1 - pvalue: - '2': background-color:#EEEEEE - 2unset: '0' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2517 - page_layout_root_id: 83 - page_layout_id: 144 - section_param_id: 315 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:05.000000000 Z - updated_at: 2014-01-22 03:40:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2518 - page_layout_root_id: 83 - page_layout_id: 144 - section_param_id: 316 - theme_id: 1 - pvalue: - '32': padding:0 10px 5px 10px - 32unset: '0' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:05.000000000 Z - updated_at: 2014-08-09 07:34:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2519 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 333 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2520 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 334 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2521 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 335 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-08-09 07:34:27.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2522 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 336 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2523 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 337 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2524 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 338 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2525 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 339 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2526 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 340 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2527 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 341 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2528 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 342 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2529 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 343 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2530 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 344 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2531 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 345 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2532 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 346 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2533 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 347 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2534 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 348 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2535 - page_layout_root_id: 83 - page_layout_id: 140 - section_param_id: 6 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:03:39.000000000 Z - updated_at: 2014-02-19 13:03:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2536 - page_layout_root_id: 83 - page_layout_id: 140 - section_param_id: 7 - theme_id: 1 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-02-19 13:03:39.000000000 Z - updated_at: 2014-08-09 07:34:27.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2537 - page_layout_root_id: 83 - page_layout_id: 140 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-02-19 13:03:39.000000000 Z - updated_at: 2014-08-09 07:34:27.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2538 - page_layout_root_id: 83 - page_layout_id: 140 - section_param_id: 9 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:03:39.000000000 Z - updated_at: 2014-02-19 13:03:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2539 - page_layout_root_id: 83 - page_layout_id: 140 - section_param_id: 10 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:03:39.000000000 Z - updated_at: 2014-02-19 13:03:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2540 - page_layout_root_id: 83 - page_layout_id: 141 - section_param_id: 349 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2541 - page_layout_root_id: 83 - page_layout_id: 141 - section_param_id: 350 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2542 - page_layout_root_id: 83 - page_layout_id: 141 - section_param_id: 351 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-08-09 07:34:27.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2543 - page_layout_root_id: 83 - page_layout_id: 141 - section_param_id: 352 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2544 - page_layout_root_id: 83 - page_layout_id: 141 - section_param_id: 353 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2545 - page_layout_root_id: 83 - page_layout_id: 141 - section_param_id: 354 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2546 - page_layout_root_id: 83 - page_layout_id: 141 - section_param_id: 355 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2547 - page_layout_root_id: 83 - page_layout_id: 141 - section_param_id: 356 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2548 - page_layout_root_id: 83 - page_layout_id: 108 - section_param_id: 289 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:34:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2549 - page_layout_root_id: 83 - page_layout_id: 108 - section_param_id: 290 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:34:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2550 - page_layout_root_id: 83 - page_layout_id: 108 - section_param_id: 291 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-08-09 07:34:27.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2551 - page_layout_root_id: 83 - page_layout_id: 108 - section_param_id: 292 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:34:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2552 - page_layout_root_id: 83 - page_layout_id: 108 - section_param_id: 293 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:34:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2553 - page_layout_root_id: 83 - page_layout_id: 108 - section_param_id: 299 - theme_id: 1 - pvalue: - 32unset: '0' - '32': padding:5px 10px 5px 10px - 7unset: '0' - '7': border-style:solid solid solid solid - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 6unset: '0' - '6': ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-08-09 07:34:27.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2554 - page_layout_root_id: 83 - page_layout_id: 108 - section_param_id: 301 - theme_id: 1 - pvalue: - 32unset: '0' - '32': padding:5px 5px 5px 5px - 7unset: '0' - '7': border-style:solid solid solid solid - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 6unset: '0' - '6': ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - 31unset: '0' - '31': margin:6px 6px 6px auto - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-08-09 07:34:27.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2555 - page_layout_root_id: 83 - page_layout_id: 129 - section_param_id: 6 - theme_id: 1 - pvalue: - 85unset: '0' - '85': clear:none - unset: - computed_pvalue: - created_at: 2014-03-04 14:20:03.000000000 Z - updated_at: 2014-08-09 07:34:27.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2556 - page_layout_root_id: 83 - page_layout_id: 129 - section_param_id: 7 - theme_id: 1 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '0' - unset: - computed_pvalue: - created_at: 2014-03-04 14:20:03.000000000 Z - updated_at: 2014-08-09 07:34:27.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2557 - page_layout_root_id: 83 - page_layout_id: 129 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-03-04 14:20:03.000000000 Z - updated_at: 2014-08-09 07:34:27.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2558 - page_layout_root_id: 83 - page_layout_id: 129 - section_param_id: 9 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-04 14:20:03.000000000 Z - updated_at: 2014-03-04 14:20:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2559 - page_layout_root_id: 83 - page_layout_id: 129 - section_param_id: 10 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-04 14:20:03.000000000 Z - updated_at: 2014-03-04 14:20:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2560 - page_layout_root_id: 83 - page_layout_id: 114 - section_param_id: 357 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:19:56.000000000 Z - updated_at: 2014-03-06 13:19:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2561 - page_layout_root_id: 83 - page_layout_id: 114 - section_param_id: 358 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:19:56.000000000 Z - updated_at: 2014-03-06 13:19:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2562 - page_layout_root_id: 83 - page_layout_id: 114 - section_param_id: 359 - theme_id: 1 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:auto auto 10px auto - unset: - computed_pvalue: - created_at: 2014-03-06 13:19:56.000000000 Z - updated_at: 2014-08-09 07:34:27.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2563 - page_layout_root_id: 83 - page_layout_id: 114 - section_param_id: 360 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:19:56.000000000 Z - updated_at: 2014-03-06 13:19:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2564 - page_layout_root_id: 83 - page_layout_id: 114 - section_param_id: 361 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:19:56.000000000 Z - updated_at: 2014-03-06 13:19:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2565 - page_layout_root_id: 83 - page_layout_id: 117 - section_param_id: 6 - theme_id: 1 - pvalue: - 85unset: '0' - '85': clear:none - unset: - computed_pvalue: - created_at: 2014-03-06 13:42:19.000000000 Z - updated_at: 2014-08-09 07:34:27.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2566 - page_layout_root_id: 83 - page_layout_id: 117 - section_param_id: 7 - theme_id: 1 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - 21unset: '0' - '21': width:230px - unset: - computed_pvalue: - created_at: 2014-03-06 13:42:19.000000000 Z - updated_at: 2014-08-09 07:34:27.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2567 - page_layout_root_id: 83 - page_layout_id: 117 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-03-06 13:42:19.000000000 Z - updated_at: 2014-08-09 07:34:27.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2568 - page_layout_root_id: 83 - page_layout_id: 117 - section_param_id: 9 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:42:19.000000000 Z - updated_at: 2014-03-06 13:42:19.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2569 - page_layout_root_id: 83 - page_layout_id: 117 - section_param_id: 10 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:42:19.000000000 Z - updated_at: 2014-03-06 13:42:19.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2570 - page_layout_root_id: 83 - page_layout_id: 115 - section_param_id: 6 - theme_id: 1 - pvalue: - 85unset: '0' - '85': clear:both - unset: - computed_pvalue: - created_at: 2014-03-06 15:17:45.000000000 Z - updated_at: 2014-08-09 07:34:27.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2571 - page_layout_root_id: 83 - page_layout_id: 115 - section_param_id: 7 - theme_id: 1 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-03-06 15:17:45.000000000 Z - updated_at: 2014-08-09 07:34:27.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2572 - page_layout_root_id: 83 - page_layout_id: 115 - section_param_id: 8 - theme_id: 1 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-03-06 15:17:45.000000000 Z - updated_at: 2014-08-09 07:34:27.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2573 - page_layout_root_id: 83 - page_layout_id: 115 - section_param_id: 9 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 15:17:45.000000000 Z - updated_at: 2014-03-06 15:17:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 2574 - page_layout_root_id: 83 - page_layout_id: 115 - section_param_id: 10 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 15:17:45.000000000 Z - updated_at: 2014-03-06 15:17:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3973 - page_layout_root_id: 83 - page_layout_id: 103 - section_param_id: 404 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-04 12:47:18.000000000 Z - updated_at: 2014-07-04 12:47:18.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4131 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 420 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4135 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 421 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4137 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 421 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4143 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 422 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4148 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 423 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4152 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 424 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4154 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 424 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4160 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 425 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4165 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 426 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4169 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 427 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4171 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 427 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4177 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 428 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4182 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 429 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4186 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 430 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4188 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 430 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4194 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 431 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4199 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 432 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4203 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 433 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4205 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 433 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4211 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 434 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4216 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 435 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4220 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 436 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4222 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 436 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4228 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 437 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4233 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 438 - theme_id: 1 - pvalue: *106563270 - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4237 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 439 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4239 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 439 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4245 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 440 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4250 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 441 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4254 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 442 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4256 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 442 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4262 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 443 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4267 - page_layout_root_id: 83 - page_layout_id: 90 - section_param_id: 444 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4271 - page_layout_root_id: 83 - page_layout_id: 96 - section_param_id: 445 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4273 - page_layout_root_id: 83 - page_layout_id: 99 - section_param_id: 445 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4279 - page_layout_root_id: 83 - page_layout_id: 88 - section_param_id: 446 - theme_id: 1 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -page_layouts: -- !ruby/object:Spree::PageLayout - attributes: - id: 83 - site_id: 2 - root_id: 83 - parent_id: - lft: 1 - rgt: 124 - title: root - slug: root - section_id: 75 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: true - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:35.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 84 - site_id: 2 - root_id: 83 - parent_id: 83 - lft: 2 - rgt: 17 - title: Header - slug: header - section_id: 2 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-05-10 13:08:24.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 85 - site_id: 2 - root_id: 83 - parent_id: 84 - lft: 3 - rgt: 10 - title: container000 - slug: container000 - section_id: 2 - section_instance: 20 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-16 09:30:58.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 86 - site_id: 2 - root_id: 83 - parent_id: 85 - lft: 4 - rgt: 5 - title: Logo - slug: logo - section_id: 97 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-05-10 13:08:24.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 87 - site_id: 2 - root_id: 83 - parent_id: 85 - lft: 6 - rgt: 9 - title: container - slug: container--6 - section_id: 2 - section_instance: 21 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:35.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 88 - site_id: 2 - root_id: 83 - parent_id: 87 - lft: 7 - rgt: 8 - title: logged&unlogged menu - slug: logged-unlogged-menu - section_id: 101 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:35.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 89 - site_id: 2 - root_id: 83 - parent_id: 84 - lft: 11 - rgt: 16 - title: container - slug: container--7 - section_id: 2 - section_instance: 19 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 90 - site_id: 2 - root_id: 83 - parent_id: 89 - lft: 12 - rgt: 13 - title: Main menu - slug: main-menu - section_id: 3 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-05-10 13:08:24.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 91 - site_id: 2 - root_id: 83 - parent_id: 89 - lft: 14 - rgt: 15 - title: Mini cart - slug: mini-cart - section_id: 99 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 92 - site_id: 2 - root_id: 83 - parent_id: 83 - lft: 18 - rgt: 117 - title: content - slug: content - section_id: 2 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-05-10 13:08:24.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 93 - site_id: 2 - root_id: 83 - parent_id: 92 - lft: 19 - rgt: 32 - title: lftnav - slug: lftnav - section_id: 2 - section_instance: 4 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-05-10 13:08:24.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 94 - site_id: 2 - root_id: 83 - parent_id: 93 - lft: 20 - rgt: 25 - title: container - slug: container--8 - section_id: 2 - section_instance: 12 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 95 - site_id: 2 - root_id: 83 - parent_id: 94 - lft: 21 - rgt: 22 - title: taxonomy name - slug: taxonomy-name - section_id: 40 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 96 - site_id: 2 - root_id: 83 - parent_id: 94 - lft: 23 - rgt: 24 - title: vmenu - slug: vmenu - section_id: 6 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 97 - site_id: 2 - root_id: 83 - parent_id: 93 - lft: 26 - rgt: 31 - title: container - slug: container--9 - section_id: 2 - section_instance: 13 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 98 - site_id: 2 - root_id: 83 - parent_id: 97 - lft: 27 - rgt: 28 - title: taxonomy name - slug: taxonomy-name--2 - section_id: 40 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 99 - site_id: 2 - root_id: 83 - parent_id: 97 - lft: 29 - rgt: 30 - title: vmenu - slug: vmenu--2 - section_id: 6 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 100 - site_id: 2 - root_id: 83 - parent_id: 92 - lft: 33 - rgt: 116 - title: main content - slug: main-content - section_id: 2 - section_instance: 5 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-05-10 13:08:24.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 101 - site_id: 2 - root_id: 83 - parent_id: 100 - lft: 34 - rgt: 43 - title: product list - slug: product-list - section_id: 2 - section_instance: 6 - section_context: home,list - data_source: gpvs - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-26 09:44:58.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 102 - site_id: 2 - root_id: 83 - parent_id: 101 - lft: 35 - rgt: 42 - title: container - slug: container--10 - section_id: 2 - section_instance: 8 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-26 09:44:58.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 103 - site_id: 2 - root_id: 83 - parent_id: 102 - lft: 36 - rgt: 37 - title: product image - slug: product-image - section_id: 17 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-05-10 13:08:24.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 104 - site_id: 2 - root_id: 83 - parent_id: 102 - lft: 38 - rgt: 39 - title: product name - slug: product-name - section_id: 13 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-05-10 13:08:24.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 105 - site_id: 2 - root_id: 83 - parent_id: 102 - lft: 40 - rgt: 41 - title: product price - slug: product-price - section_id: 30 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 106 - site_id: 2 - root_id: 83 - parent_id: 100 - lft: 44 - rgt: 71 - title: product detail - slug: product-detail - section_id: 2 - section_instance: 7 - section_context: detail - data_source: this_product - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-05-10 13:08:24.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 107 - site_id: 2 - root_id: 83 - parent_id: 106 - lft: 45 - rgt: 50 - title: container - slug: container--11 - section_id: 2 - section_instance: 10 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 108 - site_id: 2 - root_id: 83 - parent_id: 107 - lft: 46 - rgt: 47 - title: image with thumbnails - slug: image-with-thumbnails - section_id: 94 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 109 - site_id: 2 - root_id: 83 - parent_id: 107 - lft: 48 - rgt: 49 - title: product_properties - slug: product_properties - section_id: 28 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 110 - site_id: 2 - root_id: 83 - parent_id: 106 - lft: 51 - rgt: 70 - title: container - slug: container--12 - section_id: 2 - section_instance: 9 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 111 - site_id: 2 - root_id: 83 - parent_id: 110 - lft: 52 - rgt: 53 - title: product name - slug: product-name--2 - section_id: 13 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-05-10 13:08:24.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 112 - site_id: 2 - root_id: 83 - parent_id: 110 - lft: 54 - rgt: 55 - title: product description - slug: product-description - section_id: 15 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-05-10 13:08:24.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 113 - site_id: 2 - root_id: 83 - parent_id: 110 - lft: 56 - rgt: 69 - title: container - slug: container--13 - section_id: 2 - section_instance: 11 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 114 - site_id: 2 - root_id: 83 - parent_id: 113 - lft: 57 - rgt: 58 - title: Product option values - slug: product-option-values - section_id: 107 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 115 - site_id: 2 - root_id: 83 - parent_id: 113 - lft: 59 - rgt: 68 - title: container - slug: container--14 - section_id: 2 - section_instance: 25 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 116 - site_id: 2 - root_id: 83 - parent_id: 115 - lft: 60 - rgt: 61 - title: product price - slug: product-price--2 - section_id: 30 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 117 - site_id: 2 - root_id: 83 - parent_id: 115 - lft: 62 - rgt: 67 - title: container - slug: container--15 - section_id: 2 - section_instance: 24 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 118 - site_id: 2 - root_id: 83 - parent_id: 117 - lft: 63 - rgt: 64 - title: product quantity - slug: product-quantity - section_id: 32 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 119 - site_id: 2 - root_id: 83 - parent_id: 117 - lft: 65 - rgt: 66 - title: product atc - slug: product-atc - section_id: 34 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 120 - site_id: 2 - root_id: 83 - parent_id: 100 - lft: 72 - rgt: 115 - title: other pages - slug: other-pages - section_id: 2 - section_instance: 14 - section_context: cart,checkout,thanks,account,signup,login,password - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-05-10 13:08:24.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 121 - site_id: 2 - root_id: 83 - parent_id: 120 - lft: 73 - rgt: 74 - title: taxon name - slug: taxon-name - section_id: 50 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 122 - site_id: 2 - root_id: 83 - parent_id: 120 - lft: 75 - rgt: 80 - title: cart - slug: cart - section_id: 36 - section_instance: 1 - section_context: cart - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 123 - site_id: 2 - root_id: 83 - parent_id: 122 - lft: 76 - rgt: 77 - title: cart items - slug: cart-items - section_id: 42 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 124 - site_id: 2 - root_id: 83 - parent_id: 122 - lft: 78 - rgt: 79 - title: order total price - slug: order-total-price - section_id: 44 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: *106806970 - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 125 - site_id: 2 - root_id: 83 - parent_id: 120 - lft: 81 - rgt: 86 - title: checkout - slug: checkout - section_id: 46 - section_instance: 2 - section_context: checkout - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 126 - site_id: 2 - root_id: 83 - parent_id: 125 - lft: 82 - rgt: 83 - title: ship form - slug: ship-form - section_id: 69 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 127 - site_id: 2 - root_id: 83 - parent_id: 125 - lft: 84 - rgt: 85 - title: payment form - slug: payment-form - section_id: 72 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 128 - site_id: 2 - root_id: 83 - parent_id: 120 - lft: 87 - rgt: 96 - title: thanks - slug: thanks - section_id: 2 - section_instance: 18 - section_context: thanks - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 129 - site_id: 2 - root_id: 83 - parent_id: 128 - lft: 88 - rgt: 93 - title: container - slug: container--16 - section_id: 2 - section_instance: 23 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:36.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 130 - site_id: 2 - root_id: 83 - parent_id: 129 - lft: 89 - rgt: 90 - title: order address - slug: order-address - section_id: 52 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:37.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 131 - site_id: 2 - root_id: 83 - parent_id: 129 - lft: 91 - rgt: 92 - title: order payment - slug: order-payment - section_id: 55 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:37.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 132 - site_id: 2 - root_id: 83 - parent_id: 128 - lft: 94 - rgt: 95 - title: order items - slug: order-items - section_id: 58 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:37.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 133 - site_id: 2 - root_id: 83 - parent_id: 120 - lft: 97 - rgt: 102 - title: account - slug: account - section_id: 2 - section_instance: 17 - section_context: account - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:37.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 134 - site_id: 2 - root_id: 83 - parent_id: 133 - lft: 98 - rgt: 99 - title: profile - slug: profile - section_id: 85 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:37.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 135 - site_id: 2 - root_id: 83 - parent_id: 133 - lft: 100 - rgt: 101 - title: order list - slug: order-list - section_id: 82 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:37.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 136 - site_id: 2 - root_id: 83 - parent_id: 120 - lft: 103 - rgt: 106 - title: login - slug: login - section_id: 2 - section_instance: 15 - section_context: login - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-05-10 13:08:24.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 137 - site_id: 2 - root_id: 83 - parent_id: 136 - lft: 104 - rgt: 105 - title: login form - slug: login-form - section_id: 61 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:37.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 138 - site_id: 2 - root_id: 83 - parent_id: 120 - lft: 107 - rgt: 110 - title: signup - slug: signup - section_id: 2 - section_instance: 16 - section_context: signup - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-05-10 13:08:24.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 139 - site_id: 2 - root_id: 83 - parent_id: 138 - lft: 108 - rgt: 109 - title: sign up form - slug: sign-up-form - section_id: 64 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:37.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 140 - site_id: 2 - root_id: 83 - parent_id: 120 - lft: 111 - rgt: 114 - title: password - slug: password - section_id: 2 - section_instance: 22 - section_context: password - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-05-10 13:08:24.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 141 - site_id: 2 - root_id: 83 - parent_id: 140 - lft: 112 - rgt: 113 - title: password recover form - slug: password-recover-form - section_id: 104 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:37.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 142 - site_id: 2 - root_id: 83 - parent_id: 83 - lft: 118 - rgt: 121 - title: footer - slug: footer - section_id: 2 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-05-10 13:08:24.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 143 - site_id: 2 - root_id: 83 - parent_id: 142 - lft: 119 - rgt: 120 - title: copyright - slug: copyright - section_id: 11 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-05-10 13:08:24.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 144 - site_id: 2 - root_id: 83 - parent_id: 83 - lft: 122 - rgt: 123 - title: dialog - slug: dialog - section_id: 90 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 1 - is_full_html: false - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-07-12 06:27:37.000000000 Z - data_source_param: '' -template_files: -- !ruby/object:Spree::TemplateFile - attributes: - id: 1 - theme_id: 1 - attachment_width: - attachment_height: - attachment_file_size: 1574 - attachment_content_type: image/gif - attachment_file_name: logo.gif - attachment_updated_at: 2013-05-12 13:29:47.000000000 Z - created_at: 2013-05-12 13:29:53.000000000 Z -- !ruby/object:Spree::TemplateFile - attributes: - id: 16 - theme_id: 1 - attachment_width: - attachment_height: - attachment_file_size: 16469 - attachment_content_type: image/jpeg - attachment_file_name: 6a5e31b1jw1doccdf5tdqj.jpg - attachment_updated_at: 2014-07-03 15:26:52.000000000 Z - created_at: 2014-07-03 15:26:52.000000000 Z -template_releases: -- !ruby/object:Spree::TemplateRelease - attributes: - id: 1 - name: First theme released - theme_id: 1 - created_at: 2013-05-12 13:29:53.000000000 Z - updated_at: 2013-05-12 13:29:47.000000000 Z -- !ruby/object:Spree::TemplateRelease - attributes: - id: 2 - name: just a test - theme_id: 1 - created_at: 2014-02-16 13:05:22.000000000 Z - updated_at: 2014-02-16 13:05:22.000000000 Z -- !ruby/object:Spree::TemplateRelease - attributes: - id: 3 - name: just a test - theme_id: 1 - created_at: 2014-02-20 14:39:05.000000000 Z - updated_at: 2014-02-20 14:39:05.000000000 Z -- !ruby/object:Spree::TemplateRelease - attributes: - id: 4 - name: just a test - theme_id: 1 - created_at: 2014-03-02 06:58:26.000000000 Z - updated_at: 2014-03-02 06:58:26.000000000 Z -- !ruby/object:Spree::TemplateRelease - attributes: - id: 5 - name: just a test - theme_id: 1 - created_at: 2014-04-03 14:04:43.000000000 Z - updated_at: 2014-04-03 14:04:43.000000000 Z -- !ruby/object:Spree::TemplateRelease - attributes: - id: 8 - name: just a test - theme_id: 1 - created_at: 2014-07-26 08:14:37.000000000 Z - updated_at: 2014-07-26 08:14:37.000000000 Z diff --git a/spree_theme/db/themes/designs/2_1_1408541455/6a5e31b1jw1doccdf5tdqj.jpg b/spree_theme/db/themes/designs/2_1_1408541455/6a5e31b1jw1doccdf5tdqj.jpg deleted file mode 100644 index 7fff0f08..00000000 Binary files a/spree_theme/db/themes/designs/2_1_1408541455/6a5e31b1jw1doccdf5tdqj.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_1_1408541455/logo.gif b/spree_theme/db/themes/designs/2_1_1408541455/logo.gif deleted file mode 100644 index 2782a6b2..00000000 Binary files a/spree_theme/db/themes/designs/2_1_1408541455/logo.gif and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_1_1410512684.json b/spree_theme/db/themes/designs/2_1_1410512684.json deleted file mode 100644 index 7cd50a4f..00000000 --- a/spree_theme/db/themes/designs/2_1_1410512684.json +++ /dev/null @@ -1 +0,0 @@ -{"template":{"template_theme":{"assigned_resource_ids":{"237":{},"239":{"spree/taxon":[0,0]},"241":{"spree/taxon":[0]},"245":{"spree/taxon":[1]},"248":{"spree/taxon":[2]}},"created_at":"2014-08-02T07:06:06.000Z","id":1,"page_layout_root_id":234,"release_id":11,"site_id":2,"slug":"","title":"\u793a\u4f8b\u6a21\u677f","updated_at":"2014-08-23T00:09:42.000Z"}},"param_values":[{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2536,"page_layout_id":235,"page_layout_root_id":234,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2537,"page_layout_id":235,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2538,"page_layout_id":235,"page_layout_root_id":234,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 20px auto"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2539,"page_layout_id":235,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2540,"page_layout_id":235,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2541,"page_layout_id":243,"page_layout_root_id":234,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2542,"page_layout_id":243,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2543,"page_layout_id":243,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2544,"page_layout_id":243,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0","2unset":"1","2":"background-color:yellow"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2545,"page_layout_id":243,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2546,"page_layout_id":293,"page_layout_root_id":234,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2547,"page_layout_id":293,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2548,"page_layout_id":293,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2549,"page_layout_id":293,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0","2unset":"0","2":"background-color:#F5F5F5"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2550,"page_layout_id":293,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2551,"page_layout_id":244,"page_layout_root_id":234,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2552,"page_layout_id":244,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:200px"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2553,"page_layout_id":244,"page_layout_root_id":234,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto 10px auto 10px"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2554,"page_layout_id":244,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0","2unset":"1","2":"background-color:#FFF8ED"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2555,"page_layout_id":244,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0","49unset":"1","49":"color:black"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2556,"page_layout_id":251,"page_layout_root_id":234,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2557,"page_layout_id":251,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:750px"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2558,"page_layout_id":251,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2559,"page_layout_id":251,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2560,"page_layout_id":251,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2561,"page_layout_id":252,"page_layout_root_id":234,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2562,"page_layout_id":252,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2563,"page_layout_id":252,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2564,"page_layout_id":252,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2565,"page_layout_id":252,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2566,"page_layout_id":257,"page_layout_root_id":234,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2567,"page_layout_id":257,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"1","21":"width:200px"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2568,"page_layout_id":257,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2569,"page_layout_id":257,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2570,"page_layout_id":257,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2571,"page_layout_id":254,"page_layout_root_id":234,"pvalue":{},"section_param_id":65,"theme_id":1,"unset":null,"updated_at":"2013-04-08T13:27:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2572,"page_layout_id":254,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111","15unset":"0","15":"height:110px","21unset":"0","21":"width:150px"},"section_param_id":66,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2573,"page_layout_id":254,"page_layout_root_id":234,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB","32unset":"0","32":"padding:5px 0px 5px 0px","15unset":"0","15":"height:98px"},"section_param_id":67,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2574,"page_layout_id":254,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":68,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2575,"page_layout_id":254,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111","53unset":"0","53":"text-align:center"},"section_param_id":69,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2576,"page_layout_id":263,"page_layout_root_id":234,"pvalue":{},"section_param_id":60,"theme_id":1,"unset":null,"updated_at":"2013-04-08T13:27:10.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2577,"page_layout_id":263,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":61,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2578,"page_layout_id":263,"page_layout_root_id":234,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:10px 0px 10px 0px"},"section_param_id":62,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2579,"page_layout_id":263,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":63,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2580,"page_layout_id":263,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111","24unset":"0","24":"font-size:90%"},"section_param_id":64,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2581,"page_layout_id":294,"page_layout_root_id":234,"pvalue":{},"section_param_id":50,"theme_id":1,"unset":null,"updated_at":"2013-04-08T13:27:11.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2582,"page_layout_id":294,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":51,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2583,"page_layout_id":294,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":52,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2584,"page_layout_id":294,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":53,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2585,"page_layout_id":294,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":54,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2586,"page_layout_id":253,"page_layout_root_id":234,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:both"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2587,"page_layout_id":253,"page_layout_root_id":234,"pvalue":{"15":"height:160px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:160px"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2588,"page_layout_id":253,"page_layout_root_id":234,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 20px auto","15unset":"1","15":"height:140px","32unset":"1","32":"padding:0px 0px 0px 0px","8unset":"1","8":"border-width:0px 0px 0px 0px"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2589,"page_layout_id":253,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2590,"page_layout_id":253,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2591,"page_layout_id":261,"page_layout_root_id":234,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2592,"page_layout_id":261,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:350px"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2593,"page_layout_id":261,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2594,"page_layout_id":261,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2595,"page_layout_id":261,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2596,"page_layout_id":258,"page_layout_root_id":234,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2597,"page_layout_id":258,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2598,"page_layout_id":258,"page_layout_root_id":234,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto 10px auto auto"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2599,"page_layout_id":258,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2600,"page_layout_id":258,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2601,"page_layout_id":267,"page_layout_root_id":234,"pvalue":{},"section_param_id":110,"theme_id":1,"unset":null,"updated_at":"2014-07-30T23:08:13.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2602,"page_layout_id":267,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":111,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2603,"page_layout_id":267,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":112,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2604,"page_layout_id":267,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":113,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2605,"page_layout_id":267,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111","27unset":"0","27":"font-weight:bolder","24unset":"0","24":"font-size:110%","49unset":"0","49":"color:#00ADEE"},"section_param_id":114,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2606,"page_layout_id":264,"page_layout_root_id":234,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:both"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2607,"page_layout_id":264,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"1","21unset":"0","21":"width:450px"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2608,"page_layout_id":264,"page_layout_root_id":234,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:10px auto auto auto"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2609,"page_layout_id":264,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2610,"page_layout_id":264,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2611,"page_layout_id":273,"page_layout_root_id":234,"pvalue":{},"section_param_id":125,"theme_id":1,"unset":null,"updated_at":"2013-04-16T14:20:10.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2612,"page_layout_id":273,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111","21unset":"1","21":"width:670px"},"section_param_id":126,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2613,"page_layout_id":273,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":127,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2614,"page_layout_id":273,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":128,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2615,"page_layout_id":273,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111","53unset":"1","53":"text-align:right"},"section_param_id":129,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2616,"page_layout_id":256,"page_layout_root_id":234,"pvalue":{},"section_param_id":110,"theme_id":1,"unset":null,"updated_at":"2013-04-19T13:03:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2617,"page_layout_id":256,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111","21unset":"0","21":"width:150px"},"section_param_id":111,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2618,"page_layout_id":256,"page_layout_root_id":234,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:5px 0px 0px 0px","31unset":"0","31":"margin:auto auto 10px auto"},"section_param_id":112,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2619,"page_layout_id":256,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":113,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2620,"page_layout_id":256,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111","53unset":"0","53":"text-align:center","49unset":"0","49":"color:#00ADEE","27unset":"0","27":"font-weight:bold"},"section_param_id":114,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2621,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":27,"theme_id":1,"unset":null,"updated_at":"2013-10-02T10:20:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2622,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":28,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2623,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 0px 0px 20px"},"section_param_id":29,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2624,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":30,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2625,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":31,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2626,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{"32unset":"0","32":"padding:5px 0px 0px 0px"},"section_param_id":32,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2627,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{"54unset":"0","54":"text-decoration:none","24unset":"0","24":"font-size:90%","49unset":"0","49":"color:#00ADEE"},"section_param_id":33,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2628,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":34,"theme_id":1,"unset":null,"updated_at":"2013-10-02T10:20:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2629,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":35,"theme_id":1,"unset":null,"updated_at":"2013-10-02T10:20:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2630,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":36,"theme_id":1,"unset":null,"updated_at":"2013-10-02T10:20:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2631,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":37,"theme_id":1,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2632,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":38,"theme_id":1,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2633,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":39,"theme_id":1,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2634,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":40,"theme_id":1,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2635,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":41,"theme_id":1,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2636,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":42,"theme_id":1,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2637,"page_layout_id":245,"page_layout_root_id":234,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2638,"page_layout_id":245,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2639,"page_layout_id":245,"page_layout_root_id":234,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 20px auto"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2640,"page_layout_id":245,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2641,"page_layout_id":245,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2642,"page_layout_id":248,"page_layout_root_id":234,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2643,"page_layout_id":248,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2644,"page_layout_id":248,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2645,"page_layout_id":248,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2646,"page_layout_id":248,"page_layout_root_id":234,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2647,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":27,"theme_id":1,"unset":null,"updated_at":"2013-10-05T00:38:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2648,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":28,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2649,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto 20px","32unset":"0","32":"padding:0px 0px 0px 20px"},"section_param_id":29,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2650,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":30,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2651,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":31,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2652,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{"32unset":"0","32":"padding:5px 0px 0px 0px"},"section_param_id":32,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2653,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{"24unset":"0","24":"font-size:90%","49unset":"0","49":"color:#00ADEE","54unset":"0","54":"text-decoration:none"},"section_param_id":33,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2654,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":34,"theme_id":1,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2655,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":35,"theme_id":1,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2656,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":36,"theme_id":1,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2657,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":37,"theme_id":1,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2658,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":38,"theme_id":1,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2659,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":39,"theme_id":1,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2660,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":40,"theme_id":1,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2661,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":41,"theme_id":1,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2662,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":42,"theme_id":1,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2663,"page_layout_id":277,"page_layout_root_id":234,"pvalue":{},"section_param_id":210,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:20:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2664,"page_layout_id":277,"page_layout_root_id":234,"pvalue":{"21unset":"0","21":"width:360px"},"section_param_id":211,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2665,"page_layout_id":277,"page_layout_root_id":234,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:10px 10px 10px 10px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB"},"section_param_id":212,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2666,"page_layout_id":277,"page_layout_root_id":234,"pvalue":{},"section_param_id":213,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:20:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2667,"page_layout_id":277,"page_layout_root_id":234,"pvalue":{},"section_param_id":214,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:20:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2668,"page_layout_id":277,"page_layout_root_id":234,"pvalue":{},"section_param_id":215,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:20:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2669,"page_layout_id":277,"page_layout_root_id":234,"pvalue":{"2unset":"1","2":"background-color:#000000"},"section_param_id":216,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2670,"page_layout_id":277,"page_layout_root_id":234,"pvalue":{"49unset":"0","49":"color:#00ADEE","53unset":"0","53":"text-align:center"},"section_param_id":217,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2671,"page_layout_id":278,"page_layout_root_id":234,"pvalue":{},"section_param_id":218,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:21:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2672,"page_layout_id":278,"page_layout_root_id":234,"pvalue":{"21unset":"0","21":"width:360px"},"section_param_id":219,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2673,"page_layout_id":278,"page_layout_root_id":234,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:10px 20px 10px 20px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB","31unset":"0","31":"margin:10px auto 10px auto"},"section_param_id":220,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2674,"page_layout_id":278,"page_layout_root_id":234,"pvalue":{},"section_param_id":221,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:21:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2675,"page_layout_id":278,"page_layout_root_id":234,"pvalue":{},"section_param_id":222,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:21:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2676,"page_layout_id":278,"page_layout_root_id":234,"pvalue":{},"section_param_id":223,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:21:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2677,"page_layout_id":278,"page_layout_root_id":234,"pvalue":{},"section_param_id":224,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:21:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2678,"page_layout_id":278,"page_layout_root_id":234,"pvalue":{"49unset":"0","49":"color:#00ADEE","53unset":"0","53":"text-align:center"},"section_param_id":225,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2679,"page_layout_id":271,"page_layout_root_id":234,"pvalue":{},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:35:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2680,"page_layout_id":271,"page_layout_root_id":234,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2681,"page_layout_id":271,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2682,"page_layout_id":271,"page_layout_root_id":234,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:35:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2683,"page_layout_id":271,"page_layout_root_id":234,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:35:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2684,"page_layout_id":272,"page_layout_root_id":234,"pvalue":{},"section_param_id":160,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:36:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2685,"page_layout_id":272,"page_layout_root_id":234,"pvalue":{},"section_param_id":161,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:36:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2686,"page_layout_id":272,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":162,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2687,"page_layout_id":272,"page_layout_root_id":234,"pvalue":{},"section_param_id":163,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:36:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2688,"page_layout_id":272,"page_layout_root_id":234,"pvalue":{"24unset":"0","24":"font-size:150%"},"section_param_id":164,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2689,"page_layout_id":281,"page_layout_root_id":234,"pvalue":{},"section_param_id":165,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2690,"page_layout_id":281,"page_layout_root_id":234,"pvalue":{},"section_param_id":166,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2691,"page_layout_id":281,"page_layout_root_id":234,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto 10px auto 10px"},"section_param_id":167,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2692,"page_layout_id":281,"page_layout_root_id":234,"pvalue":{},"section_param_id":168,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2693,"page_layout_id":281,"page_layout_root_id":234,"pvalue":{},"section_param_id":169,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2694,"page_layout_id":281,"page_layout_root_id":234,"pvalue":{"31unset":"0","31":"margin:auto auto 10px auto","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent","32unset":"0","32":"padding:5px 0px 5px 0px"},"section_param_id":170,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2695,"page_layout_id":281,"page_layout_root_id":234,"pvalue":{},"section_param_id":171,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2696,"page_layout_id":281,"page_layout_root_id":234,"pvalue":{"27":"font-weight:bold","54unset":"1","54":"text-decoration:underline","53unset":"1","53":"text-align:left"},"section_param_id":172,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2697,"page_layout_id":282,"page_layout_root_id":234,"pvalue":{},"section_param_id":173,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:30.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2698,"page_layout_id":282,"page_layout_root_id":234,"pvalue":{"21unset":"0","21":"width:300px"},"section_param_id":174,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2699,"page_layout_id":282,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":175,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2700,"page_layout_id":282,"page_layout_root_id":234,"pvalue":{},"section_param_id":176,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:31.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2701,"page_layout_id":282,"page_layout_root_id":234,"pvalue":{},"section_param_id":177,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:31.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2702,"page_layout_id":282,"page_layout_root_id":234,"pvalue":{"31unset":"0","31":"margin:auto auto 10px auto","32unset":"0","32":"padding:5px 0px 5px 0px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent"},"section_param_id":178,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2703,"page_layout_id":282,"page_layout_root_id":234,"pvalue":{},"section_param_id":179,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:31.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2704,"page_layout_id":282,"page_layout_root_id":234,"pvalue":{"27":"font-weight:bold","54unset":"1","54":"text-decoration:underline"},"section_param_id":180,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2705,"page_layout_id":283,"page_layout_root_id":234,"pvalue":{},"section_param_id":181,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2706,"page_layout_id":283,"page_layout_root_id":234,"pvalue":{},"section_param_id":182,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2707,"page_layout_id":283,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":183,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2708,"page_layout_id":283,"page_layout_root_id":234,"pvalue":{},"section_param_id":184,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2709,"page_layout_id":283,"page_layout_root_id":234,"pvalue":{},"section_param_id":185,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2710,"page_layout_id":283,"page_layout_root_id":234,"pvalue":{},"section_param_id":186,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2711,"page_layout_id":283,"page_layout_root_id":234,"pvalue":{},"section_param_id":187,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2712,"page_layout_id":283,"page_layout_root_id":234,"pvalue":{"27":"font-weight:bold"},"section_param_id":188,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2713,"page_layout_id":285,"page_layout_root_id":234,"pvalue":{},"section_param_id":268,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:51.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2714,"page_layout_id":285,"page_layout_root_id":234,"pvalue":{},"section_param_id":269,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:51.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2715,"page_layout_id":285,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":270,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2716,"page_layout_id":285,"page_layout_root_id":234,"pvalue":{},"section_param_id":271,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2717,"page_layout_id":285,"page_layout_root_id":234,"pvalue":{},"section_param_id":272,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2718,"page_layout_id":285,"page_layout_root_id":234,"pvalue":{},"section_param_id":273,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2719,"page_layout_id":285,"page_layout_root_id":234,"pvalue":{},"section_param_id":274,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2720,"page_layout_id":285,"page_layout_root_id":234,"pvalue":{},"section_param_id":275,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2721,"page_layout_id":286,"page_layout_root_id":234,"pvalue":{},"section_param_id":260,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2722,"page_layout_id":286,"page_layout_root_id":234,"pvalue":{},"section_param_id":261,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2723,"page_layout_id":286,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":262,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2724,"page_layout_id":286,"page_layout_root_id":234,"pvalue":{},"section_param_id":263,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2725,"page_layout_id":286,"page_layout_root_id":234,"pvalue":{},"section_param_id":264,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2726,"page_layout_id":286,"page_layout_root_id":234,"pvalue":{},"section_param_id":265,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2727,"page_layout_id":286,"page_layout_root_id":234,"pvalue":{},"section_param_id":266,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2728,"page_layout_id":286,"page_layout_root_id":234,"pvalue":{},"section_param_id":267,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:38:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2729,"page_layout_id":287,"page_layout_root_id":234,"pvalue":{},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2730,"page_layout_id":287,"page_layout_root_id":234,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2731,"page_layout_id":287,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2732,"page_layout_id":287,"page_layout_root_id":234,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2733,"page_layout_id":287,"page_layout_root_id":234,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2734,"page_layout_id":289,"page_layout_root_id":234,"pvalue":{},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2735,"page_layout_id":289,"page_layout_root_id":234,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2736,"page_layout_id":289,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2737,"page_layout_id":289,"page_layout_root_id":234,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2738,"page_layout_id":289,"page_layout_root_id":234,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2739,"page_layout_id":288,"page_layout_root_id":234,"pvalue":{},"section_param_id":189,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2740,"page_layout_id":288,"page_layout_root_id":234,"pvalue":{},"section_param_id":190,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2741,"page_layout_id":288,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":191,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2742,"page_layout_id":288,"page_layout_root_id":234,"pvalue":{},"section_param_id":192,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2743,"page_layout_id":288,"page_layout_root_id":234,"pvalue":{},"section_param_id":193,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2744,"page_layout_id":288,"page_layout_root_id":234,"pvalue":{},"section_param_id":194,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2745,"page_layout_id":288,"page_layout_root_id":234,"pvalue":{},"section_param_id":195,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2746,"page_layout_id":288,"page_layout_root_id":234,"pvalue":{},"section_param_id":196,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2747,"page_layout_id":290,"page_layout_root_id":234,"pvalue":{},"section_param_id":197,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2748,"page_layout_id":290,"page_layout_root_id":234,"pvalue":{},"section_param_id":198,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2749,"page_layout_id":290,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":199,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2750,"page_layout_id":290,"page_layout_root_id":234,"pvalue":{},"section_param_id":200,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2751,"page_layout_id":290,"page_layout_root_id":234,"pvalue":{},"section_param_id":201,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2752,"page_layout_id":290,"page_layout_root_id":234,"pvalue":{},"section_param_id":202,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2753,"page_layout_id":290,"page_layout_root_id":234,"pvalue":{},"section_param_id":203,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2754,"page_layout_id":290,"page_layout_root_id":234,"pvalue":{},"section_param_id":204,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2755,"page_layout_id":284,"page_layout_root_id":234,"pvalue":{},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:50:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2756,"page_layout_id":284,"page_layout_root_id":234,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2757,"page_layout_id":284,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2758,"page_layout_id":284,"page_layout_root_id":234,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:50:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2759,"page_layout_id":284,"page_layout_root_id":234,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:50:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2760,"page_layout_id":279,"page_layout_root_id":234,"pvalue":{},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:50:37.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2761,"page_layout_id":279,"page_layout_root_id":234,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2762,"page_layout_id":279,"page_layout_root_id":234,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 0px 0px 0px"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2763,"page_layout_id":279,"page_layout_root_id":234,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:50:37.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2764,"page_layout_id":279,"page_layout_root_id":234,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2013-11-02T09:50:37.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2765,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":11,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:07.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2766,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{"21unset":"1","21":"width:960px"},"section_param_id":12,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2767,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":13,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2768,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{"2unset":"1","2":"background-color:lime"},"section_param_id":14,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2769,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{"27unset":"0","27":"font-weight:bold","49unset":"1","49":"color:#00ADEE"},"section_param_id":15,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2770,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":16,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2771,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{"54unset":"0","54":"text-decoration:none","49unset":"0","49":"color:#00ADEE"},"section_param_id":17,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2772,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":18,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2773,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":19,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2774,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":20,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2775,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":21,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2776,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":22,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2777,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":23,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2778,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":24,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2779,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":25,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2780,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":26,"theme_id":1,"unset":null,"updated_at":"2013-11-05T03:16:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2781,"page_layout_id":246,"page_layout_root_id":234,"pvalue":{},"section_param_id":135,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2782,"page_layout_id":246,"page_layout_root_id":234,"pvalue":{"21unset":"0","21":"width:160px"},"section_param_id":136,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2783,"page_layout_id":246,"page_layout_root_id":234,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent","32unset":"0","32":"padding:0px 0px 5px 0px"},"section_param_id":137,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2784,"page_layout_id":246,"page_layout_root_id":234,"pvalue":{},"section_param_id":138,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2785,"page_layout_id":246,"page_layout_root_id":234,"pvalue":{"27unset":"0","27":"font-weight:bold"},"section_param_id":139,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2786,"page_layout_id":249,"page_layout_root_id":234,"pvalue":{},"section_param_id":135,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2787,"page_layout_id":249,"page_layout_root_id":234,"pvalue":{"21unset":"0","21":"width:160px"},"section_param_id":136,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2788,"page_layout_id":249,"page_layout_root_id":234,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 0px 5px 0px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent"},"section_param_id":137,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2789,"page_layout_id":249,"page_layout_root_id":234,"pvalue":{},"section_param_id":138,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2790,"page_layout_id":249,"page_layout_root_id":234,"pvalue":{"27unset":"0","27":"font-weight:bold"},"section_param_id":139,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2791,"page_layout_id":274,"page_layout_root_id":234,"pvalue":{},"section_param_id":140,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2792,"page_layout_id":274,"page_layout_root_id":234,"pvalue":{},"section_param_id":141,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2793,"page_layout_id":274,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":142,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2794,"page_layout_id":274,"page_layout_root_id":234,"pvalue":{},"section_param_id":143,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2795,"page_layout_id":274,"page_layout_root_id":234,"pvalue":{},"section_param_id":144,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2796,"page_layout_id":275,"page_layout_root_id":234,"pvalue":{},"section_param_id":145,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2797,"page_layout_id":275,"page_layout_root_id":234,"pvalue":{"101unset":"0","101":"float:right"},"section_param_id":146,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2798,"page_layout_id":275,"page_layout_root_id":234,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:10px auto auto auto"},"section_param_id":147,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2799,"page_layout_id":275,"page_layout_root_id":234,"pvalue":{},"section_param_id":148,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2800,"page_layout_id":275,"page_layout_root_id":234,"pvalue":{},"section_param_id":149,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2801,"page_layout_id":276,"page_layout_root_id":234,"pvalue":{},"section_param_id":150,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2802,"page_layout_id":276,"page_layout_root_id":234,"pvalue":{"21unset":"1","21":"width:600px"},"section_param_id":151,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2803,"page_layout_id":276,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":152,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2804,"page_layout_id":276,"page_layout_root_id":234,"pvalue":{},"section_param_id":153,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2805,"page_layout_id":276,"page_layout_root_id":234,"pvalue":{},"section_param_id":154,"theme_id":1,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2806,"page_layout_id":237,"page_layout_root_id":234,"pvalue":{},"section_param_id":323,"theme_id":1,"unset":null,"updated_at":"2013-11-29T02:49:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2807,"page_layout_id":237,"page_layout_root_id":234,"pvalue":{"21unset":"1","21":"width:220px","101unset":"1","101":"float:none"},"section_param_id":324,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2808,"page_layout_id":237,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":325,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2809,"page_layout_id":237,"page_layout_root_id":234,"pvalue":{},"section_param_id":326,"theme_id":1,"unset":null,"updated_at":"2013-11-29T02:49:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2810,"page_layout_id":237,"page_layout_root_id":234,"pvalue":{},"section_param_id":327,"theme_id":1,"unset":null,"updated_at":"2013-11-29T02:49:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2811,"page_layout_id":240,"page_layout_root_id":234,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2812,"page_layout_id":240,"page_layout_root_id":234,"pvalue":{"101":"float:left","101unset":"1","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2813,"page_layout_id":240,"page_layout_root_id":234,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 0px 6px 0px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent","31unset":"0","31":"margin:auto 10px auto 10px"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2814,"page_layout_id":240,"page_layout_root_id":234,"pvalue":{"2unset":"1","2":"background-color:green","3unset":"1","3":"background-image:pattern-1.png"},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2815,"page_layout_id":240,"page_layout_root_id":234,"pvalue":{"49unset":"1","49":"color:teal","25unset":"1","25":"font-style:normal","24unset":"1","24":"font-size:0%","27unset":"1","27":"font-weight:bold"},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2816,"page_layout_id":242,"page_layout_root_id":234,"pvalue":{},"section_param_id":328,"theme_id":1,"unset":null,"updated_at":"2013-12-03T08:15:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2817,"page_layout_id":242,"page_layout_root_id":234,"pvalue":{"101unset":"0","101":"float:right"},"section_param_id":329,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2818,"page_layout_id":242,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":330,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2819,"page_layout_id":242,"page_layout_root_id":234,"pvalue":{},"section_param_id":331,"theme_id":1,"unset":null,"updated_at":"2013-12-03T08:15:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2820,"page_layout_id":242,"page_layout_root_id":234,"pvalue":{},"section_param_id":332,"theme_id":1,"unset":null,"updated_at":"2013-12-03T08:15:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2821,"page_layout_id":236,"page_layout_root_id":234,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2822,"page_layout_id":236,"page_layout_root_id":234,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2823,"page_layout_id":236,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2824,"page_layout_id":236,"page_layout_root_id":234,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2013-12-05T08:06:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2825,"page_layout_id":236,"page_layout_root_id":234,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2013-12-05T08:06:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2826,"page_layout_id":238,"page_layout_root_id":234,"pvalue":{},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2013-12-05T08:11:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2827,"page_layout_id":238,"page_layout_root_id":234,"pvalue":{"101":"float:right","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2828,"page_layout_id":238,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2829,"page_layout_id":238,"page_layout_root_id":234,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2013-12-05T08:11:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2830,"page_layout_id":238,"page_layout_root_id":234,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2013-12-05T08:11:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2831,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{"21":"width:960px","21unset":"0","20":"min-width:960px","20hidden":"1"},"section_param_id":226,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2832,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":227,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2833,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{"85":"clear:both"},"section_param_id":228,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2834,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":229,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2835,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":230,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2836,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":231,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2837,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":232,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2838,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":233,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2839,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":234,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2840,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{"31unset":"0","31":"margin:10px auto 2px auto"},"section_param_id":235,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2841,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":236,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2842,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":237,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2843,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":238,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2844,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":239,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2845,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":240,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2846,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":241,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2847,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{"49unset":"0","49":"color:red","24unset":"0","24":"font-size:82%"},"section_param_id":242,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2848,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":243,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2849,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":317,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2850,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":318,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2851,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":319,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2852,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":320,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2853,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":321,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2854,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":322,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2855,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":244,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2856,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":245,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2857,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":246,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2858,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{"49unset":"0","49":"color:#00ADEE","24unset":"1","24":"font-size:80%"},"section_param_id":247,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2859,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":248,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2860,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{"7unset":"0","7":"border-style:solid none solid none","8unset":"0","8":"border-width:1px 0px 1px 0px","6unset":"0","6":"border-color:#D9D9DB transparent #D9D9DB transparent"},"section_param_id":249,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2861,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{"32unset":"0","32":"padding:5px 10px 5px 10px"},"section_param_id":250,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2862,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":251,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2863,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{"2unset":"0","2":"background-color:#D9D9DB"},"section_param_id":252,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2864,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":253,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2865,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":254,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2866,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":255,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2867,"page_layout_id":234,"page_layout_root_id":234,"pvalue":{},"section_param_id":256,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2868,"page_layout_id":255,"page_layout_root_id":234,"pvalue":{},"section_param_id":55,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2869,"page_layout_id":255,"page_layout_root_id":234,"pvalue":{"21unset":"0","21":"width:150px","15unset":"0","15":"height:34px"},"section_param_id":56,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2870,"page_layout_id":255,"page_layout_root_id":234,"pvalue":{"15hidden":"1","15unset":"0","15":"height:33px","32unset":"1","32":"padding:0px 0px 0px 0px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #BBBBBB transparent"},"section_param_id":57,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2871,"page_layout_id":255,"page_layout_root_id":234,"pvalue":{},"section_param_id":58,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2872,"page_layout_id":255,"page_layout_root_id":234,"pvalue":{},"section_param_id":59,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2873,"page_layout_id":255,"page_layout_root_id":234,"pvalue":{},"section_param_id":294,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2874,"page_layout_id":255,"page_layout_root_id":234,"pvalue":{},"section_param_id":295,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2875,"page_layout_id":255,"page_layout_root_id":234,"pvalue":{"49unset":"0","49":"color:#BBBBBB","27unset":"0","27":"font-weight:bold","24unset":"0","24":"font-size:80%","54unset":"0","54":"text-decoration:none","53unset":"0","53":"text-align:center"},"section_param_id":296,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2876,"page_layout_id":255,"page_layout_root_id":234,"pvalue":{},"section_param_id":297,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:39:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2877,"page_layout_id":260,"page_layout_root_id":234,"pvalue":{},"section_param_id":105,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2878,"page_layout_id":260,"page_layout_root_id":234,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":106,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2879,"page_layout_id":260,"page_layout_root_id":234,"pvalue":{},"section_param_id":107,"theme_id":1,"unset":null,"updated_at":"2014-07-30T23:08:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2880,"page_layout_id":260,"page_layout_root_id":234,"pvalue":{},"section_param_id":108,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2881,"page_layout_id":260,"page_layout_root_id":234,"pvalue":{},"section_param_id":109,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2882,"page_layout_id":260,"page_layout_root_id":234,"pvalue":{"32unset":"0","32":"padding:5px 5px 5px 5px","7unset":"0","7":"border-style:solid none solid none","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB"},"section_param_id":302,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2883,"page_layout_id":260,"page_layout_root_id":234,"pvalue":{"2unset":"0","2":"background-color:transparent"},"section_param_id":303,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2884,"page_layout_id":260,"page_layout_root_id":234,"pvalue":{},"section_param_id":304,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2885,"page_layout_id":260,"page_layout_root_id":234,"pvalue":{"27unset":"0","27":"font-weight:bold"},"section_param_id":305,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2886,"page_layout_id":260,"page_layout_root_id":234,"pvalue":{},"section_param_id":306,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2887,"page_layout_id":262,"page_layout_root_id":234,"pvalue":{},"section_param_id":55,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2888,"page_layout_id":262,"page_layout_root_id":234,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":56,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2889,"page_layout_id":262,"page_layout_root_id":234,"pvalue":{"15hidden":"1","32unset":"1","32":"padding:0px 0px 0px 0px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent"},"section_param_id":57,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2890,"page_layout_id":262,"page_layout_root_id":234,"pvalue":{},"section_param_id":58,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2891,"page_layout_id":262,"page_layout_root_id":234,"pvalue":{"24unset":"0","24":"font-size:150%","27unset":"0","27":"font-weight:bold"},"section_param_id":59,"theme_id":1,"unset":null,"updated_at":"2014-09-01T14:37:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2892,"page_layout_id":262,"page_layout_root_id":234,"pvalue":{},"section_param_id":294,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2893,"page_layout_id":262,"page_layout_root_id":234,"pvalue":{},"section_param_id":295,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2894,"page_layout_id":262,"page_layout_root_id":234,"pvalue":{"49unset":"0","49":"color:black","54unset":"0","54":"text-decoration:none","27unset":"0","27":"font-weight:bold","24unset":"0","24":"font-size:150%"},"section_param_id":296,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2895,"page_layout_id":262,"page_layout_root_id":234,"pvalue":{},"section_param_id":297,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2896,"page_layout_id":269,"page_layout_root_id":234,"pvalue":{},"section_param_id":115,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2897,"page_layout_id":269,"page_layout_root_id":234,"pvalue":{},"section_param_id":116,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2898,"page_layout_id":269,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":117,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2899,"page_layout_id":269,"page_layout_root_id":234,"pvalue":{},"section_param_id":118,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2900,"page_layout_id":269,"page_layout_root_id":234,"pvalue":{},"section_param_id":119,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2901,"page_layout_id":269,"page_layout_root_id":234,"pvalue":{"21unset":"0","21":"width:60px","7unset":"0","7":"border-style:solid solid solid solid","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB","8unset":"0","8":"border-width:1px 1px 1px 1px","32unset":"0","32":"padding:7px 10px 7px 10px"},"section_param_id":307,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2902,"page_layout_id":269,"page_layout_root_id":234,"pvalue":{},"section_param_id":308,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2903,"page_layout_id":269,"page_layout_root_id":234,"pvalue":{"53unset":"0","53":"text-align:left"},"section_param_id":309,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2904,"page_layout_id":270,"page_layout_root_id":234,"pvalue":{},"section_param_id":120,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2905,"page_layout_id":270,"page_layout_root_id":234,"pvalue":{},"section_param_id":121,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2906,"page_layout_id":270,"page_layout_root_id":234,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto auto 5px"},"section_param_id":122,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2907,"page_layout_id":270,"page_layout_root_id":234,"pvalue":{},"section_param_id":123,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2908,"page_layout_id":270,"page_layout_root_id":234,"pvalue":{},"section_param_id":124,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2909,"page_layout_id":270,"page_layout_root_id":234,"pvalue":{},"section_param_id":310,"theme_id":1,"unset":null,"updated_at":"2014-07-30T23:08:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2910,"page_layout_id":270,"page_layout_root_id":234,"pvalue":{"2unset":"0","2":"background-color:#00ADEE"},"section_param_id":311,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2911,"page_layout_id":270,"page_layout_root_id":234,"pvalue":{"49unset":"0","49":"color:white","24unset":"1","24":"font-size:14em"},"section_param_id":312,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2912,"page_layout_id":295,"page_layout_root_id":234,"pvalue":{},"section_param_id":284,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2913,"page_layout_id":295,"page_layout_root_id":234,"pvalue":{"21":"width:600px","21unset":"0"},"section_param_id":285,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2914,"page_layout_id":295,"page_layout_root_id":234,"pvalue":{"7":"border-style:solid solid solid solid","7unset":"0","8":"border-width:1px 1px 1px 1px","8unset":"0","6":"border-color:#CCCCCC #CCCCCC #CCCCCC #CCCCCC","6unset":"0","15":"height:598px","15hidden":"1"},"section_param_id":286,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2915,"page_layout_id":295,"page_layout_root_id":234,"pvalue":{"2":"background-color:#FFFFFF","2unset":"0"},"section_param_id":287,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2916,"page_layout_id":295,"page_layout_root_id":234,"pvalue":{},"section_param_id":288,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2917,"page_layout_id":295,"page_layout_root_id":234,"pvalue":{"32":"padding:2px 2px 2px 2px","32unset":"0"},"section_param_id":313,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2918,"page_layout_id":295,"page_layout_root_id":234,"pvalue":{"2":"background-color:#EEEEEE","2unset":"0"},"section_param_id":314,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2919,"page_layout_id":295,"page_layout_root_id":234,"pvalue":{},"section_param_id":315,"theme_id":1,"unset":null,"updated_at":"2014-01-22T03:40:05.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2920,"page_layout_id":295,"page_layout_root_id":234,"pvalue":{"32":"padding:0 10px 5px 10px","32unset":"0"},"section_param_id":316,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2921,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":333,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2922,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":334,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2923,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":335,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2924,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":336,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2925,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":337,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2926,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":338,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2927,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":339,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2928,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":340,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2929,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":341,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2930,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":342,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2931,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":343,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2932,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":344,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2933,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":345,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2934,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":346,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2935,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":347,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2936,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":348,"theme_id":1,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2937,"page_layout_id":291,"page_layout_root_id":234,"pvalue":{},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-02-19T13:03:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2938,"page_layout_id":291,"page_layout_root_id":234,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2939,"page_layout_id":291,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2940,"page_layout_id":291,"page_layout_root_id":234,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-02-19T13:03:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2941,"page_layout_id":291,"page_layout_root_id":234,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-02-19T13:03:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2942,"page_layout_id":292,"page_layout_root_id":234,"pvalue":{},"section_param_id":349,"theme_id":1,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2943,"page_layout_id":292,"page_layout_root_id":234,"pvalue":{},"section_param_id":350,"theme_id":1,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2944,"page_layout_id":292,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":351,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2945,"page_layout_id":292,"page_layout_root_id":234,"pvalue":{},"section_param_id":352,"theme_id":1,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2946,"page_layout_id":292,"page_layout_root_id":234,"pvalue":{},"section_param_id":353,"theme_id":1,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2947,"page_layout_id":292,"page_layout_root_id":234,"pvalue":{},"section_param_id":354,"theme_id":1,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2948,"page_layout_id":292,"page_layout_root_id":234,"pvalue":{},"section_param_id":355,"theme_id":1,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2949,"page_layout_id":292,"page_layout_root_id":234,"pvalue":{},"section_param_id":356,"theme_id":1,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2950,"page_layout_id":259,"page_layout_root_id":234,"pvalue":{},"section_param_id":289,"theme_id":1,"unset":null,"updated_at":"2014-02-23T13:34:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2951,"page_layout_id":259,"page_layout_root_id":234,"pvalue":{},"section_param_id":290,"theme_id":1,"unset":null,"updated_at":"2014-02-23T13:34:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2952,"page_layout_id":259,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":291,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2953,"page_layout_id":259,"page_layout_root_id":234,"pvalue":{},"section_param_id":292,"theme_id":1,"unset":null,"updated_at":"2014-02-23T13:34:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2954,"page_layout_id":259,"page_layout_root_id":234,"pvalue":{},"section_param_id":293,"theme_id":1,"unset":null,"updated_at":"2014-02-23T13:34:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2955,"page_layout_id":259,"page_layout_root_id":234,"pvalue":{"32unset":"0","32":"padding:5px 10px 5px 10px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB"},"section_param_id":299,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2956,"page_layout_id":259,"page_layout_root_id":234,"pvalue":{"32unset":"0","32":"padding:5px 5px 5px 5px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB","31unset":"0","31":"margin:6px 6px 6px auto"},"section_param_id":301,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2957,"page_layout_id":280,"page_layout_root_id":234,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2958,"page_layout_id":280,"page_layout_root_id":234,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"0"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2959,"page_layout_id":280,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2960,"page_layout_id":280,"page_layout_root_id":234,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-03-04T14:20:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2961,"page_layout_id":280,"page_layout_root_id":234,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-03-04T14:20:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2962,"page_layout_id":265,"page_layout_root_id":234,"pvalue":{},"section_param_id":357,"theme_id":1,"unset":null,"updated_at":"2014-03-06T13:19:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2963,"page_layout_id":265,"page_layout_root_id":234,"pvalue":{},"section_param_id":358,"theme_id":1,"unset":null,"updated_at":"2014-03-06T13:19:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2964,"page_layout_id":265,"page_layout_root_id":234,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 10px auto"},"section_param_id":359,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2965,"page_layout_id":265,"page_layout_root_id":234,"pvalue":{},"section_param_id":360,"theme_id":1,"unset":null,"updated_at":"2014-03-06T13:19:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2966,"page_layout_id":265,"page_layout_root_id":234,"pvalue":{},"section_param_id":361,"theme_id":1,"unset":null,"updated_at":"2014-03-06T13:19:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2967,"page_layout_id":268,"page_layout_root_id":234,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2968,"page_layout_id":268,"page_layout_root_id":234,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:230px"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2969,"page_layout_id":268,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2970,"page_layout_id":268,"page_layout_root_id":234,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-03-06T13:42:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2971,"page_layout_id":268,"page_layout_root_id":234,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-03-06T13:42:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2972,"page_layout_id":266,"page_layout_root_id":234,"pvalue":{"85unset":"0","85":"clear:both"},"section_param_id":6,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2973,"page_layout_id":266,"page_layout_root_id":234,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2974,"page_layout_id":266,"page_layout_root_id":234,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":1,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2975,"page_layout_id":266,"page_layout_root_id":234,"pvalue":{},"section_param_id":9,"theme_id":1,"unset":null,"updated_at":"2014-03-06T15:17:45.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2976,"page_layout_id":266,"page_layout_root_id":234,"pvalue":{},"section_param_id":10,"theme_id":1,"unset":null,"updated_at":"2014-03-06T15:17:45.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2977,"page_layout_id":254,"page_layout_root_id":234,"pvalue":{},"section_param_id":404,"theme_id":1,"unset":null,"updated_at":"2014-07-04T12:47:18.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2978,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":420,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2979,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":421,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2980,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":421,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2981,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":422,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2982,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":423,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2983,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":424,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2984,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":424,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2985,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":425,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2986,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":426,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2987,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":427,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2988,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":427,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2989,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":428,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2990,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":429,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2991,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":430,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2992,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":430,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2993,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":431,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2994,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":432,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2995,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":433,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2996,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":433,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2997,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":434,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2998,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":435,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":2999,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":436,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":3000,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":436,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":3001,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":437,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":3002,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":438,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":3003,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":439,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":3004,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":439,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":3005,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":440,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":3006,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":441,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":3007,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":442,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":3008,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":442,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":3009,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":443,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":3010,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":444,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":3011,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":445,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":3012,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":445,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:06:06.000Z","id":3013,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":446,"theme_id":1,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:57.000Z","id":4600,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":477,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:57.000Z","id":4604,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":478,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:57.000Z","id":4605,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":478,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4612,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":479,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4622,"page_layout_id":235,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4623,"page_layout_id":236,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4624,"page_layout_id":238,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4625,"page_layout_id":240,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4626,"page_layout_id":243,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4627,"page_layout_id":244,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4628,"page_layout_id":245,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4629,"page_layout_id":248,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4630,"page_layout_id":251,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4631,"page_layout_id":252,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4632,"page_layout_id":253,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4633,"page_layout_id":257,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4634,"page_layout_id":258,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4635,"page_layout_id":261,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4636,"page_layout_id":264,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4637,"page_layout_id":266,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4638,"page_layout_id":268,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4639,"page_layout_id":271,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4640,"page_layout_id":279,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4641,"page_layout_id":280,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4642,"page_layout_id":284,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4643,"page_layout_id":287,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4644,"page_layout_id":289,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4645,"page_layout_id":291,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4646,"page_layout_id":293,"page_layout_root_id":234,"pvalue":{},"section_param_id":480,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4750,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":481,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4754,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":482,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4755,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":482,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4765,"page_layout_id":294,"page_layout_root_id":234,"pvalue":{},"section_param_id":484,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4776,"page_layout_id":255,"page_layout_root_id":234,"pvalue":{},"section_param_id":485,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4777,"page_layout_id":262,"page_layout_root_id":234,"pvalue":{},"section_param_id":485,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4782,"page_layout_id":263,"page_layout_root_id":234,"pvalue":{},"section_param_id":486,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4785,"page_layout_id":254,"page_layout_root_id":234,"pvalue":{},"section_param_id":487,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4792,"page_layout_id":260,"page_layout_root_id":234,"pvalue":{},"section_param_id":495,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4795,"page_layout_id":256,"page_layout_root_id":234,"pvalue":{},"section_param_id":496,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4796,"page_layout_id":267,"page_layout_root_id":234,"pvalue":{},"section_param_id":496,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4801,"page_layout_id":269,"page_layout_root_id":234,"pvalue":{},"section_param_id":497,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4804,"page_layout_id":270,"page_layout_root_id":234,"pvalue":{},"section_param_id":498,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4807,"page_layout_id":273,"page_layout_root_id":234,"pvalue":{},"section_param_id":499,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4810,"page_layout_id":246,"page_layout_root_id":234,"pvalue":{},"section_param_id":501,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4811,"page_layout_id":249,"page_layout_root_id":234,"pvalue":{},"section_param_id":501,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4820,"page_layout_id":274,"page_layout_root_id":234,"pvalue":{},"section_param_id":502,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4823,"page_layout_id":275,"page_layout_root_id":234,"pvalue":{},"section_param_id":503,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4826,"page_layout_id":276,"page_layout_root_id":234,"pvalue":{},"section_param_id":504,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4829,"page_layout_id":272,"page_layout_root_id":234,"pvalue":{},"section_param_id":506,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4837,"page_layout_id":281,"page_layout_root_id":234,"pvalue":{},"section_param_id":507,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4840,"page_layout_id":282,"page_layout_root_id":234,"pvalue":{},"section_param_id":508,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4843,"page_layout_id":283,"page_layout_root_id":234,"pvalue":{},"section_param_id":509,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4846,"page_layout_id":288,"page_layout_root_id":234,"pvalue":{},"section_param_id":510,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4849,"page_layout_id":290,"page_layout_root_id":234,"pvalue":{},"section_param_id":511,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4852,"page_layout_id":277,"page_layout_root_id":234,"pvalue":{},"section_param_id":513,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4855,"page_layout_id":278,"page_layout_root_id":234,"pvalue":{},"section_param_id":514,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4858,"page_layout_id":286,"page_layout_root_id":234,"pvalue":{},"section_param_id":515,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4861,"page_layout_id":285,"page_layout_root_id":234,"pvalue":{},"section_param_id":516,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4864,"page_layout_id":295,"page_layout_root_id":234,"pvalue":{},"section_param_id":518,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4867,"page_layout_id":259,"page_layout_root_id":234,"pvalue":{},"section_param_id":519,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4871,"page_layout_id":237,"page_layout_root_id":234,"pvalue":{},"section_param_id":520,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4875,"page_layout_id":242,"page_layout_root_id":234,"pvalue":{},"section_param_id":521,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4876,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":522,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4879,"page_layout_id":292,"page_layout_root_id":234,"pvalue":{},"section_param_id":523,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4882,"page_layout_id":265,"page_layout_root_id":234,"pvalue":{},"section_param_id":524,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4908,"page_layout_id":235,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4909,"page_layout_id":236,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4910,"page_layout_id":238,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4911,"page_layout_id":240,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4912,"page_layout_id":243,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4913,"page_layout_id":244,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4914,"page_layout_id":245,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4915,"page_layout_id":248,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4916,"page_layout_id":251,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4917,"page_layout_id":252,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4918,"page_layout_id":253,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4919,"page_layout_id":257,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4920,"page_layout_id":258,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4921,"page_layout_id":261,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4922,"page_layout_id":264,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4923,"page_layout_id":266,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4924,"page_layout_id":268,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4925,"page_layout_id":271,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4926,"page_layout_id":279,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4927,"page_layout_id":280,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4928,"page_layout_id":284,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4929,"page_layout_id":287,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4930,"page_layout_id":289,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4931,"page_layout_id":291,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4932,"page_layout_id":293,"page_layout_root_id":234,"pvalue":{},"section_param_id":536,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5036,"page_layout_id":241,"page_layout_root_id":234,"pvalue":{},"section_param_id":537,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5040,"page_layout_id":247,"page_layout_root_id":234,"pvalue":{},"section_param_id":538,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5041,"page_layout_id":250,"page_layout_root_id":234,"pvalue":{},"section_param_id":538,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5051,"page_layout_id":294,"page_layout_root_id":234,"pvalue":{},"section_param_id":540,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5062,"page_layout_id":255,"page_layout_root_id":234,"pvalue":{},"section_param_id":541,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5063,"page_layout_id":262,"page_layout_root_id":234,"pvalue":{},"section_param_id":541,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5068,"page_layout_id":263,"page_layout_root_id":234,"pvalue":{},"section_param_id":542,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5071,"page_layout_id":254,"page_layout_root_id":234,"pvalue":{},"section_param_id":543,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5078,"page_layout_id":260,"page_layout_root_id":234,"pvalue":{},"section_param_id":551,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5081,"page_layout_id":256,"page_layout_root_id":234,"pvalue":{},"section_param_id":552,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5082,"page_layout_id":267,"page_layout_root_id":234,"pvalue":{},"section_param_id":552,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5087,"page_layout_id":269,"page_layout_root_id":234,"pvalue":{},"section_param_id":553,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5090,"page_layout_id":270,"page_layout_root_id":234,"pvalue":{},"section_param_id":554,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5093,"page_layout_id":273,"page_layout_root_id":234,"pvalue":{},"section_param_id":555,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5096,"page_layout_id":246,"page_layout_root_id":234,"pvalue":{},"section_param_id":557,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5097,"page_layout_id":249,"page_layout_root_id":234,"pvalue":{},"section_param_id":557,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5106,"page_layout_id":274,"page_layout_root_id":234,"pvalue":{},"section_param_id":558,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5109,"page_layout_id":275,"page_layout_root_id":234,"pvalue":{},"section_param_id":559,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5112,"page_layout_id":276,"page_layout_root_id":234,"pvalue":{},"section_param_id":560,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5115,"page_layout_id":272,"page_layout_root_id":234,"pvalue":{},"section_param_id":562,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5123,"page_layout_id":281,"page_layout_root_id":234,"pvalue":{},"section_param_id":563,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5126,"page_layout_id":282,"page_layout_root_id":234,"pvalue":{},"section_param_id":564,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5129,"page_layout_id":283,"page_layout_root_id":234,"pvalue":{},"section_param_id":565,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5132,"page_layout_id":288,"page_layout_root_id":234,"pvalue":{},"section_param_id":566,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5135,"page_layout_id":290,"page_layout_root_id":234,"pvalue":{},"section_param_id":567,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5138,"page_layout_id":277,"page_layout_root_id":234,"pvalue":{},"section_param_id":569,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5141,"page_layout_id":278,"page_layout_root_id":234,"pvalue":{},"section_param_id":570,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5144,"page_layout_id":286,"page_layout_root_id":234,"pvalue":{},"section_param_id":571,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5147,"page_layout_id":285,"page_layout_root_id":234,"pvalue":{},"section_param_id":572,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5150,"page_layout_id":295,"page_layout_root_id":234,"pvalue":{},"section_param_id":574,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5153,"page_layout_id":259,"page_layout_root_id":234,"pvalue":{},"section_param_id":575,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5157,"page_layout_id":237,"page_layout_root_id":234,"pvalue":{},"section_param_id":576,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5161,"page_layout_id":242,"page_layout_root_id":234,"pvalue":{},"section_param_id":577,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5162,"page_layout_id":239,"page_layout_root_id":234,"pvalue":{},"section_param_id":578,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5165,"page_layout_id":292,"page_layout_root_id":234,"pvalue":{},"section_param_id":579,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5168,"page_layout_id":265,"page_layout_root_id":234,"pvalue":{},"section_param_id":580,"theme_id":1,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}}],"page_layouts":[{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:07.000Z","data_filter":"","data_source":"","data_source_param":"","id":234,"is_enabled":true,"is_full_html":true,"lft":1,"parent_id":null,"rgt":124,"root_id":234,"section_context":"","section_id":75,"section_instance":2,"site_id":2,"slug":"root","title":"root","updated_at":"2014-08-02T07:06:07.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:07.000Z","data_filter":"","data_source":"","data_source_param":"","id":235,"is_enabled":true,"is_full_html":false,"lft":2,"parent_id":234,"rgt":17,"root_id":234,"section_context":"","section_id":2,"section_instance":1,"site_id":2,"slug":"header","title":"Header","updated_at":"2014-08-02T07:06:07.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:07.000Z","data_filter":"","data_source":"","data_source_param":"","id":236,"is_enabled":true,"is_full_html":false,"lft":3,"parent_id":235,"rgt":10,"root_id":234,"section_context":"","section_id":2,"section_instance":20,"site_id":2,"slug":"container000","title":"container000","updated_at":"2014-08-02T07:06:07.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:07.000Z","data_filter":"","data_source":"","data_source_param":"","id":237,"is_enabled":true,"is_full_html":false,"lft":4,"parent_id":236,"rgt":5,"root_id":234,"section_context":"","section_id":97,"section_instance":1,"site_id":2,"slug":"logo","title":"Logo","updated_at":"2014-08-02T07:06:07.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:07.000Z","data_filter":"","data_source":"","data_source_param":"","id":238,"is_enabled":true,"is_full_html":false,"lft":6,"parent_id":236,"rgt":9,"root_id":234,"section_context":"","section_id":2,"section_instance":21,"site_id":2,"slug":"container--6","title":"container","updated_at":"2014-08-02T07:06:07.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:07.000Z","data_filter":"","data_source":"","data_source_param":"","id":239,"is_enabled":true,"is_full_html":false,"lft":7,"parent_id":238,"rgt":8,"root_id":234,"section_context":"","section_id":101,"section_instance":2,"site_id":2,"slug":"logged-unlogged-menu","title":"logged&unlogged menu","updated_at":"2014-08-02T07:06:07.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:07.000Z","data_filter":"","data_source":"","data_source_param":"","id":240,"is_enabled":true,"is_full_html":false,"lft":11,"parent_id":235,"rgt":16,"root_id":234,"section_context":"","section_id":2,"section_instance":19,"site_id":2,"slug":"container--7","title":"container","updated_at":"2014-08-02T07:06:07.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:07.000Z","data_filter":"","data_source":"","data_source_param":"","id":241,"is_enabled":true,"is_full_html":false,"lft":12,"parent_id":240,"rgt":13,"root_id":234,"section_context":"","section_id":3,"section_instance":3,"site_id":2,"slug":"main-menu","title":"Main menu","updated_at":"2014-08-02T07:06:07.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:07.000Z","data_filter":"","data_source":"","data_source_param":"","id":242,"is_enabled":true,"is_full_html":false,"lft":14,"parent_id":240,"rgt":15,"root_id":234,"section_context":"","section_id":99,"section_instance":1,"site_id":2,"slug":"mini-cart","title":"Mini cart","updated_at":"2014-08-02T07:06:07.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:07.000Z","data_filter":"","data_source":"","data_source_param":"","id":243,"is_enabled":true,"is_full_html":false,"lft":18,"parent_id":234,"rgt":117,"root_id":234,"section_context":"","section_id":2,"section_instance":2,"site_id":2,"slug":"content","title":"content","updated_at":"2014-08-02T07:06:07.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:07.000Z","data_filter":"","data_source":"","data_source_param":"","id":244,"is_enabled":true,"is_full_html":false,"lft":19,"parent_id":243,"rgt":32,"root_id":234,"section_context":"","section_id":2,"section_instance":4,"site_id":2,"slug":"lftnav","title":"lftnav","updated_at":"2014-08-02T07:06:07.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:07.000Z","data_filter":"","data_source":"","data_source_param":"","id":245,"is_enabled":true,"is_full_html":false,"lft":20,"parent_id":244,"rgt":25,"root_id":234,"section_context":"","section_id":2,"section_instance":12,"site_id":2,"slug":"container--8","title":"container","updated_at":"2014-08-02T07:06:07.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:07.000Z","data_filter":"","data_source":"","data_source_param":"","id":246,"is_enabled":true,"is_full_html":false,"lft":21,"parent_id":245,"rgt":22,"root_id":234,"section_context":"","section_id":40,"section_instance":3,"site_id":2,"slug":"taxonomy-name","title":"taxonomy name","updated_at":"2014-08-02T07:06:07.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:07.000Z","data_filter":"","data_source":"","data_source_param":"","id":247,"is_enabled":true,"is_full_html":false,"lft":23,"parent_id":245,"rgt":24,"root_id":234,"section_context":"","section_id":6,"section_instance":1,"site_id":2,"slug":"vmenu","title":"vmenu","updated_at":"2014-08-02T07:06:07.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:07.000Z","data_filter":"","data_source":"","data_source_param":"","id":248,"is_enabled":true,"is_full_html":false,"lft":26,"parent_id":244,"rgt":31,"root_id":234,"section_context":"","section_id":2,"section_instance":13,"site_id":2,"slug":"container--9","title":"container","updated_at":"2014-08-02T07:06:07.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:07.000Z","data_filter":"","data_source":"","data_source_param":"","id":249,"is_enabled":true,"is_full_html":false,"lft":27,"parent_id":248,"rgt":28,"root_id":234,"section_context":"","section_id":40,"section_instance":3,"site_id":2,"slug":"taxonomy-name--2","title":"taxonomy name","updated_at":"2014-08-02T07:06:07.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":250,"is_enabled":true,"is_full_html":false,"lft":29,"parent_id":248,"rgt":30,"root_id":234,"section_context":"","section_id":6,"section_instance":2,"site_id":2,"slug":"vmenu--2","title":"vmenu","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":251,"is_enabled":true,"is_full_html":false,"lft":33,"parent_id":243,"rgt":116,"root_id":234,"section_context":"","section_id":2,"section_instance":5,"site_id":2,"slug":"main-content","title":"main content","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"gpvs","data_source_param":"","id":252,"is_enabled":true,"is_full_html":false,"lft":34,"parent_id":251,"rgt":43,"root_id":234,"section_context":"home,list","section_id":2,"section_instance":6,"site_id":2,"slug":"product-list","title":"product list","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":253,"is_enabled":true,"is_full_html":false,"lft":35,"parent_id":252,"rgt":42,"root_id":234,"section_context":"","section_id":2,"section_instance":8,"site_id":2,"slug":"container--10","title":"container","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":254,"is_enabled":true,"is_full_html":false,"lft":36,"parent_id":253,"rgt":37,"root_id":234,"section_context":"","section_id":17,"section_instance":1,"site_id":2,"slug":"product-image","title":"product image","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":1,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":255,"is_enabled":true,"is_full_html":false,"lft":38,"parent_id":253,"rgt":39,"root_id":234,"section_context":"","section_id":13,"section_instance":3,"site_id":2,"slug":"product-name","title":"product name","updated_at":"2014-09-01T14:24:26.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":256,"is_enabled":true,"is_full_html":false,"lft":40,"parent_id":253,"rgt":41,"root_id":234,"section_context":"","section_id":30,"section_instance":2,"site_id":2,"slug":"product-price","title":"product price","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"this_product","data_source_param":"","id":257,"is_enabled":true,"is_full_html":false,"lft":44,"parent_id":251,"rgt":71,"root_id":234,"section_context":"detail","section_id":2,"section_instance":7,"site_id":2,"slug":"product-detail","title":"product detail","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":258,"is_enabled":true,"is_full_html":false,"lft":45,"parent_id":257,"rgt":50,"root_id":234,"section_context":"","section_id":2,"section_instance":10,"site_id":2,"slug":"container--11","title":"container","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":259,"is_enabled":true,"is_full_html":false,"lft":46,"parent_id":258,"rgt":47,"root_id":234,"section_context":"","section_id":94,"section_instance":2,"site_id":2,"slug":"image-with-thumbnails","title":"image with thumbnails","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":260,"is_enabled":true,"is_full_html":false,"lft":48,"parent_id":258,"rgt":49,"root_id":234,"section_context":"","section_id":28,"section_instance":2,"site_id":2,"slug":"product_properties","title":"product_properties","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":261,"is_enabled":true,"is_full_html":false,"lft":51,"parent_id":257,"rgt":70,"root_id":234,"section_context":"","section_id":2,"section_instance":9,"site_id":2,"slug":"container--12","title":"container","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":262,"is_enabled":true,"is_full_html":false,"lft":52,"parent_id":261,"rgt":53,"root_id":234,"section_context":"","section_id":13,"section_instance":3,"site_id":2,"slug":"product-name--2","title":"product name","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":263,"is_enabled":true,"is_full_html":false,"lft":54,"parent_id":261,"rgt":55,"root_id":234,"section_context":"","section_id":15,"section_instance":1,"site_id":2,"slug":"product-description","title":"product description","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":264,"is_enabled":true,"is_full_html":false,"lft":56,"parent_id":261,"rgt":69,"root_id":234,"section_context":"","section_id":2,"section_instance":11,"site_id":2,"slug":"container--13","title":"container","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":265,"is_enabled":true,"is_full_html":false,"lft":57,"parent_id":264,"rgt":58,"root_id":234,"section_context":"","section_id":107,"section_instance":1,"site_id":2,"slug":"product-option-values","title":"Product option values","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":266,"is_enabled":true,"is_full_html":false,"lft":59,"parent_id":264,"rgt":68,"root_id":234,"section_context":"","section_id":2,"section_instance":25,"site_id":2,"slug":"container--14","title":"container","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":267,"is_enabled":true,"is_full_html":false,"lft":60,"parent_id":266,"rgt":61,"root_id":234,"section_context":"","section_id":30,"section_instance":1,"site_id":2,"slug":"product-price--2","title":"product price","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":268,"is_enabled":true,"is_full_html":false,"lft":62,"parent_id":266,"rgt":67,"root_id":234,"section_context":"","section_id":2,"section_instance":24,"site_id":2,"slug":"container--15","title":"container","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":269,"is_enabled":true,"is_full_html":false,"lft":63,"parent_id":268,"rgt":64,"root_id":234,"section_context":"","section_id":32,"section_instance":2,"site_id":2,"slug":"product-quantity","title":"product quantity","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":270,"is_enabled":true,"is_full_html":false,"lft":65,"parent_id":268,"rgt":66,"root_id":234,"section_context":"","section_id":34,"section_instance":2,"site_id":2,"slug":"product-atc","title":"product atc","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":271,"is_enabled":true,"is_full_html":false,"lft":72,"parent_id":251,"rgt":115,"root_id":234,"section_context":"cart,checkout,thanks,account,signup,login,password","section_id":2,"section_instance":14,"site_id":2,"slug":"other-pages","title":"other pages","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":272,"is_enabled":true,"is_full_html":false,"lft":73,"parent_id":271,"rgt":74,"root_id":234,"section_context":"","section_id":50,"section_instance":1,"site_id":2,"slug":"taxon-name","title":"taxon name","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":273,"is_enabled":true,"is_full_html":false,"lft":75,"parent_id":271,"rgt":80,"root_id":234,"section_context":"cart","section_id":36,"section_instance":1,"site_id":2,"slug":"cart","title":"cart","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":274,"is_enabled":true,"is_full_html":false,"lft":76,"parent_id":273,"rgt":77,"root_id":234,"section_context":"","section_id":42,"section_instance":2,"site_id":2,"slug":"cart-items","title":"cart items","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":275,"is_enabled":true,"is_full_html":false,"lft":78,"parent_id":273,"rgt":79,"root_id":234,"section_context":"","section_id":44,"section_instance":2,"site_id":2,"slug":"order-total-price","title":"order total price","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":276,"is_enabled":true,"is_full_html":false,"lft":81,"parent_id":271,"rgt":86,"root_id":234,"section_context":"checkout","section_id":46,"section_instance":2,"site_id":2,"slug":"checkout","title":"checkout","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":277,"is_enabled":true,"is_full_html":false,"lft":82,"parent_id":276,"rgt":83,"root_id":234,"section_context":"","section_id":69,"section_instance":1,"site_id":2,"slug":"ship-form","title":"ship form","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":278,"is_enabled":true,"is_full_html":false,"lft":84,"parent_id":276,"rgt":85,"root_id":234,"section_context":"","section_id":72,"section_instance":1,"site_id":2,"slug":"payment-form","title":"payment form","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":279,"is_enabled":true,"is_full_html":false,"lft":87,"parent_id":271,"rgt":96,"root_id":234,"section_context":"thanks","section_id":2,"section_instance":18,"site_id":2,"slug":"thanks","title":"thanks","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":280,"is_enabled":true,"is_full_html":false,"lft":88,"parent_id":279,"rgt":93,"root_id":234,"section_context":"","section_id":2,"section_instance":23,"site_id":2,"slug":"container--16","title":"container","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":281,"is_enabled":true,"is_full_html":false,"lft":89,"parent_id":280,"rgt":90,"root_id":234,"section_context":"","section_id":52,"section_instance":1,"site_id":2,"slug":"order-address","title":"order address","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":282,"is_enabled":true,"is_full_html":false,"lft":91,"parent_id":280,"rgt":92,"root_id":234,"section_context":"","section_id":55,"section_instance":1,"site_id":2,"slug":"order-payment","title":"order payment","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":283,"is_enabled":true,"is_full_html":false,"lft":94,"parent_id":279,"rgt":95,"root_id":234,"section_context":"","section_id":58,"section_instance":1,"site_id":2,"slug":"order-items","title":"order items","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":284,"is_enabled":true,"is_full_html":false,"lft":97,"parent_id":271,"rgt":102,"root_id":234,"section_context":"account","section_id":2,"section_instance":17,"site_id":2,"slug":"account","title":"account","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":285,"is_enabled":true,"is_full_html":false,"lft":98,"parent_id":284,"rgt":99,"root_id":234,"section_context":"","section_id":85,"section_instance":1,"site_id":2,"slug":"profile","title":"profile","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":286,"is_enabled":true,"is_full_html":false,"lft":100,"parent_id":284,"rgt":101,"root_id":234,"section_context":"","section_id":82,"section_instance":1,"site_id":2,"slug":"order-list","title":"order list","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:08.000Z","data_filter":"","data_source":"","data_source_param":"","id":287,"is_enabled":true,"is_full_html":false,"lft":103,"parent_id":271,"rgt":106,"root_id":234,"section_context":"login","section_id":2,"section_instance":15,"site_id":2,"slug":"login","title":"login","updated_at":"2014-08-02T07:06:08.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:09.000Z","data_filter":"","data_source":"","data_source_param":"","id":288,"is_enabled":true,"is_full_html":false,"lft":104,"parent_id":287,"rgt":105,"root_id":234,"section_context":"","section_id":61,"section_instance":1,"site_id":2,"slug":"login-form","title":"login form","updated_at":"2014-08-02T07:06:09.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:09.000Z","data_filter":"","data_source":"","data_source_param":"","id":289,"is_enabled":true,"is_full_html":false,"lft":107,"parent_id":271,"rgt":110,"root_id":234,"section_context":"signup","section_id":2,"section_instance":16,"site_id":2,"slug":"signup","title":"signup","updated_at":"2014-08-02T07:06:09.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:09.000Z","data_filter":"","data_source":"","data_source_param":"","id":290,"is_enabled":true,"is_full_html":false,"lft":108,"parent_id":289,"rgt":109,"root_id":234,"section_context":"","section_id":64,"section_instance":1,"site_id":2,"slug":"sign-up-form","title":"sign up form","updated_at":"2014-08-02T07:06:09.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:09.000Z","data_filter":"","data_source":"","data_source_param":"","id":291,"is_enabled":true,"is_full_html":false,"lft":111,"parent_id":271,"rgt":114,"root_id":234,"section_context":"password","section_id":2,"section_instance":22,"site_id":2,"slug":"password","title":"password","updated_at":"2014-08-02T07:06:09.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:09.000Z","data_filter":"","data_source":"","data_source_param":"","id":292,"is_enabled":true,"is_full_html":false,"lft":112,"parent_id":291,"rgt":113,"root_id":234,"section_context":"","section_id":104,"section_instance":1,"site_id":2,"slug":"password-recover-form","title":"password recover form","updated_at":"2014-08-02T07:06:09.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:09.000Z","data_filter":"","data_source":"","data_source_param":"","id":293,"is_enabled":true,"is_full_html":false,"lft":118,"parent_id":234,"rgt":121,"root_id":234,"section_context":"","section_id":2,"section_instance":3,"site_id":2,"slug":"footer","title":"footer","updated_at":"2014-08-02T07:06:09.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:09.000Z","data_filter":"","data_source":"","data_source_param":"","id":294,"is_enabled":true,"is_full_html":false,"lft":119,"parent_id":293,"rgt":120,"root_id":234,"section_context":"","section_id":11,"section_instance":1,"site_id":2,"slug":"copyright","title":"copyright","updated_at":"2014-08-02T07:06:09.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":83,"created_at":"2014-08-02T07:06:09.000Z","data_filter":"","data_source":"","data_source_param":"","id":295,"is_enabled":true,"is_full_html":false,"lft":122,"parent_id":234,"rgt":123,"root_id":234,"section_context":"","section_id":90,"section_instance":2,"site_id":2,"slug":"dialog","title":"dialog","updated_at":"2014-08-02T07:06:09.000Z"}}],"template_files":[{"template_file":{"attachment_content_type":"image/gif","attachment_file_name":"logo.gif","attachment_file_size":1575,"attachment_height":null,"attachment_updated_at":"2014-08-02T07:06:10.000Z","attachment_width":null,"created_at":"2014-08-02T07:06:06.000Z","id":11,"theme_id":1}},{"template_file":{"attachment_content_type":"image/jpeg","attachment_file_name":"6a5e31b1jw1doccdf5tdqj.jpg","attachment_file_size":16469,"attachment_height":null,"attachment_updated_at":"2014-08-02T07:06:10.000Z","attachment_width":null,"created_at":"2014-08-02T07:06:06.000Z","id":12,"theme_id":1}}],"template_releases":[{"template_release":{"created_at":"2014-08-02T07:06:06.000Z","id":6,"name":"First theme released","theme_id":1,"updated_at":"2013-05-12T13:29:47.000Z"}},{"template_release":{"created_at":"2014-08-02T07:06:06.000Z","id":7,"name":"just a test","theme_id":1,"updated_at":"2014-02-16T13:05:22.000Z"}},{"template_release":{"created_at":"2014-08-02T07:06:06.000Z","id":8,"name":"just a test","theme_id":1,"updated_at":"2014-02-20T14:39:05.000Z"}},{"template_release":{"created_at":"2014-08-02T07:06:06.000Z","id":9,"name":"just a test","theme_id":1,"updated_at":"2014-03-02T06:58:26.000Z"}},{"template_release":{"created_at":"2014-08-02T07:06:06.000Z","id":10,"name":"just a test","theme_id":1,"updated_at":"2014-04-03T14:04:43.000Z"}},{"template_release":{"created_at":"2014-08-02T07:06:06.000Z","id":11,"name":"just a test","theme_id":1,"updated_at":"2014-07-26T08:14:37.000Z"}}]} \ No newline at end of file diff --git a/spree_theme/db/themes/designs/2_1_1410512684/6a5e31b1jw1doccdf5tdqj.jpg b/spree_theme/db/themes/designs/2_1_1410512684/6a5e31b1jw1doccdf5tdqj.jpg deleted file mode 100644 index 7fff0f08..00000000 Binary files a/spree_theme/db/themes/designs/2_1_1410512684/6a5e31b1jw1doccdf5tdqj.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_1_1410512684/logo.gif b/spree_theme/db/themes/designs/2_1_1410512684/logo.gif deleted file mode 100644 index 2782a6b2..00000000 Binary files a/spree_theme/db/themes/designs/2_1_1410512684/logo.gif and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1404307519.yml b/spree_theme/db/themes/designs/2_5_1404307519.yml deleted file mode 100644 index 0437c15d..00000000 --- a/spree_theme/db/themes/designs/2_5_1404307519.yml +++ /dev/null @@ -1,7340 +0,0 @@ ---- -:template: !ruby/object:Spree::TemplateTheme - attributes: - id: 5 - site_id: 2 - page_layout_root_id: 208 - release_id: 5 - title: 服装定制 - slug: '' - assigned_resource_ids: - 211: - :spree/template_file: - - 1 - 213: - :spree/taxon: - - 0 - - 0 - 215: - :spree/taxon: - - 0 - 219: - :spree/taxon: - - 1 - 222: - :spree/taxon: - - 2 - created_at: 2014-06-28 10:16:01.000000000 Z - updated_at: 2014-06-28 10:16:03.000000000 Z -:param_values: -- !ruby/object:Spree::ParamValue - attributes: - id: 3091 - page_layout_root_id: 208 - page_layout_id: 209 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:02.000000000 Z - updated_at: 2013-04-08 13:27:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3092 - page_layout_root_id: 208 - page_layout_id: 209 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:02.000000000 Z - updated_at: 2013-12-03 08:15:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &101818570 - id: 3093 - page_layout_root_id: 208 - page_layout_id: 209 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:auto auto 20px auto - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:03.000000000 Z - updated_at: 2014-02-21 13:13:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3094 - page_layout_root_id: 208 - page_layout_id: 209 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:03.000000000 Z - updated_at: 2013-04-08 13:27:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3095 - page_layout_root_id: 208 - page_layout_id: 209 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:03.000000000 Z - updated_at: 2013-04-08 13:27:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3096 - page_layout_root_id: 208 - page_layout_id: 217 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - 85unset: '0' - 85: clear:none - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:04.000000000 Z - updated_at: 2013-04-08 14:08:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3097 - page_layout_root_id: 208 - page_layout_id: 217 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:04.000000000 Z - updated_at: 2014-02-27 14:13:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3098 - page_layout_root_id: 208 - page_layout_id: 217 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:04.000000000 Z - updated_at: 2013-04-08 13:27:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3099 - page_layout_root_id: 208 - page_layout_id: 217 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - 2unset: '1' - 2: background-color:yellow - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:04.000000000 Z - updated_at: 2013-10-05 10:50:30.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3100 - page_layout_root_id: 208 - page_layout_id: 217 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:04.000000000 Z - updated_at: 2013-04-08 13:27:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3101 - page_layout_root_id: 208 - page_layout_id: 267 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2013-04-08 13:27:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3102 - page_layout_root_id: 208 - page_layout_id: 267 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-02-21 13:04:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3103 - page_layout_root_id: 208 - page_layout_id: 267 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2013-04-08 13:27:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3104 - page_layout_root_id: 208 - page_layout_id: 267 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - 2unset: '0' - 2: background-color:#F5F5F5 - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2013-04-08 13:27:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3105 - page_layout_root_id: 208 - page_layout_id: 267 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2013-04-08 13:27:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3106 - page_layout_root_id: 208 - page_layout_id: 218 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2013-04-08 13:27:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3107 - page_layout_root_id: 208 - page_layout_id: 218 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - 21unset: '0' - 21: width:200px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2013-04-08 13:27:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3108 - page_layout_root_id: 208 - page_layout_id: 218 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:auto 10px auto 10px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-02-23 12:35:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3109 - page_layout_root_id: 208 - page_layout_id: 218 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - 2unset: '1' - 2: background-color:#FFF8ED - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2013-10-05 01:17:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3110 - page_layout_root_id: 208 - page_layout_id: 218 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - 49unset: '1' - 49: color:black - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2013-10-02 10:05:06.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3111 - page_layout_root_id: 208 - page_layout_id: 225 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2013-04-08 13:27:06.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3112 - page_layout_root_id: 208 - page_layout_id: 225 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - 21unset: '0' - 21: width:750px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2014-02-27 14:13:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3113 - page_layout_root_id: 208 - page_layout_id: 225 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2013-04-08 13:27:06.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3114 - page_layout_root_id: 208 - page_layout_id: 225 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2013-04-08 13:27:06.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3115 - page_layout_root_id: 208 - page_layout_id: 225 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2013-04-08 13:27:06.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3116 - page_layout_root_id: 208 - page_layout_id: 226 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - 85unset: '0' - 85: clear:none - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2013-04-09 11:57:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3117 - page_layout_root_id: 208 - page_layout_id: 226 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - 21unset: '1' - 21: width:100% - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2013-04-09 11:57:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3118 - page_layout_root_id: 208 - page_layout_id: 226 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2013-04-08 13:27:07.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3119 - page_layout_root_id: 208 - page_layout_id: 226 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2013-04-08 13:27:07.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3120 - page_layout_root_id: 208 - page_layout_id: 226 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2013-04-08 13:27:07.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3121 - page_layout_root_id: 208 - page_layout_id: 231 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - 85unset: '0' - 85: clear:none - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2013-04-12 13:03:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3122 - page_layout_root_id: 208 - page_layout_id: 231 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - 21unset: '1' - 21: width:200px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:08.000000000 Z - updated_at: 2013-04-09 13:14:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3123 - page_layout_root_id: 208 - page_layout_id: 231 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:08.000000000 Z - updated_at: 2013-04-08 13:27:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3124 - page_layout_root_id: 208 - page_layout_id: 231 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:08.000000000 Z - updated_at: 2013-04-08 13:27:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3125 - page_layout_root_id: 208 - page_layout_id: 231 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:08.000000000 Z - updated_at: 2013-04-08 13:27:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3126 - page_layout_root_id: 208 - page_layout_id: 228 - section_param_id: 65 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:08.000000000 Z - updated_at: 2013-04-08 13:27:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3127 - page_layout_root_id: 208 - page_layout_id: 228 - section_param_id: 66 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 15unset: '0' - 15: height:110px - 21unset: '0' - 21: width:150px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:09.000000000 Z - updated_at: 2013-10-05 01:20:44.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3128 - page_layout_root_id: 208 - page_layout_id: 228 - section_param_id: 67 - theme_id: 5 - pvalue: - 15hidden: '1' - 7unset: '0' - 7: border-style:solid solid solid solid - 8unset: '0' - 8: border-width:1px 1px 1px 1px - 6unset: '0' - 6: ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - 32unset: '0' - 32: padding:5px 0px 5px 0px - 15unset: '0' - 15: height:98px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:09.000000000 Z - updated_at: 2013-10-05 01:21:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3129 - page_layout_root_id: 208 - page_layout_id: 228 - section_param_id: 68 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:09.000000000 Z - updated_at: 2013-04-08 13:27:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3130 - page_layout_root_id: 208 - page_layout_id: 228 - section_param_id: 69 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 53unset: '0' - 53: text-align:center - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:09.000000000 Z - updated_at: 2013-04-19 13:14:07.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3131 - page_layout_root_id: 208 - page_layout_id: 237 - section_param_id: 60 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:10.000000000 Z - updated_at: 2013-04-08 13:27:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3132 - page_layout_root_id: 208 - page_layout_id: 237 - section_param_id: 61 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:10.000000000 Z - updated_at: 2013-04-08 13:27:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3133 - page_layout_root_id: 208 - page_layout_id: 237 - section_param_id: 62 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - 32: padding:10px 0px 10px 0px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:10.000000000 Z - updated_at: 2013-10-04 07:23:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3134 - page_layout_root_id: 208 - page_layout_id: 237 - section_param_id: 63 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:10.000000000 Z - updated_at: 2013-04-08 13:27:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3135 - page_layout_root_id: 208 - page_layout_id: 237 - section_param_id: 64 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 24unset: '0' - 24: font-size:90% - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:10.000000000 Z - updated_at: 2013-10-04 07:23:47.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3136 - page_layout_root_id: 208 - page_layout_id: 268 - section_param_id: 50 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:11.000000000 Z - updated_at: 2013-04-08 13:27:11.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3137 - page_layout_root_id: 208 - page_layout_id: 268 - section_param_id: 51 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:11.000000000 Z - updated_at: 2013-04-08 13:27:11.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3138 - page_layout_root_id: 208 - page_layout_id: 268 - section_param_id: 52 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:11.000000000 Z - updated_at: 2013-04-08 13:27:11.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3139 - page_layout_root_id: 208 - page_layout_id: 268 - section_param_id: 53 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:11.000000000 Z - updated_at: 2013-04-08 13:27:11.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3140 - page_layout_root_id: 208 - page_layout_id: 268 - section_param_id: 54 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:11.000000000 Z - updated_at: 2013-04-08 13:27:11.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3141 - page_layout_root_id: 208 - page_layout_id: 227 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - 85unset: '0' - 85: clear:both - unset: - computed_pvalue: - created_at: 2013-04-08 14:05:42.000000000 Z - updated_at: 2013-04-09 13:23:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3142 - page_layout_root_id: 208 - page_layout_id: 227 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:160px - 15unset: '1' - 101: float:left - 101unset: '0' - 21unset: '0' - 21: width:160px - unset: - computed_pvalue: - created_at: 2013-04-08 14:05:42.000000000 Z - updated_at: 2014-02-23 11:16:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3143 - page_layout_root_id: 208 - page_layout_id: 227 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:auto auto 20px auto - 15unset: '1' - 15: height:140px - 32unset: '1' - 32: padding:0px 0px 0px 0px - 8unset: '1' - 8: border-width:0px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2013-04-08 14:05:42.000000000 Z - updated_at: 2014-02-23 11:16:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3144 - page_layout_root_id: 208 - page_layout_id: 227 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 14:05:42.000000000 Z - updated_at: 2013-04-08 14:05:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3145 - page_layout_root_id: 208 - page_layout_id: 227 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 14:05:42.000000000 Z - updated_at: 2013-04-08 14:05:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3146 - page_layout_root_id: 208 - page_layout_id: 235 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-09 13:12:32.000000000 Z - updated_at: 2013-04-09 13:12:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &113322940 - id: 3147 - page_layout_root_id: 208 - page_layout_id: 235 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - 21unset: '0' - 21: width:350px - unset: - computed_pvalue: - created_at: 2013-04-09 13:12:32.000000000 Z - updated_at: 2013-04-12 13:08:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3148 - page_layout_root_id: 208 - page_layout_id: 235 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-09 13:12:32.000000000 Z - updated_at: 2013-04-09 13:12:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3149 - page_layout_root_id: 208 - page_layout_id: 235 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-09 13:12:32.000000000 Z - updated_at: 2013-04-09 13:12:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3150 - page_layout_root_id: 208 - page_layout_id: 235 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-09 13:12:32.000000000 Z - updated_at: 2013-04-09 13:12:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3151 - page_layout_root_id: 208 - page_layout_id: 232 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-12 13:44:05.000000000 Z - updated_at: 2013-04-12 13:44:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3152 - page_layout_root_id: 208 - page_layout_id: 232 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-12 13:44:05.000000000 Z - updated_at: 2013-04-12 13:44:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3153 - page_layout_root_id: 208 - page_layout_id: 232 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:auto 10px auto auto - unset: - computed_pvalue: - created_at: 2013-04-12 13:44:05.000000000 Z - updated_at: 2013-10-04 07:21:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3154 - page_layout_root_id: 208 - page_layout_id: 232 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-12 13:44:05.000000000 Z - updated_at: 2013-04-12 13:44:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3155 - page_layout_root_id: 208 - page_layout_id: 232 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-12 13:44:05.000000000 Z - updated_at: 2013-04-12 13:44:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3156 - page_layout_root_id: 208 - page_layout_id: 241 - section_param_id: 110 - theme_id: 5 - pvalue: - id: 32 - page_layout_root_id: 1 - page_layout_id: 7 - section_param_id: 7 - theme_id: 1 - pvalue: !ruby/struct:ActiveRecord::AttributeMethods::Serialization::Attribute - coder: !ruby/object:ActiveRecord::Coders::YAMLColumn - object_class: &82975580 !ruby/class 'Hash' - value: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - 21unset: '0' - 21: width:200px - state: :unserialized - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.780447000 Z - updated_at: 2013-04-08 13:27:12.963062000 Z - unset: - computed_pvalue: - created_at: 2013-04-13 01:32:40.000000000 Z - updated_at: 2013-04-13 01:32:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3157 - page_layout_root_id: 208 - page_layout_id: 241 - section_param_id: 111 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-13 01:32:40.000000000 Z - updated_at: 2013-04-13 01:32:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3158 - page_layout_root_id: 208 - page_layout_id: 241 - section_param_id: 112 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-13 01:32:40.000000000 Z - updated_at: 2013-04-13 01:32:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3159 - page_layout_root_id: 208 - page_layout_id: 241 - section_param_id: 113 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-13 01:32:40.000000000 Z - updated_at: 2013-04-13 01:32:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3160 - page_layout_root_id: 208 - page_layout_id: 241 - section_param_id: 114 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 27unset: '0' - 27: font-weight:bolder - 24unset: '0' - 24: font-size:110% - 49unset: '0' - 49: color:#00ADEE - unset: - computed_pvalue: - created_at: 2013-04-13 01:32:40.000000000 Z - updated_at: 2013-10-04 07:25:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3161 - page_layout_root_id: 208 - page_layout_id: 238 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - 85unset: '0' - 85: clear:both - unset: - computed_pvalue: - created_at: 2013-04-13 02:35:25.000000000 Z - updated_at: 2014-04-14 12:45:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3162 - page_layout_root_id: 208 - page_layout_id: 238 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '1' - 21unset: '0' - 21: width:450px - unset: - computed_pvalue: - created_at: 2013-04-13 02:35:25.000000000 Z - updated_at: 2014-03-06 13:45:41.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3163 - page_layout_root_id: 208 - page_layout_id: 238 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:10px auto auto auto - unset: - computed_pvalue: - created_at: 2013-04-13 02:35:25.000000000 Z - updated_at: 2013-10-04 07:24:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3164 - page_layout_root_id: 208 - page_layout_id: 238 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-13 02:35:25.000000000 Z - updated_at: 2013-04-13 02:35:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3165 - page_layout_root_id: 208 - page_layout_id: 238 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-13 02:35:26.000000000 Z - updated_at: 2013-04-13 02:35:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3166 - page_layout_root_id: 208 - page_layout_id: 247 - section_param_id: 125 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-16 14:20:10.000000000 Z - updated_at: 2013-04-16 14:20:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3167 - page_layout_root_id: 208 - page_layout_id: 247 - section_param_id: 126 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 21unset: '1' - 21: width:670px - unset: - computed_pvalue: - created_at: 2013-04-16 14:20:10.000000000 Z - updated_at: 2014-02-27 14:14:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3168 - page_layout_root_id: 208 - page_layout_id: 247 - section_param_id: 127 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-16 14:20:10.000000000 Z - updated_at: 2013-04-16 14:20:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3169 - page_layout_root_id: 208 - page_layout_id: 247 - section_param_id: 128 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-16 14:20:10.000000000 Z - updated_at: 2013-04-16 14:20:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3170 - page_layout_root_id: 208 - page_layout_id: 247 - section_param_id: 129 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 53unset: '1' - 53: text-align:right - unset: - computed_pvalue: - created_at: 2013-04-16 14:20:10.000000000 Z - updated_at: 2013-11-27 06:05:44.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3171 - page_layout_root_id: 208 - page_layout_id: 230 - section_param_id: 110 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-19 13:03:09.000000000 Z - updated_at: 2013-04-19 13:03:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3172 - page_layout_root_id: 208 - page_layout_id: 230 - section_param_id: 111 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 21unset: '0' - 21: width:150px - unset: - computed_pvalue: - created_at: 2013-04-19 13:03:10.000000000 Z - updated_at: 2013-10-02 09:59:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3173 - page_layout_root_id: 208 - page_layout_id: 230 - section_param_id: 112 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - 32: padding:5px 0px 0px 0px - 31unset: '0' - 31: margin:auto auto 10px auto - unset: - computed_pvalue: - created_at: 2013-04-19 13:03:10.000000000 Z - updated_at: 2013-10-05 07:13:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3174 - page_layout_root_id: 208 - page_layout_id: 230 - section_param_id: 113 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-19 13:03:10.000000000 Z - updated_at: 2013-04-19 13:03:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3175 - page_layout_root_id: 208 - page_layout_id: 230 - section_param_id: 114 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 53unset: '0' - 53: text-align:center - 49unset: '0' - 49: color:#00ADEE - 27unset: '0' - 27: font-weight:bold - unset: - computed_pvalue: - created_at: 2013-04-19 13:03:10.000000000 Z - updated_at: 2013-10-02 10:00:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3176 - page_layout_root_id: 208 - page_layout_id: 221 - section_param_id: 27 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3177 - page_layout_root_id: 208 - page_layout_id: 221 - section_param_id: 28 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3178 - page_layout_root_id: 208 - page_layout_id: 221 - section_param_id: 29 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - 32: padding:0px 0px 0px 20px - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-05 00:49:11.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3179 - page_layout_root_id: 208 - page_layout_id: 221 - section_param_id: 30 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3180 - page_layout_root_id: 208 - page_layout_id: 221 - section_param_id: 31 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3181 - page_layout_root_id: 208 - page_layout_id: 221 - section_param_id: 32 - theme_id: 5 - pvalue: - 32unset: '0' - 32: padding:5px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-05 01:11:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3182 - page_layout_root_id: 208 - page_layout_id: 221 - section_param_id: 33 - theme_id: 5 - pvalue: - 54unset: '0' - 54: text-decoration:none - 24unset: '0' - 24: font-size:90% - 49unset: '0' - 49: color:#00ADEE - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-05 01:12:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3183 - page_layout_root_id: 208 - page_layout_id: 221 - section_param_id: 34 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3184 - page_layout_root_id: 208 - page_layout_id: 221 - section_param_id: 35 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3185 - page_layout_root_id: 208 - page_layout_id: 221 - section_param_id: 36 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3186 - page_layout_root_id: 208 - page_layout_id: 221 - section_param_id: 37 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3187 - page_layout_root_id: 208 - page_layout_id: 221 - section_param_id: 38 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3188 - page_layout_root_id: 208 - page_layout_id: 221 - section_param_id: 39 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3189 - page_layout_root_id: 208 - page_layout_id: 221 - section_param_id: 40 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3190 - page_layout_root_id: 208 - page_layout_id: 221 - section_param_id: 41 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3191 - page_layout_root_id: 208 - page_layout_id: 221 - section_param_id: 42 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &111700650 - id: 3192 - page_layout_root_id: 208 - page_layout_id: 219 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:36:48.000000000 Z - updated_at: 2013-10-05 00:36:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3193 - page_layout_root_id: 208 - page_layout_id: 219 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:36:48.000000000 Z - updated_at: 2013-10-05 00:46:41.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3194 - page_layout_root_id: 208 - page_layout_id: 219 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:auto auto 20px auto - unset: - computed_pvalue: - created_at: 2013-10-05 00:36:48.000000000 Z - updated_at: 2013-10-05 01:14:46.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3195 - page_layout_root_id: 208 - page_layout_id: 219 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:36:48.000000000 Z - updated_at: 2013-10-05 00:36:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3196 - page_layout_root_id: 208 - page_layout_id: 219 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:36:48.000000000 Z - updated_at: 2013-10-05 00:36:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3197 - page_layout_root_id: 208 - page_layout_id: 222 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:37:55.000000000 Z - updated_at: 2013-10-05 00:37:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3198 - page_layout_root_id: 208 - page_layout_id: 222 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:37:55.000000000 Z - updated_at: 2013-10-05 01:14:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3199 - page_layout_root_id: 208 - page_layout_id: 222 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-10-05 00:37:55.000000000 Z - updated_at: 2013-10-05 00:37:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3200 - page_layout_root_id: 208 - page_layout_id: 222 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:37:56.000000000 Z - updated_at: 2013-10-05 00:37:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3201 - page_layout_root_id: 208 - page_layout_id: 222 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:37:56.000000000 Z - updated_at: 2013-10-05 00:37:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3202 - page_layout_root_id: 208 - page_layout_id: 224 - section_param_id: 27 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:16.000000000 Z - updated_at: 2013-10-05 00:38:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3203 - page_layout_root_id: 208 - page_layout_id: 224 - section_param_id: 28 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:16.000000000 Z - updated_at: 2014-01-22 14:04:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3204 - page_layout_root_id: 208 - page_layout_id: 224 - section_param_id: 29 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '1' - 31: margin:auto auto auto 20px - 32unset: '0' - 32: padding:0px 0px 0px 20px - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:16.000000000 Z - updated_at: 2013-10-05 01:13:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3205 - page_layout_root_id: 208 - page_layout_id: 224 - section_param_id: 30 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:16.000000000 Z - updated_at: 2013-10-05 00:38:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3206 - page_layout_root_id: 208 - page_layout_id: 224 - section_param_id: 31 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:16.000000000 Z - updated_at: 2013-10-05 00:38:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3207 - page_layout_root_id: 208 - page_layout_id: 224 - section_param_id: 32 - theme_id: 5 - pvalue: - 32unset: '0' - 32: padding:5px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 01:13:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3208 - page_layout_root_id: 208 - page_layout_id: 224 - section_param_id: 33 - theme_id: 5 - pvalue: - 24unset: '0' - 24: font-size:90% - 49unset: '0' - 49: color:#00ADEE - 54unset: '0' - 54: text-decoration:none - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 01:13:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3209 - page_layout_root_id: 208 - page_layout_id: 224 - section_param_id: 34 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3210 - page_layout_root_id: 208 - page_layout_id: 224 - section_param_id: 35 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3211 - page_layout_root_id: 208 - page_layout_id: 224 - section_param_id: 36 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3212 - page_layout_root_id: 208 - page_layout_id: 224 - section_param_id: 37 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3213 - page_layout_root_id: 208 - page_layout_id: 224 - section_param_id: 38 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3214 - page_layout_root_id: 208 - page_layout_id: 224 - section_param_id: 39 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3215 - page_layout_root_id: 208 - page_layout_id: 224 - section_param_id: 40 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3216 - page_layout_root_id: 208 - page_layout_id: 224 - section_param_id: 41 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3217 - page_layout_root_id: 208 - page_layout_id: 224 - section_param_id: 42 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3218 - page_layout_root_id: 208 - page_layout_id: 251 - section_param_id: 210 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:58.000000000 Z - updated_at: 2013-11-02 09:20:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3219 - page_layout_root_id: 208 - page_layout_id: 251 - section_param_id: 211 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:360px - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:58.000000000 Z - updated_at: 2014-03-04 13:56:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3220 - page_layout_root_id: 208 - page_layout_id: 251 - section_param_id: 212 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - 32: padding:10px 10px 10px 10px - 7unset: '0' - 7: border-style:solid solid solid solid - 8unset: '0' - 8: border-width:1px 1px 1px 1px - 6unset: '0' - 6: ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:58.000000000 Z - updated_at: 2014-03-04 13:52:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3221 - page_layout_root_id: 208 - page_layout_id: 251 - section_param_id: 213 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:58.000000000 Z - updated_at: 2013-11-02 09:20:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3222 - page_layout_root_id: 208 - page_layout_id: 251 - section_param_id: 214 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:59.000000000 Z - updated_at: 2013-11-02 09:20:59.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3223 - page_layout_root_id: 208 - page_layout_id: 251 - section_param_id: 215 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:59.000000000 Z - updated_at: 2013-11-02 09:20:59.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3224 - page_layout_root_id: 208 - page_layout_id: 251 - section_param_id: 216 - theme_id: 5 - pvalue: - 2unset: '1' - 2: background-color:#000000 - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:59.000000000 Z - updated_at: 2014-03-04 13:51:28.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3225 - page_layout_root_id: 208 - page_layout_id: 251 - section_param_id: 217 - theme_id: 5 - pvalue: - 49unset: '0' - 49: color:#00ADEE - 53unset: '0' - 53: text-align:center - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:59.000000000 Z - updated_at: 2014-03-04 13:51:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3226 - page_layout_root_id: 208 - page_layout_id: 252 - section_param_id: 218 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:08.000000000 Z - updated_at: 2013-11-02 09:21:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3227 - page_layout_root_id: 208 - page_layout_id: 252 - section_param_id: 219 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:360px - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:08.000000000 Z - updated_at: 2014-03-04 13:56:30.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3228 - page_layout_root_id: 208 - page_layout_id: 252 - section_param_id: 220 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - 32: padding:10px 20px 10px 20px - 7unset: '0' - 7: border-style:solid solid solid solid - 8unset: '0' - 8: border-width:1px 1px 1px 1px - 6unset: '0' - 6: ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - 31unset: '0' - 31: margin:10px auto 10px auto - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:08.000000000 Z - updated_at: 2014-03-04 13:59:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3229 - page_layout_root_id: 208 - page_layout_id: 252 - section_param_id: 221 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:09.000000000 Z - updated_at: 2013-11-02 09:21:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3230 - page_layout_root_id: 208 - page_layout_id: 252 - section_param_id: 222 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:09.000000000 Z - updated_at: 2013-11-02 09:21:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3231 - page_layout_root_id: 208 - page_layout_id: 252 - section_param_id: 223 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:09.000000000 Z - updated_at: 2013-11-02 09:21:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3232 - page_layout_root_id: 208 - page_layout_id: 252 - section_param_id: 224 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:09.000000000 Z - updated_at: 2013-11-02 09:21:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3233 - page_layout_root_id: 208 - page_layout_id: 252 - section_param_id: 225 - theme_id: 5 - pvalue: - 49unset: '0' - 49: color:#00ADEE - 53unset: '0' - 53: text-align:center - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:09.000000000 Z - updated_at: 2014-03-04 13:57:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3234 - page_layout_root_id: 208 - page_layout_id: 245 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:35:02.000000000 Z - updated_at: 2013-11-02 09:35:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3235 - page_layout_root_id: 208 - page_layout_id: 245 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2013-11-02 09:35:02.000000000 Z - updated_at: 2014-02-27 14:14:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3236 - page_layout_root_id: 208 - page_layout_id: 245 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:35:02.000000000 Z - updated_at: 2013-11-02 09:35:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3237 - page_layout_root_id: 208 - page_layout_id: 245 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:35:02.000000000 Z - updated_at: 2013-11-02 09:35:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3238 - page_layout_root_id: 208 - page_layout_id: 245 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:35:02.000000000 Z - updated_at: 2013-11-02 09:35:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3239 - page_layout_root_id: 208 - page_layout_id: 246 - section_param_id: 160 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:36:17.000000000 Z - updated_at: 2013-11-02 09:36:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3240 - page_layout_root_id: 208 - page_layout_id: 246 - section_param_id: 161 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:36:17.000000000 Z - updated_at: 2013-11-02 09:36:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3241 - page_layout_root_id: 208 - page_layout_id: 246 - section_param_id: 162 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:36:17.000000000 Z - updated_at: 2013-11-02 09:36:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3242 - page_layout_root_id: 208 - page_layout_id: 246 - section_param_id: 163 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:36:17.000000000 Z - updated_at: 2013-11-02 09:36:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3243 - page_layout_root_id: 208 - page_layout_id: 246 - section_param_id: 164 - theme_id: 5 - pvalue: - 24unset: '0' - 24: font-size:150% - unset: - computed_pvalue: - created_at: 2013-11-02 09:36:18.000000000 Z - updated_at: 2014-02-21 13:02:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3244 - page_layout_root_id: 208 - page_layout_id: 255 - section_param_id: 165 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2013-11-02 09:37:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3245 - page_layout_root_id: 208 - page_layout_id: 255 - section_param_id: 166 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2013-11-02 09:37:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3246 - page_layout_root_id: 208 - page_layout_id: 255 - section_param_id: 167 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:auto 10px auto 10px - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2014-03-04 14:26:19.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3247 - page_layout_root_id: 208 - page_layout_id: 255 - section_param_id: 168 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2013-11-02 09:37:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3248 - page_layout_root_id: 208 - page_layout_id: 255 - section_param_id: 169 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2013-11-02 09:37:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3249 - page_layout_root_id: 208 - page_layout_id: 255 - section_param_id: 170 - theme_id: 5 - pvalue: - 31unset: '0' - 31: margin:auto auto 10px auto - 7unset: '0' - 7: border-style:none none solid none - 8unset: '0' - 8: border-width:0px 0px 1px 0px - 6unset: '0' - 6: ! 'border-color:transparent transparent #D9D9DB transparent' - 32unset: '0' - 32: padding:5px 0px 5px 0px - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2014-03-04 14:24:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3250 - page_layout_root_id: 208 - page_layout_id: 255 - section_param_id: 171 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:22.000000000 Z - updated_at: 2013-11-02 09:37:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3251 - page_layout_root_id: 208 - page_layout_id: 255 - section_param_id: 172 - theme_id: 5 - pvalue: - 27: font-weight:bold - 54unset: '1' - 54: text-decoration:underline - 53unset: '1' - 53: text-align:left - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:22.000000000 Z - updated_at: 2014-03-04 14:24:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3252 - page_layout_root_id: 208 - page_layout_id: 256 - section_param_id: 173 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:30.000000000 Z - updated_at: 2013-11-02 09:37:30.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3253 - page_layout_root_id: 208 - page_layout_id: 256 - section_param_id: 174 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:300px - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2014-03-04 14:28:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3254 - page_layout_root_id: 208 - page_layout_id: 256 - section_param_id: 175 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2013-11-02 09:37:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3255 - page_layout_root_id: 208 - page_layout_id: 256 - section_param_id: 176 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2013-11-02 09:37:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3256 - page_layout_root_id: 208 - page_layout_id: 256 - section_param_id: 177 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2013-11-02 09:37:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3257 - page_layout_root_id: 208 - page_layout_id: 256 - section_param_id: 178 - theme_id: 5 - pvalue: - 31unset: '0' - 31: margin:auto auto 10px auto - 32unset: '0' - 32: padding:5px 0px 5px 0px - 7unset: '0' - 7: border-style:none none solid none - 8unset: '0' - 8: border-width:0px 0px 1px 0px - 6unset: '0' - 6: ! 'border-color:transparent transparent #D9D9DB transparent' - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2014-03-04 14:27:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3258 - page_layout_root_id: 208 - page_layout_id: 256 - section_param_id: 179 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2013-11-02 09:37:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3259 - page_layout_root_id: 208 - page_layout_id: 256 - section_param_id: 180 - theme_id: 5 - pvalue: - 27: font-weight:bold - 54unset: '1' - 54: text-decoration:underline - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2014-03-04 14:27:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3260 - page_layout_root_id: 208 - page_layout_id: 257 - section_param_id: 181 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3261 - page_layout_root_id: 208 - page_layout_id: 257 - section_param_id: 182 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3262 - page_layout_root_id: 208 - page_layout_id: 257 - section_param_id: 183 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3263 - page_layout_root_id: 208 - page_layout_id: 257 - section_param_id: 184 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3264 - page_layout_root_id: 208 - page_layout_id: 257 - section_param_id: 185 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3265 - page_layout_root_id: 208 - page_layout_id: 257 - section_param_id: 186 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3266 - page_layout_root_id: 208 - page_layout_id: 257 - section_param_id: 187 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3267 - page_layout_root_id: 208 - page_layout_id: 257 - section_param_id: 188 - theme_id: 5 - pvalue: - 27: font-weight:bold - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3268 - page_layout_root_id: 208 - page_layout_id: 259 - section_param_id: 268 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:51.000000000 Z - updated_at: 2013-11-02 09:37:51.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3269 - page_layout_root_id: 208 - page_layout_id: 259 - section_param_id: 269 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:51.000000000 Z - updated_at: 2013-11-02 09:37:51.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3270 - page_layout_root_id: 208 - page_layout_id: 259 - section_param_id: 270 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3271 - page_layout_root_id: 208 - page_layout_id: 259 - section_param_id: 271 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3272 - page_layout_root_id: 208 - page_layout_id: 259 - section_param_id: 272 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3273 - page_layout_root_id: 208 - page_layout_id: 259 - section_param_id: 273 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3274 - page_layout_root_id: 208 - page_layout_id: 259 - section_param_id: 274 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3275 - page_layout_root_id: 208 - page_layout_id: 259 - section_param_id: 275 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3276 - page_layout_root_id: 208 - page_layout_id: 260 - section_param_id: 260 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3277 - page_layout_root_id: 208 - page_layout_id: 260 - section_param_id: 261 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3278 - page_layout_root_id: 208 - page_layout_id: 260 - section_param_id: 262 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3279 - page_layout_root_id: 208 - page_layout_id: 260 - section_param_id: 263 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3280 - page_layout_root_id: 208 - page_layout_id: 260 - section_param_id: 264 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3281 - page_layout_root_id: 208 - page_layout_id: 260 - section_param_id: 265 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3282 - page_layout_root_id: 208 - page_layout_id: 260 - section_param_id: 266 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3283 - page_layout_root_id: 208 - page_layout_id: 260 - section_param_id: 267 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:02.000000000 Z - updated_at: 2013-11-02 09:38:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3284 - page_layout_root_id: 208 - page_layout_id: 261 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:01.000000000 Z - updated_at: 2013-11-02 09:39:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3285 - page_layout_root_id: 208 - page_layout_id: 261 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:01.000000000 Z - updated_at: 2013-11-02 10:07:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3286 - page_layout_root_id: 208 - page_layout_id: 261 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:01.000000000 Z - updated_at: 2013-11-02 09:39:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3287 - page_layout_root_id: 208 - page_layout_id: 261 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:01.000000000 Z - updated_at: 2013-11-02 09:39:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3288 - page_layout_root_id: 208 - page_layout_id: 261 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:01.000000000 Z - updated_at: 2013-11-02 09:39:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3289 - page_layout_root_id: 208 - page_layout_id: 263 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:32.000000000 Z - updated_at: 2013-11-02 09:39:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3290 - page_layout_root_id: 208 - page_layout_id: 263 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:33.000000000 Z - updated_at: 2013-11-02 10:07:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3291 - page_layout_root_id: 208 - page_layout_id: 263 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:33.000000000 Z - updated_at: 2013-11-02 09:39:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3292 - page_layout_root_id: 208 - page_layout_id: 263 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:33.000000000 Z - updated_at: 2013-11-02 09:39:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3293 - page_layout_root_id: 208 - page_layout_id: 263 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:33.000000000 Z - updated_at: 2013-11-02 09:39:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3294 - page_layout_root_id: 208 - page_layout_id: 262 - section_param_id: 189 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3295 - page_layout_root_id: 208 - page_layout_id: 262 - section_param_id: 190 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3296 - page_layout_root_id: 208 - page_layout_id: 262 - section_param_id: 191 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3297 - page_layout_root_id: 208 - page_layout_id: 262 - section_param_id: 192 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3298 - page_layout_root_id: 208 - page_layout_id: 262 - section_param_id: 193 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3299 - page_layout_root_id: 208 - page_layout_id: 262 - section_param_id: 194 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3300 - page_layout_root_id: 208 - page_layout_id: 262 - section_param_id: 195 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3301 - page_layout_root_id: 208 - page_layout_id: 262 - section_param_id: 196 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3302 - page_layout_root_id: 208 - page_layout_id: 264 - section_param_id: 197 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3303 - page_layout_root_id: 208 - page_layout_id: 264 - section_param_id: 198 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3304 - page_layout_root_id: 208 - page_layout_id: 264 - section_param_id: 199 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3305 - page_layout_root_id: 208 - page_layout_id: 264 - section_param_id: 200 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3306 - page_layout_root_id: 208 - page_layout_id: 264 - section_param_id: 201 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3307 - page_layout_root_id: 208 - page_layout_id: 264 - section_param_id: 202 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3308 - page_layout_root_id: 208 - page_layout_id: 264 - section_param_id: 203 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3309 - page_layout_root_id: 208 - page_layout_id: 264 - section_param_id: 204 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3310 - page_layout_root_id: 208 - page_layout_id: 258 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:08.000000000 Z - updated_at: 2013-11-02 09:50:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3311 - page_layout_root_id: 208 - page_layout_id: 258 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:08.000000000 Z - updated_at: 2013-11-02 10:07:29.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3312 - page_layout_root_id: 208 - page_layout_id: 258 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:08.000000000 Z - updated_at: 2013-11-02 09:50:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3313 - page_layout_root_id: 208 - page_layout_id: 258 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:08.000000000 Z - updated_at: 2013-11-02 09:50:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3314 - page_layout_root_id: 208 - page_layout_id: 258 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:09.000000000 Z - updated_at: 2013-11-02 09:50:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3315 - page_layout_root_id: 208 - page_layout_id: 253 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:37.000000000 Z - updated_at: 2013-11-02 09:50:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3316 - page_layout_root_id: 208 - page_layout_id: 253 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:37.000000000 Z - updated_at: 2013-11-02 10:07:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3317 - page_layout_root_id: 208 - page_layout_id: 253 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - 32: padding:0px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:37.000000000 Z - updated_at: 2014-03-04 14:25:49.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3318 - page_layout_root_id: 208 - page_layout_id: 253 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:37.000000000 Z - updated_at: 2013-11-02 09:50:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3319 - page_layout_root_id: 208 - page_layout_id: 253 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:37.000000000 Z - updated_at: 2013-11-02 09:50:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3320 - page_layout_root_id: 208 - page_layout_id: 215 - section_param_id: 11 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:07.000000000 Z - updated_at: 2013-11-05 03:16:07.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3321 - page_layout_root_id: 208 - page_layout_id: 215 - section_param_id: 12 - theme_id: 5 - pvalue: - 21unset: '1' - 21: width:960px - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:07.000000000 Z - updated_at: 2013-12-03 08:15:29.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3322 - page_layout_root_id: 208 - page_layout_id: 215 - section_param_id: 13 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3323 - page_layout_root_id: 208 - page_layout_id: 215 - section_param_id: 14 - theme_id: 5 - pvalue: - 2unset: '1' - 2: background-color:lime - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-12-03 08:36:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3324 - page_layout_root_id: 208 - page_layout_id: 215 - section_param_id: 15 - theme_id: 5 - pvalue: - 27unset: '0' - 27: font-weight:bold - 49unset: '1' - 49: color:#00ADEE - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2014-02-21 13:19:47.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3325 - page_layout_root_id: 208 - page_layout_id: 215 - section_param_id: 16 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3326 - page_layout_root_id: 208 - page_layout_id: 215 - section_param_id: 17 - theme_id: 5 - pvalue: - 54unset: '0' - 54: text-decoration:none - 49unset: '0' - 49: color:#00ADEE - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2014-02-21 13:20:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3327 - page_layout_root_id: 208 - page_layout_id: 215 - section_param_id: 18 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3328 - page_layout_root_id: 208 - page_layout_id: 215 - section_param_id: 19 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3329 - page_layout_root_id: 208 - page_layout_id: 215 - section_param_id: 20 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3330 - page_layout_root_id: 208 - page_layout_id: 215 - section_param_id: 21 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3331 - page_layout_root_id: 208 - page_layout_id: 215 - section_param_id: 22 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3332 - page_layout_root_id: 208 - page_layout_id: 215 - section_param_id: 23 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3333 - page_layout_root_id: 208 - page_layout_id: 215 - section_param_id: 24 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:09.000000000 Z - updated_at: 2013-11-05 03:16:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3334 - page_layout_root_id: 208 - page_layout_id: 215 - section_param_id: 25 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:09.000000000 Z - updated_at: 2013-11-05 03:16:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3335 - page_layout_root_id: 208 - page_layout_id: 215 - section_param_id: 26 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:09.000000000 Z - updated_at: 2013-11-05 03:16:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3336 - page_layout_root_id: 208 - page_layout_id: 220 - section_param_id: 135 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:08.000000000 Z - updated_at: 2013-11-25 06:53:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3337 - page_layout_root_id: 208 - page_layout_id: 220 - section_param_id: 136 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:160px - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:08.000000000 Z - updated_at: 2014-02-23 12:39:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3338 - page_layout_root_id: 208 - page_layout_id: 220 - section_param_id: 137 - theme_id: 5 - pvalue: - 15hidden: '1' - 7unset: '0' - 7: border-style:none none solid none - 8unset: '0' - 8: border-width:0px 0px 1px 0px - 6unset: '0' - 6: ! 'border-color:transparent transparent #D9D9DB transparent' - 32unset: '0' - 32: padding:0px 0px 5px 0px - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2014-02-23 12:38:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3339 - page_layout_root_id: 208 - page_layout_id: 220 - section_param_id: 138 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2013-11-25 06:53:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3340 - page_layout_root_id: 208 - page_layout_id: 220 - section_param_id: 139 - theme_id: 5 - pvalue: - 27unset: '0' - 27: font-weight:bold - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2014-02-23 12:32:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3341 - page_layout_root_id: 208 - page_layout_id: 223 - section_param_id: 135 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2013-11-25 06:53:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3342 - page_layout_root_id: 208 - page_layout_id: 223 - section_param_id: 136 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:160px - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2014-02-23 12:38:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3343 - page_layout_root_id: 208 - page_layout_id: 223 - section_param_id: 137 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - 32: padding:0px 0px 5px 0px - 7unset: '0' - 7: border-style:none none solid none - 8unset: '0' - 8: border-width:0px 0px 1px 0px - 6unset: '0' - 6: ! 'border-color:transparent transparent #D9D9DB transparent' - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2014-02-23 12:39:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3344 - page_layout_root_id: 208 - page_layout_id: 223 - section_param_id: 138 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2013-11-25 06:53:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3345 - page_layout_root_id: 208 - page_layout_id: 223 - section_param_id: 139 - theme_id: 5 - pvalue: - 27unset: '0' - 27: font-weight:bold - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2014-02-23 12:35:41.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3346 - page_layout_root_id: 208 - page_layout_id: 248 - section_param_id: 140 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3347 - page_layout_root_id: 208 - page_layout_id: 248 - section_param_id: 141 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3348 - page_layout_root_id: 208 - page_layout_id: 248 - section_param_id: 142 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3349 - page_layout_root_id: 208 - page_layout_id: 248 - section_param_id: 143 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3350 - page_layout_root_id: 208 - page_layout_id: 248 - section_param_id: 144 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3351 - page_layout_root_id: 208 - page_layout_id: 249 - section_param_id: 145 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3352 - page_layout_root_id: 208 - page_layout_id: 249 - section_param_id: 146 - theme_id: 5 - pvalue: - 101unset: '0' - 101: float:right - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-27 06:07:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3353 - page_layout_root_id: 208 - page_layout_id: 249 - section_param_id: 147 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:10px auto auto auto - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2014-02-27 14:19:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3354 - page_layout_root_id: 208 - page_layout_id: 249 - section_param_id: 148 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3355 - page_layout_root_id: 208 - page_layout_id: 249 - section_param_id: 149 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3356 - page_layout_root_id: 208 - page_layout_id: 250 - section_param_id: 150 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3357 - page_layout_root_id: 208 - page_layout_id: 250 - section_param_id: 151 - theme_id: 5 - pvalue: - 21unset: '1' - 21: width:600px - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2014-03-04 13:48:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3358 - page_layout_root_id: 208 - page_layout_id: 250 - section_param_id: 152 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3359 - page_layout_root_id: 208 - page_layout_id: 250 - section_param_id: 153 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3360 - page_layout_root_id: 208 - page_layout_id: 250 - section_param_id: 154 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3361 - page_layout_root_id: 208 - page_layout_id: 211 - section_param_id: 323 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-29 02:49:56.000000000 Z - updated_at: 2013-11-29 02:49:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3362 - page_layout_root_id: 208 - page_layout_id: 211 - section_param_id: 324 - theme_id: 5 - pvalue: - 21unset: '1' - 21: width:220px - 101unset: '1' - 101: float:none - unset: - computed_pvalue: - created_at: 2013-11-29 02:49:56.000000000 Z - updated_at: 2014-03-12 14:29:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3363 - page_layout_root_id: 208 - page_layout_id: 211 - section_param_id: 325 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-29 02:49:57.000000000 Z - updated_at: 2013-11-29 02:49:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3364 - page_layout_root_id: 208 - page_layout_id: 211 - section_param_id: 326 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-29 02:49:57.000000000 Z - updated_at: 2013-11-29 02:49:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3365 - page_layout_root_id: 208 - page_layout_id: 211 - section_param_id: 327 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-29 02:49:57.000000000 Z - updated_at: 2013-11-29 02:49:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3366 - page_layout_root_id: 208 - page_layout_id: 214 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '0' - 85: clear:none - unset: - computed_pvalue: - created_at: 2013-12-03 08:14:45.000000000 Z - updated_at: 2013-12-03 08:32:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3367 - page_layout_root_id: 208 - page_layout_id: 214 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '1' - 15: height:100px - 15unset: '1' - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2013-12-03 08:14:45.000000000 Z - updated_at: 2014-03-12 14:11:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3368 - page_layout_root_id: 208 - page_layout_id: 214 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - 32: padding:0px 0px 6px 0px - 7unset: '0' - 7: border-style:none none solid none - 8unset: '0' - 8: border-width:0px 0px 1px 0px - 6unset: '0' - 6: ! 'border-color:transparent transparent #D9D9DB transparent' - 31unset: '0' - 31: margin:auto 10px auto 10px - unset: - computed_pvalue: - created_at: 2013-12-03 08:14:46.000000000 Z - updated_at: 2014-02-21 13:15:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3369 - page_layout_root_id: 208 - page_layout_id: 214 - section_param_id: 9 - theme_id: 5 - pvalue: - 2unset: '1' - 2: background-color:green - unset: - computed_pvalue: - created_at: 2013-12-03 08:14:46.000000000 Z - updated_at: 2014-02-21 13:13:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3370 - page_layout_root_id: 208 - page_layout_id: 214 - section_param_id: 10 - theme_id: 5 - pvalue: - 49unset: '1' - 49: color:teal - 25unset: '1' - 25: font-style:normal - 24unset: '1' - 24: font-size:0% - 27unset: '1' - 27: font-weight:bold - unset: - computed_pvalue: - created_at: 2013-12-03 08:14:46.000000000 Z - updated_at: 2014-02-21 13:19:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3371 - page_layout_root_id: 208 - page_layout_id: 216 - section_param_id: 328 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-03 08:15:21.000000000 Z - updated_at: 2013-12-03 08:15:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3372 - page_layout_root_id: 208 - page_layout_id: 216 - section_param_id: 329 - theme_id: 5 - pvalue: - 101unset: '0' - 101: float:right - unset: - computed_pvalue: - created_at: 2013-12-03 08:15:21.000000000 Z - updated_at: 2013-12-03 08:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3373 - page_layout_root_id: 208 - page_layout_id: 216 - section_param_id: 330 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-12-03 08:15:21.000000000 Z - updated_at: 2013-12-03 08:15:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3374 - page_layout_root_id: 208 - page_layout_id: 216 - section_param_id: 331 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-03 08:15:21.000000000 Z - updated_at: 2013-12-03 08:15:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3375 - page_layout_root_id: 208 - page_layout_id: 216 - section_param_id: 332 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-03 08:15:21.000000000 Z - updated_at: 2013-12-03 08:15:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3376 - page_layout_root_id: 208 - page_layout_id: 210 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '0' - 85: clear:none - unset: - computed_pvalue: - created_at: 2013-12-05 08:06:08.000000000 Z - updated_at: 2013-12-06 02:14:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3377 - page_layout_root_id: 208 - page_layout_id: 210 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2013-12-05 08:06:08.000000000 Z - updated_at: 2013-12-06 02:14:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3378 - page_layout_root_id: 208 - page_layout_id: 210 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-12-05 08:06:08.000000000 Z - updated_at: 2013-12-05 08:06:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3379 - page_layout_root_id: 208 - page_layout_id: 210 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-05 08:06:08.000000000 Z - updated_at: 2013-12-05 08:06:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3380 - page_layout_root_id: 208 - page_layout_id: 210 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-05 08:06:08.000000000 Z - updated_at: 2013-12-05 08:06:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3381 - page_layout_root_id: 208 - page_layout_id: 212 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-05 08:11:48.000000000 Z - updated_at: 2013-12-05 08:11:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3382 - page_layout_root_id: 208 - page_layout_id: 212 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:right - 101unset: '0' - 15: height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2013-12-05 08:11:48.000000000 Z - updated_at: 2013-12-06 02:14:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3383 - page_layout_root_id: 208 - page_layout_id: 212 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-12-05 08:11:48.000000000 Z - updated_at: 2013-12-05 08:11:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3384 - page_layout_root_id: 208 - page_layout_id: 212 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-05 08:11:48.000000000 Z - updated_at: 2013-12-05 08:11:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3385 - page_layout_root_id: 208 - page_layout_id: 212 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-05 08:11:48.000000000 Z - updated_at: 2013-12-05 08:11:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3386 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 226 - theme_id: 5 - pvalue: - 21: width:960px - 21unset: '0' - 20: min-width:960px - 20hidden: '1' - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:53.000000000 Z - updated_at: 2014-01-22 03:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3387 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 227 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:53.000000000 Z - updated_at: 2014-01-22 03:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3388 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 228 - theme_id: 5 - pvalue: - 85: clear:both - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:53.000000000 Z - updated_at: 2014-01-22 03:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3389 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 229 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:53.000000000 Z - updated_at: 2014-01-22 03:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3390 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 230 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:53.000000000 Z - updated_at: 2014-01-22 03:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3391 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 231 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3392 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 232 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3393 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 233 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3394 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 234 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3395 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 235 - theme_id: 5 - pvalue: - 31unset: '0' - 31: margin:10px auto 2px auto - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-03-04 13:53:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3396 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 236 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3397 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 237 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3398 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 238 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3399 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 239 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3400 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 240 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3401 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 241 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3402 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 242 - theme_id: 5 - pvalue: - 49unset: '0' - 49: color:red - 24unset: '0' - 24: font-size:82% - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-03-04 14:03:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3403 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 243 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3404 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 317 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3405 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 318 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3406 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 319 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3407 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 320 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3408 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 321 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3409 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 322 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3410 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 244 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3411 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 245 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3412 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 246 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-01-22 03:39:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3413 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 247 - theme_id: 5 - pvalue: - 49unset: '0' - 49: color:#00ADEE - 24unset: '1' - 24: font-size:80% - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-03-04 14:01:47.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3414 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 248 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-01-22 03:39:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3415 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 249 - theme_id: 5 - pvalue: *101818570 - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-02-27 14:09:29.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3416 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 250 - theme_id: 5 - pvalue: - 32unset: '0' - 32: padding:5px 10px 5px 10px - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-02-27 13:39:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3417 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 251 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-01-22 03:39:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3418 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 252 - theme_id: 5 - pvalue: - 2unset: '0' - 2: background-color:#D9D9DB - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-02-27 13:38:44.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3419 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 253 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-01-22 03:39:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3420 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 254 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-01-22 03:39:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3421 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 255 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3422 - page_layout_root_id: 208 - page_layout_id: 208 - section_param_id: 256 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3423 - page_layout_root_id: 208 - page_layout_id: 229 - section_param_id: 55 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3424 - page_layout_root_id: 208 - page_layout_id: 229 - section_param_id: 56 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:150px - 15unset: '0' - 15: height:34px - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-02-21 13:25:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3425 - page_layout_root_id: 208 - page_layout_id: 229 - section_param_id: 57 - theme_id: 5 - pvalue: - 15hidden: '1' - 15unset: '0' - 15: height:33px - 32unset: '1' - 32: padding:0px 0px 0px 0px - 7unset: '0' - 7: border-style:none none solid none - 8unset: '0' - 8: border-width:0px 0px 1px 0px - 6unset: '0' - 6: ! 'border-color:transparent transparent #BBBBBB transparent' - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-02-21 13:25:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3426 - page_layout_root_id: 208 - page_layout_id: 229 - section_param_id: 58 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3427 - page_layout_root_id: 208 - page_layout_id: 229 - section_param_id: 59 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3428 - page_layout_root_id: 208 - page_layout_id: 229 - section_param_id: 294 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3429 - page_layout_root_id: 208 - page_layout_id: 229 - section_param_id: 295 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3430 - page_layout_root_id: 208 - page_layout_id: 229 - section_param_id: 296 - theme_id: 5 - pvalue: - 49unset: '0' - 49: color:#BBBBBB - 27unset: '0' - 27: font-weight:bold - 24unset: '0' - 24: font-size:80% - 54unset: '0' - 54: text-decoration:none - 53unset: '0' - 53: text-align:center - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-02-21 13:23:14.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3431 - page_layout_root_id: 208 - page_layout_id: 229 - section_param_id: 297 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:58.000000000 Z - updated_at: 2014-01-22 03:39:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3432 - page_layout_root_id: 208 - page_layout_id: 234 - section_param_id: 105 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-01-22 03:40:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3433 - page_layout_root_id: 208 - page_layout_id: 234 - section_param_id: 106 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-02-23 13:19:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3434 - page_layout_root_id: 208 - page_layout_id: 234 - section_param_id: 107 - theme_id: 5 - pvalue: - id: 495 - page_layout_root_id: 1 - page_layout_id: 34 - section_param_id: 41 - theme_id: 1 - pvalue: !ruby/struct:ActiveRecord::AttributeMethods::Serialization::Attribute - coder: !ruby/object:ActiveRecord::Coders::YAMLColumn - object_class: *82975580 - value: {} - state: :unserialized - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-02-23 13:20:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3435 - page_layout_root_id: 208 - page_layout_id: 234 - section_param_id: 108 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-01-22 03:40:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3436 - page_layout_root_id: 208 - page_layout_id: 234 - section_param_id: 109 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-01-22 03:40:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3437 - page_layout_root_id: 208 - page_layout_id: 234 - section_param_id: 302 - theme_id: 5 - pvalue: - 32unset: '0' - 32: padding:5px 5px 5px 5px - 7unset: '0' - 7: border-style:solid none solid none - 8unset: '0' - 8: border-width:1px 1px 1px 1px - 6unset: '0' - 6: ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-02-23 13:18:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3438 - page_layout_root_id: 208 - page_layout_id: 234 - section_param_id: 303 - theme_id: 5 - pvalue: - 2unset: '0' - 2: background-color:transparent - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-04-14 12:47:27.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3439 - page_layout_root_id: 208 - page_layout_id: 234 - section_param_id: 304 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3440 - page_layout_root_id: 208 - page_layout_id: 234 - section_param_id: 305 - theme_id: 5 - pvalue: - 27unset: '0' - 27: font-weight:bold - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-02-23 13:16:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3441 - page_layout_root_id: 208 - page_layout_id: 234 - section_param_id: 306 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3442 - page_layout_root_id: 208 - page_layout_id: 236 - section_param_id: 55 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3443 - page_layout_root_id: 208 - page_layout_id: 236 - section_param_id: 56 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-02-23 13:22:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3444 - page_layout_root_id: 208 - page_layout_id: 236 - section_param_id: 57 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '1' - 32: padding:0px 0px 0px 0px - 7unset: '0' - 7: border-style:none none solid none - 8unset: '0' - 8: border-width:0px 0px 1px 0px - 6unset: '0' - 6: ! 'border-color:transparent transparent #D9D9DB transparent' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-02-23 13:22:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3445 - page_layout_root_id: 208 - page_layout_id: 236 - section_param_id: 58 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3446 - page_layout_root_id: 208 - page_layout_id: 236 - section_param_id: 59 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3447 - page_layout_root_id: 208 - page_layout_id: 236 - section_param_id: 294 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3448 - page_layout_root_id: 208 - page_layout_id: 236 - section_param_id: 295 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3449 - page_layout_root_id: 208 - page_layout_id: 236 - section_param_id: 296 - theme_id: 5 - pvalue: - 49unset: '0' - 49: color:black - 54unset: '0' - 54: text-decoration:none - 27unset: '0' - 27: font-weight:bold - 24unset: '0' - 24: font-size:150% - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-02-23 13:21:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3450 - page_layout_root_id: 208 - page_layout_id: 236 - section_param_id: 297 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3451 - page_layout_root_id: 208 - page_layout_id: 243 - section_param_id: 115 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3452 - page_layout_root_id: 208 - page_layout_id: 243 - section_param_id: 116 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3453 - page_layout_root_id: 208 - page_layout_id: 243 - section_param_id: 117 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3454 - page_layout_root_id: 208 - page_layout_id: 243 - section_param_id: 118 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3455 - page_layout_root_id: 208 - page_layout_id: 243 - section_param_id: 119 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3456 - page_layout_root_id: 208 - page_layout_id: 243 - section_param_id: 307 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:60px - 7unset: '0' - 7: border-style:solid solid solid solid - 6unset: '0' - 6: ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - 8unset: '0' - 8: border-width:1px 1px 1px 1px - 32unset: '0' - 32: padding:7px 10px 7px 10px - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-02-23 13:33:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3457 - page_layout_root_id: 208 - page_layout_id: 243 - section_param_id: 308 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3458 - page_layout_root_id: 208 - page_layout_id: 243 - section_param_id: 309 - theme_id: 5 - pvalue: - 53unset: '0' - 53: text-align:left - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-02-23 13:25:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3459 - page_layout_root_id: 208 - page_layout_id: 244 - section_param_id: 120 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-01-22 03:40:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3460 - page_layout_root_id: 208 - page_layout_id: 244 - section_param_id: 121 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-01-22 03:40:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3461 - page_layout_root_id: 208 - page_layout_id: 244 - section_param_id: 122 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:auto auto auto 5px - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-02-23 13:33:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3462 - page_layout_root_id: 208 - page_layout_id: 244 - section_param_id: 123 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-01-22 03:40:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3463 - page_layout_root_id: 208 - page_layout_id: 244 - section_param_id: 124 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-01-22 03:40:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3464 - page_layout_root_id: 208 - page_layout_id: 244 - section_param_id: 310 - theme_id: 5 - pvalue: - 32unset: '0' - 32: padding:7px 10px 7px 10px - 7unset: - id: 456 - page_layout_root_id: 1 - page_layout_id: 9 - section_param_id: 28 - theme_id: 1 - pvalue: !ruby/struct:ActiveRecord::AttributeMethods::Serialization::Attribute - coder: !ruby/object:ActiveRecord::Coders::YAMLColumn - object_class: *82975580 - value: - disabled_ha_ids: '111' - state: :unserialized - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z - 7: border-style:solid solid solid solid - 8unset: '0' - 8: border-width:1px 1px 1px 1px - 6unset: '0' - 6: ! 'border-color:#008ABD #008ABD #008ABD #008ABD' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-02-23 13:31:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3465 - page_layout_root_id: 208 - page_layout_id: 244 - section_param_id: 311 - theme_id: 5 - pvalue: - 2unset: '0' - 2: background-color:#00ADEE - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-02-23 13:28:59.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3466 - page_layout_root_id: 208 - page_layout_id: 244 - section_param_id: 312 - theme_id: 5 - pvalue: - 49unset: '0' - 49: color:white - 24unset: '1' - 24: font-size:14em - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-02-23 13:32:06.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3467 - page_layout_root_id: 208 - page_layout_id: 269 - section_param_id: 284 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-01-22 03:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3468 - page_layout_root_id: 208 - page_layout_id: 269 - section_param_id: 285 - theme_id: 5 - pvalue: - 21: width:600px - 21unset: '0' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-01-22 03:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3469 - page_layout_root_id: 208 - page_layout_id: 269 - section_param_id: 286 - theme_id: 5 - pvalue: - 7: border-style:solid solid solid solid - 7unset: '0' - 8: border-width:1px 1px 1px 1px - 8unset: '0' - 6: ! 'border-color:#CCCCCC #CCCCCC #CCCCCC #CCCCCC' - 6unset: '0' - 15: height:598px - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-01-22 03:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3470 - page_layout_root_id: 208 - page_layout_id: 269 - section_param_id: 287 - theme_id: 5 - pvalue: - 2: background-color:#FFFFFF - 2unset: '0' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-01-22 03:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3471 - page_layout_root_id: 208 - page_layout_id: 269 - section_param_id: 288 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: *113322940 -- !ruby/object:Spree::ParamValue - attributes: - id: 3472 - page_layout_root_id: 208 - page_layout_id: 269 - section_param_id: 313 - theme_id: 5 - pvalue: - 32: padding:2px 2px 2px 2px - 32unset: '0' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-01-22 03:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3473 - page_layout_root_id: 208 - page_layout_id: 269 - section_param_id: 314 - theme_id: 5 - pvalue: - 2: background-color:#EEEEEE - 2unset: '0' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-01-22 03:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3474 - page_layout_root_id: 208 - page_layout_id: 269 - section_param_id: 315 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:05.000000000 Z - updated_at: 2014-01-22 03:40:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3475 - page_layout_root_id: 208 - page_layout_id: 269 - section_param_id: 316 - theme_id: 5 - pvalue: - 32: padding:0 10px 5px 10px - 32unset: '0' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:05.000000000 Z - updated_at: 2014-01-22 03:40:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3476 - page_layout_root_id: 208 - page_layout_id: 213 - section_param_id: 333 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3477 - page_layout_root_id: 208 - page_layout_id: 213 - section_param_id: 334 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3478 - page_layout_root_id: 208 - page_layout_id: 213 - section_param_id: 335 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3479 - page_layout_root_id: 208 - page_layout_id: 213 - section_param_id: 336 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3480 - page_layout_root_id: 208 - page_layout_id: 213 - section_param_id: 337 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3481 - page_layout_root_id: 208 - page_layout_id: 213 - section_param_id: 338 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3482 - page_layout_root_id: 208 - page_layout_id: 213 - section_param_id: 339 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3483 - page_layout_root_id: 208 - page_layout_id: 213 - section_param_id: 340 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3484 - page_layout_root_id: 208 - page_layout_id: 213 - section_param_id: 341 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3485 - page_layout_root_id: 208 - page_layout_id: 213 - section_param_id: 342 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3486 - page_layout_root_id: 208 - page_layout_id: 213 - section_param_id: 343 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3487 - page_layout_root_id: 208 - page_layout_id: 213 - section_param_id: 344 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3488 - page_layout_root_id: 208 - page_layout_id: 213 - section_param_id: 345 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3489 - page_layout_root_id: 208 - page_layout_id: 213 - section_param_id: 346 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3490 - page_layout_root_id: 208 - page_layout_id: 213 - section_param_id: 347 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3491 - page_layout_root_id: 208 - page_layout_id: 213 - section_param_id: 348 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3492 - page_layout_root_id: 208 - page_layout_id: 265 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:03:39.000000000 Z - updated_at: 2014-02-19 13:03:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3493 - page_layout_root_id: 208 - page_layout_id: 265 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-02-19 13:03:39.000000000 Z - updated_at: 2014-02-21 12:44:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3494 - page_layout_root_id: 208 - page_layout_id: 265 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-02-19 13:03:39.000000000 Z - updated_at: 2014-02-19 13:03:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3495 - page_layout_root_id: 208 - page_layout_id: 265 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:03:39.000000000 Z - updated_at: 2014-02-19 13:03:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3496 - page_layout_root_id: 208 - page_layout_id: 265 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:03:39.000000000 Z - updated_at: 2014-02-19 13:03:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3497 - page_layout_root_id: 208 - page_layout_id: 266 - section_param_id: 349 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3498 - page_layout_root_id: 208 - page_layout_id: 266 - section_param_id: 350 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3499 - page_layout_root_id: 208 - page_layout_id: 266 - section_param_id: 351 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3500 - page_layout_root_id: 208 - page_layout_id: 266 - section_param_id: 352 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3501 - page_layout_root_id: 208 - page_layout_id: 266 - section_param_id: 353 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3502 - page_layout_root_id: 208 - page_layout_id: 266 - section_param_id: 354 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3503 - page_layout_root_id: 208 - page_layout_id: 266 - section_param_id: 355 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3504 - page_layout_root_id: 208 - page_layout_id: 266 - section_param_id: 356 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3505 - page_layout_root_id: 208 - page_layout_id: 233 - section_param_id: 289 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:34:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3506 - page_layout_root_id: 208 - page_layout_id: 233 - section_param_id: 290 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:34:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3507 - page_layout_root_id: 208 - page_layout_id: 233 - section_param_id: 291 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:34:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3508 - page_layout_root_id: 208 - page_layout_id: 233 - section_param_id: 292 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:34:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3509 - page_layout_root_id: 208 - page_layout_id: 233 - section_param_id: 293 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:34:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3510 - page_layout_root_id: 208 - page_layout_id: 233 - section_param_id: 299 - theme_id: 5 - pvalue: - 32unset: '0' - 32: padding:5px 10px 5px 10px - 7unset: '0' - 7: border-style:solid solid solid solid - 8unset: '0' - 8: border-width:1px 1px 1px 1px - 6unset: '0' - 6: ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:47:28.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3511 - page_layout_root_id: 208 - page_layout_id: 233 - section_param_id: 301 - theme_id: 5 - pvalue: - 32unset: '0' - 32: padding:5px 5px 5px 5px - 7unset: '0' - 7: border-style:solid solid solid solid - 8unset: '0' - 8: border-width:1px 1px 1px 1px - 6unset: '0' - 6: ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - 31unset: '0' - 31: margin:6px 6px 6px auto - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:48:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3512 - page_layout_root_id: 208 - page_layout_id: 254 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '0' - 85: clear:none - unset: - computed_pvalue: - created_at: 2014-03-04 14:20:03.000000000 Z - updated_at: 2014-03-04 14:21:14.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3513 - page_layout_root_id: 208 - page_layout_id: 254 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '0' - unset: - computed_pvalue: - created_at: 2014-03-04 14:20:03.000000000 Z - updated_at: 2014-03-04 14:20:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3514 - page_layout_root_id: 208 - page_layout_id: 254 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-03-04 14:20:03.000000000 Z - updated_at: 2014-03-04 14:20:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3515 - page_layout_root_id: 208 - page_layout_id: 254 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-04 14:20:03.000000000 Z - updated_at: 2014-03-04 14:20:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3516 - page_layout_root_id: 208 - page_layout_id: 254 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-04 14:20:03.000000000 Z - updated_at: 2014-03-04 14:20:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3517 - page_layout_root_id: 208 - page_layout_id: 239 - section_param_id: 357 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:19:56.000000000 Z - updated_at: 2014-03-06 13:19:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3518 - page_layout_root_id: 208 - page_layout_id: 239 - section_param_id: 358 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:19:56.000000000 Z - updated_at: 2014-03-06 13:19:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3519 - page_layout_root_id: 208 - page_layout_id: 239 - section_param_id: 359 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:auto auto 10px auto - unset: - computed_pvalue: - created_at: *111700650 - updated_at: 2014-04-14 12:46:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3520 - page_layout_root_id: 208 - page_layout_id: 239 - section_param_id: 360 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:19:56.000000000 Z - updated_at: 2014-03-06 13:19:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3521 - page_layout_root_id: 208 - page_layout_id: 239 - section_param_id: 361 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:19:56.000000000 Z - updated_at: 2014-03-06 13:19:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3522 - page_layout_root_id: 208 - page_layout_id: 242 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '0' - 85: clear:none - unset: - computed_pvalue: - created_at: 2014-03-06 13:42:19.000000000 Z - updated_at: 2014-03-06 15:20:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3523 - page_layout_root_id: 208 - page_layout_id: 242 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - 21unset: '0' - 21: width:230px - unset: - computed_pvalue: - created_at: 2014-03-06 13:42:19.000000000 Z - updated_at: 2014-03-06 13:48:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3524 - page_layout_root_id: 208 - page_layout_id: 242 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-03-06 13:42:19.000000000 Z - updated_at: 2014-03-06 13:42:19.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3525 - page_layout_root_id: 208 - page_layout_id: 242 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:42:19.000000000 Z - updated_at: 2014-03-06 13:42:19.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3526 - page_layout_root_id: 208 - page_layout_id: 242 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:42:19.000000000 Z - updated_at: 2014-03-06 13:42:19.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3527 - page_layout_root_id: 208 - page_layout_id: 240 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '0' - 85: clear:both - unset: - computed_pvalue: - created_at: 2014-03-06 15:17:45.000000000 Z - updated_at: 2014-03-06 15:19:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3528 - page_layout_root_id: 208 - page_layout_id: 240 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-03-06 15:17:45.000000000 Z - updated_at: 2014-03-06 15:20:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3529 - page_layout_root_id: 208 - page_layout_id: 240 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-03-06 15:17:45.000000000 Z - updated_at: 2014-03-06 15:17:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3530 - page_layout_root_id: 208 - page_layout_id: 240 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 15:17:45.000000000 Z - updated_at: 2014-03-06 15:17:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3531 - page_layout_root_id: 208 - page_layout_id: 240 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 15:17:45.000000000 Z - updated_at: 2014-03-06 15:17:45.000000000 Z -:page_layouts: -- !ruby/object:Spree::PageLayout - attributes: - id: 208 - site_id: 2 - root_id: 208 - parent_id: - lft: 1 - rgt: 124 - title: root1 - slug: root1--3 - section_id: 75 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: true - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 209 - site_id: 2 - root_id: 208 - parent_id: 208 - lft: 2 - rgt: 17 - title: Header - slug: header--3 - section_id: 2 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 210 - site_id: 2 - root_id: 208 - parent_id: 209 - lft: 3 - rgt: 10 - title: container20 - slug: container20--3 - section_id: 2 - section_instance: 20 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 211 - site_id: 2 - root_id: 208 - parent_id: 210 - lft: 4 - rgt: 5 - title: Logo - slug: logo--3 - section_id: 97 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 212 - site_id: 2 - root_id: 208 - parent_id: 210 - lft: 6 - rgt: 9 - title: container21 - slug: container21--3 - section_id: 2 - section_instance: 21 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 213 - site_id: 2 - root_id: 208 - parent_id: 212 - lft: 7 - rgt: 8 - title: logged&unlogged menu1 - slug: logged-unlogged-menu1--3 - section_id: 101 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 214 - site_id: 2 - root_id: 208 - parent_id: 209 - lft: 11 - rgt: 16 - title: container19 - slug: container19--3 - section_id: 2 - section_instance: 19 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 215 - site_id: 2 - root_id: 208 - parent_id: 214 - lft: 12 - rgt: 13 - title: Main menu - slug: main-menu--3 - section_id: 3 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 216 - site_id: 2 - root_id: 208 - parent_id: 214 - lft: 14 - rgt: 15 - title: Mini cart1 - slug: mini-cart1--2 - section_id: 99 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 217 - site_id: 2 - root_id: 208 - parent_id: 208 - lft: 18 - rgt: 117 - title: content - slug: content--3 - section_id: 2 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 218 - site_id: 2 - root_id: 208 - parent_id: 217 - lft: 19 - rgt: 32 - title: lftnav - slug: lftnav--3 - section_id: 2 - section_instance: 4 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 219 - site_id: 2 - root_id: 208 - parent_id: 218 - lft: 20 - rgt: 25 - title: container12 - slug: container12--3 - section_id: 2 - section_instance: 12 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 220 - site_id: 2 - root_id: 208 - parent_id: 219 - lft: 21 - rgt: 22 - title: taxonomy name1 - slug: taxonomy-name1--3 - section_id: 40 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 221 - site_id: 2 - root_id: 208 - parent_id: 219 - lft: 23 - rgt: 24 - title: vmenu1 - slug: vmenu1--3 - section_id: 6 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 222 - site_id: 2 - root_id: 208 - parent_id: 218 - lft: 26 - rgt: 31 - title: container13 - slug: container13--3 - section_id: 2 - section_instance: 13 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 223 - site_id: 2 - root_id: 208 - parent_id: 222 - lft: 27 - rgt: 28 - title: taxonomy name2 - slug: taxonomy-name2--3 - section_id: 40 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 224 - site_id: 2 - root_id: 208 - parent_id: 222 - lft: 29 - rgt: 30 - title: vmenu2 - slug: vmenu2--3 - section_id: 6 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 225 - site_id: 2 - root_id: 208 - parent_id: 217 - lft: 33 - rgt: 116 - title: main content - slug: main-content--3 - section_id: 2 - section_instance: 5 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 226 - site_id: 2 - root_id: 208 - parent_id: 225 - lft: 34 - rgt: 43 - title: product list - slug: product-list--3 - section_id: 2 - section_instance: 6 - section_context: list - data_source: gpvs - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 227 - site_id: 2 - root_id: 208 - parent_id: 226 - lft: 35 - rgt: 42 - title: container8 - slug: container8--3 - section_id: 2 - section_instance: 8 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 228 - site_id: 2 - root_id: 208 - parent_id: 227 - lft: 36 - rgt: 37 - title: product image - slug: product-image--3 - section_id: 17 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 229 - site_id: 2 - root_id: 208 - parent_id: 227 - lft: 38 - rgt: 39 - title: product name - slug: product-name--5 - section_id: 13 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:15:59.000000000 Z - updated_at: 2014-06-28 10:15:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 230 - site_id: 2 - root_id: 208 - parent_id: 227 - lft: 40 - rgt: 41 - title: product price2 - slug: product-price2--3 - section_id: 30 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 231 - site_id: 2 - root_id: 208 - parent_id: 225 - lft: 44 - rgt: 71 - title: product detail - slug: product-detail--3 - section_id: 2 - section_instance: 7 - section_context: detail - data_source: this_product - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 232 - site_id: 2 - root_id: 208 - parent_id: 231 - lft: 45 - rgt: 50 - title: container10 - slug: container10--3 - section_id: 2 - section_instance: 10 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 233 - site_id: 2 - root_id: 208 - parent_id: 232 - lft: 46 - rgt: 47 - title: image with thumbnails1 - slug: image-with-thumbnails1--3 - section_id: 94 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 234 - site_id: 2 - root_id: 208 - parent_id: 232 - lft: 48 - rgt: 49 - title: product_properties1 - slug: product_properties1--3 - section_id: 28 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 235 - site_id: 2 - root_id: 208 - parent_id: 231 - lft: 51 - rgt: 70 - title: container9 - slug: container9--3 - section_id: 2 - section_instance: 9 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 236 - site_id: 2 - root_id: 208 - parent_id: 235 - lft: 52 - rgt: 53 - title: product name - slug: product-name--6 - section_id: 13 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 237 - site_id: 2 - root_id: 208 - parent_id: 235 - lft: 54 - rgt: 55 - title: product description - slug: product-description--3 - section_id: 15 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 238 - site_id: 2 - root_id: 208 - parent_id: 235 - lft: 56 - rgt: 69 - title: container11 - slug: container11--3 - section_id: 2 - section_instance: 11 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 239 - site_id: 2 - root_id: 208 - parent_id: 238 - lft: 57 - rgt: 58 - title: Product option values1 - slug: product-option-values1--3 - section_id: 107 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 240 - site_id: 2 - root_id: 208 - parent_id: 238 - lft: 59 - rgt: 68 - title: container25 - slug: container25--3 - section_id: 2 - section_instance: 25 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 241 - site_id: 2 - root_id: 208 - parent_id: 240 - lft: 60 - rgt: 61 - title: product price1 - slug: product-price1--3 - section_id: 30 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 242 - site_id: 2 - root_id: 208 - parent_id: 240 - lft: 62 - rgt: 67 - title: container24 - slug: container24--3 - section_id: 2 - section_instance: 24 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 243 - site_id: 2 - root_id: 208 - parent_id: 242 - lft: 63 - rgt: 64 - title: product quantity1 - slug: product-quantity1--3 - section_id: 32 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 244 - site_id: 2 - root_id: 208 - parent_id: 242 - lft: 65 - rgt: 66 - title: product atc1 - slug: product-atc1--3 - section_id: 34 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 245 - site_id: 2 - root_id: 208 - parent_id: 225 - lft: 72 - rgt: 115 - title: other pages - slug: other-pages--3 - section_id: 2 - section_instance: 14 - section_context: cart,checkout,thanks,account,signup,login,password - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 246 - site_id: 2 - root_id: 208 - parent_id: 245 - lft: 73 - rgt: 74 - title: taxon name1 - slug: taxon-name1--3 - section_id: 50 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 247 - site_id: 2 - root_id: 208 - parent_id: 245 - lft: 75 - rgt: 80 - title: cart1 - slug: cart1--3 - section_id: 36 - section_instance: 1 - section_context: cart - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 248 - site_id: 2 - root_id: 208 - parent_id: 247 - lft: 76 - rgt: 77 - title: cart items1 - slug: cart-items1--3 - section_id: 42 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 249 - site_id: 2 - root_id: 208 - parent_id: 247 - lft: 78 - rgt: 79 - title: order total price1 - slug: order-total-price1--3 - section_id: 44 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 250 - site_id: 2 - root_id: 208 - parent_id: 245 - lft: 81 - rgt: 86 - title: checkout1 - slug: checkout1--3 - section_id: 46 - section_instance: 2 - section_context: checkout - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 251 - site_id: 2 - root_id: 208 - parent_id: 250 - lft: 82 - rgt: 83 - title: ship form1 - slug: ship-form1--3 - section_id: 69 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 252 - site_id: 2 - root_id: 208 - parent_id: 250 - lft: 84 - rgt: 85 - title: payment form1 - slug: payment-form1--3 - section_id: 72 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 253 - site_id: 2 - root_id: 208 - parent_id: 245 - lft: 87 - rgt: 96 - title: thanks1 - slug: thanks1--3 - section_id: 2 - section_instance: 18 - section_context: thanks - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 254 - site_id: 2 - root_id: 208 - parent_id: 253 - lft: 88 - rgt: 93 - title: container23 - slug: container23--3 - section_id: 2 - section_instance: 23 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 255 - site_id: 2 - root_id: 208 - parent_id: 254 - lft: 89 - rgt: 90 - title: order address1 - slug: order-address1--3 - section_id: 52 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 256 - site_id: 2 - root_id: 208 - parent_id: 254 - lft: 91 - rgt: 92 - title: order payment1 - slug: order-payment1--3 - section_id: 55 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:00.000000000 Z - updated_at: 2014-06-28 10:16:00.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 257 - site_id: 2 - root_id: 208 - parent_id: 253 - lft: 94 - rgt: 95 - title: order items1 - slug: order-items1--3 - section_id: 58 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:01.000000000 Z - updated_at: 2014-06-28 10:16:01.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 258 - site_id: 2 - root_id: 208 - parent_id: 245 - lft: 97 - rgt: 102 - title: account1 - slug: account1--3 - section_id: 2 - section_instance: 17 - section_context: account - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:01.000000000 Z - updated_at: 2014-06-28 10:16:01.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 259 - site_id: 2 - root_id: 208 - parent_id: 258 - lft: 98 - rgt: 99 - title: profile1 - slug: profile1--3 - section_id: 85 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:01.000000000 Z - updated_at: 2014-06-28 10:16:01.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 260 - site_id: 2 - root_id: 208 - parent_id: 258 - lft: 100 - rgt: 101 - title: order list1 - slug: order-list1--3 - section_id: 82 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:01.000000000 Z - updated_at: 2014-06-28 10:16:01.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 261 - site_id: 2 - root_id: 208 - parent_id: 245 - lft: 103 - rgt: 106 - title: login - slug: login--3 - section_id: 2 - section_instance: 15 - section_context: login - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:01.000000000 Z - updated_at: 2014-06-28 10:16:01.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 262 - site_id: 2 - root_id: 208 - parent_id: 261 - lft: 104 - rgt: 105 - title: login form1 - slug: login-form1--3 - section_id: 61 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:01.000000000 Z - updated_at: 2014-06-28 10:16:01.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 263 - site_id: 2 - root_id: 208 - parent_id: 245 - lft: 107 - rgt: 110 - title: signup - slug: signup--3 - section_id: 2 - section_instance: 16 - section_context: signup - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:01.000000000 Z - updated_at: 2014-06-28 10:16:01.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 264 - site_id: 2 - root_id: 208 - parent_id: 263 - lft: 108 - rgt: 109 - title: sign up form1 - slug: sign-up-form1--3 - section_id: 64 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:01.000000000 Z - updated_at: 2014-06-28 10:16:01.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 265 - site_id: 2 - root_id: 208 - parent_id: 245 - lft: 111 - rgt: 114 - title: password - slug: password--3 - section_id: 2 - section_instance: 22 - section_context: password - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:01.000000000 Z - updated_at: 2014-06-28 10:16:01.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 266 - site_id: 2 - root_id: 208 - parent_id: 265 - lft: 112 - rgt: 113 - title: password recover form1 - slug: password-recover-form1--3 - section_id: 104 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:01.000000000 Z - updated_at: 2014-06-28 10:16:01.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 267 - site_id: 2 - root_id: 208 - parent_id: 208 - lft: 118 - rgt: 121 - title: footer - slug: footer--3 - section_id: 2 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:01.000000000 Z - updated_at: 2014-06-28 10:16:01.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 268 - site_id: 2 - root_id: 208 - parent_id: 267 - lft: 119 - rgt: 120 - title: copyright - slug: copyright--3 - section_id: 11 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:01.000000000 Z - updated_at: 2014-06-28 10:16:01.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 269 - site_id: 2 - root_id: 208 - parent_id: 208 - lft: 122 - rgt: 123 - title: dialog21 - slug: dialog21--3 - section_id: 90 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 83 - is_full_html: false - created_at: 2014-06-28 10:16:01.000000000 Z - updated_at: 2014-06-28 10:16:01.000000000 Z -:template_files: [] -:template_releases: [] diff --git a/spree_theme/db/themes/designs/2_5_1406644739.yml b/spree_theme/db/themes/designs/2_5_1406644739.yml deleted file mode 100644 index b3b6253d..00000000 --- a/spree_theme/db/themes/designs/2_5_1406644739.yml +++ /dev/null @@ -1,10450 +0,0 @@ ---- -:template: !ruby/object:Spree::TemplateTheme - attributes: - id: 5 - site_id: 2 - page_layout_root_id: 270 - release_id: 7 - title: 服装定制 - slug: '' - assigned_resource_ids: - 273: - :spree/template_file: - - 19 - ! ':': - - 0 - 275: - :spree/taxon: - - 0 - - 0 - 277: - :spree/taxon: - - 36 - 281: - :spree/taxon: - - 61 - 284: - :spree/taxon: - - 71 - 332: - :spree/taxon: - - 47 - 335: - :spree/template_text: - - 5 - 343: - :spree/specific_taxon: - - 0 - :spree/taxon: - - 53 - 342: - :spree/specific_taxon: - - 0 - :spree/taxon: - - 52 - 347: - :spree/template_text: - - 6 - 346: - :spree/taxon: - - 0 - 353: - :spree/taxon: - - 54 - 330: - :spree/template_text: - - 7 - 362: - :spree/template_text: - - 8 - created_at: 2014-06-28 10:16:01.000000000 Z - updated_at: 2014-07-27 05:27:16.000000000 Z - specific_taxon_ids: '' -:param_values: -- !ruby/object:Spree::ParamValue - attributes: - id: 3532 - page_layout_root_id: 270 - page_layout_id: 271 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:02.000000000 Z - updated_at: 2013-04-08 13:27:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3533 - page_layout_root_id: 270 - page_layout_id: 271 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:none - 101unset: '0' - 21unset: '0' - 21: width:960px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:02.000000000 Z - updated_at: 2014-07-12 04:10:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3534 - page_layout_root_id: 270 - page_layout_id: 271 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:auto auto auto auto - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:03.000000000 Z - updated_at: 2014-07-12 04:12:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3535 - page_layout_root_id: 270 - page_layout_id: 271 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:03.000000000 Z - updated_at: 2013-04-08 13:27:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3536 - page_layout_root_id: 270 - page_layout_id: 271 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:03.000000000 Z - updated_at: 2013-04-08 13:27:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3537 - page_layout_root_id: 270 - page_layout_id: 279 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - 85unset: '0' - 85: clear:none - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:04.000000000 Z - updated_at: 2013-04-08 14:08:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3538 - page_layout_root_id: 270 - page_layout_id: 279 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:none - 101unset: '0' - 21unset: '0' - 21: width:960px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:04.000000000 Z - updated_at: 2014-07-12 06:32:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3539 - page_layout_root_id: 270 - page_layout_id: 279 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:04.000000000 Z - updated_at: 2013-04-08 13:27:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3540 - page_layout_root_id: 270 - page_layout_id: 279 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - 2unset: '1' - 2: background-color:yellow - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:04.000000000 Z - updated_at: 2013-10-05 10:50:30.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3541 - page_layout_root_id: 270 - page_layout_id: 279 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:04.000000000 Z - updated_at: 2013-04-08 13:27:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3542 - page_layout_root_id: 270 - page_layout_id: 329 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2013-04-08 13:27:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3543 - page_layout_root_id: 270 - page_layout_id: 329 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-07-26 14:42:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3544 - page_layout_root_id: 270 - page_layout_id: 329 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 7unset: '0' - 7: border-style:solid none none none - 8unset: '0' - 8: border-width:4px 0px 0px 0px - 6unset: '0' - 6: border-color:#2D2D2F transparent transparent transparent - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-07-26 14:45:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3545 - page_layout_root_id: 270 - page_layout_id: 329 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - 2unset: '0' - 2: background-color:#F5F5F5 - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2013-04-08 13:27:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3546 - page_layout_root_id: 270 - page_layout_id: 329 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2013-04-08 13:27:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &98941530 - id: 3547 - page_layout_root_id: 270 - page_layout_id: 280 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2013-04-08 13:27:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3548 - page_layout_root_id: 270 - page_layout_id: 280 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - 21unset: '0' - 21: width:200px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2013-04-08 13:27:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3549 - page_layout_root_id: 270 - page_layout_id: 280 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:auto 5px auto auto - 7unset: '0' - 7: border-style:solid solid solid solid - 8unset: '0' - 8: border-width:1px 1px 1px 1px - 6unset: '0' - 6: ! 'border-color:#CDCBCB #CDCBCB #CDCBCB #CDCBCB' - 32unset: '0' - 32: padding:10px 10px 10px 10px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-07-28 13:25:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3550 - page_layout_root_id: 270 - page_layout_id: 280 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - 2unset: '1' - 2: background-color:#FFF8ED - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2013-10-05 01:17:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3551 - page_layout_root_id: 270 - page_layout_id: 280 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - 49unset: '1' - 49: color:black - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2013-10-02 10:05:06.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &99121720 - id: 3552 - page_layout_root_id: 270 - page_layout_id: 287 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2013-04-08 13:27:06.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3553 - page_layout_root_id: 270 - page_layout_id: 287 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - 21unset: '0' - 21: width:750px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2014-02-27 14:13:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3554 - page_layout_root_id: 270 - page_layout_id: 287 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2013-04-08 13:27:06.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3555 - page_layout_root_id: 270 - page_layout_id: 287 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2013-04-08 13:27:06.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3556 - page_layout_root_id: 270 - page_layout_id: 287 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2013-04-08 13:27:06.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3557 - page_layout_root_id: 270 - page_layout_id: 288 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - 85unset: '0' - 85: clear:none - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2013-04-09 11:57:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3558 - page_layout_root_id: 270 - page_layout_id: 288 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - 21unset: '1' - 21: width:100% - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2013-04-09 11:57:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3559 - page_layout_root_id: 270 - page_layout_id: 288 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2013-04-08 13:27:07.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &99299100 - id: 3560 - page_layout_root_id: 270 - page_layout_id: 288 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2013-04-08 13:27:07.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3561 - page_layout_root_id: 270 - page_layout_id: 288 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2013-04-08 13:27:07.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3562 - page_layout_root_id: 270 - page_layout_id: 293 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - 85unset: '0' - 85: clear:none - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2013-04-12 13:03:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3563 - page_layout_root_id: 270 - page_layout_id: 293 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - 21unset: '1' - 21: width:200px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:08.000000000 Z - updated_at: 2013-04-09 13:14:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3564 - page_layout_root_id: 270 - page_layout_id: 293 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:08.000000000 Z - updated_at: 2013-04-08 13:27:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3565 - page_layout_root_id: 270 - page_layout_id: 293 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:08.000000000 Z - updated_at: 2013-04-08 13:27:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3566 - page_layout_root_id: 270 - page_layout_id: 293 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:08.000000000 Z - updated_at: 2013-04-08 13:27:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3567 - page_layout_root_id: 270 - page_layout_id: 290 - section_param_id: 65 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:08.000000000 Z - updated_at: 2013-04-08 13:27:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3568 - page_layout_root_id: 270 - page_layout_id: 290 - section_param_id: 66 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 15unset: '0' - 15: height:110px - 21unset: '0' - 21: width:150px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:09.000000000 Z - updated_at: 2013-10-05 01:20:44.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3569 - page_layout_root_id: 270 - page_layout_id: 290 - section_param_id: 67 - theme_id: 5 - pvalue: - 15hidden: '1' - 7unset: '0' - 7: border-style:solid solid solid solid - 8unset: '0' - 8: border-width:1px 1px 1px 1px - 6unset: '0' - 6: ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - 32unset: '0' - 32: padding:5px 0px 5px 0px - 15unset: '0' - 15: height:98px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:09.000000000 Z - updated_at: 2013-10-05 01:21:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3570 - page_layout_root_id: 270 - page_layout_id: 290 - section_param_id: 68 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:09.000000000 Z - updated_at: 2013-04-08 13:27:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3571 - page_layout_root_id: 270 - page_layout_id: 290 - section_param_id: 69 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 53unset: '0' - 53: text-align:center - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:09.000000000 Z - updated_at: 2013-04-19 13:14:07.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3572 - page_layout_root_id: 270 - page_layout_id: 299 - section_param_id: 60 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:10.000000000 Z - updated_at: 2013-04-08 13:27:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3573 - page_layout_root_id: 270 - page_layout_id: 299 - section_param_id: 61 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:10.000000000 Z - updated_at: 2013-04-08 13:27:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3574 - page_layout_root_id: 270 - page_layout_id: 299 - section_param_id: 62 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - 32: padding:10px 0px 10px 0px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:10.000000000 Z - updated_at: 2013-10-04 07:23:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3575 - page_layout_root_id: 270 - page_layout_id: 299 - section_param_id: 63 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:10.000000000 Z - updated_at: 2013-04-08 13:27:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3576 - page_layout_root_id: 270 - page_layout_id: 299 - section_param_id: 64 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 24unset: '0' - 24: font-size:90% - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:10.000000000 Z - updated_at: 2013-10-04 07:23:47.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3577 - page_layout_root_id: 270 - page_layout_id: 330 - section_param_id: 50 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:11.000000000 Z - updated_at: 2013-04-08 13:27:11.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3578 - page_layout_root_id: 270 - page_layout_id: 330 - section_param_id: 51 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:11.000000000 Z - updated_at: 2014-07-26 10:51:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &97465510 - id: 3579 - page_layout_root_id: 270 - page_layout_id: 330 - section_param_id: 52 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:11.000000000 Z - updated_at: 2013-04-08 13:27:11.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3580 - page_layout_root_id: 270 - page_layout_id: 330 - section_param_id: 53 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:11.000000000 Z - updated_at: 2013-04-08 13:27:11.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3581 - page_layout_root_id: 270 - page_layout_id: 330 - section_param_id: 54 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:11.000000000 Z - updated_at: 2013-04-08 13:27:11.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3582 - page_layout_root_id: 270 - page_layout_id: 289 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - 85unset: '0' - 85: clear:both - unset: - computed_pvalue: - created_at: 2013-04-08 14:05:42.000000000 Z - updated_at: 2013-04-09 13:23:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3583 - page_layout_root_id: 270 - page_layout_id: 289 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:160px - 15unset: '1' - 101: float:left - 101unset: '0' - 21unset: '0' - 21: width:160px - unset: - computed_pvalue: - created_at: 2013-04-08 14:05:42.000000000 Z - updated_at: 2014-02-23 11:16:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3584 - page_layout_root_id: 270 - page_layout_id: 289 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:auto auto 20px auto - 15unset: '1' - 15: height:140px - 32unset: '1' - 32: padding:0px 0px 0px 0px - 8unset: '1' - 8: border-width:0px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2013-04-08 14:05:42.000000000 Z - updated_at: 2014-02-23 11:16:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3585 - page_layout_root_id: 270 - page_layout_id: 289 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 14:05:42.000000000 Z - updated_at: 2013-04-08 14:05:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3586 - page_layout_root_id: 270 - page_layout_id: 289 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 14:05:42.000000000 Z - updated_at: 2013-04-08 14:05:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3587 - page_layout_root_id: 270 - page_layout_id: 297 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-09 13:12:32.000000000 Z - updated_at: 2013-04-09 13:12:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &97641550 - id: 3588 - page_layout_root_id: 270 - page_layout_id: 297 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - 21unset: '0' - 21: width:350px - unset: - computed_pvalue: - created_at: 2013-04-09 13:12:32.000000000 Z - updated_at: 2013-04-12 13:08:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3589 - page_layout_root_id: 270 - page_layout_id: 297 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-09 13:12:32.000000000 Z - updated_at: 2013-04-09 13:12:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3590 - page_layout_root_id: 270 - page_layout_id: 297 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-09 13:12:32.000000000 Z - updated_at: 2013-04-09 13:12:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3591 - page_layout_root_id: 270 - page_layout_id: 297 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-09 13:12:32.000000000 Z - updated_at: 2013-04-09 13:12:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3592 - page_layout_root_id: 270 - page_layout_id: 294 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-12 13:44:05.000000000 Z - updated_at: 2013-04-12 13:44:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3593 - page_layout_root_id: 270 - page_layout_id: 294 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-12 13:44:05.000000000 Z - updated_at: 2013-04-12 13:44:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3594 - page_layout_root_id: 270 - page_layout_id: 294 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:auto 10px auto auto - unset: - computed_pvalue: - created_at: 2013-04-12 13:44:05.000000000 Z - updated_at: 2013-10-04 07:21:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3595 - page_layout_root_id: 270 - page_layout_id: 294 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-12 13:44:05.000000000 Z - updated_at: 2013-04-12 13:44:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3596 - page_layout_root_id: 270 - page_layout_id: 294 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-12 13:44:05.000000000 Z - updated_at: 2013-04-12 13:44:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3597 - page_layout_root_id: 270 - page_layout_id: 303 - section_param_id: 110 - theme_id: 5 - pvalue: - id: 32 - page_layout_root_id: 1 - page_layout_id: 7 - section_param_id: 7 - theme_id: 1 - pvalue: !ruby/struct:ActiveRecord::AttributeMethods::Serialization::Attribute - coder: !ruby/object:ActiveRecord::Coders::YAMLColumn - object_class: &68008810 !ruby/class 'Hash' - value: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - 21unset: '0' - 21: width:200px - state: :unserialized - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.780447000 Z - updated_at: 2013-04-08 13:27:12.963062000 Z - unset: - computed_pvalue: - created_at: 2013-04-13 01:32:40.000000000 Z - updated_at: 2013-04-13 01:32:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3598 - page_layout_root_id: 270 - page_layout_id: 303 - section_param_id: 111 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-13 01:32:40.000000000 Z - updated_at: 2013-04-13 01:32:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3599 - page_layout_root_id: 270 - page_layout_id: 303 - section_param_id: 112 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:10px auto 20px auto - unset: - computed_pvalue: - created_at: 2013-04-13 01:32:40.000000000 Z - updated_at: 2014-07-27 14:40:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3600 - page_layout_root_id: 270 - page_layout_id: 303 - section_param_id: 113 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-13 01:32:40.000000000 Z - updated_at: 2013-04-13 01:32:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &97139490 - id: 3601 - page_layout_root_id: 270 - page_layout_id: 303 - section_param_id: 114 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 27unset: '0' - 27: font-weight:bolder - 24unset: '0' - 24: font-size:110% - 49unset: '0' - 49: color:#00ADEE - unset: - computed_pvalue: - created_at: 2013-04-13 01:32:40.000000000 Z - updated_at: 2013-10-04 07:25:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &97143870 - id: 3602 - page_layout_root_id: 270 - page_layout_id: 300 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - 85unset: '0' - 85: clear:both - unset: - computed_pvalue: - created_at: 2013-04-13 02:35:25.000000000 Z - updated_at: 2014-04-14 12:45:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3603 - page_layout_root_id: 270 - page_layout_id: 300 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '1' - 21unset: '0' - 21: width:450px - unset: - computed_pvalue: - created_at: 2013-04-13 02:35:25.000000000 Z - updated_at: 2014-03-06 13:45:41.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3604 - page_layout_root_id: 270 - page_layout_id: 300 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:40px auto auto auto - unset: - computed_pvalue: - created_at: 2013-04-13 02:35:25.000000000 Z - updated_at: 2014-07-27 14:39:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3605 - page_layout_root_id: 270 - page_layout_id: 300 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-13 02:35:25.000000000 Z - updated_at: 2013-04-13 02:35:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3606 - page_layout_root_id: 270 - page_layout_id: 300 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-13 02:35:26.000000000 Z - updated_at: 2013-04-13 02:35:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3607 - page_layout_root_id: 270 - page_layout_id: 309 - section_param_id: 125 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-16 14:20:10.000000000 Z - updated_at: 2013-04-16 14:20:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3608 - page_layout_root_id: 270 - page_layout_id: 309 - section_param_id: 126 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 21unset: '1' - 21: width:670px - unset: - computed_pvalue: - created_at: 2013-04-16 14:20:10.000000000 Z - updated_at: 2014-02-27 14:14:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3609 - page_layout_root_id: 270 - page_layout_id: 309 - section_param_id: 127 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-16 14:20:10.000000000 Z - updated_at: 2013-04-16 14:20:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3610 - page_layout_root_id: 270 - page_layout_id: 309 - section_param_id: 128 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-16 14:20:10.000000000 Z - updated_at: 2013-04-16 14:20:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3611 - page_layout_root_id: 270 - page_layout_id: 309 - section_param_id: 129 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 53unset: '1' - 53: text-align:right - unset: - computed_pvalue: - created_at: 2013-04-16 14:20:10.000000000 Z - updated_at: 2013-11-27 06:05:44.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3612 - page_layout_root_id: 270 - page_layout_id: 292 - section_param_id: 110 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-19 13:03:09.000000000 Z - updated_at: 2013-04-19 13:03:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3613 - page_layout_root_id: 270 - page_layout_id: 292 - section_param_id: 111 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 21unset: '0' - 21: width:150px - unset: - computed_pvalue: - created_at: 2013-04-19 13:03:10.000000000 Z - updated_at: 2013-10-02 09:59:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3614 - page_layout_root_id: 270 - page_layout_id: 292 - section_param_id: 112 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - 32: padding:5px 0px 0px 0px - 31unset: '0' - 31: margin:auto auto 10px auto - unset: - computed_pvalue: - created_at: 2013-04-19 13:03:10.000000000 Z - updated_at: 2013-10-05 07:13:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3615 - page_layout_root_id: 270 - page_layout_id: 292 - section_param_id: 113 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-19 13:03:10.000000000 Z - updated_at: 2013-04-19 13:03:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3616 - page_layout_root_id: 270 - page_layout_id: 292 - section_param_id: 114 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 53unset: '0' - 53: text-align:center - 49unset: '0' - 49: color:#00ADEE - 27unset: '0' - 27: font-weight:bold - unset: - computed_pvalue: - created_at: 2013-04-19 13:03:10.000000000 Z - updated_at: 2013-10-02 10:00:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3617 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 27 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3618 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 28 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3619 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 29 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - 32: padding:0px 0px 0px 20px - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-05 00:49:11.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3620 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 30 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3621 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 31 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3622 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 32 - theme_id: 5 - pvalue: - 32unset: '0' - 32: padding:5px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-05 01:11:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3623 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 33 - theme_id: 5 - pvalue: - 54unset: '0' - 54: text-decoration:none - 24unset: '0' - 24: font-size:90% - 49unset: '0' - 49: color:black - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2014-07-27 05:02:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3624 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 34 - theme_id: 5 - pvalue: - 54unset: '0' - 54: text-decoration:underline - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2014-07-27 06:04:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3625 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 35 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3626 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 36 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3627 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 37 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3628 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 38 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3629 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 39 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3630 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 40 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3631 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 41 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3632 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 42 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3633 - page_layout_root_id: 270 - page_layout_id: 281 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:36:48.000000000 Z - updated_at: 2013-10-05 00:36:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3634 - page_layout_root_id: 270 - page_layout_id: 281 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:36:48.000000000 Z - updated_at: 2013-10-05 00:46:41.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3635 - page_layout_root_id: 270 - page_layout_id: 281 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:auto auto 20px auto - unset: - computed_pvalue: - created_at: 2013-10-05 00:36:48.000000000 Z - updated_at: 2013-10-05 01:14:46.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3636 - page_layout_root_id: 270 - page_layout_id: 281 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:36:48.000000000 Z - updated_at: 2013-10-05 00:36:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3637 - page_layout_root_id: 270 - page_layout_id: 281 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:36:48.000000000 Z - updated_at: 2013-10-05 00:36:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3638 - page_layout_root_id: 270 - page_layout_id: 284 - section_param_id: 6 - theme_id: 5 - pvalue: - 86: '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:37:55.000000000 Z - updated_at: 2013-10-05 00:37:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3639 - page_layout_root_id: 270 - page_layout_id: 284 - section_param_id: 7 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '1' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:37:55.000000000 Z - updated_at: 2013-10-05 01:14:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3640 - page_layout_root_id: 270 - page_layout_id: 284 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-10-05 00:37:55.000000000 Z - updated_at: 2013-10-05 00:37:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3641 - page_layout_root_id: 270 - page_layout_id: 284 - section_param_id: 9 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:37:56.000000000 Z - updated_at: 2013-10-05 00:37:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3642 - page_layout_root_id: 270 - page_layout_id: 284 - section_param_id: 10 - theme_id: 5 - pvalue: - 15: height:100px - 15unset: '0' - 101: float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:37:56.000000000 Z - updated_at: 2013-10-05 00:37:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3643 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 27 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:16.000000000 Z - updated_at: 2013-10-05 00:38:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3644 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 28 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:16.000000000 Z - updated_at: 2014-01-22 14:04:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3645 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 29 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '1' - 31: margin:auto auto auto 20px - 32unset: '0' - 32: padding:0px 0px 0px 20px - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:16.000000000 Z - updated_at: 2013-10-05 01:13:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3646 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 30 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:16.000000000 Z - updated_at: 2013-10-05 00:38:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3647 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 31 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:16.000000000 Z - updated_at: 2013-10-05 00:38:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3648 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 32 - theme_id: 5 - pvalue: - 32unset: '0' - 32: padding:5px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 01:13:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3649 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 33 - theme_id: 5 - pvalue: - 24unset: '0' - 24: font-size:90% - 49unset: '0' - 49: color:black - 54unset: '0' - 54: text-decoration:none - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2014-07-27 05:02:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3650 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 34 - theme_id: 5 - pvalue: - 54unset: '0' - 54: text-decoration:underline - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2014-07-27 05:03:19.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3651 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 35 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3652 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 36 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3653 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 37 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3654 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 38 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3655 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 39 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3656 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 40 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3657 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 41 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3658 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 42 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3659 - page_layout_root_id: 270 - page_layout_id: 313 - section_param_id: 210 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:58.000000000 Z - updated_at: 2013-11-02 09:20:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3660 - page_layout_root_id: 270 - page_layout_id: 313 - section_param_id: 211 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:360px - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:58.000000000 Z - updated_at: 2014-03-04 13:56:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3661 - page_layout_root_id: 270 - page_layout_id: 313 - section_param_id: 212 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - 32: padding:10px 10px 10px 10px - 7unset: '0' - 7: border-style:solid solid solid solid - 8unset: '0' - 8: border-width:1px 1px 1px 1px - 6unset: '0' - 6: ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:58.000000000 Z - updated_at: 2014-03-04 13:52:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3662 - page_layout_root_id: 270 - page_layout_id: 313 - section_param_id: 213 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:58.000000000 Z - updated_at: 2013-11-02 09:20:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3663 - page_layout_root_id: 270 - page_layout_id: 313 - section_param_id: 214 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:59.000000000 Z - updated_at: 2013-11-02 09:20:59.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3664 - page_layout_root_id: 270 - page_layout_id: 313 - section_param_id: 215 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:59.000000000 Z - updated_at: 2013-11-02 09:20:59.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3665 - page_layout_root_id: 270 - page_layout_id: 313 - section_param_id: 216 - theme_id: 5 - pvalue: - 2unset: '1' - 2: background-color:#000000 - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:59.000000000 Z - updated_at: 2014-03-04 13:51:28.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3666 - page_layout_root_id: 270 - page_layout_id: 313 - section_param_id: 217 - theme_id: 5 - pvalue: - 49unset: '0' - 49: color:#00ADEE - 53unset: '0' - 53: text-align:center - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:59.000000000 Z - updated_at: 2014-03-04 13:51:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3667 - page_layout_root_id: 270 - page_layout_id: 314 - section_param_id: 218 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:08.000000000 Z - updated_at: 2013-11-02 09:21:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3668 - page_layout_root_id: 270 - page_layout_id: 314 - section_param_id: 219 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:360px - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:08.000000000 Z - updated_at: 2014-03-04 13:56:30.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3669 - page_layout_root_id: 270 - page_layout_id: 314 - section_param_id: 220 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - 32: padding:10px 20px 10px 20px - 7unset: '0' - 7: border-style:solid solid solid solid - 8unset: '0' - 8: border-width:1px 1px 1px 1px - 6unset: '0' - 6: ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - 31unset: '0' - 31: margin:10px auto 10px auto - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:08.000000000 Z - updated_at: 2014-03-04 13:59:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3670 - page_layout_root_id: 270 - page_layout_id: 314 - section_param_id: 221 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:09.000000000 Z - updated_at: 2013-11-02 09:21:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3671 - page_layout_root_id: 270 - page_layout_id: 314 - section_param_id: 222 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:09.000000000 Z - updated_at: 2013-11-02 09:21:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3672 - page_layout_root_id: 270 - page_layout_id: 314 - section_param_id: 223 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:09.000000000 Z - updated_at: 2013-11-02 09:21:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3673 - page_layout_root_id: 270 - page_layout_id: 314 - section_param_id: 224 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:09.000000000 Z - updated_at: 2013-11-02 09:21:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3674 - page_layout_root_id: 270 - page_layout_id: 314 - section_param_id: 225 - theme_id: 5 - pvalue: - 49unset: '0' - 49: color:#00ADEE - 53unset: '0' - 53: text-align:center - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:09.000000000 Z - updated_at: 2014-03-04 13:57:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3675 - page_layout_root_id: 270 - page_layout_id: 307 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:35:02.000000000 Z - updated_at: 2013-11-02 09:35:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3676 - page_layout_root_id: 270 - page_layout_id: 307 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2013-11-02 09:35:02.000000000 Z - updated_at: 2014-02-27 14:14:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3677 - page_layout_root_id: 270 - page_layout_id: 307 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:35:02.000000000 Z - updated_at: 2013-11-02 09:35:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3678 - page_layout_root_id: 270 - page_layout_id: 307 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:35:02.000000000 Z - updated_at: 2013-11-02 09:35:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &98902910 - id: 3679 - page_layout_root_id: 270 - page_layout_id: 307 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:35:02.000000000 Z - updated_at: 2013-11-02 09:35:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3680 - page_layout_root_id: 270 - page_layout_id: 308 - section_param_id: 160 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:36:17.000000000 Z - updated_at: 2013-11-02 09:36:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3681 - page_layout_root_id: 270 - page_layout_id: 308 - section_param_id: 161 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:36:17.000000000 Z - updated_at: 2013-11-02 09:36:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3682 - page_layout_root_id: 270 - page_layout_id: 308 - section_param_id: 162 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:36:17.000000000 Z - updated_at: 2013-11-02 09:36:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3683 - page_layout_root_id: 270 - page_layout_id: 308 - section_param_id: 163 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:36:17.000000000 Z - updated_at: 2013-11-02 09:36:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3684 - page_layout_root_id: 270 - page_layout_id: 308 - section_param_id: 164 - theme_id: 5 - pvalue: - 24unset: '0' - 24: font-size:150% - unset: - computed_pvalue: - created_at: 2013-11-02 09:36:18.000000000 Z - updated_at: 2014-02-21 13:02:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3685 - page_layout_root_id: 270 - page_layout_id: 317 - section_param_id: 165 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2013-11-02 09:37:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3686 - page_layout_root_id: 270 - page_layout_id: 317 - section_param_id: 166 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2013-11-02 09:37:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3687 - page_layout_root_id: 270 - page_layout_id: 317 - section_param_id: 167 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:auto 10px auto 10px - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2014-03-04 14:26:19.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3688 - page_layout_root_id: 270 - page_layout_id: 317 - section_param_id: 168 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2013-11-02 09:37:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3689 - page_layout_root_id: 270 - page_layout_id: 317 - section_param_id: 169 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2013-11-02 09:37:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3690 - page_layout_root_id: 270 - page_layout_id: 317 - section_param_id: 170 - theme_id: 5 - pvalue: - 31unset: '0' - 31: margin:auto auto 10px auto - 7unset: '0' - 7: border-style:none none solid none - 8unset: '0' - 8: border-width:0px 0px 1px 0px - 6unset: '0' - 6: ! 'border-color:transparent transparent #D9D9DB transparent' - *99121720: '0' - 32: padding:5px 0px 5px 0px - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2014-03-04 14:24:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3691 - page_layout_root_id: 270 - page_layout_id: 317 - section_param_id: 171 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:22.000000000 Z - updated_at: 2013-11-02 09:37:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3692 - page_layout_root_id: 270 - page_layout_id: 317 - section_param_id: 172 - theme_id: 5 - pvalue: - 27: font-weight:bold - 54unset: '1' - 54: text-decoration:underline - 53unset: '1' - 53: text-align:left - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:22.000000000 Z - updated_at: 2014-03-04 14:24:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3693 - page_layout_root_id: 270 - page_layout_id: 318 - section_param_id: 173 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:30.000000000 Z - updated_at: 2013-11-02 09:37:30.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3694 - page_layout_root_id: 270 - page_layout_id: 318 - section_param_id: 174 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:300px - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2014-03-04 14:28:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3695 - page_layout_root_id: 270 - page_layout_id: 318 - section_param_id: 175 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2013-11-02 09:37:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3696 - page_layout_root_id: 270 - page_layout_id: 318 - section_param_id: 176 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2013-11-02 09:37:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3697 - page_layout_root_id: 270 - page_layout_id: 318 - section_param_id: 177 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2013-11-02 09:37:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3698 - page_layout_root_id: 270 - page_layout_id: 318 - section_param_id: 178 - theme_id: 5 - pvalue: - 31unset: '0' - 31: margin:auto auto 10px auto - 32unset: '0' - 32: padding:5px 0px 5px 0px - 7unset: '0' - 7: border-style:none none solid none - 8unset: '0' - 8: border-width:0px 0px 1px 0px - 6unset: '0' - 6: ! 'border-color:transparent transparent #D9D9DB transparent' - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2014-03-04 14:27:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3699 - page_layout_root_id: 270 - page_layout_id: 318 - section_param_id: 179 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2013-11-02 09:37:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3700 - page_layout_root_id: 270 - page_layout_id: 318 - section_param_id: 180 - theme_id: 5 - pvalue: - 27: font-weight:bold - 54unset: '1' - 54: text-decoration:underline - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2014-03-04 14:27:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3701 - page_layout_root_id: 270 - page_layout_id: 319 - section_param_id: 181 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3702 - page_layout_root_id: 270 - page_layout_id: 319 - section_param_id: 182 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3703 - page_layout_root_id: 270 - page_layout_id: 319 - section_param_id: 183 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3704 - page_layout_root_id: 270 - page_layout_id: 319 - section_param_id: 184 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3705 - page_layout_root_id: 270 - page_layout_id: 319 - section_param_id: 185 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3706 - page_layout_root_id: 270 - page_layout_id: 319 - section_param_id: 186 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3707 - page_layout_root_id: 270 - page_layout_id: 319 - section_param_id: 187 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3708 - page_layout_root_id: 270 - page_layout_id: 319 - section_param_id: 188 - theme_id: 5 - pvalue: - 27: font-weight:bold - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3709 - page_layout_root_id: 270 - page_layout_id: 321 - section_param_id: 268 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:51.000000000 Z - updated_at: 2013-11-02 09:37:51.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3710 - page_layout_root_id: 270 - page_layout_id: 321 - section_param_id: 269 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:51.000000000 Z - updated_at: 2013-11-02 09:37:51.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3711 - page_layout_root_id: 270 - page_layout_id: 321 - section_param_id: 270 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3712 - page_layout_root_id: 270 - page_layout_id: 321 - section_param_id: 271 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3713 - page_layout_root_id: 270 - page_layout_id: 321 - section_param_id: 272 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3714 - page_layout_root_id: 270 - page_layout_id: 321 - section_param_id: 273 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3715 - page_layout_root_id: 270 - page_layout_id: 321 - section_param_id: 274 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3716 - page_layout_root_id: 270 - page_layout_id: 321 - section_param_id: 275 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3717 - page_layout_root_id: 270 - page_layout_id: 322 - section_param_id: 260 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3718 - page_layout_root_id: 270 - page_layout_id: 322 - section_param_id: 261 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3719 - page_layout_root_id: 270 - page_layout_id: 322 - section_param_id: 262 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3720 - page_layout_root_id: 270 - page_layout_id: 322 - section_param_id: 263 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3721 - page_layout_root_id: 270 - page_layout_id: 322 - section_param_id: 264 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3722 - page_layout_root_id: 270 - page_layout_id: 322 - section_param_id: 265 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3723 - page_layout_root_id: 270 - page_layout_id: 322 - section_param_id: 266 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3724 - page_layout_root_id: 270 - page_layout_id: 322 - section_param_id: 267 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:02.000000000 Z - updated_at: 2013-11-02 09:38:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3725 - page_layout_root_id: 270 - page_layout_id: 323 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:01.000000000 Z - updated_at: 2013-11-02 09:39:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3726 - page_layout_root_id: 270 - page_layout_id: 323 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:01.000000000 Z - updated_at: 2013-11-02 10:07:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3727 - page_layout_root_id: 270 - page_layout_id: 323 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:01.000000000 Z - updated_at: 2013-11-02 09:39:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3728 - page_layout_root_id: 270 - page_layout_id: 323 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:01.000000000 Z - updated_at: 2013-11-02 09:39:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3729 - page_layout_root_id: 270 - page_layout_id: 323 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:01.000000000 Z - updated_at: 2013-11-02 09:39:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3730 - page_layout_root_id: 270 - page_layout_id: 325 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:32.000000000 Z - updated_at: 2013-11-02 09:39:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3731 - page_layout_root_id: 270 - page_layout_id: 325 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:33.000000000 Z - updated_at: 2013-11-02 10:07:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3732 - page_layout_root_id: 270 - page_layout_id: 325 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:33.000000000 Z - updated_at: 2013-11-02 09:39:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3733 - page_layout_root_id: 270 - page_layout_id: 325 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:33.000000000 Z - updated_at: 2013-11-02 09:39:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3734 - page_layout_root_id: 270 - page_layout_id: 325 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:33.000000000 Z - updated_at: 2013-11-02 09:39:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3735 - page_layout_root_id: 270 - page_layout_id: 324 - section_param_id: 189 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3736 - page_layout_root_id: 270 - page_layout_id: 324 - section_param_id: 190 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3737 - page_layout_root_id: 270 - page_layout_id: 324 - section_param_id: 191 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3738 - page_layout_root_id: 270 - page_layout_id: 324 - section_param_id: 192 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3739 - page_layout_root_id: 270 - page_layout_id: 324 - section_param_id: 193 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3740 - page_layout_root_id: 270 - page_layout_id: 324 - section_param_id: 194 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3741 - page_layout_root_id: 270 - page_layout_id: 324 - section_param_id: 195 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3742 - page_layout_root_id: 270 - page_layout_id: 324 - section_param_id: 196 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3743 - page_layout_root_id: 270 - page_layout_id: 326 - section_param_id: 197 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3744 - page_layout_root_id: 270 - page_layout_id: 326 - section_param_id: 198 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3745 - page_layout_root_id: 270 - page_layout_id: 326 - section_param_id: 199 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3746 - page_layout_root_id: 270 - page_layout_id: 326 - section_param_id: 200 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3747 - page_layout_root_id: 270 - page_layout_id: 326 - section_param_id: 201 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3748 - page_layout_root_id: 270 - page_layout_id: 326 - section_param_id: 202 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3749 - page_layout_root_id: 270 - page_layout_id: 326 - section_param_id: 203 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3750 - page_layout_root_id: 270 - page_layout_id: 326 - section_param_id: 204 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3751 - page_layout_root_id: 270 - page_layout_id: 320 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:08.000000000 Z - updated_at: 2013-11-02 09:50:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3752 - page_layout_root_id: 270 - page_layout_id: 320 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:08.000000000 Z - updated_at: 2013-11-02 10:07:29.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3753 - page_layout_root_id: 270 - page_layout_id: 320 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:08.000000000 Z - updated_at: *97139490 -- !ruby/object:Spree::ParamValue - attributes: - id: 3754 - page_layout_root_id: 270 - page_layout_id: 320 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:08.000000000 Z - updated_at: 2013-11-02 09:50:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3755 - page_layout_root_id: 270 - page_layout_id: 320 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:09.000000000 Z - updated_at: 2013-11-02 09:50:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3756 - page_layout_root_id: 270 - page_layout_id: 315 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:37.000000000 Z - updated_at: 2013-11-02 09:50:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3757 - page_layout_root_id: 270 - page_layout_id: 315 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:37.000000000 Z - updated_at: 2013-11-02 10:07:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3758 - page_layout_root_id: 270 - page_layout_id: 315 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - 32: padding:0px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:37.000000000 Z - updated_at: 2014-03-04 14:25:49.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3759 - page_layout_root_id: 270 - page_layout_id: 315 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:37.000000000 Z - updated_at: 2013-11-02 09:50:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3760 - page_layout_root_id: 270 - page_layout_id: 315 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:37.000000000 Z - updated_at: 2013-11-02 09:50:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3761 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 11 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:07.000000000 Z - updated_at: 2013-11-05 03:16:07.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3762 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 12 - theme_id: 5 - pvalue: - 21unset: '1' - 21: width:960px - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:07.000000000 Z - updated_at: 2013-12-03 08:15:29.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3763 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 13 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '1' - 32: padding:0px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2014-07-27 13:47:06.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3764 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 14 - theme_id: 5 - pvalue: - 2unset: '1' - 2: background-color:lime - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-12-03 08:36:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3765 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 15 - theme_id: 5 - pvalue: - 27unset: '1' - 27: font-weight:bold - 49unset: '1' - 49: color:white - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2014-07-27 13:48:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3766 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 16 - theme_id: 5 - pvalue: - 32unset: '0' - 32: padding:12px 10px 13px 10px - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2014-07-28 14:09:30.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3767 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 17 - theme_id: 5 - pvalue: - 54unset: '0' - 54: text-decoration:none - 49unset: '0' - 49: color:white - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2014-07-26 13:03:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3768 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 18 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3769 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 19 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3770 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 20 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3771 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 21 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3772 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 22 - theme_id: 5 - pvalue: - 3unset: '0' - 3: background-image:nav_not.gif - 4unset: '0' - 4: background-position:right top - 5unset: '0' - 5: background-repeat:no-repeat - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2014-07-28 14:08:47.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3773 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 23 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3774 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 24 - theme_id: 5 - pvalue: - 3unset: '0' - 3: background-image:tab_on_1px.gif - 4unset: '1' - 4: background-position:left top - 5unset: '0' - 5: background-repeat:repeat - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:09.000000000 Z - updated_at: 2014-07-28 14:10:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3775 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 25 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:09.000000000 Z - updated_at: 2013-11-05 03:16:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3776 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 26 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:09.000000000 Z - updated_at: 2013-11-05 03:16:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &95970820 - id: 3777 - page_layout_root_id: 270 - page_layout_id: 282 - section_param_id: 135 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:08.000000000 Z - updated_at: 2013-11-25 06:53:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3778 - page_layout_root_id: 270 - page_layout_id: 282 - section_param_id: 136 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:160px - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:08.000000000 Z - updated_at: 2014-02-23 12:39:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3779 - page_layout_root_id: 270 - page_layout_id: 282 - section_param_id: 137 - theme_id: 5 - pvalue: - 15hidden: '1' - 7unset: '0' - 7: border-style:none none solid none - 8unset: '0' - 8: border-width:0px 0px 1px 0px - 6unset: '0' - 6: ! 'border-color:transparent transparent #D9D9DB transparent' - 32unset: '0' - 32: padding:0px 0px 5px 0px - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2014-02-23 12:38:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3780 - page_layout_root_id: 270 - page_layout_id: 282 - section_param_id: 138 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2013-11-25 06:53:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3781 - page_layout_root_id: 270 - page_layout_id: 282 - section_param_id: 139 - theme_id: 5 - pvalue: - 27unset: '0' - 27: font-weight:bold - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2014-02-23 12:32:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3782 - page_layout_root_id: 270 - page_layout_id: 285 - section_param_id: 135 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2013-11-25 06:53:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3783 - page_layout_root_id: 270 - page_layout_id: 285 - section_param_id: 136 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:160px - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2014-02-23 12:38:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3784 - page_layout_root_id: 270 - page_layout_id: 285 - section_param_id: 137 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - 32: padding:0px 0px 5px 0px - 7unset: '0' - 7: border-style:none none solid none - 8unset: '0' - 8: border-width:0px 0px 1px 0px - 6unset: '0' - 6: ! 'border-color:transparent transparent #D9D9DB transparent' - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2014-02-23 12:39:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3785 - page_layout_root_id: 270 - page_layout_id: 285 - section_param_id: 138 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2013-11-25 06:53:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3786 - page_layout_root_id: 270 - page_layout_id: 285 - section_param_id: 139 - theme_id: 5 - pvalue: - 27unset: '0' - 27: font-weight:bold - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2014-02-23 12:35:41.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3787 - page_layout_root_id: 270 - page_layout_id: 310 - section_param_id: 140 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3788 - page_layout_root_id: 270 - page_layout_id: 310 - section_param_id: 141 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3789 - page_layout_root_id: 270 - page_layout_id: 310 - section_param_id: 142 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3790 - page_layout_root_id: 270 - page_layout_id: 310 - section_param_id: 143 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3791 - page_layout_root_id: 270 - page_layout_id: 310 - section_param_id: 144 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3792 - page_layout_root_id: 270 - page_layout_id: 311 - section_param_id: 145 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3793 - page_layout_root_id: 270 - page_layout_id: 311 - section_param_id: 146 - theme_id: 5 - pvalue: - 101unset: '0' - 101: float:right - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-27 06:07:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3794 - page_layout_root_id: 270 - page_layout_id: 311 - section_param_id: 147 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:10px auto auto auto - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2014-02-27 14:19:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3795 - page_layout_root_id: 270 - page_layout_id: 311 - section_param_id: 148 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3796 - page_layout_root_id: 270 - page_layout_id: 311 - section_param_id: 149 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3797 - page_layout_root_id: 270 - page_layout_id: 312 - section_param_id: 150 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3798 - page_layout_root_id: 270 - page_layout_id: 312 - section_param_id: 151 - theme_id: 5 - pvalue: - 21unset: '1' - 21: width:600px - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2014-03-04 13:48:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3799 - page_layout_root_id: 270 - page_layout_id: 312 - section_param_id: 152 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3800 - page_layout_root_id: 270 - page_layout_id: 312 - section_param_id: 153 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3801 - page_layout_root_id: 270 - page_layout_id: 312 - section_param_id: 154 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &97873860 - id: 3802 - page_layout_root_id: 270 - page_layout_id: 273 - section_param_id: 323 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-29 02:49:56.000000000 Z - updated_at: 2013-11-29 02:49:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3803 - page_layout_root_id: 270 - page_layout_id: 273 - section_param_id: 324 - theme_id: 5 - pvalue: - 21unset: '1' - 21: width:220px - 101unset: '1' - 101: float:none - unset: - computed_pvalue: - created_at: 2013-11-29 02:49:56.000000000 Z - updated_at: 2014-03-12 14:29:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3804 - page_layout_root_id: 270 - page_layout_id: 273 - section_param_id: 325 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-29 02:49:57.000000000 Z - updated_at: 2013-11-29 02:49:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3805 - page_layout_root_id: 270 - page_layout_id: 273 - section_param_id: 326 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-29 02:49:57.000000000 Z - updated_at: 2013-11-29 02:49:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3806 - page_layout_root_id: 270 - page_layout_id: 273 - section_param_id: 327 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-29 02:49:57.000000000 Z - updated_at: 2013-11-29 02:49:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3807 - page_layout_root_id: 270 - page_layout_id: 276 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '0' - 85: clear:none - unset: - computed_pvalue: - created_at: 2013-12-03 08:14:45.000000000 Z - updated_at: 2013-12-03 08:32:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3808 - page_layout_root_id: 270 - page_layout_id: 276 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:none - 101unset: '0' - 15: height:100px - 15unset: '1' - 21unset: '0' - 21: width:960px - unset: - computed_pvalue: - created_at: 2013-12-03 08:14:45.000000000 Z - updated_at: 2014-07-26 13:02:44.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3809 - page_layout_root_id: 270 - page_layout_id: 276 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - 32: padding:0px 0px 6px 0px - 7unset: '1' - 7: border-style:none none solid none - 8unset: '1' - 8: border-width:0px 0px 1px 0px - 6unset: '1' - 6: ! 'border-color:transparent transparent #D9D9DB transparent' - 31unset: '1' - 31: margin:auto 10px auto 10px - unset: - computed_pvalue: - created_at: 2013-12-03 08:14:46.000000000 Z - updated_at: 2014-07-26 14:47:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3810 - page_layout_root_id: 270 - page_layout_id: 276 - section_param_id: 9 - theme_id: 5 - pvalue: - 2unset: '1' - 2: background-color:green - unset: - computed_pvalue: - created_at: 2013-12-03 08:14:46.000000000 Z - updated_at: 2014-02-21 13:13:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3811 - page_layout_root_id: 270 - page_layout_id: 276 - section_param_id: 10 - theme_id: 5 - pvalue: - 49unset: '1' - 49: color:teal - 25unset: '1' - 25: font-style:normal - 24unset: '1' - 24: font-size:0% - 27unset: '1' - 27: font-weight:bold - unset: - computed_pvalue: - created_at: 2013-12-03 08:14:46.000000000 Z - updated_at: 2014-02-21 13:19:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3817 - page_layout_root_id: 270 - page_layout_id: 272 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '0' - 85: clear:none - unset: - computed_pvalue: - created_at: 2013-12-05 08:06:08.000000000 Z - updated_at: 2013-12-06 02:14:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3818 - page_layout_root_id: 270 - page_layout_id: 272 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2013-12-05 08:06:08.000000000 Z - updated_at: 2013-12-06 02:14:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3819 - page_layout_root_id: 270 - page_layout_id: 272 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-12-05 08:06:08.000000000 Z - updated_at: 2013-12-05 08:06:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3820 - page_layout_root_id: 270 - page_layout_id: 272 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-05 08:06:08.000000000 Z - updated_at: 2013-12-05 08:06:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3821 - page_layout_root_id: 270 - page_layout_id: 272 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-05 08:06:08.000000000 Z - updated_at: 2013-12-05 08:06:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3822 - page_layout_root_id: 270 - page_layout_id: 274 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-05 08:11:48.000000000 Z - updated_at: 2013-12-05 08:11:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3823 - page_layout_root_id: 270 - page_layout_id: 274 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:right - 101unset: '0' - 15: height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2013-12-05 08:11:48.000000000 Z - updated_at: 2013-12-06 02:14:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3824 - page_layout_root_id: 270 - page_layout_id: 274 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-12-05 08:11:48.000000000 Z - updated_at: 2013-12-05 08:11:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3825 - page_layout_root_id: 270 - page_layout_id: 274 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-05 08:11:48.000000000 Z - updated_at: 2013-12-05 08:11:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3826 - page_layout_root_id: 270 - page_layout_id: 274 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-05 08:11:48.000000000 Z - updated_at: 2013-12-05 08:11:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3827 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 226 - theme_id: 5 - pvalue: - 21: width:960px - 21unset: '1' - 20: min-width:960px - 20hidden: '1' - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:53.000000000 Z - updated_at: 2014-07-12 04:07:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3828 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 227 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:53.000000000 Z - updated_at: 2014-01-22 03:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3829 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 228 - theme_id: 5 - pvalue: - 85: clear:both - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:53.000000000 Z - updated_at: 2014-01-22 03:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3830 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 229 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:53.000000000 Z - updated_at: 2014-01-22 03:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3831 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 230 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:53.000000000 Z - updated_at: 2014-01-22 03:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3832 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 231 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3833 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 232 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3834 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 233 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3835 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 234 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3836 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 235 - theme_id: 5 - pvalue: - 31unset: '0' - 31: margin:10px auto 2px auto - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-03-04 13:53:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3837 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 236 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3838 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 237 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3839 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 238 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3840 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 239 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3841 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 240 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3842 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 241 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3843 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 242 - theme_id: 5 - pvalue: - 49unset: '0' - 49: color:red - 24unset: '0' - 24: font-size:82% - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-03-04 14:03:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3844 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 243 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3845 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 317 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3846 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 318 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3847 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 319 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3848 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 320 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3849 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 321 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3850 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 322 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3851 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 244 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3852 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 245 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3853 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 246 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-01-22 03:39:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3854 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 247 - theme_id: 5 - pvalue: - 49unset: '1' - 49: color:#00ADEE - 24unset: '1' - 24: font-size:80% - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-07-26 12:55:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3855 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 248 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-01-22 03:39:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3856 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 249 - theme_id: 5 - pvalue: - id: 3093 - page_layout_root_id: 208 - page_layout_id: 209 - section_param_id: 8 - theme_id: 5 - pvalue: !ruby/struct:ActiveRecord::AttributeMethods::Serialization::Attribute - coder: !ruby/object:ActiveRecord::Coders::YAMLColumn - object_class: *68008810 - value: - 15hidden: '1' - 31unset: '0' - 31: margin:auto auto 20px auto - state: :unserialized - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:03.000000000 Z - updated_at: 2014-02-21 13:13:17.000000000 Z - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-02-27 14:09:29.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3857 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 250 - theme_id: 5 - pvalue: - 32unset: '0' - 32: padding:5px 10px 5px 10px - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-02-27 13:39:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3858 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 251 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-01-22 03:39:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3859 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 252 - theme_id: 5 - pvalue: - 2unset: '0' - 2: background-color:#D9D9DB - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-02-27 13:38:44.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3860 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 253 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-01-22 03:39:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3861 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 254 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-01-22 03:39:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3862 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 255 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3863 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 256 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3864 - page_layout_root_id: 270 - page_layout_id: 291 - section_param_id: 55 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3865 - page_layout_root_id: 270 - page_layout_id: 291 - section_param_id: 56 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:150px - 15unset: '0' - 15: height:34px - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-02-21 13:25:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3866 - page_layout_root_id: 270 - page_layout_id: 291 - section_param_id: 57 - theme_id: 5 - pvalue: - 15hidden: '1' - 15unset: '0' - 15: height:33px - 32unset: '1' - 32: padding:0px 0px 0px 0px - 7unset: '0' - 7: border-style:none none solid none - 8unset: '0' - 8: border-width:0px 0px 1px 0px - 6unset: '0' - 6: ! 'border-color:transparent transparent #BBBBBB transparent' - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-02-21 13:25:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3867 - page_layout_root_id: 270 - page_layout_id: 291 - section_param_id: 58 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3868 - page_layout_root_id: 270 - page_layout_id: 291 - section_param_id: 59 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3869 - page_layout_root_id: 270 - page_layout_id: 291 - section_param_id: 294 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3870 - page_layout_root_id: 270 - page_layout_id: 291 - section_param_id: 295 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3871 - page_layout_root_id: 270 - page_layout_id: 291 - section_param_id: 296 - theme_id: 5 - pvalue: - 49unset: '0' - 49: color:#BBBBBB - 27unset: '0' - 27: font-weight:bold - 24unset: '0' - 24: font-size:80% - 54unset: '0' - 54: text-decoration:none - 53unset: '0' - 53: text-align:center - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-02-21 13:23:14.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3872 - page_layout_root_id: 270 - page_layout_id: 291 - section_param_id: 297 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:58.000000000 Z - updated_at: 2014-01-22 03:39:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3873 - page_layout_root_id: 270 - page_layout_id: 296 - section_param_id: 105 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-01-22 03:40:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3874 - page_layout_root_id: 270 - page_layout_id: 296 - section_param_id: 106 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-02-23 13:19:20.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3875 - page_layout_root_id: 270 - page_layout_id: 296 - section_param_id: 107 - theme_id: 5 - pvalue: - id: 495 - page_layout_root_id: 1 - page_layout_id: 34 - section_param_id: 41 - theme_id: 1 - pvalue: !ruby/struct:ActiveRecord::AttributeMethods::Serialization::Attribute - coder: !ruby/object:ActiveRecord::Coders::YAMLColumn - object_class: *68008810 - value: {} - state: :unserialized - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-02-23 13:20:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3876 - page_layout_root_id: 270 - page_layout_id: 296 - section_param_id: 108 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-01-22 03:40:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3877 - page_layout_root_id: 270 - page_layout_id: 296 - section_param_id: 109 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-01-22 03:40:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3878 - page_layout_root_id: 270 - page_layout_id: 296 - section_param_id: 302 - theme_id: 5 - pvalue: - 32unset: '0' - 32: padding:5px 5px 5px 5px - 7unset: '0' - 7: border-style:solid none solid none - 8unset: '0' - 8: border-width:1px 1px 1px 1px - 6unset: '0' - 6: ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-02-23 13:18:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3879 - page_layout_root_id: 270 - page_layout_id: 296 - section_param_id: 303 - theme_id: 5 - pvalue: - 2unset: '0' - 2: background-color:transparent - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-04-14 12:47:27.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3880 - page_layout_root_id: 270 - page_layout_id: 296 - section_param_id: 304 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3881 - page_layout_root_id: 270 - page_layout_id: 296 - section_param_id: 305 - theme_id: 5 - pvalue: - 27unset: '0' - 27: font-weight:bold - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-02-23 13:16:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3882 - page_layout_root_id: 270 - page_layout_id: 296 - section_param_id: 306 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3883 - page_layout_root_id: 270 - page_layout_id: 298 - section_param_id: 55 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3884 - page_layout_root_id: 270 - page_layout_id: 298 - section_param_id: 56 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-02-23 13:22:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3885 - page_layout_root_id: 270 - page_layout_id: 298 - section_param_id: 57 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '1' - 32: padding:0px 0px 0px 0px - 7unset: '0' - 7: border-style:none none solid none - 8unset: '0' - 8: border-width:0px 0px 1px 0px - 6unset: '0' - 6: ! 'border-color:transparent transparent #D9D9DB transparent' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-02-23 13:22:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3886 - page_layout_root_id: 270 - page_layout_id: 298 - section_param_id: 58 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3887 - page_layout_root_id: 270 - page_layout_id: 298 - section_param_id: 59 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3888 - page_layout_root_id: 270 - page_layout_id: 298 - section_param_id: 294 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3889 - page_layout_root_id: 270 - page_layout_id: 298 - section_param_id: 295 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3890 - page_layout_root_id: 270 - page_layout_id: 298 - section_param_id: 296 - theme_id: 5 - pvalue: - 49unset: '0' - 49: color:black - 54unset: '0' - 54: text-decoration:none - 27unset: '0' - 27: font-weight:bold - 24unset: '0' - 24: font-size:150% - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-02-23 13:21:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3891 - page_layout_root_id: 270 - page_layout_id: 298 - section_param_id: 297 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3892 - page_layout_root_id: 270 - page_layout_id: 305 - section_param_id: 115 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3893 - page_layout_root_id: 270 - page_layout_id: 305 - section_param_id: 116 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3894 - page_layout_root_id: 270 - page_layout_id: 305 - section_param_id: 117 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3895 - page_layout_root_id: 270 - page_layout_id: 305 - section_param_id: 118 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3896 - page_layout_root_id: 270 - page_layout_id: 305 - section_param_id: 119 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &101568800 - id: 3897 - page_layout_root_id: 270 - page_layout_id: 305 - section_param_id: 307 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:60px - 7unset: '0' - 7: border-style:solid solid solid solid - 6unset: '0' - 6: ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - 8unset: '0' - 8: border-width:1px 1px 1px 1px - 32unset: '0' - 32: padding:7px 10px 7px 10px - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-02-23 13:33:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3898 - page_layout_root_id: 270 - page_layout_id: 305 - section_param_id: 308 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3899 - page_layout_root_id: 270 - page_layout_id: 305 - section_param_id: 309 - theme_id: 5 - pvalue: - 53unset: '0' - 53: text-align:left - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-02-23 13:25:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3900 - page_layout_root_id: 270 - page_layout_id: 306 - section_param_id: 120 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-01-22 03:40:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3901 - page_layout_root_id: 270 - page_layout_id: 306 - section_param_id: 121 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-01-22 03:40:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3902 - page_layout_root_id: 270 - page_layout_id: 306 - section_param_id: 122 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:auto auto auto 5px - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-02-23 13:33:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3903 - page_layout_root_id: 270 - page_layout_id: 306 - section_param_id: 123 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-01-22 03:40:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3904 - page_layout_root_id: 270 - page_layout_id: 306 - section_param_id: 124 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-01-22 03:40:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3905 - page_layout_root_id: 270 - page_layout_id: 306 - section_param_id: 310 - theme_id: 5 - pvalue: - 32unset: '0' - 32: padding:7px 10px 7px 10px - 7unset: - id: 456 - page_layout_root_id: 1 - page_layout_id: 9 - section_param_id: 28 - theme_id: 1 - pvalue: !ruby/struct:ActiveRecord::AttributeMethods::Serialization::Attribute - coder: !ruby/object:ActiveRecord::Coders::YAMLColumn - object_class: *68008810 - value: - disabled_ha_ids: '111' - state: :unserialized - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z - 7: border-style:solid solid solid solid - 8unset: '0' - 8: border-width:1px 1px 1px 1px - 6unset: '0' - 6: ! 'border-color:#008ABD #008ABD #008ABD #008ABD' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-02-23 13:31:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3906 - page_layout_root_id: 270 - page_layout_id: 306 - section_param_id: 311 - theme_id: 5 - pvalue: - 2unset: '0' - 2: background-color:#00ADEE - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-02-23 13:28:59.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3907 - page_layout_root_id: 270 - page_layout_id: 306 - section_param_id: 312 - theme_id: 5 - pvalue: - 49unset: '0' - 49: color:white - 24unset: '1' - 24: font-size:14em - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-02-23 13:32:06.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3908 - page_layout_root_id: 270 - page_layout_id: 331 - section_param_id: 284 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-01-22 03:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3909 - page_layout_root_id: 270 - page_layout_id: 331 - section_param_id: 285 - theme_id: 5 - pvalue: - 21: width:600px - 21unset: '0' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-01-22 03:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3910 - page_layout_root_id: 270 - page_layout_id: 331 - section_param_id: 286 - theme_id: 5 - pvalue: - 7: border-style:solid solid solid solid - 7unset: '0' - 8: border-width:1px 1px 1px 1px - 8unset: '0' - 6: ! 'border-color:#CCCCCC #CCCCCC #CCCCCC #CCCCCC' - 6unset: '0' - 15: height:598px - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-01-22 03:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3911 - page_layout_root_id: 270 - page_layout_id: 331 - section_param_id: 287 - theme_id: 5 - pvalue: - 2: background-color:#FFFFFF - 2unset: '0' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-01-22 03:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3912 - page_layout_root_id: 270 - page_layout_id: 331 - section_param_id: 288 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: -- !ruby/object:Spree::ParamValue - attributes: - id: 3913 - page_layout_root_id: 270 - page_layout_id: 331 - section_param_id: 313 - theme_id: 5 - pvalue: - 32: padding:2px 2px 2px 2px - 32unset: '0' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-01-22 03:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3914 - page_layout_root_id: 270 - page_layout_id: 331 - section_param_id: 314 - theme_id: 5 - pvalue: - 2: background-color:#EEEEEE - 2unset: '0' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-01-22 03:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3915 - page_layout_root_id: 270 - page_layout_id: 331 - section_param_id: 315 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:05.000000000 Z - updated_at: 2014-01-22 03:40:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3916 - page_layout_root_id: 270 - page_layout_id: 331 - section_param_id: 316 - theme_id: 5 - pvalue: - 32: padding:0 10px 5px 10px - 32unset: '0' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:05.000000000 Z - updated_at: 2014-01-22 03:40:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3917 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 333 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3918 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 334 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3919 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 335 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3920 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 336 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3921 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 337 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3922 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 338 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3923 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 339 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3924 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 340 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3925 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 341 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3926 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 342 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3927 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 343 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3928 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 344 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3929 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 345 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3930 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 346 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3931 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 347 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3932 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 348 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3933 - page_layout_root_id: 270 - page_layout_id: 327 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:03:39.000000000 Z - updated_at: 2014-02-19 13:03:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3934 - page_layout_root_id: 270 - page_layout_id: 327 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-02-19 13:03:39.000000000 Z - updated_at: 2014-02-21 12:44:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3935 - page_layout_root_id: 270 - page_layout_id: 327 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-02-19 13:03:39.000000000 Z - updated_at: 2014-02-19 13:03:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3936 - page_layout_root_id: 270 - page_layout_id: 327 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:03:39.000000000 Z - updated_at: 2014-02-19 13:03:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3937 - page_layout_root_id: 270 - page_layout_id: 327 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:03:39.000000000 Z - updated_at: 2014-02-19 13:03:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3938 - page_layout_root_id: 270 - page_layout_id: 328 - section_param_id: 349 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3939 - page_layout_root_id: 270 - page_layout_id: 328 - section_param_id: 350 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-05-10 13:08:24.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3940 - page_layout_root_id: 270 - page_layout_id: 328 - section_param_id: 351 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3941 - page_layout_root_id: 270 - page_layout_id: 328 - section_param_id: 352 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3942 - page_layout_root_id: 270 - page_layout_id: 328 - section_param_id: 353 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3943 - page_layout_root_id: 270 - page_layout_id: 328 - section_param_id: 354 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3944 - page_layout_root_id: 270 - page_layout_id: 328 - section_param_id: 355 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3945 - page_layout_root_id: 270 - page_layout_id: 328 - section_param_id: 356 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3946 - page_layout_root_id: 270 - page_layout_id: 295 - section_param_id: 289 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:34:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3947 - page_layout_root_id: 270 - page_layout_id: 295 - section_param_id: 290 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:34:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3948 - page_layout_root_id: 270 - page_layout_id: 295 - section_param_id: 291 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:34:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3949 - page_layout_root_id: 270 - page_layout_id: 295 - section_param_id: 292 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:34:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3950 - page_layout_root_id: 270 - page_layout_id: 295 - section_param_id: 293 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:34:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3951 - page_layout_root_id: 270 - page_layout_id: 295 - section_param_id: 299 - theme_id: 5 - pvalue: - 32unset: '0' - 32: padding:5px 10px 5px 10px - 7unset: '0' - 7: border-style:solid solid solid solid - 8unset: '0' - 8: border-width:1px 1px 1px 1px - 6unset: '0' - 6: ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:47:28.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3952 - page_layout_root_id: 270 - page_layout_id: 295 - section_param_id: 301 - theme_id: 5 - pvalue: - 32unset: '0' - 32: padding:5px 5px 5px 5px - 7unset: '0' - 7: border-style:solid solid solid solid - 8unset: '0' - 8: border-width:1px 1px 1px 1px - 6unset: '0' - 6: ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - 31unset: '0' - 31: margin:6px 6px 6px auto - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:48:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3953 - page_layout_root_id: 270 - page_layout_id: 316 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '0' - 85: clear:none - unset: - computed_pvalue: - created_at: 2014-03-04 14:20:03.000000000 Z - updated_at: 2014-03-04 14:21:14.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3954 - page_layout_root_id: 270 - page_layout_id: 316 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '0' - unset: - computed_pvalue: - created_at: 2014-03-04 14:20:03.000000000 Z - updated_at: 2014-03-04 14:20:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3955 - page_layout_root_id: 270 - page_layout_id: 316 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-03-04 14:20:03.000000000 Z - updated_at: 2014-03-04 14:20:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3956 - page_layout_root_id: 270 - page_layout_id: 316 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-04 14:20:03.000000000 Z - updated_at: 2014-03-04 14:20:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3957 - page_layout_root_id: 270 - page_layout_id: 316 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-04 14:20:03.000000000 Z - updated_at: 2014-03-04 14:20:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3958 - page_layout_root_id: 270 - page_layout_id: 301 - section_param_id: 357 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:19:56.000000000 Z - updated_at: 2014-03-06 13:19:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3959 - page_layout_root_id: 270 - page_layout_id: 301 - section_param_id: 358 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:19:56.000000000 Z - updated_at: 2014-03-06 13:19:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3960 - page_layout_root_id: 270 - page_layout_id: 301 - section_param_id: 359 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:auto auto 10px auto - unset: - computed_pvalue: - created_at: - updated_at: 2014-04-14 12:46:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3961 - page_layout_root_id: 270 - page_layout_id: 301 - section_param_id: 360 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:19:56.000000000 Z - updated_at: 2014-03-06 13:19:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3962 - page_layout_root_id: 270 - page_layout_id: 301 - section_param_id: 361 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:19:56.000000000 Z - updated_at: 2014-03-06 13:19:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3963 - page_layout_root_id: 270 - page_layout_id: 304 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '0' - 85: clear:none - unset: - computed_pvalue: - created_at: 2014-03-06 13:42:19.000000000 Z - updated_at: 2014-03-06 15:20:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3964 - page_layout_root_id: 270 - page_layout_id: 304 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - 21unset: '0' - 21: width:230px - unset: - computed_pvalue: - created_at: 2014-03-06 13:42:19.000000000 Z - updated_at: 2014-03-06 13:48:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3965 - page_layout_root_id: 270 - page_layout_id: 304 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-03-06 13:42:19.000000000 Z - updated_at: 2014-03-06 13:42:19.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3966 - page_layout_root_id: 270 - page_layout_id: 304 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:42:19.000000000 Z - updated_at: 2014-03-06 13:42:19.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3967 - page_layout_root_id: 270 - page_layout_id: 304 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:42:19.000000000 Z - updated_at: 2014-03-06 13:42:19.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3968 - page_layout_root_id: 270 - page_layout_id: 302 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '0' - 85: clear:both - unset: - computed_pvalue: - created_at: 2014-03-06 15:17:45.000000000 Z - updated_at: 2014-03-06 15:19:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3969 - page_layout_root_id: 270 - page_layout_id: 302 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-03-06 15:17:45.000000000 Z - updated_at: 2014-03-06 15:20:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3970 - page_layout_root_id: 270 - page_layout_id: 302 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-03-06 15:17:45.000000000 Z - updated_at: 2014-03-06 15:17:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3971 - page_layout_root_id: 270 - page_layout_id: 302 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 15:17:45.000000000 Z - updated_at: 2014-03-06 15:17:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3972 - page_layout_root_id: 270 - page_layout_id: 302 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 15:17:45.000000000 Z - updated_at: 2014-03-06 15:17:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3976 - page_layout_root_id: 270 - page_layout_id: 290 - section_param_id: 404 - theme_id: 5 - pvalue: - 84unset: '1' - 84: product - unset: - computed_pvalue: - created_at: 2014-07-04 12:47:18.000000000 Z - updated_at: 2014-07-04 13:16:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3977 - page_layout_root_id: 270 - page_layout_id: 332 - section_param_id: 388 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-09 13:01:29.000000000 Z - updated_at: 2014-07-09 13:01:29.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3978 - page_layout_root_id: 270 - page_layout_id: 332 - section_param_id: 389 - theme_id: 5 - pvalue: - 21: width:960px - 21unset: '0' - 15unset: '0' - 15: height:300px - 101unset: '0' - 101: float:none - unset: - computed_pvalue: - created_at: 2014-07-09 13:01:29.000000000 Z - updated_at: 2014-07-12 04:11:24.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3979 - page_layout_root_id: 270 - page_layout_id: 332 - section_param_id: 390 - theme_id: 5 - pvalue: - 15hidden: '1' - 15unset: '0' - 15: height:300px - unset: - computed_pvalue: - created_at: 2014-07-09 13:01:29.000000000 Z - updated_at: 2014-07-09 13:28:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3980 - page_layout_root_id: 270 - page_layout_id: 332 - section_param_id: 391 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-09 13:01:29.000000000 Z - updated_at: 2014-07-09 13:01:29.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3981 - page_layout_root_id: 270 - page_layout_id: 332 - section_param_id: 392 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-09 13:01:29.000000000 Z - updated_at: 2014-07-09 13:01:29.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3982 - page_layout_root_id: 270 - page_layout_id: 332 - section_param_id: 393 - theme_id: 5 - pvalue: - 78: width:960px - 79: height:300px - 78unset: '0' - 79unset: '0' - unset: - computed_pvalue: - created_at: 2014-07-09 13:01:29.000000000 Z - updated_at: 2014-07-12 04:11:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3983 - page_layout_root_id: 270 - page_layout_id: 333 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-12 04:07:03.000000000 Z - updated_at: 2014-07-12 04:07:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3984 - page_layout_root_id: 270 - page_layout_id: 333 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:300px - 15unset: '1' - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2014-07-12 04:07:03.000000000 Z - updated_at: 2014-07-26 13:19:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3985 - page_layout_root_id: 270 - page_layout_id: 333 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 15unset: '1' - 15: height:295px - 31unset: '0' - 31: margin:auto auto 5px auto - unset: - computed_pvalue: - created_at: 2014-07-12 04:07:03.000000000 Z - updated_at: 2014-07-26 13:19:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3986 - page_layout_root_id: 270 - page_layout_id: 333 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-12 04:07:03.000000000 Z - updated_at: 2014-07-12 04:07:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3987 - page_layout_root_id: 270 - page_layout_id: 333 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-12 04:07:03.000000000 Z - updated_at: 2014-07-12 04:07:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3993 - page_layout_root_id: 270 - page_layout_id: 335 - section_param_id: 50 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-12 05:05:49.000000000 Z - updated_at: 2014-07-12 05:05:49.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3994 - page_layout_root_id: 270 - page_layout_id: 335 - section_param_id: 51 - theme_id: 5 - pvalue: - 101unset: '0' - 101: float:none - 21unset: '0' - 21: width:800px - unset: - computed_pvalue: - created_at: 2014-07-12 05:05:49.000000000 Z - updated_at: 2014-07-12 06:32:49.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3995 - page_layout_root_id: 270 - page_layout_id: 335 - section_param_id: 52 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-12 05:05:49.000000000 Z - updated_at: 2014-07-12 05:05:49.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3996 - page_layout_root_id: 270 - page_layout_id: 335 - section_param_id: 53 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-12 05:05:49.000000000 Z - updated_at: 2014-07-12 05:05:49.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3997 - page_layout_root_id: 270 - page_layout_id: 335 - section_param_id: 54 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-12 05:05:49.000000000 Z - updated_at: 2014-07-12 05:05:49.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4003 - page_layout_root_id: 270 - page_layout_id: 337 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:16:03.000000000 Z - updated_at: 2014-07-17 00:16:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4004 - page_layout_root_id: 270 - page_layout_id: 337 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '0' - unset: - computed_pvalue: - created_at: 2014-07-17 00:16:03.000000000 Z - updated_at: 2014-07-17 00:16:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4005 - page_layout_root_id: 270 - page_layout_id: 337 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-17 00:16:03.000000000 Z - updated_at: 2014-07-17 00:16:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4006 - page_layout_root_id: 270 - page_layout_id: 337 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:16:03.000000000 Z - updated_at: 2014-07-17 00:16:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4007 - page_layout_root_id: 270 - page_layout_id: 337 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:16:03.000000000 Z - updated_at: 2014-07-17 00:16:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4008 - page_layout_root_id: 270 - page_layout_id: 338 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:16:13.000000000 Z - updated_at: 2014-07-17 00:16:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4009 - page_layout_root_id: 270 - page_layout_id: 338 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '0' - unset: - computed_pvalue: - created_at: 2014-07-17 00:16:13.000000000 Z - updated_at: 2014-07-17 00:16:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4010 - page_layout_root_id: 270 - page_layout_id: 338 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-17 00:16:13.000000000 Z - updated_at: 2014-07-17 00:16:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4011 - page_layout_root_id: 270 - page_layout_id: 338 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:16:13.000000000 Z - updated_at: 2014-07-17 00:16:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4012 - page_layout_root_id: 270 - page_layout_id: 338 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:16:13.000000000 Z - updated_at: 2014-07-17 00:16:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4013 - page_layout_root_id: 270 - page_layout_id: 339 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '0' - 85: clear:none - unset: - computed_pvalue: - created_at: 2014-07-17 00:19:17.000000000 Z - updated_at: 2014-07-23 23:51:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4014 - page_layout_root_id: 270 - page_layout_id: 339 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2014-07-17 00:19:17.000000000 Z - updated_at: 2014-07-26 04:56:25.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4015 - page_layout_root_id: 270 - page_layout_id: 339 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-17 00:19:17.000000000 Z - updated_at: 2014-07-17 00:19:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4016 - page_layout_root_id: 270 - page_layout_id: 339 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:19:17.000000000 Z - updated_at: 2014-07-17 00:19:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4017 - page_layout_root_id: 270 - page_layout_id: 339 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:19:17.000000000 Z - updated_at: 2014-07-17 00:19:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4018 - page_layout_root_id: 270 - page_layout_id: 340 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:26:45.000000000 Z - updated_at: 2014-07-17 00:26:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4019 - page_layout_root_id: 270 - page_layout_id: 340 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - 21unset: '0' - 21: width:655px - unset: - computed_pvalue: - created_at: 2014-07-17 00:26:45.000000000 Z - updated_at: 2014-07-27 01:50:06.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4020 - page_layout_root_id: 270 - page_layout_id: 340 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-17 00:26:45.000000000 Z - updated_at: 2014-07-17 00:26:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4021 - page_layout_root_id: 270 - page_layout_id: 340 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:26:45.000000000 Z - updated_at: 2014-07-17 00:26:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4022 - page_layout_root_id: 270 - page_layout_id: 340 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:26:45.000000000 Z - updated_at: 2014-07-17 00:26:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4023 - page_layout_root_id: 270 - page_layout_id: 341 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:26:54.000000000 Z - updated_at: 2014-07-17 00:26:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4024 - page_layout_root_id: 270 - page_layout_id: 341 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:right - 101unset: '0' - 15: height:100px - 15unset: '1' - 21unset: '1' - 21: width:360px - unset: - computed_pvalue: - created_at: 2014-07-17 00:26:55.000000000 Z - updated_at: 2014-07-26 14:33:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4025 - page_layout_root_id: 270 - page_layout_id: 341 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 15unset: '1' - 15: height:100px - unset: - computed_pvalue: - created_at: 2014-07-17 00:26:55.000000000 Z - updated_at: 2014-07-26 03:19:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4026 - page_layout_root_id: 270 - page_layout_id: 341 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:26:55.000000000 Z - updated_at: 2014-07-17 00:26:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4027 - page_layout_root_id: 270 - page_layout_id: 341 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:26:55.000000000 Z - updated_at: 2014-07-17 00:26:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4028 - page_layout_root_id: 270 - page_layout_id: 342 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '1' - 85: clear:none - unset: - computed_pvalue: - created_at: 2014-07-17 00:28:52.000000000 Z - updated_at: 2014-07-25 14:02:18.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4029 - page_layout_root_id: 270 - page_layout_id: 342 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2014-07-17 00:28:52.000000000 Z - updated_at: 2014-07-24 23:45:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4030 - page_layout_root_id: 270 - page_layout_id: 342 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 7unset: '0' - 7: border-style:solid solid solid solid - 8unset: '0' - 8: border-width:1px 1px 1px 1px - 6unset: '0' - 6: ! 'border-color:#CDCBCB #CDCBCB #CDCBCB #CDCBCB' - unset: - computed_pvalue: - created_at: 2014-07-17 00:28:52.000000000 Z - updated_at: 2014-07-26 01:32:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4031 - page_layout_root_id: 270 - page_layout_id: 342 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:28:52.000000000 Z - updated_at: 2014-07-17 00:28:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4032 - page_layout_root_id: 270 - page_layout_id: 342 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:28:52.000000000 Z - updated_at: 2014-07-17 00:28:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4033 - page_layout_root_id: 270 - page_layout_id: 343 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:29:03.000000000 Z - updated_at: 2014-07-17 00:29:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4034 - page_layout_root_id: 270 - page_layout_id: 343 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2014-07-17 00:29:03.000000000 Z - updated_at: 2014-07-26 13:43:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4035 - page_layout_root_id: 270 - page_layout_id: 343 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 7unset: '0' - 7: border-style:solid solid solid solid - 8unset: '0' - 8: border-width:1px 1px 1px 1px - 6unset: '0' - 6: ! 'border-color:#CDCBCB #CDCBCB #CDCBCB #CDCBCB' - 32unset: '1' - 32: padding:0px 0px 0px 0px - 31unset: '0' - 31: margin:5px auto auto auto - unset: - computed_pvalue: - created_at: 2014-07-17 00:29:03.000000000 Z - updated_at: 2014-07-26 14:39:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4036 - page_layout_root_id: 270 - page_layout_id: 343 - section_param_id: 9 - theme_id: 5 - pvalue: - 3unset: '1' - 3: background-image:none - unset: - computed_pvalue: - created_at: 2014-07-17 00:29:03.000000000 Z - updated_at: 2014-07-27 13:53:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4037 - page_layout_root_id: 270 - page_layout_id: 343 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:29:03.000000000 Z - updated_at: 2014-07-17 00:29:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4038 - page_layout_root_id: 270 - page_layout_id: 344 - section_param_id: 65 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:10:10.000000000 Z - updated_at: 2014-07-17 09:10:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4039 - page_layout_root_id: 270 - page_layout_id: 344 - section_param_id: 66 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:10:10.000000000 Z - updated_at: 2014-07-17 09:10:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4040 - page_layout_root_id: 270 - page_layout_id: 344 - section_param_id: 67 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-17 09:10:10.000000000 Z - updated_at: 2014-07-17 09:10:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4041 - page_layout_root_id: 270 - page_layout_id: 344 - section_param_id: 68 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:10:10.000000000 Z - updated_at: 2014-07-17 09:10:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4042 - page_layout_root_id: 270 - page_layout_id: 344 - section_param_id: 69 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:10:10.000000000 Z - updated_at: 2014-07-17 09:10:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4043 - page_layout_root_id: 270 - page_layout_id: 344 - section_param_id: 404 - theme_id: 5 - pvalue: - 84unset: '0' - 84: product - unset: - computed_pvalue: - created_at: 2014-07-17 09:10:10.000000000 Z - updated_at: 2014-07-25 13:57:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4044 - page_layout_root_id: 270 - page_layout_id: 345 - section_param_id: 65 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:13:54.000000000 Z - updated_at: 2014-07-17 09:13:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4045 - page_layout_root_id: 270 - page_layout_id: 345 - section_param_id: 66 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:13:54.000000000 Z - updated_at: 2014-07-17 09:13:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4046 - page_layout_root_id: 270 - page_layout_id: 345 - section_param_id: 67 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-17 09:13:54.000000000 Z - updated_at: 2014-07-17 09:13:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4047 - page_layout_root_id: 270 - page_layout_id: 345 - section_param_id: 68 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:13:54.000000000 Z - updated_at: 2014-07-17 09:13:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4048 - page_layout_root_id: 270 - page_layout_id: 345 - section_param_id: 69 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:13:54.000000000 Z - updated_at: 2014-07-17 09:13:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4049 - page_layout_root_id: 270 - page_layout_id: 345 - section_param_id: 404 - theme_id: 5 - pvalue: - 84unset: '0' - 84: product - unset: - computed_pvalue: - created_at: 2014-07-17 09:13:54.000000000 Z - updated_at: 2014-07-26 13:45:29.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4050 - page_layout_root_id: 270 - page_layout_id: 346 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:14:54.000000000 Z - updated_at: 2014-07-17 09:14:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4051 - page_layout_root_id: 270 - page_layout_id: 346 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-07-17 09:14:54.000000000 Z - updated_at: 2014-07-23 23:51:30.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4052 - page_layout_root_id: 270 - page_layout_id: 346 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - 32: padding:18px 5px 5px 5px - unset: - computed_pvalue: - created_at: 2014-07-17 09:14:54.000000000 Z - updated_at: 2014-07-27 05:00:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4053 - page_layout_root_id: 270 - page_layout_id: 346 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:14:54.000000000 Z - updated_at: 2014-07-17 09:14:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4054 - page_layout_root_id: 270 - page_layout_id: 346 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:14:54.000000000 Z - updated_at: 2014-07-17 09:14:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4055 - page_layout_root_id: 270 - page_layout_id: 347 - section_param_id: 50 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:15:31.000000000 Z - updated_at: 2014-07-17 09:15:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4056 - page_layout_root_id: 270 - page_layout_id: 347 - section_param_id: 51 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2014-07-17 09:15:31.000000000 Z - updated_at: 2014-07-26 04:49:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4057 - page_layout_root_id: 270 - page_layout_id: 347 - section_param_id: 52 - theme_id: 5 - pvalue: - 15hidden: '1' - 7unset: '0' - 7: border-style:solid solid solid solid - 8unset: '0' - 8: border-width:1px 1px 1px 1px - 6unset: '0' - 6: ! 'border-color:#CDCBCB #CDCBCB #CDCBCB #CDCBCB' - 32unset: '0' - 32: padding:5px 5px 5px 5px - 31unset: '0' - 31: margin:5px auto auto auto - unset: - computed_pvalue: - created_at: 2014-07-17 09:15:31.000000000 Z - updated_at: 2014-07-26 05:29:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4058 - page_layout_root_id: 270 - page_layout_id: 347 - section_param_id: 53 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:15:31.000000000 Z - updated_at: 2014-07-17 09:15:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4059 - page_layout_root_id: 270 - page_layout_id: 347 - section_param_id: 54 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:15:31.000000000 Z - updated_at: 2014-07-17 09:15:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4060 - page_layout_root_id: 270 - page_layout_id: 348 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '0' - 85: clear:none - unset: - computed_pvalue: - created_at: 2014-07-24 23:40:52.000000000 Z - updated_at: 2014-07-24 23:46:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4061 - page_layout_root_id: 270 - page_layout_id: 348 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-07-24 23:40:52.000000000 Z - updated_at: 2014-07-24 23:45:46.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4062 - page_layout_root_id: 270 - page_layout_id: 348 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-24 23:40:52.000000000 Z - updated_at: 2014-07-24 23:40:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4063 - page_layout_root_id: 270 - page_layout_id: 348 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-24 23:40:52.000000000 Z - updated_at: 2014-07-24 23:40:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4064 - page_layout_root_id: 270 - page_layout_id: 348 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-24 23:40:52.000000000 Z - updated_at: 2014-07-24 23:40:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4065 - page_layout_root_id: 270 - page_layout_id: 349 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '0' - 85: clear:none - unset: - computed_pvalue: - created_at: 2014-07-24 23:41:13.000000000 Z - updated_at: 2014-07-26 13:32:27.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4066 - page_layout_root_id: 270 - page_layout_id: 349 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-07-24 23:41:13.000000000 Z - updated_at: 2014-07-26 13:31:49.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4067 - page_layout_root_id: 270 - page_layout_id: 349 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-24 23:41:13.000000000 Z - updated_at: 2014-07-24 23:41:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4068 - page_layout_root_id: 270 - page_layout_id: 349 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-24 23:41:13.000000000 Z - updated_at: 2014-07-24 23:41:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4069 - page_layout_root_id: 270 - page_layout_id: 349 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-24 23:41:13.000000000 Z - updated_at: 2014-07-24 23:41:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4070 - page_layout_root_id: 270 - page_layout_id: 350 - section_param_id: 160 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-25 13:58:55.000000000 Z - updated_at: 2014-07-25 13:58:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4071 - page_layout_root_id: 270 - page_layout_id: 350 - section_param_id: 161 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2014-07-25 13:58:55.000000000 Z - updated_at: 2014-07-26 01:33:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4072 - page_layout_root_id: 270 - page_layout_id: 350 - section_param_id: 162 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - 32: padding:8px 5px 8px 28px - unset: - computed_pvalue: - created_at: 2014-07-25 13:58:55.000000000 Z - updated_at: 2014-07-27 13:52:11.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4073 - page_layout_root_id: 270 - page_layout_id: 350 - section_param_id: 163 - theme_id: 5 - pvalue: - 3unset: '0' - 3: background-image:tiao.jpg - 2unset: '0' - 2: background-color:#F8F8F8 - unset: - computed_pvalue: - created_at: 2014-07-25 13:58:55.000000000 Z - updated_at: 2014-07-27 13:50:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4074 - page_layout_root_id: 270 - page_layout_id: 350 - section_param_id: 164 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-25 13:58:55.000000000 Z - updated_at: 2014-07-25 13:58:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4075 - page_layout_root_id: 270 - page_layout_id: 351 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-25 14:01:47.000000000 Z - updated_at: 2014-07-25 14:01:47.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4076 - page_layout_root_id: 270 - page_layout_id: 351 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-07-25 14:01:47.000000000 Z - updated_at: 2014-07-25 14:02:51.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4077 - page_layout_root_id: 270 - page_layout_id: 351 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-25 14:01:47.000000000 Z - updated_at: 2014-07-25 14:01:47.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4078 - page_layout_root_id: 270 - page_layout_id: 351 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-25 14:01:47.000000000 Z - updated_at: 2014-07-25 14:01:47.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4079 - page_layout_root_id: 270 - page_layout_id: 351 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-25 14:01:47.000000000 Z - updated_at: 2014-07-25 14:01:47.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4080 - page_layout_root_id: 270 - page_layout_id: 352 - section_param_id: 405 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 03:12:38.000000000 Z - updated_at: 2014-07-26 03:12:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4081 - page_layout_root_id: 270 - page_layout_id: 352 - section_param_id: 406 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: *98902910 - updated_at: 2014-07-26 03:12:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4082 - page_layout_root_id: 270 - page_layout_id: 352 - section_param_id: 407 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - 31: margin:auto auto 10px auto - unset: - computed_pvalue: - created_at: 2014-07-26 03:12:38.000000000 Z - updated_at: 2014-07-27 04:59:44.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: *98941530 -- !ruby/object:Spree::ParamValue - attributes: - id: 4084 - page_layout_root_id: 270 - page_layout_id: 352 - section_param_id: 409 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 03:12:38.000000000 Z - updated_at: 2014-07-26 03:12:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4085 - page_layout_root_id: 270 - page_layout_id: 353 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 04:58:58.000000000 Z - updated_at: 2014-07-26 04:58:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4086 - page_layout_root_id: 270 - page_layout_id: 353 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-07-26 04:58:58.000000000 Z - updated_at: 2014-07-26 05:15:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4087 - page_layout_root_id: 270 - page_layout_id: 353 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 7unset: '0' - 7: border-style:solid solid solid solid - 8unset: '0' - 8: border-width:1px 1px 1px 1px - 6unset: '0' - 6: ! 'border-color:#CDCBCB #CDCBCB #CDCBCB #CDCBCB' - 32unset: '1' - 32: padding:0px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2014-07-26 04:58:58.000000000 Z - updated_at: 2014-07-26 05:18:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4088 - page_layout_root_id: 270 - page_layout_id: 353 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 04:58:58.000000000 Z - updated_at: 2014-07-26 04:58:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4089 - page_layout_root_id: 270 - page_layout_id: 353 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 04:58:58.000000000 Z - updated_at: 2014-07-26 04:58:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4090 - page_layout_root_id: 270 - page_layout_id: 354 - section_param_id: 135 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 04:59:54.000000000 Z - updated_at: 2014-07-26 04:59:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4091 - page_layout_root_id: 270 - page_layout_id: 354 - section_param_id: 136 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2014-07-26 04:59:54.000000000 Z - updated_at: 2014-07-26 13:10:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4092 - page_layout_root_id: 270 - page_layout_id: 354 - section_param_id: 137 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - 32: padding:8px 5px 8px 28px - unset: - computed_pvalue: - created_at: 2014-07-26 04:59:54.000000000 Z - updated_at: 2014-07-27 13:55:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4093 - page_layout_root_id: 270 - page_layout_id: 354 - section_param_id: 138 - theme_id: 5 - pvalue: - 2unset: '1' - 2: background-color:#F8F8F8 - 3unset: '0' - 3: background-image:tiao.jpg - unset: - computed_pvalue: - created_at: 2014-07-26 04:59:54.000000000 Z - updated_at: 2014-07-27 13:56:07.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4094 - page_layout_root_id: 270 - page_layout_id: 354 - section_param_id: 139 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 04:59:54.000000000 Z - updated_at: 2014-07-26 04:59:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4095 - page_layout_root_id: 270 - page_layout_id: 355 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 13:01:44.000000000 Z - updated_at: 2014-07-26 13:01:44.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4096 - page_layout_root_id: 270 - page_layout_id: 355 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:40px - 15unset: '0' - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2014-07-26 13:01:44.000000000 Z - updated_at: 2014-07-27 13:43:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4097 - page_layout_root_id: 270 - page_layout_id: 355 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: *99299100 - 15unset: '0' - 15: height:40px - unset: - computed_pvalue: - created_at: 2014-07-26 13:01:45.000000000 Z - updated_at: 2014-07-27 13:43:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4098 - page_layout_root_id: 270 - page_layout_id: 355 - section_param_id: 9 - theme_id: 5 - pvalue: - 3unset: '0' - 3: background-image:nav_bg_40px.gif - 2unset: '1' - 2: background-color:black - unset: - computed_pvalue: - created_at: 2014-07-26 13:01:45.000000000 Z - updated_at: 2014-07-27 13:43:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4099 - page_layout_root_id: 270 - page_layout_id: 355 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 13:01:45.000000000 Z - updated_at: 2014-07-26 13:01:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4100 - page_layout_root_id: 270 - page_layout_id: 356 - section_param_id: 160 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 13:30:46.000000000 Z - updated_at: 2014-07-26 13:30:46.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4101 - page_layout_root_id: 270 - page_layout_id: 356 - section_param_id: 161 - theme_id: 5 - pvalue: - 21unset: '0' - 21: width:100% - unset: - computed_pvalue: - created_at: 2014-07-26 13:30:46.000000000 Z - updated_at: 2014-07-26 13:45:11.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4102 - page_layout_root_id: 270 - page_layout_id: 356 - section_param_id: 162 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - 32: padding:8px 5px 8px 28px - unset: - computed_pvalue: - created_at: 2014-07-26 13:30:46.000000000 Z - updated_at: 2014-07-27 13:55:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4103 - page_layout_root_id: 270 - page_layout_id: 356 - section_param_id: 163 - theme_id: 5 - pvalue: - 3unset: '0' - 3: background-image:tiao.jpg - unset: - computed_pvalue: - created_at: 2014-07-26 13:30:46.000000000 Z - updated_at: 2014-07-27 13:53:46.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4104 - page_layout_root_id: 270 - page_layout_id: 356 - section_param_id: 164 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 13:30:46.000000000 Z - updated_at: 2014-07-26 13:30:46.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4105 - page_layout_root_id: 270 - page_layout_id: 357 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '1' - 85: clear:none - unset: - computed_pvalue: - created_at: 2014-07-26 13:30:57.000000000 Z - updated_at: 2014-07-26 13:32:23.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4106 - page_layout_root_id: 270 - page_layout_id: 357 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-07-26 13:30:57.000000000 Z - updated_at: 2014-07-26 13:31:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4107 - page_layout_root_id: 270 - page_layout_id: 357 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-26 13:30:57.000000000 Z - updated_at: 2014-07-26 13:30:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4108 - page_layout_root_id: 270 - page_layout_id: 357 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 13:30:58.000000000 Z - updated_at: 2014-07-26 13:30:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4109 - page_layout_root_id: 270 - page_layout_id: 357 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 13:30:58.000000000 Z - updated_at: 2014-07-26 13:30:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4110 - page_layout_root_id: 270 - page_layout_id: 358 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 14:41:26.000000000 Z - updated_at: 2014-07-26 14:41:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4111 - page_layout_root_id: 270 - page_layout_id: 358 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:none - 101unset: '0' - 15: height:100px - 15unset: '1' - 21unset: '0' - 21: width:960px - unset: - computed_pvalue: - created_at: 2014-07-26 14:41:26.000000000 Z - updated_at: 2014-07-26 14:42:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4112 - page_layout_root_id: 270 - page_layout_id: 358 - section_param_id: 8 - theme_id: 5 - pvalue: - *97465510: '1' - 7unset: '1' - 7: border-style:solid none none none - 8unset: '1' - 8: border-width:4px 0px 0px 0px - 6unset: '1' - 6: border-color:#2D2D2F transparent transparent transparent - unset: - computed_pvalue: - created_at: 2014-07-26 14:41:26.000000000 Z - updated_at: 2014-07-26 14:44:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4113 - page_layout_root_id: 270 - page_layout_id: 358 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 14:41:26.000000000 Z - updated_at: 2014-07-26 14:41:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4114 - page_layout_root_id: 270 - page_layout_id: 358 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 14:41:26.000000000 Z - updated_at: 2014-07-26 14:41:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4115 - page_layout_root_id: 270 - page_layout_id: 359 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 02:08:02.000000000 Z - updated_at: 2014-07-27 02:08:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4116 - page_layout_root_id: 270 - page_layout_id: 359 - section_param_id: 7 - theme_id: 5 - pvalue: - 101: float:left - 101unset: '0' - 15: height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-07-27 02:08:02.000000000 Z - updated_at: 2014-07-27 02:08:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4117 - page_layout_root_id: 270 - page_layout_id: 359 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-27 02:08:02.000000000 Z - updated_at: 2014-07-27 02:08:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4118 - page_layout_root_id: 270 - page_layout_id: 359 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 02:08:02.000000000 Z - updated_at: 2014-07-27 02:08:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4119 - page_layout_root_id: 270 - page_layout_id: 359 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 02:08:02.000000000 Z - updated_at: 2014-07-27 02:08:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4120 - page_layout_root_id: 270 - page_layout_id: 278 - section_param_id: 410 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 03:20:52.000000000 Z - updated_at: 2014-07-27 03:20:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: *97641550 -- !ruby/object:Spree::ParamValue - attributes: - id: 4122 - page_layout_root_id: 270 - page_layout_id: 278 - section_param_id: 412 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - 32: padding:12px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2014-07-27 03:20:52.000000000 Z - updated_at: 2014-07-27 13:49:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4123 - page_layout_root_id: 270 - page_layout_id: 278 - section_param_id: 413 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 03:20:52.000000000 Z - updated_at: 2014-07-27 03:20:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4124 - page_layout_root_id: 270 - page_layout_id: 278 - section_param_id: 414 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 03:20:52.000000000 Z - updated_at: 2014-07-27 03:20:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4125 - page_layout_root_id: 270 - page_layout_id: 278 - section_param_id: 415 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 03:20:52.000000000 Z - updated_at: 2014-07-27 03:20:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4126 - page_layout_root_id: 270 - page_layout_id: 278 - section_param_id: 416 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 03:20:53.000000000 Z - updated_at: 2014-07-27 03:20:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4127 - page_layout_root_id: 270 - page_layout_id: 278 - section_param_id: 417 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 03:20:53.000000000 Z - updated_at: 2014-07-27 03:20:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4128 - page_layout_root_id: 270 - page_layout_id: 278 - section_param_id: 418 - theme_id: 5 - pvalue: - 49unset: '0' - 49: color:white - unset: - computed_pvalue: - created_at: 2014-07-27 03:20:53.000000000 Z - updated_at: 2014-07-27 03:22:29.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4129 - page_layout_root_id: 270 - page_layout_id: 278 - section_param_id: 419 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 03:20:53.000000000 Z - updated_at: 2014-07-27 03:20:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4134 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 420 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4141 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 421 - theme_id: 5 - pvalue: - 32unset: '1' - 32: padding:0px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-28 13:27:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4142 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 421 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4146 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 422 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4151 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 423 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4158 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 424 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4159 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 424 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4163 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 425 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4168 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 426 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4175 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 427 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4176 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 427 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: *97143870 - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4180 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 428 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4185 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 429 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4192 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 430 - theme_id: 5 - pvalue: - 32unset: '0' - 32: padding:5px 0px 0px 15px - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-28 13:41:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4193 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 430 - theme_id: 5 - pvalue: - 32unset: '0' - 32: padding:5px 0px 0px 15px - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-28 13:42:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4197 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 431 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4202 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 432 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4209 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 433 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4210 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 433 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4214 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 434 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4219 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 435 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4226 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 436 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4227 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 436 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4231 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 437 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4236 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 438 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4243 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 439 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4244 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 439 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4248 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 440 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4253 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 441 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4260 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 442 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4261 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 442 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4265 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 443 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4270 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 444 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4277 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 445 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4278 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 445 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4282 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 446 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4290 - page_layout_root_id: 270 - page_layout_id: 361 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 05:07:38.000000000 Z - updated_at: 2014-07-27 05:07:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4291 - page_layout_root_id: 270 - page_layout_id: 361 - section_param_id: 7 - theme_id: 5 - pvalue: *95970820 - unset: - computed_pvalue: - created_at: 2014-07-27 05:07:38.000000000 Z - updated_at: 2014-07-27 06:00:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4292 - page_layout_root_id: 270 - page_layout_id: 361 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 15unset: '0' - 15: height:190px - 31unset: '0' - 31: margin:auto auto 10px auto - unset: - computed_pvalue: - created_at: 2014-07-27 05:07:39.000000000 Z - updated_at: 2014-07-27 06:01:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4293 - page_layout_root_id: 270 - page_layout_id: 361 - section_param_id: 9 - theme_id: 5 - pvalue: - 3unset: '0' - 3: background-image:howbuy.jpg - 4unset: '0' - 4: background-position:center center - unset: - computed_pvalue: - created_at: 2014-07-27 05:07:39.000000000 Z - updated_at: 2014-07-27 06:02:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4294 - page_layout_root_id: 270 - page_layout_id: 361 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 05:07:39.000000000 Z - updated_at: 2014-07-27 05:07:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4295 - page_layout_root_id: 270 - page_layout_id: 362 - section_param_id: 50 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 05:11:43.000000000 Z - updated_at: 2014-07-27 05:11:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4296 - page_layout_root_id: 270 - page_layout_id: 362 - section_param_id: 51 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 05:11:43.000000000 Z - updated_at: 2014-07-27 05:11:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4297 - page_layout_root_id: 270 - page_layout_id: 362 - section_param_id: 52 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-27 05:11:43.000000000 Z - updated_at: 2014-07-27 05:11:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4298 - page_layout_root_id: 270 - page_layout_id: 362 - section_param_id: 53 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 05:11:43.000000000 Z - updated_at: 2014-07-27 05:11:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4299 - page_layout_root_id: 270 - page_layout_id: 362 - section_param_id: 54 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 05:11:43.000000000 Z - updated_at: 2014-07-27 05:11:43.000000000 Z -:page_layouts: -- !ruby/object:Spree::PageLayout - attributes: - id: 270 - site_id: 2 - root_id: 270 - parent_id: - lft: 1 - rgt: 174 - title: root - slug: root--3 - section_id: 75 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: true - created_at: 2014-07-02 13:33:57.000000000 Z - updated_at: 2014-07-12 06:27:38.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 271 - site_id: 2 - root_id: 270 - parent_id: 270 - lft: 2 - rgt: 11 - title: Header - slug: header--3 - section_id: 2 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:57.000000000 Z - updated_at: 2014-07-22 15:16:20.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 272 - site_id: 2 - root_id: 270 - parent_id: 271 - lft: 3 - rgt: 10 - title: container - slug: container--30 - section_id: 2 - section_instance: 20 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:38.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 273 - site_id: 2 - root_id: 270 - parent_id: 272 - lft: 4 - rgt: 5 - title: Logo - slug: logo--3 - section_id: 97 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 274 - site_id: 2 - root_id: 270 - parent_id: 272 - lft: 6 - rgt: 9 - title: container - slug: container--31 - section_id: 2 - section_instance: 21 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:38.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 275 - site_id: 2 - root_id: 270 - parent_id: 274 - lft: 7 - rgt: 8 - title: logged&unlogged menu - slug: logged-unlogged-menu--3 - section_id: 101 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:38.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 355 - site_id: 2 - root_id: 270 - parent_id: 270 - lft: 12 - rgt: 19 - title: container37 - slug: container37--2 - section_id: 2 - section_instance: 37 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-26 13:01:44.000000000 Z - updated_at: 2014-07-26 13:01:44.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 276 - site_id: 2 - root_id: 270 - parent_id: 355 - lft: 13 - rgt: 18 - title: container - slug: container--32 - section_id: 2 - section_instance: 19 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:38.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 277 - site_id: 2 - root_id: 270 - parent_id: 276 - lft: 14 - rgt: 15 - title: Main menu - slug: main-menu--3 - section_id: 3 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: *97873860 -- !ruby/object:Spree::PageLayout - attributes: - id: 333 - site_id: 2 - root_id: 270 - parent_id: 270 - lft: 20 - rgt: 23 - title: container - slug: container--42 - section_id: 2 - section_instance: 26 - section_context: home - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-12 04:07:02.000000000 Z - updated_at: 2014-07-22 14:22:01.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 332 - site_id: 2 - root_id: 270 - parent_id: 333 - lft: 21 - rgt: 22 - title: Slider - slug: slider - section_id: 114 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-09 13:01:29.000000000 Z - updated_at: 2014-07-12 06:27:40.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 361 - site_id: 2 - root_id: 270 - parent_id: 270 - lft: 24 - rgt: 27 - title: container41 - slug: container41 - section_id: 2 - section_instance: 41 - section_context: list,detail - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-27 05:07:38.000000000 Z - updated_at: 2014-07-27 14:20:43.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 362 - site_id: 2 - root_id: 270 - parent_id: 361 - lft: 25 - rgt: 26 - title: text3 - slug: text3--2 - section_id: 11 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-27 05:11:43.000000000 Z - updated_at: 2014-07-27 05:11:43.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 279 - site_id: 2 - root_id: 270 - parent_id: 270 - lft: 28 - rgt: 165 - title: content - slug: content--3 - section_id: 2 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 339 - site_id: 2 - root_id: 270 - parent_id: 279 - lft: 29 - rgt: 62 - title: container31 - slug: container31 - section_id: 2 - section_instance: 31 - section_context: home - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-17 00:19:17.000000000 Z - updated_at: 2014-07-26 14:40:12.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 340 - site_id: 2 - root_id: 270 - parent_id: 339 - lft: 30 - rgt: 51 - title: leftside - slug: leftside - section_id: 2 - section_instance: 32 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-17 00:26:45.000000000 Z - updated_at: 2014-07-17 00:27:28.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 342 - site_id: 2 - root_id: 270 - parent_id: 340 - lft: 31 - rgt: 40 - title: suits - slug: suits - section_id: 2 - section_instance: 31 - section_context: '' - data_source: taxon - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-17 00:28:52.000000000 Z - updated_at: 2014-07-25 12:45:06.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 350 - site_id: 2 - root_id: 270 - parent_id: 342 - lft: 32 - rgt: 33 - title: taxon name2 - slug: taxon-name2 - section_id: 50 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-25 13:58:55.000000000 Z - updated_at: 2014-07-25 13:58:55.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 351 - site_id: 2 - root_id: 270 - parent_id: 342 - lft: 34 - rgt: 39 - title: container36 - slug: container36 - section_id: 2 - section_instance: 36 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-25 14:01:47.000000000 Z - updated_at: 2014-07-25 14:01:47.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 348 - site_id: 2 - root_id: 270 - parent_id: 351 - lft: 35 - rgt: 38 - title: container34 - slug: container34 - section_id: 2 - section_instance: 34 - section_context: '' - data_source: gpvs - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-24 23:40:52.000000000 Z - updated_at: 2014-07-24 23:43:30.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 344 - site_id: 2 - root_id: 270 - parent_id: 348 - lft: 36 - rgt: 37 - title: product image2 - slug: product-image2 - section_id: 17 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-17 09:10:10.000000000 Z - updated_at: 2014-07-17 09:10:10.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 343 - site_id: 2 - root_id: 270 - parent_id: 340 - lft: 41 - rgt: 50 - title: fabrics - slug: fabrics - section_id: 2 - section_instance: 32 - section_context: '' - data_source: taxon - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-17 00:29:02.000000000 Z - updated_at: 2014-07-25 12:48:48.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 356 - site_id: 2 - root_id: 270 - parent_id: 343 - lft: 42 - rgt: 43 - title: taxon name3 - slug: taxon-name3 - section_id: 50 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-26 13:30:46.000000000 Z - updated_at: 2014-07-26 13:30:46.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 357 - site_id: 2 - root_id: 270 - parent_id: 343 - lft: 44 - rgt: 49 - title: container38 - slug: container38 - section_id: 2 - section_instance: 38 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-26 13:30:57.000000000 Z - updated_at: 2014-07-26 13:30:57.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 349 - site_id: 2 - root_id: 270 - parent_id: 357 - lft: 45 - rgt: 48 - title: container35 - slug: container35 - section_id: 2 - section_instance: 35 - section_context: '' - data_source: gpvs - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-24 23:41:13.000000000 Z - updated_at: 2014-07-24 23:43:38.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 345 - site_id: 2 - root_id: 270 - parent_id: 349 - lft: 46 - rgt: 47 - title: product image3 - slug: product-image3 - section_id: 17 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-17 09:13:54.000000000 Z - updated_at: 2014-07-17 09:13:54.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 341 - site_id: 2 - root_id: 270 - parent_id: 339 - lft: 52 - rgt: 61 - title: rightside - slug: rightside - section_id: 2 - section_instance: 33 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-17 00:26:54.000000000 Z - updated_at: 2014-07-17 00:27:40.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 353 - site_id: 2 - root_id: 270 - parent_id: 341 - lft: 53 - rgt: 60 - title: container37 - slug: container37 - section_id: 2 - section_instance: 37 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-26 04:58:58.000000000 Z - updated_at: 2014-07-26 04:58:58.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 354 - site_id: 2 - root_id: 270 - parent_id: 353 - lft: 54 - rgt: 55 - title: taxonomy name3 - slug: taxonomy-name3 - section_id: 40 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-26 04:59:54.000000000 Z - updated_at: 2014-07-26 04:59:54.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 346 - site_id: 2 - root_id: 270 - parent_id: 353 - lft: 56 - rgt: 59 - title: container33 - slug: container33 - section_id: 2 - section_instance: 33 - section_context: '' - data_source: taxon - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-17 09:14:54.000000000 Z - updated_at: 2014-07-26 03:15:19.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 352 - site_id: 2 - root_id: 270 - parent_id: 346 - lft: 57 - rgt: 58 - title: Taxon icon1 - slug: taxon-icon1 - section_id: 119 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-26 03:12:37.000000000 Z - updated_at: 2014-07-26 03:12:37.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 280 - site_id: 2 - root_id: 270 - parent_id: 279 - lft: 63 - rgt: 76 - title: lftnav - slug: lftnav--3 - section_id: 2 - section_instance: 4 - section_context: list,detail - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-27 02:04:37.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 281 - site_id: 2 - root_id: 270 - parent_id: 280 - lft: 64 - rgt: 69 - title: container - slug: container--33 - section_id: 2 - section_instance: 12 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:38.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 282 - site_id: 2 - root_id: 270 - parent_id: 281 - lft: 65 - rgt: 66 - title: taxonomy name - slug: taxonomy-name--5 - section_id: 40 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:38.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 283 - site_id: 2 - root_id: 270 - parent_id: 281 - lft: 67 - rgt: 68 - title: vmenu - slug: vmenu--5 - section_id: 6 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:38.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 284 - site_id: 2 - root_id: 270 - parent_id: 280 - lft: 70 - rgt: 75 - title: container - slug: container--34 - section_id: 2 - section_instance: 13 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:38.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 285 - site_id: 2 - root_id: 270 - parent_id: 284 - lft: 71 - rgt: 72 - title: taxonomy name - slug: taxonomy-name--6 - section_id: 40 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:38.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 286 - site_id: 2 - root_id: 270 - parent_id: 284 - lft: 73 - rgt: 74 - title: vmenu - slug: vmenu--6 - section_id: 6 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:38.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 287 - site_id: 2 - root_id: 270 - parent_id: 279 - lft: 77 - rgt: 162 - title: main content - slug: main-content--3 - section_id: 2 - section_instance: 5 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 288 - site_id: 2 - root_id: 270 - parent_id: 287 - lft: 78 - rgt: 87 - title: product list - slug: product-list--3 - section_id: 2 - section_instance: 6 - section_context: list - data_source: gpvs - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 289 - site_id: 2 - root_id: 270 - parent_id: 288 - lft: 79 - rgt: 86 - title: container - slug: container--35 - section_id: 2 - section_instance: 8 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 290 - site_id: 2 - root_id: 270 - parent_id: 289 - lft: 80 - rgt: 81 - title: product image - slug: product-image--3 - section_id: 17 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 291 - site_id: 2 - root_id: 270 - parent_id: 289 - lft: 82 - rgt: 83 - title: product name - slug: product-name--5 - section_id: 13 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 292 - site_id: 2 - root_id: 270 - parent_id: 289 - lft: 84 - rgt: 85 - title: product price - slug: product-price--5 - section_id: 30 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 293 - site_id: 2 - root_id: 270 - parent_id: 287 - lft: 88 - rgt: 117 - title: product detail - slug: product-detail--3 - section_id: 2 - section_instance: 7 - section_context: detail - data_source: this_product - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 294 - site_id: 2 - root_id: 270 - parent_id: 293 - lft: 89 - rgt: 94 - title: container - slug: container--36 - section_id: 2 - section_instance: 10 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 295 - site_id: 2 - root_id: 270 - parent_id: 294 - lft: 90 - rgt: 91 - title: image with thumbnails - slug: image-with-thumbnails--3 - section_id: 94 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 296 - site_id: 2 - root_id: 270 - parent_id: 294 - lft: 92 - rgt: 93 - title: product_properties - slug: product_properties--3 - section_id: 28 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 297 - site_id: 2 - root_id: 270 - parent_id: 293 - lft: 95 - rgt: 112 - title: container - slug: container--37 - section_id: 2 - section_instance: 9 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 298 - site_id: 2 - root_id: 270 - parent_id: 297 - lft: 96 - rgt: 97 - title: product name - slug: product-name--6 - section_id: 13 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 300 - site_id: 2 - root_id: 270 - parent_id: 297 - lft: 98 - rgt: 111 - title: container - slug: container--38 - section_id: 2 - section_instance: 11 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 301 - site_id: 2 - root_id: 270 - parent_id: 300 - lft: 99 - rgt: 100 - title: Product option values - slug: product-option-values--3 - section_id: 107 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 302 - site_id: 2 - root_id: 270 - parent_id: 300 - lft: 101 - rgt: 110 - title: container - slug: container--39 - section_id: 2 - section_instance: 25 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 303 - site_id: 2 - root_id: 270 - parent_id: 302 - lft: 102 - rgt: 103 - title: product price - slug: product-price--6 - section_id: 30 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 304 - site_id: 2 - root_id: 270 - parent_id: 302 - lft: 104 - rgt: 109 - title: container - slug: container--40 - section_id: 2 - section_instance: 24 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 305 - site_id: 2 - root_id: 270 - parent_id: 304 - lft: 105 - rgt: 106 - title: product quantity - slug: product-quantity--3 - section_id: 32 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 306 - site_id: 2 - root_id: 270 - parent_id: 304 - lft: 107 - rgt: 108 - title: product atc - slug: product-atc--3 - section_id: 34 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 359 - site_id: 2 - root_id: 270 - parent_id: 293 - lft: 113 - rgt: 116 - title: container40 - slug: container40 - section_id: 2 - section_instance: 40 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-27 02:08:02.000000000 Z - updated_at: 2014-07-27 02:08:02.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 299 - site_id: 2 - root_id: 270 - parent_id: 359 - lft: 114 - rgt: 115 - title: product description - slug: product-description--3 - section_id: 15 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 307 - site_id: 2 - root_id: 270 - parent_id: 287 - lft: 118 - rgt: 161 - title: other pages - slug: other-pages--3 - section_id: 2 - section_instance: 14 - section_context: cart,checkout,thanks,account,signup,login,password - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 308 - site_id: 2 - root_id: 270 - parent_id: 307 - lft: 119 - rgt: 120 - title: taxon name - slug: taxon-name--3 - section_id: 50 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 309 - site_id: 2 - root_id: 270 - parent_id: 307 - lft: 121 - rgt: 126 - title: cart - slug: cart--3 - section_id: 36 - section_instance: 1 - section_context: cart - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 310 - site_id: 2 - root_id: 270 - parent_id: 309 - lft: 122 - rgt: 123 - title: cart items - slug: cart-items--3 - section_id: 42 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 311 - site_id: 2 - root_id: 270 - parent_id: 309 - lft: 124 - rgt: 125 - title: order total price - slug: order-total-price--3 - section_id: 44 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 312 - site_id: 2 - root_id: 270 - parent_id: 307 - lft: 127 - rgt: 132 - title: checkout - slug: checkout--3 - section_id: 46 - section_instance: 2 - section_context: checkout - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 313 - site_id: 2 - root_id: 270 - parent_id: 312 - lft: 128 - rgt: 129 - title: ship form - slug: ship-form--3 - section_id: 69 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 314 - site_id: 2 - root_id: 270 - parent_id: 312 - lft: 130 - rgt: 131 - title: payment form - slug: payment-form--3 - section_id: 72 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 315 - site_id: 2 - root_id: 270 - parent_id: 307 - lft: 133 - rgt: 142 - title: thanks - slug: thanks--3 - section_id: 2 - section_instance: 18 - section_context: thanks - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 316 - site_id: 2 - root_id: 270 - parent_id: 315 - lft: 134 - rgt: 139 - title: container - slug: container--41 - section_id: 2 - section_instance: 23 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 317 - site_id: 2 - root_id: 270 - parent_id: 316 - lft: 135 - rgt: 136 - title: order address - slug: order-address--3 - section_id: 52 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 318 - site_id: 2 - root_id: 270 - parent_id: 316 - lft: 137 - rgt: 138 - title: order payment - slug: order-payment--3 - section_id: 55 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 319 - site_id: 2 - root_id: 270 - parent_id: 315 - lft: 140 - rgt: 141 - title: order items - slug: order-items--3 - section_id: 58 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 320 - site_id: 2 - root_id: 270 - parent_id: 307 - lft: 143 - rgt: 148 - title: account - slug: account--3 - section_id: 2 - section_instance: 17 - section_context: account - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 321 - site_id: 2 - root_id: 270 - parent_id: 320 - lft: 144 - rgt: 145 - title: profile - slug: profile--3 - section_id: 85 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: *101568800 - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 322 - site_id: 2 - root_id: 270 - parent_id: 320 - lft: 146 - rgt: 147 - title: order list - slug: order-list--3 - section_id: 82 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 323 - site_id: 2 - root_id: 270 - parent_id: 307 - lft: 149 - rgt: 152 - title: login - slug: login--3 - section_id: 2 - section_instance: 15 - section_context: login - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-02 13:33:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 324 - site_id: 2 - root_id: 270 - parent_id: 323 - lft: 150 - rgt: 151 - title: login form - slug: login-form--3 - section_id: 61 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 325 - site_id: 2 - root_id: 270 - parent_id: 307 - lft: 153 - rgt: 156 - title: signup - slug: signup--3 - section_id: 2 - section_instance: 16 - section_context: signup - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-02 13:33:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 326 - site_id: 2 - root_id: 270 - parent_id: 325 - lft: 154 - rgt: 155 - title: sign up form - slug: sign-up-form--3 - section_id: 64 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 327 - site_id: 2 - root_id: 270 - parent_id: 307 - lft: 157 - rgt: 160 - title: password - slug: password--3 - section_id: 2 - section_instance: 22 - section_context: password - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-02 13:33:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 328 - site_id: 2 - root_id: 270 - parent_id: 327 - lft: 158 - rgt: 159 - title: password recover form - slug: password-recover-form--3 - section_id: 104 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 347 - site_id: 2 - root_id: 270 - parent_id: 279 - lft: 163 - rgt: 164 - title: text3 - slug: text3 - section_id: 11 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-17 09:15:31.000000000 Z - updated_at: 2014-07-17 09:15:31.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 329 - site_id: 2 - root_id: 270 - parent_id: 270 - lft: 166 - rgt: 171 - title: footer - slug: footer--3 - section_id: 2 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-02 13:33:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 358 - site_id: 2 - root_id: 270 - parent_id: 329 - lft: 167 - rgt: 170 - title: container39 - slug: container39 - section_id: 2 - section_instance: 39 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-26 14:41:26.000000000 Z - updated_at: 2014-07-26 14:41:26.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 330 - site_id: 2 - root_id: 270 - parent_id: 358 - lft: 168 - rgt: 169 - title: copyright - slug: copyright--3 - section_id: 11 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-02 13:33:59.000000000 Z -- !ruby/object:Spree::PageLayout - attributes: - id: 331 - site_id: 2 - root_id: 270 - parent_id: 270 - lft: 172 - rgt: 173 - title: dialog - slug: dialog--3 - section_id: 90 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z -:template_files: -- !ruby/object:Spree::TemplateFile - attributes: - id: 18 - theme_id: 5 - attachment_width: - attachment_height: - attachment_file_size: 16469 - attachment_content_type: image/jpeg - attachment_file_name: 6a5e31b1jw1doccdf5tdqj.jpg - attachment_updated_at: 2014-07-09 12:28:20.000000000 Z - created_at: 2014-07-09 12:28:20.000000000 Z -- !ruby/object:Spree::TemplateFile - attributes: - id: 19 - theme_id: 5 - attachment_width: - attachment_height: - attachment_file_size: 6834 - attachment_content_type: image/jpeg - attachment_file_name: ushan-logo.jpg - attachment_updated_at: 2014-07-09 12:50:23.000000000 Z - created_at: 2014-07-09 12:50:23.000000000 Z -- !ruby/object:Spree::TemplateFile - attributes: - id: 20 - theme_id: 5 - attachment_width: - attachment_height: - attachment_file_size: 1340 - attachment_content_type: image/gif - attachment_file_name: title_bg.gif - attachment_updated_at: 2014-07-26 01:36:57.000000000 Z - created_at: 2014-07-26 01:36:57.000000000 Z -- !ruby/object:Spree::TemplateFile - attributes: - id: 21 - theme_id: 5 - attachment_width: - attachment_height: - attachment_file_size: 59008 - attachment_content_type: image/jpeg - attachment_file_name: howbuy.jpg - attachment_updated_at: 2014-07-27 05:59:59.000000000 Z - created_at: 2014-07-27 05:59:59.000000000 Z -- !ruby/object:Spree::TemplateFile - attributes: - id: 22 - theme_id: 5 - attachment_width: - attachment_height: - attachment_file_size: 255 - attachment_content_type: image/gif - attachment_file_name: nav_bg_40px.gif - attachment_updated_at: 2014-07-27 13:43:43.000000000 Z - created_at: 2014-07-27 13:43:43.000000000 Z -- !ruby/object:Spree::TemplateFile - attributes: - id: 23 - theme_id: 5 - attachment_width: - attachment_height: - attachment_file_size: 452 - attachment_content_type: image/gif - attachment_file_name: tab_on_1px.gif - attachment_updated_at: 2014-07-27 13:45:16.000000000 Z - created_at: 2014-07-27 13:45:16.000000000 Z -- !ruby/object:Spree::TemplateFile - attributes: - id: 24 - theme_id: 5 - attachment_width: - attachment_height: - attachment_file_size: 19840 - attachment_content_type: image/jpeg - attachment_file_name: tiao.jpg - attachment_updated_at: 2014-07-27 13:50:26.000000000 Z - created_at: 2014-07-27 13:50:26.000000000 Z -- !ruby/object:Spree::TemplateFile - attributes: - id: 25 - theme_id: 5 - attachment_width: - attachment_height: - attachment_file_size: 519 - attachment_content_type: image/gif - attachment_file_name: nav_not.gif - attachment_updated_at: 2014-07-28 14:08:34.000000000 Z - created_at: 2014-07-28 14:08:34.000000000 Z -:template_releases: -- !ruby/object:Spree::TemplateRelease - attributes: - id: 7 - name: just a test - theme_id: 5 - created_at: 2014-07-26 08:14:33.000000000 Z - updated_at: 2014-07-26 08:14:33.000000000 Z diff --git a/spree_theme/db/themes/designs/2_5_1406819373/6a5e31b1jw1doccdf5tdqj.jpg b/spree_theme/db/themes/designs/2_5_1406819373/6a5e31b1jw1doccdf5tdqj.jpg deleted file mode 100644 index 7fff0f08..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1406819373/6a5e31b1jw1doccdf5tdqj.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1406819373/howbuy.jpg b/spree_theme/db/themes/designs/2_5_1406819373/howbuy.jpg deleted file mode 100644 index bfeaca08..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1406819373/howbuy.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1406819373/nav_bg_40px.gif b/spree_theme/db/themes/designs/2_5_1406819373/nav_bg_40px.gif deleted file mode 100644 index c0bffae4..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1406819373/nav_bg_40px.gif and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1406819373/nav_not.gif b/spree_theme/db/themes/designs/2_5_1406819373/nav_not.gif deleted file mode 100644 index c69d645d..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1406819373/nav_not.gif and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1406819373/tab_on_1px.gif b/spree_theme/db/themes/designs/2_5_1406819373/tab_on_1px.gif deleted file mode 100644 index 5e4e066e..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1406819373/tab_on_1px.gif and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1406819373/tiao.jpg b/spree_theme/db/themes/designs/2_5_1406819373/tiao.jpg deleted file mode 100644 index 203d1408..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1406819373/tiao.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1406819373/title_bg.gif b/spree_theme/db/themes/designs/2_5_1406819373/title_bg.gif deleted file mode 100644 index 26c8046b..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1406819373/title_bg.gif and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1406819373/ushan-logo.jpg b/spree_theme/db/themes/designs/2_5_1406819373/ushan-logo.jpg deleted file mode 100644 index 9455e3de..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1406819373/ushan-logo.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1406820030.yml b/spree_theme/db/themes/designs/2_5_1406820030.yml deleted file mode 100644 index ede55aca..00000000 --- a/spree_theme/db/themes/designs/2_5_1406820030.yml +++ /dev/null @@ -1 +0,0 @@ -{"template":{"assigned_resource_ids":{"273":{"spree/template_file":[19]},"275":{"spree/taxon":[0,0]},"277":{"spree/taxon":[36]},"281":{"spree/taxon":[61]},"284":{"spree/taxon":[71]},"332":{"spree/taxon":[47]},"335":{"spree/template_text":[5]},"343":{"spree/specific_taxon":[0],"spree/taxon":[53]},"342":{"spree/specific_taxon":[0],"spree/taxon":[52]},"347":{"spree/template_text":[6]},"346":{"spree/taxon":[0]},"353":{"spree/taxon":[54]},"330":{"spree/template_text":[7]},"362":{"spree/template_text":[8]}},"created_at":"2014-06-28T10:16:01.000Z","id":5,"page_layout_root_id":270,"release_id":7,"site_id":2,"slug":"","title":"\u670d\u88c5\u5b9a\u5236","updated_at":"2014-07-31T14:21:29.000Z"},"param_values":[{"computed_pvalue":null,"created_at":"2013-04-08T13:27:02.000Z","id":3532,"page_layout_id":271,"page_layout_root_id":270,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:33.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:02.000Z","id":3533,"page_layout_id":271,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"1","101":"float:none","101unset":"0","21unset":"0","21":"width:960px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:33.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:03.000Z","id":3534,"page_layout_id":271,"page_layout_root_id":270,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto auto auto"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:33.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:03.000Z","id":3535,"page_layout_id":271,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:33.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:03.000Z","id":3536,"page_layout_id":271,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:33.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:04.000Z","id":3537,"page_layout_id":279,"page_layout_root_id":270,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:33.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:04.000Z","id":3538,"page_layout_id":279,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"1","101":"float:none","101unset":"0","21unset":"0","21":"width:960px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:33.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:04.000Z","id":3539,"page_layout_id":279,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:33.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:04.000Z","id":3540,"page_layout_id":279,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0","2unset":"1","2":"background-color:yellow"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:33.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:04.000Z","id":3541,"page_layout_id":279,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:33.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:05.000Z","id":3542,"page_layout_id":329,"page_layout_root_id":270,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:33.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:05.000Z","id":3543,"page_layout_id":329,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:33.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:05.000Z","id":3544,"page_layout_id":329,"page_layout_root_id":270,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:solid none none none","8unset":"0","8":"border-width:4px 0px 0px 0px","6unset":"0","6":"border-color:#2D2D2F transparent transparent transparent"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:33.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:05.000Z","id":3545,"page_layout_id":329,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0","2unset":"0","2":"background-color:#F5F5F5"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:33.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:05.000Z","id":3546,"page_layout_id":329,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:33.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:05.000Z","id":3547,"page_layout_id":280,"page_layout_root_id":270,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:33.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:05.000Z","id":3548,"page_layout_id":280,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:200px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:33.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:05.000Z","id":3549,"page_layout_id":280,"page_layout_root_id":270,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto 5px auto auto","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#CDCBCB #CDCBCB #CDCBCB #CDCBCB","32unset":"0","32":"padding:10px 10px 10px 10px"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:33.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:05.000Z","id":3550,"page_layout_id":280,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0","2unset":"1","2":"background-color:#FFF8ED"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:33.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:06.000Z","id":3551,"page_layout_id":280,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0","49unset":"1","49":"color:black"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:33.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:06.000Z","id":3552,"page_layout_id":287,"page_layout_root_id":270,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:06.000Z","id":3553,"page_layout_id":287,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:750px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:06.000Z","id":3554,"page_layout_id":287,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:06.000Z","id":3555,"page_layout_id":287,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:06.000Z","id":3556,"page_layout_id":287,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:07.000Z","id":3557,"page_layout_id":288,"page_layout_root_id":270,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:07.000Z","id":3558,"page_layout_id":288,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"1","21":"width:100%"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:07.000Z","id":3559,"page_layout_id":288,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:07.000Z","id":3560,"page_layout_id":288,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:07.000Z","id":3561,"page_layout_id":288,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:07.000Z","id":3562,"page_layout_id":293,"page_layout_root_id":270,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:08.000Z","id":3563,"page_layout_id":293,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"1","21":"width:200px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:08.000Z","id":3564,"page_layout_id":293,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:08.000Z","id":3565,"page_layout_id":293,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:08.000Z","id":3566,"page_layout_id":293,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:08.000Z","id":3567,"page_layout_id":290,"page_layout_root_id":270,"pvalue":{},"section_param_id":65,"theme_id":5,"unset":null,"updated_at":"2013-04-08T13:27:08.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:09.000Z","id":3568,"page_layout_id":290,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111","15unset":"0","15":"height:110px","21unset":"0","21":"width:150px"},"section_param_id":66,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:09.000Z","id":3569,"page_layout_id":290,"page_layout_root_id":270,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB","32unset":"0","32":"padding:5px 0px 5px 0px","15unset":"0","15":"height:98px"},"section_param_id":67,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:09.000Z","id":3570,"page_layout_id":290,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":68,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:09.000Z","id":3571,"page_layout_id":290,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111","53unset":"0","53":"text-align:center"},"section_param_id":69,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:10.000Z","id":3572,"page_layout_id":299,"page_layout_root_id":270,"pvalue":{},"section_param_id":60,"theme_id":5,"unset":null,"updated_at":"2013-04-08T13:27:10.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:10.000Z","id":3573,"page_layout_id":299,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":61,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:10.000Z","id":3574,"page_layout_id":299,"page_layout_root_id":270,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:10px 0px 10px 0px"},"section_param_id":62,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:10.000Z","id":3575,"page_layout_id":299,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":63,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:10.000Z","id":3576,"page_layout_id":299,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111","24unset":"0","24":"font-size:90%"},"section_param_id":64,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:11.000Z","id":3577,"page_layout_id":330,"page_layout_root_id":270,"pvalue":{},"section_param_id":50,"theme_id":5,"unset":null,"updated_at":"2013-04-08T13:27:11.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:11.000Z","id":3578,"page_layout_id":330,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111","21unset":"0","21":"width:100%"},"section_param_id":51,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:11.000Z","id":3579,"page_layout_id":330,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":52,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:11.000Z","id":3580,"page_layout_id":330,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":53,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T13:27:11.000Z","id":3581,"page_layout_id":330,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":54,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T14:05:42.000Z","id":3582,"page_layout_id":289,"page_layout_root_id":270,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:both"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T14:05:42.000Z","id":3583,"page_layout_id":289,"page_layout_root_id":270,"pvalue":{"15":"height:160px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:160px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T14:05:42.000Z","id":3584,"page_layout_id":289,"page_layout_root_id":270,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 20px auto","15unset":"1","15":"height:140px","32unset":"1","32":"padding:0px 0px 0px 0px","8unset":"1","8":"border-width:0px 0px 0px 0px"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T14:05:42.000Z","id":3585,"page_layout_id":289,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-08T14:05:42.000Z","id":3586,"page_layout_id":289,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-09T13:12:32.000Z","id":3587,"page_layout_id":297,"page_layout_root_id":270,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-09T13:12:32.000Z","id":3588,"page_layout_id":297,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:350px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-09T13:12:32.000Z","id":3589,"page_layout_id":297,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-09T13:12:32.000Z","id":3590,"page_layout_id":297,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-09T13:12:32.000Z","id":3591,"page_layout_id":297,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:34.000Z"},{"computed_pvalue":null,"created_at":"2013-04-12T13:44:05.000Z","id":3592,"page_layout_id":294,"page_layout_root_id":270,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-04-12T13:44:05.000Z","id":3593,"page_layout_id":294,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-04-12T13:44:05.000Z","id":3594,"page_layout_id":294,"page_layout_root_id":270,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto 10px auto auto"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-04-12T13:44:05.000Z","id":3595,"page_layout_id":294,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-04-12T13:44:05.000Z","id":3596,"page_layout_id":294,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-04-13T01:32:40.000Z","id":3597,"page_layout_id":303,"page_layout_root_id":270,"pvalue":{},"section_param_id":110,"theme_id":5,"unset":null,"updated_at":"2014-07-30T23:08:26.000Z"},{"computed_pvalue":null,"created_at":"2013-04-13T01:32:40.000Z","id":3598,"page_layout_id":303,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":111,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-04-13T01:32:40.000Z","id":3599,"page_layout_id":303,"page_layout_root_id":270,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:10px auto 20px auto"},"section_param_id":112,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-04-13T01:32:40.000Z","id":3600,"page_layout_id":303,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":113,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-04-13T01:32:40.000Z","id":3601,"page_layout_id":303,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111","27unset":"0","27":"font-weight:bolder","24unset":"0","24":"font-size:110%","49unset":"0","49":"color:#00ADEE"},"section_param_id":114,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-04-13T02:35:25.000Z","id":3602,"page_layout_id":300,"page_layout_root_id":270,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:both"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-04-13T02:35:25.000Z","id":3603,"page_layout_id":300,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"1","21unset":"0","21":"width:450px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-04-13T02:35:25.000Z","id":3604,"page_layout_id":300,"page_layout_root_id":270,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:40px auto auto auto"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-04-13T02:35:25.000Z","id":3605,"page_layout_id":300,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-04-13T02:35:26.000Z","id":3606,"page_layout_id":300,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-04-16T14:20:10.000Z","id":3607,"page_layout_id":309,"page_layout_root_id":270,"pvalue":{},"section_param_id":125,"theme_id":5,"unset":null,"updated_at":"2013-04-16T14:20:10.000Z"},{"computed_pvalue":null,"created_at":"2013-04-16T14:20:10.000Z","id":3608,"page_layout_id":309,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111","21unset":"1","21":"width:670px"},"section_param_id":126,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-04-16T14:20:10.000Z","id":3609,"page_layout_id":309,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":127,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-04-16T14:20:10.000Z","id":3610,"page_layout_id":309,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":128,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-04-16T14:20:10.000Z","id":3611,"page_layout_id":309,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111","53unset":"1","53":"text-align:right"},"section_param_id":129,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-04-19T13:03:09.000Z","id":3612,"page_layout_id":292,"page_layout_root_id":270,"pvalue":{},"section_param_id":110,"theme_id":5,"unset":null,"updated_at":"2013-04-19T13:03:09.000Z"},{"computed_pvalue":null,"created_at":"2013-04-19T13:03:10.000Z","id":3613,"page_layout_id":292,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111","21unset":"0","21":"width:150px"},"section_param_id":111,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-04-19T13:03:10.000Z","id":3614,"page_layout_id":292,"page_layout_root_id":270,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:5px 0px 0px 0px","31unset":"0","31":"margin:auto auto 10px auto"},"section_param_id":112,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-04-19T13:03:10.000Z","id":3615,"page_layout_id":292,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":113,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-04-19T13:03:10.000Z","id":3616,"page_layout_id":292,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111","53unset":"0","53":"text-align:center","49unset":"0","49":"color:#00ADEE","27unset":"0","27":"font-weight:bold"},"section_param_id":114,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:54.000Z","id":3617,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{},"section_param_id":27,"theme_id":5,"unset":null,"updated_at":"2013-10-02T10:20:54.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:54.000Z","id":3618,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":28,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:54.000Z","id":3619,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 0px 0px 20px"},"section_param_id":29,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:54.000Z","id":3620,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":30,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:54.000Z","id":3621,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":31,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:54.000Z","id":3622,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{"32unset":"0","32":"padding:5px 0px 0px 0px"},"section_param_id":32,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:54.000Z","id":3623,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{"54unset":"0","54":"text-decoration:none","24unset":"0","24":"font-size:90%","49unset":"0","49":"color:black"},"section_param_id":33,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:54.000Z","id":3624,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{"54unset":"0","54":"text-decoration:underline"},"section_param_id":34,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:54.000Z","id":3625,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{},"section_param_id":35,"theme_id":5,"unset":null,"updated_at":"2013-10-02T10:20:54.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:54.000Z","id":3626,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{},"section_param_id":36,"theme_id":5,"unset":null,"updated_at":"2013-10-02T10:20:54.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:55.000Z","id":3627,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{},"section_param_id":37,"theme_id":5,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:55.000Z","id":3628,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{},"section_param_id":38,"theme_id":5,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:55.000Z","id":3629,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{},"section_param_id":39,"theme_id":5,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:55.000Z","id":3630,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{},"section_param_id":40,"theme_id":5,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:55.000Z","id":3631,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{},"section_param_id":41,"theme_id":5,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"},{"computed_pvalue":null,"created_at":"2013-10-02T10:20:55.000Z","id":3632,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{},"section_param_id":42,"theme_id":5,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:36:48.000Z","id":3633,"page_layout_id":281,"page_layout_root_id":270,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:36:48.000Z","id":3634,"page_layout_id":281,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:36:48.000Z","id":3635,"page_layout_id":281,"page_layout_root_id":270,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 20px auto"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:36:48.000Z","id":3636,"page_layout_id":281,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:36:48.000Z","id":3637,"page_layout_id":281,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:37:55.000Z","id":3638,"page_layout_id":284,"page_layout_root_id":270,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:37:55.000Z","id":3639,"page_layout_id":284,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:37:55.000Z","id":3640,"page_layout_id":284,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:37:56.000Z","id":3641,"page_layout_id":284,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:37:56.000Z","id":3642,"page_layout_id":284,"page_layout_root_id":270,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:35.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:16.000Z","id":3643,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{},"section_param_id":27,"theme_id":5,"unset":null,"updated_at":"2013-10-05T00:38:16.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:16.000Z","id":3644,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":28,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:36.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:16.000Z","id":3645,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto 20px","32unset":"0","32":"padding:0px 0px 0px 20px"},"section_param_id":29,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:36.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:16.000Z","id":3646,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":30,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:36.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:16.000Z","id":3647,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":31,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:36.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":3648,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{"32unset":"0","32":"padding:5px 0px 0px 0px"},"section_param_id":32,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:36.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":3649,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{"24unset":"0","24":"font-size:90%","49unset":"0","49":"color:black","54unset":"0","54":"text-decoration:none"},"section_param_id":33,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:36.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":3650,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{"54unset":"0","54":"text-decoration:underline"},"section_param_id":34,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:36.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":3651,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{},"section_param_id":35,"theme_id":5,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":3652,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{},"section_param_id":36,"theme_id":5,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":3653,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{},"section_param_id":37,"theme_id":5,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":3654,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{},"section_param_id":38,"theme_id":5,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":3655,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{},"section_param_id":39,"theme_id":5,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":3656,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{},"section_param_id":40,"theme_id":5,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":3657,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{},"section_param_id":41,"theme_id":5,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"},{"computed_pvalue":null,"created_at":"2013-10-05T00:38:17.000Z","id":3658,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{},"section_param_id":42,"theme_id":5,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:20:58.000Z","id":3659,"page_layout_id":313,"page_layout_root_id":270,"pvalue":{},"section_param_id":210,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:20:58.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:20:58.000Z","id":3660,"page_layout_id":313,"page_layout_root_id":270,"pvalue":{"21unset":"0","21":"width:360px"},"section_param_id":211,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:36.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:20:58.000Z","id":3661,"page_layout_id":313,"page_layout_root_id":270,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:10px 10px 10px 10px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB"},"section_param_id":212,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:36.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:20:58.000Z","id":3662,"page_layout_id":313,"page_layout_root_id":270,"pvalue":{},"section_param_id":213,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:20:58.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:20:59.000Z","id":3663,"page_layout_id":313,"page_layout_root_id":270,"pvalue":{},"section_param_id":214,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:20:59.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:20:59.000Z","id":3664,"page_layout_id":313,"page_layout_root_id":270,"pvalue":{},"section_param_id":215,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:20:59.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:20:59.000Z","id":3665,"page_layout_id":313,"page_layout_root_id":270,"pvalue":{"2unset":"1","2":"background-color:#000000"},"section_param_id":216,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:36.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:20:59.000Z","id":3666,"page_layout_id":313,"page_layout_root_id":270,"pvalue":{"49unset":"0","49":"color:#00ADEE","53unset":"0","53":"text-align:center"},"section_param_id":217,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:36.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:21:08.000Z","id":3667,"page_layout_id":314,"page_layout_root_id":270,"pvalue":{},"section_param_id":218,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:21:08.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:21:08.000Z","id":3668,"page_layout_id":314,"page_layout_root_id":270,"pvalue":{"21unset":"0","21":"width:360px"},"section_param_id":219,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:36.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:21:08.000Z","id":3669,"page_layout_id":314,"page_layout_root_id":270,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:10px 20px 10px 20px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB","31unset":"0","31":"margin:10px auto 10px auto"},"section_param_id":220,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:36.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:21:09.000Z","id":3670,"page_layout_id":314,"page_layout_root_id":270,"pvalue":{},"section_param_id":221,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:21:09.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:21:09.000Z","id":3671,"page_layout_id":314,"page_layout_root_id":270,"pvalue":{},"section_param_id":222,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:21:09.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:21:09.000Z","id":3672,"page_layout_id":314,"page_layout_root_id":270,"pvalue":{},"section_param_id":223,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:21:09.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:21:09.000Z","id":3673,"page_layout_id":314,"page_layout_root_id":270,"pvalue":{},"section_param_id":224,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:21:09.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:21:09.000Z","id":3674,"page_layout_id":314,"page_layout_root_id":270,"pvalue":{"49unset":"0","49":"color:#00ADEE","53unset":"0","53":"text-align:center"},"section_param_id":225,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:36.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:35:02.000Z","id":3675,"page_layout_id":307,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:35:02.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:35:02.000Z","id":3676,"page_layout_id":307,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:36.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:35:02.000Z","id":3677,"page_layout_id":307,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:36.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:35:02.000Z","id":3678,"page_layout_id":307,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:35:02.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:35:02.000Z","id":3679,"page_layout_id":307,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:35:02.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:36:17.000Z","id":3680,"page_layout_id":308,"page_layout_root_id":270,"pvalue":{},"section_param_id":160,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:36:17.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:36:17.000Z","id":3681,"page_layout_id":308,"page_layout_root_id":270,"pvalue":{},"section_param_id":161,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:36:17.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:36:17.000Z","id":3682,"page_layout_id":308,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":162,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:36.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:36:17.000Z","id":3683,"page_layout_id":308,"page_layout_root_id":270,"pvalue":{},"section_param_id":163,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:36:17.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:36:18.000Z","id":3684,"page_layout_id":308,"page_layout_root_id":270,"pvalue":{"24unset":"0","24":"font-size:150%"},"section_param_id":164,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:36.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:21.000Z","id":3685,"page_layout_id":317,"page_layout_root_id":270,"pvalue":{},"section_param_id":165,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:21.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:21.000Z","id":3686,"page_layout_id":317,"page_layout_root_id":270,"pvalue":{},"section_param_id":166,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:21.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:21.000Z","id":3687,"page_layout_id":317,"page_layout_root_id":270,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto 10px auto 10px"},"section_param_id":167,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:36.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:21.000Z","id":3688,"page_layout_id":317,"page_layout_root_id":270,"pvalue":{},"section_param_id":168,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:21.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:21.000Z","id":3689,"page_layout_id":317,"page_layout_root_id":270,"pvalue":{},"section_param_id":169,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:21.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:21.000Z","id":3690,"page_layout_id":317,"page_layout_root_id":270,"pvalue":{"31unset":"0","31":"margin:auto auto 10px auto","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent","32unset":"0","32":"padding:5px 0px 5px 0px"},"section_param_id":170,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:36.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:22.000Z","id":3691,"page_layout_id":317,"page_layout_root_id":270,"pvalue":{},"section_param_id":171,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:22.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:22.000Z","id":3692,"page_layout_id":317,"page_layout_root_id":270,"pvalue":{"27":"font-weight:bold","54unset":"1","54":"text-decoration:underline","53unset":"1","53":"text-align:left"},"section_param_id":172,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:30.000Z","id":3693,"page_layout_id":318,"page_layout_root_id":270,"pvalue":{},"section_param_id":173,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:30.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:31.000Z","id":3694,"page_layout_id":318,"page_layout_root_id":270,"pvalue":{"21unset":"0","21":"width:300px"},"section_param_id":174,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:31.000Z","id":3695,"page_layout_id":318,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":175,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:31.000Z","id":3696,"page_layout_id":318,"page_layout_root_id":270,"pvalue":{},"section_param_id":176,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:31.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:31.000Z","id":3697,"page_layout_id":318,"page_layout_root_id":270,"pvalue":{},"section_param_id":177,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:31.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:31.000Z","id":3698,"page_layout_id":318,"page_layout_root_id":270,"pvalue":{"31unset":"0","31":"margin:auto auto 10px auto","32unset":"0","32":"padding:5px 0px 5px 0px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent"},"section_param_id":178,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:31.000Z","id":3699,"page_layout_id":318,"page_layout_root_id":270,"pvalue":{},"section_param_id":179,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:31.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:31.000Z","id":3700,"page_layout_id":318,"page_layout_root_id":270,"pvalue":{"27":"font-weight:bold","54unset":"1","54":"text-decoration:underline"},"section_param_id":180,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:40.000Z","id":3701,"page_layout_id":319,"page_layout_root_id":270,"pvalue":{},"section_param_id":181,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:40.000Z","id":3702,"page_layout_id":319,"page_layout_root_id":270,"pvalue":{},"section_param_id":182,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:40.000Z","id":3703,"page_layout_id":319,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":183,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:40.000Z","id":3704,"page_layout_id":319,"page_layout_root_id":270,"pvalue":{},"section_param_id":184,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:40.000Z","id":3705,"page_layout_id":319,"page_layout_root_id":270,"pvalue":{},"section_param_id":185,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:40.000Z","id":3706,"page_layout_id":319,"page_layout_root_id":270,"pvalue":{},"section_param_id":186,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:40.000Z","id":3707,"page_layout_id":319,"page_layout_root_id":270,"pvalue":{},"section_param_id":187,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:40.000Z","id":3708,"page_layout_id":319,"page_layout_root_id":270,"pvalue":{"27":"font-weight:bold"},"section_param_id":188,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:51.000Z","id":3709,"page_layout_id":321,"page_layout_root_id":270,"pvalue":{},"section_param_id":268,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:51.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:51.000Z","id":3710,"page_layout_id":321,"page_layout_root_id":270,"pvalue":{},"section_param_id":269,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:51.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:52.000Z","id":3711,"page_layout_id":321,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":270,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:52.000Z","id":3712,"page_layout_id":321,"page_layout_root_id":270,"pvalue":{},"section_param_id":271,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:52.000Z","id":3713,"page_layout_id":321,"page_layout_root_id":270,"pvalue":{},"section_param_id":272,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:52.000Z","id":3714,"page_layout_id":321,"page_layout_root_id":270,"pvalue":{},"section_param_id":273,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:52.000Z","id":3715,"page_layout_id":321,"page_layout_root_id":270,"pvalue":{},"section_param_id":274,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:37:52.000Z","id":3716,"page_layout_id":321,"page_layout_root_id":270,"pvalue":{},"section_param_id":275,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:38:01.000Z","id":3717,"page_layout_id":322,"page_layout_root_id":270,"pvalue":{},"section_param_id":260,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:38:01.000Z","id":3718,"page_layout_id":322,"page_layout_root_id":270,"pvalue":{},"section_param_id":261,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:38:01.000Z","id":3719,"page_layout_id":322,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":262,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:38:01.000Z","id":3720,"page_layout_id":322,"page_layout_root_id":270,"pvalue":{},"section_param_id":263,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:38:01.000Z","id":3721,"page_layout_id":322,"page_layout_root_id":270,"pvalue":{},"section_param_id":264,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:38:01.000Z","id":3722,"page_layout_id":322,"page_layout_root_id":270,"pvalue":{},"section_param_id":265,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:38:01.000Z","id":3723,"page_layout_id":322,"page_layout_root_id":270,"pvalue":{},"section_param_id":266,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:38:02.000Z","id":3724,"page_layout_id":322,"page_layout_root_id":270,"pvalue":{},"section_param_id":267,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:38:02.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:01.000Z","id":3725,"page_layout_id":323,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:01.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:01.000Z","id":3726,"page_layout_id":323,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:01.000Z","id":3727,"page_layout_id":323,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:01.000Z","id":3728,"page_layout_id":323,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:01.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:01.000Z","id":3729,"page_layout_id":323,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:01.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:32.000Z","id":3730,"page_layout_id":325,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:32.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:33.000Z","id":3731,"page_layout_id":325,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:33.000Z","id":3732,"page_layout_id":325,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:33.000Z","id":3733,"page_layout_id":325,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:33.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:33.000Z","id":3734,"page_layout_id":325,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:33.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:53.000Z","id":3735,"page_layout_id":324,"page_layout_root_id":270,"pvalue":{},"section_param_id":189,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:53.000Z","id":3736,"page_layout_id":324,"page_layout_root_id":270,"pvalue":{},"section_param_id":190,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:53.000Z","id":3737,"page_layout_id":324,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":191,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:53.000Z","id":3738,"page_layout_id":324,"page_layout_root_id":270,"pvalue":{},"section_param_id":192,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:53.000Z","id":3739,"page_layout_id":324,"page_layout_root_id":270,"pvalue":{},"section_param_id":193,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:53.000Z","id":3740,"page_layout_id":324,"page_layout_root_id":270,"pvalue":{},"section_param_id":194,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:53.000Z","id":3741,"page_layout_id":324,"page_layout_root_id":270,"pvalue":{},"section_param_id":195,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:39:53.000Z","id":3742,"page_layout_id":324,"page_layout_root_id":270,"pvalue":{},"section_param_id":196,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:40:04.000Z","id":3743,"page_layout_id":326,"page_layout_root_id":270,"pvalue":{},"section_param_id":197,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:40:04.000Z","id":3744,"page_layout_id":326,"page_layout_root_id":270,"pvalue":{},"section_param_id":198,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:40:04.000Z","id":3745,"page_layout_id":326,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":199,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:40:04.000Z","id":3746,"page_layout_id":326,"page_layout_root_id":270,"pvalue":{},"section_param_id":200,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:40:04.000Z","id":3747,"page_layout_id":326,"page_layout_root_id":270,"pvalue":{},"section_param_id":201,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:40:04.000Z","id":3748,"page_layout_id":326,"page_layout_root_id":270,"pvalue":{},"section_param_id":202,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:40:04.000Z","id":3749,"page_layout_id":326,"page_layout_root_id":270,"pvalue":{},"section_param_id":203,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:40:04.000Z","id":3750,"page_layout_id":326,"page_layout_root_id":270,"pvalue":{},"section_param_id":204,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:50:08.000Z","id":3751,"page_layout_id":320,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:50:08.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:50:08.000Z","id":3752,"page_layout_id":320,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:50:08.000Z","id":3753,"page_layout_id":320,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:50:08.000Z","id":3754,"page_layout_id":320,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:50:08.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:50:09.000Z","id":3755,"page_layout_id":320,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:50:09.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:50:37.000Z","id":3756,"page_layout_id":315,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:50:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:50:37.000Z","id":3757,"page_layout_id":315,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:50:37.000Z","id":3758,"page_layout_id":315,"page_layout_root_id":270,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 0px 0px 0px"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:50:37.000Z","id":3759,"page_layout_id":315,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:50:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-02T09:50:37.000Z","id":3760,"page_layout_id":315,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:50:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:07.000Z","id":3761,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{},"section_param_id":11,"theme_id":5,"unset":null,"updated_at":"2013-11-05T03:16:07.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:07.000Z","id":3762,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{"21unset":"1","21":"width:960px"},"section_param_id":12,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":3763,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{"15hidden":"1","32unset":"1","32":"padding:0px 0px 0px 0px"},"section_param_id":13,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":3764,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{"2unset":"1","2":"background-color:lime"},"section_param_id":14,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":3765,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{"27unset":"1","27":"font-weight:bold","49unset":"1","49":"color:white"},"section_param_id":15,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":3766,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{"32unset":"0","32":"padding:12px 10px 13px 10px"},"section_param_id":16,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":3767,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{"54unset":"0","54":"text-decoration:none","49unset":"0","49":"color:white"},"section_param_id":17,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":3768,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{},"section_param_id":18,"theme_id":5,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":3769,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{},"section_param_id":19,"theme_id":5,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":3770,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{},"section_param_id":20,"theme_id":5,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":3771,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{},"section_param_id":21,"theme_id":5,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":3772,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{"3unset":"0","3":"background-image:nav_not.gif","4unset":"0","4":"background-position:right top","5unset":"0","5":"background-repeat:no-repeat"},"section_param_id":22,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:08.000Z","id":3773,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{},"section_param_id":23,"theme_id":5,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:09.000Z","id":3774,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{"3unset":"0","3":"background-image:tab_on_1px.gif","4unset":"1","4":"background-position:left top","5unset":"0","5":"background-repeat:repeat"},"section_param_id":24,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:09.000Z","id":3775,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{},"section_param_id":25,"theme_id":5,"unset":null,"updated_at":"2013-11-05T03:16:09.000Z"},{"computed_pvalue":null,"created_at":"2013-11-05T03:16:09.000Z","id":3776,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{},"section_param_id":26,"theme_id":5,"unset":null,"updated_at":"2013-11-05T03:16:09.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:08.000Z","id":3777,"page_layout_id":282,"page_layout_root_id":270,"pvalue":{},"section_param_id":135,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:08.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:08.000Z","id":3778,"page_layout_id":282,"page_layout_root_id":270,"pvalue":{"21unset":"0","21":"width:160px"},"section_param_id":136,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:09.000Z","id":3779,"page_layout_id":282,"page_layout_root_id":270,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent","32unset":"0","32":"padding:0px 0px 5px 0px"},"section_param_id":137,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:09.000Z","id":3780,"page_layout_id":282,"page_layout_root_id":270,"pvalue":{},"section_param_id":138,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:09.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:09.000Z","id":3781,"page_layout_id":282,"page_layout_root_id":270,"pvalue":{"27unset":"0","27":"font-weight:bold"},"section_param_id":139,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:09.000Z","id":3782,"page_layout_id":285,"page_layout_root_id":270,"pvalue":{},"section_param_id":135,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:09.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:09.000Z","id":3783,"page_layout_id":285,"page_layout_root_id":270,"pvalue":{"21unset":"0","21":"width:160px"},"section_param_id":136,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:09.000Z","id":3784,"page_layout_id":285,"page_layout_root_id":270,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 0px 5px 0px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent"},"section_param_id":137,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:09.000Z","id":3785,"page_layout_id":285,"page_layout_root_id":270,"pvalue":{},"section_param_id":138,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:09.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:09.000Z","id":3786,"page_layout_id":285,"page_layout_root_id":270,"pvalue":{"27unset":"0","27":"font-weight:bold"},"section_param_id":139,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:15.000Z","id":3787,"page_layout_id":310,"page_layout_root_id":270,"pvalue":{},"section_param_id":140,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:15.000Z","id":3788,"page_layout_id":310,"page_layout_root_id":270,"pvalue":{},"section_param_id":141,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:15.000Z","id":3789,"page_layout_id":310,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":142,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:15.000Z","id":3790,"page_layout_id":310,"page_layout_root_id":270,"pvalue":{},"section_param_id":143,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:15.000Z","id":3791,"page_layout_id":310,"page_layout_root_id":270,"pvalue":{},"section_param_id":144,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:15.000Z","id":3792,"page_layout_id":311,"page_layout_root_id":270,"pvalue":{},"section_param_id":145,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:16.000Z","id":3793,"page_layout_id":311,"page_layout_root_id":270,"pvalue":{"101unset":"0","101":"float:right"},"section_param_id":146,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:16.000Z","id":3794,"page_layout_id":311,"page_layout_root_id":270,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:10px auto auto auto"},"section_param_id":147,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:16.000Z","id":3795,"page_layout_id":311,"page_layout_root_id":270,"pvalue":{},"section_param_id":148,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:16.000Z","id":3796,"page_layout_id":311,"page_layout_root_id":270,"pvalue":{},"section_param_id":149,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:16.000Z","id":3797,"page_layout_id":312,"page_layout_root_id":270,"pvalue":{},"section_param_id":150,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:16.000Z","id":3798,"page_layout_id":312,"page_layout_root_id":270,"pvalue":{"21unset":"1","21":"width:600px"},"section_param_id":151,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:16.000Z","id":3799,"page_layout_id":312,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":152,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:16.000Z","id":3800,"page_layout_id":312,"page_layout_root_id":270,"pvalue":{},"section_param_id":153,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"},{"computed_pvalue":null,"created_at":"2013-11-25T06:53:16.000Z","id":3801,"page_layout_id":312,"page_layout_root_id":270,"pvalue":{},"section_param_id":154,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"},{"computed_pvalue":null,"created_at":"2013-11-29T02:49:56.000Z","id":3802,"page_layout_id":273,"page_layout_root_id":270,"pvalue":{},"section_param_id":323,"theme_id":5,"unset":null,"updated_at":"2013-11-29T02:49:56.000Z"},{"computed_pvalue":null,"created_at":"2013-11-29T02:49:56.000Z","id":3803,"page_layout_id":273,"page_layout_root_id":270,"pvalue":{"21unset":"1","21":"width:220px","101unset":"1","101":"float:none"},"section_param_id":324,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:37.000Z"},{"computed_pvalue":null,"created_at":"2013-11-29T02:49:57.000Z","id":3804,"page_layout_id":273,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":325,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2013-11-29T02:49:57.000Z","id":3805,"page_layout_id":273,"page_layout_root_id":270,"pvalue":{},"section_param_id":326,"theme_id":5,"unset":null,"updated_at":"2013-11-29T02:49:57.000Z"},{"computed_pvalue":null,"created_at":"2013-11-29T02:49:57.000Z","id":3806,"page_layout_id":273,"page_layout_root_id":270,"pvalue":{},"section_param_id":327,"theme_id":5,"unset":null,"updated_at":"2013-11-29T02:49:57.000Z"},{"computed_pvalue":null,"created_at":"2013-12-03T08:14:45.000Z","id":3807,"page_layout_id":276,"page_layout_root_id":270,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2013-12-03T08:14:45.000Z","id":3808,"page_layout_id":276,"page_layout_root_id":270,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:960px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2013-12-03T08:14:46.000Z","id":3809,"page_layout_id":276,"page_layout_root_id":270,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 0px 6px 0px","7unset":"1","7":"border-style:none none solid none","8unset":"1","8":"border-width:0px 0px 1px 0px","6unset":"1","6":"border-color:transparent transparent #D9D9DB transparent","31unset":"1","31":"margin:auto 10px auto 10px"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2013-12-03T08:14:46.000Z","id":3810,"page_layout_id":276,"page_layout_root_id":270,"pvalue":{"2unset":"1","2":"background-color:green"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2013-12-03T08:14:46.000Z","id":3811,"page_layout_id":276,"page_layout_root_id":270,"pvalue":{"49unset":"1","49":"color:teal","25unset":"1","25":"font-style:normal","24unset":"1","24":"font-size:0%","27unset":"1","27":"font-weight:bold"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2013-12-05T08:06:08.000Z","id":3817,"page_layout_id":272,"page_layout_root_id":270,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2013-12-05T08:06:08.000Z","id":3818,"page_layout_id":272,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2013-12-05T08:06:08.000Z","id":3819,"page_layout_id":272,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2013-12-05T08:06:08.000Z","id":3820,"page_layout_id":272,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2013-12-05T08:06:08.000Z"},{"computed_pvalue":null,"created_at":"2013-12-05T08:06:08.000Z","id":3821,"page_layout_id":272,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2013-12-05T08:06:08.000Z"},{"computed_pvalue":null,"created_at":"2013-12-05T08:11:48.000Z","id":3822,"page_layout_id":274,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2013-12-05T08:11:48.000Z"},{"computed_pvalue":null,"created_at":"2013-12-05T08:11:48.000Z","id":3823,"page_layout_id":274,"page_layout_root_id":270,"pvalue":{"101":"float:right","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2013-12-05T08:11:48.000Z","id":3824,"page_layout_id":274,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2013-12-05T08:11:48.000Z","id":3825,"page_layout_id":274,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2013-12-05T08:11:48.000Z"},{"computed_pvalue":null,"created_at":"2013-12-05T08:11:48.000Z","id":3826,"page_layout_id":274,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2013-12-05T08:11:48.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:53.000Z","id":3827,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{"21":"width:960px","21unset":"1","20":"min-width:960px","20hidden":"1"},"section_param_id":226,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:53.000Z","id":3828,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":227,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:53.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:53.000Z","id":3829,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{"85":"clear:both"},"section_param_id":228,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:53.000Z","id":3830,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":229,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:53.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:53.000Z","id":3831,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":230,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:53.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":3832,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":231,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":3833,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":232,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":3834,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":233,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":3835,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":234,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":3836,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{"31unset":"0","31":"margin:10px auto 2px auto"},"section_param_id":235,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":3837,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":236,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":3838,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":237,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":3839,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":238,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":3840,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":239,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":3841,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":240,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:54.000Z","id":3842,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":241,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:55.000Z","id":3843,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{"49unset":"0","49":"color:red","24unset":"0","24":"font-size:82%"},"section_param_id":242,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:55.000Z","id":3844,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":243,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:55.000Z","id":3845,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":317,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:55.000Z","id":3846,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":318,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:55.000Z","id":3847,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":319,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:55.000Z","id":3848,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":320,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:55.000Z","id":3849,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":321,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:55.000Z","id":3850,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":322,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:55.000Z","id":3851,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":244,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:55.000Z","id":3852,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":245,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:56.000Z","id":3853,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":246,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:56.000Z","id":3854,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{"49unset":"1","49":"color:#00ADEE","24unset":"1","24":"font-size:80%"},"section_param_id":247,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:56.000Z","id":3855,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":248,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:56.000Z","id":3856,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":249,"theme_id":5,"unset":null,"updated_at":"2014-07-30T23:08:29.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:56.000Z","id":3857,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{"32unset":"0","32":"padding:5px 10px 5px 10px"},"section_param_id":250,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:56.000Z","id":3858,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":251,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:56.000Z","id":3859,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{"2unset":"0","2":"background-color:#D9D9DB"},"section_param_id":252,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:56.000Z","id":3860,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":253,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:56.000Z","id":3861,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":254,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:57.000Z","id":3862,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":255,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:57.000Z","id":3863,"page_layout_id":270,"page_layout_root_id":270,"pvalue":{},"section_param_id":256,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:57.000Z","id":3864,"page_layout_id":291,"page_layout_root_id":270,"pvalue":{},"section_param_id":55,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:57.000Z","id":3865,"page_layout_id":291,"page_layout_root_id":270,"pvalue":{"21unset":"0","21":"width:150px","15unset":"0","15":"height:34px"},"section_param_id":56,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:57.000Z","id":3866,"page_layout_id":291,"page_layout_root_id":270,"pvalue":{"15hidden":"1","15unset":"0","15":"height:33px","32unset":"1","32":"padding:0px 0px 0px 0px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #BBBBBB transparent"},"section_param_id":57,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:57.000Z","id":3867,"page_layout_id":291,"page_layout_root_id":270,"pvalue":{},"section_param_id":58,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:57.000Z","id":3868,"page_layout_id":291,"page_layout_root_id":270,"pvalue":{},"section_param_id":59,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:57.000Z","id":3869,"page_layout_id":291,"page_layout_root_id":270,"pvalue":{},"section_param_id":294,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:57.000Z","id":3870,"page_layout_id":291,"page_layout_root_id":270,"pvalue":{},"section_param_id":295,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:57.000Z","id":3871,"page_layout_id":291,"page_layout_root_id":270,"pvalue":{"49unset":"0","49":"color:#BBBBBB","27unset":"0","27":"font-weight:bold","24unset":"0","24":"font-size:80%","54unset":"0","54":"text-decoration:none","53unset":"0","53":"text-align:center"},"section_param_id":296,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:39:58.000Z","id":3872,"page_layout_id":291,"page_layout_root_id":270,"pvalue":{},"section_param_id":297,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:58.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:00.000Z","id":3873,"page_layout_id":296,"page_layout_root_id":270,"pvalue":{},"section_param_id":105,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:00.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:00.000Z","id":3874,"page_layout_id":296,"page_layout_root_id":270,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":106,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:00.000Z","id":3875,"page_layout_id":296,"page_layout_root_id":270,"pvalue":{},"section_param_id":107,"theme_id":5,"unset":null,"updated_at":"2014-07-31T13:50:01.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:00.000Z","id":3876,"page_layout_id":296,"page_layout_root_id":270,"pvalue":{},"section_param_id":108,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:00.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:00.000Z","id":3877,"page_layout_id":296,"page_layout_root_id":270,"pvalue":{},"section_param_id":109,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:00.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:00.000Z","id":3878,"page_layout_id":296,"page_layout_root_id":270,"pvalue":{"32unset":"0","32":"padding:5px 5px 5px 5px","7unset":"0","7":"border-style:solid none solid none","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB"},"section_param_id":302,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:00.000Z","id":3879,"page_layout_id":296,"page_layout_root_id":270,"pvalue":{"2unset":"0","2":"background-color:transparent"},"section_param_id":303,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:01.000Z","id":3880,"page_layout_id":296,"page_layout_root_id":270,"pvalue":{},"section_param_id":304,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:01.000Z","id":3881,"page_layout_id":296,"page_layout_root_id":270,"pvalue":{"27unset":"0","27":"font-weight:bold"},"section_param_id":305,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:01.000Z","id":3882,"page_layout_id":296,"page_layout_root_id":270,"pvalue":{},"section_param_id":306,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:01.000Z","id":3883,"page_layout_id":298,"page_layout_root_id":270,"pvalue":{},"section_param_id":55,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:01.000Z","id":3884,"page_layout_id":298,"page_layout_root_id":270,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":56,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:01.000Z","id":3885,"page_layout_id":298,"page_layout_root_id":270,"pvalue":{"15hidden":"1","32unset":"1","32":"padding:0px 0px 0px 0px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent"},"section_param_id":57,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:01.000Z","id":3886,"page_layout_id":298,"page_layout_root_id":270,"pvalue":{},"section_param_id":58,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:01.000Z","id":3887,"page_layout_id":298,"page_layout_root_id":270,"pvalue":{},"section_param_id":59,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:01.000Z","id":3888,"page_layout_id":298,"page_layout_root_id":270,"pvalue":{},"section_param_id":294,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:01.000Z","id":3889,"page_layout_id":298,"page_layout_root_id":270,"pvalue":{},"section_param_id":295,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:02.000Z","id":3890,"page_layout_id":298,"page_layout_root_id":270,"pvalue":{"49unset":"0","49":"color:black","54unset":"0","54":"text-decoration:none","27unset":"0","27":"font-weight:bold","24unset":"0","24":"font-size:150%"},"section_param_id":296,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:02.000Z","id":3891,"page_layout_id":298,"page_layout_root_id":270,"pvalue":{},"section_param_id":297,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:02.000Z","id":3892,"page_layout_id":305,"page_layout_root_id":270,"pvalue":{},"section_param_id":115,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:02.000Z","id":3893,"page_layout_id":305,"page_layout_root_id":270,"pvalue":{},"section_param_id":116,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:02.000Z","id":3894,"page_layout_id":305,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":117,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:02.000Z","id":3895,"page_layout_id":305,"page_layout_root_id":270,"pvalue":{},"section_param_id":118,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:02.000Z","id":3896,"page_layout_id":305,"page_layout_root_id":270,"pvalue":{},"section_param_id":119,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:02.000Z","id":3897,"page_layout_id":305,"page_layout_root_id":270,"pvalue":{"21unset":"0","21":"width:60px","7unset":"0","7":"border-style:solid solid solid solid","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB","8unset":"0","8":"border-width:1px 1px 1px 1px","32unset":"0","32":"padding:7px 10px 7px 10px"},"section_param_id":307,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:02.000Z","id":3898,"page_layout_id":305,"page_layout_root_id":270,"pvalue":{},"section_param_id":308,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:03.000Z","id":3899,"page_layout_id":305,"page_layout_root_id":270,"pvalue":{"53unset":"0","53":"text-align:left"},"section_param_id":309,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:03.000Z","id":3900,"page_layout_id":306,"page_layout_root_id":270,"pvalue":{},"section_param_id":120,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:03.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:03.000Z","id":3901,"page_layout_id":306,"page_layout_root_id":270,"pvalue":{},"section_param_id":121,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:03.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:03.000Z","id":3902,"page_layout_id":306,"page_layout_root_id":270,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto auto 5px"},"section_param_id":122,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:03.000Z","id":3903,"page_layout_id":306,"page_layout_root_id":270,"pvalue":{},"section_param_id":123,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:03.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:03.000Z","id":3904,"page_layout_id":306,"page_layout_root_id":270,"pvalue":{},"section_param_id":124,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:03.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:03.000Z","id":3905,"page_layout_id":306,"page_layout_root_id":270,"pvalue":{"32unset":"0","32":"padding:7px 10px 7px 10px","7unset":"1","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#008ABD #008ABD #008ABD #008ABD"},"section_param_id":310,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:03.000Z","id":3906,"page_layout_id":306,"page_layout_root_id":270,"pvalue":{"2unset":"0","2":"background-color:#00ADEE"},"section_param_id":311,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:03.000Z","id":3907,"page_layout_id":306,"page_layout_root_id":270,"pvalue":{"49unset":"0","49":"color:white","24unset":"1","24":"font-size:14em"},"section_param_id":312,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:04.000Z","id":3908,"page_layout_id":331,"page_layout_root_id":270,"pvalue":{},"section_param_id":284,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:04.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:04.000Z","id":3909,"page_layout_id":331,"page_layout_root_id":270,"pvalue":{"21":"width:600px","21unset":"0"},"section_param_id":285,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:04.000Z","id":3910,"page_layout_id":331,"page_layout_root_id":270,"pvalue":{"7":"border-style:solid solid solid solid","7unset":"0","8":"border-width:1px 1px 1px 1px","8unset":"0","6":"border-color:#CCCCCC #CCCCCC #CCCCCC #CCCCCC","6unset":"0","15":"height:598px","15hidden":"1"},"section_param_id":286,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:04.000Z","id":3911,"page_layout_id":331,"page_layout_root_id":270,"pvalue":{"2":"background-color:#FFFFFF","2unset":"0"},"section_param_id":287,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:38.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:04.000Z","id":3912,"page_layout_id":331,"page_layout_root_id":270,"pvalue":{},"section_param_id":288,"theme_id":5,"unset":null,"updated_at":null},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:04.000Z","id":3913,"page_layout_id":331,"page_layout_root_id":270,"pvalue":{"32":"padding:2px 2px 2px 2px","32unset":"0"},"section_param_id":313,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:04.000Z","id":3914,"page_layout_id":331,"page_layout_root_id":270,"pvalue":{"2":"background-color:#EEEEEE","2unset":"0"},"section_param_id":314,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:05.000Z","id":3915,"page_layout_id":331,"page_layout_root_id":270,"pvalue":{},"section_param_id":315,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:05.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T03:40:05.000Z","id":3916,"page_layout_id":331,"page_layout_root_id":270,"pvalue":{"32":"padding:0 10px 5px 10px","32unset":"0"},"section_param_id":316,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":3917,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":333,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":3918,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":334,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":3919,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":335,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":3920,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":336,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":3921,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":337,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":3922,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":338,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":3923,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":339,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":3924,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":340,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":3925,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":341,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":3926,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":342,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":3927,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":343,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":3928,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":344,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":3929,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":345,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":3930,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":346,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":3931,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":347,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-01-22T14:00:12.000Z","id":3932,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":348,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:03:39.000Z","id":3933,"page_layout_id":327,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-02-19T13:03:39.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:03:39.000Z","id":3934,"page_layout_id":327,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:03:39.000Z","id":3935,"page_layout_id":327,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:03:39.000Z","id":3936,"page_layout_id":327,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-02-19T13:03:39.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:03:39.000Z","id":3937,"page_layout_id":327,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-02-19T13:03:39.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:12:08.000Z","id":3938,"page_layout_id":328,"page_layout_root_id":270,"pvalue":{},"section_param_id":349,"theme_id":5,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"},{"computed_pvalue":null,"created_at":"2014-05-10T13:08:24.000Z","id":3939,"page_layout_id":328,"page_layout_root_id":270,"pvalue":{},"section_param_id":350,"theme_id":5,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:12:08.000Z","id":3940,"page_layout_id":328,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":351,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:12:08.000Z","id":3941,"page_layout_id":328,"page_layout_root_id":270,"pvalue":{},"section_param_id":352,"theme_id":5,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:12:08.000Z","id":3942,"page_layout_id":328,"page_layout_root_id":270,"pvalue":{},"section_param_id":353,"theme_id":5,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:12:08.000Z","id":3943,"page_layout_id":328,"page_layout_root_id":270,"pvalue":{},"section_param_id":354,"theme_id":5,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:12:08.000Z","id":3944,"page_layout_id":328,"page_layout_root_id":270,"pvalue":{},"section_param_id":355,"theme_id":5,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"},{"computed_pvalue":null,"created_at":"2014-02-19T13:12:08.000Z","id":3945,"page_layout_id":328,"page_layout_root_id":270,"pvalue":{},"section_param_id":356,"theme_id":5,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"},{"computed_pvalue":null,"created_at":"2014-02-23T13:34:50.000Z","id":3946,"page_layout_id":295,"page_layout_root_id":270,"pvalue":{},"section_param_id":289,"theme_id":5,"unset":null,"updated_at":"2014-02-23T13:34:50.000Z"},{"computed_pvalue":null,"created_at":"2014-02-23T13:34:50.000Z","id":3947,"page_layout_id":295,"page_layout_root_id":270,"pvalue":{},"section_param_id":290,"theme_id":5,"unset":null,"updated_at":"2014-02-23T13:34:50.000Z"},{"computed_pvalue":null,"created_at":"2014-02-23T13:34:50.000Z","id":3948,"page_layout_id":295,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":291,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-02-23T13:34:50.000Z","id":3949,"page_layout_id":295,"page_layout_root_id":270,"pvalue":{},"section_param_id":292,"theme_id":5,"unset":null,"updated_at":"2014-02-23T13:34:50.000Z"},{"computed_pvalue":null,"created_at":"2014-02-23T13:34:50.000Z","id":3950,"page_layout_id":295,"page_layout_root_id":270,"pvalue":{},"section_param_id":293,"theme_id":5,"unset":null,"updated_at":"2014-02-23T13:34:50.000Z"},{"computed_pvalue":null,"created_at":"2014-02-23T13:34:50.000Z","id":3951,"page_layout_id":295,"page_layout_root_id":270,"pvalue":{"32unset":"0","32":"padding:5px 10px 5px 10px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB"},"section_param_id":299,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-02-23T13:34:50.000Z","id":3952,"page_layout_id":295,"page_layout_root_id":270,"pvalue":{"32unset":"0","32":"padding:5px 5px 5px 5px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB","31unset":"0","31":"margin:6px 6px 6px auto"},"section_param_id":301,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-03-04T14:20:03.000Z","id":3953,"page_layout_id":316,"page_layout_root_id":270,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-03-04T14:20:03.000Z","id":3954,"page_layout_id":316,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"0"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-03-04T14:20:03.000Z","id":3955,"page_layout_id":316,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-03-04T14:20:03.000Z","id":3956,"page_layout_id":316,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-03-04T14:20:03.000Z"},{"computed_pvalue":null,"created_at":"2014-03-04T14:20:03.000Z","id":3957,"page_layout_id":316,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-03-04T14:20:03.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T13:19:56.000Z","id":3958,"page_layout_id":301,"page_layout_root_id":270,"pvalue":{},"section_param_id":357,"theme_id":5,"unset":null,"updated_at":"2014-03-06T13:19:56.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T13:19:56.000Z","id":3959,"page_layout_id":301,"page_layout_root_id":270,"pvalue":{},"section_param_id":358,"theme_id":5,"unset":null,"updated_at":"2014-03-06T13:19:56.000Z"},{"computed_pvalue":null,"created_at":null,"id":3960,"page_layout_id":301,"page_layout_root_id":270,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 10px auto"},"section_param_id":359,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T13:19:56.000Z","id":3961,"page_layout_id":301,"page_layout_root_id":270,"pvalue":{},"section_param_id":360,"theme_id":5,"unset":null,"updated_at":"2014-03-06T13:19:56.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T13:19:56.000Z","id":3962,"page_layout_id":301,"page_layout_root_id":270,"pvalue":{},"section_param_id":361,"theme_id":5,"unset":null,"updated_at":"2014-03-06T13:19:56.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T13:42:19.000Z","id":3963,"page_layout_id":304,"page_layout_root_id":270,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T13:42:19.000Z","id":3964,"page_layout_id":304,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:230px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T13:42:19.000Z","id":3965,"page_layout_id":304,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T13:42:19.000Z","id":3966,"page_layout_id":304,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-03-06T13:42:19.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T13:42:19.000Z","id":3967,"page_layout_id":304,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-03-06T13:42:19.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T15:17:45.000Z","id":3968,"page_layout_id":302,"page_layout_root_id":270,"pvalue":{"85unset":"0","85":"clear:both"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T15:17:45.000Z","id":3969,"page_layout_id":302,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T15:17:45.000Z","id":3970,"page_layout_id":302,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T15:17:45.000Z","id":3971,"page_layout_id":302,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-03-06T15:17:45.000Z"},{"computed_pvalue":null,"created_at":"2014-03-06T15:17:45.000Z","id":3972,"page_layout_id":302,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-03-06T15:17:45.000Z"},{"computed_pvalue":null,"created_at":"2014-07-04T12:47:18.000Z","id":3976,"page_layout_id":290,"page_layout_root_id":270,"pvalue":{"84unset":"1","84":"product"},"section_param_id":404,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-07-09T13:01:29.000Z","id":3977,"page_layout_id":332,"page_layout_root_id":270,"pvalue":{},"section_param_id":388,"theme_id":5,"unset":null,"updated_at":"2014-07-09T13:01:29.000Z"},{"computed_pvalue":null,"created_at":"2014-07-09T13:01:29.000Z","id":3978,"page_layout_id":332,"page_layout_root_id":270,"pvalue":{"21":"width:960px","21unset":"0","15unset":"0","15":"height:300px","101unset":"0","101":"float:none"},"section_param_id":389,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-07-09T13:01:29.000Z","id":3979,"page_layout_id":332,"page_layout_root_id":270,"pvalue":{"15hidden":"1","15unset":"0","15":"height:300px"},"section_param_id":390,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-07-09T13:01:29.000Z","id":3980,"page_layout_id":332,"page_layout_root_id":270,"pvalue":{},"section_param_id":391,"theme_id":5,"unset":null,"updated_at":"2014-07-09T13:01:29.000Z"},{"computed_pvalue":null,"created_at":"2014-07-09T13:01:29.000Z","id":3981,"page_layout_id":332,"page_layout_root_id":270,"pvalue":{},"section_param_id":392,"theme_id":5,"unset":null,"updated_at":"2014-07-09T13:01:29.000Z"},{"computed_pvalue":null,"created_at":"2014-07-09T13:01:29.000Z","id":3982,"page_layout_id":332,"page_layout_root_id":270,"pvalue":{"78":"width:960px","79":"height:300px","78unset":"0","79unset":"0"},"section_param_id":393,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-07-12T04:07:03.000Z","id":3983,"page_layout_id":333,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-12T04:07:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-12T04:07:03.000Z","id":3984,"page_layout_id":333,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:300px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-07-12T04:07:03.000Z","id":3985,"page_layout_id":333,"page_layout_root_id":270,"pvalue":{"15hidden":"1","15unset":"1","15":"height:295px","31unset":"0","31":"margin:auto auto 5px auto"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-07-12T04:07:03.000Z","id":3986,"page_layout_id":333,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-12T04:07:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-12T04:07:03.000Z","id":3987,"page_layout_id":333,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-12T04:07:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-12T05:05:49.000Z","id":3993,"page_layout_id":335,"page_layout_root_id":270,"pvalue":{},"section_param_id":50,"theme_id":5,"unset":null,"updated_at":"2014-07-12T05:05:49.000Z"},{"computed_pvalue":null,"created_at":"2014-07-12T05:05:49.000Z","id":3994,"page_layout_id":335,"page_layout_root_id":270,"pvalue":{"101unset":"0","101":"float:none","21unset":"0","21":"width:800px"},"section_param_id":51,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-07-12T05:05:49.000Z","id":3995,"page_layout_id":335,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":52,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-07-12T05:05:49.000Z","id":3996,"page_layout_id":335,"page_layout_root_id":270,"pvalue":{},"section_param_id":53,"theme_id":5,"unset":null,"updated_at":"2014-07-12T05:05:49.000Z"},{"computed_pvalue":null,"created_at":"2014-07-12T05:05:49.000Z","id":3997,"page_layout_id":335,"page_layout_root_id":270,"pvalue":{},"section_param_id":54,"theme_id":5,"unset":null,"updated_at":"2014-07-12T05:05:49.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:16:03.000Z","id":4003,"page_layout_id":337,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:16:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:16:03.000Z","id":4004,"page_layout_id":337,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"0"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:16:03.000Z","id":4005,"page_layout_id":337,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:16:03.000Z","id":4006,"page_layout_id":337,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:16:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:16:03.000Z","id":4007,"page_layout_id":337,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:16:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:16:13.000Z","id":4008,"page_layout_id":338,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:16:13.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:16:13.000Z","id":4009,"page_layout_id":338,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"0"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:16:13.000Z","id":4010,"page_layout_id":338,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:16:13.000Z","id":4011,"page_layout_id":338,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:16:13.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:16:13.000Z","id":4012,"page_layout_id":338,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:16:13.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:19:17.000Z","id":4013,"page_layout_id":339,"page_layout_root_id":270,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:19:17.000Z","id":4014,"page_layout_id":339,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:19:17.000Z","id":4015,"page_layout_id":339,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:19:17.000Z","id":4016,"page_layout_id":339,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:19:17.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:19:17.000Z","id":4017,"page_layout_id":339,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:19:17.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:26:45.000Z","id":4018,"page_layout_id":340,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:26:45.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:26:45.000Z","id":4019,"page_layout_id":340,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:655px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:26:45.000Z","id":4020,"page_layout_id":340,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:26:45.000Z","id":4021,"page_layout_id":340,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:26:45.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:26:45.000Z","id":4022,"page_layout_id":340,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:26:45.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:26:54.000Z","id":4023,"page_layout_id":341,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:26:54.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:26:55.000Z","id":4024,"page_layout_id":341,"page_layout_root_id":270,"pvalue":{"101":"float:right","101unset":"0","15":"height:100px","15unset":"1","21unset":"1","21":"width:360px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:26:55.000Z","id":4025,"page_layout_id":341,"page_layout_root_id":270,"pvalue":{"15hidden":"1","15unset":"1","15":"height:100px"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:39.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:26:55.000Z","id":4026,"page_layout_id":341,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:26:55.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:26:55.000Z","id":4027,"page_layout_id":341,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:26:55.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:28:52.000Z","id":4028,"page_layout_id":342,"page_layout_root_id":270,"pvalue":{"85unset":"1","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:28:52.000Z","id":4029,"page_layout_id":342,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:28:52.000Z","id":4030,"page_layout_id":342,"page_layout_root_id":270,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#CDCBCB #CDCBCB #CDCBCB #CDCBCB"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:28:52.000Z","id":4031,"page_layout_id":342,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:28:52.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:28:52.000Z","id":4032,"page_layout_id":342,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:28:52.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:29:03.000Z","id":4033,"page_layout_id":343,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:29:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:29:03.000Z","id":4034,"page_layout_id":343,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:29:03.000Z","id":4035,"page_layout_id":343,"page_layout_root_id":270,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#CDCBCB #CDCBCB #CDCBCB #CDCBCB","32unset":"1","32":"padding:0px 0px 0px 0px","31unset":"0","31":"margin:5px auto auto auto"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:29:03.000Z","id":4036,"page_layout_id":343,"page_layout_root_id":270,"pvalue":{"3unset":"1","3":"background-image:none"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T00:29:03.000Z","id":4037,"page_layout_id":343,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:29:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:10:10.000Z","id":4038,"page_layout_id":344,"page_layout_root_id":270,"pvalue":{},"section_param_id":65,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:10:10.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:10:10.000Z","id":4039,"page_layout_id":344,"page_layout_root_id":270,"pvalue":{},"section_param_id":66,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:10:10.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:10:10.000Z","id":4040,"page_layout_id":344,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":67,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:10:10.000Z","id":4041,"page_layout_id":344,"page_layout_root_id":270,"pvalue":{},"section_param_id":68,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:10:10.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:10:10.000Z","id":4042,"page_layout_id":344,"page_layout_root_id":270,"pvalue":{},"section_param_id":69,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:10:10.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:10:10.000Z","id":4043,"page_layout_id":344,"page_layout_root_id":270,"pvalue":{"84unset":"0","84":"product"},"section_param_id":404,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:13:54.000Z","id":4044,"page_layout_id":345,"page_layout_root_id":270,"pvalue":{},"section_param_id":65,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:13:54.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:13:54.000Z","id":4045,"page_layout_id":345,"page_layout_root_id":270,"pvalue":{},"section_param_id":66,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:13:54.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:13:54.000Z","id":4046,"page_layout_id":345,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":67,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:13:54.000Z","id":4047,"page_layout_id":345,"page_layout_root_id":270,"pvalue":{},"section_param_id":68,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:13:54.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:13:54.000Z","id":4048,"page_layout_id":345,"page_layout_root_id":270,"pvalue":{},"section_param_id":69,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:13:54.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:13:54.000Z","id":4049,"page_layout_id":345,"page_layout_root_id":270,"pvalue":{"84unset":"0","84":"product"},"section_param_id":404,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:14:54.000Z","id":4050,"page_layout_id":346,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:14:54.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:14:54.000Z","id":4051,"page_layout_id":346,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:14:54.000Z","id":4052,"page_layout_id":346,"page_layout_root_id":270,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:18px 5px 5px 5px"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:14:54.000Z","id":4053,"page_layout_id":346,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:14:54.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:14:54.000Z","id":4054,"page_layout_id":346,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:14:54.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:15:31.000Z","id":4055,"page_layout_id":347,"page_layout_root_id":270,"pvalue":{},"section_param_id":50,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:15:31.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:15:31.000Z","id":4056,"page_layout_id":347,"page_layout_root_id":270,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":51,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:15:31.000Z","id":4057,"page_layout_id":347,"page_layout_root_id":270,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#CDCBCB #CDCBCB #CDCBCB #CDCBCB","32unset":"0","32":"padding:5px 5px 5px 5px","31unset":"0","31":"margin:5px auto auto auto"},"section_param_id":52,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:15:31.000Z","id":4058,"page_layout_id":347,"page_layout_root_id":270,"pvalue":{},"section_param_id":53,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:15:31.000Z"},{"computed_pvalue":null,"created_at":"2014-07-17T09:15:31.000Z","id":4059,"page_layout_id":347,"page_layout_root_id":270,"pvalue":{},"section_param_id":54,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:15:31.000Z"},{"computed_pvalue":null,"created_at":"2014-07-24T23:40:52.000Z","id":4060,"page_layout_id":348,"page_layout_root_id":270,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-24T23:40:52.000Z","id":4061,"page_layout_id":348,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-24T23:40:52.000Z","id":4062,"page_layout_id":348,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-24T23:40:52.000Z","id":4063,"page_layout_id":348,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-24T23:40:52.000Z"},{"computed_pvalue":null,"created_at":"2014-07-24T23:40:52.000Z","id":4064,"page_layout_id":348,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-24T23:40:52.000Z"},{"computed_pvalue":null,"created_at":"2014-07-24T23:41:13.000Z","id":4065,"page_layout_id":349,"page_layout_root_id":270,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-24T23:41:13.000Z","id":4066,"page_layout_id":349,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-24T23:41:13.000Z","id":4067,"page_layout_id":349,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-24T23:41:13.000Z","id":4068,"page_layout_id":349,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-24T23:41:13.000Z"},{"computed_pvalue":null,"created_at":"2014-07-24T23:41:13.000Z","id":4069,"page_layout_id":349,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-24T23:41:13.000Z"},{"computed_pvalue":null,"created_at":"2014-07-25T13:58:55.000Z","id":4070,"page_layout_id":350,"page_layout_root_id":270,"pvalue":{},"section_param_id":160,"theme_id":5,"unset":null,"updated_at":"2014-07-25T13:58:55.000Z"},{"computed_pvalue":null,"created_at":"2014-07-25T13:58:55.000Z","id":4071,"page_layout_id":350,"page_layout_root_id":270,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":161,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-25T13:58:55.000Z","id":4072,"page_layout_id":350,"page_layout_root_id":270,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:8px 5px 8px 28px"},"section_param_id":162,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-25T13:58:55.000Z","id":4073,"page_layout_id":350,"page_layout_root_id":270,"pvalue":{"3unset":"0","3":"background-image:tiao.jpg","2unset":"0","2":"background-color:#F8F8F8"},"section_param_id":163,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-25T13:58:55.000Z","id":4074,"page_layout_id":350,"page_layout_root_id":270,"pvalue":{},"section_param_id":164,"theme_id":5,"unset":null,"updated_at":"2014-07-25T13:58:55.000Z"},{"computed_pvalue":null,"created_at":"2014-07-25T14:01:47.000Z","id":4075,"page_layout_id":351,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-25T14:01:47.000Z"},{"computed_pvalue":null,"created_at":"2014-07-25T14:01:47.000Z","id":4076,"page_layout_id":351,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-25T14:01:47.000Z","id":4077,"page_layout_id":351,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-25T14:01:47.000Z","id":4078,"page_layout_id":351,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-25T14:01:47.000Z"},{"computed_pvalue":null,"created_at":"2014-07-25T14:01:47.000Z","id":4079,"page_layout_id":351,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-25T14:01:47.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T03:12:38.000Z","id":4080,"page_layout_id":352,"page_layout_root_id":270,"pvalue":{},"section_param_id":405,"theme_id":5,"unset":null,"updated_at":"2014-07-26T03:12:38.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T03:12:38.000Z","id":4081,"page_layout_id":352,"page_layout_root_id":270,"pvalue":{},"section_param_id":406,"theme_id":5,"unset":null,"updated_at":"2014-07-26T03:12:38.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T03:12:38.000Z","id":4082,"page_layout_id":352,"page_layout_root_id":270,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 10px auto"},"section_param_id":407,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T03:12:38.000Z","id":4083,"page_layout_id":352,"page_layout_root_id":270,"pvalue":{},"section_param_id":408,"theme_id":5,"unset":null,"updated_at":"2014-07-26T03:12:38.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T03:12:38.000Z","id":4084,"page_layout_id":352,"page_layout_root_id":270,"pvalue":{},"section_param_id":409,"theme_id":5,"unset":null,"updated_at":"2014-07-26T03:12:38.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T04:58:58.000Z","id":4085,"page_layout_id":353,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-26T04:58:58.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T04:58:58.000Z","id":4086,"page_layout_id":353,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T04:58:58.000Z","id":4087,"page_layout_id":353,"page_layout_root_id":270,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#CDCBCB #CDCBCB #CDCBCB #CDCBCB","32unset":"1","32":"padding:0px 0px 0px 0px"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T04:58:58.000Z","id":4088,"page_layout_id":353,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-26T04:58:58.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T04:58:58.000Z","id":4089,"page_layout_id":353,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-26T04:58:58.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T04:59:54.000Z","id":4090,"page_layout_id":354,"page_layout_root_id":270,"pvalue":{},"section_param_id":135,"theme_id":5,"unset":null,"updated_at":"2014-07-26T04:59:54.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T04:59:54.000Z","id":4091,"page_layout_id":354,"page_layout_root_id":270,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":136,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T04:59:54.000Z","id":4092,"page_layout_id":354,"page_layout_root_id":270,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:8px 5px 8px 28px"},"section_param_id":137,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T04:59:54.000Z","id":4093,"page_layout_id":354,"page_layout_root_id":270,"pvalue":{"2unset":"1","2":"background-color:#F8F8F8","3unset":"0","3":"background-image:tiao.jpg"},"section_param_id":138,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T04:59:54.000Z","id":4094,"page_layout_id":354,"page_layout_root_id":270,"pvalue":{},"section_param_id":139,"theme_id":5,"unset":null,"updated_at":"2014-07-26T04:59:54.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T13:01:44.000Z","id":4095,"page_layout_id":355,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-26T13:01:44.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T13:01:44.000Z","id":4096,"page_layout_id":355,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:40px","15unset":"0","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T13:01:45.000Z","id":4097,"page_layout_id":355,"page_layout_root_id":270,"pvalue":{"15hidden":"1","15unset":"0","15":"height:40px"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T13:01:45.000Z","id":4098,"page_layout_id":355,"page_layout_root_id":270,"pvalue":{"3unset":"0","3":"background-image:nav_bg_40px.gif","2unset":"1","2":"background-color:black"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T13:01:45.000Z","id":4099,"page_layout_id":355,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-26T13:01:45.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T13:30:46.000Z","id":4100,"page_layout_id":356,"page_layout_root_id":270,"pvalue":{},"section_param_id":160,"theme_id":5,"unset":null,"updated_at":"2014-07-26T13:30:46.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T13:30:46.000Z","id":4101,"page_layout_id":356,"page_layout_root_id":270,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":161,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T13:30:46.000Z","id":4102,"page_layout_id":356,"page_layout_root_id":270,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:8px 5px 8px 28px"},"section_param_id":162,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T13:30:46.000Z","id":4103,"page_layout_id":356,"page_layout_root_id":270,"pvalue":{"3unset":"0","3":"background-image:tiao.jpg"},"section_param_id":163,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T13:30:46.000Z","id":4104,"page_layout_id":356,"page_layout_root_id":270,"pvalue":{},"section_param_id":164,"theme_id":5,"unset":null,"updated_at":"2014-07-26T13:30:46.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T13:30:57.000Z","id":4105,"page_layout_id":357,"page_layout_root_id":270,"pvalue":{"85unset":"1","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T13:30:57.000Z","id":4106,"page_layout_id":357,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:40.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T13:30:57.000Z","id":4107,"page_layout_id":357,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:41.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T13:30:58.000Z","id":4108,"page_layout_id":357,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-26T13:30:58.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T13:30:58.000Z","id":4109,"page_layout_id":357,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-26T13:30:58.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T14:41:26.000Z","id":4110,"page_layout_id":358,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-26T14:41:26.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T14:41:26.000Z","id":4111,"page_layout_id":358,"page_layout_root_id":270,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:960px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:41.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T14:41:26.000Z","id":4112,"page_layout_id":358,"page_layout_root_id":270,"pvalue":{"15hidden":"1","7unset":"1","7":"border-style:solid none none none","8unset":"1","8":"border-width:4px 0px 0px 0px","6unset":"1","6":"border-color:#2D2D2F transparent transparent transparent"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:41.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T14:41:26.000Z","id":4113,"page_layout_id":358,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-26T14:41:26.000Z"},{"computed_pvalue":null,"created_at":"2014-07-26T14:41:26.000Z","id":4114,"page_layout_id":358,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-26T14:41:26.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T02:08:02.000Z","id":4115,"page_layout_id":359,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-27T02:08:02.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T02:08:02.000Z","id":4116,"page_layout_id":359,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:41.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T02:08:02.000Z","id":4117,"page_layout_id":359,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:41.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T02:08:02.000Z","id":4118,"page_layout_id":359,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-27T02:08:02.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T02:08:02.000Z","id":4119,"page_layout_id":359,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-27T02:08:02.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T03:20:52.000Z","id":4120,"page_layout_id":278,"page_layout_root_id":270,"pvalue":{},"section_param_id":410,"theme_id":5,"unset":null,"updated_at":"2014-07-27T03:20:52.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T03:20:52.000Z","id":4121,"page_layout_id":278,"page_layout_root_id":270,"pvalue":{"101unset":"0","101":"float:right"},"section_param_id":411,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:41.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T03:20:52.000Z","id":4122,"page_layout_id":278,"page_layout_root_id":270,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:12px 0px 0px 0px"},"section_param_id":412,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:41.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T03:20:52.000Z","id":4123,"page_layout_id":278,"page_layout_root_id":270,"pvalue":{},"section_param_id":413,"theme_id":5,"unset":null,"updated_at":"2014-07-27T03:20:52.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T03:20:52.000Z","id":4124,"page_layout_id":278,"page_layout_root_id":270,"pvalue":{},"section_param_id":414,"theme_id":5,"unset":null,"updated_at":"2014-07-27T03:20:52.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T03:20:52.000Z","id":4125,"page_layout_id":278,"page_layout_root_id":270,"pvalue":{},"section_param_id":415,"theme_id":5,"unset":null,"updated_at":"2014-07-27T03:20:52.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T03:20:53.000Z","id":4126,"page_layout_id":278,"page_layout_root_id":270,"pvalue":{},"section_param_id":416,"theme_id":5,"unset":null,"updated_at":"2014-07-27T03:20:53.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T03:20:53.000Z","id":4127,"page_layout_id":278,"page_layout_root_id":270,"pvalue":{},"section_param_id":417,"theme_id":5,"unset":null,"updated_at":"2014-07-27T03:20:53.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T03:20:53.000Z","id":4128,"page_layout_id":278,"page_layout_root_id":270,"pvalue":{"49unset":"0","49":"color:white"},"section_param_id":418,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:41.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T03:20:53.000Z","id":4129,"page_layout_id":278,"page_layout_root_id":270,"pvalue":{},"section_param_id":419,"theme_id":5,"unset":null,"updated_at":"2014-07-27T03:20:53.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4134,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{},"section_param_id":420,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4141,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{"32unset":"1","32":"padding:0px 0px 0px 0px"},"section_param_id":421,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:41.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4142,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{},"section_param_id":421,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4146,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":422,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4151,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{},"section_param_id":423,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4158,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{},"section_param_id":424,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4159,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{},"section_param_id":424,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4163,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":425,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4168,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{},"section_param_id":426,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4175,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{},"section_param_id":427,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4176,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{},"section_param_id":427,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4180,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":428,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4185,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{},"section_param_id":429,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4192,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{"32unset":"0","32":"padding:5px 0px 0px 15px"},"section_param_id":430,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:41.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4193,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{"32unset":"0","32":"padding:5px 0px 0px 15px"},"section_param_id":430,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:41.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4197,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":431,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4202,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{},"section_param_id":432,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4209,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{},"section_param_id":433,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4210,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{},"section_param_id":433,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4214,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":434,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4219,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{},"section_param_id":435,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4226,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{},"section_param_id":436,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4227,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{},"section_param_id":436,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4231,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":437,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4236,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{},"section_param_id":438,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4243,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{},"section_param_id":439,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4244,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{},"section_param_id":439,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4248,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":440,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4253,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{},"section_param_id":441,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4260,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{},"section_param_id":442,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4261,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{},"section_param_id":442,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4265,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":443,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4270,"page_layout_id":277,"page_layout_root_id":270,"pvalue":{},"section_param_id":444,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4277,"page_layout_id":283,"page_layout_root_id":270,"pvalue":{},"section_param_id":445,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4278,"page_layout_id":286,"page_layout_root_id":270,"pvalue":{},"section_param_id":445,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T04:41:03.000Z","id":4282,"page_layout_id":275,"page_layout_root_id":270,"pvalue":{},"section_param_id":446,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T05:07:38.000Z","id":4290,"page_layout_id":361,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-27T05:07:38.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T05:07:38.000Z","id":4291,"page_layout_id":361,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:200px","15unset":"0","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:41.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T05:07:39.000Z","id":4292,"page_layout_id":361,"page_layout_root_id":270,"pvalue":{"15hidden":"1","15unset":"0","15":"height:190px","31unset":"0","31":"margin:auto auto 10px auto"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:41.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T05:07:39.000Z","id":4293,"page_layout_id":361,"page_layout_root_id":270,"pvalue":{"3unset":"0","3":"background-image:howbuy.jpg","4unset":"0","4":"background-position:center center"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:41.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T05:07:39.000Z","id":4294,"page_layout_id":361,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-27T05:07:39.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T05:11:43.000Z","id":4295,"page_layout_id":362,"page_layout_root_id":270,"pvalue":{},"section_param_id":50,"theme_id":5,"unset":null,"updated_at":"2014-07-27T05:11:43.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T05:11:43.000Z","id":4296,"page_layout_id":362,"page_layout_root_id":270,"pvalue":{},"section_param_id":51,"theme_id":5,"unset":null,"updated_at":"2014-07-27T05:11:43.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T05:11:43.000Z","id":4297,"page_layout_id":362,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":52,"theme_id":5,"unset":null,"updated_at":"2014-07-31T14:19:41.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T05:11:43.000Z","id":4298,"page_layout_id":362,"page_layout_root_id":270,"pvalue":{},"section_param_id":53,"theme_id":5,"unset":null,"updated_at":"2014-07-27T05:11:43.000Z"},{"computed_pvalue":null,"created_at":"2014-07-27T05:11:43.000Z","id":4299,"page_layout_id":362,"page_layout_root_id":270,"pvalue":{},"section_param_id":54,"theme_id":5,"unset":null,"updated_at":"2014-07-27T05:11:43.000Z"}],"page_layouts":[{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:57.000Z","data_filter":"","data_source":"","id":270,"is_enabled":true,"is_full_html":true,"lft":1,"parent_id":null,"rgt":174,"root_id":270,"section_context":"","section_id":75,"section_instance":2,"site_id":2,"slug":"root--3","title":"root","updated_at":"2014-07-12T06:27:38.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:57.000Z","data_filter":"","data_source":"","id":271,"is_enabled":true,"is_full_html":false,"lft":2,"parent_id":270,"rgt":11,"root_id":270,"section_context":"","section_id":2,"section_instance":1,"site_id":2,"slug":"header--3","title":"Header","updated_at":"2014-07-22T15:16:20.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":272,"is_enabled":true,"is_full_html":false,"lft":3,"parent_id":271,"rgt":10,"root_id":270,"section_context":"","section_id":2,"section_instance":20,"site_id":2,"slug":"container--30","title":"container","updated_at":"2014-07-12T06:27:38.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":273,"is_enabled":true,"is_full_html":false,"lft":4,"parent_id":272,"rgt":5,"root_id":270,"section_context":"","section_id":97,"section_instance":1,"site_id":2,"slug":"logo--3","title":"Logo","updated_at":"2014-07-02T13:33:58.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":274,"is_enabled":true,"is_full_html":false,"lft":6,"parent_id":272,"rgt":9,"root_id":270,"section_context":"","section_id":2,"section_instance":21,"site_id":2,"slug":"container--31","title":"container","updated_at":"2014-07-12T06:27:38.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":275,"is_enabled":true,"is_full_html":false,"lft":7,"parent_id":274,"rgt":8,"root_id":270,"section_context":"","section_id":101,"section_instance":2,"site_id":2,"slug":"logged-unlogged-menu--3","title":"logged&unlogged menu","updated_at":"2014-07-12T06:27:38.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-26T13:01:44.000Z","data_filter":"","data_source":"","id":355,"is_enabled":true,"is_full_html":false,"lft":12,"parent_id":270,"rgt":19,"root_id":270,"section_context":"","section_id":2,"section_instance":37,"site_id":2,"slug":"container37--2","title":"container37","updated_at":"2014-07-26T13:01:44.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":276,"is_enabled":true,"is_full_html":false,"lft":13,"parent_id":355,"rgt":18,"root_id":270,"section_context":"","section_id":2,"section_instance":19,"site_id":2,"slug":"container--32","title":"container","updated_at":"2014-07-12T06:27:38.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":277,"is_enabled":true,"is_full_html":false,"lft":14,"parent_id":276,"rgt":15,"root_id":270,"section_context":"","section_id":3,"section_instance":3,"site_id":2,"slug":"main-menu--3","title":"Main menu","updated_at":"2014-07-02T13:33:58.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":278,"is_enabled":true,"is_full_html":false,"lft":16,"parent_id":276,"rgt":17,"root_id":270,"section_context":"","section_id":121,"section_instance":1,"site_id":2,"slug":"mini-cart--2","title":"Mini cart","updated_at":"2014-07-27T03:20:52.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-12T04:07:02.000Z","data_filter":"","data_source":"","id":333,"is_enabled":true,"is_full_html":false,"lft":20,"parent_id":270,"rgt":23,"root_id":270,"section_context":"home","section_id":2,"section_instance":26,"site_id":2,"slug":"container--42","title":"container","updated_at":"2014-07-22T14:22:01.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-09T13:01:29.000Z","data_filter":"","data_source":"","id":332,"is_enabled":true,"is_full_html":false,"lft":21,"parent_id":333,"rgt":22,"root_id":270,"section_context":"","section_id":114,"section_instance":1,"site_id":2,"slug":"slider","title":"Slider","updated_at":"2014-07-12T06:27:40.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-27T05:07:38.000Z","data_filter":"","data_source":"","id":361,"is_enabled":true,"is_full_html":false,"lft":24,"parent_id":270,"rgt":27,"root_id":270,"section_context":"list,detail","section_id":2,"section_instance":41,"site_id":2,"slug":"container41","title":"container41","updated_at":"2014-07-27T14:20:43.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-27T05:11:43.000Z","data_filter":"","data_source":"","id":362,"is_enabled":true,"is_full_html":false,"lft":25,"parent_id":361,"rgt":26,"root_id":270,"section_context":"","section_id":11,"section_instance":3,"site_id":2,"slug":"text3--2","title":"text3","updated_at":"2014-07-27T05:11:43.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":279,"is_enabled":true,"is_full_html":false,"lft":28,"parent_id":270,"rgt":165,"root_id":270,"section_context":"","section_id":2,"section_instance":2,"site_id":2,"slug":"content--3","title":"content","updated_at":"2014-07-02T13:33:58.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-17T00:19:17.000Z","data_filter":"","data_source":"","id":339,"is_enabled":true,"is_full_html":false,"lft":29,"parent_id":279,"rgt":62,"root_id":270,"section_context":"home","section_id":2,"section_instance":31,"site_id":2,"slug":"container31","title":"container31","updated_at":"2014-07-26T14:40:12.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-17T00:26:45.000Z","data_filter":"","data_source":"","id":340,"is_enabled":true,"is_full_html":false,"lft":30,"parent_id":339,"rgt":51,"root_id":270,"section_context":"","section_id":2,"section_instance":32,"site_id":2,"slug":"leftside","title":"leftside","updated_at":"2014-07-17T00:27:28.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-17T00:28:52.000Z","data_filter":"","data_source":"taxon","id":342,"is_enabled":true,"is_full_html":false,"lft":31,"parent_id":340,"rgt":40,"root_id":270,"section_context":"","section_id":2,"section_instance":31,"site_id":2,"slug":"suits","title":"suits","updated_at":"2014-07-25T12:45:06.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-25T13:58:55.000Z","data_filter":"","data_source":"","id":350,"is_enabled":true,"is_full_html":false,"lft":32,"parent_id":342,"rgt":33,"root_id":270,"section_context":"","section_id":50,"section_instance":2,"site_id":2,"slug":"taxon-name2","title":"taxon name2","updated_at":"2014-07-25T13:58:55.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-25T14:01:47.000Z","data_filter":"","data_source":"","id":351,"is_enabled":true,"is_full_html":false,"lft":34,"parent_id":342,"rgt":39,"root_id":270,"section_context":"","section_id":2,"section_instance":36,"site_id":2,"slug":"container36","title":"container36","updated_at":"2014-07-25T14:01:47.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-24T23:40:52.000Z","data_filter":"","data_source":"gpvs","id":348,"is_enabled":true,"is_full_html":false,"lft":35,"parent_id":351,"rgt":38,"root_id":270,"section_context":"","section_id":2,"section_instance":34,"site_id":2,"slug":"container34","title":"container34","updated_at":"2014-07-24T23:43:30.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-17T09:10:10.000Z","data_filter":"","data_source":"","id":344,"is_enabled":true,"is_full_html":false,"lft":36,"parent_id":348,"rgt":37,"root_id":270,"section_context":"","section_id":17,"section_instance":2,"site_id":2,"slug":"product-image2","title":"product image2","updated_at":"2014-07-17T09:10:10.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-17T00:29:02.000Z","data_filter":"","data_source":"taxon","id":343,"is_enabled":true,"is_full_html":false,"lft":41,"parent_id":340,"rgt":50,"root_id":270,"section_context":"","section_id":2,"section_instance":32,"site_id":2,"slug":"fabrics","title":"fabrics","updated_at":"2014-07-25T12:48:48.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-26T13:30:46.000Z","data_filter":"","data_source":"","id":356,"is_enabled":true,"is_full_html":false,"lft":42,"parent_id":343,"rgt":43,"root_id":270,"section_context":"","section_id":50,"section_instance":3,"site_id":2,"slug":"taxon-name3","title":"taxon name3","updated_at":"2014-07-26T13:30:46.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-26T13:30:57.000Z","data_filter":"","data_source":"","id":357,"is_enabled":true,"is_full_html":false,"lft":44,"parent_id":343,"rgt":49,"root_id":270,"section_context":"","section_id":2,"section_instance":38,"site_id":2,"slug":"container38","title":"container38","updated_at":"2014-07-26T13:30:57.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-24T23:41:13.000Z","data_filter":"","data_source":"gpvs","id":349,"is_enabled":true,"is_full_html":false,"lft":45,"parent_id":357,"rgt":48,"root_id":270,"section_context":"","section_id":2,"section_instance":35,"site_id":2,"slug":"container35","title":"container35","updated_at":"2014-07-24T23:43:38.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-17T09:13:54.000Z","data_filter":"","data_source":"","id":345,"is_enabled":true,"is_full_html":false,"lft":46,"parent_id":349,"rgt":47,"root_id":270,"section_context":"","section_id":17,"section_instance":3,"site_id":2,"slug":"product-image3","title":"product image3","updated_at":"2014-07-17T09:13:54.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-17T00:26:54.000Z","data_filter":"","data_source":"","id":341,"is_enabled":true,"is_full_html":false,"lft":52,"parent_id":339,"rgt":61,"root_id":270,"section_context":"","section_id":2,"section_instance":33,"site_id":2,"slug":"rightside","title":"rightside","updated_at":"2014-07-17T00:27:40.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-26T04:58:58.000Z","data_filter":"","data_source":"","id":353,"is_enabled":true,"is_full_html":false,"lft":53,"parent_id":341,"rgt":60,"root_id":270,"section_context":"","section_id":2,"section_instance":37,"site_id":2,"slug":"container37","title":"container37","updated_at":"2014-07-26T04:58:58.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-26T04:59:54.000Z","data_filter":"","data_source":"","id":354,"is_enabled":true,"is_full_html":false,"lft":54,"parent_id":353,"rgt":55,"root_id":270,"section_context":"","section_id":40,"section_instance":3,"site_id":2,"slug":"taxonomy-name3","title":"taxonomy name3","updated_at":"2014-07-26T04:59:54.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-17T09:14:54.000Z","data_filter":"","data_source":"taxon","id":346,"is_enabled":true,"is_full_html":false,"lft":56,"parent_id":353,"rgt":59,"root_id":270,"section_context":"","section_id":2,"section_instance":33,"site_id":2,"slug":"container33","title":"container33","updated_at":"2014-07-26T03:15:19.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-26T03:12:37.000Z","data_filter":"","data_source":"","id":352,"is_enabled":true,"is_full_html":false,"lft":57,"parent_id":346,"rgt":58,"root_id":270,"section_context":"","section_id":119,"section_instance":1,"site_id":2,"slug":"taxon-icon1","title":"Taxon icon1","updated_at":"2014-07-26T03:12:37.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":280,"is_enabled":true,"is_full_html":false,"lft":63,"parent_id":279,"rgt":76,"root_id":270,"section_context":"list,detail","section_id":2,"section_instance":4,"site_id":2,"slug":"lftnav--3","title":"lftnav","updated_at":"2014-07-27T02:04:37.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":281,"is_enabled":true,"is_full_html":false,"lft":64,"parent_id":280,"rgt":69,"root_id":270,"section_context":"","section_id":2,"section_instance":12,"site_id":2,"slug":"container--33","title":"container","updated_at":"2014-07-12T06:27:38.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":282,"is_enabled":true,"is_full_html":false,"lft":65,"parent_id":281,"rgt":66,"root_id":270,"section_context":"","section_id":40,"section_instance":3,"site_id":2,"slug":"taxonomy-name--5","title":"taxonomy name","updated_at":"2014-07-12T06:27:38.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":283,"is_enabled":true,"is_full_html":false,"lft":67,"parent_id":281,"rgt":68,"root_id":270,"section_context":"","section_id":6,"section_instance":1,"site_id":2,"slug":"vmenu--5","title":"vmenu","updated_at":"2014-07-12T06:27:38.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":284,"is_enabled":true,"is_full_html":false,"lft":70,"parent_id":280,"rgt":75,"root_id":270,"section_context":"","section_id":2,"section_instance":13,"site_id":2,"slug":"container--34","title":"container","updated_at":"2014-07-12T06:27:38.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":285,"is_enabled":true,"is_full_html":false,"lft":71,"parent_id":284,"rgt":72,"root_id":270,"section_context":"","section_id":40,"section_instance":3,"site_id":2,"slug":"taxonomy-name--6","title":"taxonomy name","updated_at":"2014-07-12T06:27:38.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":286,"is_enabled":true,"is_full_html":false,"lft":73,"parent_id":284,"rgt":74,"root_id":270,"section_context":"","section_id":6,"section_instance":2,"site_id":2,"slug":"vmenu--6","title":"vmenu","updated_at":"2014-07-12T06:27:38.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":287,"is_enabled":true,"is_full_html":false,"lft":77,"parent_id":279,"rgt":162,"root_id":270,"section_context":"","section_id":2,"section_instance":5,"site_id":2,"slug":"main-content--3","title":"main content","updated_at":"2014-07-02T13:33:58.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"gpvs","id":288,"is_enabled":true,"is_full_html":false,"lft":78,"parent_id":287,"rgt":87,"root_id":270,"section_context":"list","section_id":2,"section_instance":6,"site_id":2,"slug":"product-list--3","title":"product list","updated_at":"2014-07-02T13:33:58.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":289,"is_enabled":true,"is_full_html":false,"lft":79,"parent_id":288,"rgt":86,"root_id":270,"section_context":"","section_id":2,"section_instance":8,"site_id":2,"slug":"container--35","title":"container","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":290,"is_enabled":true,"is_full_html":false,"lft":80,"parent_id":289,"rgt":81,"root_id":270,"section_context":"","section_id":17,"section_instance":1,"site_id":2,"slug":"product-image--3","title":"product image","updated_at":"2014-07-02T13:33:58.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":291,"is_enabled":true,"is_full_html":false,"lft":82,"parent_id":289,"rgt":83,"root_id":270,"section_context":"","section_id":13,"section_instance":3,"site_id":2,"slug":"product-name--5","title":"product name","updated_at":"2014-07-02T13:33:58.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":292,"is_enabled":true,"is_full_html":false,"lft":84,"parent_id":289,"rgt":85,"root_id":270,"section_context":"","section_id":30,"section_instance":2,"site_id":2,"slug":"product-price--5","title":"product price","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"this_product","id":293,"is_enabled":true,"is_full_html":false,"lft":88,"parent_id":287,"rgt":117,"root_id":270,"section_context":"detail","section_id":2,"section_instance":7,"site_id":2,"slug":"product-detail--3","title":"product detail","updated_at":"2014-07-02T13:33:58.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":294,"is_enabled":true,"is_full_html":false,"lft":89,"parent_id":293,"rgt":94,"root_id":270,"section_context":"","section_id":2,"section_instance":10,"site_id":2,"slug":"container--36","title":"container","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":295,"is_enabled":true,"is_full_html":false,"lft":90,"parent_id":294,"rgt":91,"root_id":270,"section_context":"","section_id":94,"section_instance":2,"site_id":2,"slug":"image-with-thumbnails--3","title":"image with thumbnails","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":296,"is_enabled":true,"is_full_html":false,"lft":92,"parent_id":294,"rgt":93,"root_id":270,"section_context":"","section_id":28,"section_instance":2,"site_id":2,"slug":"product_properties--3","title":"product_properties","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":297,"is_enabled":true,"is_full_html":false,"lft":95,"parent_id":293,"rgt":112,"root_id":270,"section_context":"","section_id":2,"section_instance":9,"site_id":2,"slug":"container--37","title":"container","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":298,"is_enabled":true,"is_full_html":false,"lft":96,"parent_id":297,"rgt":97,"root_id":270,"section_context":"","section_id":13,"section_instance":3,"site_id":2,"slug":"product-name--6","title":"product name","updated_at":"2014-07-02T13:33:58.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":300,"is_enabled":true,"is_full_html":false,"lft":98,"parent_id":297,"rgt":111,"root_id":270,"section_context":"","section_id":2,"section_instance":11,"site_id":2,"slug":"container--38","title":"container","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":301,"is_enabled":true,"is_full_html":false,"lft":99,"parent_id":300,"rgt":100,"root_id":270,"section_context":"","section_id":107,"section_instance":1,"site_id":2,"slug":"product-option-values--3","title":"Product option values","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":302,"is_enabled":true,"is_full_html":false,"lft":101,"parent_id":300,"rgt":110,"root_id":270,"section_context":"","section_id":2,"section_instance":25,"site_id":2,"slug":"container--39","title":"container","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":303,"is_enabled":true,"is_full_html":false,"lft":102,"parent_id":302,"rgt":103,"root_id":270,"section_context":"","section_id":30,"section_instance":1,"site_id":2,"slug":"product-price--6","title":"product price","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":304,"is_enabled":true,"is_full_html":false,"lft":104,"parent_id":302,"rgt":109,"root_id":270,"section_context":"","section_id":2,"section_instance":24,"site_id":2,"slug":"container--40","title":"container","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":305,"is_enabled":true,"is_full_html":false,"lft":105,"parent_id":304,"rgt":106,"root_id":270,"section_context":"","section_id":32,"section_instance":2,"site_id":2,"slug":"product-quantity--3","title":"product quantity","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":306,"is_enabled":true,"is_full_html":false,"lft":107,"parent_id":304,"rgt":108,"root_id":270,"section_context":"","section_id":34,"section_instance":2,"site_id":2,"slug":"product-atc--3","title":"product atc","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-27T02:08:02.000Z","data_filter":"","data_source":"","id":359,"is_enabled":true,"is_full_html":false,"lft":113,"parent_id":293,"rgt":116,"root_id":270,"section_context":"","section_id":2,"section_instance":40,"site_id":2,"slug":"container40","title":"container40","updated_at":"2014-07-27T02:08:02.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":299,"is_enabled":true,"is_full_html":false,"lft":114,"parent_id":359,"rgt":115,"root_id":270,"section_context":"","section_id":15,"section_instance":1,"site_id":2,"slug":"product-description--3","title":"product description","updated_at":"2014-07-02T13:33:58.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":307,"is_enabled":true,"is_full_html":false,"lft":118,"parent_id":287,"rgt":161,"root_id":270,"section_context":"cart,checkout,thanks,account,signup,login,password","section_id":2,"section_instance":14,"site_id":2,"slug":"other-pages--3","title":"other pages","updated_at":"2014-07-02T13:33:58.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":308,"is_enabled":true,"is_full_html":false,"lft":119,"parent_id":307,"rgt":120,"root_id":270,"section_context":"","section_id":50,"section_instance":1,"site_id":2,"slug":"taxon-name--3","title":"taxon name","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":309,"is_enabled":true,"is_full_html":false,"lft":121,"parent_id":307,"rgt":126,"root_id":270,"section_context":"cart","section_id":36,"section_instance":1,"site_id":2,"slug":"cart--3","title":"cart","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":310,"is_enabled":true,"is_full_html":false,"lft":122,"parent_id":309,"rgt":123,"root_id":270,"section_context":"","section_id":42,"section_instance":2,"site_id":2,"slug":"cart-items--3","title":"cart items","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":311,"is_enabled":true,"is_full_html":false,"lft":124,"parent_id":309,"rgt":125,"root_id":270,"section_context":"","section_id":44,"section_instance":2,"site_id":2,"slug":"order-total-price--3","title":"order total price","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":312,"is_enabled":true,"is_full_html":false,"lft":127,"parent_id":307,"rgt":132,"root_id":270,"section_context":"checkout","section_id":46,"section_instance":2,"site_id":2,"slug":"checkout--3","title":"checkout","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:58.000Z","data_filter":"","data_source":"","id":313,"is_enabled":true,"is_full_html":false,"lft":128,"parent_id":312,"rgt":129,"root_id":270,"section_context":"","section_id":69,"section_instance":1,"site_id":2,"slug":"ship-form--3","title":"ship form","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:59.000Z","data_filter":"","data_source":"","id":314,"is_enabled":true,"is_full_html":false,"lft":130,"parent_id":312,"rgt":131,"root_id":270,"section_context":"","section_id":72,"section_instance":1,"site_id":2,"slug":"payment-form--3","title":"payment form","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:59.000Z","data_filter":"","data_source":"","id":315,"is_enabled":true,"is_full_html":false,"lft":133,"parent_id":307,"rgt":142,"root_id":270,"section_context":"thanks","section_id":2,"section_instance":18,"site_id":2,"slug":"thanks--3","title":"thanks","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:59.000Z","data_filter":"","data_source":"","id":316,"is_enabled":true,"is_full_html":false,"lft":134,"parent_id":315,"rgt":139,"root_id":270,"section_context":"","section_id":2,"section_instance":23,"site_id":2,"slug":"container--41","title":"container","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:59.000Z","data_filter":"","data_source":"","id":317,"is_enabled":true,"is_full_html":false,"lft":135,"parent_id":316,"rgt":136,"root_id":270,"section_context":"","section_id":52,"section_instance":1,"site_id":2,"slug":"order-address--3","title":"order address","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:59.000Z","data_filter":"","data_source":"","id":318,"is_enabled":true,"is_full_html":false,"lft":137,"parent_id":316,"rgt":138,"root_id":270,"section_context":"","section_id":55,"section_instance":1,"site_id":2,"slug":"order-payment--3","title":"order payment","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:59.000Z","data_filter":"","data_source":"","id":319,"is_enabled":true,"is_full_html":false,"lft":140,"parent_id":315,"rgt":141,"root_id":270,"section_context":"","section_id":58,"section_instance":1,"site_id":2,"slug":"order-items--3","title":"order items","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:59.000Z","data_filter":"","data_source":"","id":320,"is_enabled":true,"is_full_html":false,"lft":143,"parent_id":307,"rgt":148,"root_id":270,"section_context":"account","section_id":2,"section_instance":17,"site_id":2,"slug":"account--3","title":"account","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:59.000Z","data_filter":"","data_source":"","id":321,"is_enabled":true,"is_full_html":false,"lft":144,"parent_id":320,"rgt":145,"root_id":270,"section_context":"","section_id":85,"section_instance":1,"site_id":2,"slug":"profile--3","title":"profile","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:59.000Z","data_filter":"","data_source":"","id":322,"is_enabled":true,"is_full_html":false,"lft":146,"parent_id":320,"rgt":147,"root_id":270,"section_context":"","section_id":82,"section_instance":1,"site_id":2,"slug":"order-list--3","title":"order list","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:59.000Z","data_filter":"","data_source":"","id":323,"is_enabled":true,"is_full_html":false,"lft":149,"parent_id":307,"rgt":152,"root_id":270,"section_context":"login","section_id":2,"section_instance":15,"site_id":2,"slug":"login--3","title":"login","updated_at":"2014-07-02T13:33:59.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:59.000Z","data_filter":"","data_source":"","id":324,"is_enabled":true,"is_full_html":false,"lft":150,"parent_id":323,"rgt":151,"root_id":270,"section_context":"","section_id":61,"section_instance":1,"site_id":2,"slug":"login-form--3","title":"login form","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:59.000Z","data_filter":"","data_source":"","id":325,"is_enabled":true,"is_full_html":false,"lft":153,"parent_id":307,"rgt":156,"root_id":270,"section_context":"signup","section_id":2,"section_instance":16,"site_id":2,"slug":"signup--3","title":"signup","updated_at":"2014-07-02T13:33:59.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:59.000Z","data_filter":"","data_source":"","id":326,"is_enabled":true,"is_full_html":false,"lft":154,"parent_id":325,"rgt":155,"root_id":270,"section_context":"","section_id":64,"section_instance":1,"site_id":2,"slug":"sign-up-form--3","title":"sign up form","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:59.000Z","data_filter":"","data_source":"","id":327,"is_enabled":true,"is_full_html":false,"lft":157,"parent_id":307,"rgt":160,"root_id":270,"section_context":"password","section_id":2,"section_instance":22,"site_id":2,"slug":"password--3","title":"password","updated_at":"2014-07-02T13:33:59.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:59.000Z","data_filter":"","data_source":"","id":328,"is_enabled":true,"is_full_html":false,"lft":158,"parent_id":327,"rgt":159,"root_id":270,"section_context":"","section_id":104,"section_instance":1,"site_id":2,"slug":"password-recover-form--3","title":"password recover form","updated_at":"2014-07-12T06:27:39.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-17T09:15:31.000Z","data_filter":"","data_source":"","id":347,"is_enabled":true,"is_full_html":false,"lft":163,"parent_id":279,"rgt":164,"root_id":270,"section_context":"","section_id":11,"section_instance":3,"site_id":2,"slug":"text3","title":"text3","updated_at":"2014-07-17T09:15:31.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:59.000Z","data_filter":"","data_source":"","id":329,"is_enabled":true,"is_full_html":false,"lft":166,"parent_id":270,"rgt":171,"root_id":270,"section_context":"","section_id":2,"section_instance":3,"site_id":2,"slug":"footer--3","title":"footer","updated_at":"2014-07-02T13:33:59.000Z"},{"copy_from_root_id":0,"created_at":"2014-07-26T14:41:26.000Z","data_filter":"","data_source":"","id":358,"is_enabled":true,"is_full_html":false,"lft":167,"parent_id":329,"rgt":170,"root_id":270,"section_context":"","section_id":2,"section_instance":39,"site_id":2,"slug":"container39","title":"container39","updated_at":"2014-07-26T14:41:26.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:59.000Z","data_filter":"","data_source":"","id":330,"is_enabled":true,"is_full_html":false,"lft":168,"parent_id":358,"rgt":169,"root_id":270,"section_context":"","section_id":11,"section_instance":1,"site_id":2,"slug":"copyright--3","title":"copyright","updated_at":"2014-07-02T13:33:59.000Z"},{"copy_from_root_id":208,"created_at":"2014-07-02T13:33:59.000Z","data_filter":"","data_source":"","id":331,"is_enabled":true,"is_full_html":false,"lft":172,"parent_id":270,"rgt":173,"root_id":270,"section_context":"","section_id":90,"section_instance":2,"site_id":2,"slug":"dialog--3","title":"dialog","updated_at":"2014-07-12T06:27:39.000Z"}],"template_files":[{"attachment_content_type":"image/jpeg","attachment_file_name":"6a5e31b1jw1doccdf5tdqj.jpg","attachment_file_size":16469,"attachment_height":null,"attachment_updated_at":"2014-07-09T12:28:20.000Z","attachment_width":null,"created_at":"2014-07-09T12:28:20.000Z","id":18,"theme_id":5},{"attachment_content_type":"image/jpeg","attachment_file_name":"ushan-logo.jpg","attachment_file_size":6834,"attachment_height":null,"attachment_updated_at":"2014-07-09T12:50:23.000Z","attachment_width":null,"created_at":"2014-07-09T12:50:23.000Z","id":19,"theme_id":5},{"attachment_content_type":"image/gif","attachment_file_name":"title_bg.gif","attachment_file_size":1340,"attachment_height":null,"attachment_updated_at":"2014-07-26T01:36:57.000Z","attachment_width":null,"created_at":"2014-07-26T01:36:57.000Z","id":20,"theme_id":5},{"attachment_content_type":"image/jpeg","attachment_file_name":"howbuy.jpg","attachment_file_size":59008,"attachment_height":null,"attachment_updated_at":"2014-07-27T05:59:59.000Z","attachment_width":null,"created_at":"2014-07-27T05:59:59.000Z","id":21,"theme_id":5},{"attachment_content_type":"image/gif","attachment_file_name":"nav_bg_40px.gif","attachment_file_size":255,"attachment_height":null,"attachment_updated_at":"2014-07-27T13:43:43.000Z","attachment_width":null,"created_at":"2014-07-27T13:43:43.000Z","id":22,"theme_id":5},{"attachment_content_type":"image/gif","attachment_file_name":"tab_on_1px.gif","attachment_file_size":452,"attachment_height":null,"attachment_updated_at":"2014-07-27T13:45:16.000Z","attachment_width":null,"created_at":"2014-07-27T13:45:16.000Z","id":23,"theme_id":5},{"attachment_content_type":"image/jpeg","attachment_file_name":"tiao.jpg","attachment_file_size":19840,"attachment_height":null,"attachment_updated_at":"2014-07-27T13:50:26.000Z","attachment_width":null,"created_at":"2014-07-27T13:50:26.000Z","id":24,"theme_id":5},{"attachment_content_type":"image/gif","attachment_file_name":"nav_not.gif","attachment_file_size":519,"attachment_height":null,"attachment_updated_at":"2014-07-28T14:08:34.000Z","attachment_width":null,"created_at":"2014-07-28T14:08:34.000Z","id":25,"theme_id":5}],"template_releases":[{"created_at":"2014-07-26T08:14:33.000Z","id":7,"name":"just a test","theme_id":5,"updated_at":"2014-07-26T08:14:33.000Z"}]} \ No newline at end of file diff --git a/spree_theme/db/themes/designs/2_5_1406820030/6a5e31b1jw1doccdf5tdqj.jpg b/spree_theme/db/themes/designs/2_5_1406820030/6a5e31b1jw1doccdf5tdqj.jpg deleted file mode 100644 index 7fff0f08..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1406820030/6a5e31b1jw1doccdf5tdqj.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1406820030/howbuy.jpg b/spree_theme/db/themes/designs/2_5_1406820030/howbuy.jpg deleted file mode 100644 index bfeaca08..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1406820030/howbuy.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1406820030/nav_bg_40px.gif b/spree_theme/db/themes/designs/2_5_1406820030/nav_bg_40px.gif deleted file mode 100644 index c0bffae4..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1406820030/nav_bg_40px.gif and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1406820030/nav_not.gif b/spree_theme/db/themes/designs/2_5_1406820030/nav_not.gif deleted file mode 100644 index c69d645d..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1406820030/nav_not.gif and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1406820030/tab_on_1px.gif b/spree_theme/db/themes/designs/2_5_1406820030/tab_on_1px.gif deleted file mode 100644 index 5e4e066e..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1406820030/tab_on_1px.gif and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1406820030/tiao.jpg b/spree_theme/db/themes/designs/2_5_1406820030/tiao.jpg deleted file mode 100644 index 203d1408..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1406820030/tiao.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1406820030/title_bg.gif b/spree_theme/db/themes/designs/2_5_1406820030/title_bg.gif deleted file mode 100644 index 26c8046b..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1406820030/title_bg.gif and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1406820030/ushan-logo.jpg b/spree_theme/db/themes/designs/2_5_1406820030/ushan-logo.jpg deleted file mode 100644 index 9455e3de..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1406820030/ushan-logo.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1408541541.yml b/spree_theme/db/themes/designs/2_5_1408541541.yml deleted file mode 100644 index 7fa54f2e..00000000 --- a/spree_theme/db/themes/designs/2_5_1408541541.yml +++ /dev/null @@ -1,10487 +0,0 @@ ---- -template: !ruby/object:Spree::TemplateTheme - attributes: - id: 5 - site_id: 2 - page_layout_root_id: 270 - release_id: 7 - title: 服装定制 - slug: '' - assigned_resource_ids: - '273': - :spree/template_file: - - 19 - '275': - :spree/taxon: - - 0 - - 0 - '277': - :spree/taxon: - - 36 - '281': - :spree/taxon: - - 61 - '284': - :spree/taxon: - - 71 - '332': - :spree/taxon: - - 47 - spree/taxon: - - 47 - '335': - :spree/template_text: - - 5 - '343': - :spree/specific_taxon: - - 0 - :spree/taxon: - - 53 - '342': - :spree/specific_taxon: - - 0 - :spree/taxon: - - 52 - '347': - :spree/template_text: - - 6 - '346': - :spree/taxon: - - 0 - '353': - :spree/taxon: - - 54 - '330': - :spree/template_text: - - 7 - '362': - :spree/template_text: - - 8 - created_at: 2014-06-28 10:16:01.000000000 Z - updated_at: 2014-08-09 07:34:42.000000000 Z -param_values: -- !ruby/object:Spree::ParamValue - attributes: - id: 3532 - page_layout_root_id: 270 - page_layout_id: 271 - section_param_id: 6 - theme_id: 5 - pvalue: - '86': '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:02.000000000 Z - updated_at: 2014-08-09 07:34:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3533 - page_layout_root_id: 270 - page_layout_id: 271 - section_param_id: 7 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:none - 101unset: '0' - 21unset: '0' - '21': width:960px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:02.000000000 Z - updated_at: 2014-08-09 07:34:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3534 - page_layout_root_id: 270 - page_layout_id: 271 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:auto auto auto auto - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:03.000000000 Z - updated_at: 2014-08-09 07:34:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3535 - page_layout_root_id: 270 - page_layout_id: 271 - section_param_id: 9 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:03.000000000 Z - updated_at: 2014-08-09 07:34:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &103274600 - id: 3536 - page_layout_root_id: 270 - page_layout_id: 271 - section_param_id: 10 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:03.000000000 Z - updated_at: 2014-08-09 07:34:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3537 - page_layout_root_id: 270 - page_layout_id: 279 - section_param_id: 6 - theme_id: 5 - pvalue: - '86': '1' - 86unset: '0' - 85unset: '0' - '85': clear:none - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:04.000000000 Z - updated_at: 2014-08-09 07:34:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3538 - page_layout_root_id: 270 - page_layout_id: 279 - section_param_id: 7 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:none - 101unset: '0' - 21unset: '0' - '21': width:960px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:04.000000000 Z - updated_at: 2014-08-09 07:34:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3539 - page_layout_root_id: 270 - page_layout_id: 279 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:04.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3540 - page_layout_root_id: 270 - page_layout_id: 279 - section_param_id: 9 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - 2unset: '1' - '2': background-color:yellow - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:04.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3541 - page_layout_root_id: 270 - page_layout_id: 279 - section_param_id: 10 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:04.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &100363720 - id: 3542 - page_layout_root_id: 270 - page_layout_id: 329 - section_param_id: 6 - theme_id: 5 - pvalue: - '86': '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3543 - page_layout_root_id: 270 - page_layout_id: 329 - section_param_id: 7 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '0' - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3544 - page_layout_root_id: 270 - page_layout_id: 329 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 7unset: '0' - '7': border-style:solid none none none - 8unset: '0' - '8': border-width:4px 0px 0px 0px - 6unset: '0' - '6': border-color:#2D2D2F transparent transparent transparent - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3545 - page_layout_root_id: 270 - page_layout_id: 329 - section_param_id: 9 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - 2unset: '0' - '2': background-color:#F5F5F5 - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3546 - page_layout_root_id: 270 - page_layout_id: 329 - section_param_id: 10 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3547 - page_layout_root_id: 270 - page_layout_id: 280 - section_param_id: 6 - theme_id: 5 - pvalue: - '86': '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3548 - page_layout_root_id: 270 - page_layout_id: 280 - section_param_id: 7 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '0' - 21unset: '0' - '21': width:200px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3549 - page_layout_root_id: 270 - page_layout_id: 280 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:auto 5px auto auto - 7unset: '0' - '7': border-style:solid solid solid solid - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 6unset: '0' - '6': ! 'border-color:#CDCBCB #CDCBCB #CDCBCB #CDCBCB' - 32unset: '0' - '32': padding:10px 10px 10px 10px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3550 - page_layout_root_id: 270 - page_layout_id: 280 - section_param_id: 9 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - 2unset: '1' - '2': background-color:#FFF8ED - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:05.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3551 - page_layout_root_id: 270 - page_layout_id: 280 - section_param_id: 10 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - 49unset: '1' - '49': color:black - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3552 - page_layout_root_id: 270 - page_layout_id: 287 - section_param_id: 6 - theme_id: 5 - pvalue: - '86': '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3553 - page_layout_root_id: 270 - page_layout_id: 287 - section_param_id: 7 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '0' - 21unset: '0' - '21': width:750px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3554 - page_layout_root_id: 270 - page_layout_id: 287 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3555 - page_layout_root_id: 270 - page_layout_id: 287 - section_param_id: 9 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3556 - page_layout_root_id: 270 - page_layout_id: 287 - section_param_id: 10 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:06.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3557 - page_layout_root_id: 270 - page_layout_id: 288 - section_param_id: 6 - theme_id: 5 - pvalue: - '86': '1' - 86unset: '0' - 85unset: '0' - '85': clear:none - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3558 - page_layout_root_id: 270 - page_layout_id: 288 - section_param_id: 7 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '0' - 21unset: '1' - '21': width:100% - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3559 - page_layout_root_id: 270 - page_layout_id: 288 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3560 - page_layout_root_id: 270 - page_layout_id: 288 - section_param_id: 9 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3561 - page_layout_root_id: 270 - page_layout_id: 288 - section_param_id: 10 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3562 - page_layout_root_id: 270 - page_layout_id: 293 - section_param_id: 6 - theme_id: 5 - pvalue: - '86': '1' - 86unset: '0' - 85unset: '0' - '85': clear:none - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:07.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3563 - page_layout_root_id: 270 - page_layout_id: 293 - section_param_id: 7 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '0' - 21unset: '1' - '21': width:200px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:08.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3564 - page_layout_root_id: 270 - page_layout_id: 293 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:08.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3565 - page_layout_root_id: 270 - page_layout_id: 293 - section_param_id: 9 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:08.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3566 - page_layout_root_id: 270 - page_layout_id: 293 - section_param_id: 10 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:08.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3567 - page_layout_root_id: 270 - page_layout_id: 290 - section_param_id: 65 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:08.000000000 Z - updated_at: 2013-04-08 13:27:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3568 - page_layout_root_id: 270 - page_layout_id: 290 - section_param_id: 66 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 15unset: '0' - '15': height:110px - 21unset: '0' - '21': width:150px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:09.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &96130400 - id: 3569 - page_layout_root_id: 270 - page_layout_id: 290 - section_param_id: 67 - theme_id: 5 - pvalue: - 15hidden: '1' - 7unset: '0' - '7': border-style:solid solid solid solid - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 6unset: '0' - '6': ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - 32unset: '0' - '32': padding:5px 0px 5px 0px - 15unset: '0' - '15': height:98px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:09.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3570 - page_layout_root_id: 270 - page_layout_id: 290 - section_param_id: 68 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:09.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3571 - page_layout_root_id: 270 - page_layout_id: 290 - section_param_id: 69 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 53unset: '0' - '53': text-align:center - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:09.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3572 - page_layout_root_id: 270 - page_layout_id: 299 - section_param_id: 60 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:10.000000000 Z - updated_at: 2013-04-08 13:27:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3573 - page_layout_root_id: 270 - page_layout_id: 299 - section_param_id: 61 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:10.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3574 - page_layout_root_id: 270 - page_layout_id: 299 - section_param_id: 62 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:10px 0px 10px 0px - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:10.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3575 - page_layout_root_id: 270 - page_layout_id: 299 - section_param_id: 63 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:10.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3576 - page_layout_root_id: 270 - page_layout_id: 299 - section_param_id: 64 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 24unset: '0' - '24': font-size:90% - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:10.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3577 - page_layout_root_id: 270 - page_layout_id: 330 - section_param_id: 50 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:11.000000000 Z - updated_at: 2013-04-08 13:27:11.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3578 - page_layout_root_id: 270 - page_layout_id: 330 - section_param_id: 51 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:11.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3579 - page_layout_root_id: 270 - page_layout_id: 330 - section_param_id: 52 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:11.000000000 Z - updated_at: 2014-08-09 07:34:34.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3580 - page_layout_root_id: 270 - page_layout_id: 330 - section_param_id: 53 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:11.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3581 - page_layout_root_id: 270 - page_layout_id: 330 - section_param_id: 54 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-08 13:27:11.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3582 - page_layout_root_id: 270 - page_layout_id: 289 - section_param_id: 6 - theme_id: 5 - pvalue: - '86': '1' - 86unset: '0' - 85unset: '0' - '85': clear:both - unset: - computed_pvalue: - created_at: 2013-04-08 14:05:42.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3583 - page_layout_root_id: 270 - page_layout_id: 289 - section_param_id: 7 - theme_id: 5 - pvalue: - '15': height:160px - 15unset: '1' - '101': float:left - 101unset: '0' - 21unset: '0' - '21': width:160px - unset: - computed_pvalue: - created_at: 2013-04-08 14:05:42.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3584 - page_layout_root_id: 270 - page_layout_id: 289 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:auto auto 20px auto - 15unset: '1' - '15': height:140px - 32unset: '1' - '32': padding:0px 0px 0px 0px - 8unset: '1' - '8': border-width:0px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2013-04-08 14:05:42.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3585 - page_layout_root_id: 270 - page_layout_id: 289 - section_param_id: 9 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 14:05:42.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3586 - page_layout_root_id: 270 - page_layout_id: 289 - section_param_id: 10 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-08 14:05:42.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3587 - page_layout_root_id: 270 - page_layout_id: 297 - section_param_id: 6 - theme_id: 5 - pvalue: - '86': '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-09 13:12:32.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3588 - page_layout_root_id: 270 - page_layout_id: 297 - section_param_id: 7 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '0' - 21unset: '0' - '21': width:350px - unset: - computed_pvalue: - created_at: 2013-04-09 13:12:32.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3589 - page_layout_root_id: 270 - page_layout_id: 297 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-09 13:12:32.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3590 - page_layout_root_id: 270 - page_layout_id: 297 - section_param_id: 9 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-09 13:12:32.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3591 - page_layout_root_id: 270 - page_layout_id: 297 - section_param_id: 10 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-09 13:12:32.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3592 - page_layout_root_id: 270 - page_layout_id: 294 - section_param_id: 6 - theme_id: 5 - pvalue: - '86': '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-12 13:44:05.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3593 - page_layout_root_id: 270 - page_layout_id: 294 - section_param_id: 7 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-12 13:44:05.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3594 - page_layout_root_id: 270 - page_layout_id: 294 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:auto 10px auto auto - unset: - computed_pvalue: - created_at: 2013-04-12 13:44:05.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3595 - page_layout_root_id: 270 - page_layout_id: 294 - section_param_id: 9 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-12 13:44:05.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3596 - page_layout_root_id: 270 - page_layout_id: 294 - section_param_id: 10 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-12 13:44:05.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3597 - page_layout_root_id: 270 - page_layout_id: 303 - section_param_id: 110 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-13 01:32:40.000000000 Z - updated_at: 2014-07-30 23:08:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3598 - page_layout_root_id: 270 - page_layout_id: 303 - section_param_id: 111 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-13 01:32:40.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3599 - page_layout_root_id: 270 - page_layout_id: 303 - section_param_id: 112 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:10px auto 20px auto - unset: - computed_pvalue: - created_at: 2013-04-13 01:32:40.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3600 - page_layout_root_id: 270 - page_layout_id: 303 - section_param_id: 113 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-13 01:32:40.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3601 - page_layout_root_id: 270 - page_layout_id: 303 - section_param_id: 114 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 27unset: '0' - '27': font-weight:bolder - 24unset: '0' - '24': font-size:110% - 49unset: '0' - '49': color:#00ADEE - unset: - computed_pvalue: - created_at: 2013-04-13 01:32:40.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3602 - page_layout_root_id: 270 - page_layout_id: 300 - section_param_id: 6 - theme_id: 5 - pvalue: - '86': '1' - 86unset: '0' - 85unset: '0' - '85': clear:both - unset: - computed_pvalue: - created_at: 2013-04-13 02:35:25.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3603 - page_layout_root_id: 270 - page_layout_id: 300 - section_param_id: 7 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '1' - 21unset: '0' - '21': width:450px - unset: - computed_pvalue: - created_at: 2013-04-13 02:35:25.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3604 - page_layout_root_id: 270 - page_layout_id: 300 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:40px auto auto auto - unset: - computed_pvalue: - created_at: 2013-04-13 02:35:25.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3605 - page_layout_root_id: 270 - page_layout_id: 300 - section_param_id: 9 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-13 02:35:25.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3606 - page_layout_root_id: 270 - page_layout_id: 300 - section_param_id: 10 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-04-13 02:35:26.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3607 - page_layout_root_id: 270 - page_layout_id: 309 - section_param_id: 125 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-16 14:20:10.000000000 Z - updated_at: 2013-04-16 14:20:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3608 - page_layout_root_id: 270 - page_layout_id: 309 - section_param_id: 126 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 21unset: '1' - '21': width:670px - unset: - computed_pvalue: - created_at: 2013-04-16 14:20:10.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3609 - page_layout_root_id: 270 - page_layout_id: 309 - section_param_id: 127 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-04-16 14:20:10.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3610 - page_layout_root_id: 270 - page_layout_id: 309 - section_param_id: 128 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-16 14:20:10.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3611 - page_layout_root_id: 270 - page_layout_id: 309 - section_param_id: 129 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 53unset: '1' - '53': text-align:right - unset: - computed_pvalue: - created_at: 2013-04-16 14:20:10.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3612 - page_layout_root_id: 270 - page_layout_id: 292 - section_param_id: 110 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-04-19 13:03:09.000000000 Z - updated_at: 2013-04-19 13:03:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3613 - page_layout_root_id: 270 - page_layout_id: 292 - section_param_id: 111 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 21unset: '0' - '21': width:150px - unset: - computed_pvalue: - created_at: 2013-04-19 13:03:10.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3614 - page_layout_root_id: 270 - page_layout_id: 292 - section_param_id: 112 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:5px 0px 0px 0px - 31unset: '0' - '31': margin:auto auto 10px auto - unset: - computed_pvalue: - created_at: 2013-04-19 13:03:10.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3615 - page_layout_root_id: 270 - page_layout_id: 292 - section_param_id: 113 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-04-19 13:03:10.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3616 - page_layout_root_id: 270 - page_layout_id: 292 - section_param_id: 114 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - 53unset: '0' - '53': text-align:center - 49unset: '0' - '49': color:#00ADEE - 27unset: '0' - '27': font-weight:bold - unset: - computed_pvalue: - created_at: 2013-04-19 13:03:10.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3617 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 27 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3618 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 28 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3619 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 29 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:0px 0px 0px 20px - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2014-08-09 07:34:35.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3620 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 30 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3621 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 31 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3622 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 32 - theme_id: 5 - pvalue: - 32unset: '0' - '32': padding:5px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3623 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 33 - theme_id: 5 - pvalue: - 54unset: '0' - '54': text-decoration:none - 24unset: '0' - '24': font-size:90% - 49unset: '0' - '49': color:black - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3624 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 34 - theme_id: 5 - pvalue: - 54unset: '0' - '54': text-decoration:underline - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3625 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 35 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3626 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 36 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:54.000000000 Z - updated_at: 2013-10-02 10:20:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3627 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 37 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &103282020 - id: 3628 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 38 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3629 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 39 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3630 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 40 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3631 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 41 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3632 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 42 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-02 10:20:55.000000000 Z - updated_at: 2013-10-02 10:20:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3633 - page_layout_root_id: 270 - page_layout_id: 281 - section_param_id: 6 - theme_id: 5 - pvalue: - '86': '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:36:48.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3634 - page_layout_root_id: 270 - page_layout_id: 281 - section_param_id: 7 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:36:48.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3635 - page_layout_root_id: 270 - page_layout_id: 281 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:auto auto 20px auto - unset: - computed_pvalue: - created_at: 2013-10-05 00:36:48.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3636 - page_layout_root_id: 270 - page_layout_id: 281 - section_param_id: 9 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:36:48.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3637 - page_layout_root_id: 270 - page_layout_id: 281 - section_param_id: 10 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:36:48.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3638 - page_layout_root_id: 270 - page_layout_id: 284 - section_param_id: 6 - theme_id: 5 - pvalue: - '86': '1' - 86unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:37:55.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3639 - page_layout_root_id: 270 - page_layout_id: 284 - section_param_id: 7 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '1' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:37:55.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3640 - page_layout_root_id: 270 - page_layout_id: 284 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-10-05 00:37:55.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3641 - page_layout_root_id: 270 - page_layout_id: 284 - section_param_id: 9 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:37:56.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3642 - page_layout_root_id: 270 - page_layout_id: 284 - section_param_id: 10 - theme_id: 5 - pvalue: - '15': height:100px - 15unset: '0' - '101': float:left - 101unset: '0' - unset: - computed_pvalue: - created_at: 2013-10-05 00:37:56.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3643 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 27 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:16.000000000 Z - updated_at: 2013-10-05 00:38:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3644 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 28 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:16.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3645 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 29 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '1' - '31': margin:auto auto auto 20px - 32unset: '0' - '32': padding:0px 0px 0px 20px - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:16.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3646 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 30 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:16.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3647 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 31 - theme_id: 5 - pvalue: - disabled_ha_ids: '111' - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:16.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3648 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 32 - theme_id: 5 - pvalue: - 32unset: '0' - '32': padding:5px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3649 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 33 - theme_id: 5 - pvalue: - 24unset: '0' - '24': font-size:90% - 49unset: '0' - '49': color:black - 54unset: '0' - '54': text-decoration:none - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3650 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 34 - theme_id: 5 - pvalue: - 54unset: '0' - '54': text-decoration:underline - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3651 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 35 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3652 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 36 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3653 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 37 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3654 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 38 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3655 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 39 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3656 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 40 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3657 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 41 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3658 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 42 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-10-05 00:38:17.000000000 Z - updated_at: 2013-10-05 00:38:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3659 - page_layout_root_id: 270 - page_layout_id: 313 - section_param_id: 210 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:58.000000000 Z - updated_at: 2013-11-02 09:20:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3660 - page_layout_root_id: 270 - page_layout_id: 313 - section_param_id: 211 - theme_id: 5 - pvalue: - 21unset: '0' - '21': width:360px - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:58.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3661 - page_layout_root_id: 270 - page_layout_id: 313 - section_param_id: 212 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:10px 10px 10px 10px - 7unset: '0' - '7': border-style:solid solid solid solid - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 6unset: '0' - '6': ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:58.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3662 - page_layout_root_id: 270 - page_layout_id: 313 - section_param_id: 213 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:58.000000000 Z - updated_at: 2013-11-02 09:20:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3663 - page_layout_root_id: 270 - page_layout_id: 313 - section_param_id: 214 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:59.000000000 Z - updated_at: 2013-11-02 09:20:59.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3664 - page_layout_root_id: 270 - page_layout_id: 313 - section_param_id: 215 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:59.000000000 Z - updated_at: 2013-11-02 09:20:59.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3665 - page_layout_root_id: 270 - page_layout_id: 313 - section_param_id: 216 - theme_id: 5 - pvalue: - 2unset: '1' - '2': background-color:#000000 - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:59.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3666 - page_layout_root_id: 270 - page_layout_id: 313 - section_param_id: 217 - theme_id: 5 - pvalue: - 49unset: '0' - '49': color:#00ADEE - 53unset: '0' - '53': text-align:center - unset: - computed_pvalue: - created_at: 2013-11-02 09:20:59.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3667 - page_layout_root_id: 270 - page_layout_id: 314 - section_param_id: 218 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:08.000000000 Z - updated_at: 2013-11-02 09:21:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3668 - page_layout_root_id: 270 - page_layout_id: 314 - section_param_id: 219 - theme_id: 5 - pvalue: - 21unset: '0' - '21': width:360px - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:08.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3669 - page_layout_root_id: 270 - page_layout_id: 314 - section_param_id: 220 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:10px 20px 10px 20px - 7unset: '0' - '7': border-style:solid solid solid solid - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 6unset: '0' - '6': ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - 31unset: '0' - '31': margin:10px auto 10px auto - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:08.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3670 - page_layout_root_id: 270 - page_layout_id: 314 - section_param_id: 221 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:09.000000000 Z - updated_at: 2013-11-02 09:21:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3671 - page_layout_root_id: 270 - page_layout_id: 314 - section_param_id: 222 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:09.000000000 Z - updated_at: 2013-11-02 09:21:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3672 - page_layout_root_id: 270 - page_layout_id: 314 - section_param_id: 223 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:09.000000000 Z - updated_at: 2013-11-02 09:21:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3673 - page_layout_root_id: 270 - page_layout_id: 314 - section_param_id: 224 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:09.000000000 Z - updated_at: 2013-11-02 09:21:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3674 - page_layout_root_id: 270 - page_layout_id: 314 - section_param_id: 225 - theme_id: 5 - pvalue: - 49unset: '0' - '49': color:#00ADEE - 53unset: '0' - '53': text-align:center - unset: - computed_pvalue: - created_at: 2013-11-02 09:21:09.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3675 - page_layout_root_id: 270 - page_layout_id: 307 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:35:02.000000000 Z - updated_at: 2013-11-02 09:35:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3676 - page_layout_root_id: 270 - page_layout_id: 307 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2013-11-02 09:35:02.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3677 - page_layout_root_id: 270 - page_layout_id: 307 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:35:02.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3678 - page_layout_root_id: 270 - page_layout_id: 307 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:35:02.000000000 Z - updated_at: 2013-11-02 09:35:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3679 - page_layout_root_id: 270 - page_layout_id: 307 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:35:02.000000000 Z - updated_at: 2013-11-02 09:35:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3680 - page_layout_root_id: 270 - page_layout_id: 308 - section_param_id: 160 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:36:17.000000000 Z - updated_at: 2013-11-02 09:36:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3681 - page_layout_root_id: 270 - page_layout_id: 308 - section_param_id: 161 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:36:17.000000000 Z - updated_at: 2013-11-02 09:36:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3682 - page_layout_root_id: 270 - page_layout_id: 308 - section_param_id: 162 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:36:17.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3683 - page_layout_root_id: 270 - page_layout_id: 308 - section_param_id: 163 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:36:17.000000000 Z - updated_at: 2013-11-02 09:36:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3684 - page_layout_root_id: 270 - page_layout_id: 308 - section_param_id: 164 - theme_id: 5 - pvalue: - 24unset: '0' - '24': font-size:150% - unset: - computed_pvalue: - created_at: 2013-11-02 09:36:18.000000000 Z - updated_at: 2014-08-09 07:34:36.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3685 - page_layout_root_id: 270 - page_layout_id: 317 - section_param_id: 165 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2013-11-02 09:37:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3686 - page_layout_root_id: 270 - page_layout_id: 317 - section_param_id: 166 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2013-11-02 09:37:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3687 - page_layout_root_id: 270 - page_layout_id: 317 - section_param_id: 167 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:auto 10px auto 10px - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3688 - page_layout_root_id: 270 - page_layout_id: 317 - section_param_id: 168 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2013-11-02 09:37:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3689 - page_layout_root_id: 270 - page_layout_id: 317 - section_param_id: 169 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2013-11-02 09:37:21.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3690 - page_layout_root_id: 270 - page_layout_id: 317 - section_param_id: 170 - theme_id: 5 - pvalue: - 31unset: '0' - '31': margin:auto auto 10px auto - 7unset: '0' - '7': border-style:none none solid none - 8unset: '0' - '8': border-width:0px 0px 1px 0px - 6unset: '0' - '6': ! 'border-color:transparent transparent #D9D9DB transparent' - 32unset: '0' - '32': padding:5px 0px 5px 0px - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:21.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3691 - page_layout_root_id: 270 - page_layout_id: 317 - section_param_id: 171 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:22.000000000 Z - updated_at: 2013-11-02 09:37:22.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3692 - page_layout_root_id: 270 - page_layout_id: 317 - section_param_id: 172 - theme_id: 5 - pvalue: - '27': font-weight:bold - 54unset: '1' - '54': text-decoration:underline - 53unset: '1' - '53': text-align:left - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:22.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3693 - page_layout_root_id: 270 - page_layout_id: 318 - section_param_id: 173 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:30.000000000 Z - updated_at: 2013-11-02 09:37:30.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3694 - page_layout_root_id: 270 - page_layout_id: 318 - section_param_id: 174 - theme_id: 5 - pvalue: - 21unset: '0' - '21': width:300px - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3695 - page_layout_root_id: 270 - page_layout_id: 318 - section_param_id: 175 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3696 - page_layout_root_id: 270 - page_layout_id: 318 - section_param_id: 176 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2013-11-02 09:37:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3697 - page_layout_root_id: 270 - page_layout_id: 318 - section_param_id: 177 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2013-11-02 09:37:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3698 - page_layout_root_id: 270 - page_layout_id: 318 - section_param_id: 178 - theme_id: 5 - pvalue: - 31unset: '0' - '31': margin:auto auto 10px auto - 32unset: '0' - '32': padding:5px 0px 5px 0px - 7unset: '0' - '7': border-style:none none solid none - 8unset: '0' - '8': border-width:0px 0px 1px 0px - 6unset: '0' - '6': ! 'border-color:transparent transparent #D9D9DB transparent' - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3699 - page_layout_root_id: 270 - page_layout_id: 318 - section_param_id: 179 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2013-11-02 09:37:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3700 - page_layout_root_id: 270 - page_layout_id: 318 - section_param_id: 180 - theme_id: 5 - pvalue: - '27': font-weight:bold - 54unset: '1' - '54': text-decoration:underline - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:31.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3701 - page_layout_root_id: 270 - page_layout_id: 319 - section_param_id: 181 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3702 - page_layout_root_id: 270 - page_layout_id: 319 - section_param_id: 182 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3703 - page_layout_root_id: 270 - page_layout_id: 319 - section_param_id: 183 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3704 - page_layout_root_id: 270 - page_layout_id: 319 - section_param_id: 184 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3705 - page_layout_root_id: 270 - page_layout_id: 319 - section_param_id: 185 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3706 - page_layout_root_id: 270 - page_layout_id: 319 - section_param_id: 186 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3707 - page_layout_root_id: 270 - page_layout_id: 319 - section_param_id: 187 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2013-11-02 09:37:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &103666040 - id: 3708 - page_layout_root_id: 270 - page_layout_id: 319 - section_param_id: 188 - theme_id: 5 - pvalue: - '27': font-weight:bold - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:40.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3709 - page_layout_root_id: 270 - page_layout_id: 321 - section_param_id: 268 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:51.000000000 Z - updated_at: 2013-11-02 09:37:51.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3710 - page_layout_root_id: 270 - page_layout_id: 321 - section_param_id: 269 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:51.000000000 Z - updated_at: 2013-11-02 09:37:51.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3711 - page_layout_root_id: 270 - page_layout_id: 321 - section_param_id: 270 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3712 - page_layout_root_id: 270 - page_layout_id: 321 - section_param_id: 271 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3713 - page_layout_root_id: 270 - page_layout_id: 321 - section_param_id: 272 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3714 - page_layout_root_id: 270 - page_layout_id: 321 - section_param_id: 273 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3715 - page_layout_root_id: 270 - page_layout_id: 321 - section_param_id: 274 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3716 - page_layout_root_id: 270 - page_layout_id: 321 - section_param_id: 275 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:37:52.000000000 Z - updated_at: 2013-11-02 09:37:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3717 - page_layout_root_id: 270 - page_layout_id: 322 - section_param_id: 260 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3718 - page_layout_root_id: 270 - page_layout_id: 322 - section_param_id: 261 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3719 - page_layout_root_id: 270 - page_layout_id: 322 - section_param_id: 262 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3720 - page_layout_root_id: 270 - page_layout_id: 322 - section_param_id: 263 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3721 - page_layout_root_id: 270 - page_layout_id: 322 - section_param_id: 264 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3722 - page_layout_root_id: 270 - page_layout_id: 322 - section_param_id: 265 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3723 - page_layout_root_id: 270 - page_layout_id: 322 - section_param_id: 266 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:01.000000000 Z - updated_at: 2013-11-02 09:38:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3724 - page_layout_root_id: 270 - page_layout_id: 322 - section_param_id: 267 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:38:02.000000000 Z - updated_at: 2013-11-02 09:38:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3725 - page_layout_root_id: 270 - page_layout_id: 323 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:01.000000000 Z - updated_at: 2013-11-02 09:39:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3726 - page_layout_root_id: 270 - page_layout_id: 323 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:01.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3727 - page_layout_root_id: 270 - page_layout_id: 323 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:01.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3728 - page_layout_root_id: 270 - page_layout_id: 323 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:01.000000000 Z - updated_at: 2013-11-02 09:39:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3729 - page_layout_root_id: 270 - page_layout_id: 323 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:01.000000000 Z - updated_at: 2013-11-02 09:39:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3730 - page_layout_root_id: 270 - page_layout_id: 325 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:32.000000000 Z - updated_at: 2013-11-02 09:39:32.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3731 - page_layout_root_id: 270 - page_layout_id: 325 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:33.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3732 - page_layout_root_id: 270 - page_layout_id: 325 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:33.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3733 - page_layout_root_id: 270 - page_layout_id: 325 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:33.000000000 Z - updated_at: 2013-11-02 09:39:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3734 - page_layout_root_id: 270 - page_layout_id: 325 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:33.000000000 Z - updated_at: 2013-11-02 09:39:33.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3735 - page_layout_root_id: 270 - page_layout_id: 324 - section_param_id: 189 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3736 - page_layout_root_id: 270 - page_layout_id: 324 - section_param_id: 190 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3737 - page_layout_root_id: 270 - page_layout_id: 324 - section_param_id: 191 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3738 - page_layout_root_id: 270 - page_layout_id: 324 - section_param_id: 192 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3739 - page_layout_root_id: 270 - page_layout_id: 324 - section_param_id: 193 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3740 - page_layout_root_id: 270 - page_layout_id: 324 - section_param_id: 194 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3741 - page_layout_root_id: 270 - page_layout_id: 324 - section_param_id: 195 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3742 - page_layout_root_id: 270 - page_layout_id: 324 - section_param_id: 196 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:39:53.000000000 Z - updated_at: 2013-11-02 09:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3743 - page_layout_root_id: 270 - page_layout_id: 326 - section_param_id: 197 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3744 - page_layout_root_id: 270 - page_layout_id: 326 - section_param_id: 198 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3745 - page_layout_root_id: 270 - page_layout_id: 326 - section_param_id: 199 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3746 - page_layout_root_id: 270 - page_layout_id: 326 - section_param_id: 200 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3747 - page_layout_root_id: 270 - page_layout_id: 326 - section_param_id: 201 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3748 - page_layout_root_id: 270 - page_layout_id: 326 - section_param_id: 202 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3749 - page_layout_root_id: 270 - page_layout_id: 326 - section_param_id: 203 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3750 - page_layout_root_id: 270 - page_layout_id: 326 - section_param_id: 204 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:40:04.000000000 Z - updated_at: 2013-11-02 09:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3751 - page_layout_root_id: 270 - page_layout_id: 320 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:08.000000000 Z - updated_at: 2013-11-02 09:50:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3752 - page_layout_root_id: 270 - page_layout_id: 320 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:08.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3753 - page_layout_root_id: 270 - page_layout_id: 320 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:08.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3754 - page_layout_root_id: 270 - page_layout_id: 320 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:08.000000000 Z - updated_at: 2013-11-02 09:50:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3755 - page_layout_root_id: 270 - page_layout_id: 320 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:09.000000000 Z - updated_at: 2013-11-02 09:50:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3756 - page_layout_root_id: 270 - page_layout_id: 315 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:37.000000000 Z - updated_at: 2013-11-02 09:50:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3757 - page_layout_root_id: 270 - page_layout_id: 315 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:37.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3758 - page_layout_root_id: 270 - page_layout_id: 315 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:0px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:37.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3759 - page_layout_root_id: 270 - page_layout_id: 315 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:37.000000000 Z - updated_at: 2013-11-02 09:50:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3760 - page_layout_root_id: 270 - page_layout_id: 315 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-02 09:50:37.000000000 Z - updated_at: 2013-11-02 09:50:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3761 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 11 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:07.000000000 Z - updated_at: 2013-11-05 03:16:07.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3762 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 12 - theme_id: 5 - pvalue: - 21unset: '1' - '21': width:960px - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:07.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3763 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 13 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '1' - '32': padding:0px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3764 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 14 - theme_id: 5 - pvalue: - 2unset: '1' - '2': background-color:lime - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3765 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 15 - theme_id: 5 - pvalue: - 27unset: '1' - '27': font-weight:bold - 49unset: '1' - '49': color:white - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3766 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 16 - theme_id: 5 - pvalue: - 32unset: '0' - '32': padding:12px 10px 13px 10px - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3767 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 17 - theme_id: 5 - pvalue: - 54unset: '0' - '54': text-decoration:none - 49unset: '0' - '49': color:white - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3768 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 18 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3769 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 19 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3770 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 20 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3771 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 21 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3772 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 22 - theme_id: 5 - pvalue: - 3unset: '0' - '3': background-image:nav_not.gif - 4unset: '0' - '4': background-position:right top - 5unset: '0' - '5': background-repeat:no-repeat - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3773 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 23 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:08.000000000 Z - updated_at: 2013-11-05 03:16:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3774 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 24 - theme_id: 5 - pvalue: - 3unset: '0' - '3': background-image:tab_on_1px.gif - 4unset: '1' - '4': background-position:left top - 5unset: '0' - '5': background-repeat:repeat - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:09.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3775 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 25 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:09.000000000 Z - updated_at: 2013-11-05 03:16:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3776 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 26 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-05 03:16:09.000000000 Z - updated_at: 2013-11-05 03:16:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3777 - page_layout_root_id: 270 - page_layout_id: 282 - section_param_id: 135 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:08.000000000 Z - updated_at: 2013-11-25 06:53:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3778 - page_layout_root_id: 270 - page_layout_id: 282 - section_param_id: 136 - theme_id: 5 - pvalue: - 21unset: '0' - '21': width:160px - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:08.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3779 - page_layout_root_id: 270 - page_layout_id: 282 - section_param_id: 137 - theme_id: 5 - pvalue: - 15hidden: '1' - 7unset: '0' - '7': border-style:none none solid none - 8unset: '0' - '8': border-width:0px 0px 1px 0px - 6unset: '0' - '6': ! 'border-color:transparent transparent #D9D9DB transparent' - 32unset: '0' - '32': padding:0px 0px 5px 0px - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3780 - page_layout_root_id: 270 - page_layout_id: 282 - section_param_id: 138 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2013-11-25 06:53:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3781 - page_layout_root_id: 270 - page_layout_id: 282 - section_param_id: 139 - theme_id: 5 - pvalue: - 27unset: '0' - '27': font-weight:bold - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3782 - page_layout_root_id: 270 - page_layout_id: 285 - section_param_id: 135 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2013-11-25 06:53:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3783 - page_layout_root_id: 270 - page_layout_id: 285 - section_param_id: 136 - theme_id: 5 - pvalue: - 21unset: '0' - '21': width:160px - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3784 - page_layout_root_id: 270 - page_layout_id: 285 - section_param_id: 137 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:0px 0px 5px 0px - 7unset: '0' - '7': border-style:none none solid none - 8unset: '0' - '8': border-width:0px 0px 1px 0px - 6unset: '0' - '6': ! 'border-color:transparent transparent #D9D9DB transparent' - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3785 - page_layout_root_id: 270 - page_layout_id: 285 - section_param_id: 138 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2013-11-25 06:53:09.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3786 - page_layout_root_id: 270 - page_layout_id: 285 - section_param_id: 139 - theme_id: 5 - pvalue: - 27unset: '0' - '27': font-weight:bold - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:09.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3787 - page_layout_root_id: 270 - page_layout_id: 310 - section_param_id: 140 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3788 - page_layout_root_id: 270 - page_layout_id: 310 - section_param_id: 141 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3789 - page_layout_root_id: 270 - page_layout_id: 310 - section_param_id: 142 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3790 - page_layout_root_id: 270 - page_layout_id: 310 - section_param_id: 143 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3791 - page_layout_root_id: 270 - page_layout_id: 310 - section_param_id: 144 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3792 - page_layout_root_id: 270 - page_layout_id: 311 - section_param_id: 145 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:15.000000000 Z - updated_at: 2013-11-25 06:53:15.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3793 - page_layout_root_id: 270 - page_layout_id: 311 - section_param_id: 146 - theme_id: 5 - pvalue: - 101unset: '0' - '101': float:right - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3794 - page_layout_root_id: 270 - page_layout_id: 311 - section_param_id: 147 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:10px auto auto auto - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2014-08-09 07:34:37.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3795 - page_layout_root_id: 270 - page_layout_id: 311 - section_param_id: 148 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3796 - page_layout_root_id: 270 - page_layout_id: 311 - section_param_id: 149 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &105285340 - id: 3797 - page_layout_root_id: 270 - page_layout_id: 312 - section_param_id: 150 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3798 - page_layout_root_id: 270 - page_layout_id: 312 - section_param_id: 151 - theme_id: 5 - pvalue: - 21unset: '1' - '21': width:600px - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3799 - page_layout_root_id: 270 - page_layout_id: 312 - section_param_id: 152 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3800 - page_layout_root_id: 270 - page_layout_id: 312 - section_param_id: 153 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3801 - page_layout_root_id: 270 - page_layout_id: 312 - section_param_id: 154 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-25 06:53:16.000000000 Z - updated_at: 2013-11-25 06:53:16.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3802 - page_layout_root_id: 270 - page_layout_id: 273 - section_param_id: 323 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-29 02:49:56.000000000 Z - updated_at: 2013-11-29 02:49:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3803 - page_layout_root_id: 270 - page_layout_id: 273 - section_param_id: 324 - theme_id: 5 - pvalue: - 21unset: '1' - '21': width:220px - 101unset: '1' - '101': float:none - unset: - computed_pvalue: - created_at: 2013-11-29 02:49:56.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3804 - page_layout_root_id: 270 - page_layout_id: 273 - section_param_id: 325 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-11-29 02:49:57.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3805 - page_layout_root_id: 270 - page_layout_id: 273 - section_param_id: 326 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-29 02:49:57.000000000 Z - updated_at: 2013-11-29 02:49:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3806 - page_layout_root_id: 270 - page_layout_id: 273 - section_param_id: 327 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-11-29 02:49:57.000000000 Z - updated_at: 2013-11-29 02:49:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3807 - page_layout_root_id: 270 - page_layout_id: 276 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '0' - '85': clear:none - unset: - computed_pvalue: - created_at: 2013-12-03 08:14:45.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3808 - page_layout_root_id: 270 - page_layout_id: 276 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:none - 101unset: '0' - '15': height:100px - 15unset: '1' - 21unset: '0' - '21': width:960px - unset: - computed_pvalue: - created_at: 2013-12-03 08:14:45.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3809 - page_layout_root_id: 270 - page_layout_id: 276 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:0px 0px 6px 0px - 7unset: '1' - '7': border-style:none none solid none - 8unset: '1' - '8': border-width:0px 0px 1px 0px - 6unset: '1' - '6': ! 'border-color:transparent transparent #D9D9DB transparent' - 31unset: '1' - '31': margin:auto 10px auto 10px - unset: - computed_pvalue: - created_at: 2013-12-03 08:14:46.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3810 - page_layout_root_id: 270 - page_layout_id: 276 - section_param_id: 9 - theme_id: 5 - pvalue: - 2unset: '1' - '2': background-color:green - unset: - computed_pvalue: - created_at: 2013-12-03 08:14:46.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3811 - page_layout_root_id: 270 - page_layout_id: 276 - section_param_id: 10 - theme_id: 5 - pvalue: - 49unset: '1' - '49': color:teal - 25unset: '1' - '25': font-style:normal - 24unset: '1' - '24': font-size:0% - 27unset: '1' - '27': font-weight:bold - unset: - computed_pvalue: - created_at: 2013-12-03 08:14:46.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3817 - page_layout_root_id: 270 - page_layout_id: 272 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '0' - '85': clear:none - unset: - computed_pvalue: - created_at: 2013-12-05 08:06:08.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3818 - page_layout_root_id: 270 - page_layout_id: 272 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2013-12-05 08:06:08.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3819 - page_layout_root_id: 270 - page_layout_id: 272 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-12-05 08:06:08.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3820 - page_layout_root_id: 270 - page_layout_id: 272 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-05 08:06:08.000000000 Z - updated_at: 2013-12-05 08:06:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3821 - page_layout_root_id: 270 - page_layout_id: 272 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-05 08:06:08.000000000 Z - updated_at: 2013-12-05 08:06:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3822 - page_layout_root_id: 270 - page_layout_id: 274 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-05 08:11:48.000000000 Z - updated_at: 2013-12-05 08:11:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3823 - page_layout_root_id: 270 - page_layout_id: 274 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:right - 101unset: '0' - '15': height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2013-12-05 08:11:48.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3824 - page_layout_root_id: 270 - page_layout_id: 274 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2013-12-05 08:11:48.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3825 - page_layout_root_id: 270 - page_layout_id: 274 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-05 08:11:48.000000000 Z - updated_at: 2013-12-05 08:11:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3826 - page_layout_root_id: 270 - page_layout_id: 274 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2013-12-05 08:11:48.000000000 Z - updated_at: 2013-12-05 08:11:48.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3827 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 226 - theme_id: 5 - pvalue: - '21': width:960px - 21unset: '1' - '20': min-width:960px - 20hidden: '1' - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:53.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3828 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 227 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:53.000000000 Z - updated_at: 2014-01-22 03:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3829 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 228 - theme_id: 5 - pvalue: - '85': clear:both - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:53.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3830 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 229 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:53.000000000 Z - updated_at: 2014-01-22 03:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3831 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 230 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:53.000000000 Z - updated_at: 2014-01-22 03:39:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3832 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 231 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3833 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 232 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3834 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 233 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3835 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 234 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3836 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 235 - theme_id: 5 - pvalue: - 31unset: '0' - '31': margin:10px auto 2px auto - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3837 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 236 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3838 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 237 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3839 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 238 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3840 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 239 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3841 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 240 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3842 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 241 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:54.000000000 Z - updated_at: 2014-01-22 03:39:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3843 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 242 - theme_id: 5 - pvalue: - 49unset: '0' - '49': color:red - 24unset: '0' - '24': font-size:82% - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3844 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 243 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3845 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 317 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3846 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 318 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3847 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 319 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3848 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 320 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3849 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 321 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3850 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 322 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3851 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 244 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3852 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 245 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:55.000000000 Z - updated_at: 2014-01-22 03:39:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3853 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 246 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-01-22 03:39:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3854 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 247 - theme_id: 5 - pvalue: - 49unset: '1' - '49': color:#00ADEE - 24unset: '1' - '24': font-size:80% - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &107466080 - id: 3855 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 248 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-01-22 03:39:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3856 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 249 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-07-30 23:08:29.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3857 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 250 - theme_id: 5 - pvalue: - 32unset: '0' - '32': padding:5px 10px 5px 10px - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3858 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 251 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-01-22 03:39:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3859 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 252 - theme_id: 5 - pvalue: - 2unset: '0' - '2': background-color:#D9D9DB - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3860 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 253 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-01-22 03:39:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3861 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 254 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:56.000000000 Z - updated_at: 2014-01-22 03:39:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3862 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 255 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3863 - page_layout_root_id: 270 - page_layout_id: 270 - section_param_id: 256 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3864 - page_layout_root_id: 270 - page_layout_id: 291 - section_param_id: 55 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3865 - page_layout_root_id: 270 - page_layout_id: 291 - section_param_id: 56 - theme_id: 5 - pvalue: - 21unset: '0' - '21': width:150px - 15unset: '0' - '15': height:34px - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3866 - page_layout_root_id: 270 - page_layout_id: 291 - section_param_id: 57 - theme_id: 5 - pvalue: - 15hidden: '1' - 15unset: '0' - '15': height:33px - 32unset: '1' - '32': padding:0px 0px 0px 0px - 7unset: '0' - '7': border-style:none none solid none - 8unset: '0' - '8': border-width:0px 0px 1px 0px - 6unset: '0' - '6': ! 'border-color:transparent transparent #BBBBBB transparent' - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3867 - page_layout_root_id: 270 - page_layout_id: 291 - section_param_id: 58 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3868 - page_layout_root_id: 270 - page_layout_id: 291 - section_param_id: 59 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3869 - page_layout_root_id: 270 - page_layout_id: 291 - section_param_id: 294 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3870 - page_layout_root_id: 270 - page_layout_id: 291 - section_param_id: 295 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-01-22 03:39:57.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3871 - page_layout_root_id: 270 - page_layout_id: 291 - section_param_id: 296 - theme_id: 5 - pvalue: - 49unset: '0' - '49': color:#BBBBBB - 27unset: '0' - '27': font-weight:bold - 24unset: '0' - '24': font-size:80% - 54unset: '0' - '54': text-decoration:none - 53unset: '0' - '53': text-align:center - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:57.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3872 - page_layout_root_id: 270 - page_layout_id: 291 - section_param_id: 297 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:39:58.000000000 Z - updated_at: 2014-01-22 03:39:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3873 - page_layout_root_id: 270 - page_layout_id: 296 - section_param_id: 105 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-01-22 03:40:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3874 - page_layout_root_id: 270 - page_layout_id: 296 - section_param_id: 106 - theme_id: 5 - pvalue: - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3875 - page_layout_root_id: 270 - page_layout_id: 296 - section_param_id: 107 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-07-31 13:50:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3876 - page_layout_root_id: 270 - page_layout_id: 296 - section_param_id: 108 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-01-22 03:40:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3877 - page_layout_root_id: 270 - page_layout_id: 296 - section_param_id: 109 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-01-22 03:40:00.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3878 - page_layout_root_id: 270 - page_layout_id: 296 - section_param_id: 302 - theme_id: 5 - pvalue: - 32unset: '0' - '32': padding:5px 5px 5px 5px - 7unset: '0' - '7': border-style:solid none solid none - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 6unset: '0' - '6': ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3879 - page_layout_root_id: 270 - page_layout_id: 296 - section_param_id: 303 - theme_id: 5 - pvalue: - 2unset: '0' - '2': background-color:transparent - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:00.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3880 - page_layout_root_id: 270 - page_layout_id: 296 - section_param_id: 304 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3881 - page_layout_root_id: 270 - page_layout_id: 296 - section_param_id: 305 - theme_id: 5 - pvalue: - 27unset: '0' - '27': font-weight:bold - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3882 - page_layout_root_id: 270 - page_layout_id: 296 - section_param_id: 306 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3883 - page_layout_root_id: 270 - page_layout_id: 298 - section_param_id: 55 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3884 - page_layout_root_id: 270 - page_layout_id: 298 - section_param_id: 56 - theme_id: 5 - pvalue: - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3885 - page_layout_root_id: 270 - page_layout_id: 298 - section_param_id: 57 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '1' - '32': padding:0px 0px 0px 0px - 7unset: '0' - '7': border-style:none none solid none - 8unset: '0' - '8': border-width:0px 0px 1px 0px - 6unset: '0' - '6': ! 'border-color:transparent transparent #D9D9DB transparent' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3886 - page_layout_root_id: 270 - page_layout_id: 298 - section_param_id: 58 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3887 - page_layout_root_id: 270 - page_layout_id: 298 - section_param_id: 59 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3888 - page_layout_root_id: 270 - page_layout_id: 298 - section_param_id: 294 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: &118524550 - id: 3889 - page_layout_root_id: 270 - page_layout_id: 298 - section_param_id: 295 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:01.000000000 Z - updated_at: 2014-01-22 03:40:01.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3890 - page_layout_root_id: 270 - page_layout_id: 298 - section_param_id: 296 - theme_id: 5 - pvalue: - 49unset: '0' - '49': color:black - 54unset: '0' - '54': text-decoration:none - 27unset: '0' - '27': font-weight:bold - 24unset: '0' - '24': font-size:150% - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3891 - page_layout_root_id: 270 - page_layout_id: 298 - section_param_id: 297 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3892 - page_layout_root_id: 270 - page_layout_id: 305 - section_param_id: 115 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3893 - page_layout_root_id: 270 - page_layout_id: 305 - section_param_id: 116 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3894 - page_layout_root_id: 270 - page_layout_id: 305 - section_param_id: 117 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3895 - page_layout_root_id: 270 - page_layout_id: 305 - section_param_id: 118 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3896 - page_layout_root_id: 270 - page_layout_id: 305 - section_param_id: 119 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3897 - page_layout_root_id: 270 - page_layout_id: 305 - section_param_id: 307 - theme_id: 5 - pvalue: - 21unset: '0' - '21': width:60px - 7unset: '0' - '7': border-style:solid solid solid solid - 6unset: '0' - '6': ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 32unset: '0' - '32': padding:7px 10px 7px 10px - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3898 - page_layout_root_id: 270 - page_layout_id: 305 - section_param_id: 308 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:02.000000000 Z - updated_at: 2014-01-22 03:40:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3899 - page_layout_root_id: 270 - page_layout_id: 305 - section_param_id: 309 - theme_id: 5 - pvalue: - 53unset: '0' - '53': text-align:left - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-08-09 07:34:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3900 - page_layout_root_id: 270 - page_layout_id: 306 - section_param_id: 120 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-01-22 03:40:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3901 - page_layout_root_id: 270 - page_layout_id: 306 - section_param_id: 121 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-01-22 03:40:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3902 - page_layout_root_id: 270 - page_layout_id: 306 - section_param_id: 122 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:auto auto auto 5px - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3903 - page_layout_root_id: 270 - page_layout_id: 306 - section_param_id: 123 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-01-22 03:40:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3904 - page_layout_root_id: 270 - page_layout_id: 306 - section_param_id: 124 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-01-22 03:40:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3905 - page_layout_root_id: 270 - page_layout_id: 306 - section_param_id: 310 - theme_id: 5 - pvalue: - 32unset: '0' - '32': padding:7px 10px 7px 10px - 7unset: '1' - '7': border-style:solid solid solid solid - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 6unset: '0' - '6': ! 'border-color:#008ABD #008ABD #008ABD #008ABD' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3906 - page_layout_root_id: 270 - page_layout_id: 306 - section_param_id: 311 - theme_id: 5 - pvalue: - 2unset: '0' - '2': background-color:#00ADEE - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3907 - page_layout_root_id: 270 - page_layout_id: 306 - section_param_id: 312 - theme_id: 5 - pvalue: - 49unset: '0' - '49': color:white - 24unset: '1' - '24': font-size:14em - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:03.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3908 - page_layout_root_id: 270 - page_layout_id: 331 - section_param_id: 284 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-01-22 03:40:04.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3909 - page_layout_root_id: 270 - page_layout_id: 331 - section_param_id: 285 - theme_id: 5 - pvalue: - '21': width:600px - 21unset: '0' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3910 - page_layout_root_id: 270 - page_layout_id: 331 - section_param_id: 286 - theme_id: 5 - pvalue: - '7': border-style:solid solid solid solid - 7unset: '0' - '8': border-width:1px 1px 1px 1px - 8unset: '0' - '6': ! 'border-color:#CCCCCC #CCCCCC #CCCCCC #CCCCCC' - 6unset: '0' - '15': height:598px - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3911 - page_layout_root_id: 270 - page_layout_id: 331 - section_param_id: 287 - theme_id: 5 - pvalue: - '2': background-color:#FFFFFF - 2unset: '0' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3912 - page_layout_root_id: 270 - page_layout_id: 331 - section_param_id: 288 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: -- !ruby/object:Spree::ParamValue - attributes: - id: 3913 - page_layout_root_id: 270 - page_layout_id: 331 - section_param_id: 313 - theme_id: 5 - pvalue: - '32': padding:2px 2px 2px 2px - 32unset: '0' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3914 - page_layout_root_id: 270 - page_layout_id: 331 - section_param_id: 314 - theme_id: 5 - pvalue: - '2': background-color:#EEEEEE - 2unset: '0' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:04.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3915 - page_layout_root_id: 270 - page_layout_id: 331 - section_param_id: 315 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:05.000000000 Z - updated_at: 2014-01-22 03:40:05.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3916 - page_layout_root_id: 270 - page_layout_id: 331 - section_param_id: 316 - theme_id: 5 - pvalue: - '32': padding:0 10px 5px 10px - 32unset: '0' - unset: - computed_pvalue: - created_at: 2014-01-22 03:40:05.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3917 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 333 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3918 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 334 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3919 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 335 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3920 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 336 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3921 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 337 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3922 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 338 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3923 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 339 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3924 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 340 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3925 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 341 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3926 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 342 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3927 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 343 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3928 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 344 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3929 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 345 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3930 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 346 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3931 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 347 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3932 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 348 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-01-22 14:00:12.000000000 Z - updated_at: 2014-01-22 14:00:12.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3933 - page_layout_root_id: 270 - page_layout_id: 327 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:03:39.000000000 Z - updated_at: 2014-02-19 13:03:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3934 - page_layout_root_id: 270 - page_layout_id: 327 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-02-19 13:03:39.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3935 - page_layout_root_id: 270 - page_layout_id: 327 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-02-19 13:03:39.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3936 - page_layout_root_id: 270 - page_layout_id: 327 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:03:39.000000000 Z - updated_at: 2014-02-19 13:03:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3937 - page_layout_root_id: 270 - page_layout_id: 327 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:03:39.000000000 Z - updated_at: 2014-02-19 13:03:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3938 - page_layout_root_id: 270 - page_layout_id: 328 - section_param_id: 349 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: *96130400 -- !ruby/object:Spree::ParamValue - attributes: - id: 3940 - page_layout_root_id: 270 - page_layout_id: 328 - section_param_id: 351 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3941 - page_layout_root_id: 270 - page_layout_id: 328 - section_param_id: 352 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3942 - page_layout_root_id: 270 - page_layout_id: 328 - section_param_id: 353 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3943 - page_layout_root_id: 270 - page_layout_id: 328 - section_param_id: 354 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3944 - page_layout_root_id: 270 - page_layout_id: 328 - section_param_id: 355 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3945 - page_layout_root_id: 270 - page_layout_id: 328 - section_param_id: 356 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-19 13:12:08.000000000 Z - updated_at: 2014-02-19 13:12:08.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3946 - page_layout_root_id: 270 - page_layout_id: 295 - section_param_id: 289 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:34:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3947 - page_layout_root_id: 270 - page_layout_id: 295 - section_param_id: 290 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:34:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3948 - page_layout_root_id: 270 - page_layout_id: 295 - section_param_id: 291 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3949 - page_layout_root_id: 270 - page_layout_id: 295 - section_param_id: 292 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:34:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3950 - page_layout_root_id: 270 - page_layout_id: 295 - section_param_id: 293 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-02-23 13:34:50.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3951 - page_layout_root_id: 270 - page_layout_id: 295 - section_param_id: 299 - theme_id: 5 - pvalue: - 32unset: '0' - '32': padding:5px 10px 5px 10px - 7unset: '0' - '7': border-style:solid solid solid solid - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 6unset: '0' - '6': ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3952 - page_layout_root_id: 270 - page_layout_id: 295 - section_param_id: 301 - theme_id: 5 - pvalue: - 32unset: '0' - '32': padding:5px 5px 5px 5px - 7unset: '0' - '7': border-style:solid solid solid solid - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 6unset: '0' - '6': ! 'border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB' - 31unset: '0' - '31': margin:6px 6px 6px auto - unset: - computed_pvalue: - created_at: 2014-02-23 13:34:50.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3953 - page_layout_root_id: 270 - page_layout_id: 316 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '0' - '85': clear:none - unset: - computed_pvalue: - created_at: 2014-03-04 14:20:03.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3954 - page_layout_root_id: 270 - page_layout_id: 316 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '0' - unset: - computed_pvalue: - created_at: 2014-03-04 14:20:03.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3955 - page_layout_root_id: 270 - page_layout_id: 316 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-03-04 14:20:03.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3956 - page_layout_root_id: 270 - page_layout_id: 316 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-04 14:20:03.000000000 Z - updated_at: 2014-03-04 14:20:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3957 - page_layout_root_id: 270 - page_layout_id: 316 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-04 14:20:03.000000000 Z - updated_at: 2014-03-04 14:20:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3958 - page_layout_root_id: 270 - page_layout_id: 301 - section_param_id: 357 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:19:56.000000000 Z - updated_at: 2014-03-06 13:19:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3959 - page_layout_root_id: 270 - page_layout_id: 301 - section_param_id: 358 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:19:56.000000000 Z - updated_at: 2014-03-06 13:19:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3960 - page_layout_root_id: 270 - page_layout_id: 301 - section_param_id: 359 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:auto auto 10px auto - unset: - computed_pvalue: - created_at: - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3961 - page_layout_root_id: 270 - page_layout_id: 301 - section_param_id: 360 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:19:56.000000000 Z - updated_at: 2014-03-06 13:19:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3962 - page_layout_root_id: 270 - page_layout_id: 301 - section_param_id: 361 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:19:56.000000000 Z - updated_at: 2014-03-06 13:19:56.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3963 - page_layout_root_id: 270 - page_layout_id: 304 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '0' - '85': clear:none - unset: - computed_pvalue: - created_at: 2014-03-06 13:42:19.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3964 - page_layout_root_id: 270 - page_layout_id: 304 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - 21unset: '0' - '21': width:230px - unset: - computed_pvalue: - created_at: 2014-03-06 13:42:19.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3965 - page_layout_root_id: 270 - page_layout_id: 304 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-03-06 13:42:19.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3966 - page_layout_root_id: 270 - page_layout_id: 304 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:42:19.000000000 Z - updated_at: 2014-03-06 13:42:19.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3967 - page_layout_root_id: 270 - page_layout_id: 304 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 13:42:19.000000000 Z - updated_at: 2014-03-06 13:42:19.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3968 - page_layout_root_id: 270 - page_layout_id: 302 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '0' - '85': clear:both - unset: - computed_pvalue: - created_at: 2014-03-06 15:17:45.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3969 - page_layout_root_id: 270 - page_layout_id: 302 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-03-06 15:17:45.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3970 - page_layout_root_id: 270 - page_layout_id: 302 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-03-06 15:17:45.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3971 - page_layout_root_id: 270 - page_layout_id: 302 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 15:17:45.000000000 Z - updated_at: 2014-03-06 15:17:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3972 - page_layout_root_id: 270 - page_layout_id: 302 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-03-06 15:17:45.000000000 Z - updated_at: 2014-03-06 15:17:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3976 - page_layout_root_id: 270 - page_layout_id: 290 - section_param_id: 404 - theme_id: 5 - pvalue: - 84unset: '1' - '84': product - unset: - computed_pvalue: - created_at: 2014-07-04 12:47:18.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3977 - page_layout_root_id: 270 - page_layout_id: 332 - section_param_id: 388 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-09 13:01:29.000000000 Z - updated_at: 2014-07-09 13:01:29.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3978 - page_layout_root_id: 270 - page_layout_id: 332 - section_param_id: 389 - theme_id: 5 - pvalue: - '21': width:960px - 21unset: '0' - 15unset: '1' - '15': height:480px - 101unset: '0' - '101': float:none - unset: - computed_pvalue: - created_at: 2014-07-09 13:01:29.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3979 - page_layout_root_id: 270 - page_layout_id: 332 - section_param_id: 390 - theme_id: 5 - pvalue: - 15hidden: '1' - 15unset: '1' - '15': height:480px - unset: - computed_pvalue: - created_at: 2014-07-09 13:01:29.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3980 - page_layout_root_id: 270 - page_layout_id: 332 - section_param_id: 391 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-09 13:01:29.000000000 Z - updated_at: 2014-07-09 13:01:29.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3981 - page_layout_root_id: 270 - page_layout_id: 332 - section_param_id: 392 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-09 13:01:29.000000000 Z - updated_at: 2014-07-09 13:01:29.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3982 - page_layout_root_id: 270 - page_layout_id: 332 - section_param_id: 393 - theme_id: 5 - pvalue: - '78': width:960px - '79': height:300px - 78unset: '0' - 79unset: '0' - unset: - computed_pvalue: - created_at: 2014-07-09 13:01:29.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3983 - page_layout_root_id: 270 - page_layout_id: 333 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-12 04:07:03.000000000 Z - updated_at: *103274600 -- !ruby/object:Spree::ParamValue - attributes: - id: 3984 - page_layout_root_id: 270 - page_layout_id: 333 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:300px - 15unset: '1' - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2014-07-12 04:07:03.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3985 - page_layout_root_id: 270 - page_layout_id: 333 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 15unset: '1' - '15': height:295px - 31unset: '0' - '31': margin:auto auto 5px auto - unset: - computed_pvalue: - created_at: 2014-07-12 04:07:03.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3986 - page_layout_root_id: 270 - page_layout_id: 333 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-12 04:07:03.000000000 Z - updated_at: 2014-07-12 04:07:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3987 - page_layout_root_id: 270 - page_layout_id: 333 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-12 04:07:03.000000000 Z - updated_at: 2014-07-12 04:07:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3993 - page_layout_root_id: 270 - page_layout_id: 335 - section_param_id: 50 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-12 05:05:49.000000000 Z - updated_at: 2014-07-12 05:05:49.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3994 - page_layout_root_id: 270 - page_layout_id: 335 - section_param_id: 51 - theme_id: 5 - pvalue: - *100363720: '0' - '101': float:none - 21unset: '0' - '21': width:800px - unset: - computed_pvalue: - created_at: 2014-07-12 05:05:49.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3995 - page_layout_root_id: 270 - page_layout_id: 335 - section_param_id: 52 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-12 05:05:49.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3996 - page_layout_root_id: 270 - page_layout_id: 335 - section_param_id: 53 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-12 05:05:49.000000000 Z - updated_at: 2014-07-12 05:05:49.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 3997 - page_layout_root_id: 270 - page_layout_id: 335 - section_param_id: 54 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-12 05:05:49.000000000 Z - updated_at: 2014-07-12 05:05:49.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4003 - page_layout_root_id: 270 - page_layout_id: 337 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:16:03.000000000 Z - updated_at: 2014-07-17 00:16:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4004 - page_layout_root_id: 270 - page_layout_id: 337 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '0' - unset: - computed_pvalue: - created_at: 2014-07-17 00:16:03.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4005 - page_layout_root_id: 270 - page_layout_id: 337 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-17 00:16:03.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4006 - page_layout_root_id: 270 - page_layout_id: 337 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:16:03.000000000 Z - updated_at: 2014-07-17 00:16:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4007 - page_layout_root_id: 270 - page_layout_id: 337 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:16:03.000000000 Z - updated_at: 2014-07-17 00:16:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4008 - page_layout_root_id: 270 - page_layout_id: 338 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:16:13.000000000 Z - updated_at: 2014-07-17 00:16:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4009 - page_layout_root_id: 270 - page_layout_id: 338 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '0' - unset: - computed_pvalue: - created_at: 2014-07-17 00:16:13.000000000 Z - updated_at: 2014-08-09 07:34:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4010 - page_layout_root_id: 270 - page_layout_id: 338 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-17 00:16:13.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4011 - page_layout_root_id: 270 - page_layout_id: 338 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:16:13.000000000 Z - updated_at: 2014-07-17 00:16:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4012 - page_layout_root_id: 270 - page_layout_id: 338 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:16:13.000000000 Z - updated_at: 2014-07-17 00:16:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4013 - page_layout_root_id: 270 - page_layout_id: 339 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '0' - '85': clear:none - unset: - computed_pvalue: - created_at: 2014-07-17 00:19:17.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4014 - page_layout_root_id: 270 - page_layout_id: 339 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - *103282020: '1' - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2014-07-17 00:19:17.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4015 - page_layout_root_id: 270 - page_layout_id: 339 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-17 00:19:17.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4016 - page_layout_root_id: 270 - page_layout_id: 339 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:19:17.000000000 Z - updated_at: 2014-07-17 00:19:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4017 - page_layout_root_id: 270 - page_layout_id: 339 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:19:17.000000000 Z - updated_at: 2014-07-17 00:19:17.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4018 - page_layout_root_id: 270 - page_layout_id: 340 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:26:45.000000000 Z - updated_at: 2014-07-17 00:26:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4019 - page_layout_root_id: 270 - page_layout_id: 340 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - 21unset: '0' - '21': width:655px - unset: - computed_pvalue: - created_at: 2014-07-17 00:26:45.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4020 - page_layout_root_id: 270 - page_layout_id: 340 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-17 00:26:45.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4021 - page_layout_root_id: 270 - page_layout_id: 340 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:26:45.000000000 Z - updated_at: 2014-07-17 00:26:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4022 - page_layout_root_id: 270 - page_layout_id: 340 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:26:45.000000000 Z - updated_at: 2014-07-17 00:26:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4023 - page_layout_root_id: 270 - page_layout_id: 341 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:26:54.000000000 Z - updated_at: 2014-07-17 00:26:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4024 - page_layout_root_id: 270 - page_layout_id: 341 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:right - 101unset: '0' - '15': height:100px - 15unset: '1' - 21unset: '1' - '21': width:360px - unset: - computed_pvalue: - created_at: 2014-07-17 00:26:55.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4025 - page_layout_root_id: 270 - page_layout_id: 341 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 15unset: '1' - '15': height:100px - unset: - computed_pvalue: - created_at: 2014-07-17 00:26:55.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4026 - page_layout_root_id: 270 - page_layout_id: 341 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:26:55.000000000 Z - updated_at: 2014-07-17 00:26:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4027 - page_layout_root_id: 270 - page_layout_id: 341 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:26:55.000000000 Z - updated_at: 2014-07-17 00:26:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4028 - page_layout_root_id: 270 - page_layout_id: 342 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '1' - '85': clear:none - unset: - computed_pvalue: - created_at: 2014-07-17 00:28:52.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4029 - page_layout_root_id: 270 - page_layout_id: 342 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2014-07-17 00:28:52.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4030 - page_layout_root_id: 270 - page_layout_id: 342 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 7unset: '0' - '7': border-style:solid solid solid solid - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 6unset: '0' - '6': ! 'border-color:#CDCBCB #CDCBCB #CDCBCB #CDCBCB' - unset: - computed_pvalue: - created_at: 2014-07-17 00:28:52.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4031 - page_layout_root_id: 270 - page_layout_id: 342 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:28:52.000000000 Z - updated_at: 2014-07-17 00:28:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4032 - page_layout_root_id: 270 - page_layout_id: 342 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:28:52.000000000 Z - updated_at: 2014-07-17 00:28:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4033 - page_layout_root_id: 270 - page_layout_id: 343 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:29:03.000000000 Z - updated_at: 2014-07-17 00:29:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4034 - page_layout_root_id: 270 - page_layout_id: 343 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2014-07-17 00:29:03.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4035 - page_layout_root_id: 270 - page_layout_id: 343 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 7unset: '0' - '7': border-style:solid solid solid solid - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 6unset: '0' - '6': ! 'border-color:#CDCBCB #CDCBCB #CDCBCB #CDCBCB' - 32unset: '1' - '32': padding:0px 0px 0px 0px - 31unset: '0' - '31': margin:5px auto auto auto - unset: - computed_pvalue: - created_at: 2014-07-17 00:29:03.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4036 - page_layout_root_id: 270 - page_layout_id: 343 - section_param_id: 9 - theme_id: 5 - pvalue: - 3unset: '1' - '3': background-image:none - unset: - computed_pvalue: - created_at: 2014-07-17 00:29:03.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4037 - page_layout_root_id: 270 - page_layout_id: 343 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 00:29:03.000000000 Z - updated_at: 2014-07-17 00:29:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4038 - page_layout_root_id: 270 - page_layout_id: 344 - section_param_id: 65 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:10:10.000000000 Z - updated_at: 2014-07-17 09:10:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4039 - page_layout_root_id: 270 - page_layout_id: 344 - section_param_id: 66 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:10:10.000000000 Z - updated_at: 2014-07-17 09:10:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4040 - page_layout_root_id: 270 - page_layout_id: 344 - section_param_id: 67 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-17 09:10:10.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4041 - page_layout_root_id: 270 - page_layout_id: 344 - section_param_id: 68 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:10:10.000000000 Z - updated_at: 2014-07-17 09:10:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4042 - page_layout_root_id: 270 - page_layout_id: 344 - section_param_id: 69 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:10:10.000000000 Z - updated_at: 2014-07-17 09:10:10.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4043 - page_layout_root_id: 270 - page_layout_id: 344 - section_param_id: 404 - theme_id: 5 - pvalue: - 84unset: '0' - '84': product - unset: - computed_pvalue: - created_at: 2014-07-17 09:10:10.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4044 - page_layout_root_id: 270 - page_layout_id: 345 - section_param_id: 65 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:13:54.000000000 Z - updated_at: 2014-07-17 09:13:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4045 - page_layout_root_id: 270 - page_layout_id: 345 - section_param_id: 66 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:13:54.000000000 Z - updated_at: 2014-07-17 09:13:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4046 - page_layout_root_id: 270 - page_layout_id: 345 - section_param_id: 67 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-17 09:13:54.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4047 - page_layout_root_id: 270 - page_layout_id: 345 - section_param_id: 68 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:13:54.000000000 Z - updated_at: 2014-07-17 09:13:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4048 - page_layout_root_id: 270 - page_layout_id: 345 - section_param_id: 69 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:13:54.000000000 Z - updated_at: 2014-07-17 09:13:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4049 - page_layout_root_id: 270 - page_layout_id: 345 - section_param_id: 404 - theme_id: 5 - pvalue: - 84unset: '0' - '84': product - unset: - computed_pvalue: - created_at: 2014-07-17 09:13:54.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4050 - page_layout_root_id: 270 - page_layout_id: 346 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:14:54.000000000 Z - updated_at: 2014-07-17 09:14:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4051 - page_layout_root_id: 270 - page_layout_id: 346 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-07-17 09:14:54.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4052 - page_layout_root_id: 270 - page_layout_id: 346 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:18px 5px 5px 5px - unset: - computed_pvalue: - created_at: 2014-07-17 09:14:54.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4053 - page_layout_root_id: 270 - page_layout_id: 346 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:14:54.000000000 Z - updated_at: 2014-07-17 09:14:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4054 - page_layout_root_id: 270 - page_layout_id: 346 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:14:54.000000000 Z - updated_at: 2014-07-17 09:14:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4055 - page_layout_root_id: 270 - page_layout_id: 347 - section_param_id: 50 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:15:31.000000000 Z - updated_at: 2014-07-17 09:15:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4056 - page_layout_root_id: 270 - page_layout_id: 347 - section_param_id: 51 - theme_id: 5 - pvalue: - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2014-07-17 09:15:31.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4057 - page_layout_root_id: 270 - page_layout_id: 347 - section_param_id: 52 - theme_id: 5 - pvalue: - 15hidden: '1' - 7unset: '0' - '7': border-style:solid solid solid solid - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 6unset: '0' - '6': ! 'border-color:#CDCBCB #CDCBCB #CDCBCB #CDCBCB' - 32unset: '0' - '32': padding:5px 5px 5px 5px - 31unset: '0' - '31': margin:5px auto auto auto - unset: - computed_pvalue: - created_at: 2014-07-17 09:15:31.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4058 - page_layout_root_id: 270 - page_layout_id: 347 - section_param_id: 53 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:15:31.000000000 Z - updated_at: 2014-07-17 09:15:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4059 - page_layout_root_id: 270 - page_layout_id: 347 - section_param_id: 54 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-17 09:15:31.000000000 Z - updated_at: 2014-07-17 09:15:31.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4060 - page_layout_root_id: 270 - page_layout_id: 348 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '0' - '85': clear:none - unset: - computed_pvalue: - created_at: 2014-07-24 23:40:52.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4061 - page_layout_root_id: 270 - page_layout_id: 348 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-07-24 23:40:52.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4062 - page_layout_root_id: 270 - page_layout_id: 348 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-24 23:40:52.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4063 - page_layout_root_id: 270 - page_layout_id: 348 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-24 23:40:52.000000000 Z - updated_at: 2014-07-24 23:40:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4064 - page_layout_root_id: 270 - page_layout_id: 348 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-24 23:40:52.000000000 Z - updated_at: 2014-07-24 23:40:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4065 - page_layout_root_id: 270 - page_layout_id: 349 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '0' - '85': clear:none - unset: - computed_pvalue: - created_at: 2014-07-24 23:41:13.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4066 - page_layout_root_id: 270 - page_layout_id: 349 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-07-24 23:41:13.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4067 - page_layout_root_id: 270 - page_layout_id: 349 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-24 23:41:13.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4068 - page_layout_root_id: 270 - page_layout_id: 349 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-24 23:41:13.000000000 Z - updated_at: 2014-07-24 23:41:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4069 - page_layout_root_id: 270 - page_layout_id: 349 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-24 23:41:13.000000000 Z - updated_at: 2014-07-24 23:41:13.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4070 - page_layout_root_id: 270 - page_layout_id: 350 - section_param_id: 160 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-25 13:58:55.000000000 Z - updated_at: 2014-07-25 13:58:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4071 - page_layout_root_id: 270 - page_layout_id: 350 - section_param_id: 161 - theme_id: 5 - pvalue: - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2014-07-25 13:58:55.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4072 - page_layout_root_id: 270 - page_layout_id: 350 - section_param_id: 162 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:8px 5px 8px 28px - unset: - computed_pvalue: - created_at: 2014-07-25 13:58:55.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4073 - page_layout_root_id: 270 - page_layout_id: 350 - section_param_id: 163 - theme_id: 5 - pvalue: - 3unset: '0' - '3': background-image:tiao.jpg - 2unset: '0' - '2': background-color:#F8F8F8 - unset: - computed_pvalue: - created_at: 2014-07-25 13:58:55.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4074 - page_layout_root_id: 270 - page_layout_id: 350 - section_param_id: 164 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-25 13:58:55.000000000 Z - updated_at: 2014-07-25 13:58:55.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4075 - page_layout_root_id: 270 - page_layout_id: 351 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-25 14:01:47.000000000 Z - updated_at: 2014-07-25 14:01:47.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4076 - page_layout_root_id: 270 - page_layout_id: 351 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': *103666040 - 101unset: '0' - '15': height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-07-25 14:01:47.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4077 - page_layout_root_id: 270 - page_layout_id: 351 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-25 14:01:47.000000000 Z - updated_at: 2014-08-09 07:34:40.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4078 - page_layout_root_id: 270 - page_layout_id: 351 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-25 14:01:47.000000000 Z - updated_at: 2014-07-25 14:01:47.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4079 - page_layout_root_id: 270 - page_layout_id: 351 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-25 14:01:47.000000000 Z - updated_at: 2014-07-25 14:01:47.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4080 - page_layout_root_id: 270 - page_layout_id: 352 - section_param_id: 405 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 03:12:38.000000000 Z - updated_at: 2014-07-26 03:12:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4081 - page_layout_root_id: 270 - page_layout_id: 352 - section_param_id: 406 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 03:12:38.000000000 Z - updated_at: 2014-07-26 03:12:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4082 - page_layout_root_id: 270 - page_layout_id: 352 - section_param_id: 407 - theme_id: 5 - pvalue: - 15hidden: '1' - 31unset: '0' - '31': margin:auto auto 10px auto - unset: - computed_pvalue: - created_at: 2014-07-26 03:12:38.000000000 Z - updated_at: 2014-08-09 07:34:41.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4083 - page_layout_root_id: 270 - page_layout_id: 352 - section_param_id: 408 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 03:12:38.000000000 Z - updated_at: 2014-07-26 03:12:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4084 - page_layout_root_id: 270 - page_layout_id: 352 - section_param_id: 409 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 03:12:38.000000000 Z - updated_at: 2014-07-26 03:12:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4085 - page_layout_root_id: 270 - page_layout_id: 353 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 04:58:58.000000000 Z - updated_at: 2014-07-26 04:58:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4086 - page_layout_root_id: 270 - page_layout_id: 353 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-07-26 04:58:58.000000000 Z - updated_at: 2014-08-09 07:34:41.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4087 - page_layout_root_id: 270 - page_layout_id: 353 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 7unset: '0' - '7': border-style:solid solid solid solid - 8unset: '0' - '8': border-width:1px 1px 1px 1px - 6unset: '0' - '6': ! 'border-color:#CDCBCB #CDCBCB #CDCBCB #CDCBCB' - 32unset: '1' - '32': padding:0px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2014-07-26 04:58:58.000000000 Z - updated_at: 2014-08-09 07:34:41.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4088 - page_layout_root_id: 270 - page_layout_id: 353 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 04:58:58.000000000 Z - updated_at: 2014-07-26 04:58:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4089 - page_layout_root_id: 270 - page_layout_id: 353 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 04:58:58.000000000 Z - updated_at: 2014-07-26 04:58:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4090 - page_layout_root_id: 270 - page_layout_id: 354 - section_param_id: 135 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 04:59:54.000000000 Z - updated_at: 2014-07-26 04:59:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4091 - page_layout_root_id: 270 - page_layout_id: 354 - section_param_id: 136 - theme_id: 5 - pvalue: - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2014-07-26 04:59:54.000000000 Z - updated_at: 2014-08-09 07:34:41.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4092 - page_layout_root_id: 270 - page_layout_id: 354 - section_param_id: 137 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:8px 5px 8px 28px - unset: - computed_pvalue: - created_at: 2014-07-26 04:59:54.000000000 Z - updated_at: 2014-08-09 07:34:41.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4093 - page_layout_root_id: 270 - page_layout_id: 354 - section_param_id: 138 - theme_id: 5 - pvalue: - 2unset: '1' - '2': background-color:#F8F8F8 - 3unset: '0' - '3': background-image:tiao.jpg - unset: - computed_pvalue: - created_at: 2014-07-26 04:59:54.000000000 Z - updated_at: 2014-08-09 07:34:41.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4094 - page_layout_root_id: 270 - page_layout_id: 354 - section_param_id: 139 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 04:59:54.000000000 Z - updated_at: 2014-07-26 04:59:54.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4095 - page_layout_root_id: 270 - page_layout_id: 355 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 13:01:44.000000000 Z - updated_at: 2014-07-26 13:01:44.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4096 - page_layout_root_id: 270 - page_layout_id: 355 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:40px - 15unset: '0' - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2014-07-26 13:01:44.000000000 Z - updated_at: 2014-08-09 07:34:41.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4097 - page_layout_root_id: 270 - page_layout_id: 355 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 15unset: '0' - '15': height:40px - unset: - computed_pvalue: - created_at: 2014-07-26 13:01:45.000000000 Z - updated_at: 2014-08-09 07:34:41.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4098 - page_layout_root_id: 270 - page_layout_id: 355 - section_param_id: 9 - theme_id: 5 - pvalue: - 3unset: '0' - '3': background-image:nav_bg_40px.gif - 2unset: '1' - '2': background-color:black - unset: - computed_pvalue: - created_at: 2014-07-26 13:01:45.000000000 Z - updated_at: 2014-08-09 07:34:41.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4099 - page_layout_root_id: 270 - page_layout_id: 355 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 13:01:45.000000000 Z - updated_at: 2014-07-26 13:01:45.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4100 - page_layout_root_id: 270 - page_layout_id: 356 - section_param_id: 160 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 13:30:46.000000000 Z - updated_at: 2014-07-26 13:30:46.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4101 - page_layout_root_id: 270 - page_layout_id: 356 - section_param_id: 161 - theme_id: 5 - pvalue: - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2014-07-26 13:30:46.000000000 Z - updated_at: 2014-08-09 07:34:41.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4102 - page_layout_root_id: 270 - page_layout_id: 356 - section_param_id: 162 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:8px 5px 8px 28px - unset: - computed_pvalue: - created_at: 2014-07-26 13:30:46.000000000 Z - updated_at: 2014-08-09 07:34:41.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4103 - page_layout_root_id: 270 - page_layout_id: 356 - section_param_id: 163 - theme_id: 5 - pvalue: - 3unset: '0' - '3': background-image:tiao.jpg - unset: - computed_pvalue: - created_at: 2014-07-26 13:30:46.000000000 Z - updated_at: 2014-08-09 07:34:41.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4104 - page_layout_root_id: 270 - page_layout_id: 356 - section_param_id: 164 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 13:30:46.000000000 Z - updated_at: 2014-07-26 13:30:46.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4105 - page_layout_root_id: 270 - page_layout_id: 357 - section_param_id: 6 - theme_id: 5 - pvalue: - 85unset: '1' - '85': clear:none - unset: - computed_pvalue: - created_at: 2014-07-26 13:30:57.000000000 Z - updated_at: 2014-08-09 07:34:41.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4106 - page_layout_root_id: 270 - page_layout_id: 357 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-07-26 13:30:57.000000000 Z - updated_at: 2014-08-09 07:34:41.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4107 - page_layout_root_id: 270 - page_layout_id: 357 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-26 13:30:57.000000000 Z - updated_at: 2014-08-09 07:34:41.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4108 - page_layout_root_id: 270 - page_layout_id: 357 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 13:30:58.000000000 Z - updated_at: 2014-07-26 13:30:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4109 - page_layout_root_id: 270 - page_layout_id: 357 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 13:30:58.000000000 Z - updated_at: 2014-07-26 13:30:58.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4110 - page_layout_root_id: 270 - page_layout_id: 358 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 14:41:26.000000000 Z - updated_at: 2014-07-26 14:41:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4111 - page_layout_root_id: 270 - page_layout_id: 358 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:none - 101unset: '0' - '15': height:100px - 15unset: '1' - 21unset: '0' - '21': width:960px - unset: - computed_pvalue: - created_at: 2014-07-26 14:41:26.000000000 Z - updated_at: 2014-08-09 07:34:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4112 - page_layout_root_id: 270 - page_layout_id: 358 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 7unset: '1' - '7': border-style:solid none none none - 8unset: '1' - '8': border-width:4px 0px 0px 0px - 6unset: '1' - '6': border-color:#2D2D2F transparent transparent transparent - unset: - computed_pvalue: - created_at: 2014-07-26 14:41:26.000000000 Z - updated_at: 2014-08-09 07:34:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4113 - page_layout_root_id: 270 - page_layout_id: 358 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 14:41:26.000000000 Z - updated_at: 2014-07-26 14:41:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4114 - page_layout_root_id: 270 - page_layout_id: 358 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-26 14:41:26.000000000 Z - updated_at: 2014-07-26 14:41:26.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4115 - page_layout_root_id: 270 - page_layout_id: 359 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 02:08:02.000000000 Z - updated_at: 2014-07-27 02:08:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4116 - page_layout_root_id: 270 - page_layout_id: 359 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:100px - 15unset: '1' - unset: - computed_pvalue: - created_at: 2014-07-27 02:08:02.000000000 Z - updated_at: 2014-08-09 07:34:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4117 - page_layout_root_id: 270 - page_layout_id: 359 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-27 02:08:02.000000000 Z - updated_at: 2014-08-09 07:34:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4118 - page_layout_root_id: 270 - page_layout_id: 359 - section_param_id: 9 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 02:08:02.000000000 Z - updated_at: 2014-07-27 02:08:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4119 - page_layout_root_id: 270 - page_layout_id: 359 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 02:08:02.000000000 Z - updated_at: 2014-07-27 02:08:02.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4120 - page_layout_root_id: 270 - page_layout_id: 278 - section_param_id: 410 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 03:20:52.000000000 Z - updated_at: 2014-07-27 03:20:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4121 - page_layout_root_id: 270 - page_layout_id: 278 - section_param_id: 411 - theme_id: 5 - pvalue: - 101unset: '0' - '101': float:right - unset: - computed_pvalue: - created_at: 2014-07-27 03:20:52.000000000 Z - updated_at: 2014-08-09 07:34:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4122 - page_layout_root_id: 270 - page_layout_id: 278 - section_param_id: 412 - theme_id: 5 - pvalue: - 15hidden: '1' - 32unset: '0' - '32': padding:12px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2014-07-27 03:20:52.000000000 Z - updated_at: 2014-08-09 07:34:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4123 - page_layout_root_id: 270 - page_layout_id: 278 - section_param_id: 413 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 03:20:52.000000000 Z - updated_at: 2014-07-27 03:20:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4124 - page_layout_root_id: 270 - page_layout_id: 278 - section_param_id: 414 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 03:20:52.000000000 Z - updated_at: 2014-07-27 03:20:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4125 - page_layout_root_id: 270 - page_layout_id: 278 - section_param_id: 415 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 03:20:52.000000000 Z - updated_at: 2014-07-27 03:20:52.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4126 - page_layout_root_id: 270 - page_layout_id: 278 - section_param_id: 416 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 03:20:53.000000000 Z - updated_at: 2014-07-27 03:20:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4127 - page_layout_root_id: 270 - page_layout_id: 278 - section_param_id: 417 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 03:20:53.000000000 Z - updated_at: 2014-07-27 03:20:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4128 - page_layout_root_id: 270 - page_layout_id: 278 - section_param_id: 418 - theme_id: 5 - pvalue: - 49unset: '0' - '49': color:white - unset: - computed_pvalue: - created_at: 2014-07-27 03:20:53.000000000 Z - updated_at: 2014-08-09 07:34:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4129 - page_layout_root_id: 270 - page_layout_id: 278 - section_param_id: 419 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 03:20:53.000000000 Z - updated_at: 2014-07-27 03:20:53.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4134 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 420 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4141 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 421 - theme_id: 5 - pvalue: - 32unset: '1' - '32': padding:0px 0px 0px 0px - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-08-09 07:34:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4142 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 421 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4146 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 422 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4151 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 423 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4158 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 424 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4159 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 424 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4163 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 425 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4168 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 426 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4175 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 427 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4176 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 427 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4180 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 428 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: *105285340 -- !ruby/object:Spree::ParamValue - attributes: - id: 4185 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 429 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4192 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 430 - theme_id: 5 - pvalue: - 32unset: '0' - '32': padding:5px 0px 0px 15px - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-08-09 07:34:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4193 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 430 - theme_id: 5 - pvalue: - 32unset: '0' - '32': padding:5px 0px 0px 15px - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-08-09 07:34:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4197 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 431 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4202 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 432 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4209 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 433 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4210 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 433 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4214 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 434 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4219 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 435 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4226 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 436 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4227 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 436 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4231 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 437 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4236 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 438 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4243 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 439 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4244 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 439 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4248 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 440 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4253 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 441 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4260 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 442 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4261 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 442 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4265 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 443 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4270 - page_layout_root_id: 270 - page_layout_id: 277 - section_param_id: 444 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4277 - page_layout_root_id: 270 - page_layout_id: 283 - section_param_id: 445 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4278 - page_layout_root_id: 270 - page_layout_id: 286 - section_param_id: 445 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4282 - page_layout_root_id: 270 - page_layout_id: 275 - section_param_id: 446 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 04:41:03.000000000 Z - updated_at: 2014-07-27 04:41:03.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4290 - page_layout_root_id: 270 - page_layout_id: 361 - section_param_id: 6 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 05:07:38.000000000 Z - updated_at: 2014-07-27 05:07:38.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4291 - page_layout_root_id: 270 - page_layout_id: 361 - section_param_id: 7 - theme_id: 5 - pvalue: - '101': float:left - 101unset: '0' - '15': height:200px - 15unset: '0' - 21unset: '0' - '21': width:100% - unset: - computed_pvalue: - created_at: 2014-07-27 05:07:38.000000000 Z - updated_at: 2014-08-09 07:34:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4292 - page_layout_root_id: 270 - page_layout_id: 361 - section_param_id: 8 - theme_id: 5 - pvalue: - 15hidden: '1' - 15unset: '0' - '15': height:190px - 31unset: '0' - '31': margin:auto auto 10px auto - unset: - computed_pvalue: - created_at: 2014-07-27 05:07:39.000000000 Z - updated_at: 2014-08-09 07:34:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4293 - page_layout_root_id: 270 - page_layout_id: 361 - section_param_id: 9 - theme_id: 5 - pvalue: - 3unset: '0' - '3': background-image:howbuy.jpg - 4unset: '0' - '4': background-position:center center - unset: - computed_pvalue: - created_at: 2014-07-27 05:07:39.000000000 Z - updated_at: 2014-08-09 07:34:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4294 - page_layout_root_id: 270 - page_layout_id: 361 - section_param_id: 10 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 05:07:39.000000000 Z - updated_at: 2014-07-27 05:07:39.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4295 - page_layout_root_id: 270 - page_layout_id: 362 - section_param_id: 50 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 05:11:43.000000000 Z - updated_at: 2014-07-27 05:11:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4296 - page_layout_root_id: 270 - page_layout_id: 362 - section_param_id: 51 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 05:11:43.000000000 Z - updated_at: 2014-07-27 05:11:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4297 - page_layout_root_id: 270 - page_layout_id: 362 - section_param_id: 52 - theme_id: 5 - pvalue: - 15hidden: '1' - unset: - computed_pvalue: - created_at: 2014-07-27 05:11:43.000000000 Z - updated_at: 2014-08-09 07:34:42.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4298 - page_layout_root_id: 270 - page_layout_id: 362 - section_param_id: 53 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 05:11:43.000000000 Z - updated_at: 2014-07-27 05:11:43.000000000 Z -- !ruby/object:Spree::ParamValue - attributes: - id: 4299 - page_layout_root_id: 270 - page_layout_id: 362 - section_param_id: 54 - theme_id: 5 - pvalue: {} - unset: - computed_pvalue: - created_at: 2014-07-27 05:11:43.000000000 Z - updated_at: 2014-07-27 05:11:43.000000000 Z -page_layouts: -- !ruby/object:Spree::PageLayout - attributes: - id: 270 - site_id: 2 - root_id: 270 - parent_id: - lft: 1 - rgt: 174 - title: root - slug: root--3 - section_id: 75 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: true - created_at: 2014-07-02 13:33:57.000000000 Z - updated_at: 2014-07-12 06:27:38.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 271 - site_id: 2 - root_id: 270 - parent_id: 270 - lft: 2 - rgt: 11 - title: Header - slug: header--3 - section_id: 2 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:57.000000000 Z - updated_at: 2014-07-22 15:16:20.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 272 - site_id: 2 - root_id: 270 - parent_id: 271 - lft: 3 - rgt: 10 - title: container - slug: container--30 - section_id: 2 - section_instance: 20 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:38.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 273 - site_id: 2 - root_id: 270 - parent_id: 272 - lft: 4 - rgt: 5 - title: Logo - slug: logo--3 - section_id: 97 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 274 - site_id: 2 - root_id: 270 - parent_id: 272 - lft: 6 - rgt: 9 - title: container - slug: container--31 - section_id: 2 - section_instance: 21 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:38.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 275 - site_id: 2 - root_id: 270 - parent_id: 274 - lft: 7 - rgt: 8 - title: logged&unlogged menu - slug: logged-unlogged-menu--3 - section_id: 101 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:38.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 355 - site_id: 2 - root_id: 270 - parent_id: 270 - lft: 12 - rgt: 19 - title: container37 - slug: container37--2 - section_id: 2 - section_instance: 37 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-26 13:01:44.000000000 Z - updated_at: 2014-07-26 13:01:44.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 276 - site_id: 2 - root_id: 270 - parent_id: 355 - lft: 13 - rgt: 18 - title: container - slug: container--32 - section_id: 2 - section_instance: 19 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:38.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 277 - site_id: 2 - root_id: 270 - parent_id: 276 - lft: 14 - rgt: 15 - title: Main menu - slug: main-menu--3 - section_id: 3 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 278 - site_id: 2 - root_id: 270 - parent_id: 276 - lft: 16 - rgt: 17 - title: Mini cart - slug: mini-cart--2 - section_id: 121 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-27 03:20:52.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: *107466080 -- !ruby/object:Spree::PageLayout - attributes: - id: 332 - site_id: 2 - root_id: 270 - parent_id: 333 - lft: 21 - rgt: 22 - title: Slider - slug: slider - section_id: 114 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-09 13:01:29.000000000 Z - updated_at: 2014-07-12 06:27:40.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 361 - site_id: 2 - root_id: 270 - parent_id: 270 - lft: 24 - rgt: 27 - title: container41 - slug: container41 - section_id: 2 - section_instance: 41 - section_context: list,detail - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-27 05:07:38.000000000 Z - updated_at: 2014-07-27 14:20:43.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 362 - site_id: 2 - root_id: 270 - parent_id: 361 - lft: 25 - rgt: 26 - title: text3 - slug: text3--2 - section_id: 11 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-27 05:11:43.000000000 Z - updated_at: 2014-07-27 05:11:43.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 279 - site_id: 2 - root_id: 270 - parent_id: 270 - lft: 28 - rgt: 165 - title: content - slug: content--3 - section_id: 2 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 339 - site_id: 2 - root_id: 270 - parent_id: 279 - lft: 29 - rgt: 62 - title: container31 - slug: container31 - section_id: 2 - section_instance: 31 - section_context: home - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-17 00:19:17.000000000 Z - updated_at: 2014-07-26 14:40:12.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 340 - site_id: 2 - root_id: 270 - parent_id: 339 - lft: 30 - rgt: 51 - title: leftside - slug: leftside - section_id: 2 - section_instance: 32 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-17 00:26:45.000000000 Z - updated_at: 2014-07-17 00:27:28.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 342 - site_id: 2 - root_id: 270 - parent_id: 340 - lft: 31 - rgt: 40 - title: suits - slug: suits - section_id: 2 - section_instance: 31 - section_context: '' - data_source: taxon - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-17 00:28:52.000000000 Z - updated_at: 2014-07-25 12:45:06.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 350 - site_id: 2 - root_id: 270 - parent_id: 342 - lft: 32 - rgt: 33 - title: taxon name2 - slug: taxon-name2 - section_id: 50 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-25 13:58:55.000000000 Z - updated_at: 2014-07-25 13:58:55.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 351 - site_id: 2 - root_id: 270 - parent_id: 342 - lft: 34 - rgt: 39 - title: container36 - slug: container36 - section_id: 2 - section_instance: 36 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-25 14:01:47.000000000 Z - updated_at: 2014-07-25 14:01:47.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 348 - site_id: 2 - root_id: 270 - parent_id: 351 - lft: 35 - rgt: 38 - title: container34 - slug: container34 - section_id: 2 - section_instance: 34 - section_context: '' - data_source: gpvs - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-24 23:40:52.000000000 Z - updated_at: 2014-07-24 23:43:30.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 344 - site_id: 2 - root_id: 270 - parent_id: 348 - lft: 36 - rgt: 37 - title: product image2 - slug: product-image2 - section_id: 17 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-17 09:10:10.000000000 Z - updated_at: 2014-07-17 09:10:10.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 343 - site_id: 2 - root_id: 270 - parent_id: 340 - lft: 41 - rgt: 50 - title: fabrics - slug: fabrics - section_id: 2 - section_instance: 32 - section_context: '' - data_source: taxon - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-17 00:29:02.000000000 Z - updated_at: 2014-07-25 12:48:48.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 356 - site_id: 2 - root_id: 270 - parent_id: 343 - lft: 42 - rgt: 43 - title: taxon name3 - slug: taxon-name3 - section_id: 50 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-26 13:30:46.000000000 Z - updated_at: 2014-07-26 13:30:46.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 357 - site_id: 2 - root_id: 270 - parent_id: 343 - lft: 44 - rgt: 49 - title: container38 - slug: container38 - section_id: 2 - section_instance: 38 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-26 13:30:57.000000000 Z - updated_at: 2014-07-26 13:30:57.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 349 - site_id: 2 - root_id: 270 - parent_id: 357 - lft: 45 - rgt: 48 - title: container35 - slug: container35 - section_id: 2 - section_instance: 35 - section_context: '' - data_source: gpvs - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-24 23:41:13.000000000 Z - updated_at: 2014-07-24 23:43:38.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 345 - site_id: 2 - root_id: 270 - parent_id: 349 - lft: 46 - rgt: 47 - title: product image3 - slug: product-image3 - section_id: 17 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-17 09:13:54.000000000 Z - updated_at: 2014-07-17 09:13:54.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 341 - site_id: 2 - root_id: 270 - parent_id: 339 - lft: 52 - rgt: 61 - title: rightside - slug: rightside - section_id: 2 - section_instance: 33 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-17 00:26:54.000000000 Z - updated_at: 2014-07-17 00:27:40.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 353 - site_id: 2 - root_id: 270 - parent_id: 341 - lft: 53 - rgt: 60 - title: container37 - slug: container37 - section_id: 2 - section_instance: 37 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-26 04:58:58.000000000 Z - updated_at: 2014-07-26 04:58:58.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 354 - site_id: 2 - root_id: 270 - parent_id: 353 - lft: 54 - rgt: 55 - title: taxonomy name3 - slug: taxonomy-name3 - section_id: 40 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-26 04:59:54.000000000 Z - updated_at: 2014-07-26 04:59:54.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 346 - site_id: 2 - root_id: 270 - parent_id: 353 - lft: 56 - rgt: 59 - title: container33 - slug: container33 - section_id: 2 - section_instance: 33 - section_context: '' - data_source: taxon - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-17 09:14:54.000000000 Z - updated_at: 2014-07-26 03:15:19.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 352 - site_id: 2 - root_id: 270 - parent_id: 346 - lft: 57 - rgt: 58 - title: Taxon icon1 - slug: taxon-icon1 - section_id: 119 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-26 03:12:37.000000000 Z - updated_at: 2014-07-26 03:12:37.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 280 - site_id: 2 - root_id: 270 - parent_id: 279 - lft: 63 - rgt: 76 - title: lftnav - slug: lftnav--3 - section_id: 2 - section_instance: 4 - section_context: list,detail - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-27 02:04:37.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 281 - site_id: 2 - root_id: 270 - parent_id: 280 - lft: 64 - rgt: 69 - title: container - slug: container--33 - section_id: 2 - section_instance: 12 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:38.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 282 - site_id: 2 - root_id: 270 - parent_id: 281 - lft: 65 - rgt: 66 - title: taxonomy name - slug: taxonomy-name--5 - section_id: 40 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: *118524550 - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 283 - site_id: 2 - root_id: 270 - parent_id: 281 - lft: 67 - rgt: 68 - title: vmenu - slug: vmenu--5 - section_id: 6 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:38.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 284 - site_id: 2 - root_id: 270 - parent_id: 280 - lft: 70 - rgt: 75 - title: container - slug: container--34 - section_id: 2 - section_instance: 13 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:38.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 285 - site_id: 2 - root_id: 270 - parent_id: 284 - lft: 71 - rgt: 72 - title: taxonomy name - slug: taxonomy-name--6 - section_id: 40 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:38.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 286 - site_id: 2 - root_id: 270 - parent_id: 284 - lft: 73 - rgt: 74 - title: vmenu - slug: vmenu--6 - section_id: 6 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:38.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 287 - site_id: 2 - root_id: 270 - parent_id: 279 - lft: 77 - rgt: 162 - title: main content - slug: main-content--3 - section_id: 2 - section_instance: 5 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 288 - site_id: 2 - root_id: 270 - parent_id: 287 - lft: 78 - rgt: 87 - title: product list - slug: product-list--3 - section_id: 2 - section_instance: 6 - section_context: list - data_source: gpvs - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 289 - site_id: 2 - root_id: 270 - parent_id: 288 - lft: 79 - rgt: 86 - title: container - slug: container--35 - section_id: 2 - section_instance: 8 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 290 - site_id: 2 - root_id: 270 - parent_id: 289 - lft: 80 - rgt: 81 - title: product image - slug: product-image--3 - section_id: 17 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 291 - site_id: 2 - root_id: 270 - parent_id: 289 - lft: 82 - rgt: 83 - title: product name - slug: product-name--5 - section_id: 13 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 292 - site_id: 2 - root_id: 270 - parent_id: 289 - lft: 84 - rgt: 85 - title: product price - slug: product-price--5 - section_id: 30 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 293 - site_id: 2 - root_id: 270 - parent_id: 287 - lft: 88 - rgt: 117 - title: product detail - slug: product-detail--3 - section_id: 2 - section_instance: 7 - section_context: detail - data_source: this_product - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 294 - site_id: 2 - root_id: 270 - parent_id: 293 - lft: 89 - rgt: 94 - title: container - slug: container--36 - section_id: 2 - section_instance: 10 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 295 - site_id: 2 - root_id: 270 - parent_id: 294 - lft: 90 - rgt: 91 - title: image with thumbnails - slug: image-with-thumbnails--3 - section_id: 94 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 296 - site_id: 2 - root_id: 270 - parent_id: 294 - lft: 92 - rgt: 93 - title: product_properties - slug: product_properties--3 - section_id: 28 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 297 - site_id: 2 - root_id: 270 - parent_id: 293 - lft: 95 - rgt: 112 - title: container - slug: container--37 - section_id: 2 - section_instance: 9 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 298 - site_id: 2 - root_id: 270 - parent_id: 297 - lft: 96 - rgt: 97 - title: product name - slug: product-name--6 - section_id: 13 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 300 - site_id: 2 - root_id: 270 - parent_id: 297 - lft: 98 - rgt: 111 - title: container - slug: container--38 - section_id: 2 - section_instance: 11 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 301 - site_id: 2 - root_id: 270 - parent_id: 300 - lft: 99 - rgt: 100 - title: Product option values - slug: product-option-values--3 - section_id: 107 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 302 - site_id: 2 - root_id: 270 - parent_id: 300 - lft: 101 - rgt: 110 - title: container - slug: container--39 - section_id: 2 - section_instance: 25 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 303 - site_id: 2 - root_id: 270 - parent_id: 302 - lft: 102 - rgt: 103 - title: product price - slug: product-price--6 - section_id: 30 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 304 - site_id: 2 - root_id: 270 - parent_id: 302 - lft: 104 - rgt: 109 - title: container - slug: container--40 - section_id: 2 - section_instance: 24 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 305 - site_id: 2 - root_id: 270 - parent_id: 304 - lft: 105 - rgt: 106 - title: product quantity - slug: product-quantity--3 - section_id: 32 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 306 - site_id: 2 - root_id: 270 - parent_id: 304 - lft: 107 - rgt: 108 - title: product atc - slug: product-atc--3 - section_id: 34 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 359 - site_id: 2 - root_id: 270 - parent_id: 293 - lft: 113 - rgt: 116 - title: container40 - slug: container40 - section_id: 2 - section_instance: 40 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-27 02:08:02.000000000 Z - updated_at: 2014-07-27 02:08:02.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 299 - site_id: 2 - root_id: 270 - parent_id: 359 - lft: 114 - rgt: 115 - title: product description - slug: product-description--3 - section_id: 15 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 307 - site_id: 2 - root_id: 270 - parent_id: 287 - lft: 118 - rgt: 161 - title: other pages - slug: other-pages--3 - section_id: 2 - section_instance: 14 - section_context: cart,checkout,thanks,account,signup,login,password - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-02 13:33:58.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 308 - site_id: 2 - root_id: 270 - parent_id: 307 - lft: 119 - rgt: 120 - title: taxon name - slug: taxon-name--3 - section_id: 50 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 309 - site_id: 2 - root_id: 270 - parent_id: 307 - lft: 121 - rgt: 126 - title: cart - slug: cart--3 - section_id: 36 - section_instance: 1 - section_context: cart - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 310 - site_id: 2 - root_id: 270 - parent_id: 309 - lft: 122 - rgt: 123 - title: cart items - slug: cart-items--3 - section_id: 42 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 311 - site_id: 2 - root_id: 270 - parent_id: 309 - lft: 124 - rgt: 125 - title: order total price - slug: order-total-price--3 - section_id: 44 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 312 - site_id: 2 - root_id: 270 - parent_id: 307 - lft: 127 - rgt: 132 - title: checkout - slug: checkout--3 - section_id: 46 - section_instance: 2 - section_context: checkout - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 313 - site_id: 2 - root_id: 270 - parent_id: 312 - lft: 128 - rgt: 129 - title: ship form - slug: ship-form--3 - section_id: 69 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:58.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 314 - site_id: 2 - root_id: 270 - parent_id: 312 - lft: 130 - rgt: 131 - title: payment form - slug: payment-form--3 - section_id: 72 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 315 - site_id: 2 - root_id: 270 - parent_id: 307 - lft: 133 - rgt: 142 - title: thanks - slug: thanks--3 - section_id: 2 - section_instance: 18 - section_context: thanks - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 316 - site_id: 2 - root_id: 270 - parent_id: 315 - lft: 134 - rgt: 139 - title: container - slug: container--41 - section_id: 2 - section_instance: 23 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 317 - site_id: 2 - root_id: 270 - parent_id: 316 - lft: 135 - rgt: 136 - title: order address - slug: order-address--3 - section_id: 52 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 318 - site_id: 2 - root_id: 270 - parent_id: 316 - lft: 137 - rgt: 138 - title: order payment - slug: order-payment--3 - section_id: 55 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 319 - site_id: 2 - root_id: 270 - parent_id: 315 - lft: 140 - rgt: 141 - title: order items - slug: order-items--3 - section_id: 58 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 320 - site_id: 2 - root_id: 270 - parent_id: 307 - lft: 143 - rgt: 148 - title: account - slug: account--3 - section_id: 2 - section_instance: 17 - section_context: account - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 321 - site_id: 2 - root_id: 270 - parent_id: 320 - lft: 144 - rgt: 145 - title: profile - slug: profile--3 - section_id: 85 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 322 - site_id: 2 - root_id: 270 - parent_id: 320 - lft: 146 - rgt: 147 - title: order list - slug: order-list--3 - section_id: 82 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 323 - site_id: 2 - root_id: 270 - parent_id: 307 - lft: 149 - rgt: 152 - title: login - slug: login--3 - section_id: 2 - section_instance: 15 - section_context: login - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-02 13:33:59.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 324 - site_id: 2 - root_id: 270 - parent_id: 323 - lft: 150 - rgt: 151 - title: login form - slug: login-form--3 - section_id: 61 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 325 - site_id: 2 - root_id: 270 - parent_id: 307 - lft: 153 - rgt: 156 - title: signup - slug: signup--3 - section_id: 2 - section_instance: 16 - section_context: signup - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-02 13:33:59.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 326 - site_id: 2 - root_id: 270 - parent_id: 325 - lft: 154 - rgt: 155 - title: sign up form - slug: sign-up-form--3 - section_id: 64 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 327 - site_id: 2 - root_id: 270 - parent_id: 307 - lft: 157 - rgt: 160 - title: password - slug: password--3 - section_id: 2 - section_instance: 22 - section_context: password - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-02 13:33:59.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 328 - site_id: 2 - root_id: 270 - parent_id: 327 - lft: 158 - rgt: 159 - title: password recover form - slug: password-recover-form--3 - section_id: 104 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 347 - site_id: 2 - root_id: 270 - parent_id: 279 - lft: 163 - rgt: 164 - title: text3 - slug: text3 - section_id: 11 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-17 09:15:31.000000000 Z - updated_at: 2014-07-17 09:15:31.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 329 - site_id: 2 - root_id: 270 - parent_id: 270 - lft: 166 - rgt: 171 - title: footer - slug: footer--3 - section_id: 2 - section_instance: 3 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-02 13:33:59.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 358 - site_id: 2 - root_id: 270 - parent_id: 329 - lft: 167 - rgt: 170 - title: container39 - slug: container39 - section_id: 2 - section_instance: 39 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 0 - is_full_html: false - created_at: 2014-07-26 14:41:26.000000000 Z - updated_at: 2014-07-26 14:41:26.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 330 - site_id: 2 - root_id: 270 - parent_id: 358 - lft: 168 - rgt: 169 - title: copyright - slug: copyright--3 - section_id: 11 - section_instance: 1 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-02 13:33:59.000000000 Z - data_source_param: '' -- !ruby/object:Spree::PageLayout - attributes: - id: 331 - site_id: 2 - root_id: 270 - parent_id: 270 - lft: 172 - rgt: 173 - title: dialog - slug: dialog--3 - section_id: 90 - section_instance: 2 - section_context: '' - data_source: '' - data_filter: '' - is_enabled: true - copy_from_root_id: 208 - is_full_html: false - created_at: 2014-07-02 13:33:59.000000000 Z - updated_at: 2014-07-12 06:27:39.000000000 Z - data_source_param: '' -template_files: -- !ruby/object:Spree::TemplateFile - attributes: - id: 18 - theme_id: 5 - attachment_width: - attachment_height: - attachment_file_size: 16469 - attachment_content_type: image/jpeg - attachment_file_name: 6a5e31b1jw1doccdf5tdqj.jpg - attachment_updated_at: 2014-07-09 12:28:20.000000000 Z - created_at: 2014-07-09 12:28:20.000000000 Z -- !ruby/object:Spree::TemplateFile - attributes: - id: 19 - theme_id: 5 - attachment_width: - attachment_height: - attachment_file_size: 6834 - attachment_content_type: image/jpeg - attachment_file_name: ushan-logo.jpg - attachment_updated_at: 2014-07-09 12:50:23.000000000 Z - created_at: 2014-07-09 12:50:23.000000000 Z -- !ruby/object:Spree::TemplateFile - attributes: - id: 20 - theme_id: 5 - attachment_width: - attachment_height: - attachment_file_size: 1340 - attachment_content_type: image/gif - attachment_file_name: title_bg.gif - attachment_updated_at: 2014-07-26 01:36:57.000000000 Z - created_at: 2014-07-26 01:36:57.000000000 Z -- !ruby/object:Spree::TemplateFile - attributes: - id: 21 - theme_id: 5 - attachment_width: - attachment_height: - attachment_file_size: 59008 - attachment_content_type: image/jpeg - attachment_file_name: howbuy.jpg - attachment_updated_at: 2014-07-27 05:59:59.000000000 Z - created_at: 2014-07-27 05:59:59.000000000 Z -- !ruby/object:Spree::TemplateFile - attributes: - id: 22 - theme_id: 5 - attachment_width: - attachment_height: - attachment_file_size: 255 - attachment_content_type: image/gif - attachment_file_name: nav_bg_40px.gif - attachment_updated_at: 2014-07-27 13:43:43.000000000 Z - created_at: 2014-07-27 13:43:43.000000000 Z -- !ruby/object:Spree::TemplateFile - attributes: - id: 23 - theme_id: 5 - attachment_width: - attachment_height: - attachment_file_size: 452 - attachment_content_type: image/gif - attachment_file_name: tab_on_1px.gif - attachment_updated_at: 2014-07-27 13:45:16.000000000 Z - created_at: 2014-07-27 13:45:16.000000000 Z -- !ruby/object:Spree::TemplateFile - attributes: - id: 24 - theme_id: 5 - attachment_width: - attachment_height: - attachment_file_size: 19840 - attachment_content_type: image/jpeg - attachment_file_name: tiao.jpg - attachment_updated_at: 2014-07-27 13:50:26.000000000 Z - created_at: 2014-07-27 13:50:26.000000000 Z -- !ruby/object:Spree::TemplateFile - attributes: - id: 25 - theme_id: 5 - attachment_width: - attachment_height: - attachment_file_size: 519 - attachment_content_type: image/gif - attachment_file_name: nav_not.gif - attachment_updated_at: 2014-07-28 14:08:34.000000000 Z - created_at: 2014-07-28 14:08:34.000000000 Z -template_releases: -- !ruby/object:Spree::TemplateRelease - attributes: - id: 7 - name: just a test - theme_id: 5 - created_at: 2014-07-26 08:14:33.000000000 Z - updated_at: 2014-07-26 08:14:33.000000000 Z diff --git a/spree_theme/db/themes/designs/2_5_1408541541/6a5e31b1jw1doccdf5tdqj.jpg b/spree_theme/db/themes/designs/2_5_1408541541/6a5e31b1jw1doccdf5tdqj.jpg deleted file mode 100644 index 7fff0f08..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1408541541/6a5e31b1jw1doccdf5tdqj.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1408541541/howbuy.jpg b/spree_theme/db/themes/designs/2_5_1408541541/howbuy.jpg deleted file mode 100644 index bfeaca08..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1408541541/howbuy.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1408541541/nav_bg_40px.gif b/spree_theme/db/themes/designs/2_5_1408541541/nav_bg_40px.gif deleted file mode 100644 index c0bffae4..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1408541541/nav_bg_40px.gif and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1408541541/nav_not.gif b/spree_theme/db/themes/designs/2_5_1408541541/nav_not.gif deleted file mode 100644 index c69d645d..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1408541541/nav_not.gif and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1408541541/tab_on_1px.gif b/spree_theme/db/themes/designs/2_5_1408541541/tab_on_1px.gif deleted file mode 100644 index 5e4e066e..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1408541541/tab_on_1px.gif and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1408541541/tiao.jpg b/spree_theme/db/themes/designs/2_5_1408541541/tiao.jpg deleted file mode 100644 index 203d1408..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1408541541/tiao.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1408541541/title_bg.gif b/spree_theme/db/themes/designs/2_5_1408541541/title_bg.gif deleted file mode 100644 index 26c8046b..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1408541541/title_bg.gif and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1408541541/ushan-logo.jpg b/spree_theme/db/themes/designs/2_5_1408541541/ushan-logo.jpg deleted file mode 100644 index 9455e3de..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1408541541/ushan-logo.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1410526949.json b/spree_theme/db/themes/designs/2_5_1410526949.json deleted file mode 100644 index f072da2d..00000000 --- a/spree_theme/db/themes/designs/2_5_1410526949.json +++ /dev/null @@ -1 +0,0 @@ -{"template":{"template_theme":{"assigned_resource_ids":{"335":{"spree/template_text":[5]},"386":{},"388":{"spree/taxon":[0,0]},"391":{},"394":{"spree/taxon":[65]},"396":{},"400":{},"405":{},"411":{},"413":{"spree/taxon":[0]},"416":{},"419":{},"465":{},"468":{}},"created_at":"2014-08-02T07:39:31.000Z","id":5,"page_layout_root_id":383,"release_id":15,"site_id":2,"slug":"","title":"\u670d\u88c5\u5b9a\u5236","updated_at":"2014-08-23T00:09:42.000Z"}},"param_values":[{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3640,"page_layout_id":384,"page_layout_root_id":383,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3641,"page_layout_id":384,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"1","101":"float:none","101unset":"0","21unset":"0","21":"width:960px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3642,"page_layout_id":384,"page_layout_root_id":383,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto auto auto"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3643,"page_layout_id":384,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3644,"page_layout_id":384,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3645,"page_layout_id":397,"page_layout_root_id":383,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3646,"page_layout_id":397,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"1","101":"float:none","101unset":"0","21unset":"0","21":"width:960px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3647,"page_layout_id":397,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3648,"page_layout_id":397,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0","2unset":"1","2":"background-color:yellow"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3649,"page_layout_id":397,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3650,"page_layout_id":466,"page_layout_root_id":383,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3651,"page_layout_id":466,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3652,"page_layout_id":466,"page_layout_root_id":383,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:solid none none none","8unset":"0","8":"border-width:4px 0px 0px 0px","6unset":"0","6":"border-color:#2D2D2F transparent transparent transparent"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3653,"page_layout_id":466,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0","2unset":"0","2":"background-color:#F5F5F5"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3654,"page_layout_id":466,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3655,"page_layout_id":415,"page_layout_root_id":383,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3656,"page_layout_id":415,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:200px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3657,"page_layout_id":415,"page_layout_root_id":383,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto 5px auto auto","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#CDCBCB #CDCBCB #CDCBCB #CDCBCB","32unset":"0","32":"padding:10px 10px 10px 10px"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3658,"page_layout_id":415,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0","2unset":"1","2":"background-color:#FFF8ED"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3659,"page_layout_id":415,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0","49unset":"1","49":"color:black"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3660,"page_layout_id":422,"page_layout_root_id":383,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3661,"page_layout_id":422,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:750px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3662,"page_layout_id":422,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3663,"page_layout_id":422,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3664,"page_layout_id":422,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3665,"page_layout_id":423,"page_layout_root_id":383,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3666,"page_layout_id":423,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"1","21":"width:100%"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3667,"page_layout_id":423,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3668,"page_layout_id":423,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3669,"page_layout_id":423,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3670,"page_layout_id":428,"page_layout_root_id":383,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3671,"page_layout_id":428,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"1","21":"width:200px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3672,"page_layout_id":428,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3673,"page_layout_id":428,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3674,"page_layout_id":428,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3675,"page_layout_id":425,"page_layout_root_id":383,"pvalue":{},"section_param_id":65,"theme_id":5,"unset":null,"updated_at":"2013-04-08T13:27:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3676,"page_layout_id":425,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111","15unset":"0","15":"height:110px","21unset":"0","21":"width:150px"},"section_param_id":66,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3677,"page_layout_id":425,"page_layout_root_id":383,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB","32unset":"0","32":"padding:5px 0px 5px 0px","15unset":"0","15":"height:98px"},"section_param_id":67,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3678,"page_layout_id":425,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":68,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3679,"page_layout_id":425,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111","53unset":"0","53":"text-align:center"},"section_param_id":69,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3680,"page_layout_id":442,"page_layout_root_id":383,"pvalue":{},"section_param_id":60,"theme_id":5,"unset":null,"updated_at":"2013-04-08T13:27:10.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3681,"page_layout_id":442,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":61,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3682,"page_layout_id":442,"page_layout_root_id":383,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:10px 0px 10px 0px"},"section_param_id":62,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3683,"page_layout_id":442,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":63,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3684,"page_layout_id":442,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111","24unset":"0","24":"font-size:90%"},"section_param_id":64,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3685,"page_layout_id":468,"page_layout_root_id":383,"pvalue":{},"section_param_id":50,"theme_id":5,"unset":null,"updated_at":"2013-04-08T13:27:11.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3686,"page_layout_id":468,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111","21unset":"0","21":"width:100%"},"section_param_id":51,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3687,"page_layout_id":468,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":52,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3688,"page_layout_id":468,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":53,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3689,"page_layout_id":468,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":54,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3690,"page_layout_id":424,"page_layout_root_id":383,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:both"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3691,"page_layout_id":424,"page_layout_root_id":383,"pvalue":{"15":"height:160px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:160px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3692,"page_layout_id":424,"page_layout_root_id":383,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 20px auto","15unset":"1","15":"height:140px","32unset":"1","32":"padding:0px 0px 0px 0px","8unset":"1","8":"border-width:0px 0px 0px 0px"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3693,"page_layout_id":424,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3694,"page_layout_id":424,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3695,"page_layout_id":432,"page_layout_root_id":383,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3696,"page_layout_id":432,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0","21unset":"0","21":"width:350px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3697,"page_layout_id":432,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3698,"page_layout_id":432,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3699,"page_layout_id":432,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3700,"page_layout_id":429,"page_layout_root_id":383,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3701,"page_layout_id":429,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3702,"page_layout_id":429,"page_layout_root_id":383,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto 10px auto auto"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3703,"page_layout_id":429,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3704,"page_layout_id":429,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3705,"page_layout_id":437,"page_layout_root_id":383,"pvalue":{},"section_param_id":110,"theme_id":5,"unset":null,"updated_at":"2014-07-30T23:08:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3706,"page_layout_id":437,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":111,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3707,"page_layout_id":437,"page_layout_root_id":383,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:10px auto 20px auto"},"section_param_id":112,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3708,"page_layout_id":437,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":113,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3709,"page_layout_id":437,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111","27unset":"0","27":"font-weight:bolder","24unset":"0","24":"font-size:110%","49unset":"0","49":"color:#00ADEE"},"section_param_id":114,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3710,"page_layout_id":434,"page_layout_root_id":383,"pvalue":{"86":"1","86unset":"0","85unset":"0","85":"clear:both"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3711,"page_layout_id":434,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"1","21unset":"0","21":"width:450px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3712,"page_layout_id":434,"page_layout_root_id":383,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:40px auto auto auto"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3713,"page_layout_id":434,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3714,"page_layout_id":434,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3715,"page_layout_id":445,"page_layout_root_id":383,"pvalue":{},"section_param_id":125,"theme_id":5,"unset":null,"updated_at":"2013-04-16T14:20:10.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3716,"page_layout_id":445,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111","21unset":"1","21":"width:670px"},"section_param_id":126,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3717,"page_layout_id":445,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":127,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3718,"page_layout_id":445,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":128,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3719,"page_layout_id":445,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111","53unset":"1","53":"text-align:right"},"section_param_id":129,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3720,"page_layout_id":427,"page_layout_root_id":383,"pvalue":{},"section_param_id":110,"theme_id":5,"unset":null,"updated_at":"2013-04-19T13:03:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3721,"page_layout_id":427,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111","21unset":"0","21":"width:150px"},"section_param_id":111,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3722,"page_layout_id":427,"page_layout_root_id":383,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:5px 0px 0px 0px","31unset":"0","31":"margin:auto auto 10px auto"},"section_param_id":112,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3723,"page_layout_id":427,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":113,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3724,"page_layout_id":427,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111","53unset":"0","53":"text-align:center","49unset":"0","49":"color:#00ADEE","27unset":"0","27":"font-weight:bold"},"section_param_id":114,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3725,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{},"section_param_id":27,"theme_id":5,"unset":null,"updated_at":"2013-10-02T10:20:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3726,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":28,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3727,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 0px 0px 20px"},"section_param_id":29,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3728,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":30,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3729,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":31,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3730,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{"32unset":"0","32":"padding:5px 0px 0px 0px"},"section_param_id":32,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3731,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{"54unset":"0","54":"text-decoration:none","24unset":"0","24":"font-size:90%","49unset":"0","49":"color:black"},"section_param_id":33,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3732,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{"54unset":"0","54":"text-decoration:underline"},"section_param_id":34,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3733,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{},"section_param_id":35,"theme_id":5,"unset":null,"updated_at":"2013-10-02T10:20:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3734,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{},"section_param_id":36,"theme_id":5,"unset":null,"updated_at":"2013-10-02T10:20:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3735,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{},"section_param_id":37,"theme_id":5,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3736,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{},"section_param_id":38,"theme_id":5,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3737,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{},"section_param_id":39,"theme_id":5,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3738,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{},"section_param_id":40,"theme_id":5,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3739,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{},"section_param_id":41,"theme_id":5,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3740,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{},"section_param_id":42,"theme_id":5,"unset":null,"updated_at":"2013-10-02T10:20:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3741,"page_layout_id":416,"page_layout_root_id":383,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3742,"page_layout_id":416,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3743,"page_layout_id":416,"page_layout_root_id":383,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 20px auto"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3744,"page_layout_id":416,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3745,"page_layout_id":416,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3746,"page_layout_id":419,"page_layout_root_id":383,"pvalue":{"86":"1","86unset":"0"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3747,"page_layout_id":419,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"1","101":"float:left","101unset":"0"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3748,"page_layout_id":419,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3749,"page_layout_id":419,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3750,"page_layout_id":419,"page_layout_root_id":383,"pvalue":{"15":"height:100px","15unset":"0","101":"float:left","101unset":"0"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3751,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{},"section_param_id":27,"theme_id":5,"unset":null,"updated_at":"2013-10-05T00:38:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3752,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":28,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3753,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{"15hidden":"1","31unset":"1","31":"margin:auto auto auto 20px","32unset":"0","32":"padding:0px 0px 0px 20px"},"section_param_id":29,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3754,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":30,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3755,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{"disabled_ha_ids":"111"},"section_param_id":31,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3756,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{"32unset":"0","32":"padding:5px 0px 0px 0px"},"section_param_id":32,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3757,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{"24unset":"0","24":"font-size:90%","49unset":"0","49":"color:black","54unset":"0","54":"text-decoration:none"},"section_param_id":33,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3758,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{"54unset":"0","54":"text-decoration:underline"},"section_param_id":34,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3759,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{},"section_param_id":35,"theme_id":5,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3760,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{},"section_param_id":36,"theme_id":5,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3761,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{},"section_param_id":37,"theme_id":5,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3762,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{},"section_param_id":38,"theme_id":5,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3763,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{},"section_param_id":39,"theme_id":5,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3764,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{},"section_param_id":40,"theme_id":5,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3765,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{},"section_param_id":41,"theme_id":5,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3766,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{},"section_param_id":42,"theme_id":5,"unset":null,"updated_at":"2013-10-05T00:38:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3767,"page_layout_id":449,"page_layout_root_id":383,"pvalue":{},"section_param_id":210,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:20:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3768,"page_layout_id":449,"page_layout_root_id":383,"pvalue":{"21unset":"0","21":"width:360px"},"section_param_id":211,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3769,"page_layout_id":449,"page_layout_root_id":383,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:10px 10px 10px 10px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB"},"section_param_id":212,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3770,"page_layout_id":449,"page_layout_root_id":383,"pvalue":{},"section_param_id":213,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:20:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3771,"page_layout_id":449,"page_layout_root_id":383,"pvalue":{},"section_param_id":214,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:20:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3772,"page_layout_id":449,"page_layout_root_id":383,"pvalue":{},"section_param_id":215,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:20:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3773,"page_layout_id":449,"page_layout_root_id":383,"pvalue":{"2unset":"1","2":"background-color:#000000"},"section_param_id":216,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3774,"page_layout_id":449,"page_layout_root_id":383,"pvalue":{"49unset":"0","49":"color:#00ADEE","53unset":"0","53":"text-align:center"},"section_param_id":217,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3775,"page_layout_id":450,"page_layout_root_id":383,"pvalue":{},"section_param_id":218,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:21:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3776,"page_layout_id":450,"page_layout_root_id":383,"pvalue":{"21unset":"0","21":"width:360px"},"section_param_id":219,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3777,"page_layout_id":450,"page_layout_root_id":383,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:10px 20px 10px 20px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB","31unset":"0","31":"margin:10px auto 10px auto"},"section_param_id":220,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3778,"page_layout_id":450,"page_layout_root_id":383,"pvalue":{},"section_param_id":221,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:21:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3779,"page_layout_id":450,"page_layout_root_id":383,"pvalue":{},"section_param_id":222,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:21:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3780,"page_layout_id":450,"page_layout_root_id":383,"pvalue":{},"section_param_id":223,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:21:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3781,"page_layout_id":450,"page_layout_root_id":383,"pvalue":{},"section_param_id":224,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:21:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3782,"page_layout_id":450,"page_layout_root_id":383,"pvalue":{"49unset":"0","49":"color:#00ADEE","53unset":"0","53":"text-align:center"},"section_param_id":225,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3783,"page_layout_id":443,"page_layout_root_id":383,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:35:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3784,"page_layout_id":443,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3785,"page_layout_id":443,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3786,"page_layout_id":443,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:35:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3787,"page_layout_id":443,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:35:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3788,"page_layout_id":444,"page_layout_root_id":383,"pvalue":{},"section_param_id":160,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:36:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3789,"page_layout_id":444,"page_layout_root_id":383,"pvalue":{},"section_param_id":161,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:36:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3790,"page_layout_id":444,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":162,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3791,"page_layout_id":444,"page_layout_root_id":383,"pvalue":{},"section_param_id":163,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:36:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3792,"page_layout_id":444,"page_layout_root_id":383,"pvalue":{"24unset":"0","24":"font-size:150%"},"section_param_id":164,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3793,"page_layout_id":453,"page_layout_root_id":383,"pvalue":{},"section_param_id":165,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3794,"page_layout_id":453,"page_layout_root_id":383,"pvalue":{},"section_param_id":166,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3795,"page_layout_id":453,"page_layout_root_id":383,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto 10px auto 10px"},"section_param_id":167,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3796,"page_layout_id":453,"page_layout_root_id":383,"pvalue":{},"section_param_id":168,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3797,"page_layout_id":453,"page_layout_root_id":383,"pvalue":{},"section_param_id":169,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:21.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3798,"page_layout_id":453,"page_layout_root_id":383,"pvalue":{"31unset":"0","31":"margin:auto auto 10px auto","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent","32unset":"0","32":"padding:5px 0px 5px 0px"},"section_param_id":170,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3799,"page_layout_id":453,"page_layout_root_id":383,"pvalue":{},"section_param_id":171,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:22.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3800,"page_layout_id":453,"page_layout_root_id":383,"pvalue":{"27":"font-weight:bold","54unset":"1","54":"text-decoration:underline","53unset":"1","53":"text-align:left"},"section_param_id":172,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3801,"page_layout_id":454,"page_layout_root_id":383,"pvalue":{},"section_param_id":173,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:30.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3802,"page_layout_id":454,"page_layout_root_id":383,"pvalue":{"21unset":"0","21":"width:300px"},"section_param_id":174,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3803,"page_layout_id":454,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":175,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3804,"page_layout_id":454,"page_layout_root_id":383,"pvalue":{},"section_param_id":176,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:31.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3805,"page_layout_id":454,"page_layout_root_id":383,"pvalue":{},"section_param_id":177,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:31.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3806,"page_layout_id":454,"page_layout_root_id":383,"pvalue":{"31unset":"0","31":"margin:auto auto 10px auto","32unset":"0","32":"padding:5px 0px 5px 0px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent"},"section_param_id":178,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3807,"page_layout_id":454,"page_layout_root_id":383,"pvalue":{},"section_param_id":179,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:31.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3808,"page_layout_id":454,"page_layout_root_id":383,"pvalue":{"27":"font-weight:bold","54unset":"1","54":"text-decoration:underline"},"section_param_id":180,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3809,"page_layout_id":455,"page_layout_root_id":383,"pvalue":{},"section_param_id":181,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3810,"page_layout_id":455,"page_layout_root_id":383,"pvalue":{},"section_param_id":182,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3811,"page_layout_id":455,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":183,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3812,"page_layout_id":455,"page_layout_root_id":383,"pvalue":{},"section_param_id":184,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3813,"page_layout_id":455,"page_layout_root_id":383,"pvalue":{},"section_param_id":185,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3814,"page_layout_id":455,"page_layout_root_id":383,"pvalue":{},"section_param_id":186,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3815,"page_layout_id":455,"page_layout_root_id":383,"pvalue":{},"section_param_id":187,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:40.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3816,"page_layout_id":455,"page_layout_root_id":383,"pvalue":{"27":"font-weight:bold"},"section_param_id":188,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3817,"page_layout_id":457,"page_layout_root_id":383,"pvalue":{},"section_param_id":268,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:51.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3818,"page_layout_id":457,"page_layout_root_id":383,"pvalue":{},"section_param_id":269,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:51.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3819,"page_layout_id":457,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":270,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3820,"page_layout_id":457,"page_layout_root_id":383,"pvalue":{},"section_param_id":271,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3821,"page_layout_id":457,"page_layout_root_id":383,"pvalue":{},"section_param_id":272,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3822,"page_layout_id":457,"page_layout_root_id":383,"pvalue":{},"section_param_id":273,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3823,"page_layout_id":457,"page_layout_root_id":383,"pvalue":{},"section_param_id":274,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3824,"page_layout_id":457,"page_layout_root_id":383,"pvalue":{},"section_param_id":275,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:37:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3825,"page_layout_id":458,"page_layout_root_id":383,"pvalue":{},"section_param_id":260,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3826,"page_layout_id":458,"page_layout_root_id":383,"pvalue":{},"section_param_id":261,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3827,"page_layout_id":458,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":262,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3828,"page_layout_id":458,"page_layout_root_id":383,"pvalue":{},"section_param_id":263,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3829,"page_layout_id":458,"page_layout_root_id":383,"pvalue":{},"section_param_id":264,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3830,"page_layout_id":458,"page_layout_root_id":383,"pvalue":{},"section_param_id":265,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3831,"page_layout_id":458,"page_layout_root_id":383,"pvalue":{},"section_param_id":266,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:38:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3832,"page_layout_id":458,"page_layout_root_id":383,"pvalue":{},"section_param_id":267,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:38:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3833,"page_layout_id":459,"page_layout_root_id":383,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3834,"page_layout_id":459,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3835,"page_layout_id":459,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3836,"page_layout_id":459,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3837,"page_layout_id":459,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3838,"page_layout_id":461,"page_layout_root_id":383,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:32.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3839,"page_layout_id":461,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3840,"page_layout_id":461,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3841,"page_layout_id":461,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3842,"page_layout_id":461,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:33.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3843,"page_layout_id":460,"page_layout_root_id":383,"pvalue":{},"section_param_id":189,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3844,"page_layout_id":460,"page_layout_root_id":383,"pvalue":{},"section_param_id":190,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3845,"page_layout_id":460,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":191,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3846,"page_layout_id":460,"page_layout_root_id":383,"pvalue":{},"section_param_id":192,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3847,"page_layout_id":460,"page_layout_root_id":383,"pvalue":{},"section_param_id":193,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3848,"page_layout_id":460,"page_layout_root_id":383,"pvalue":{},"section_param_id":194,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3849,"page_layout_id":460,"page_layout_root_id":383,"pvalue":{},"section_param_id":195,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3850,"page_layout_id":460,"page_layout_root_id":383,"pvalue":{},"section_param_id":196,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3851,"page_layout_id":462,"page_layout_root_id":383,"pvalue":{},"section_param_id":197,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3852,"page_layout_id":462,"page_layout_root_id":383,"pvalue":{},"section_param_id":198,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3853,"page_layout_id":462,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":199,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3854,"page_layout_id":462,"page_layout_root_id":383,"pvalue":{},"section_param_id":200,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3855,"page_layout_id":462,"page_layout_root_id":383,"pvalue":{},"section_param_id":201,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3856,"page_layout_id":462,"page_layout_root_id":383,"pvalue":{},"section_param_id":202,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3857,"page_layout_id":462,"page_layout_root_id":383,"pvalue":{},"section_param_id":203,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3858,"page_layout_id":462,"page_layout_root_id":383,"pvalue":{},"section_param_id":204,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3859,"page_layout_id":456,"page_layout_root_id":383,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:50:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3860,"page_layout_id":456,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3861,"page_layout_id":456,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3862,"page_layout_id":456,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:50:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3863,"page_layout_id":456,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:50:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3864,"page_layout_id":451,"page_layout_root_id":383,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:50:37.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3865,"page_layout_id":451,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3866,"page_layout_id":451,"page_layout_root_id":383,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 0px 0px 0px"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3867,"page_layout_id":451,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:50:37.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3868,"page_layout_id":451,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2013-11-02T09:50:37.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3869,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{},"section_param_id":11,"theme_id":5,"unset":null,"updated_at":"2013-11-05T03:16:07.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3870,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{"21unset":"1","21":"width:960px"},"section_param_id":12,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3871,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{"15hidden":"1","32unset":"1","32":"padding:0px 0px 0px 0px"},"section_param_id":13,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3872,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{"2unset":"1","2":"background-color:lime"},"section_param_id":14,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3873,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{"27unset":"1","27":"font-weight:bold","49unset":"1","49":"color:white"},"section_param_id":15,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3874,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{"32unset":"0","32":"padding:12px 10px 13px 10px"},"section_param_id":16,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3875,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{"54unset":"0","54":"text-decoration:none","49unset":"0","49":"color:white"},"section_param_id":17,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3876,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{},"section_param_id":18,"theme_id":5,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3877,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{},"section_param_id":19,"theme_id":5,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3878,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{},"section_param_id":20,"theme_id":5,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3879,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{},"section_param_id":21,"theme_id":5,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3880,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{"3unset":"0","3":"background-image:nav_not.gif","4unset":"0","4":"background-position:right top","5unset":"0","5":"background-repeat:no-repeat"},"section_param_id":22,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3881,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{},"section_param_id":23,"theme_id":5,"unset":null,"updated_at":"2013-11-05T03:16:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3882,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{"3unset":"0","3":"background-image:tab_on_1px.gif","4unset":"1","4":"background-position:left top","5unset":"0","5":"background-repeat:repeat"},"section_param_id":24,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3883,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{},"section_param_id":25,"theme_id":5,"unset":null,"updated_at":"2013-11-05T03:16:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3884,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{},"section_param_id":26,"theme_id":5,"unset":null,"updated_at":"2013-11-05T03:16:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3885,"page_layout_id":417,"page_layout_root_id":383,"pvalue":{},"section_param_id":135,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3886,"page_layout_id":417,"page_layout_root_id":383,"pvalue":{"21unset":"0","21":"width:160px"},"section_param_id":136,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3887,"page_layout_id":417,"page_layout_root_id":383,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent","32unset":"0","32":"padding:0px 0px 5px 0px"},"section_param_id":137,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3888,"page_layout_id":417,"page_layout_root_id":383,"pvalue":{},"section_param_id":138,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3889,"page_layout_id":417,"page_layout_root_id":383,"pvalue":{"27unset":"0","27":"font-weight:bold"},"section_param_id":139,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3890,"page_layout_id":420,"page_layout_root_id":383,"pvalue":{},"section_param_id":135,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3891,"page_layout_id":420,"page_layout_root_id":383,"pvalue":{"21unset":"0","21":"width:160px"},"section_param_id":136,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3892,"page_layout_id":420,"page_layout_root_id":383,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 0px 5px 0px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent"},"section_param_id":137,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3893,"page_layout_id":420,"page_layout_root_id":383,"pvalue":{},"section_param_id":138,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:09.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3894,"page_layout_id":420,"page_layout_root_id":383,"pvalue":{"27unset":"0","27":"font-weight:bold"},"section_param_id":139,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3895,"page_layout_id":446,"page_layout_root_id":383,"pvalue":{},"section_param_id":140,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3896,"page_layout_id":446,"page_layout_root_id":383,"pvalue":{},"section_param_id":141,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3897,"page_layout_id":446,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":142,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3898,"page_layout_id":446,"page_layout_root_id":383,"pvalue":{},"section_param_id":143,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3899,"page_layout_id":446,"page_layout_root_id":383,"pvalue":{},"section_param_id":144,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3900,"page_layout_id":447,"page_layout_root_id":383,"pvalue":{},"section_param_id":145,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:15.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3901,"page_layout_id":447,"page_layout_root_id":383,"pvalue":{"101unset":"0","101":"float:right"},"section_param_id":146,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3902,"page_layout_id":447,"page_layout_root_id":383,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:10px auto auto auto"},"section_param_id":147,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3903,"page_layout_id":447,"page_layout_root_id":383,"pvalue":{},"section_param_id":148,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3904,"page_layout_id":447,"page_layout_root_id":383,"pvalue":{},"section_param_id":149,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3905,"page_layout_id":448,"page_layout_root_id":383,"pvalue":{},"section_param_id":150,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3906,"page_layout_id":448,"page_layout_root_id":383,"pvalue":{"21unset":"1","21":"width:600px"},"section_param_id":151,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3907,"page_layout_id":448,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":152,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3908,"page_layout_id":448,"page_layout_root_id":383,"pvalue":{},"section_param_id":153,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3909,"page_layout_id":448,"page_layout_root_id":383,"pvalue":{},"section_param_id":154,"theme_id":5,"unset":null,"updated_at":"2013-11-25T06:53:16.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3910,"page_layout_id":386,"page_layout_root_id":383,"pvalue":{},"section_param_id":323,"theme_id":5,"unset":null,"updated_at":"2013-11-29T02:49:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3911,"page_layout_id":386,"page_layout_root_id":383,"pvalue":{"21unset":"1","21":"width:220px","101unset":"1","101":"float:none"},"section_param_id":324,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3912,"page_layout_id":386,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":325,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3913,"page_layout_id":386,"page_layout_root_id":383,"pvalue":{},"section_param_id":326,"theme_id":5,"unset":null,"updated_at":"2013-11-29T02:49:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3914,"page_layout_id":386,"page_layout_root_id":383,"pvalue":{},"section_param_id":327,"theme_id":5,"unset":null,"updated_at":"2013-11-29T02:49:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3915,"page_layout_id":390,"page_layout_root_id":383,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3916,"page_layout_id":390,"page_layout_root_id":383,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:960px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3917,"page_layout_id":390,"page_layout_root_id":383,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:0px 0px 6px 0px","7unset":"1","7":"border-style:none none solid none","8unset":"1","8":"border-width:0px 0px 1px 0px","6unset":"1","6":"border-color:transparent transparent #D9D9DB transparent","31unset":"1","31":"margin:auto 10px auto 10px"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3918,"page_layout_id":390,"page_layout_root_id":383,"pvalue":{"2unset":"1","2":"background-color:green"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3919,"page_layout_id":390,"page_layout_root_id":383,"pvalue":{"49unset":"1","49":"color:teal","25unset":"1","25":"font-style:normal","24unset":"1","24":"font-size:0%","27unset":"1","27":"font-weight:bold"},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3920,"page_layout_id":385,"page_layout_root_id":383,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3921,"page_layout_id":385,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3922,"page_layout_id":385,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3923,"page_layout_id":385,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2013-12-05T08:06:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3924,"page_layout_id":385,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2013-12-05T08:06:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3925,"page_layout_id":387,"page_layout_root_id":383,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2013-12-05T08:11:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3926,"page_layout_id":387,"page_layout_root_id":383,"pvalue":{"101":"float:right","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3927,"page_layout_id":387,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3928,"page_layout_id":387,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2013-12-05T08:11:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3929,"page_layout_id":387,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2013-12-05T08:11:48.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3930,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{"21":"width:960px","21unset":"1","20":"min-width:960px","20hidden":"1"},"section_param_id":226,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3931,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":227,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3932,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{"85":"clear:both"},"section_param_id":228,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3933,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{"3unset":"1","3":"background-image:none","2unset":"1","2":"background-color:black"},"section_param_id":229,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3934,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":230,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3935,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":231,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3936,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":232,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3937,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":233,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3938,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":234,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3939,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{"31unset":"0","31":"margin:10px auto 2px auto"},"section_param_id":235,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3940,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":236,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3941,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":237,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3942,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":238,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3943,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":239,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3944,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":240,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3945,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":241,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3946,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{"49unset":"0","49":"color:red","24unset":"0","24":"font-size:82%"},"section_param_id":242,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3947,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":243,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3948,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":317,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3949,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":318,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3950,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":319,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3951,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":320,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3952,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":321,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3953,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":322,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3954,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":244,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3955,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":245,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3956,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":246,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3957,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{"49unset":"1","49":"color:#00ADEE","24unset":"1","24":"font-size:80%"},"section_param_id":247,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3958,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":248,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3959,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":249,"theme_id":5,"unset":null,"updated_at":"2014-07-30T23:08:29.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3960,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{"32unset":"0","32":"padding:5px 10px 5px 10px"},"section_param_id":250,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3961,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":251,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3962,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{"2unset":"0","2":"background-color:#D9D9DB"},"section_param_id":252,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3963,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":253,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3964,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":254,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3965,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":255,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3966,"page_layout_id":383,"page_layout_root_id":383,"pvalue":{},"section_param_id":256,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3967,"page_layout_id":426,"page_layout_root_id":383,"pvalue":{},"section_param_id":55,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3968,"page_layout_id":426,"page_layout_root_id":383,"pvalue":{"21unset":"0","21":"width:150px","15unset":"0","15":"height:34px"},"section_param_id":56,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3969,"page_layout_id":426,"page_layout_root_id":383,"pvalue":{"15hidden":"1","15unset":"0","15":"height:33px","32unset":"1","32":"padding:0px 0px 0px 0px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #BBBBBB transparent"},"section_param_id":57,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3970,"page_layout_id":426,"page_layout_root_id":383,"pvalue":{},"section_param_id":58,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3971,"page_layout_id":426,"page_layout_root_id":383,"pvalue":{},"section_param_id":59,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3972,"page_layout_id":426,"page_layout_root_id":383,"pvalue":{},"section_param_id":294,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3973,"page_layout_id":426,"page_layout_root_id":383,"pvalue":{},"section_param_id":295,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3974,"page_layout_id":426,"page_layout_root_id":383,"pvalue":{"49unset":"0","49":"color:#BBBBBB","27unset":"0","27":"font-weight:bold","24unset":"0","24":"font-size:80%","54unset":"0","54":"text-decoration:none","53unset":"0","53":"text-align:center"},"section_param_id":296,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3975,"page_layout_id":426,"page_layout_root_id":383,"pvalue":{},"section_param_id":297,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:39:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3976,"page_layout_id":431,"page_layout_root_id":383,"pvalue":{},"section_param_id":105,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3977,"page_layout_id":431,"page_layout_root_id":383,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":106,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3978,"page_layout_id":431,"page_layout_root_id":383,"pvalue":{},"section_param_id":107,"theme_id":5,"unset":null,"updated_at":"2014-07-31T13:50:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3979,"page_layout_id":431,"page_layout_root_id":383,"pvalue":{},"section_param_id":108,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3980,"page_layout_id":431,"page_layout_root_id":383,"pvalue":{},"section_param_id":109,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3981,"page_layout_id":431,"page_layout_root_id":383,"pvalue":{"32unset":"0","32":"padding:5px 5px 5px 5px","7unset":"0","7":"border-style:solid none solid none","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB"},"section_param_id":302,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3982,"page_layout_id":431,"page_layout_root_id":383,"pvalue":{"2unset":"0","2":"background-color:transparent"},"section_param_id":303,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3983,"page_layout_id":431,"page_layout_root_id":383,"pvalue":{},"section_param_id":304,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3984,"page_layout_id":431,"page_layout_root_id":383,"pvalue":{"27unset":"0","27":"font-weight:bold"},"section_param_id":305,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3985,"page_layout_id":431,"page_layout_root_id":383,"pvalue":{},"section_param_id":306,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3986,"page_layout_id":433,"page_layout_root_id":383,"pvalue":{},"section_param_id":55,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3987,"page_layout_id":433,"page_layout_root_id":383,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":56,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3988,"page_layout_id":433,"page_layout_root_id":383,"pvalue":{"15hidden":"1","32unset":"1","32":"padding:0px 0px 0px 0px","7unset":"0","7":"border-style:none none solid none","8unset":"0","8":"border-width:0px 0px 1px 0px","6unset":"0","6":"border-color:transparent transparent #D9D9DB transparent"},"section_param_id":57,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3989,"page_layout_id":433,"page_layout_root_id":383,"pvalue":{},"section_param_id":58,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3990,"page_layout_id":433,"page_layout_root_id":383,"pvalue":{},"section_param_id":59,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3991,"page_layout_id":433,"page_layout_root_id":383,"pvalue":{},"section_param_id":294,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3992,"page_layout_id":433,"page_layout_root_id":383,"pvalue":{},"section_param_id":295,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3993,"page_layout_id":433,"page_layout_root_id":383,"pvalue":{"49unset":"0","49":"color:black","54unset":"0","54":"text-decoration:none","27unset":"0","27":"font-weight:bold","24unset":"0","24":"font-size:150%"},"section_param_id":296,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:41.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3994,"page_layout_id":433,"page_layout_root_id":383,"pvalue":{},"section_param_id":297,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3995,"page_layout_id":439,"page_layout_root_id":383,"pvalue":{},"section_param_id":115,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3996,"page_layout_id":439,"page_layout_root_id":383,"pvalue":{},"section_param_id":116,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3997,"page_layout_id":439,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":117,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3998,"page_layout_id":439,"page_layout_root_id":383,"pvalue":{},"section_param_id":118,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":3999,"page_layout_id":439,"page_layout_root_id":383,"pvalue":{},"section_param_id":119,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4000,"page_layout_id":439,"page_layout_root_id":383,"pvalue":{"21unset":"0","21":"width:60px","7unset":"0","7":"border-style:solid solid solid solid","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB","8unset":"0","8":"border-width:1px 1px 1px 1px","32unset":"0","32":"padding:7px 10px 7px 10px"},"section_param_id":307,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4001,"page_layout_id":439,"page_layout_root_id":383,"pvalue":{},"section_param_id":308,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4002,"page_layout_id":439,"page_layout_root_id":383,"pvalue":{"53unset":"0","53":"text-align:left"},"section_param_id":309,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4003,"page_layout_id":440,"page_layout_root_id":383,"pvalue":{},"section_param_id":120,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4004,"page_layout_id":440,"page_layout_root_id":383,"pvalue":{},"section_param_id":121,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4005,"page_layout_id":440,"page_layout_root_id":383,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto auto 5px"},"section_param_id":122,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4006,"page_layout_id":440,"page_layout_root_id":383,"pvalue":{},"section_param_id":123,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4007,"page_layout_id":440,"page_layout_root_id":383,"pvalue":{},"section_param_id":124,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4008,"page_layout_id":440,"page_layout_root_id":383,"pvalue":{"32unset":"0","32":"padding:7px 10px 7px 10px","7unset":"1","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#008ABD #008ABD #008ABD #008ABD"},"section_param_id":310,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4009,"page_layout_id":440,"page_layout_root_id":383,"pvalue":{"2unset":"0","2":"background-color:#00ADEE"},"section_param_id":311,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4010,"page_layout_id":440,"page_layout_root_id":383,"pvalue":{"49unset":"0","49":"color:white","24unset":"1","24":"font-size:14em"},"section_param_id":312,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4011,"page_layout_id":469,"page_layout_root_id":383,"pvalue":{},"section_param_id":284,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:04.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4012,"page_layout_id":469,"page_layout_root_id":383,"pvalue":{"21":"width:600px","21unset":"0"},"section_param_id":285,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4013,"page_layout_id":469,"page_layout_root_id":383,"pvalue":{"7":"border-style:solid solid solid solid","7unset":"0","8":"border-width:1px 1px 1px 1px","8unset":"0","6":"border-color:#CCCCCC #CCCCCC #CCCCCC #CCCCCC","6unset":"0","15":"height:598px","15hidden":"1"},"section_param_id":286,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4014,"page_layout_id":469,"page_layout_root_id":383,"pvalue":{"2":"background-color:#FFFFFF","2unset":"0"},"section_param_id":287,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4015,"page_layout_id":469,"page_layout_root_id":383,"pvalue":{},"section_param_id":288,"theme_id":5,"unset":null,"updated_at":"2014-08-02T07:39:31.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4016,"page_layout_id":469,"page_layout_root_id":383,"pvalue":{"32":"padding:2px 2px 2px 2px","32unset":"0"},"section_param_id":313,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4017,"page_layout_id":469,"page_layout_root_id":383,"pvalue":{"2":"background-color:#EEEEEE","2unset":"0"},"section_param_id":314,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4018,"page_layout_id":469,"page_layout_root_id":383,"pvalue":{},"section_param_id":315,"theme_id":5,"unset":null,"updated_at":"2014-01-22T03:40:05.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4019,"page_layout_id":469,"page_layout_root_id":383,"pvalue":{"32":"padding:0 10px 5px 10px","32unset":"0"},"section_param_id":316,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4020,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":333,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4021,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":334,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4022,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":335,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4023,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":336,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4024,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":337,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4025,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":338,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4026,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":339,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4027,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":340,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4028,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":341,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4029,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":342,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4030,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":343,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4031,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":344,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4032,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":345,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4033,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":346,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4034,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":347,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4035,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":348,"theme_id":5,"unset":null,"updated_at":"2014-01-22T14:00:12.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4036,"page_layout_id":463,"page_layout_root_id":383,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-02-19T13:03:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4037,"page_layout_id":463,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4038,"page_layout_id":463,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4039,"page_layout_id":463,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-02-19T13:03:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4040,"page_layout_id":463,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-02-19T13:03:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4041,"page_layout_id":464,"page_layout_root_id":383,"pvalue":{},"section_param_id":349,"theme_id":5,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4042,"page_layout_id":464,"page_layout_root_id":383,"pvalue":{},"section_param_id":350,"theme_id":5,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4043,"page_layout_id":464,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":351,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4044,"page_layout_id":464,"page_layout_root_id":383,"pvalue":{},"section_param_id":352,"theme_id":5,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4045,"page_layout_id":464,"page_layout_root_id":383,"pvalue":{},"section_param_id":353,"theme_id":5,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4046,"page_layout_id":464,"page_layout_root_id":383,"pvalue":{},"section_param_id":354,"theme_id":5,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4047,"page_layout_id":464,"page_layout_root_id":383,"pvalue":{},"section_param_id":355,"theme_id":5,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4048,"page_layout_id":464,"page_layout_root_id":383,"pvalue":{},"section_param_id":356,"theme_id":5,"unset":null,"updated_at":"2014-02-19T13:12:08.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4049,"page_layout_id":430,"page_layout_root_id":383,"pvalue":{},"section_param_id":289,"theme_id":5,"unset":null,"updated_at":"2014-02-23T13:34:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4050,"page_layout_id":430,"page_layout_root_id":383,"pvalue":{},"section_param_id":290,"theme_id":5,"unset":null,"updated_at":"2014-02-23T13:34:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4051,"page_layout_id":430,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":291,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4052,"page_layout_id":430,"page_layout_root_id":383,"pvalue":{},"section_param_id":292,"theme_id":5,"unset":null,"updated_at":"2014-02-23T13:34:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4053,"page_layout_id":430,"page_layout_root_id":383,"pvalue":{},"section_param_id":293,"theme_id":5,"unset":null,"updated_at":"2014-02-23T13:34:50.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4054,"page_layout_id":430,"page_layout_root_id":383,"pvalue":{"32unset":"0","32":"padding:5px 10px 5px 10px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB"},"section_param_id":299,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4055,"page_layout_id":430,"page_layout_root_id":383,"pvalue":{"32unset":"0","32":"padding:5px 5px 5px 5px","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#D9D9DB #D9D9DB #D9D9DB #D9D9DB","31unset":"0","31":"margin:6px 6px 6px auto"},"section_param_id":301,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4056,"page_layout_id":452,"page_layout_root_id":383,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4057,"page_layout_id":452,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"0"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4058,"page_layout_id":452,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4059,"page_layout_id":452,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-03-04T14:20:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4060,"page_layout_id":452,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-03-04T14:20:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4061,"page_layout_id":435,"page_layout_root_id":383,"pvalue":{},"section_param_id":357,"theme_id":5,"unset":null,"updated_at":"2014-03-06T13:19:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4062,"page_layout_id":435,"page_layout_root_id":383,"pvalue":{},"section_param_id":358,"theme_id":5,"unset":null,"updated_at":"2014-03-06T13:19:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4063,"page_layout_id":435,"page_layout_root_id":383,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 10px auto"},"section_param_id":359,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4064,"page_layout_id":435,"page_layout_root_id":383,"pvalue":{},"section_param_id":360,"theme_id":5,"unset":null,"updated_at":"2014-03-06T13:19:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4065,"page_layout_id":435,"page_layout_root_id":383,"pvalue":{},"section_param_id":361,"theme_id":5,"unset":null,"updated_at":"2014-03-06T13:19:56.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4066,"page_layout_id":438,"page_layout_root_id":383,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4067,"page_layout_id":438,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:230px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4068,"page_layout_id":438,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4069,"page_layout_id":438,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-03-06T13:42:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4070,"page_layout_id":438,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-03-06T13:42:19.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4071,"page_layout_id":436,"page_layout_root_id":383,"pvalue":{"85unset":"0","85":"clear:both"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4072,"page_layout_id":436,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4073,"page_layout_id":436,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4074,"page_layout_id":436,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-03-06T15:17:45.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4075,"page_layout_id":436,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-03-06T15:17:45.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4076,"page_layout_id":425,"page_layout_root_id":383,"pvalue":{"84unset":"1","84":"product"},"section_param_id":404,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4077,"page_layout_id":394,"page_layout_root_id":383,"pvalue":{},"section_param_id":388,"theme_id":5,"unset":null,"updated_at":"2014-07-09T13:01:29.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4078,"page_layout_id":394,"page_layout_root_id":383,"pvalue":{"21":"width:100%","21unset":"0","15unset":"0","15":"height:300px","101unset":"0","101":"float:none"},"section_param_id":389,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4079,"page_layout_id":394,"page_layout_root_id":383,"pvalue":{"15hidden":"1","15unset":"0","15":"height:300px"},"section_param_id":390,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4080,"page_layout_id":394,"page_layout_root_id":383,"pvalue":{},"section_param_id":391,"theme_id":5,"unset":null,"updated_at":"2014-07-09T13:01:29.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4081,"page_layout_id":394,"page_layout_root_id":383,"pvalue":{},"section_param_id":392,"theme_id":5,"unset":null,"updated_at":"2014-07-09T13:01:29.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4082,"page_layout_id":394,"page_layout_root_id":383,"pvalue":{"78":"width:1350px","79":"height:300px","78unset":"0","79unset":"0"},"section_param_id":393,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4083,"page_layout_id":393,"page_layout_root_id":383,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-12T04:07:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4084,"page_layout_id":393,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:300px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4085,"page_layout_id":393,"page_layout_root_id":383,"pvalue":{"15hidden":"1","15unset":"1","15":"height:295px","31unset":"0","31":"margin:auto auto 5px auto"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4086,"page_layout_id":393,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-12T04:07:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4087,"page_layout_id":393,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-12T04:07:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4088,"page_layout_id":335,"page_layout_root_id":270,"pvalue":{},"section_param_id":50,"theme_id":5,"unset":null,"updated_at":"2014-07-12T05:05:49.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4089,"page_layout_id":335,"page_layout_root_id":270,"pvalue":{"101unset":"0","101":"float:none","21unset":"0","21":"width:800px"},"section_param_id":51,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4090,"page_layout_id":335,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":52,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4091,"page_layout_id":335,"page_layout_root_id":270,"pvalue":{},"section_param_id":53,"theme_id":5,"unset":null,"updated_at":"2014-07-12T05:05:49.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4092,"page_layout_id":335,"page_layout_root_id":270,"pvalue":{},"section_param_id":54,"theme_id":5,"unset":null,"updated_at":"2014-07-12T05:05:49.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4093,"page_layout_id":337,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:16:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4094,"page_layout_id":337,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"0"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4095,"page_layout_id":337,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4096,"page_layout_id":337,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:16:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4097,"page_layout_id":337,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:16:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4098,"page_layout_id":338,"page_layout_root_id":270,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:16:13.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4099,"page_layout_id":338,"page_layout_root_id":270,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"0"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4100,"page_layout_id":338,"page_layout_root_id":270,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4101,"page_layout_id":338,"page_layout_root_id":270,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:16:13.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4102,"page_layout_id":338,"page_layout_root_id":270,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:16:13.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4103,"page_layout_id":398,"page_layout_root_id":383,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4104,"page_layout_id":398,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4105,"page_layout_id":398,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4106,"page_layout_id":398,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:19:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4107,"page_layout_id":398,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:19:17.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4108,"page_layout_id":399,"page_layout_root_id":383,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:26:45.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4109,"page_layout_id":399,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:655px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4110,"page_layout_id":399,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4111,"page_layout_id":399,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:26:45.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4112,"page_layout_id":399,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:26:45.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4113,"page_layout_id":410,"page_layout_root_id":383,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:26:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4114,"page_layout_id":410,"page_layout_root_id":383,"pvalue":{"101":"float:right","101unset":"0","15":"height:100px","15unset":"1","21unset":"1","21":"width:360px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4115,"page_layout_id":410,"page_layout_root_id":383,"pvalue":{"15hidden":"1","15unset":"1","15":"height:100px"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4116,"page_layout_id":410,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:26:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4117,"page_layout_id":410,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:26:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4118,"page_layout_id":400,"page_layout_root_id":383,"pvalue":{"85unset":"1","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4119,"page_layout_id":400,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4120,"page_layout_id":400,"page_layout_root_id":383,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#CDCBCB #CDCBCB #CDCBCB #CDCBCB"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4121,"page_layout_id":400,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:28:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4122,"page_layout_id":400,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:28:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4123,"page_layout_id":405,"page_layout_root_id":383,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:29:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4124,"page_layout_id":405,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4125,"page_layout_id":405,"page_layout_root_id":383,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#CDCBCB #CDCBCB #CDCBCB #CDCBCB","32unset":"1","32":"padding:0px 0px 0px 0px","31unset":"0","31":"margin:5px auto auto auto"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4126,"page_layout_id":405,"page_layout_root_id":383,"pvalue":{"3unset":"1","3":"background-image:none"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4127,"page_layout_id":405,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-17T00:29:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4128,"page_layout_id":404,"page_layout_root_id":383,"pvalue":{},"section_param_id":65,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:10:10.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4129,"page_layout_id":404,"page_layout_root_id":383,"pvalue":{},"section_param_id":66,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:10:10.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4130,"page_layout_id":404,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":67,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4131,"page_layout_id":404,"page_layout_root_id":383,"pvalue":{},"section_param_id":68,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:10:10.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4132,"page_layout_id":404,"page_layout_root_id":383,"pvalue":{},"section_param_id":69,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:10:10.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4133,"page_layout_id":404,"page_layout_root_id":383,"pvalue":{"84unset":"0","84":"product"},"section_param_id":404,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4134,"page_layout_id":409,"page_layout_root_id":383,"pvalue":{},"section_param_id":65,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:13:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4135,"page_layout_id":409,"page_layout_root_id":383,"pvalue":{},"section_param_id":66,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:13:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4136,"page_layout_id":409,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":67,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4137,"page_layout_id":409,"page_layout_root_id":383,"pvalue":{},"section_param_id":68,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:13:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4138,"page_layout_id":409,"page_layout_root_id":383,"pvalue":{},"section_param_id":69,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:13:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4139,"page_layout_id":409,"page_layout_root_id":383,"pvalue":{"84unset":"0","84":"product"},"section_param_id":404,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4140,"page_layout_id":413,"page_layout_root_id":383,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:14:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4141,"page_layout_id":413,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4142,"page_layout_id":413,"page_layout_root_id":383,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:18px 5px 5px 5px"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4143,"page_layout_id":413,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:14:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4144,"page_layout_id":413,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:14:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4145,"page_layout_id":465,"page_layout_root_id":383,"pvalue":{},"section_param_id":50,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:15:31.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4146,"page_layout_id":465,"page_layout_root_id":383,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":51,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4147,"page_layout_id":465,"page_layout_root_id":383,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#CDCBCB #CDCBCB #CDCBCB #CDCBCB","32unset":"0","32":"padding:5px 5px 5px 5px","31unset":"0","31":"margin:5px auto auto auto"},"section_param_id":52,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4148,"page_layout_id":465,"page_layout_root_id":383,"pvalue":{},"section_param_id":53,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:15:31.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4149,"page_layout_id":465,"page_layout_root_id":383,"pvalue":{},"section_param_id":54,"theme_id":5,"unset":null,"updated_at":"2014-07-17T09:15:31.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4150,"page_layout_id":403,"page_layout_root_id":383,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4151,"page_layout_id":403,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4152,"page_layout_id":403,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4153,"page_layout_id":403,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-24T23:40:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4154,"page_layout_id":403,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-24T23:40:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4155,"page_layout_id":408,"page_layout_root_id":383,"pvalue":{"85unset":"0","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4156,"page_layout_id":408,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4157,"page_layout_id":408,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4158,"page_layout_id":408,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-24T23:41:13.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4159,"page_layout_id":408,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-24T23:41:13.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4160,"page_layout_id":401,"page_layout_root_id":383,"pvalue":{},"section_param_id":160,"theme_id":5,"unset":null,"updated_at":"2014-07-25T13:58:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4161,"page_layout_id":401,"page_layout_root_id":383,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":161,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4162,"page_layout_id":401,"page_layout_root_id":383,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:8px 5px 8px 28px"},"section_param_id":162,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4163,"page_layout_id":401,"page_layout_root_id":383,"pvalue":{"3unset":"0","3":"background-image:tiao.jpg","2unset":"0","2":"background-color:#F8F8F8"},"section_param_id":163,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4164,"page_layout_id":401,"page_layout_root_id":383,"pvalue":{},"section_param_id":164,"theme_id":5,"unset":null,"updated_at":"2014-07-25T13:58:55.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4165,"page_layout_id":402,"page_layout_root_id":383,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-25T14:01:47.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4166,"page_layout_id":402,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4167,"page_layout_id":402,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4168,"page_layout_id":402,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-25T14:01:47.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4169,"page_layout_id":402,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-25T14:01:47.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4170,"page_layout_id":414,"page_layout_root_id":383,"pvalue":{},"section_param_id":405,"theme_id":5,"unset":null,"updated_at":"2014-07-26T03:12:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4171,"page_layout_id":414,"page_layout_root_id":383,"pvalue":{},"section_param_id":406,"theme_id":5,"unset":null,"updated_at":"2014-07-26T03:12:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4172,"page_layout_id":414,"page_layout_root_id":383,"pvalue":{"15hidden":"1","31unset":"0","31":"margin:auto auto 10px auto"},"section_param_id":407,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4173,"page_layout_id":414,"page_layout_root_id":383,"pvalue":{},"section_param_id":408,"theme_id":5,"unset":null,"updated_at":"2014-07-26T03:12:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4174,"page_layout_id":414,"page_layout_root_id":383,"pvalue":{},"section_param_id":409,"theme_id":5,"unset":null,"updated_at":"2014-07-26T03:12:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4175,"page_layout_id":411,"page_layout_root_id":383,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-26T04:58:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4176,"page_layout_id":411,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4177,"page_layout_id":411,"page_layout_root_id":383,"pvalue":{"15hidden":"1","7unset":"0","7":"border-style:solid solid solid solid","8unset":"0","8":"border-width:1px 1px 1px 1px","6unset":"0","6":"border-color:#CDCBCB #CDCBCB #CDCBCB #CDCBCB","32unset":"1","32":"padding:0px 0px 0px 0px"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4178,"page_layout_id":411,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-26T04:58:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4179,"page_layout_id":411,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-26T04:58:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4180,"page_layout_id":412,"page_layout_root_id":383,"pvalue":{},"section_param_id":135,"theme_id":5,"unset":null,"updated_at":"2014-07-26T04:59:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4181,"page_layout_id":412,"page_layout_root_id":383,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":136,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4182,"page_layout_id":412,"page_layout_root_id":383,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:8px 5px 8px 28px"},"section_param_id":137,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4183,"page_layout_id":412,"page_layout_root_id":383,"pvalue":{"2unset":"1","2":"background-color:#F8F8F8","3unset":"0","3":"background-image:tiao.jpg"},"section_param_id":138,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4184,"page_layout_id":412,"page_layout_root_id":383,"pvalue":{},"section_param_id":139,"theme_id":5,"unset":null,"updated_at":"2014-07-26T04:59:54.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4185,"page_layout_id":389,"page_layout_root_id":383,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-26T13:01:44.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4186,"page_layout_id":389,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:40px","15unset":"0","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4187,"page_layout_id":389,"page_layout_root_id":383,"pvalue":{"15hidden":"1","15unset":"0","15":"height:40px"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4188,"page_layout_id":389,"page_layout_root_id":383,"pvalue":{"3unset":"0","3":"background-image:nav_bg_40px.gif","2unset":"1","2":"background-color:black"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4189,"page_layout_id":389,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-26T13:01:45.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4190,"page_layout_id":406,"page_layout_root_id":383,"pvalue":{},"section_param_id":160,"theme_id":5,"unset":null,"updated_at":"2014-07-26T13:30:46.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4191,"page_layout_id":406,"page_layout_root_id":383,"pvalue":{"21unset":"0","21":"width:100%"},"section_param_id":161,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4192,"page_layout_id":406,"page_layout_root_id":383,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:8px 5px 8px 28px"},"section_param_id":162,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4193,"page_layout_id":406,"page_layout_root_id":383,"pvalue":{"3unset":"0","3":"background-image:tiao.jpg"},"section_param_id":163,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4194,"page_layout_id":406,"page_layout_root_id":383,"pvalue":{},"section_param_id":164,"theme_id":5,"unset":null,"updated_at":"2014-07-26T13:30:46.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4195,"page_layout_id":407,"page_layout_root_id":383,"pvalue":{"85unset":"1","85":"clear:none"},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4196,"page_layout_id":407,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4197,"page_layout_id":407,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4198,"page_layout_id":407,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-26T13:30:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4199,"page_layout_id":407,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-26T13:30:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4200,"page_layout_id":467,"page_layout_root_id":383,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-26T14:41:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4201,"page_layout_id":467,"page_layout_root_id":383,"pvalue":{"101":"float:none","101unset":"0","15":"height:100px","15unset":"1","21unset":"0","21":"width:960px"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4202,"page_layout_id":467,"page_layout_root_id":383,"pvalue":{"15hidden":"1","7unset":"1","7":"border-style:solid none none none","8unset":"1","8":"border-width:4px 0px 0px 0px","6unset":"1","6":"border-color:#2D2D2F transparent transparent transparent"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4203,"page_layout_id":467,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-26T14:41:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4204,"page_layout_id":467,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-26T14:41:26.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4205,"page_layout_id":441,"page_layout_root_id":383,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-27T02:08:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4206,"page_layout_id":441,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:100px","15unset":"1"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4207,"page_layout_id":441,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4208,"page_layout_id":441,"page_layout_root_id":383,"pvalue":{},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-07-27T02:08:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4209,"page_layout_id":441,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-27T02:08:02.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4210,"page_layout_id":392,"page_layout_root_id":383,"pvalue":{},"section_param_id":410,"theme_id":5,"unset":null,"updated_at":"2014-07-27T03:20:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4211,"page_layout_id":392,"page_layout_root_id":383,"pvalue":{"101unset":"0","101":"float:right"},"section_param_id":411,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4212,"page_layout_id":392,"page_layout_root_id":383,"pvalue":{"15hidden":"1","32unset":"0","32":"padding:12px 0px 0px 0px"},"section_param_id":412,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4213,"page_layout_id":392,"page_layout_root_id":383,"pvalue":{},"section_param_id":413,"theme_id":5,"unset":null,"updated_at":"2014-07-27T03:20:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4214,"page_layout_id":392,"page_layout_root_id":383,"pvalue":{},"section_param_id":414,"theme_id":5,"unset":null,"updated_at":"2014-07-27T03:20:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4215,"page_layout_id":392,"page_layout_root_id":383,"pvalue":{},"section_param_id":415,"theme_id":5,"unset":null,"updated_at":"2014-07-27T03:20:52.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4216,"page_layout_id":392,"page_layout_root_id":383,"pvalue":{},"section_param_id":416,"theme_id":5,"unset":null,"updated_at":"2014-07-27T03:20:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4217,"page_layout_id":392,"page_layout_root_id":383,"pvalue":{},"section_param_id":417,"theme_id":5,"unset":null,"updated_at":"2014-07-27T03:20:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4218,"page_layout_id":392,"page_layout_root_id":383,"pvalue":{"49unset":"0","49":"color:white"},"section_param_id":418,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4219,"page_layout_id":392,"page_layout_root_id":383,"pvalue":{},"section_param_id":419,"theme_id":5,"unset":null,"updated_at":"2014-07-27T03:20:53.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4220,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{},"section_param_id":420,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4221,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{"32unset":"1","32":"padding:0px 0px 0px 0px"},"section_param_id":421,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4222,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{},"section_param_id":421,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4223,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":422,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4224,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{},"section_param_id":423,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4225,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{},"section_param_id":424,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4226,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{},"section_param_id":424,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4227,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":425,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4228,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{},"section_param_id":426,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4229,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{},"section_param_id":427,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4230,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{},"section_param_id":427,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4231,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":428,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4232,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{},"section_param_id":429,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4233,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{"32unset":"0","32":"padding:5px 0px 0px 15px"},"section_param_id":430,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4234,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{"32unset":"0","32":"padding:5px 0px 0px 15px"},"section_param_id":430,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4235,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":431,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4236,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{},"section_param_id":432,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4237,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{},"section_param_id":433,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4238,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{},"section_param_id":433,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4239,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":434,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4240,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{},"section_param_id":435,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4241,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{},"section_param_id":436,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4242,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{},"section_param_id":436,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4243,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":437,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4244,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{},"section_param_id":438,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4245,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{},"section_param_id":439,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4246,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{},"section_param_id":439,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4247,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":440,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4248,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{},"section_param_id":441,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4249,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{},"section_param_id":442,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4250,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{},"section_param_id":442,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4251,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":443,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4252,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{},"section_param_id":444,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4253,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{},"section_param_id":445,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4254,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{},"section_param_id":445,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4255,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":446,"theme_id":5,"unset":null,"updated_at":"2014-07-27T04:41:03.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4256,"page_layout_id":395,"page_layout_root_id":383,"pvalue":{},"section_param_id":6,"theme_id":5,"unset":null,"updated_at":"2014-07-27T05:07:38.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4257,"page_layout_id":395,"page_layout_root_id":383,"pvalue":{"101":"float:left","101unset":"0","15":"height:200px","15unset":"0","21unset":"0","21":"width:100%"},"section_param_id":7,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4258,"page_layout_id":395,"page_layout_root_id":383,"pvalue":{"15hidden":"1","15unset":"0","15":"height:190px","31unset":"0","31":"margin:auto auto 10px auto"},"section_param_id":8,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4259,"page_layout_id":395,"page_layout_root_id":383,"pvalue":{"3unset":"0","3":"background-image:howbuy.jpg","4unset":"0","4":"background-position:center center"},"section_param_id":9,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4260,"page_layout_id":395,"page_layout_root_id":383,"pvalue":{},"section_param_id":10,"theme_id":5,"unset":null,"updated_at":"2014-07-27T05:07:39.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4261,"page_layout_id":396,"page_layout_root_id":383,"pvalue":{},"section_param_id":50,"theme_id":5,"unset":null,"updated_at":"2014-07-27T05:11:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4262,"page_layout_id":396,"page_layout_root_id":383,"pvalue":{},"section_param_id":51,"theme_id":5,"unset":null,"updated_at":"2014-07-27T05:11:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4263,"page_layout_id":396,"page_layout_root_id":383,"pvalue":{"15hidden":"1"},"section_param_id":52,"theme_id":5,"unset":null,"updated_at":"2014-08-23T00:09:42.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4264,"page_layout_id":396,"page_layout_root_id":383,"pvalue":{},"section_param_id":53,"theme_id":5,"unset":null,"updated_at":"2014-07-27T05:11:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-02T07:39:31.000Z","id":4265,"page_layout_id":396,"page_layout_root_id":383,"pvalue":{},"section_param_id":54,"theme_id":5,"unset":null,"updated_at":"2014-07-27T05:11:43.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:57.000Z","id":4601,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{},"section_param_id":477,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:57.000Z","id":4606,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{},"section_param_id":478,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:57.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4608,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{},"section_param_id":478,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4613,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":479,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4647,"page_layout_id":384,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4649,"page_layout_id":385,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4651,"page_layout_id":387,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4653,"page_layout_id":389,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4655,"page_layout_id":390,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4657,"page_layout_id":393,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4659,"page_layout_id":395,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4661,"page_layout_id":397,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4663,"page_layout_id":398,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4665,"page_layout_id":399,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4667,"page_layout_id":400,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4669,"page_layout_id":402,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4671,"page_layout_id":403,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4673,"page_layout_id":405,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4675,"page_layout_id":407,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4677,"page_layout_id":408,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4679,"page_layout_id":410,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4681,"page_layout_id":411,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4683,"page_layout_id":413,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4685,"page_layout_id":415,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4687,"page_layout_id":416,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4689,"page_layout_id":419,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4691,"page_layout_id":422,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4693,"page_layout_id":423,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4695,"page_layout_id":424,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4697,"page_layout_id":428,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4699,"page_layout_id":429,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4701,"page_layout_id":432,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4703,"page_layout_id":434,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4705,"page_layout_id":436,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4707,"page_layout_id":438,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4709,"page_layout_id":441,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4711,"page_layout_id":443,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4713,"page_layout_id":451,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4715,"page_layout_id":452,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4717,"page_layout_id":456,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4719,"page_layout_id":459,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4721,"page_layout_id":461,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4723,"page_layout_id":463,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4725,"page_layout_id":466,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4727,"page_layout_id":467,"page_layout_root_id":383,"pvalue":{},"section_param_id":480,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4751,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{},"section_param_id":481,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4756,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{},"section_param_id":482,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4758,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{},"section_param_id":482,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4766,"page_layout_id":396,"page_layout_root_id":383,"pvalue":{},"section_param_id":484,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4768,"page_layout_id":465,"page_layout_root_id":383,"pvalue":{},"section_param_id":484,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4770,"page_layout_id":468,"page_layout_root_id":383,"pvalue":{},"section_param_id":484,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4778,"page_layout_id":426,"page_layout_root_id":383,"pvalue":{},"section_param_id":485,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4780,"page_layout_id":433,"page_layout_root_id":383,"pvalue":{},"section_param_id":485,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4783,"page_layout_id":442,"page_layout_root_id":383,"pvalue":{},"section_param_id":486,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4786,"page_layout_id":404,"page_layout_root_id":383,"pvalue":{},"section_param_id":487,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4788,"page_layout_id":409,"page_layout_root_id":383,"pvalue":{},"section_param_id":487,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4790,"page_layout_id":425,"page_layout_root_id":383,"pvalue":{},"section_param_id":487,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4793,"page_layout_id":431,"page_layout_root_id":383,"pvalue":{},"section_param_id":495,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4797,"page_layout_id":427,"page_layout_root_id":383,"pvalue":{},"section_param_id":496,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4799,"page_layout_id":437,"page_layout_root_id":383,"pvalue":{},"section_param_id":496,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4802,"page_layout_id":439,"page_layout_root_id":383,"pvalue":{},"section_param_id":497,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4805,"page_layout_id":440,"page_layout_root_id":383,"pvalue":{},"section_param_id":498,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4808,"page_layout_id":445,"page_layout_root_id":383,"pvalue":{},"section_param_id":499,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4812,"page_layout_id":412,"page_layout_root_id":383,"pvalue":{},"section_param_id":501,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4814,"page_layout_id":417,"page_layout_root_id":383,"pvalue":{},"section_param_id":501,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4816,"page_layout_id":420,"page_layout_root_id":383,"pvalue":{},"section_param_id":501,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4821,"page_layout_id":446,"page_layout_root_id":383,"pvalue":{},"section_param_id":502,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4824,"page_layout_id":447,"page_layout_root_id":383,"pvalue":{},"section_param_id":503,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:58.000Z","id":4827,"page_layout_id":448,"page_layout_root_id":383,"pvalue":{},"section_param_id":504,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:58.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4830,"page_layout_id":401,"page_layout_root_id":383,"pvalue":{},"section_param_id":506,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4832,"page_layout_id":406,"page_layout_root_id":383,"pvalue":{},"section_param_id":506,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4834,"page_layout_id":444,"page_layout_root_id":383,"pvalue":{},"section_param_id":506,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4838,"page_layout_id":453,"page_layout_root_id":383,"pvalue":{},"section_param_id":507,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4841,"page_layout_id":454,"page_layout_root_id":383,"pvalue":{},"section_param_id":508,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4844,"page_layout_id":455,"page_layout_root_id":383,"pvalue":{},"section_param_id":509,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4847,"page_layout_id":460,"page_layout_root_id":383,"pvalue":{},"section_param_id":510,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4850,"page_layout_id":462,"page_layout_root_id":383,"pvalue":{},"section_param_id":511,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4853,"page_layout_id":449,"page_layout_root_id":383,"pvalue":{},"section_param_id":513,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4856,"page_layout_id":450,"page_layout_root_id":383,"pvalue":{},"section_param_id":514,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4859,"page_layout_id":458,"page_layout_root_id":383,"pvalue":{},"section_param_id":515,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4862,"page_layout_id":457,"page_layout_root_id":383,"pvalue":{},"section_param_id":516,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4865,"page_layout_id":469,"page_layout_root_id":383,"pvalue":{},"section_param_id":518,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4868,"page_layout_id":430,"page_layout_root_id":383,"pvalue":{},"section_param_id":519,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4872,"page_layout_id":386,"page_layout_root_id":383,"pvalue":{},"section_param_id":520,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4877,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":522,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4880,"page_layout_id":464,"page_layout_root_id":383,"pvalue":{},"section_param_id":523,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4883,"page_layout_id":435,"page_layout_root_id":383,"pvalue":{},"section_param_id":524,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4889,"page_layout_id":394,"page_layout_root_id":383,"pvalue":{},"section_param_id":527,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4892,"page_layout_id":414,"page_layout_root_id":383,"pvalue":{},"section_param_id":529,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:52:59.000Z","id":4895,"page_layout_id":392,"page_layout_root_id":383,"pvalue":{},"section_param_id":530,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:52:59.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4933,"page_layout_id":384,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4935,"page_layout_id":385,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4937,"page_layout_id":387,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4939,"page_layout_id":389,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4941,"page_layout_id":390,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4943,"page_layout_id":393,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4945,"page_layout_id":395,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4947,"page_layout_id":397,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4949,"page_layout_id":398,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4951,"page_layout_id":399,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4953,"page_layout_id":400,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4955,"page_layout_id":402,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4957,"page_layout_id":403,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4959,"page_layout_id":405,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4961,"page_layout_id":407,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4963,"page_layout_id":408,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4965,"page_layout_id":410,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4967,"page_layout_id":411,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4969,"page_layout_id":413,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4971,"page_layout_id":415,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4973,"page_layout_id":416,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4975,"page_layout_id":419,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4977,"page_layout_id":422,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4979,"page_layout_id":423,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4981,"page_layout_id":424,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4983,"page_layout_id":428,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4985,"page_layout_id":429,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4987,"page_layout_id":432,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4989,"page_layout_id":434,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4991,"page_layout_id":436,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4993,"page_layout_id":438,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4995,"page_layout_id":441,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4997,"page_layout_id":443,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":4999,"page_layout_id":451,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5001,"page_layout_id":452,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5003,"page_layout_id":456,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5005,"page_layout_id":459,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5007,"page_layout_id":461,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5009,"page_layout_id":463,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5011,"page_layout_id":466,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5013,"page_layout_id":467,"page_layout_root_id":383,"pvalue":{},"section_param_id":536,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5037,"page_layout_id":391,"page_layout_root_id":383,"pvalue":{},"section_param_id":537,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5042,"page_layout_id":418,"page_layout_root_id":383,"pvalue":{},"section_param_id":538,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5044,"page_layout_id":421,"page_layout_root_id":383,"pvalue":{},"section_param_id":538,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5052,"page_layout_id":396,"page_layout_root_id":383,"pvalue":{},"section_param_id":540,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5054,"page_layout_id":465,"page_layout_root_id":383,"pvalue":{},"section_param_id":540,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5056,"page_layout_id":468,"page_layout_root_id":383,"pvalue":{},"section_param_id":540,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5064,"page_layout_id":426,"page_layout_root_id":383,"pvalue":{},"section_param_id":541,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5066,"page_layout_id":433,"page_layout_root_id":383,"pvalue":{},"section_param_id":541,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5069,"page_layout_id":442,"page_layout_root_id":383,"pvalue":{},"section_param_id":542,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5072,"page_layout_id":404,"page_layout_root_id":383,"pvalue":{},"section_param_id":543,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5074,"page_layout_id":409,"page_layout_root_id":383,"pvalue":{},"section_param_id":543,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5076,"page_layout_id":425,"page_layout_root_id":383,"pvalue":{},"section_param_id":543,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5079,"page_layout_id":431,"page_layout_root_id":383,"pvalue":{},"section_param_id":551,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5083,"page_layout_id":427,"page_layout_root_id":383,"pvalue":{},"section_param_id":552,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5085,"page_layout_id":437,"page_layout_root_id":383,"pvalue":{},"section_param_id":552,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5088,"page_layout_id":439,"page_layout_root_id":383,"pvalue":{},"section_param_id":553,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5091,"page_layout_id":440,"page_layout_root_id":383,"pvalue":{},"section_param_id":554,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5094,"page_layout_id":445,"page_layout_root_id":383,"pvalue":{},"section_param_id":555,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5098,"page_layout_id":412,"page_layout_root_id":383,"pvalue":{},"section_param_id":557,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5100,"page_layout_id":417,"page_layout_root_id":383,"pvalue":{},"section_param_id":557,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5102,"page_layout_id":420,"page_layout_root_id":383,"pvalue":{},"section_param_id":557,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5107,"page_layout_id":446,"page_layout_root_id":383,"pvalue":{},"section_param_id":558,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5110,"page_layout_id":447,"page_layout_root_id":383,"pvalue":{},"section_param_id":559,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5113,"page_layout_id":448,"page_layout_root_id":383,"pvalue":{},"section_param_id":560,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5116,"page_layout_id":401,"page_layout_root_id":383,"pvalue":{},"section_param_id":562,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5118,"page_layout_id":406,"page_layout_root_id":383,"pvalue":{},"section_param_id":562,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:00.000Z","id":5120,"page_layout_id":444,"page_layout_root_id":383,"pvalue":{},"section_param_id":562,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:00.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5124,"page_layout_id":453,"page_layout_root_id":383,"pvalue":{},"section_param_id":563,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5127,"page_layout_id":454,"page_layout_root_id":383,"pvalue":{},"section_param_id":564,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5130,"page_layout_id":455,"page_layout_root_id":383,"pvalue":{},"section_param_id":565,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5133,"page_layout_id":460,"page_layout_root_id":383,"pvalue":{},"section_param_id":566,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5136,"page_layout_id":462,"page_layout_root_id":383,"pvalue":{},"section_param_id":567,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5139,"page_layout_id":449,"page_layout_root_id":383,"pvalue":{},"section_param_id":569,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5142,"page_layout_id":450,"page_layout_root_id":383,"pvalue":{},"section_param_id":570,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5145,"page_layout_id":458,"page_layout_root_id":383,"pvalue":{},"section_param_id":571,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5148,"page_layout_id":457,"page_layout_root_id":383,"pvalue":{},"section_param_id":572,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5151,"page_layout_id":469,"page_layout_root_id":383,"pvalue":{},"section_param_id":574,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5154,"page_layout_id":430,"page_layout_root_id":383,"pvalue":{},"section_param_id":575,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5158,"page_layout_id":386,"page_layout_root_id":383,"pvalue":{},"section_param_id":576,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5163,"page_layout_id":388,"page_layout_root_id":383,"pvalue":{},"section_param_id":578,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5166,"page_layout_id":464,"page_layout_root_id":383,"pvalue":{},"section_param_id":579,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5169,"page_layout_id":435,"page_layout_root_id":383,"pvalue":{},"section_param_id":580,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5175,"page_layout_id":394,"page_layout_root_id":383,"pvalue":{},"section_param_id":583,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5178,"page_layout_id":414,"page_layout_root_id":383,"pvalue":{},"section_param_id":585,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}},{"param_value":{"computed_pvalue":null,"created_at":"2014-08-31T07:53:01.000Z","id":5181,"page_layout_id":392,"page_layout_root_id":383,"pvalue":{},"section_param_id":586,"theme_id":5,"unset":null,"updated_at":"2014-08-31T07:53:01.000Z"}}],"page_layouts":[{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:34.000Z","data_filter":"","data_source":"","data_source_param":"","id":383,"is_enabled":true,"is_full_html":true,"lft":1,"parent_id":null,"rgt":174,"root_id":383,"section_context":"","section_id":75,"section_instance":2,"site_id":2,"slug":"root--3","title":"root","updated_at":"2014-08-02T07:39:34.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:34.000Z","data_filter":"","data_source":"","data_source_param":"","id":384,"is_enabled":true,"is_full_html":false,"lft":2,"parent_id":383,"rgt":11,"root_id":383,"section_context":"","section_id":2,"section_instance":1,"site_id":2,"slug":"header--3","title":"Header","updated_at":"2014-08-02T07:39:34.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:34.000Z","data_filter":"","data_source":"","data_source_param":"","id":385,"is_enabled":true,"is_full_html":false,"lft":3,"parent_id":384,"rgt":10,"root_id":383,"section_context":"","section_id":2,"section_instance":20,"site_id":2,"slug":"container--30","title":"container","updated_at":"2014-08-02T07:39:34.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:34.000Z","data_filter":"","data_source":"","data_source_param":"","id":386,"is_enabled":true,"is_full_html":false,"lft":4,"parent_id":385,"rgt":5,"root_id":383,"section_context":"","section_id":97,"section_instance":1,"site_id":2,"slug":"logo--3","title":"Logo","updated_at":"2014-08-02T07:39:34.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:34.000Z","data_filter":"","data_source":"","data_source_param":"","id":387,"is_enabled":true,"is_full_html":false,"lft":6,"parent_id":385,"rgt":9,"root_id":383,"section_context":"","section_id":2,"section_instance":21,"site_id":2,"slug":"container--31","title":"container","updated_at":"2014-08-02T07:39:34.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:34.000Z","data_filter":"","data_source":"","data_source_param":"","id":388,"is_enabled":true,"is_full_html":false,"lft":7,"parent_id":387,"rgt":8,"root_id":383,"section_context":"","section_id":101,"section_instance":2,"site_id":2,"slug":"logged-unlogged-menu--3","title":"logged&unlogged menu","updated_at":"2014-08-02T07:39:34.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:34.000Z","data_filter":"","data_source":"","data_source_param":"","id":389,"is_enabled":true,"is_full_html":false,"lft":12,"parent_id":383,"rgt":19,"root_id":383,"section_context":"","section_id":2,"section_instance":37,"site_id":2,"slug":"container37--2","title":"container37","updated_at":"2014-08-02T07:39:34.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:34.000Z","data_filter":"","data_source":"","data_source_param":"","id":390,"is_enabled":true,"is_full_html":false,"lft":13,"parent_id":389,"rgt":18,"root_id":383,"section_context":"","section_id":2,"section_instance":19,"site_id":2,"slug":"container--32","title":"container","updated_at":"2014-08-02T07:39:34.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:34.000Z","data_filter":"","data_source":"","data_source_param":"","id":391,"is_enabled":true,"is_full_html":false,"lft":14,"parent_id":390,"rgt":15,"root_id":383,"section_context":"","section_id":3,"section_instance":3,"site_id":2,"slug":"main-menu--3","title":"Main menu","updated_at":"2014-08-02T07:39:34.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:34.000Z","data_filter":"","data_source":"","data_source_param":"","id":392,"is_enabled":true,"is_full_html":false,"lft":16,"parent_id":390,"rgt":17,"root_id":383,"section_context":"","section_id":121,"section_instance":1,"site_id":2,"slug":"mini-cart--2","title":"Mini cart","updated_at":"2014-08-02T07:39:34.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:34.000Z","data_filter":"","data_source":"","data_source_param":"","id":393,"is_enabled":true,"is_full_html":false,"lft":20,"parent_id":383,"rgt":23,"root_id":383,"section_context":"home","section_id":2,"section_instance":26,"site_id":2,"slug":"container--42","title":"container","updated_at":"2014-08-02T07:39:34.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:34.000Z","data_filter":"","data_source":"","data_source_param":"","id":394,"is_enabled":true,"is_full_html":false,"lft":21,"parent_id":393,"rgt":22,"root_id":383,"section_context":"","section_id":114,"section_instance":1,"site_id":2,"slug":"slider","title":"Slider","updated_at":"2014-08-02T07:39:34.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:34.000Z","data_filter":"","data_source":"","data_source_param":"","id":395,"is_enabled":true,"is_full_html":false,"lft":24,"parent_id":383,"rgt":27,"root_id":383,"section_context":"list,detail","section_id":2,"section_instance":41,"site_id":2,"slug":"container41","title":"container41","updated_at":"2014-08-02T07:39:34.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:34.000Z","data_filter":"","data_source":"","data_source_param":"","id":396,"is_enabled":true,"is_full_html":false,"lft":25,"parent_id":395,"rgt":26,"root_id":383,"section_context":"","section_id":11,"section_instance":3,"site_id":2,"slug":"text3--2","title":"text3","updated_at":"2014-08-02T07:39:34.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:34.000Z","data_filter":"","data_source":"","data_source_param":"","id":397,"is_enabled":true,"is_full_html":false,"lft":28,"parent_id":383,"rgt":165,"root_id":383,"section_context":"","section_id":2,"section_instance":2,"site_id":2,"slug":"content--3","title":"content","updated_at":"2014-08-02T07:39:34.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:34.000Z","data_filter":"","data_source":"","data_source_param":"","id":398,"is_enabled":true,"is_full_html":false,"lft":29,"parent_id":397,"rgt":62,"root_id":383,"section_context":"home","section_id":2,"section_instance":31,"site_id":2,"slug":"container31","title":"container31","updated_at":"2014-08-02T07:39:34.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:34.000Z","data_filter":"","data_source":"","data_source_param":"","id":399,"is_enabled":true,"is_full_html":false,"lft":30,"parent_id":398,"rgt":51,"root_id":383,"section_context":"","section_id":2,"section_instance":32,"site_id":2,"slug":"leftside","title":"leftside","updated_at":"2014-08-02T07:39:34.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:34.000Z","data_filter":"","data_source":"taxon","data_source_param":"","id":400,"is_enabled":true,"is_full_html":false,"lft":31,"parent_id":399,"rgt":40,"root_id":383,"section_context":"","section_id":2,"section_instance":31,"site_id":2,"slug":"suits","title":"suits","updated_at":"2014-08-02T07:39:34.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":401,"is_enabled":true,"is_full_html":false,"lft":32,"parent_id":400,"rgt":33,"root_id":383,"section_context":"","section_id":50,"section_instance":2,"site_id":2,"slug":"taxon-name2","title":"taxon name2","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":402,"is_enabled":true,"is_full_html":false,"lft":34,"parent_id":400,"rgt":39,"root_id":383,"section_context":"","section_id":2,"section_instance":36,"site_id":2,"slug":"container36","title":"container36","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"gpvs","data_source_param":"","id":403,"is_enabled":true,"is_full_html":false,"lft":35,"parent_id":402,"rgt":38,"root_id":383,"section_context":"","section_id":2,"section_instance":34,"site_id":2,"slug":"container34","title":"container34","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":404,"is_enabled":true,"is_full_html":false,"lft":36,"parent_id":403,"rgt":37,"root_id":383,"section_context":"","section_id":17,"section_instance":2,"site_id":2,"slug":"product-image2","title":"product image2","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"taxon","data_source_param":"","id":405,"is_enabled":true,"is_full_html":false,"lft":41,"parent_id":399,"rgt":50,"root_id":383,"section_context":"","section_id":2,"section_instance":32,"site_id":2,"slug":"fabrics","title":"fabrics","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":406,"is_enabled":true,"is_full_html":false,"lft":42,"parent_id":405,"rgt":43,"root_id":383,"section_context":"","section_id":50,"section_instance":3,"site_id":2,"slug":"taxon-name3","title":"taxon name3","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":407,"is_enabled":true,"is_full_html":false,"lft":44,"parent_id":405,"rgt":49,"root_id":383,"section_context":"","section_id":2,"section_instance":38,"site_id":2,"slug":"container38","title":"container38","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"gpvs","data_source_param":"","id":408,"is_enabled":true,"is_full_html":false,"lft":45,"parent_id":407,"rgt":48,"root_id":383,"section_context":"","section_id":2,"section_instance":35,"site_id":2,"slug":"container35","title":"container35","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":409,"is_enabled":true,"is_full_html":false,"lft":46,"parent_id":408,"rgt":47,"root_id":383,"section_context":"","section_id":17,"section_instance":3,"site_id":2,"slug":"product-image3","title":"product image3","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":410,"is_enabled":true,"is_full_html":false,"lft":52,"parent_id":398,"rgt":61,"root_id":383,"section_context":"","section_id":2,"section_instance":33,"site_id":2,"slug":"rightside","title":"rightside","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":411,"is_enabled":true,"is_full_html":false,"lft":53,"parent_id":410,"rgt":60,"root_id":383,"section_context":"","section_id":2,"section_instance":37,"site_id":2,"slug":"container37","title":"container37","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":412,"is_enabled":true,"is_full_html":false,"lft":54,"parent_id":411,"rgt":55,"root_id":383,"section_context":"","section_id":40,"section_instance":3,"site_id":2,"slug":"taxonomy-name3","title":"taxonomy name3","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"taxon","data_source_param":"","id":413,"is_enabled":true,"is_full_html":false,"lft":56,"parent_id":411,"rgt":59,"root_id":383,"section_context":"","section_id":2,"section_instance":33,"site_id":2,"slug":"container33","title":"container33","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":414,"is_enabled":true,"is_full_html":false,"lft":57,"parent_id":413,"rgt":58,"root_id":383,"section_context":"","section_id":119,"section_instance":1,"site_id":2,"slug":"taxon-icon1","title":"Taxon icon1","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":415,"is_enabled":true,"is_full_html":false,"lft":63,"parent_id":397,"rgt":76,"root_id":383,"section_context":"list,detail","section_id":2,"section_instance":4,"site_id":2,"slug":"lftnav--3","title":"lftnav","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":416,"is_enabled":true,"is_full_html":false,"lft":64,"parent_id":415,"rgt":69,"root_id":383,"section_context":"","section_id":2,"section_instance":12,"site_id":2,"slug":"container--33","title":"container","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":417,"is_enabled":true,"is_full_html":false,"lft":65,"parent_id":416,"rgt":66,"root_id":383,"section_context":"","section_id":40,"section_instance":3,"site_id":2,"slug":"taxonomy-name--5","title":"taxonomy name","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":418,"is_enabled":true,"is_full_html":false,"lft":67,"parent_id":416,"rgt":68,"root_id":383,"section_context":"","section_id":6,"section_instance":1,"site_id":2,"slug":"vmenu--5","title":"vmenu","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":419,"is_enabled":true,"is_full_html":false,"lft":70,"parent_id":415,"rgt":75,"root_id":383,"section_context":"","section_id":2,"section_instance":13,"site_id":2,"slug":"container--34","title":"container","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":420,"is_enabled":true,"is_full_html":false,"lft":71,"parent_id":419,"rgt":72,"root_id":383,"section_context":"","section_id":40,"section_instance":3,"site_id":2,"slug":"taxonomy-name--6","title":"taxonomy name","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":421,"is_enabled":true,"is_full_html":false,"lft":73,"parent_id":419,"rgt":74,"root_id":383,"section_context":"","section_id":6,"section_instance":2,"site_id":2,"slug":"vmenu--6","title":"vmenu","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":422,"is_enabled":true,"is_full_html":false,"lft":77,"parent_id":397,"rgt":162,"root_id":383,"section_context":"","section_id":2,"section_instance":5,"site_id":2,"slug":"main-content--3","title":"main content","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"gpvs","data_source_param":"","id":423,"is_enabled":true,"is_full_html":false,"lft":78,"parent_id":422,"rgt":87,"root_id":383,"section_context":"list","section_id":2,"section_instance":6,"site_id":2,"slug":"product-list--3","title":"product list","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":424,"is_enabled":true,"is_full_html":false,"lft":79,"parent_id":423,"rgt":86,"root_id":383,"section_context":"","section_id":2,"section_instance":8,"site_id":2,"slug":"container--35","title":"container","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":425,"is_enabled":true,"is_full_html":false,"lft":80,"parent_id":424,"rgt":81,"root_id":383,"section_context":"","section_id":17,"section_instance":1,"site_id":2,"slug":"product-image--3","title":"product image","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:35.000Z","data_filter":"","data_source":"","data_source_param":"","id":426,"is_enabled":true,"is_full_html":false,"lft":82,"parent_id":424,"rgt":83,"root_id":383,"section_context":"","section_id":13,"section_instance":3,"site_id":2,"slug":"product-name--5","title":"product name","updated_at":"2014-08-02T07:39:35.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":427,"is_enabled":true,"is_full_html":false,"lft":84,"parent_id":424,"rgt":85,"root_id":383,"section_context":"","section_id":30,"section_instance":2,"site_id":2,"slug":"product-price--5","title":"product price","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"this_product","data_source_param":"","id":428,"is_enabled":true,"is_full_html":false,"lft":88,"parent_id":422,"rgt":117,"root_id":383,"section_context":"detail","section_id":2,"section_instance":7,"site_id":2,"slug":"product-detail--3","title":"product detail","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":429,"is_enabled":true,"is_full_html":false,"lft":89,"parent_id":428,"rgt":94,"root_id":383,"section_context":"","section_id":2,"section_instance":10,"site_id":2,"slug":"container--36","title":"container","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":430,"is_enabled":true,"is_full_html":false,"lft":90,"parent_id":429,"rgt":91,"root_id":383,"section_context":"","section_id":94,"section_instance":2,"site_id":2,"slug":"image-with-thumbnails--3","title":"image with thumbnails","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":431,"is_enabled":true,"is_full_html":false,"lft":92,"parent_id":429,"rgt":93,"root_id":383,"section_context":"","section_id":28,"section_instance":2,"site_id":2,"slug":"product_properties--3","title":"product_properties","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":432,"is_enabled":true,"is_full_html":false,"lft":95,"parent_id":428,"rgt":112,"root_id":383,"section_context":"","section_id":2,"section_instance":9,"site_id":2,"slug":"container--37","title":"container","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":433,"is_enabled":true,"is_full_html":false,"lft":96,"parent_id":432,"rgt":97,"root_id":383,"section_context":"","section_id":13,"section_instance":3,"site_id":2,"slug":"product-name--6","title":"product name","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":434,"is_enabled":true,"is_full_html":false,"lft":98,"parent_id":432,"rgt":111,"root_id":383,"section_context":"","section_id":2,"section_instance":11,"site_id":2,"slug":"container--38","title":"container","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":435,"is_enabled":true,"is_full_html":false,"lft":99,"parent_id":434,"rgt":100,"root_id":383,"section_context":"","section_id":107,"section_instance":1,"site_id":2,"slug":"product-option-values--3","title":"Product option values","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":436,"is_enabled":true,"is_full_html":false,"lft":101,"parent_id":434,"rgt":110,"root_id":383,"section_context":"","section_id":2,"section_instance":25,"site_id":2,"slug":"container--39","title":"container","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":437,"is_enabled":true,"is_full_html":false,"lft":102,"parent_id":436,"rgt":103,"root_id":383,"section_context":"","section_id":30,"section_instance":1,"site_id":2,"slug":"product-price--6","title":"product price","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":438,"is_enabled":true,"is_full_html":false,"lft":104,"parent_id":436,"rgt":109,"root_id":383,"section_context":"","section_id":2,"section_instance":24,"site_id":2,"slug":"container--40","title":"container","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":439,"is_enabled":true,"is_full_html":false,"lft":105,"parent_id":438,"rgt":106,"root_id":383,"section_context":"","section_id":32,"section_instance":2,"site_id":2,"slug":"product-quantity--3","title":"product quantity","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":440,"is_enabled":true,"is_full_html":false,"lft":107,"parent_id":438,"rgt":108,"root_id":383,"section_context":"","section_id":34,"section_instance":2,"site_id":2,"slug":"product-atc--3","title":"product atc","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":441,"is_enabled":true,"is_full_html":false,"lft":113,"parent_id":428,"rgt":116,"root_id":383,"section_context":"","section_id":2,"section_instance":40,"site_id":2,"slug":"container40","title":"container40","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":442,"is_enabled":true,"is_full_html":false,"lft":114,"parent_id":441,"rgt":115,"root_id":383,"section_context":"","section_id":15,"section_instance":1,"site_id":2,"slug":"product-description--3","title":"product description","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":443,"is_enabled":true,"is_full_html":false,"lft":118,"parent_id":422,"rgt":161,"root_id":383,"section_context":"cart,checkout,thanks,account,signup,login,password","section_id":2,"section_instance":14,"site_id":2,"slug":"other-pages--3","title":"other pages","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":444,"is_enabled":true,"is_full_html":false,"lft":119,"parent_id":443,"rgt":120,"root_id":383,"section_context":"","section_id":50,"section_instance":1,"site_id":2,"slug":"taxon-name--3","title":"taxon name","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":445,"is_enabled":true,"is_full_html":false,"lft":121,"parent_id":443,"rgt":126,"root_id":383,"section_context":"cart","section_id":36,"section_instance":1,"site_id":2,"slug":"cart--3","title":"cart","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":446,"is_enabled":true,"is_full_html":false,"lft":122,"parent_id":445,"rgt":123,"root_id":383,"section_context":"","section_id":42,"section_instance":2,"site_id":2,"slug":"cart-items--3","title":"cart items","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":447,"is_enabled":true,"is_full_html":false,"lft":124,"parent_id":445,"rgt":125,"root_id":383,"section_context":"","section_id":44,"section_instance":2,"site_id":2,"slug":"order-total-price--3","title":"order total price","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":448,"is_enabled":true,"is_full_html":false,"lft":127,"parent_id":443,"rgt":132,"root_id":383,"section_context":"checkout","section_id":46,"section_instance":2,"site_id":2,"slug":"checkout--3","title":"checkout","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":449,"is_enabled":true,"is_full_html":false,"lft":128,"parent_id":448,"rgt":129,"root_id":383,"section_context":"","section_id":69,"section_instance":1,"site_id":2,"slug":"ship-form--3","title":"ship form","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":450,"is_enabled":true,"is_full_html":false,"lft":130,"parent_id":448,"rgt":131,"root_id":383,"section_context":"","section_id":72,"section_instance":1,"site_id":2,"slug":"payment-form--3","title":"payment form","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:36.000Z","data_filter":"","data_source":"","data_source_param":"","id":451,"is_enabled":true,"is_full_html":false,"lft":133,"parent_id":443,"rgt":142,"root_id":383,"section_context":"thanks","section_id":2,"section_instance":18,"site_id":2,"slug":"thanks--3","title":"thanks","updated_at":"2014-08-02T07:39:36.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:37.000Z","data_filter":"","data_source":"","data_source_param":"","id":452,"is_enabled":true,"is_full_html":false,"lft":134,"parent_id":451,"rgt":139,"root_id":383,"section_context":"","section_id":2,"section_instance":23,"site_id":2,"slug":"container--41","title":"container","updated_at":"2014-08-02T07:39:37.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:37.000Z","data_filter":"","data_source":"","data_source_param":"","id":453,"is_enabled":true,"is_full_html":false,"lft":135,"parent_id":452,"rgt":136,"root_id":383,"section_context":"","section_id":52,"section_instance":1,"site_id":2,"slug":"order-address--3","title":"order address","updated_at":"2014-08-02T07:39:37.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:37.000Z","data_filter":"","data_source":"","data_source_param":"","id":454,"is_enabled":true,"is_full_html":false,"lft":137,"parent_id":452,"rgt":138,"root_id":383,"section_context":"","section_id":55,"section_instance":1,"site_id":2,"slug":"order-payment--3","title":"order payment","updated_at":"2014-08-02T07:39:37.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:37.000Z","data_filter":"","data_source":"","data_source_param":"","id":455,"is_enabled":true,"is_full_html":false,"lft":140,"parent_id":451,"rgt":141,"root_id":383,"section_context":"","section_id":58,"section_instance":1,"site_id":2,"slug":"order-items--3","title":"order items","updated_at":"2014-08-02T07:39:37.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:37.000Z","data_filter":"","data_source":"","data_source_param":"","id":456,"is_enabled":true,"is_full_html":false,"lft":143,"parent_id":443,"rgt":148,"root_id":383,"section_context":"account","section_id":2,"section_instance":17,"site_id":2,"slug":"account--3","title":"account","updated_at":"2014-08-02T07:39:37.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:37.000Z","data_filter":"","data_source":"","data_source_param":"","id":457,"is_enabled":true,"is_full_html":false,"lft":144,"parent_id":456,"rgt":145,"root_id":383,"section_context":"","section_id":85,"section_instance":1,"site_id":2,"slug":"profile--3","title":"profile","updated_at":"2014-08-02T07:39:37.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:37.000Z","data_filter":"","data_source":"","data_source_param":"","id":458,"is_enabled":true,"is_full_html":false,"lft":146,"parent_id":456,"rgt":147,"root_id":383,"section_context":"","section_id":82,"section_instance":1,"site_id":2,"slug":"order-list--3","title":"order list","updated_at":"2014-08-02T07:39:37.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:37.000Z","data_filter":"","data_source":"","data_source_param":"","id":459,"is_enabled":true,"is_full_html":false,"lft":149,"parent_id":443,"rgt":152,"root_id":383,"section_context":"login","section_id":2,"section_instance":15,"site_id":2,"slug":"login--3","title":"login","updated_at":"2014-08-02T07:39:37.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:37.000Z","data_filter":"","data_source":"","data_source_param":"","id":460,"is_enabled":true,"is_full_html":false,"lft":150,"parent_id":459,"rgt":151,"root_id":383,"section_context":"","section_id":61,"section_instance":1,"site_id":2,"slug":"login-form--3","title":"login form","updated_at":"2014-08-02T07:39:37.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:37.000Z","data_filter":"","data_source":"","data_source_param":"","id":461,"is_enabled":true,"is_full_html":false,"lft":153,"parent_id":443,"rgt":156,"root_id":383,"section_context":"signup","section_id":2,"section_instance":16,"site_id":2,"slug":"signup--3","title":"signup","updated_at":"2014-08-02T07:39:37.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:37.000Z","data_filter":"","data_source":"","data_source_param":"","id":462,"is_enabled":true,"is_full_html":false,"lft":154,"parent_id":461,"rgt":155,"root_id":383,"section_context":"","section_id":64,"section_instance":1,"site_id":2,"slug":"sign-up-form--3","title":"sign up form","updated_at":"2014-08-02T07:39:37.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:37.000Z","data_filter":"","data_source":"","data_source_param":"","id":463,"is_enabled":true,"is_full_html":false,"lft":157,"parent_id":443,"rgt":160,"root_id":383,"section_context":"password","section_id":2,"section_instance":22,"site_id":2,"slug":"password--3","title":"password","updated_at":"2014-08-02T07:39:37.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:37.000Z","data_filter":"","data_source":"","data_source_param":"","id":464,"is_enabled":true,"is_full_html":false,"lft":158,"parent_id":463,"rgt":159,"root_id":383,"section_context":"","section_id":104,"section_instance":1,"site_id":2,"slug":"password-recover-form--3","title":"password recover form","updated_at":"2014-08-02T07:39:37.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:37.000Z","data_filter":"","data_source":"","data_source_param":"","id":465,"is_enabled":true,"is_full_html":false,"lft":163,"parent_id":397,"rgt":164,"root_id":383,"section_context":"","section_id":11,"section_instance":3,"site_id":2,"slug":"text3","title":"text3","updated_at":"2014-08-02T07:39:37.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:37.000Z","data_filter":"","data_source":"","data_source_param":"","id":466,"is_enabled":true,"is_full_html":false,"lft":166,"parent_id":383,"rgt":171,"root_id":383,"section_context":"","section_id":2,"section_instance":3,"site_id":2,"slug":"footer--3","title":"footer","updated_at":"2014-08-02T07:39:37.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:37.000Z","data_filter":"","data_source":"","data_source_param":"","id":467,"is_enabled":true,"is_full_html":false,"lft":167,"parent_id":466,"rgt":170,"root_id":383,"section_context":"","section_id":2,"section_instance":39,"site_id":2,"slug":"container39","title":"container39","updated_at":"2014-08-02T07:39:37.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:37.000Z","data_filter":"","data_source":"","data_source_param":"","id":468,"is_enabled":true,"is_full_html":false,"lft":168,"parent_id":467,"rgt":169,"root_id":383,"section_context":"","section_id":11,"section_instance":1,"site_id":2,"slug":"copyright--3","title":"copyright","updated_at":"2014-08-02T07:39:37.000Z"}},{"page_layout":{"content_param":0,"copy_from_root_id":270,"created_at":"2014-08-02T07:39:37.000Z","data_filter":"","data_source":"","data_source_param":"","id":469,"is_enabled":true,"is_full_html":false,"lft":172,"parent_id":383,"rgt":173,"root_id":383,"section_context":"","section_id":90,"section_instance":2,"site_id":2,"slug":"dialog--3","title":"dialog","updated_at":"2014-08-02T07:39:37.000Z"}}],"template_files":[{"template_file":{"attachment_content_type":"image/jpeg","attachment_file_name":"6a5e31b1jw1doccdf5tdqj.jpg","attachment_file_size":16469,"attachment_height":null,"attachment_updated_at":"2014-08-02T07:39:40.000Z","attachment_width":null,"created_at":"2014-08-02T07:39:31.000Z","id":21,"theme_id":5}},{"template_file":{"attachment_content_type":"image/jpeg","attachment_file_name":"ushan-logo.jpg","attachment_file_size":6834,"attachment_height":null,"attachment_updated_at":"2014-08-02T07:39:40.000Z","attachment_width":null,"created_at":"2014-08-02T07:39:31.000Z","id":22,"theme_id":5}},{"template_file":{"attachment_content_type":"image/gif","attachment_file_name":"title_bg.gif","attachment_file_size":1340,"attachment_height":null,"attachment_updated_at":"2014-08-02T07:39:40.000Z","attachment_width":null,"created_at":"2014-08-02T07:39:31.000Z","id":23,"theme_id":5}},{"template_file":{"attachment_content_type":"image/jpeg","attachment_file_name":"howbuy.jpg","attachment_file_size":59008,"attachment_height":null,"attachment_updated_at":"2014-08-02T07:39:40.000Z","attachment_width":null,"created_at":"2014-08-02T07:39:31.000Z","id":24,"theme_id":5}},{"template_file":{"attachment_content_type":"image/gif","attachment_file_name":"nav_bg_40px.gif","attachment_file_size":255,"attachment_height":null,"attachment_updated_at":"2014-08-02T07:39:40.000Z","attachment_width":null,"created_at":"2014-08-02T07:39:31.000Z","id":25,"theme_id":5}},{"template_file":{"attachment_content_type":"image/gif","attachment_file_name":"tab_on_1px.gif","attachment_file_size":452,"attachment_height":null,"attachment_updated_at":"2014-08-02T07:39:40.000Z","attachment_width":null,"created_at":"2014-08-02T07:39:31.000Z","id":26,"theme_id":5}},{"template_file":{"attachment_content_type":"image/jpeg","attachment_file_name":"tiao.jpg","attachment_file_size":19840,"attachment_height":null,"attachment_updated_at":"2014-08-02T07:39:40.000Z","attachment_width":null,"created_at":"2014-08-02T07:39:31.000Z","id":27,"theme_id":5}},{"template_file":{"attachment_content_type":"image/gif","attachment_file_name":"nav_not.gif","attachment_file_size":519,"attachment_height":null,"attachment_updated_at":"2014-08-02T07:39:40.000Z","attachment_width":null,"created_at":"2014-08-02T07:39:31.000Z","id":28,"theme_id":5}}],"template_releases":[{"template_release":{"created_at":"2014-08-02T07:39:31.000Z","id":13,"name":"just a test","theme_id":5,"updated_at":"2014-07-26T08:14:33.000Z"}},{"template_release":{"created_at":"2014-08-03T03:15:19.000Z","id":14,"name":"just a test","theme_id":5,"updated_at":"2014-08-03T03:15:19.000Z"}},{"template_release":{"created_at":"2014-08-03T03:24:55.000Z","id":15,"name":"just a test","theme_id":5,"updated_at":"2014-08-03T03:24:55.000Z"}}]} \ No newline at end of file diff --git a/spree_theme/db/themes/designs/2_5_1410526949/6a5e31b1jw1doccdf5tdqj.jpg b/spree_theme/db/themes/designs/2_5_1410526949/6a5e31b1jw1doccdf5tdqj.jpg deleted file mode 100644 index 7fff0f08..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1410526949/6a5e31b1jw1doccdf5tdqj.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1410526949/howbuy.jpg b/spree_theme/db/themes/designs/2_5_1410526949/howbuy.jpg deleted file mode 100644 index bfeaca08..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1410526949/howbuy.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1410526949/nav_bg_40px.gif b/spree_theme/db/themes/designs/2_5_1410526949/nav_bg_40px.gif deleted file mode 100644 index c0bffae4..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1410526949/nav_bg_40px.gif and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1410526949/nav_not.gif b/spree_theme/db/themes/designs/2_5_1410526949/nav_not.gif deleted file mode 100644 index c69d645d..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1410526949/nav_not.gif and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1410526949/tab_on_1px.gif b/spree_theme/db/themes/designs/2_5_1410526949/tab_on_1px.gif deleted file mode 100644 index 5e4e066e..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1410526949/tab_on_1px.gif and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1410526949/tiao.jpg b/spree_theme/db/themes/designs/2_5_1410526949/tiao.jpg deleted file mode 100644 index 203d1408..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1410526949/tiao.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1410526949/title_bg.gif b/spree_theme/db/themes/designs/2_5_1410526949/title_bg.gif deleted file mode 100644 index 26c8046b..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1410526949/title_bg.gif and /dev/null differ diff --git a/spree_theme/db/themes/designs/2_5_1410526949/ushan-logo.jpg b/spree_theme/db/themes/designs/2_5_1410526949/ushan-logo.jpg deleted file mode 100644 index 9455e3de..00000000 Binary files a/spree_theme/db/themes/designs/2_5_1410526949/ushan-logo.jpg and /dev/null differ diff --git a/spree_theme/db/themes/designs/config_template.rb b/spree_theme/db/themes/designs/config_template.rb new file mode 100644 index 00000000..441bda46 --- /dev/null +++ b/spree_theme/db/themes/designs/config_template.rb @@ -0,0 +1,13 @@ +template = Spree::TemplateTheme.first +taxon_class = SpreeTheme.taxon_class + +categories = taxon_class.find_by_name("Categories") +brands = taxon_class.find_by_name("Brand") +main_menu = taxon_class.find_by_name("MainMenu") + +#template.assign_resource(main_menu, main_menu_section) +main_menu_section = template.page_layouts.where(:title=>'Main menu').first +#template.assign_resource(main_menu, main_menu_section) + +category_section = template.page_layouts.where(:title=>'Categories').first +template.assign_resource(categories, category_section) diff --git a/spree_theme/db/themes/first/site_form.rb b/spree_theme/db/themes/first/site_form.rb new file mode 100644 index 00000000..509a0ad1 --- /dev/null +++ b/spree_theme/db/themes/first/site_form.rb @@ -0,0 +1,8 @@ +include SpreeTheme::SeedHelper +# +# root - site_form +# +# +template = Spree::TemplateTheme.create_plain_template( section_piece_hash['root2'], "TemplateSiteForm" ) + +site_form_section = template.add_section(section_hash['site-form']) diff --git a/spree_theme/db/themes/template_images/logo.gif b/spree_theme/db/themes/template_images/logo.gif deleted file mode 100644 index 2782a6b2..00000000 Binary files a/spree_theme/db/themes/template_images/logo.gif and /dev/null differ diff --git a/spree_theme/db/themes/designs/1_2_1414758766/dalianshop-logo2.png b/spree_theme/db/themes/template_images/logo.png similarity index 100% rename from spree_theme/db/themes/designs/1_2_1414758766/dalianshop-logo2.png rename to spree_theme/db/themes/template_images/logo.png diff --git a/spree_theme/db/themes/test/for_page_resources.rb b/spree_theme/db/themes/test/for_page_resources.rb index 1398e1e9..b1890c3d 100644 --- a/spree_theme/db/themes/test/for_page_resources.rb +++ b/spree_theme/db/themes/test/for_page_resources.rb @@ -1,6 +1,6 @@ # # root - container(assign_taxon: 'category', data_source:menu) -# - container (data_source:gpvs) +# - container (data_source:gpvs) # - product_name # # @@ -13,7 +13,7 @@ section_hash= objects.inject({}){|h,sp| h[sp.slug] = sp; h} # puts "section_hash=#{section_hash.keys}" template = Spree::TemplateTheme.create_plain_template(section_hash['root2'], header3) -document = template.page_layout +document = template.page_layout_root menu_container = template.add_section(section_hash['container'], document) gpvs_container = template.add_section(section_hash['container'], menu_container) @@ -23,4 +23,3 @@ gpvs_container.update_attribute(:data_source, Spree::PageLayout::DataSourceEnum.gpvs ) template.assign_resource(categories, menu_container) - diff --git a/spree_theme/db/themes/weizheng b/spree_theme/db/themes/weizheng deleted file mode 100644 index f70dddfd..00000000 --- a/spree_theme/db/themes/weizheng +++ /dev/null @@ -1,18 +0,0 @@ -辽宁维正知识产权代理有限公司 - - 主菜单 - 首页 关于维正 联系我们 - - - 信息导航 这些是文章 - 商标新闻 - 政策法规 - - - 业务范围 这些都是产品/服务 - 商标服务 - 专利服务 - 版权服务 - 维权服务 - 诉讼服务 - \ No newline at end of file diff --git a/spree_theme/doc/features b/spree_theme/doc/features index a019c64b..05756b0d 100644 --- a/spree_theme/doc/features +++ b/spree_theme/doc/features @@ -3,13 +3,13 @@ how to add a section piece param? #sectionA -container # -container - # -text + # -text #page_layoutA -root - # -sectionA - #add a section piece param into continer + # -sectionA + #add a section piece param into continer # - - add record of section_piece_param + + add record of section_piece_param # after create add section_param where section.section_piece_id = ? for each section tree. # after create @@ -19,52 +19,103 @@ how to remove a section piece param? del record of section_piece_param del section_param where section.section_piece_id = ? for each section tree. del param_value where page_layout.section_id = ? for each layout tree. - + features ===================================================================================================== - - + + template_theme -------------- 1. designer could copy template for new design copy html(layout) and css(param_value) - - + + logo ------- - 1. a site has one logo, user could upload own logo +------ + 1. a site has one logo, user could upload own logo logo section always get logo from app configuration. - 2. a template could have own logo, design shop require it. + 2. a template could have own logo, design shop require it. index page ----------- - 1. 在设计商店, 每一个模板,期望有自己的主页,显示相应的产品。 - 2. 在一般商店,如果当前页是系统缺省页面,默认所有产品分配给当前页. + 1. 在设计商店, 每一个模板,期望有自己的主页,显示相应的产品。 + 2. 在一般商店,如果当前页是系统缺省页面,默认所有产品分配给当前页. 期望用户做最少的事情,实现他想要的效果。 模板发布后,可以继续修改而不影响已发布内容(当它成为一个问题时再处理) --------------------------------------------------------------------------------- - 1. 保证生成页面过程中,不再访问page_layouts,sections, section_pieces, param_values - page_layouts,sections, section_pieces => html.erb +-------------------------------------------------------------------------------- + 1. 保证生成页面过程中,不再访问page_layouts,sections, section_pieces, param_values + page_layouts,sections, section_pieces => html.erb param_values => css - + @template.css(:image_style) @template.css(:slides) - 2. assigned_resource_id 是否可以更改? - + 2. assigned_resource_id 是否可以更改? + add table released_page_layout? - -使模板导入简单,用户预览模板,看到喜欢的, 点‘导入’,完成。 import_with_resource --------------------------------------------------------------------------------- + +使模板导入简单,用户预览模板,看到喜欢的, 点‘导入’,完成。 import_with_resource +-------------------------------------------------------------------------------- 模板中使用了taxon, 它表示菜单和分类,如:主菜单,产品分类,图片轮播(slider)。 为了方便用户使用模板,简化导入过程,导入模板时无需配置taxon, 直接拷贝模板所用分类。 - - -#themes-+ + + +#themes-+ +- foreign : themes from design shop - +- native -+ has native layout, can edit, release - + no native layout, can not edit, + +- native -+ has native layout, can edit, release + + no native layout, can not edit, theme.release_id: release id of original theme, means imported that release - - \ No newline at end of file + +a design/shopping site must have a released theme, or redirect to under_contruction. + + requirement + admin.sometld/... is for user preview, ex. admin.somtld/some_taxon + www.sometld/... is for customer, ex. www.sometld/some_taxon + + how roles get layout? + --------------------- + designer: get current editing template + customer: get layout from current site + + path + ---- + 1. designer design product list page + www.tld/tid + 2. designer design product detail page + www.tld/tid/pid + 2. designer release design + www.tld/admin/template_theme + 3. customer view product list + www.tld/tid -> /var/www/shops/n/ + 4. customer view product detail + www.tld/tid/pid + 5. admin manage site + www.tld/admin/... + 6. user login + www.tld/admin/ + 7. customer view live template demo + templates.dalianshops.com -> /var/www/shops/1 + 8. customer browse published template list + www.tld/admin/template_themes/ + 9. shop folders + template folder + t(current template id)-> /var/www/shops/1/t(original template id) + theme image folder: + tx/images + generated layout + tx/tx.html.erb + theme css, js + tx/cssx.css + tx/jsx.js + page_layout image folder: images belongs to shop, like logo + lx + + configure + --------- + website theme_id, index_page should greater than 0. + website index_page could equal to 0. + + extra feature for theme + ----------------------- + option value has image, please look at https://github.com/citrus/spree_variant_options for detail diff --git a/spree_theme/doc/html/hover-effect/baidu-map-iframe.html b/spree_theme/doc/html/hover-effect/baidu-map-iframe.html new file mode 100644 index 00000000..3a86890f --- /dev/null +++ b/spree_theme/doc/html/hover-effect/baidu-map-iframe.html @@ -0,0 +1,25 @@ + + + + + 百度地图 Iframe + + + + + + + + + +

              百度地图 Iframe

              + + + + diff --git a/spree_theme/doc/html/hover-effect/baidu-map.html b/spree_theme/doc/html/hover-effect/baidu-map.html new file mode 100644 index 00000000..2ed4ce6b --- /dev/null +++ b/spree_theme/doc/html/hover-effect/baidu-map.html @@ -0,0 +1,113 @@ + + + + + + + + 百度地图API自定义地图 + + + + + + + +
              + +
              +
              + + + diff --git a/spree_theme/doc/html/hover-effect/css/normalize.css b/spree_theme/doc/html/hover-effect/css/normalize.css new file mode 100644 index 00000000..458eea1e --- /dev/null +++ b/spree_theme/doc/html/hover-effect/css/normalize.css @@ -0,0 +1,427 @@ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9/10. + */ + +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} diff --git a/spree_theme/doc/html/hover-effect/goto-top.html b/spree_theme/doc/html/hover-effect/goto-top.html new file mode 100644 index 00000000..10e1e5b0 --- /dev/null +++ b/spree_theme/doc/html/hover-effect/goto-top.html @@ -0,0 +1,56 @@ + + + + Goto Top test + + + + + + + + + +
              it long content.
              + + Top + + + + + diff --git a/spree_theme/doc/html/hover-effect/hover-effect-expansion.html b/spree_theme/doc/html/hover-effect/hover-effect-expansion.html new file mode 100644 index 00000000..9ffceb4f --- /dev/null +++ b/spree_theme/doc/html/hover-effect/hover-effect-expansion.html @@ -0,0 +1,115 @@ + + + + +Accordion Menu Using jQuery + + + + + +
              +

               Works on clicking

              + +
              + +
              +

              Works with mouse over

              + +
              + + + + + diff --git a/spree_theme/doc/html/hover-effect/hover-effect-show.html b/spree_theme/doc/html/hover-effect/hover-effect-show.html new file mode 100644 index 00000000..70f31ab9 --- /dev/null +++ b/spree_theme/doc/html/hover-effect/hover-effect-show.html @@ -0,0 +1,73 @@ + + + + images test + + + + + + +
              +
              +
              + box1 +
              + +
              +
              +
              + box2 +
              + +
              +
              +
              box3
              + +
              +
              +
              box4
              + +
              + + +
              + + + + + + diff --git a/spree_theme/doc/html/hover-effect/hover-effect-slide.html b/spree_theme/doc/html/hover-effect/hover-effect-slide.html new file mode 100644 index 00000000..65f32897 --- /dev/null +++ b/spree_theme/doc/html/hover-effect/hover-effect-slide.html @@ -0,0 +1,86 @@ + + + + main menu test + + + + + + + + + + + + + diff --git a/spree_theme/doc/html/hover-effect/js/jquery-1.8.1.min.js b/spree_theme/doc/html/hover-effect/js/jquery-1.8.1.min.js new file mode 100644 index 00000000..e7f2a292 --- /dev/null +++ b/spree_theme/doc/html/hover-effect/js/jquery-1.8.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v@1.8.1 jquery.com | jquery.org/license */ +(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write(""),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bS[a]=c,c}function ci(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||ce.test(a)?d(a,e):ci(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ci(a+"["+e+"]",b[e],c,d);else d(a,b)}function cz(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.1",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return typeof a=="object"?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b
              a",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length||!d)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="
              t
              ",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="
              ",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||++p.uuid:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.length,e=c.shift(),f=p._queueHooks(a,b),g=function(){p.dequeue(a,b)};e==="inprogress"&&(e=c.shift(),d--),e&&(b==="fx"&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c-1)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c-1)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,""+d),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j=0),h[l]&&j.push(k);j.length&&t.push({elem:f,matches:j})}n.length>o&&t.push({elem:this,matches:n.slice(o)});for(d=0;d0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function $(a,b,c,d){c=c||[],b=b||q;var e,f,g,j,k=b.nodeType;if(k!==1&&k!==9)return[];if(!a||typeof a!="string")return c;g=h(b);if(!g&&!d)if(e=L.exec(a))if(j=e[1]){if(k===9){f=b.getElementById(j);if(!f||!f.parentNode)return c;if(f.id===j)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(j))&&i(b,f)&&f.id===j)return c.push(f),c}else{if(e[2])return u.apply(c,t.call(b.getElementsByTagName(a),0)),c;if((j=e[3])&&X&&b.getElementsByClassName)return u.apply(c,t.call(b.getElementsByClassName(j),0)),c}return bk(a,b,c,d,g)}function _(a){return function(b){var c=b.nodeName.toLowerCase();return c==="input"&&b.type===a}}function ba(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}}function bb(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}function bc(a,b,c,d){var e,g,h,i,j,k,l,m,n,p,r=!c&&b!==q,s=(r?"":"")+a.replace(H,"$1"),u=y[o][s];if(u)return d?0:t.call(u,0);j=a,k=[],m=0,n=f.preFilter,p=f.filter;while(j){if(!e||(g=I.exec(j)))g&&(j=j.slice(g[0].length),h.selector=l),k.push(h=[]),l="",r&&(j=" "+j);e=!1;if(g=J.exec(j))l+=g[0],j=j.slice(g[0].length),e=h.push({part:g.pop().replace(H," "),string:g[0],captures:g});for(i in p)(g=S[i].exec(j))&&(!n[i]||(g=n[i](g,b,c)))&&(l+=g[0],j=j.slice(g[0].length),e=h.push({part:i,string:g.shift(),captures:g}));if(!e)break}return l&&(h.selector=l),d?j.length:j?$.error(a):t.call(y(s,k),0)}function bd(a,b,e,f){var g=b.dir,h=s++;return a||(a=function(a){return a===e}),b.first?function(b){while(b=b[g])if(b.nodeType===1)return a(b)&&b}:f?function(b){while(b=b[g])if(b.nodeType===1&&a(b))return b}:function(b){var e,f=h+"."+c,i=f+"."+d;while(b=b[g])if(b.nodeType===1){if((e=b[o])===i)return b.sizset;if(typeof e=="string"&&e.indexOf(f)===0){if(b.sizset)return b}else{b[o]=i;if(a(b))return b.sizset=!0,b;b.sizset=!1}}}}function be(a,b){return a?function(c){var d=b(c);return d&&a(d===!0?c:d)}:b}function bf(a,b,c){var d,e,g=0;for(;d=a[g];g++)f.relative[d.part]?e=bd(e,f.relative[d.part],b,c):e=be(e,f.filter[d.part].apply(null,d.captures.concat(b,c)));return e}function bg(a){return function(b){var c,d=0;for(;c=a[d];d++)if(c(b))return!0;return!1}}function bh(a,b,c,d){var e=0,f=b.length;for(;e0?i(h,c,g):[]}function bj(a,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s=0,t=a.length,v=S.POS,w=new RegExp("^"+v.source+"(?!"+A+")","i"),x=function(){var a=1,c=arguments.length-2;for(;al){g+=k.slice(l,n.index),l=p,q=[c],J.test(g)&&(m&&(q=m),m=e);if(r=O.test(g))g=g.slice(0,-5).replace(J,"$&*"),l++;n.length>1&&n[0].replace(w,x),m=bi(g,n[1],n[2],q,m,r)}g=""}}o||(g+=k),o=!1}g?J.test(g)?bh(g,m||[c],d,e):$(g,c,d,e?e.concat(m):m):u.apply(d,m)}return t===1?d:$.uniqueSort(d)}function bk(a,b,e,g,h){a=a.replace(H,"$1");var i,k,l,m,n,o,p,q,r,s,v=bc(a,b,h),w=b.nodeType;if(S.POS.test(a))return bj(v,b,e,g);if(g)i=t.call(g,0);else if(v.length===1){if((o=t.call(v[0],0)).length>2&&(p=o[0]).part==="ID"&&w===9&&!h&&f.relative[o[1].part]){b=f.find.ID(p.captures[0].replace(R,""),b,h)[0];if(!b)return e;a=a.slice(o.shift().string.length)}r=(v=N.exec(o[0].string))&&!v.index&&b.parentNode||b,q="";for(n=o.length-1;n>=0;n--){p=o[n],s=p.part,q=p.string+q;if(f.relative[s])break;if(f.order.test(s)){i=f.find[s](p.captures[0].replace(R,""),r,h);if(i==null)continue;a=a.slice(0,a.length-q.length)+q.replace(S[s],""),a||u.apply(e,t.call(i,0));break}}}if(a){k=j(a,b,h),c=k.dirruns++,i==null&&(i=f.find.TAG("*",N.test(a)&&b.parentNode||b));for(n=0;m=i[n];n++)d=k.runs++,k(m)&&e.push(m)}return e}var c,d,e,f,g,h,i,j,k,l,m=!0,n="undefined",o=("sizcache"+Math.random()).replace(".",""),q=a.document,r=q.documentElement,s=0,t=[].slice,u=[].push,v=function(a,b){return a[o]=b||!0,a},w=function(){var a={},b=[];return v(function(c,d){return b.push(c)>f.cacheLength&&delete a[b.shift()],a[c]=d},a)},x=w(),y=w(),z=w(),A="[\\x20\\t\\r\\n\\f]",B="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",C=B.replace("w","w#"),D="([*^$|!~]?=)",E="\\["+A+"*("+B+")"+A+"*(?:"+D+A+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+C+")|)|)"+A+"*\\]",F=":("+B+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+E+")|[^:]|\\\\.)*|.*))\\)|)",G=":(nth|eq|gt|lt|first|last|even|odd)(?:\\(((?:-\\d)?\\d*)\\)|)(?=[^-]|$)",H=new RegExp("^"+A+"+|((?:^|[^\\\\])(?:\\\\.)*)"+A+"+$","g"),I=new RegExp("^"+A+"*,"+A+"*"),J=new RegExp("^"+A+"*([\\x20\\t\\r\\n\\f>+~])"+A+"*"),K=new RegExp(F),L=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,M=/^:not/,N=/[\x20\t\r\n\f]*[+~]/,O=/:not\($/,P=/h\d/i,Q=/input|select|textarea|button/i,R=/\\(?!\\)/g,S={ID:new RegExp("^#("+B+")"),CLASS:new RegExp("^\\.("+B+")"),NAME:new RegExp("^\\[name=['\"]?("+B+")['\"]?\\]"),TAG:new RegExp("^("+B.replace("w","w*")+")"),ATTR:new RegExp("^"+E),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|nth|last|first)-child(?:\\("+A+"*(even|odd|(([+-]|)(\\d*)n|)"+A+"*(?:([+-]|)"+A+"*(\\d+)|))"+A+"*\\)|)","i"),POS:new RegExp(G,"ig"),needsContext:new RegExp("^"+A+"*[>+~]|"+G,"i")},T=function(a){var b=q.createElement("div");try{return a(b)}catch(c){return!1}finally{b=null}},U=T(function(a){return a.appendChild(q.createComment("")),!a.getElementsByTagName("*").length}),V=T(function(a){return a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!==n&&a.firstChild.getAttribute("href")==="#"}),W=T(function(a){a.innerHTML="";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),X=T(function(a){return a.innerHTML="",!a.getElementsByClassName||!a.getElementsByClassName("e").length?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length===2)}),Y=T(function(a){a.id=o+0,a.innerHTML="
              ",r.insertBefore(a,r.firstChild);var b=q.getElementsByName&&q.getElementsByName(o).length===2+q.getElementsByName(o+0).length;return e=!q.getElementById(o),r.removeChild(a),b});try{t.call(r.childNodes,0)[0].nodeType}catch(Z){t=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}$.matches=function(a,b){return $(a,null,null,b)},$.matchesSelector=function(a,b){return $(b,null,null,[a]).length>0},g=$.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=g(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=g(b);return c},h=$.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},i=$.contains=r.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b&&b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:r.compareDocumentPosition?function(a,b){return b&&!!(a.compareDocumentPosition(b)&16)}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},$.attr=function(a,b){var c,d=h(a);return d||(b=b.toLowerCase()),f.attrHandle[b]?f.attrHandle[b](a):W||d?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},f=$.selectors={cacheLength:50,createPseudo:v,match:S,order:new RegExp("ID|TAG"+(Y?"|NAME":"")+(X?"|CLASS":"")),attrHandle:V?{}:{href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}},find:{ID:e?function(a,b,c){if(typeof b.getElementById!==n&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==n&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==n&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:U?function(a,b){if(typeof b.getElementsByTagName!==n)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c},NAME:function(a,b){if(typeof b.getElementsByName!==n)return b.getElementsByName(name)},CLASS:function(a,b,c){if(typeof b.getElementsByClassName!==n&&!c)return b.getElementsByClassName(a)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(R,""),a[3]=(a[4]||a[5]||"").replace(R,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||$.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&$.error(a[0]),a},PSEUDO:function(a,b,c){var d,e;if(S.CHILD.test(a[0]))return null;if(a[3])a[2]=a[3];else if(d=a[4])K.test(d)&&(e=bc(d,b,c,!0))&&(e=d.indexOf(")",d.length-e)-d.length)&&(d=d.slice(0,e),a[0]=a[0].slice(0,e)),a[2]=d;return a.slice(0,3)}},filter:{ID:e?function(a){return a=a.replace(R,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(R,""),function(b){var c=typeof b.getAttributeNode!==n&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(R,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=x[o][a];return b||(b=x(a,new RegExp("(^|"+A+")"+a+"("+A+"|$)"))),function(a){return b.test(a.className||typeof a.getAttribute!==n&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return b?function(d){var e=$.attr(d,a),f=e+"";if(e==null)return b==="!=";switch(b){case"=":return f===c;case"!=":return f!==c;case"^=":return c&&f.indexOf(c)===0;case"*=":return c&&f.indexOf(c)>-1;case"$=":return c&&f.substr(f.length-c.length)===c;case"~=":return(" "+f+" ").indexOf(c)>-1;case"|=":return f===c||f.substr(0,c.length+1)===c+"-"}}:function(b){return $.attr(b,a)!=null}},CHILD:function(a,b,c,d){if(a==="nth"){var e=s++;return function(a){var b,f,g=0,h=a;if(c===1&&d===0)return!0;b=a.parentNode;if(b&&(b[o]!==e||!a.sizset)){for(h=b.firstChild;h;h=h.nextSibling)if(h.nodeType===1){h.sizset=++g;if(h===a)break}b[o]=e}return f=a.sizset-d,c===0?f===0:f%c===0&&f/c>=0}}return function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b,c,d){var e,g=f.pseudos[a]||f.pseudos[a.toLowerCase()];return g||$.error("unsupported pseudo: "+a),g[o]?g(b,c,d):g.length>1?(e=[a,a,"",b],function(a){return g(a,0,e)}):g}},pseudos:{not:v(function(a,b,c){var d=j(a.replace(H,"$1"),b,c);return function(a){return!d(a)}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!f.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},contains:v(function(a){return function(b){return(b.textContent||b.innerText||g(b)).indexOf(a)>-1}}),has:v(function(a){return function(b){return $(a,b).length>0}}),header:function(a){return P.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:_("radio"),checkbox:_("checkbox"),file:_("file"),password:_("password"),image:_("image"),submit:ba("submit"),reset:ba("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return Q.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b,c){return c?a.slice(1):[a[0]]},last:function(a,b,c){var d=a.pop();return c?a:[d]},even:function(a,b,c){var d=[],e=c?1:0,f=a.length;for(;e",a.querySelectorAll("[selected]").length||e.push("\\["+A+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),T(function(a){a.innerHTML="

              ",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+A+"*(?:\"\"|'')"),a.innerHTML="",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=e.length&&new RegExp(e.join("|")),bk=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a)))if(d.nodeType===9)try{return u.apply(f,t.call(d.querySelectorAll(a),0)),f}catch(i){}else if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){var j,k,l,m=d.getAttribute("id"),n=m||o,p=N.test(a)&&d.parentNode||d;m?n=n.replace(c,"\\$&"):d.setAttribute("id",n),j=bc(a,d,h),n="[id='"+n+"']";for(k=0,l=j.length;k0})}(),f.setFilters.nth=f.setFilters.eq,f.filters=f.pseudos,$.attr=p.attr,p.find=$,p.expr=$.selectors,p.expr[":"]=p.expr.pseudos,p.unique=$.uniqueSort,p.text=$.getText,p.isXMLDoc=$.isXML,p.contains=$.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b0)for(e=d;e=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*\s*$/g,bz={option:[1,""],legend:[1,"
              ","
              "],thead:[1,"","
              "],tr:[2,"","
              "],td:[3,"","
              "],col:[2,"","
              "],area:[1,"",""],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X
              ","
              "]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1>");try{for(;d1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=b===e&&bA,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(f=0;(h=a[f])!=null;f++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{s=s||bk(b),l=b.createElement("div"),s.appendChild(l),h=h.replace(bo,"<$1>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]===""&&!m?l.childNodes:[];for(g=n.length-1;g>=0;--g)p.nodeName(n[g],"tbody")&&!n[g].childNodes.length&&n[g].parentNode.removeChild(n[g])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l.parentNode.removeChild(l)}h.nodeType?t.push(h):p.merge(t,h)}l&&(h=l=s=null);if(!p.support.appendChecked)for(f=0;(h=t[f])!=null;f++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(f=0;(h=t[f])!=null;f++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[f+1,0].concat(r)),f+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.chrome?b.webkit=!0:b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^(none|table(?!-c[ea]).+)/,bO=/^margin/,bP=new RegExp("^("+q+")(.*)$","i"),bQ=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bR=new RegExp("^([-+])=("+q+")","i"),bS={},bT={position:"absolute",visibility:"hidden",display:"block"},bU={letterSpacing:0,fontWeight:400},bV=["Top","Right","Bottom","Left"],bW=["Webkit","O","Moz","ms"],bX=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return b$(this,!0)},hide:function(){return b$(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bX.apply(this,arguments):this.each(function(){(c?a:bZ(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bY(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bR.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bY(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bU&&(f=bU[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(b,c){var d,e,f,g,h=a.getComputedStyle(b,null),i=b.style;return h&&(d=h[c],d===""&&!p.contains(b.ownerDocument,b)&&(d=p.style(b,c)),bQ.test(d)&&bO.test(c)&&(e=i.width,f=i.minWidth,g=i.maxWidth,i.minWidth=i.maxWidth=i.width=d,d=h.width,i.width=e,i.minWidth=f,i.maxWidth=g)),d}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bQ.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth===0&&bN.test(bH(a,"display"))?p.swap(a,bT,function(){return cb(a,b,d)}):cb(a,b,d)},set:function(a,c,d){return b_(a,c,d?ca(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bQ.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bV[d]+b]=e[d]||e[d-2]||e[0];return f}},bO.test(a)||(p.cssHooks[a+b].set=b_)});var cd=/%20/g,ce=/\[\]$/,cf=/\r?\n/g,cg=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ch=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ch.test(this.nodeName)||cg.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(cf,"\r\n")}}):{name:b.name,value:c.replace(cf,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ci(d,a[d],c,f);return e.join("&").replace(cd,"+")};var cj,ck,cl=/#.*$/,cm=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,co=/^(?:GET|HEAD)$/,cp=/^\/\//,cq=/\?/,cr=/)<[^<]*)*<\/script>/gi,cs=/([?&])_=[^&]*/,ct=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,cu=p.fn.load,cv={},cw={},cx=["*/"]+["*"];try{cj=f.href}catch(cy){cj=e.createElement("a"),cj.href="",cj=cj.href}ck=ct.exec(cj.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&cu)return cu.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):c&&typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("
              ").append(a.replace(cr,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cB(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cB(a,b),a},ajaxSettings:{url:cj,isLocal:cn.test(ck[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cx},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cz(cv),ajaxTransport:cz(cw),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cC(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cD(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=""+(c||y),k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cm.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(cl,"").replace(cp,ck[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=ct.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]==ck[1]&&i[2]==ck[2]&&(i[3]||(i[1]==="http:"?80:443))==(ck[3]||(ck[1]==="http:"?80:443)))),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cA(cv,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!co.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cq.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cs,"$1_="+z);l.url=A+(A===l.url?(cq.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cx+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cA(cw,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cE=[],cF=/\?/,cG=/(=)\?(?=&|$)|\?\?/,cH=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cE.pop()||p.expando+"_"+cH++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cG.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cG.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cG,"$1"+f):m?c.data=i.replace(cG,"$1"+f):k&&(c.url+=(cF.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cE.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cI,cJ=a.ActiveXObject?function(){for(var a in cI)cI[a](0,1)}:!1,cK=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cL()||cM()}:cL,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cJ&&delete cI[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cK,cJ&&(cI||(cI={},p(a).unload(cJ)),cI[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cN,cO,cP=/^(?:toggle|show|hide)$/,cQ=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cR=/queueHooks$/,cS=[cY],cT={"*":[function(a,b){var c,d,e,f=this.createTween(a,b),g=cQ.exec(b),h=f.cur(),i=+h||0,j=1;if(g){c=+g[2],d=g[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&i){i=p.css(f.elem,a,!0)||c||1;do e=j=j||".5",i=i/j,p.style(f.elem,a,i+d),j=f.cur()/h;while(j!==1&&j!==e)}f.unit=d,f.start=i,f.end=g[1]?i+(g[1]+1)*c:c}return f}]};p.Animation=p.extend(cW,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c_.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c_.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=da(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g,null)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window); \ No newline at end of file diff --git a/spree_theme/doc/html/hover-effect/js/jquery.easing.1.3.js b/spree_theme/doc/html/hover-effect/js/jquery.easing.1.3.js new file mode 100644 index 00000000..ef743210 --- /dev/null +++ b/spree_theme/doc/html/hover-effect/js/jquery.easing.1.3.js @@ -0,0 +1,205 @@ +/* + * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ + * + * Uses the built in easing capabilities added In jQuery 1.1 + * to offer multiple easing options + * + * TERMS OF USE - jQuery Easing + * + * Open source under the BSD License. + * + * Copyright © 2008 George McGinley Smith + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +// t: current time, b: begInnIng value, c: change In value, d: duration +jQuery.easing['jswing'] = jQuery.easing['swing']; + +jQuery.extend( jQuery.easing, +{ + def: 'easeOutQuad', + swing: function (x, t, b, c, d) { + //alert(jQuery.easing.default); + return jQuery.easing[jQuery.easing.def](x, t, b, c, d); + }, + easeInQuad: function (x, t, b, c, d) { + return c*(t/=d)*t + b; + }, + easeOutQuad: function (x, t, b, c, d) { + return -c *(t/=d)*(t-2) + b; + }, + easeInOutQuad: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t + b; + return -c/2 * ((--t)*(t-2) - 1) + b; + }, + easeInCubic: function (x, t, b, c, d) { + return c*(t/=d)*t*t + b; + }, + easeOutCubic: function (x, t, b, c, d) { + return c*((t=t/d-1)*t*t + 1) + b; + }, + easeInOutCubic: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t + b; + return c/2*((t-=2)*t*t + 2) + b; + }, + easeInQuart: function (x, t, b, c, d) { + return c*(t/=d)*t*t*t + b; + }, + easeOutQuart: function (x, t, b, c, d) { + return -c * ((t=t/d-1)*t*t*t - 1) + b; + }, + easeInOutQuart: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t*t + b; + return -c/2 * ((t-=2)*t*t*t - 2) + b; + }, + easeInQuint: function (x, t, b, c, d) { + return c*(t/=d)*t*t*t*t + b; + }, + easeOutQuint: function (x, t, b, c, d) { + return c*((t=t/d-1)*t*t*t*t + 1) + b; + }, + easeInOutQuint: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; + return c/2*((t-=2)*t*t*t*t + 2) + b; + }, + easeInSine: function (x, t, b, c, d) { + return -c * Math.cos(t/d * (Math.PI/2)) + c + b; + }, + easeOutSine: function (x, t, b, c, d) { + return c * Math.sin(t/d * (Math.PI/2)) + b; + }, + easeInOutSine: function (x, t, b, c, d) { + return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; + }, + easeInExpo: function (x, t, b, c, d) { + return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; + }, + easeOutExpo: function (x, t, b, c, d) { + return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; + }, + easeInOutExpo: function (x, t, b, c, d) { + if (t==0) return b; + if (t==d) return b+c; + if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; + return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; + }, + easeInCirc: function (x, t, b, c, d) { + return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; + }, + easeOutCirc: function (x, t, b, c, d) { + return c * Math.sqrt(1 - (t=t/d-1)*t) + b; + }, + easeInOutCirc: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; + return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; + }, + easeInElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + }, + easeOutElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; + }, + easeInOutElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; + }, + easeInBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + return c*(t/=d)*t*((s+1)*t - s) + b; + }, + easeOutBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; + }, + easeInOutBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; + return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; + }, + easeInBounce: function (x, t, b, c, d) { + return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b; + }, + easeOutBounce: function (x, t, b, c, d) { + if ((t/=d) < (1/2.75)) { + return c*(7.5625*t*t) + b; + } else if (t < (2/2.75)) { + return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; + } else if (t < (2.5/2.75)) { + return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; + } else { + return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; + } + }, + easeInOutBounce: function (x, t, b, c, d) { + if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b; + return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b; + } +}); + +/* + * + * TERMS OF USE - EASING EQUATIONS + * + * Open source under the BSD License. + * + * Copyright © 2001 Robert Penner + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ \ No newline at end of file diff --git a/spree_theme/doc/html/hover-effect/js/jquery.hoverIntent.js b/spree_theme/doc/html/hover-effect/js/jquery.hoverIntent.js new file mode 100644 index 00000000..ac2f1192 --- /dev/null +++ b/spree_theme/doc/html/hover-effect/js/jquery.hoverIntent.js @@ -0,0 +1,115 @@ +/*! + * hoverIntent v1.8.1 // 2014.08.11 // jQuery v1.9.1+ + * http://cherne.net/brian/resources/jquery.hoverIntent.html + * + * You may use hoverIntent under the terms of the MIT license. Basically that + * means you are free to use hoverIntent as long as this header is left intact. + * Copyright 2007, 2014 Brian Cherne + */ + +/* hoverIntent is similar to jQuery's built-in "hover" method except that + * instead of firing the handlerIn function immediately, hoverIntent checks + * to see if the user's mouse has slowed down (beneath the sensitivity + * threshold) before firing the event. The handlerOut function is only + * called after a matching handlerIn. + * + * // basic usage ... just like .hover() + * .hoverIntent( handlerIn, handlerOut ) + * .hoverIntent( handlerInOut ) + * + * // basic usage ... with event delegation! + * .hoverIntent( handlerIn, handlerOut, selector ) + * .hoverIntent( handlerInOut, selector ) + * + * // using a basic configuration object + * .hoverIntent( config ) + * + * @param handlerIn function OR configuration object + * @param handlerOut function OR selector for delegation OR undefined + * @param selector selector OR undefined + * @author Brian Cherne + */ +(function($) { + $.fn.hoverIntent = function(handlerIn,handlerOut,selector) { + + // default configuration values + var cfg = { + interval: 100, + sensitivity: 6, + timeout: 0 + }; + + if ( typeof handlerIn === "object" ) { + cfg = $.extend(cfg, handlerIn ); + } else if ($.isFunction(handlerOut)) { + cfg = $.extend(cfg, { over: handlerIn, out: handlerOut, selector: selector } ); + } else { + cfg = $.extend(cfg, { over: handlerIn, out: handlerIn, selector: handlerOut } ); + } + + // instantiate variables + // cX, cY = current X and Y position of mouse, updated by mousemove event + // pX, pY = previous X and Y position of mouse, set by mouseover and polling interval + var cX, cY, pX, pY; + + // A private function for getting mouse position + var track = function(ev) { + cX = ev.pageX; + cY = ev.pageY; + }; + + // A private function for comparing current and previous mouse position + var compare = function(ev,ob) { + ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); + // compare mouse positions to see if they've crossed the threshold + if ( Math.sqrt( (pX-cX)*(pX-cX) + (pY-cY)*(pY-cY) ) < cfg.sensitivity ) { + $(ob).off("mousemove.hoverIntent",track); + // set hoverIntent state to true (so mouseOut can be called) + ob.hoverIntent_s = true; + return cfg.over.apply(ob,[ev]); + } else { + // set previous coordinates for next time + pX = cX; pY = cY; + // use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs) + ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval ); + } + }; + + // A private function for delaying the mouseOut function + var delay = function(ev,ob) { + ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); + ob.hoverIntent_s = false; + return cfg.out.apply(ob,[ev]); + }; + + // A private function for handling mouse 'hovering' + var handleHover = function(e) { + // copy objects to be passed into t (required for event object to be passed in IE) + var ev = $.extend({},e); + var ob = this; + + // cancel hoverIntent timer if it exists + if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); } + + // if e.type === "mouseenter" + if (e.type === "mouseenter") { + // set "previous" X and Y position based on initial entry point + pX = ev.pageX; pY = ev.pageY; + // update "current" X and Y position based on mousemove + $(ob).on("mousemove.hoverIntent",track); + // start polling interval (self-calling timeout) to compare mouse coordinates over time + if (!ob.hoverIntent_s) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );} + + // else e.type == "mouseleave" + } else { + // unbind expensive mousemove event + $(ob).off("mousemove.hoverIntent",track); + // if hoverIntent state is true, then call the mouseOut function after the specified delay + if (ob.hoverIntent_s) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );} + } + }; + + // listen for mouseenter and mouseleave + return this.on({'mouseenter.hoverIntent':handleHover,'mouseleave.hoverIntent':handleHover}, cfg.selector); + }; +})(jQuery); diff --git a/spree_theme/doc/html/hover-effect/list-product.html b/spree_theme/doc/html/hover-effect/list-product.html new file mode 100644 index 00000000..8c4562c0 --- /dev/null +++ b/spree_theme/doc/html/hover-effect/list-product.html @@ -0,0 +1,104 @@ + + + + list product + + + + + + +
              +
              +
              + box1 +
              + +
              +
              +
              + box2 +
              + +
              +
              +
              box3
              + +
              +
              +
              box4
              + +
              + +
              +
              + box1 +
              + +
              +
              +
              + box2 +
              + +
              +
              +
              box3
              + +
              +
              +
              box4
              + +
              +
              + +
              + + + + + + diff --git a/spree_theme/doc/html/relative_absolute.html b/spree_theme/doc/html/relative_absolute.html new file mode 100644 index 00000000..93b9951a --- /dev/null +++ b/spree_theme/doc/html/relative_absolute.html @@ -0,0 +1,23 @@ + + + + input size test + + + +
              +
              + this is absolute positioned block +
              +
              + + \ No newline at end of file diff --git a/spree_theme/doc/html/text-overflow.html b/spree_theme/doc/html/text-overflow.html new file mode 100644 index 00000000..74629f39 --- /dev/null +++ b/spree_theme/doc/html/text-overflow.html @@ -0,0 +1,23 @@ + + + + +text-overflow + + + + + + + + diff --git a/spree_theme/doc/roadmap b/spree_theme/doc/roadmap index 84c6eb93..718a85e5 100644 --- a/spree_theme/doc/roadmap +++ b/spree_theme/doc/roadmap @@ -1,4 +1,4 @@ 1. 做一个简单的模板, 测试编辑器功能。 -2. 以一个公司为例,做个示例模板, +2. 以一个公司为例,做个示例模板, 3. 实现spree_abc引用发布模板, 即用户能够选择发布的模板。 -4. 创建www.dalianshops.com网站, 用户可以注册和创建自己的商店。 +4. 创建www.dalianshops.com网站, 用户可以注册和创建自己的商店。 diff --git a/spree_theme/doc/template_theme b/spree_theme/doc/template_theme new file mode 100644 index 00000000..03178f92 --- /dev/null +++ b/spree_theme/doc/template_theme @@ -0,0 +1,6 @@ +# using dialog + 1. ajax checkout, pop up dialog before open new alipay window + 2. customer click one_click_trial + 3. customer make comment of site + 4. customer view order detail + 5. customer edit profile diff --git a/spree_theme/lib/generators/spree_theme/install/install_generator.rb b/spree_theme/lib/generators/spree_theme/install/install_generator.rb index 1a719db8..1eda3059 100644 --- a/spree_theme/lib/generators/spree_theme/install/install_generator.rb +++ b/spree_theme/lib/generators/spree_theme/install/install_generator.rb @@ -3,13 +3,13 @@ module Generators class InstallGenerator < Rails::Generators::Base def add_javascripts - append_file "app/assets/javascripts/store/all.js", "//= require store/spree_theme\n" - append_file "app/assets/javascripts/admin/all.js", "//= require admin/spree_theme\n" + append_file 'vendor/assets/javascripts/spree/frontend/all.js', "//= require spree/frontend/spree_multi_site\n" + append_file 'vendor/assets/javascripts/spree/backend/all.js', "//= require spree/backend/spree_multi_site\n" end def add_stylesheets - inject_into_file "app/assets/stylesheets/store/all.css", " *= require store/spree_theme\n", :before => /\*\//, :verbose => true - inject_into_file "app/assets/stylesheets/admin/all.css", " *= require admin/spree_theme\n", :before => /\*\//, :verbose => true + inject_into_file 'vendor/assets/stylesheets/spree/frontend/all.css', " *= require spree/frontend/spree_multi_site\n", :before => /\*\//, :verbose => true + inject_into_file 'vendor/assets/stylesheets/spree/backend/all.css', " *= require spree/backend/spree_multi_site\n", :before => /\*\//, :verbose => true end def add_migrations diff --git a/spree_theme/lib/spree_theme.rb b/spree_theme/lib/spree_theme.rb index e4f9ac3b..a834c42b 100644 --- a/spree_theme/lib/spree_theme.rb +++ b/spree_theme/lib/spree_theme.rb @@ -1,25 +1,18 @@ -require 'spree_core' -require 'spree_theme/engine' -require 'spree_theme/paper_clip_interpolate_site' -require 'spree_theme/system' -require 'spree_theme/site_helper' -require 'spree_theme/section_piece_param_helper' -require 'spree_theme/permitted_attributes_for_theme' - module SpreeTheme - + mattr_accessor :site_class, :taxon_class, :post_class def self.site_class - @@site_class ||= "Spree::Site" + #default has to be Spree::FakeWebsite, then we could test without spree_multi_site + @@site_class ||= "Spree::FakeWebsite" if @@site_class.is_a?(Class) raise "Spree.site_class MUST be a String object, not a Class object." elsif @@site_class.is_a?(String) @@site_class.constantize end end - - + + def self.taxon_class @@taxon_class ||= "Spree::Taxon" if @@taxon_class.is_a?(Class) @@ -38,3 +31,14 @@ def self.post_class end end end + +require 'spree_core' +require 'spree_theme/engine' +require 'spree_theme/paper_clip_interpolate_site' +require 'spree_theme/system' +require 'spree_theme/site_helper' +require 'spree_theme/seed_helper' +require 'spree_theme/permitted_attributes_for_theme' +require 'spree_theme/simple_permalink' +require 'spree_theme/template_base_helper' +require 'spree_theme/client_info' diff --git a/spree_theme/lib/spree_theme/client_info.rb b/spree_theme/lib/spree_theme/client_info.rb new file mode 100644 index 00000000..e83e22bf --- /dev/null +++ b/spree_theme/lib/spree_theme/client_info.rb @@ -0,0 +1,9 @@ +module SpreeTheme + class ClientInfo + attr_accessor :is_mobile, :is_preview + def initialize( attrs ) + self.is_mobile = !!attrs[:is_mobile] + self.is_preview = !!attrs[:is_preview] + end + end +end \ No newline at end of file diff --git a/spree_theme/lib/spree_theme/engine.rb b/spree_theme/lib/spree_theme/engine.rb index 87e17816..77467653 100644 --- a/spree_theme/lib/spree_theme/engine.rb +++ b/spree_theme/lib/spree_theme/engine.rb @@ -1,6 +1,5 @@ module SpreeTheme class Engine < Rails::Engine - require 'spree/core' isolate_namespace Spree engine_name 'spree_theme' @@ -20,11 +19,10 @@ def self.activate Rails.configuration.cache_classes ? require(c) : load(c) end end + # sets the manifests / assets to be precompiled, even when initialize_on_precompile is false initializer "spree.assets.precompile", :group => :all do |app| - app.config.assets.precompile += %w[ - store/spree_theme.* - ] + app.config.assets.precompile += %w( store/spree_theme.* ) end config.to_prepare &method(:activate).to_proc diff --git a/spree_theme/lib/spree_theme/permitted_attributes_for_theme.rb b/spree_theme/lib/spree_theme/permitted_attributes_for_theme.rb index 5d48aa77..1e3b9661 100644 --- a/spree_theme/lib/spree_theme/permitted_attributes_for_theme.rb +++ b/spree_theme/lib/spree_theme/permitted_attributes_for_theme.rb @@ -1,17 +1,22 @@ module Spree module PermittedAttributes ATTRIBUTES_FOR_THEME=[:page_layout_attributes,:param_value_attributes,:section_piece_param_attributes, - :section_attributes, :template_file_attributes, :template_text_attributes, :template_theme_attributes ] + :section_attributes, :template_file_attributes, :template_text_attributes, :template_theme_attributes, + :comment_type_attributes, :comment_attributes] mattr_reader *ATTRIBUTES_FOR_THEME - @@page_layout_attributes = [ :section_id,:title ] - @@param_value_attributes = [ :page_layout_root_id, :page_layout_id,:section_id ] + @@page_layout_attributes = [ :section_id,:title, :content_param, :data_source, :data_source_param, :css_class, :content_css_class, :stylish, :section_context ] + @@param_value_attributes = [ :page_layout_root_id, :page_layout_id, :section_id ] @@section_piece_param_attributes = [ :editor,:param_category, :section_piece, :class_name, :pclass, :html_attribute_ids ] - @@section_attributes = [ :section_piece_id, :title, :global_events, :subscribed_global_events,:is_enabled ] + @@section_attributes = [ :section_piece_id, :title, :global_events, :subscribed_global_events,:is_enabled, :for_terminal ] @@template_file_attributes = [ :theme_id, :attachment, :page_layout_id ] @@template_text_attributes = [ :name, :body ] - @@template_theme_attributes = [ :is_public, :site_id,:page_layout_root_id,:title, :section_root_id, :assigned_resource_ids ] - @@product_attributes += [:global_taxon_ids, :global_taxons, :theme_id] - @@taxon_attributes += [:page_context, :replaced_by, :is_clickable] + @@template_theme_attributes = [ :is_public, :site_id,:page_layout_root_id,:title, :section_root_id, :assigned_resource_ids, :for_terminal, :user_terminal_id ] + @@product_attributes += [:global_taxon_ids, :global_taxons, :theme_id, :summary] + @@taxon_attributes += [:page_context, :replaced_by, :is_clickable, :tooltips, :stylish] + + @@comment_type_attributes = [:name, :applies_to] + @@comment_attributes = [:commentable_id, :commentable_type, :user_id, :comment_type_id, :comment, :cellphone, :email] + end -end \ No newline at end of file +end diff --git a/spree_theme/lib/spree_theme/section_piece_param_helper.rb b/spree_theme/lib/spree_theme/section_piece_param_helper.rb deleted file mode 100644 index b0a9931e..00000000 --- a/spree_theme/lib/spree_theme/section_piece_param_helper.rb +++ /dev/null @@ -1,10 +0,0 @@ -module SpreeTheme - module SectionPieceParamHelper - def create_section_piece_param( section_piece, section_piece_param_attrs) - section_piece.section_piece_params.create! do|spp| - spp.param_conditions={} - spp.assign_attributes( section_piece_param_attrs, :without_protection => true) - end - end - end -end \ No newline at end of file diff --git a/spree_theme/lib/spree_theme/seed_helper.rb b/spree_theme/lib/spree_theme/seed_helper.rb new file mode 100644 index 00000000..a634a7da --- /dev/null +++ b/spree_theme/lib/spree_theme/seed_helper.rb @@ -0,0 +1,33 @@ +module SpreeTheme + module SeedHelper + + def create_section_piece_param( section_piece, section_piece_param_attrs) + section_piece.section_piece_params.create! do|spp| + spp.param_conditions={} + spp.assign_attributes( section_piece_param_attrs ) + end + end + + + def find_section_piece( slug ) + section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} + section_piece_hash[slug] + end + + def find_html_attribute( slug ) + Spree::HtmlAttribute.friendly.find 'font-weight' + end + + def section_piece_hash + Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} + end + + def bool_false + Spree::HtmlAttribute::BOOL_FALSE + end + + def bool_true + Spree::HtmlAttribute::BOOL_TRUE + end + end +end \ No newline at end of file diff --git a/spree_theme/lib/spree_theme/simple_permalink.rb b/spree_theme/lib/spree_theme/simple_permalink.rb new file mode 100644 index 00000000..bb438eea --- /dev/null +++ b/spree_theme/lib/spree_theme/simple_permalink.rb @@ -0,0 +1,23 @@ +module SpreeTheme + module SimplePermalink + extend ActiveSupport::Concern + + included do + class_attribute :simple_permalink_options + end + + module ClassMethods + def make_simple_permalink( options={}) + options[:slug_field] ||= :slug + options[:title_field ] ||= :title + self.simple_permalink_options = options + + before_validation(:on => :create) { save_permalink } + end + end + + def save_permalink + self.slug = self.title.parameterize + end + end +end \ No newline at end of file diff --git a/spree_theme/lib/spree_theme/site_helper.rb b/spree_theme/lib/spree_theme/site_helper.rb index 4b4ec00a..5b4acfbd 100644 --- a/spree_theme/lib/spree_theme/site_helper.rb +++ b/spree_theme/lib/spree_theme/site_helper.rb @@ -2,82 +2,29 @@ module SpreeTheme module SiteHelper extend ActiveSupport::Concern included do - belongs_to :template_theme, :foreign_key=>"theme_id" has_many :template_texts, :foreign_key=>"site_id" #compatible with fack_websites - has_many :template_themes, :foreign_key=>"site_id", :dependent=>:destroy + # customer could select a theme when creating site. belongs_to :foreign_template_theme, :foreign_key=>'foreign_theme_id', :class_name=>'TemplateTheme' - + after_create :initialize_first_theme_if_selected # site_id is required for it end - + module ClassMethods #supply global taxon to other site. def globalsite dalianshops end - - def designsite - find_by_short_name('design') - end - - if Rails.env.test? - def current - if Thread.current[:spree_site].nil? - website = self.find_or_initialize_by_domain_and_name('design.dalianshops.com','DalianShops Design Site' ) - #or Rails.env.development? - if website.new_record? - website.id = 2 - website.theme_id = 1 - website.save! - end - Thread.current[:spree_site] = website - end - Thread.current[:spree_site] - end - - def current=(some_site) - ::Thread.current[:spree_site] = some_site - end - end - # shop's resource should be in this folder - def document_root - File.join(Rails.root,'public') - end - - end - - def document_path - self.class.document_root + self.path - end - - def path - File.join( File::SEPARATOR + 'shops', Rails.env, self.id.to_s ) end - - def layout - self.template_theme.present? ? self.template_theme.layout_path : nil - end - - def design? - self == self.class.designsite - end - - # apply theme to site - # params - theme_or_release, TemplateTheme or TemplateRelease - def apply_theme( theme) - self.theme_id= theme.id - save! - end - + # customer could select a theme when creating site. def initialize_first_theme_if_selected if foreign_template_theme.present? self.class.with_site(self) { new_imported_theme = foreign_template_theme.import_with_resource - self.apply_theme( new_imported_theme ) - } + self.stores.first.apply_theme( new_imported_theme ) + } end end - + end -end \ No newline at end of file +end diff --git a/spree_theme/lib/spree_theme/system.rb b/spree_theme/lib/spree_theme/system.rb index bbc20b56..de174de7 100644 --- a/spree_theme/lib/spree_theme/system.rb +++ b/spree_theme/lib/spree_theme/system.rb @@ -1,183 +1,237 @@ require 'spree/core/controller_helpers/common' -class << Spree::Core::ControllerHelpers::Common +# spree/api/base>action_base, spree/base>application +# both included controller_helper/store +class << Spree::Core::ControllerHelpers::Common def included_with_theme_support(receiver) included_without_theme_support(receiver) receiver.send :include, SpreeTheme::System - receiver.send :layout, :get_layout_if_use - receiver.send :before_filter, :initialize_template - receiver.send :before_filter, :add_view_path #spree_devise_auth, and spree_core require it. + # template holds data for page render, we have to initialize it even for api + #receiver.send :before_filter, :initialize_template + receiver.send :prepend_before_action, :initialize_template + # receiver could be Spree::Api::BaseController or Spree::BaseController + #if receiver == Spree::BaseController + #receiver.send :before_filter, :add_view_path #spree_devise_auth, and spree_core require it. + receiver.send :layout, :get_layout_if_use # never allow it to api controller. + end - alias_method_chain :included, :theme_support + alias_method_chain :included, :theme_support end -module SpreeTheme::System - private - # override spree's - # only cart|account using layout while rendering, product list|detail page render without layout. - def get_layout_if_use - if request.xhr? - return false - end - # keep it before check "designer", page for admin login never need design - return @special_layout if @special_layout.present? +module SpreeTheme + module System + private + # override spree's + # only cart|account using layout while rendering, product list|detail page render without layout. + def get_layout_if_use + + if request.xhr? + return false + end + # keep it before check "designer", page for admin login never need design + return @special_layout if @special_layout.present? + #disable mobile feature for now + #return 'sprangular/application' if mobile? + #for designer + return 'layout_for_design' if @is_designer - #for designer - return 'layout_for_design' if @is_designer + #for customer, do not support it now. + #if @is_preview + # return 'layout_for_preview' + #end + @theme.layout_path || Spree::Store.current.layout || Spree::Config[:layout] + end - #for customer, do not support it now. - #if @is_preview - # return 'layout_for_preview' - #end - @theme.layout_path || SpreeTheme.site_class.current.layout || Spree::Config[:layout] - end + def initialize_template( request_fullpath = nil ) + request_fullpath ||= request.fullpath - def initialize_template( request_fullpath = nil ) - request_fullpath ||= request.fullpath - # in case tld/create_admin_session, should show system layout, theme may have no login section. ex www.dalianshops.com - @special_layout = nil - #dalianshops use template now. - #return if SpreeTheme.site_class.current.dalianshops? - #Rails.logger.debug "request_fullpath=#{request_fullpath}" - # fullpath may contain ?n=www.domain.com - case request_fullpath + # in case tld/create_admin_session, should show system layout, theme may have no login section. ex www.dalianshops.com + @special_layout = nil + # dalianshops use template now. + # Rails.logger.debug "request_fullpath=#{request_fullpath}" + # fullpath may contain ?n=www.domain.com + case request_fullpath when /^\/under_construction/, /^\/user\/spree_user\/logout/ ,/^\/logout/, /^\/admin/ - return - end - - website = SpreeTheme.site_class.current - # get theme first, then look for page for selected theme. design shop require index page for each template - @is_designer = false - if website.design? - #add website condition, design can edit template_theme - @is_designer = ( Spree::TemplateTheme.accessible_by( current_ability, :edit).where(:site_id=>website.id).count >0 ) - end - - #login, forget_password page only available fore unlogged user. we need this flag to show editor even user have not log in. - if cookies[:_dalianshops_designer]=='1' - @is_designer = true - end - if cookies[:_dalianshops_designer]=='0' + return + end + + website = Spree::Store.current + # get theme first, then look for page for selected theme. design shop require index page for each template @is_designer = false - end - # user could select theme to view in design shop. - if website.design? - #get template from query string - if params[:action]=='preview' && params[:id].present? - @theme = Spree::TemplateTheme.find( params[:id] ) - session[:theme_id] = params[:id] + if website.designable? + #add website condition, design can edit template_theme + @is_designer = ( Spree::TemplateTheme.accessible_by( current_ability, :edit).where(:site_id=>website.site_id).count >0 ) end - if session[:theme_id].present? - if Spree::TemplateTheme.exists? session[:theme_id] #theme could be deleted. - @theme = Spree::TemplateTheme.find( session[:theme_id] ) + # allow edit mobile template on chrome + #@is_designer = false if mobile? + #login, forget_password page only available fore unlogged user. we need this flag to show editor even user have not log in. + @is_designer = ( cookies[:_dalianshops_designer]=='1') if cookies[:_dalianshops_designer].present? + + @client_info = current_terminal + @client_info.is_preview = @is_designer + + #current_user.is_designer means he could design template_theme. + #current_site.designable means current user could preview published template_theme + # user could select theme to view in editor. + if website.designable? + #get template from query string + if params[:action]=='preview' && params[:id].present? + @theme = Spree::TemplateTheme.find( params[:id] ) + session[:theme_id] = params[:id] + end + # there are more than one designable website, design1, design2 .... + # since cookies domain is same top level domain, ex. .dalianshops.com + # session[:theme_id] maybe not belong to current website, we should test that. + if session[:theme_id].present? + if Spree::TemplateTheme.native.exists? session[:theme_id] #theme could be deleted. + @theme = Spree::TemplateTheme.find( session[:theme_id] ) + else + session[:theme_id] = nil + end end end - end - #browse template by public - if @theme.blank? and SpreeTheme.site_class.current.template_theme.present? - @theme = SpreeTheme.site_class.current.template_theme - end -#Rails.logger.debug "@theme=#{@theme.inspect}, @is_designer=#{@is_designer},website=#{website.inspect} request.xhr?=#{request.xhr?}" - if params[:controller]=~/cart|checkout|order/ - @menu = DefaultTaxon.instance - elsif params[:controller]=~/user/ - @menu = DefaultTaxon.instance - else - if params[:r] - @resource = Spree::Product.find_by_id(params[:r]) - end - if params[:p] - @resource = Spree::Post.find_by_id(params[:p]) + # public view pages + if @theme.blank? && Spree::Store.current.template_theme.present? + @theme = Spree::Store.current.template_theme end - if params[:c] && params[:c].to_i>0 - @menu = SpreeTheme.taxon_class.find_by_id(params[:c]) - elsif(( index_page = @theme.try(:index_page)) && index_page > 0 ) - @menu = SpreeTheme.taxon_class.find_by_id(index_page) - elsif(( index_page = website.index_page) > 0 ) - @menu = SpreeTheme.taxon_class.find_by_id(index_page) - #elsif SpreeTheme.taxon_class.home.present? - # #it is discarded, it is conflict with feature theme has own index page. it would show product assigned index page of other theme - # #now each theme has own index page. website has own index page. - # #just set home page in taxon is ok as well - # @menu = SpreeTheme.taxon_class.home + #Rails.logger.debug "@theme=#{@theme.inspect}, @is_designer=#{@is_designer},website=#{website.inspect} request.xhr?=#{request.xhr?}" + if params[:controller]=~/cart|checkout|order/ + @menu = get_default_taxon + elsif params[:controller]=~/user/ + @menu = get_default_taxon else + if params[:r] + @resource = Spree::Product.find_by_id(params[:r]) + end + if params[:p] + @resource = Spree::Post.find_by_id(params[:p]) + end + if params[:c] && params[:c].to_i>0 + @menu = SpreeTheme.taxon_class.find_by_id(params[:c]) + end # get default_taxon from root, or it has no root, inherited_page_context cause error - @menu = DefaultTaxonRoot.instance(request_fullpath).children.first + # @theme could be nil at present. + @menu ||= ( @theme.try(:home_page) || website.home_page || get_default_taxon) + #elsif SpreeTheme.taxon_class.home.present? + # #it is discarded, it is conflict with feature theme has own index page. it would show product assigned index page of other theme + # #now each theme has own index page. website has own index page. + # #just set home page in taxon is ok as well + # @menu = SpreeTheme.taxon_class.home + end + #menu should be same instance pass to PageTag::PageGenerator, it require request_fullpath + @menu.request_fullpath = request_fullpath + # support feature replaced_by + if @menu.replacer.present? + @menu = @menu.replacer end - end - #menu should be same instance pass to PageTag::PageGenerator, it require request_fullpath - @menu.request_fullpath = request_fullpath - # support feature replaced_by - if @menu.replacer.present? - @menu = @menu.replacer - end - # @theme is required since we support create admin session by ajax. - case request_fullpath - when /^\/create_admin_session/,/^\/new_admin_session/ - @special_layout = 'layout_for_login' - return - when /^\/comments/ # it need layout when development, in fact it is always ajax. - @special_layout = 'under_construction' - return - end - - # site has a released theme - if @theme.present? - unless request.xhr? - if @is_designer - prepare_params_for_editors(@theme) - # layout_editor_panel has to be in views/application, - # or could not find for spree_auth_devise/controllers - @editor_panel = render_to_string :partial=>'layout_editor_panel' - end + # @theme is required since we support create admin session by ajax. + case request_fullpath + when /^\/create_admin_session/,/^\/new_admin_session/ + @special_layout = 'layout_for_login' + return + when /^\/comments/,/^\/new_site/,/^\/create_site/ # it need layout when development, in fact it is always ajax. + @special_layout = 'under_construction' + return end - # we have initialize PageTag::PageGenerator here, page like login do not go to template_thems_controller/page - if @is_designer - @lg = PageTag::PageGenerator.previewer( @menu, @theme, {:resource=>@resource, :controller=>self, :page=>params[:page]}) + + # site has a released theme + if @theme.present? + #support feature is_public + unless website.is_public? + #if it is not public, only admin could preview template_theme. + unless try_spree_current_user + redirect_to :under_construction + end + end + + if mobile? && @theme.mobile + @theme = @theme.mobile + end + + unless request.xhr? + if @is_designer + prepare_params_for_editors(@theme) + # layout_editor_panel has to be in views/application, + # or could not find for spree_auth_devise/controllers + # do not use render_to_string... it is time consuming. + #@editor_panel = render_to_string :partial=>'layout_editor_panel' + end + end + + # initialize page generator @lg all the time, even for xhr, we need to partial section. ex. minicart + # we have to initialize PageTag::PageGenerator here, page like login do not go to template_thems_controller/page + if @is_designer + @lg = PageTag::PageGenerator.previewer( @menu, @theme, {:resource=>@resource, :controller=>self, :page=>params[:page]}) + else + @lg = PageTag::PageGenerator.generator( @menu, @theme, {:resource=>@resource, :controller=>self, :page=>params[:page]}) + end + @lg.context.each_pair{|key,val| + # expose variable to view + instance_variable_set( "@#{key}", val) + } + else - @lg = PageTag::PageGenerator.generator( @menu, @theme, {:resource=>@resource, :controller=>self, :page=>params[:page]}) - end - @lg.context.each_pair{|key,val| - # expose variable to view - instance_variable_set( "@#{key}", val) - } - else - redirect_to :under_construction + redirect_to :under_construction + end end - end - - def prepare_params_for_editors(theme,editor=nil,page_layout = nil) - @editors = Spree::Editor.all - @param_values_for_editors = Array.new(@editors.size){|i| []} - editor_ids = @editors.collect{|e|e.id} - page_layout ||= theme.page_layout - param_values =theme.param_values().includes([:section_param=>[:section_piece_param=>:param_category]]).where(["spree_param_values.page_layout_id=? and spree_section_params.is_enabled",page_layout.id]).order("spree_param_categories.position, spree_section_params.section_id, spree_section_piece_params.position") - #get param_values for each editors - for pv in param_values - #only get pv blong to root section - #next if pv.section_id != layout.section_id or pv.section_instance != layout.section_instance - idx = (editor_ids.index pv.section_param.section_piece_param.editor_id) - if idx>=0 - @param_values_for_editors[idx]||=[] - @param_values_for_editors[idx] << pv + + def prepare_params_for_editors(theme,editor=nil,page_layout = nil, template_terminal = nil) + @editors = Spree::Editor.all + @param_values_for_editors = Array.new(@editors.size){|i| []} + editor_ids = @editors.collect{|e|e.id} + page_layout ||= theme.original_page_layout_root + param_values =theme.param_values().includes([:section_param=>[:section_piece_param=>:param_category]]).where(["spree_param_values.page_layout_id=? and spree_section_params.is_enabled",page_layout.id]).order("spree_param_categories.position, spree_section_params.section_id, spree_section_piece_params.position") + #get param_values for each editors + for pv in param_values + #only get pv blong to root section + #next if pv.section_id != layout.section_id or pv.section_instance != layout.section_instance + idx = (editor_ids.index pv.section_param.section_piece_param.editor_id) + if idx>=0 + @param_values_for_editors[idx]||=[] + @param_values_for_editors[idx] << pv + end end - end - - @theme = theme - @editor = editor - @editor ||= @editors.first - - @page_layout = page_layout #current selected page_layout, the node of the layout tree. - @page_layout||= theme.page_layout - @sections = Spree::Section.where(:is_enabled=>true).order("title").roots - #template selection - @template_themes = Spree::TemplateTheme.where(:site_id=>SpreeTheme.site_class.current.id) - end - - def add_view_path - #!!is it a place cause memory overflow? - append_view_path SpreeTheme.site_class.current.document_path - # layout of imported theme is in design site home folder - append_view_path SpreeTheme.site_class.designsite.document_path + + @theme = theme + @editor = editor + @editor ||= @editors.first + #it is not done, comment it out for now. + #@template_terminal = template_terminal + #@template_terminal ||= theme.template_terminals.first + @page_layout = page_layout #current selected page_layout, the node of the layout tree. + @sections = Spree::Section.where(:is_enabled=>true).order("title").roots + #template selection, include mobile + @template_themes = Spree::TemplateTheme.native + end + + def add_view_path + + end + + #https://ruby-china.org/topics/22165 + #https://github.com/ruby-china/ruby-china/blob/13662590b382c7bbc2438d79679df68efe2684a1/app/helpers/application_helper.rb + MOBILE_USER_AGENTS = 'palm|blackberry|nokia|phone|midp|mobi|symbian|chtml|ericsson|minimo|' + + 'audiovox|motorola|samsung|telit|upg1|windows ce|ucweb|astel|plucker|' + + 'x320|x240|j2me|sgh|portable|sprint|docomo|kddi|softbank|android|mmp|' + + 'pdxgw|netfront|xiino|vodafone|portalmmm|sagem|mot-|sie-|ipod|up\\.b|' + + 'webos|amoi|novarra|cdm|alcatel|pocket|iphone|mobileexplorer|mobile' + def mobile? + return true if cookies[:_dalianshops_terminal]=='2' + + agent_str = request.user_agent.to_s.downcase + return false if agent_str =~ /ipad/ + agent_str =~ Regexp.new(MOBILE_USER_AGENTS) + end + + def current_terminal + unless @current_terminal + @current_terminal = ( mobile? ? Spree::UserTerminal.cellphone.first : Spree::UserTerminal.pc.first ) + end + @current_terminal + end + + def get_default_taxon( ) + DefaultTaxonRoot.instance(request.fullpath).children.first + end end -end \ No newline at end of file +end diff --git a/spree_theme/lib/spree_theme/template_base_helper.rb b/spree_theme/lib/spree_theme/template_base_helper.rb new file mode 100644 index 00000000..a4a48b5d --- /dev/null +++ b/spree_theme/lib/spree_theme/template_base_helper.rb @@ -0,0 +1,4 @@ +module SpreeTheme + module TemplateBaseHelper + end +end \ No newline at end of file diff --git a/spree_theme/lib/spree_theme/testing_support/controller_requests.rb b/spree_theme/lib/spree_theme/testing_support/controller_requests.rb new file mode 100644 index 00000000..d8777497 --- /dev/null +++ b/spree_theme/lib/spree_theme/testing_support/controller_requests.rb @@ -0,0 +1,24 @@ +module SpreeTheme + module TestingSupport + module ControllerRequests + + extend ActiveSupport::Concern + + included do + routes { Spree::Core::Engine.routes } + end + + def xhr_post(action, parameters = nil, session = nil, flash = nil) + parameters ||= {} + parameters.reverse_merge!(:format => :js) + xml_http_request(:post, action, parameters, session, flash) + end + + def xhr_get(action, parameters = nil, session = nil, flash = nil) + parameters ||= {} + parameters.reverse_merge!(:format => :js) + xml_http_request(:get, action, parameters, session, flash) + end + end + end +end diff --git a/spree_theme/lib/spree_theme/testing_support/factories.rb b/spree_theme/lib/spree_theme/testing_support/factories.rb new file mode 100644 index 00000000..a36a5d0b --- /dev/null +++ b/spree_theme/lib/spree_theme/testing_support/factories.rb @@ -0,0 +1,3 @@ +Dir["#{File.dirname(__FILE__)}/factories/**"].each do |f| + load File.expand_path(f) +end diff --git a/spree_theme/lib/spree_theme/testing_support/factories/fake_store_factory.rb b/spree_theme/lib/spree_theme/testing_support/factories/fake_store_factory.rb new file mode 100644 index 00000000..a6d0ae2c --- /dev/null +++ b/spree_theme/lib/spree_theme/testing_support/factories/fake_store_factory.rb @@ -0,0 +1,6 @@ +FactoryGirl.define do + factory :fake_site, class: Spree::FakeWebsite do + name 'Fake site' + end + +end diff --git a/spree_theme/lib/spree_theme/testing_support/factories/html_attribute_factory.rb b/spree_theme/lib/spree_theme/testing_support/factories/html_attribute_factory.rb new file mode 100644 index 00000000..d8cbef83 --- /dev/null +++ b/spree_theme/lib/spree_theme/testing_support/factories/html_attribute_factory.rb @@ -0,0 +1,22 @@ +FactoryGirl.define do + factory :html_attribute_width, class: Spree::HtmlAttribute do + css_name 'width' + pvalues "auto,l1" + punits "l,%" + slug 'width' + end + + factory :html_attribute_height, class: Spree::HtmlAttribute do + css_name 'height' + pvalues "auto,l1" + punits "l,%" + slug 'height' + end + + factory :background_image, class: Spree::HtmlAttribute do + css_name 'background-image' + pvalues "none,0i" + punits "" + slug 'background-image' + end +end diff --git a/spree_theme/lib/spree_theme/testing_support/factories/page_layout_factory.rb b/spree_theme/lib/spree_theme/testing_support/factories/page_layout_factory.rb new file mode 100644 index 00000000..4b217b0c --- /dev/null +++ b/spree_theme/lib/spree_theme/testing_support/factories/page_layout_factory.rb @@ -0,0 +1,46 @@ +FactoryGirl.define do + factory :page_layout, class: Spree::PageLayout do + title 'page layout' + end + + # root + # node1 + # node2 - pv(1) + # node21 - pv(2) + # node22 - pv(2) + factory :page_layout_tree, class: Spree::PageLayout do + title 'page layout tree' + association :section, factory: :section_root + after(:create) do |pl, evaluator| + create( :page_layout_node, parent: pl) + create( :page_layout_node_with_children, parent: pl) + end + end + + factory :page_layout_node, class: Spree::PageLayout do + association :section, factory: :section + title 'page layout node' + after(:create) do |pl, evaluator| + create_list( :param_value_simple, 2, page_layout: pl) + end + end + + factory :page_layout_node_with_children, class: Spree::PageLayout do + association :section, factory: :section + title 'page layout node with children' + after(:create) do |pl, evaluator| + create_list(:param_value_simple, 1, page_layout: pl) + create_list(:page_layout_node, 2, parent: pl) + end + end + + factory :page_layout_root, class: Spree::PageLayout do + association :section, factory: :section_root + title 'page layout root' + end + + factory :param_value_simple, class: Spree::ParamValue do + pvalue { {'21'=> 'width:200px', '21unset'=> false} } + end + +end diff --git a/spree_theme/lib/spree_theme/testing_support/factories/param_value_factory.rb b/spree_theme/lib/spree_theme/testing_support/factories/param_value_factory.rb new file mode 100644 index 00000000..4dbfb04f --- /dev/null +++ b/spree_theme/lib/spree_theme/testing_support/factories/param_value_factory.rb @@ -0,0 +1,21 @@ +FactoryGirl.define do + factory :param_value, class: Spree::ParamValue do + pvalue { {'21'=> 'width:200px', '21unset'=> false} } + + template_theme + association :section_param, factory: :section_param + + factory :updatable_param_value, class: Spree::ParamValue do + # param_vlaue -> section_param -> section_piece_param + after(:create) do|pv| + spp = create(:section_piece_param) + pv.section_param.update_attribute( :section_piece_param, spp ) + end + end + end + + + + + +end diff --git a/spree_theme/lib/spree_theme/testing_support/factories/section_factory.rb b/spree_theme/lib/spree_theme/testing_support/factories/section_factory.rb new file mode 100644 index 00000000..cb315d98 --- /dev/null +++ b/spree_theme/lib/spree_theme/testing_support/factories/section_factory.rb @@ -0,0 +1,30 @@ +FactoryGirl.define do + factory :section, class: Spree::Section do + title 'a section' + association :section_piece, factory: :section_piece + + end + + factory :section_container, class: Spree::Section do + title 'a container section' + association :section_piece, factory: :section_piece_container + + # section_container - section-child + factory :section_with_children do + after(:create) do |section, evaluator| + create_list(:section, 1, parent: section, root_id: section.id) + section.root_id = section.id + section.save + end + end + end + + factory :section_root, class: Spree::Section do + title 'a root section' + association :section_piece, factory: :section_piece_root + after(:create) do |s, evaluator| + s.root_id = s.id + s.save + end + end +end diff --git a/spree_theme/lib/spree_theme/testing_support/factories/section_param_factory.rb b/spree_theme/lib/spree_theme/testing_support/factories/section_param_factory.rb new file mode 100644 index 00000000..ed5dd133 --- /dev/null +++ b/spree_theme/lib/spree_theme/testing_support/factories/section_param_factory.rb @@ -0,0 +1,7 @@ +FactoryGirl.define do + + factory :section_param, class: Spree::SectionParam do + association :section, factory: :section + end + +end diff --git a/spree_theme/lib/spree_theme/testing_support/factories/section_piece_factory.rb b/spree_theme/lib/spree_theme/testing_support/factories/section_piece_factory.rb new file mode 100644 index 00000000..9342ee06 --- /dev/null +++ b/spree_theme/lib/spree_theme/testing_support/factories/section_piece_factory.rb @@ -0,0 +1,19 @@ +FactoryGirl.define do + factory :section_piece, class: Spree::SectionPiece do + title 'section piece' + html 'this is a section piece' + #association :section_piece_param, factory: :section_piece_param + end + + + factory :section_piece_container, class: Spree::SectionPiece do + title 'section piece container' + html '
              ~~content~~
              ' + end + + factory :section_piece_root, class: Spree::SectionPiece do + title 'section piece root' + html ' ~~content~~ ' + end + +end diff --git a/spree_theme/lib/spree_theme/testing_support/factories/section_piece_param_factory.rb b/spree_theme/lib/spree_theme/testing_support/factories/section_piece_param_factory.rb new file mode 100644 index 00000000..52213451 --- /dev/null +++ b/spree_theme/lib/spree_theme/testing_support/factories/section_piece_param_factory.rb @@ -0,0 +1,13 @@ +FactoryGirl.define do + factory :section_piece_param, class: Spree::SectionPieceParam do + association :section_piece, factory: :section_piece + association :editor, factory: :editor + association :param_category, factory: :param_category + end + + factory :editor, class: Spree::Editor do + end + + factory :param_category, class: Spree::ParamCategory do + end +end diff --git a/spree_theme/lib/spree_theme/testing_support/factories/specific_taxon_factory.rb b/spree_theme/lib/spree_theme/testing_support/factories/specific_taxon_factory.rb new file mode 100644 index 00000000..18122438 --- /dev/null +++ b/spree_theme/lib/spree_theme/testing_support/factories/specific_taxon_factory.rb @@ -0,0 +1,5 @@ +FactoryGirl.define do + factory :specific_taxon, class: Spree::SpecificTaxon do + name 'specific taxon' + end +end diff --git a/spree_theme/lib/spree_theme/testing_support/factories/template_file_factory.rb b/spree_theme/lib/spree_theme/testing_support/factories/template_file_factory.rb new file mode 100644 index 00000000..5862bedd --- /dev/null +++ b/spree_theme/lib/spree_theme/testing_support/factories/template_file_factory.rb @@ -0,0 +1,5 @@ +FactoryGirl.define do + factory :template_file, class: Spree::TemplateFile do + name 'template file' + end +end diff --git a/spree_theme/lib/spree_theme/testing_support/factories/template_text_factory.rb b/spree_theme/lib/spree_theme/testing_support/factories/template_text_factory.rb new file mode 100644 index 00000000..e58df205 --- /dev/null +++ b/spree_theme/lib/spree_theme/testing_support/factories/template_text_factory.rb @@ -0,0 +1,5 @@ +FactoryGirl.define do + factory :template_text, class: Spree::TemplateText do + name 'template text' + end +end diff --git a/spree_theme/lib/spree_theme/testing_support/factories/template_theme_factory.rb b/spree_theme/lib/spree_theme/testing_support/factories/template_theme_factory.rb new file mode 100644 index 00000000..ea50c303 --- /dev/null +++ b/spree_theme/lib/spree_theme/testing_support/factories/template_theme_factory.rb @@ -0,0 +1,68 @@ +FactoryGirl.define do + factory :template_theme, class: Spree::TemplateTheme do + title 'template theme' + after(:create) do |theme, evaluator| + create( :page_layout, template_theme: theme) + end + + # template_theme + # page_layout + # template_release + factory :published_template_theme, class: Spree::TemplateTheme do + is_public true + after(:create) do |theme, evaluator| + create_list(:template_release, 1, template_theme: theme) + end + end + + end + + factory :template_release, class: Spree::TemplateRelease do + name 'tempalte release' + end + + # template_theme + # page_layout_root + # section_root + # section_piece_root + factory :previewable_template_theme, class: Spree::TemplateTheme do + title 'template theme for preview' + after(:create) do |theme, evaluator| + create(:page_layout_root, template_theme: theme) + end + end + + + # template_theme + # page_layout_root + # page_layout_nodes( size=2) + # param_values( size=5, theme_id, page_layout_id ) + + factory :duplicatabl_template_theme, class: Spree::TemplateTheme do + title 'full template theme' + after(:create) do |theme, evaluator| + create(:page_layout_tree_for_duplicator, template_theme: theme) + end + end + + factory :page_layout_for_duplicator, class: Spree::PageLayout do + title 'page layout node' + after(:create) do |pl, evaluator| + create_list( :param_value_for_duplicator, 5, template_theme: pl.template_theme, page_layout: pl) + end + + factory :page_layout_tree_for_duplicator, class: Spree::PageLayout do + title 'page layout tree' + after(:create) do |pl, evaluator| + create( :page_layout_for_duplicator, parent: pl, template_theme: pl.template_theme) + create( :page_layout_for_duplicator, parent: pl, template_theme: pl.template_theme) + end + end + + end + + factory :param_value_for_duplicator, class: Spree::ParamValue do + pvalue { {'21'=> 'width:200px', '21unset'=> false} } + end + +end diff --git a/spree_theme/lib/spree_theme/testing_support/factories/terminal_factory.rb b/spree_theme/lib/spree_theme/testing_support/factories/terminal_factory.rb new file mode 100644 index 00000000..5e3bf628 --- /dev/null +++ b/spree_theme/lib/spree_theme/testing_support/factories/terminal_factory.rb @@ -0,0 +1,5 @@ +FactoryGirl.define do + factory :terminal, class: Spree::UserTerminal do + name 'pc' + end +end diff --git a/spree_theme/lib/spree_theme/testing_support/request_helpers.rb b/spree_theme/lib/spree_theme/testing_support/request_helpers.rb new file mode 100644 index 00000000..bd9a3a9e --- /dev/null +++ b/spree_theme/lib/spree_theme/testing_support/request_helpers.rb @@ -0,0 +1,30 @@ +# when test controller admin/*, initialize_template should be ignored +# in rspec, request_fullpath = /?action=apply +# request.fullpath not start with /admin +module SpreeTheme + module TestingSupport + module Helpers + + module Request + def stub_initialize_template! + before(:each) { + #refer to spree/core/store + #Spree::Store.current( create(:store).url ) + allow(controller).to receive(:initialize_template).and_return(nil) + } + end + + def stub_spree_user! + before(:each) { + user = mock_model(Spree.user_class, :last_incomplete_spree_order => nil, :spree_api_key => 'fake') + allow(controller).to receive_messages :spree_current_user => user + } + end + + end + end + end +end +RSpec.configure do |config| + config.extend SpreeTheme::TestingSupport::Helpers::Request #, type: :controller +end diff --git a/spree_theme/lib/tasks/spree_theme.rake b/spree_theme/lib/tasks/spree_theme.rake index 7c5deae7..0fd3c048 100644 --- a/spree_theme/lib/tasks/spree_theme.rake +++ b/spree_theme/lib/tasks/spree_theme.rake @@ -2,112 +2,109 @@ require 'fileutils' namespace :spree_theme do desc "load themes" task :load_themes => :environment do - Rake::Task["spree_sample:load"].invoke + Rake::Task["spree_sample:load"].invoke load File.join(SpreeTheme::Engine.root,'db/themes/seed.rb') end - + desc "reload section_piece.yml" - task :reload_section_piece => :environment do + task :reload_section_piece => :environment do load File.join(SpreeTheme::Engine.root,'db/seeds/00_section_pieces.rb') Spree::TemplateTheme.all.each{|theme| - Rake::Task['spree_theme:release_theme'].invoke(theme.id) - } + Rake::Task['spree_theme:release_theme'].invoke(theme.id) + } end - + desc "export theme. params: :site_id,:theme_id,:format, :seed_path ex. rake spree_theme:export_theme[2,1,json,1]" task :export_theme, [:site_id,:theme_id,:format, :seed_path] => :environment do |t, args| site_id, theme_id, format, seed_path = args.site_id, args.theme_id, args.format, args.seed_path - # current site is required to get template file path + # current site is required to get template file path SpreeTheme.site_class.current = SpreeTheme.site_class.find site_id - - theme = SpreeTheme.site_class.current.template_themes.find( theme_id ) + + theme = SpreeTheme.site_class.current.template_themes.find( theme_id ) serializable_data = theme.serializable_data #add site_id into name is required, later we want to import, just specify site_id is OK. theme_key = "#{theme.site_id}_#{theme.id}_#{Time.now.to_i}" - + if seed_path=='1' file_path = File.join(SpreeTheme::Engine.root,'db','themes','designs', "#{theme_key}.#{format}") else - file_path = File.join(theme.site.document_path, "#{theme_key}.#{format}") + file_path = File.join(theme.store.document_path, "#{theme_key}.#{format}") end - open(file_path,'w') do |file| + open(file_path,'w') do |file| if format == 'json' file.write(serializable_data.to_json) else - file.write(serializable_data.to_yaml) - end - theme_template_file_path = File.expand_path(theme_key, File.dirname(file_path)) + file.write(serializable_data.to_yaml) + end + theme_template_file_path = File.expand_path(theme_key, File.dirname(file_path)) Dir.mkdir theme_template_file_path - serializable_data['template_files'].each{|template_file| - FileUtils.cp template_file.attachment.path, File.expand_path(template_file.attachment_file_name, theme_template_file_path) - } + serializable_data['template_files'].each{|template_file| + FileUtils.cp template_file.attachment.path, File.expand_path(template_file.attachment_file_name, theme_template_file_path) + } end puts "exported file #{file_path}" end - - desc "import theme. params SPREE_REPLACE. - path = spree_theme/db/themes/designs/{site_id}_{theme_id}_{time}.json|yml - default path=shops/rails_env/shop_id/{site_id}_{theme_id}_{time}.json|yml" - task :import_theme , [:site_id,:theme_id,:format, :seed_path] => :environment do |t, args| - site_id, theme_id, format, seed_path = args.site_id, args.theme_id, args.format, args.seed_path - # rake task require class - Spree::ParamValue; Spree::PageLayout; Spree::TemplateFile;Spree::TemplateRelease; - - SpreeTheme.site_class.current = SpreeTheme.site_class.find site_id - - if seed_path=='1' - file_path = File.join(SpreeTheme::Engine.root,'db','themes','designs', "#{SpreeTheme.site_class.current.id}_#{theme_id}*.#{format}") - else - file_path = File.join(SpreeTheme.site_class.current.document_path, "#{SpreeTheme.site_class.current.id}_#{theme_id}*.#{format}") - end - puts "theme_path = #{file_path}" - file_path = Dir[file_path].sort.last - - if file_path.end_with? 'json' - serialized_data = open( file_path ) do |file| - serialized_data = JSON.load(file) - end - theme_key = File.basename( file_path, ".json" ) - else - serialized_data = open( file_path ) do |file| - serialized_data = YAML::load(file) - end - theme_key = File.basename( file_path, ".yml" ) - end - - if serialized_data.present? - theme = Spree::TemplateTheme.import_into_db(serialized_data, ENV['SPREE_REPLACE'].present?) - theme_template_file_path = File.expand_path(theme_key, File.dirname(file_path)) - - theme.template_files - theme.template_files.each{|template_file| - File.open(File.join(theme_template_file_path, template_file.attachment_file_name) ) do|file| - template_file.attachment = file - template_file.save! - end - } - if theme.template_releases.present? - theme.current_template_release = theme.template_releases.last - theme.save! - end - puts "try to release it..." - #Rake::Task['spree_theme:release_theme'].execute(theme.id) - theme.release({},{:page_only=>true}) - end +# desc "import theme. params SPREE_REPLACE. +# path = spree_theme/db/themes/designs/{site_id}_{theme_id}_{time}.json|yml +# default path=shops/rails_env/shop_id/{site_id}_{theme_id}_{time}.json|yml" +# task :import_theme , [:site_id,:theme_id,:format, :seed_path] => :environment do |t, args| +# site_id, theme_id, format, seed_path = args.site_id, args.theme_id, args.format, args.seed_path +# # rake task require class +# Spree::ParamValue; Spree::PageLayout; Spree::TemplateFile;Spree::TemplateRelease; +# SpreeTheme.site_class.current = SpreeTheme.site_class.find site_id +# if seed_path=='1' +# file_path = File.join(SpreeTheme::Engine.root,'db','themes','designs', "#{SpreeTheme.site_class.current.id}_#{theme_id}*.#{format}") +# else +# file_path = File.join(SpreeTheme.site_class.current.document_path, "#{SpreeTheme.site_class.current.id}_#{theme_id}*.#{format}") +# end +# puts "theme_path = #{file_path}" +# +# file_path = Dir[file_path].sort.last +# +# if file_path.end_with? 'json' +# serialized_data = open( file_path ) do |file| +# serialized_data = JSON.load(file) +# end +# theme_key = File.basename( file_path, ".json" ) +# else +# serialized_data = open( file_path ) do |file| +# serialized_data = YAML::load(file) +# end +# theme_key = File.basename( file_path, ".yml" ) +# end +# +# if serialized_data.present? +# theme = Spree::TemplateTheme.import_into_db(serialized_data, ENV['SPREE_REPLACE'].present?) +# theme_template_file_path = File.expand_path(theme_key, File.dirname(file_path)) +# theme.template_files +# theme.template_files.each{|template_file| +# File.open(File.join(theme_template_file_path, template_file.attachment_file_name) ) do|file| +# template_file.attachment = file +# template_file.save! +# end +# } +# if theme.template_releases.present? +# theme.current_template_release = theme.template_releases.last +# theme.save! +# end +# puts "try to release it..." +# #Rake::Task['spree_theme:release_theme'].execute(theme.id) +# theme.release({},{:page_only=>true}) +# end +# +# puts "imported file #{file_path}, imported theme id is #{theme.id}" +# end - puts "imported file #{file_path}, imported theme id is #{theme.id}" - end - desc "release theme without new template_release, rake spree_theme:release_theme[1]" task :release_theme, [:theme_id] =>[ :environment ] do |t, args| theme = Spree::TemplateTheme.find( args.theme_id) # current site is required for build css( image url ) - SpreeTheme.site_class.current = theme.site + Spree::Store.current = theme.store theme.release({},{:page_only=>true}) puts "released #{theme.site.layout}" - end + end desc "get css of theme one, rake spree_theme:get_css[1,2,'block']" task :get_css, [:theme_id, :page_layout_id,:section_id, :class_name] =>[ :environment ] do |t, args| @@ -118,61 +115,63 @@ namespace :spree_theme do template.select(args.page_layout_id.to_i, args.section_id.to_i) puts "template #{args.theme_id}, page_layout_id=#{args.page_layout_id}_#{args.section_id}, #{class_name}= #{template.css(class_name)}" end - + desc "test theme" task :test_theme, [:theme_id] =>[ :environment ] do |t, args| - #section_pieces = Spree::SectionPiece.all(:include=>:section_piece_params) + #section_pieces = Spree::SectionPiece.all(:include=>:section_piece_params) #sections = Spree::Section.all(:include=>{:section_params=>:section_piece_params}) - #page_layouts = Spree::PageLayout.all(:include=>{:section_params=>:section_piece_params}) + #page_layouts = Spree::PageLayout.all(:include=>{:section_params=>:section_piece_params}) theme = Spree::TemplateTheme.find args.theme_id incomplete_page_layouts = [] # section_param and param_value match each other. - for page_layout in theme.page_layout.self_and_descendants.includes(:section) + for page_layout in theme.page_layouts.includes(:section) if page_layout.section.present? section_nodes = page_layout.section.self_and_descendants.includes(:section_params) section_params = section_nodes.collect(&:section_params).flatten if page_layout.param_values.where(:theme_id=>theme.id).count!=section_params.count incomplete_page_layouts << page_layout - puts "error:page_layout=#{page_layout.title},#{page_layout.id} param_values and section_params are not match" + puts "error:page_layout=#{page_layout.title},#{page_layout.id} param_values and section_params are not match" puts " page_layout.param_values=#{page_layout.param_values.count}, section_params=#{section_params.count}" - end + end for sp in section_params if page_layout.param_values.select{|pv| pv.section_param_id==sp.id}.blank? incomplete_page_layouts << page_layout - puts " page_layout=#{page_layout.title},#{page_layout.id},section_id=#{sp.section_id}, missing section_param=#{sp.id}" + puts " page_layout=#{page_layout.title},#{page_layout.id},section_id=#{sp.section_id}, missing section_param=#{sp.id}" end - end + end else puts "error:page_layout=#{page_layout.id} has no section" end - end - - if ENV['FIX'].present? + end + + if ENV['SPREE_FIX'].present? incomplete_page_layouts.uniq.each{| pl | pl.replace_with( Spree::Section.find( pl.section_id )) } end - - pvs = theme.param_values.all(:include=>{:section_param=>{:section_piece_param=>:param_category}}) + + pvs = theme.param_values.includes(:section_param=>{:section_piece_param=>:param_category}) for pv in pvs if pv.section_param.blank? - puts "error:pv=#{pv.id} has no section_param" + puts "error:pv=#{pv.id} has no section_param" else if pv.section_param.section_piece_param.blank? - puts "error:pv=#{pv.id} has no section_piece_param" + puts "error:pv=#{pv.id} has no section_piece_param" else if pv.section_param.section_piece_param.param_category.blank? puts "error:pv=#{pv.id},spp=#{pv.section_param.section_piece_param.id} has no param_category" end end - end + end end end + desc "load file from spree_theme/seeds in transaction, ex. load_seed['file_name']" task :load_seed, [:seed_name] => :environment do |t, args| file_path = File.join(SpreeTheme::Engine.root,'db','seeds',args.seed_name) if File.exists? file_path Spree::TemplateTheme.connection.transaction do + include SpreeTheme::SeedHelper load file_path puts "loaded file #{file_path}" end @@ -180,9 +179,21 @@ namespace :spree_theme do puts "can not find file #{file_path}" end end - + + # since template_theme.duplicate has problem which cause ParamValue malfunctional + # we disable template_theme.duplicate, use task instead + desc "copy theme to new. ex. copy_theme[theme_id]" + task :copy_theme, [:theme_id] => :environment do |t, args| + theme = Spree::TemplateTheme.find( args.theme_id) + Spree::TemplateTheme.connection.transaction do + # required site.current + Spree::Store.current = theme.store + new_theme = theme.duplicate + puts "copied #{theme.id}-#{theme.title} to #{new_theme.id}-#{new_theme.title} " + end + end + def exported_theme_file_name( theme ) "#{theme.site_id}_#{template.id}_#{Time.now.to_i}.yml" - end + end end - diff --git a/spree_theme/spec/controllers/admin/template_files_controller_spec.rb b/spree_theme/spec/controllers/admin/template_files_controller_spec.rb new file mode 100644 index 00000000..81710105 --- /dev/null +++ b/spree_theme/spec/controllers/admin/template_files_controller_spec.rb @@ -0,0 +1,15 @@ +require "spec_helper" + +describe Spree::Admin::TemplateFilesController, :type => :controller do + stub_authorization! + #stub_initialize_template! + + describe "GET #native" do + it "responds successfully with an HTTP 200 status code" do + spree_get :index + expect(response).to be_success + expect(response).to render_template("index") + end + end + +end diff --git a/spree_theme/spec/controllers/admin/template_themes_controller_spec.rb b/spree_theme/spec/controllers/admin/template_themes_controller_spec.rb index 8d605981..333761a6 100644 --- a/spree_theme/spec/controllers/admin/template_themes_controller_spec.rb +++ b/spree_theme/spec/controllers/admin/template_themes_controller_spec.rb @@ -2,28 +2,34 @@ describe Spree::Admin::TemplateThemesController, :type => :controller do stub_authorization! + #stub_initialize_template! - describe "GET #native" do - it "responds successfully with an HTTP 200 status code" do - spree_get :native - expect(response).to be_success - expect(response).to render_template("native") - end + let(:template_theme) do + create(:template_theme) end - describe "post #apply" do - it "responds successfully with an HTTP 200 status code" do - spree_post :apply, :id=>Spree::TemplateTheme.first - expect(response).to be_success - expect(response).to render_template("native") - end - end + describe "GET #native" do - describe "demo #import theme from design" do - it "responds successfully with an HTTP 200 status code" do - spree_post :import, :id=>Spree::TemplateTheme.first, :assigned_resource_ids=>{}, :template_files=>[] - expect(response).to be_success - expect(response).to render_template("foreign") - end + context 'with none template themes' do + it "responds successfully with an HTTP 200 status code" do + spree_get :native + expect(response).to be_success + expect(response).to render_template("native") + end + end end -end \ No newline at end of file + + context 'apply theme to store' do + before(:each) do + Spree::Store.current( create(:store) ) + end + + it "responds successfully with an HTTP 200 status code" do + spree_xhr_post :apply, :id=>template_theme.id + expect(response).to be_success + #expect(response).to render_template("native") + end + end + + +end diff --git a/spree_theme/spec/controllers/comments_controller_spec.rb b/spree_theme/spec/controllers/comments_controller_spec.rb new file mode 100644 index 00000000..a9e52ff5 --- /dev/null +++ b/spree_theme/spec/controllers/comments_controller_spec.rb @@ -0,0 +1,14 @@ +require "spec_helper" + +describe Spree::CommentsController, :type => :controller do + describe "GET #index" do + stub_initialize_template! + it "create comment" do + comment_params ={ :comment=> {"commentable_id"=>"1", "commentable_type"=>"Spree::Store", "comment"=>"this is my advice", "cellphone"=>"", "email"=>""} } + xhr_post :create,comment_params + expect(response).to be_success + assigns(:comment).should be_persisted + end + + end +end diff --git a/spree_theme/spec/controllers/devise_multi_login/user_registration_spec.rb b/spree_theme/spec/controllers/devise_multi_login/user_registration_spec.rb new file mode 100644 index 00000000..18e60ee5 --- /dev/null +++ b/spree_theme/spec/controllers/devise_multi_login/user_registration_spec.rb @@ -0,0 +1,35 @@ +require "spec_helper" +# login with email/cellphone + +# sign up with email/cellphone + +# sign up with existing email/cellphone + +# edit email/cellphone +#devise_scope :spree_user do +# get '/login' => 'user_sessions#new', :as => :login +# post '/login' => 'user_sessions#create', :as => :create_new_session +# get '/logout' => 'user_sessions#destroy', :as => :logout +# get '/signup' => 'user_registrations#new', :as => :signup +# post '/signup' => 'user_registrations#create', :as => :registration +# get '/password/recover' => 'user_passwords#new', :as => :recover_password +# post '/password/recover' => 'user_passwords#create', :as => :reset_password +# get '/password/change' => 'user_passwords#edit', :as => :edit_password +# put '/password/change' => 'user_passwords#update', :as => :update_password +# get '/confirm' => 'user_confirmations#show', :as => :confirmation if Spree::Auth::Config[:confirmable] +#end +RSpec.describe Spree::UserRegistrationsController, type: :controller do + + before { @request.env['devise.mapping'] = Devise.mappings[:spree_user] } + + context '#create' do + stub_initialize_template! + + before { allow(controller).to receive(:after_sign_up_path_for).and_return(spree.root_path(thing: 7)) } + + it 'redirects to after_sign_up_path_for' do + spree_post :create, { spree_user: { cellphone: '13012345678', password: 'foobar123', password_confirmation: 'foobar123' } } + expect(response).to redirect_to spree.root_path(thing: 7) + end + end +end diff --git a/spree_theme/spec/controllers/orders_controller_decorator_spec.rb b/spree_theme/spec/controllers/orders_controller_decorator_spec.rb new file mode 100644 index 00000000..d6f7a01d --- /dev/null +++ b/spree_theme/spec/controllers/orders_controller_decorator_spec.rb @@ -0,0 +1,36 @@ +require 'spec_helper' + +describe Spree::OrdersController, :type => :controller do + let(:user) { create(:user) } + + context "Order model mock" do + let(:order) do + Spree::Order.create + end + + before do + allow(controller).to receive_messages(:try_spree_current_user => user) + end + + #context "#populate" do + # it "should create a new order when none specified upon ajax call" do + # spree_post :populate, :format => :js + # expect(cookies.signed[:guest_token]).not_to be_blank + # expect(Spree::Order.find_by_guest_token(cookies.signed[:guest_token])).to be_persisted + # end + + # context "with Variant" do + # let(:populator) { double('OrderPopulator') } + # before do + # expect(Spree::OrderPopulator).to receive(:new).and_return(populator) + # end + + # it "should handle ajax population" do + # expect(populator).to receive(:populate).with("2", "5", nil).and_return(true) + # spree_post :populate, { :order_id => 1, :variant_id => 2, :quantity => 5 }, { :format => :js } + # expect(response.code).to eq("302") + # end + # end + #end + end +end diff --git a/spree_theme/spec/controllers/template_themes_controller_spec.rb b/spree_theme/spec/controllers/template_themes_controller_spec.rb index 2d8a2326..bd38b399 100644 --- a/spree_theme/spec/controllers/template_themes_controller_spec.rb +++ b/spree_theme/spec/controllers/template_themes_controller_spec.rb @@ -1,22 +1,28 @@ require "spec_helper" describe Spree::TemplateThemesController, :type => :controller do - describe "GET #index" do + stub_initialize_template! + + let(:param_value) { create(:updatable_param_value) } + let(:background_image) { create(:background_image) } + before(:each) { + allow( param_value).to receive(:html_attribute_ids).and_return( [1,2] ) + } #FIXME test it it "get upload image dialog" do - param_value = Spree::ParamValue.first - spree_xhr_get :upload_file_dialog,{:param_value_id=>param_value.id,:html_attribute_id=>param_value.html_attribute_ids.first} + + xhr_get :upload_file_dialog,{:param_value_id=>param_value.id,:html_attribute_id=> background_image.id } expect(response).to be_success - assigns(:param_value).should eq(param_value) + assigns(:param_value).should eq(param_value) end - + it "post upload template image" do - file = fixture_file_upload("/favicon.ico", 'image/ico') - xhr :post, :upload_file_dialog,{:param_value_id=>param_value.id,:html_attribute_id=>param_value.html_attribute_ids.first, + file = fixture_file_upload("qinghe.jpg", 'image/jpg') + xhr_post :upload_file_dialog, { :param_value_id=>param_value.id,:html_attribute_id=> background_image.id, :template_file => {"attachment"=> file} } expect(response).to be_success end - - end -end \ No newline at end of file + + +end diff --git a/spree_theme/spec/controllers/under_construction_spec.rb b/spree_theme/spec/controllers/under_construction_spec.rb new file mode 100644 index 00000000..e69de29b diff --git a/spree_theme/spec/fixtures/qinghe.jpg b/spree_theme/spec/fixtures/qinghe.jpg new file mode 100644 index 00000000..6e647b70 Binary files /dev/null and b/spree_theme/spec/fixtures/qinghe.jpg differ diff --git a/spree_theme/spec/models/html_attribute_value_spec.rb b/spree_theme/spec/models/html_attribute_value_spec.rb index 314a8139..c5e9c1d4 100644 --- a/spree_theme/spec/models/html_attribute_value_spec.rb +++ b/spree_theme/spec/models/html_attribute_value_spec.rb @@ -1,27 +1,48 @@ require 'spec_helper' -describe Spree::SectionPiece do - let (:section_piece) { Spree::SectionPiece.first } - - - it "has wrapped contexts" do - section_piece = Spree::SectionPiece.find('logged-and-unlogged-menu') - logged_resource_context, unlogged_resource_context = section_piece.wrapped_resources - logged_resource_context.context.should eq DefaultTaxon::ContextEnum.account - unlogged_resource_context.context.should eq DefaultTaxon::ContextEnum.login +describe Spree::HtmlAttributeValue do + before(:each) do + @html_attribute_width = create(:html_attribute_width) + @param_value = create(:param_value ) end - + + it "should parse param_value" do + hav = Spree::HtmlAttributeValue.parse_from( @param_value, @html_attribute_width) + end + + #it "has wrapped contexts" do + # section_piece = Spree::SectionPiece.friendly.find('logged-and-unlogged-menu') + # logged_resource_context, unlogged_resource_context = section_piece.wrapped_resources + # logged_resource_context.context.should eq DefaultTaxon::ContextEnum.account + # unlogged_resource_context.context.should eq DefaultTaxon::ContextEnum.login + #end + it "generate right css selector" do - spp = Spree::SectionPieceParam.find_by_class_name 'page' - pv = spp.section_params.first.param_values.first - html_attribute_id, html_attribute_value = pv.html_attribute_values_hash.first - html_attribute_value.css_selector.should eq '#page' - end - it "generate right css selector2" do - spp = Spree::SectionPieceParam.find_by_class_name 'depth1' - pv = spp.section_params.first.param_values.first - css_selector_prefix = ".s_#{pv.page_layout_id}_#{pv.section_param.section_id}" - html_attribute_id, html_attribute_value = pv.html_attribute_values_hash.first - html_attribute_value.css_selector.should eq css_selector_prefix+" .depth1" - end + #generate 'page' => '#page' + #spp = Spree::SectionPieceParam.find_by_class_name 'page' + #pv = spp.section_params.first.param_values.first + #html_attribute_id, html_attribute_value = pv.html_attribute_values_hash.first + #html_attribute_value.css_selector.should eq '#page' + end + context 'test css selector' do + let(:html_attribute_value){ + hav = Spree::HtmlAttributeValue.new + hav.param_value =@param_value + hav.html_attribute = @html_attribute_width + hav + } + before(:each) do + @html_attribute_value = html_attribute_value + end + + it "generate right css selector2" do + allow( @html_attribute_value ).to receive( :attribute_class_name ).and_return('block') + #block + pv = @param_value + + css_selector_prefix = ".s_#{pv.page_layout_id}_#{pv.section_param.section_root_id}" + + @html_attribute_value.css_selector.should eq css_selector_prefix + end + end end diff --git a/spree_theme/spec/models/page_generator_spec.rb b/spree_theme/spec/models/page_generator_spec.rb index b8a53cc1..52054a98 100644 --- a/spree_theme/spec/models/page_generator_spec.rb +++ b/spree_theme/spec/models/page_generator_spec.rb @@ -1,28 +1,37 @@ require 'spec_helper' describe PageTag::PageGenerator do - let (:page_generator) { - PageTag::PageGenerator.previewer( DefaultTaxon.instance, SpreeTheme.site_class.current.template_theme, :controller=>Spree::TemplateThemesController.new) - } - + before (:each) { + SpreeTheme.site_class.current = create(:fake_site) + @template_theme = create(:previewable_template_theme) + #@page_generator = PageTag::PageGenerator.previewer( DefaultTaxon.instance, @template_theme, :controller=>Spree::TemplateThemesController.new) + } + + context "preview page" do + let(:pg) { PageTag::PageGenerator.previewer( DefaultTaxon.instance, @template_theme, :controller=>Spree::TemplateThemesController.new) } + it "preview page" do + pg + end + + end + it "menu section should use default taxon in case no taxon assigned" do - theme = SpreeTheme.site_class.current.template_theme - page_layout = theme.page_layout.self_and_descendants.find(:first,:conditions=>["spree_section_pieces.resources like ?",'m%'],:include=>[:sections=>:section_piece]) - menu_section = page_layout.sections.first - theme.unassign_resource( SpreeTheme.taxon_class, page_layout) - theme.assigned_resources( SpreeTheme.taxon_class, page_layout).compact.should be_blank - - page_generator.theme.reload - page_generator.current_page_tag.template_tag.select( page_layout.id, menu_section.id) - menu = page_generator.current_page_tag.template_tag.menu -Rails.logger.debug "theme=#{page_generator.theme.inspect},menu = #{menu.model.inspect}" - menu.should be_kind_of PageTag::Menus::WrappedMenu - menu.model.should be_kind_of DefaultTaxon + theme = @template_theme +# page_layout = theme.page_layouts.find(:first,:conditions=>["spree_section_pieces.resources like ?",'m%'],:include=>[:sections=>:section_piece]) +# menu_section = page_layout.sections.first +# theme.unassign_resource( SpreeTheme.taxon_class, page_layout) +# theme.assigned_resources( SpreeTheme.taxon_class, page_layout).compact.should be_blank + +# page_generator.theme.reload +# page_generator.current_page_tag.template_tag.select( page_layout.id, menu_section.id) +# menu = page_generator.current_page_tag.template_tag.menu +# menu.should be_kind_of PageTag::Menus::WrappedMenu +# menu.model.should be_kind_of DefaultTaxon end - + it "taxon should get resources" do - - - + + + end - -end \ No newline at end of file + +end diff --git a/spree_theme/spec/models/page_layout_context_spec.rb b/spree_theme/spec/models/page_layout_context_spec.rb new file mode 100644 index 00000000..e0f5a88d --- /dev/null +++ b/spree_theme/spec/models/page_layout_context_spec.rb @@ -0,0 +1,54 @@ +require 'spec_helper' +describe Spree::PageLayout do + let (:page_layout) { create(:page_layout) } + let (:context_detail) { Spree::PageLayout::ContextEnum.detail } + let (:context_list) { Spree::PageLayout::ContextEnum.list } + let (:context_cart) { Spree::PageLayout::ContextEnum.cart } + let (:context_either) { Spree::PageLayout::ContextEnum.either } + let (:context_thanks) { Spree::PageLayout::ContextEnum.thanks } + + context 'with context product list and detail' do + before(:each) do + @page_layout = create(:page_layout, section_context: "#{context_list},#{context_detail}" ) + end + + it 'should has list and detail context' do + @page_layout.current_contexts.should eq ([context_list,context_detail]) + end + + it "valid section context" do + @page_layout.valid_context?(context_detail).should be_truthy + @page_layout.context_detail?.should be_truthy + @page_layout.context_list?.should be_truthy + end + + context 'with one child' do + it "should inherit context" do + + end + end + end + + it "could update context" do + new_contexts = [context_cart] + page_layout.update_section_context new_contexts + page_layout.current_contexts.should eq(new_contexts) + end + + it "could verify contexts" do + Spree::PageLayout.verify_contexts( context_cart, [context_cart, context_thanks ] ).should be_truthy + + Spree::PageLayout.verify_contexts( [context_cart], [context_cart, context_thanks ] ).should be_truthy + + Spree::PageLayout.verify_contexts( context_either, [context_cart, context_thanks ] ).should be_truthy + end + + + # page_layout tree + # root + # product-list-grid( stylish=0 ) + # product-list-line( stylish=1 ) + # taxon0(stylish=0), taxon1( stylish=1) + # taxon0.valid_context?(product-list-grid ) => true + # taxon0.valid_context?(product-list-line ) => false +end diff --git a/spree_theme/spec/models/page_layout_spec.rb b/spree_theme/spec/models/page_layout_spec.rb index 0b279cf6..916cec8a 100644 --- a/spree_theme/spec/models/page_layout_spec.rb +++ b/spree_theme/spec/models/page_layout_spec.rb @@ -1,109 +1,72 @@ require 'spec_helper' describe Spree::PageLayout do - let (:page_layout) { Spree::PageLayout.first } - + let (:page_layout) { create(:page_layout) } + let (:page_layout_tree) { create(:page_layout_tree) } + # root + # node1 + # node2 - pv(1) + # node21 - pv(2) + # node22 - pv(2) + before(:each){ + @node_has_children = page_layout_tree.children.last + # SpreeTheme.site_class.current = create(:fake_site) + # @page_layout_tree = create(:page_layout_tree) + } + it "build html css js" do - html, css = page_layout.build_content - html.present?.should be_true - css.present?.should be_true + html, css = page_layout_tree.build_content + html.present?.should be_truthy end - it "has page script" do - html, css, js = page_layout.build_content - html.should match(/proc_page=/) + it "destory a node with children" do + @node_has_children.children.should be_present + expect{ @node_has_children.destroy }.to change{Spree::PageLayout.count}.by( -3 ) end - - it "has partial html" do - page_layout.partial_html.should be_kind_of Spree::HtmlPage::PartialHtml + + it "destory a node with children" do + expect{ @node_has_children.destroy }.to change{Spree::ParamValue.count}.by( -5 ) end - - it "create new page_layout tree" do + + #it "has partial html" do + # page_layout.partial_html.should be_kind_of Spree::HtmlPage::PartialHtml + #end + + #it "create new page_layout tree" do # objects = Spree::Section.roots # section_hash= objects.inject({}){|h,sp| h[sp.slug] = sp; h} - # center area + # center area # center_area = Spree::PageLayout.create_layout(section_hash['center_area'], "center_area") # center_area.add_section(section_hash['center_part'],:title=>"center_part") # center_area.add_section(section_hash['left_part'],:title=>"left_part") # center_area.add_section(section_hash['right_part'],:title=>"right_part") - # center_area.children.count.should eq(3) + # center_area.children.count.should eq(3) # center_area.param_values.count.should eq(0) - - end - - it "valid section context" do - - product_detail = Spree::PageLayout.find_by_section_context( Spree::PageLayout::ContextEnum.detail) - product_detail.context_detail?.should be_true - product_list = Spree::PageLayout.find_by_section_context( Spree::PageLayout::ContextEnum.list) - product_list.context_list?.should be_true - end + #end - it "could update context" do - list_section = Spree::PageLayout.find_by_section_context('list') - detail_section = Spree::PageLayout.find_by_section_context('detail') - #contexts = [Spree::PageLayout::ContextEnum.account, Spree::PageLayout::ContextEnum.thanks,Spree::PageLayout::ContextEnum.cart, Spree::PageLayout::ContextEnum.checkout] - contexts = [Spree::PageLayout::ContextEnum.list, Spree::PageLayout::ContextEnum.detail] - page_layout.update_section_context contexts - - for node in page_layout.self_and_descendants - if node.is_or_is_descendant_of? list_section - node.current_contexts.should eq(list_section.current_contexts) - elsif node.is_or_is_descendant_of? detail_section - node.current_contexts.should eq(detail_section.current_contexts) - else - node.current_contexts.should eq(contexts) - end - end - end + #it "could replace section" do + # original_page_layout = page_layout.dup + # root2 = Spree::Section.find('root2') + # page_layout.replace_with(root2) + # original_page_layout.param_values.empty?.should be_truthy + # page_layout.section.should eq root2 + # page_layout.param_values.present?.should be_truthy + #end - it "could verify contexts" do - Spree::PageLayout.verify_contexts( Spree::PageLayout::ContextEnum.cart, [:cart, :checkout, :thankyou ] ).should be_true - - Spree::PageLayout.verify_contexts( [Spree::PageLayout::ContextEnum.cart], [:cart, :checkout, :thankyou ] ).should be_true + #it "has many sections" do + # page_layout.respond_to?(:sections).should be_truthy + #end - Spree::PageLayout.verify_contexts( Spree::PageLayout::ContextEnum.either, [:cart, :checkout, :thankyou ] ).should be_false - end - - it "could replace section" do - original_page_layout = page_layout.dup - root2 = Spree::Section.find('root2') - page_layout.replace_with(root2) - original_page_layout.param_values.empty?.should be_true - page_layout.section.should eq root2 - page_layout.param_values.present?.should be_true - - end - - it "has many sections" do - sections = page_layout.sections - sections.should be_present - - for section in sections - section.root_id.should == page_layout.section_id - end - end - - it "should update datasource" do - data_source_gpvs = Spree::PageLayout::ContextDataSourceMap[Spree::PageLayout::ContextEnum.list].first - product_list = Spree::PageLayout.find_by_section_context( Spree::PageLayout::ContextEnum.list) - product_list.update_data_source( Spree::PageLayout::DataSourceEmpty) - product_list.data_source.should be_blank - product_list.update_data_source( data_source_gpvs ) - product_list.current_data_source.should eq data_source_gpvs - end - - it "should get available data sources" do - - end - - it "should copy page_layout to new" do - nodes = Spree::PageLayout.root.self_and_descendants - new_nodes = Spree::PageLayout.copy_to_new(nodes) - new_nodes.size.should eq nodes.size - (new_nodes&nodes).should be_blank - new_nodes.each_with_index{|new_node, index| - new_node.title.should eq nodes[index].title - } - end -end \ No newline at end of file + #it "should update datasource" do + #data_source_gpvs = Spree::PageLayout::ContextDataSourceMap[Spree::PageLayout::ContextEnum.list].first + #product_list = Spree::PageLayout.find_by_section_context( Spree::PageLayout::ContextEnum.list) + #product_list.update_data_source( Spree::PageLayout::DataSourceEmpty) + #product_list.data_source.should be_blank + #product_list.update_data_source( data_source_gpvs ) + #product_list.current_data_source.should eq data_source_gpvs + #end + + #it "should get available data sources" do + #end + +end diff --git a/spree_theme/spec/models/param_value_spec.rb b/spree_theme/spec/models/param_value_spec.rb index 79e5df67..ab41f484 100644 --- a/spree_theme/spec/models/param_value_spec.rb +++ b/spree_theme/spec/models/param_value_spec.rb @@ -1,59 +1,58 @@ require 'spec_helper' describe Spree::ParamValue do - it "partial_html" do - Spree::ParamValue.first.partial_html + let (:param_value) { create(:param_value) } + + it "should have partial_html" do + # Spree::ParamValue.first.partial_html end - - it "find within_section&within_editor" do - param_value = Spree::ParamValue.first - editor = Spree::Editor.first - param_values = Spree::ParamValue.within_section( param_value ).within_editor( editor ) - + + it "find within_section " do + param_values = Spree::ParamValue.within_section( param_value ) for pv in param_values - pv.theme_id.should eq( param_value.theme_id) + pv.theme_id.should eq( param_value.theme_id) pv.page_layout_id.should eq( param_value.page_layout_id) - pv.section_param.section_piece_param.editor_id.should eq(editor.id) end - end - - - it "should trigger pv_change" do - html_attribute_height = Spree::HtmlAttribute.find('height') - container = Spree::Section.find('container').page_layouts.first - param_value = container.partial_html.html_attribute_values('block_width').param_value - param_value.should be_present - html_attribute_value_params = {"psvalue0"=>"l1", "pvalue0"=>"800", "unit0"=>"px"} - is_updated, new_html_attribute_value, original_html_attribute_value = param_value.update_html_attribute_value(html_attribute_height, html_attribute_value_params, Spree::ParamValue::EventEnum[:pv_changed] ) - is_updated.should be_true - param_value.updated_html_attribute_values.should be_present + + context 'trigger param value event' do + + # it "should trigger pv_change" do + # html_attribute_height = Spree::HtmlAttribute.find(21) + # container = section.page_layouts.first + # param_value = container.partial_html.html_attribute_values('block_width').param_value + # param_value.should be_present + # html_attribute_value_params = {"psvalue0"=>"l1", "pvalue0"=>"800", "unit0"=>"px"} + # + # is_updated, new_html_attribute_value, original_html_attribute_value = param_value.update_html_attribute_value(html_attribute_height, html_attribute_value_params, Spree::ParamValue::EventEnum[:pv_changed] ) + # is_updated.should be_truthy + # param_value.updated_html_attribute_values.should be_present + # end + + # it "height should trigger pv_change" do + # html_attribute_height = Spree::HtmlAttribute.find(15) + # html_attribute_margin = Spree::HtmlAttribute.find(31) + # container = section.page_layouts.first + # # set margin + # param_value_margin = container.partial_html.html_attribute_values('inner_margin').param_value + # html_attribute_value_params = {"psvalue0"=>"l1", "pvalue0"=>"10", "unit0"=>"px", "psvalue1"=>"l1", "pvalue1"=>"0", "unit1"=>"px", "psvalue2"=>"l1", "pvalue2"=>"0", "unit2"=>"px", "psvalue3"=>"l1", "pvalue3"=>"0", "unit3"=>"px"} + # is_updated, new_html_attribute_value, original_html_attribute_value = param_value_margin.update_html_attribute_value(html_attribute_margin, html_attribute_value_params, Spree::ParamValue::EventEnum[:pv_changed] ) + # is_updated.should be_truthy + # new_html_attribute_value.pvalue.should eq 10 + # #set height, inner height should be set. + # html_attribute_value_params = {"psvalue0"=>"l1", "pvalue0"=>"800", "unit0"=>"px"} + # param_value = container.partial_html.html_attribute_values('block_height').param_value + # is_updated, new_html_attribute_value, original_html_attribute_value = param_value.update_html_attribute_value(html_attribute_height, html_attribute_value_params, Spree::ParamValue::EventEnum[:pv_changed] ) + # is_updated.should be_truthy + # param_value.updated_html_attribute_values.should be_present + # inner_height = param_value_margin.reload.html_attribute_value( html_attribute_height) + # inner_height.pvalue.should eq 790 + # #unset height, inner height should be 0 + # html_attribute_value_params = {"psvalue0"=>"l1", "pvalue0"=>"800", "unit0"=>"px", "unset"=>"1"} + # is_updated, new_html_attribute_value, original_html_attribute_value = param_value.update_html_attribute_value(html_attribute_height, html_attribute_value_params, Spree::ParamValue::EventEnum[:pv_changed] ) + # is_updated.should be_truthy + # inner_height = param_value_margin.reload.html_attribute_value( html_attribute_height) + # inner_height.pvalue.should eq 0 + # end + end - - it "height should trigger pv_change" do - html_attribute_height = Spree::HtmlAttribute.find('height') - html_attribute_margin = Spree::HtmlAttribute.find('margin') - container = Spree::Section.find('container').page_layouts.first - # set margin - param_value_margin = container.partial_html.html_attribute_values('inner_margin').param_value - html_attribute_value_params = {"psvalue0"=>"l1", "pvalue0"=>"10", "unit0"=>"px", "psvalue1"=>"l1", "pvalue1"=>"0", "unit1"=>"px", "psvalue2"=>"l1", "pvalue2"=>"0", "unit2"=>"px", "psvalue3"=>"l1", "pvalue3"=>"0", "unit3"=>"px"} - is_updated, new_html_attribute_value, original_html_attribute_value = param_value_margin.update_html_attribute_value(html_attribute_margin, html_attribute_value_params, Spree::ParamValue::EventEnum[:pv_changed] ) - is_updated.should be_true - new_html_attribute_value.pvalue.should eq 10 - #set height, inner height should be set. - html_attribute_value_params = {"psvalue0"=>"l1", "pvalue0"=>"800", "unit0"=>"px"} - param_value = container.partial_html.html_attribute_values('block_height').param_value - is_updated, new_html_attribute_value, original_html_attribute_value = param_value.update_html_attribute_value(html_attribute_height, html_attribute_value_params, Spree::ParamValue::EventEnum[:pv_changed] ) - is_updated.should be_true - param_value.updated_html_attribute_values.should be_present - inner_height = param_value_margin.reload.html_attribute_value( html_attribute_height) - inner_height.pvalue.should eq 790 - #unset height, inner height should be 0 - html_attribute_value_params = {"psvalue0"=>"l1", "pvalue0"=>"800", "unit0"=>"px", "unset"=>"1"} - is_updated, new_html_attribute_value, original_html_attribute_value = param_value.update_html_attribute_value(html_attribute_height, html_attribute_value_params, Spree::ParamValue::EventEnum[:pv_changed] ) - is_updated.should be_true - inner_height = param_value_margin.reload.html_attribute_value( html_attribute_height) - inner_height.pvalue.should eq 0 - - end - -end \ No newline at end of file +end diff --git a/spree_theme/spec/models/section_param_spec.rb b/spree_theme/spec/models/section_param_spec.rb index aa9893ea..a92fb90f 100644 --- a/spree_theme/spec/models/section_param_spec.rb +++ b/spree_theme/spec/models/section_param_spec.rb @@ -1,27 +1,31 @@ require 'spec_helper' describe Spree::SectionParam do - let (:section_param) { Spree::SectionParam.first } - + let (:param_value) { create( :param_value )} + before(:each) do + @section_param = param_value.section_param + end + it "has right association" do - section_param.param_values.should be_a_kind_of Array + @section_param.respond_to?(:param_values).should be_truthy end - + it "should add and remove defalut value" do - html_attribute = section_param.section_piece_param.html_attributes.first + section_param = @section_param + html_attribute_id = '20120930' #new id default_value = 'width:0px' - section_param.add_default_value(html_attribute.id, default_value) + section_param.add_default_value(html_attribute_id, default_value) section_param.reload for pv in section_param.param_values - pv.pvalue[html_attribute.id].should eq default_value + pv.pvalue[html_attribute_id].should eq default_value end - section_param.remove_default_value(html_attribute.id) + section_param.remove_default_value(html_attribute_id) section_param.reload for pv in section_param.param_values - pv.pvalue[html_attribute.id].should be_nil + pv.pvalue[html_attribute_id].should be_nil end - + end - + #TODO # test add_section_piece, section_param should be added end diff --git a/spree_theme/spec/models/section_piece_param_spec.rb b/spree_theme/spec/models/section_piece_param_spec.rb index ffc35846..7e9a094d 100644 --- a/spree_theme/spec/models/section_piece_param_spec.rb +++ b/spree_theme/spec/models/section_piece_param_spec.rb @@ -1,55 +1,46 @@ #page_layout.templates require 'spec_helper' describe Spree::SectionPieceParam do - let (:section_piece_param) { Spree::SectionPieceParam.first } - + + before( :each ) do + @section_piece_param = create( :section_piece_param ) + end + it "create section piece param" do - original_param_value_count = Spree::ParamValue.count() - editor = Spree::Editor.first - section_piece = Spree::SectionPiece.find_by_title('container') - param_category = Spree::ParamCategory.first + editor = @section_piece_param.editor + section_piece = @section_piece_param.section_piece + param_category = @section_piece_param.param_category attrs = { "editor"=>editor, "section_piece"=>section_piece, "param_category"=>param_category, "class_name"=>"new_name", "pclass"=>"css", "html_attribute_ids"=>"2,3,4,5"} spp = Spree::SectionPieceParam.new( attrs ) - spp.save.should be_true - sections = spp.section_piece.sections.includes(:section_params) - section_params = sections.collect{|section| section.section_params.select{|sp| sp.section_piece_param == spp} }.flatten - sections.size.should == section_params.size - - #each section_root has how much section_piece. - root_and_count_hash = sections.inject({}){|hash, section| hash[section.root_id]||=0; hash[section.root_id]+=1; hash} - #how much page_layout using section_root. - page_layouts = Spree::PageLayout.all(:conditions=>["section_id in (?)",root_and_count_hash.keys],:include=>:themes) - - count = page_layouts.inject(0){|sum, page_layout| - sum+= page_layout.themes.size*root_and_count_hash[page_layout.section_id] - } - new_param_value_count = Spree::ParamValue.count() -Rails.logger.debug "new_param_value_count=#{new_param_value_count},original_param_value_count=#{original_param_value_count}" - new_param_value_count.should ==(original_param_value_count+count) + spp.save.should be_truthy + #sections = spp.section_piece.sections.includes(:section_params) + #section_params = sections.collect{|section| section.section_params.select{|sp| sp.section_piece_param == spp} }.flatten + #sections.size.should == section_params.size end - + it 'has many section_params' do - section_piece_param.section_params.should be_kind_of Array + @section_piece_param.section_params end - + it 'destroy section_params and param_values together' do - section_params = section_piece_param.section_params - section_piece_param.destroy - Spree::SectionParam.where(:section_piece_param_id=>section_piece_param.id).should be_blank - for section_param in section_params + section_params = @section_piece_param.section_params + @section_piece_param.destroy + Spree::SectionParam.where(:section_piece_param_id=> @section_piece_param.id).should be_blank + for section_param in section_params Spree::ParamValue.where(:section_param_id=>section_param.id).should be_blank end - + + end + + context " new html attribute height" do + before(:each) do + @html_attribute_height = create( :html_attribute_height ) + end + it "insert html_attribute" do + spp = @section_piece_param + spp.insert_html_attribute( @html_attribute_height ) + #spp.insert_html_attribute( @html_attribute_height).should raise_error + + end end - - - it "insert html_attribute" do - padding = Spree::HtmlAttribute.find 32 - margin = Spree::HtmlAttribute.find 31 - spp = Spree::SectionPieceParam.where(:editor_id=>2, :class_name=>'content_layout').first - spp.insert_html_attribute( padding) - spp.insert_html_attribute( padding).should raise_error - spp.insert_html_attribute( padding, margin).should raise_error - - end -end \ No newline at end of file +end diff --git a/spree_theme/spec/models/section_piece_spec.rb b/spree_theme/spec/models/section_piece_spec.rb index 336fa839..5f1d7112 100644 --- a/spree_theme/spec/models/section_piece_spec.rb +++ b/spree_theme/spec/models/section_piece_spec.rb @@ -1,11 +1,35 @@ require 'spec_helper' -describe Spree::HtmlAttributeValue do - let (:html_attribute_value) { Spree::ParamValue.first.html_attribute_values_hash.values.first } - - it "generate correct css_selector" do - param_value = SectionPieceParam.find_by_class_name('s_table').section_params.first.param_values.first - param_value.html_attribute_values_hash.values.first.css_selector.should eq ".s_#{self.param_value.page_layout_id}_#{self.param_value.section_param.section_root_id} table" +describe Spree::SectionPiece do + let( :section_piece_param ) { create(:section_piece_param) } + let!( :section_piece ) { create(:section_piece, :section_piece_params =>[ section_piece_param ] ) } + + let( :attrs) { {"editor"=>section_piece_param.editor, "class_name"=>"s_a", "pclass"=>"css", "param_category"=>section_piece_param.param_category, "html_attribute_ids"=>"7,8,6"} } + let( :create_section_piece_param ){ section_piece.section_piece_params.create!( attrs ) } + + it 'add section piece param' do + expect{ create_section_piece_param }.to change{ Spree::SectionPieceParam.count}.by(1) + end + + describe "add section piece param into section_piece of section " do + before(:each) do + @section = create(:section, :section_piece => section_piece) + end + + it "add section param as well" do + expect{ create_section_piece_param }.to change{ Spree::SectionParam.count}.by(1) + end end - + + describe "add section piece param into section_piece of page_layout" do + before(:each) do + @section = create(:section, :section_piece => section_piece) + @page_layout = create(:page_layout, :section => @section) + end + + it "add section param as well" do + expect{ create_section_piece_param }.to change{ Spree::ParamValue.count}.by(1) + end + end + end diff --git a/spree_theme/spec/models/section_spec.rb b/spree_theme/spec/models/section_spec.rb index 4fa7f676..fb3262b0 100644 --- a/spree_theme/spec/models/section_spec.rb +++ b/spree_theme/spec/models/section_spec.rb @@ -1,55 +1,62 @@ require 'spec_helper' describe Spree::Section do - let (:section) { Spree::Section.first } - - it "has right section params" do - Spree::Section.roots.each{|hmenu| - section_piece_params = hmenu.self_and_descendants.collect{|section| section.section_piece.section_piece_params}.flatten - section_params = hmenu.self_and_descendants.collect{|section| section.section_params}.flatten - section_params.size.should ==section_piece_params.size - } - - section_params = Spree::SectionParam.includes(:section_piece_param).all - for sp in section_params - (sp.default_value.keys-sp.section_piece_param.param_keys).should be_blank - (sp.html_attributes(:disabled) - sp.section_piece_param.html_attributes).should be_blank - end - - end - + let (:section) { create(:section) } + + #it "has right section params" do + # Spree::Section.roots.each{|hmenu| + # section_piece_params = hmenu.self_and_descendants.collect{|section| section.section_piece.section_piece_params}.flatten + # section_params = hmenu.self_and_descendants.collect{|section| section.section_params}.flatten + # section_params.size.should ==section_piece_params.size + # } + # section_params = Spree::SectionParam.includes(:section_piece_param).all + # for sp in section_params + # (sp.default_value.keys-sp.section_piece_param.param_keys).should be_blank + # (sp.html_attributes(:disabled) - sp.section_piece_param.html_attributes).should be_blank + # end + #end + it "destroy a section" do - section.section_params.size.should be > 0 + section.section_params.create! + section_id = section.id section.destroy + Spree::SectionParam.exists?(section_id: section_id).should be_falsey end - it "a section has page_layouts" do - section.page_layouts.build.should be_present + it "has many page_layouts" do + section.respond_to?( :page_layouts).should be_truthy + end - - it "build cart section html" do - cart = Spree::Section.find_by_title('cart') - html = cart.build_html - html.should =~/yield/ + + context "build html,css,js" do + let (:section) { create(:section_with_children).reload } + + it "build html" do +Rails.logger.debug " .........start section = #{section.inspect} #{section.children.inspect} " + html = section.build_html + html.should eq "
              this is a section piece
              " + +Rails.logger.debug " .........end build html....." + end end - - # test add_section_piece, section_param should be added - it "build section with default param value" do - bool_false = Spree::HtmlAttribute::BOOL_FALSE - bool_true = Spree::HtmlAttribute::BOOL_TRUE - section_piece_hash= Spree::SectionPiece.all.inject({}){|h,sp| h[sp.slug] = sp; h} - - #container-title - Spree::Section.where(:title=>'container with title').each(&:destroy) - container = Spree::Section.create_section(section_piece_hash['container'].id, {:title=>"container with title"}, - {'block'=>{15=>"height:100px",'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) - container.add_section_piece(section_piece_hash['container-title'].id) - section_params = Spree::SectionParam.where(:section_root_id=>container.id).includes(:section_piece_param) - - for sp in section_params - (sp.default_value.keys-sp.section_piece_param.param_keys).should be_blank - - (sp.html_attributes(:disabled) - sp.section_piece_param.html_attributes).should be_blank + + context "create section" do + let( :bool_false) { Spree::HtmlAttribute::BOOL_FALSE } + let( :bool_true) { Spree::HtmlAttribute::BOOL_TRUE } + before(:each){ + @section_piece_container = create(:section_piece_container) + } + # test add_section_piece, section_param should be added + it "build section with default param value" do + + container = Spree::Section.create_section( @section_piece_container, {:title=>"container with title"}, + {'block'=>{15=>"height:100px",'disabled_ha_ids'=>'111'}, 'inner'=>{'15hidden'=>bool_true}}) + container.add_section_piece(@section_piece_container) + + #section_params = Spree::SectionParam.where(:section_root_id=>container.id).includes(:section_piece_param) + #for sp in section_params + # (sp.default_value.keys-sp.section_piece_param.param_keys).should be_blank + # (sp.html_attributes(:disabled) - sp.section_piece_param.html_attributes).should be_blank + #end end - end end diff --git a/spree_theme/spec/models/taxon_spec.rb b/spree_theme/spec/models/taxon_spec.rb index 925b9f2a..87748e75 100644 --- a/spree_theme/spec/models/taxon_spec.rb +++ b/spree_theme/spec/models/taxon_spec.rb @@ -1,20 +1,11 @@ require 'spec_helper' -describe Spree::Taxon do - let (:taxon) { Spree::Taxon.roots.first } - - - it "should copy" do - #open( File.join Rails.root, 'public','favicon.ico' ) do|f| - # taxon.icon = f - # taxon.save - #end - #Spree::Site.current = Spree::Site.find 3 - #taxon = Spree::Taxon.unscoped.roots.where(:site_id=>2).first -Rails.logger.debug "..taxon = #{taxon.inspect}" - copied_taxon = taxon.copy -Rails.logger.debug "..copied taxon = #{copied_taxon.inspect}" +describe Spree::Taxon, :type => :model do + before do + @taxonomy = create(:taxonomy) + @root_taxon = @taxonomy.root + @child_taxon = create(:taxon, :taxonomy_id => @taxonomy.id, :parent => @root_taxon) end - + #TODO # test add_section_piece, section_param should be added end diff --git a/spree_theme/spec/models/template_theme_duplicator_spec.rb b/spree_theme/spec/models/template_theme_duplicator_spec.rb new file mode 100644 index 00000000..6cca4ced --- /dev/null +++ b/spree_theme/spec/models/template_theme_duplicator_spec.rb @@ -0,0 +1,85 @@ +require 'spec_helper' +require 'pp' +describe Spree::TemplateThemeDuplicator, :type => :model do + let( :template_theme ){ create(:duplicatabl_template_theme) } + let!(:duplicator) { Spree::TemplateThemeDuplicator.new(template_theme)} + + let(:image) { File.open(File.expand_path('../../fixtures/qinghe.jpg', __FILE__)) } + let(:params) { {:template_theme=> template_theme, :attachment => image} } + + before(:all) do + SpreeTheme.site_class.current = create(:fake_site) + end + + it "should has page_layouts and param_values" do + template_theme.page_layouts.should be_present + template_theme.param_values.should be_present + end + + context "duplicated" do + it 'has template_theme' do + expect{duplicator.duplicate}.to change{Spree::TemplateTheme.count}.by(1) + end + + it 'has page_layout_root' do + expect(duplicator.duplicate.page_layout_root).to be_present + end + + it 'has page_layouts' do + page_layout_count = template_theme.page_layouts.count + expect{duplicator.duplicate}.to change{Spree::PageLayout.count}.by( page_layout_count ) + end + + it 'has param_values' do + param_value_count = template_theme.param_values.count + expect{duplicator.duplicate}.to change{Spree::ParamValue.count}.by( param_value_count ) + end + + it 'has param_values for each page_layout' do + duplicated_template = duplicator.duplicate + duplicated_template.page_layouts.each_with_index{|pl,index| + pl.param_values.size.should eq Spree::PageLayout.find( pl.copy_from_id).param_values.count + } + end + + it 'has no release' do + expect( duplicator.duplicate.current_template_release).to be_nil + end + + it 'has_native_layout?' do + expect( duplicator.duplicate.has_native_layout?).to be_truthy + end + end + + context 'with template files' do + before(:each) do + @template_file = Spree::TemplateFile.create(params) + end + + it "will duplciate the template files" do + # will change the count by 3, since there will be a master variant as well + expect{duplicator.duplicate}.to change{Spree::TemplateFile.count}.by(1) + end + + it "has same template files with original" do |variable| + duplicated_template = duplicator.duplicate + duplicated_template.template_files.size.should eq template_theme.template_files.size + end + + context 'with assgined template file' do + before(:each) do + template_theme.assign_resource( @template_file, template_theme.page_layout_root ) + end + + it 'should replace obsolete page_layout id' do |variable| + duplicated_template = duplicator.duplicate + new_node_ids = duplicated_template.page_layouts.collect{|node| node.id.to_s } + #{'page_layout_id'=>{"spree/taxon"=>[227]}} + duplicated_template.assigned_resource_ids.keys{| node_id | + new_node_ids.should include node_id + } + end + end + end + +end diff --git a/spree_theme/spec/models/template_theme_serialization_spec.rb b/spree_theme/spec/models/template_theme_serialization_spec.rb index 7cabea63..31afe4bb 100644 --- a/spree_theme/spec/models/template_theme_serialization_spec.rb +++ b/spree_theme/spec/models/template_theme_serialization_spec.rb @@ -1,18 +1,14 @@ require 'spec_helper' describe Spree::TemplateTheme do - let (:template) { Spree::TemplateTheme.first } - - it "could serialize&unserialize" do - serializable_data = template.serializable_data + #let (:template) { Spree::TemplateTheme.first } - new_theme = Spree::TemplateTheme.import_into_db(serializable_data) - - - page_layouts = new_theme.page_layout.self_and_descendants - - page_layouts.size.should == serializable_data['page_layouts'].size + it "could serialize&unserialize" do + #serializable_data = template.serializable_data + #new_theme = Spree::TemplateTheme.import_into_db(serializable_data) + #page_layouts = new_theme.page_layouts + #page_layouts.size.should == serializable_data['page_layouts'].size #template_file same #template.assigned_resource_ids updated for new resource_id, like template_file end -end \ No newline at end of file +end diff --git a/spree_theme/spec/models/template_theme_spec.rb b/spree_theme/spec/models/template_theme_spec.rb index 00ec37d1..4c9cefbb 100644 --- a/spree_theme/spec/models/template_theme_spec.rb +++ b/spree_theme/spec/models/template_theme_spec.rb @@ -1,172 +1,124 @@ require 'spec_helper' describe Spree::TemplateTheme do - let (:template) { Spree::TemplateTheme.first } - + let (:template) { create :template_theme } + let (:page_layout_root) { template.page_layout_root} + let (:section_root) { create :section_root } + + before(:each) do + SpreeTheme.site_class.current = create(:fake_site) + @taxon = create(:taxon) + end + + it "should has valid context" do + taxon = @taxon + template.valid_context?( page_layout_root, taxon ).should be_truthy + end + it "has document_path" do - template.document_path.should be_present + #template.original_template_theme.store.path + template.original_template_theme.should eq template end - - it "has right param_values" do - section_params = template.page_layout.self_and_descendants.map{|page_layout| - page_layout.section.self_and_descendants.map{|section| section.section_params }.flatten - }.flatten -Rails.logger.debug "section_params.size = #{section_params.size }" - template.param_values.size.should == section_params.size + + it "param_values" do + template.respond_to?(:param_values).should be_truthy end - - - it "could serialize&unserialize" do - serializable_data = template.serializable_data - expect(serializable_data).to be_an_instance_of(Hash) - temp_file = Tempfile.new ['theme', '.yml'], File.join( Rails.root, 'tmp') - temp_file.write( serializable_data.to_yaml ) - temp_file.size.should be > 0 #cause flush - File.exists?(temp_file.path).should be_true -Rails.logger.debug "temp_file=#{temp_file.size}" - Spree::TemplateTheme.import_into_db(serializable_data) - temp_file.close + + it "be destroy" do + #test destroy end it "create plain template" do - section = Spree::Section.find('root') - template = Spree::TemplateTheme.create_plain_template(section,'Template One') - + template = Spree::TemplateTheme.create_plain_template(section_root,'Template One') template.should be_an_instance_of(Spree::TemplateTheme) - template.page_layout.should be_an_instance_of(Spree::PageLayout) - template.page_layout.root?.should be_true - template.param_values.count.should be > 0 - - first_param_value = template.param_values.first - first_param_value.page_layout_id.should eq(template.page_layout.id) - first_param_value.page_layout_root_id.should eq(template.page_layout.root_id) - end - - it "should copy to new" do - copied_template = template.copy_to_new - - copied_template.page_layout_root_id.should_not eq template.page_layout_root_id - - new_node_ids = copied_template.page_layout.self_and_descendants.collect{|node| node.id } - template.assigned_resource_ids.keys{| node_id | - new_node_ids.should include node_id - } - original_page_layouts = template.page_layout.self_and_descendants - copied_template.page_layout.self_and_descendants.size.should eq original_page_layouts.size - copied_template.param_values.size.should eq template.param_values.size - - copied_template.page_layout.self_and_descendants.each_with_index{|pl,index| - pl.param_values.size.should eq original_page_layouts[index].param_values.size - pl.param_values.first.theme_id.should eq copied_template.id - } - copied_template.template_files.size.should eq template.template_files.size - copied_template.current_template_release.should be_blank - end - - it "destroy imported one" do - #template.template_releases.stub(:exists?) { true } - # release first - imported_template = template.import - imported_template.has_native_layout?.should be_false - imported_template.destroy - template.page_layout.present?.should be_true - end - - it "should get resource id" do - page_layout_tree = template.page_layout.self_and_descendants - logo = page_layout_tree.select{|pl| pl.title=='Logo'}.first - template.assigned_resource_id( Spree::TemplateFile, logo ).should be > 0 - template.assigned_resource_id( Spree::TemplateFile, logo, 1 ).should eq 0 - - end - - it "should assign resource" do - template_file = Spree::TemplateFile.first - template.assign_resource( template_file, template.page_layout ) - template.assign_resource( template_file, template.page_layout, 1 ) - template.assigned_resource_id( Spree::TemplateFile, template.page_layout ).should eq template_file.id - template.assigned_resource_id( Spree::TemplateFile, template.page_layout, 1 ).should eq template_file.id + page_layout_root.should be_an_instance_of(Spree::PageLayout) + page_layout_root.root?.should be_truthy + #TODO check param_values end - it "should unassign resource" do - template_file = Spree::TemplateFile.first - template.assign_resource( template_file, template.page_layout ) - template.unassign_resource( Spree::TemplateFile, template.page_layout ) - template.assigned_resource_id( Spree::TemplateFile, template.page_layout ).should eq 0 - - template.assigned_resources( Spree::TemplateFile, template.page_layout ).compact.should be_blank + context "assign template file" do + before(:each) do + @template_file = create(:template_file) + end + + it "should assign resource" do + template_file = @template_file + template.assign_resource( template_file, page_layout_root ) + template.assign_resource( template_file, page_layout_root, 1 ) + template.assigned_resource_id( Spree::TemplateFile, page_layout_root ).should eq template_file.id + template.assigned_resource_id( Spree::TemplateFile, page_layout_root, 1 ).should eq template_file.id + + template_resources = template.template_resources + template_resources.should be_present + end + + it "should unassign resource" do + template_file = @template_file + template.assign_resource( template_file, page_layout_root ) + template.unassign_resource( Spree::TemplateFile, page_layout_root ) + template.assigned_resource_id( Spree::TemplateFile, page_layout_root ).should eq 0 + + template.assigned_resources( Spree::TemplateFile, page_layout_root ).compact.should be_blank + end + end it "should update release id" do template_release = template.template_releases.build template_release.name = "just a test" template_release.save! - + template.reload - + template.release_id.should == template_release.id end it "should be applied" do - - template.applied?.should be_true + Spree::Store.current.update_attribute( :theme_id, template.id ) + template.applied?.should be_truthy end - - it "should be imported?" do - template.should be_imported - end - + it "assign attributes" do original_title = "it is test" theme = Spree::TemplateTheme.new(:title=>original_title) theme.attributes = {:assigned_resource_ids=>{}, :template_files=>[]} theme.title.should == original_title - end - + end + it "should be imported" do #open(File.join( SpreeTheme::Engine.root,'db', 'themes', 'template_images', 'logo.gif')) do|f| - # template_file = Spree::TemplateFile.new(:attachment=>f, :page_layout_id=>template.page_layout_root_id) + # template_file = Spree::TemplateFile.new(:attachment=>f, :page_layout_id=>template.page_layout_root_id) # new_template = template.import(:template_files => [template_file] ) # new_template.current_template_release.should be_present # new_template.should be_a_kind_of Spree::TemplateTheme - # new_template.assigned_resources( Spree::TemplateFile,template.page_layout ).should be_present + # new_template.assigned_resources( Spree::TemplateFile,page_layout_root ).should be_present #end end - - it "should unassign resource from theme after taxon destroy" do - - taxon = SpreeTheme.taxon_class.first - template.assign_resource( taxon, template.page_layout ) - taxon.taxonomy.destroy - template.reload - template.assigned_resource_id( taxon.class, template.page_layout ).should eq 0 - - end - - it "should assign specific taxon to theme" do - SpreeTheme.site_class.current = template.website - taxon = Spree::SpecificTaxon.first - template.assign_resource( taxon, template.page_layout ) - template.assigned_resource_id( taxon.class, template.page_layout ).should eq taxon.id - end - - it "should has valid context" do - SpreeTheme.site_class.current = template.website - taxon = Spree::Taxon.first - template.valid_context?( template.page_layout, taxon ).should be true - - end - - it "should has invalid context" do - SpreeTheme.site_class.current = template.website - taxon = Spree::SpecificTaxon.first - template.assign_resource( taxon, template.page_layout ) - another_taxon = Spree::Taxon.last - (taxon.id == another_taxon.id).should be false - template.valid_context?( template.page_layout, another_taxon ).should be false + + + context 'assigned specific taxon' do + before(:each) do + @specific_taxon = create(:specific_taxon) + template.assign_resource( @specific_taxon, page_layout_root ) + end + + it "should get assigned specific taxon" do + taxon = @specific_taxon + template.assigned_resource_id( taxon.class, page_layout_root ).should eq taxon.id + end + + it "should has invalid context for other taxon" do + another_taxon = @taxon + template.valid_context?( page_layout_root, another_taxon ).should be false + end + + it "should unassign resource from theme after taxon destroy" do + taxon = @taxon + template.assign_resource( taxon, page_layout_root ) + taxon.destroy + template.reload + template.assigned_resource_id( taxon.class, page_layout_root ).should eq 0 + end end - - it "should has resources" do - template_resources = template.template_resources - template_resources.should be_present - end -end \ No newline at end of file + + +end diff --git a/spree_theme/spec/models/terminal_spec.rb b/spree_theme/spec/models/terminal_spec.rb new file mode 100644 index 00000000..f8eefc00 --- /dev/null +++ b/spree_theme/spec/models/terminal_spec.rb @@ -0,0 +1,15 @@ +require 'spec_helper' + +describe Spree::UserTerminal do + let (:user_terminal) { create :user_terminal } + let (:template_theme) { create :template_theme } + #@#let (:payment_method) { create :payment_method } + + before(:each){ + SpreeTheme.site_class.current = create(:fake_site) + } + + it "should has valid association" do + template_theme.user_terminal + end +end diff --git a/spree_theme/spec/models/theme_configuration_spec.rb b/spree_theme/spec/models/theme_configuration_spec.rb deleted file mode 100644 index df867602..00000000 --- a/spree_theme/spec/models/theme_configuration_spec.rb +++ /dev/null @@ -1,9 +0,0 @@ -require 'spec_helper' -describe Spree::ThemeConfiguration, "#site_class" do - let (:config) { SpreeTheme } - it "has website class" do - - expect(config.site_class).to be_a_kind_of(Class) - expect(config.site_class.current).to be_an_instance_of(Spree::FakeWebsite) - end -end \ No newline at end of file diff --git a/spree_theme/spec/models/user_multi_login_spec.rb b/spree_theme/spec/models/user_multi_login_spec.rb new file mode 100644 index 00000000..0bd904f6 --- /dev/null +++ b/spree_theme/spec/models/user_multi_login_spec.rb @@ -0,0 +1,44 @@ +require 'rails_helper' +describe Spree::User do + + let( :valid_cellphone ) { '13012345678' } + let(:new_user){ build(:user) } + + before(:each) do + Spree::Site.current = create(:site1) + end + + context "use email as login" do + it "should create user without cellphone" do + user = new_user + user.cellphone = nil + expect{ user.save }.to change{ described_class.count}.by(1) + end + + end + + context "use cellphone as login" do + it "should create user without email" do + user = new_user + user.cellphone = valid_cellphone + user.email = nil + expect{ user.save }.to change{ described_class.count}.by(1) + end + end + + it "should not create new template file" do + #http://baike.baidu.com/view/58286.htm + #13[0-9] + #14[4,7] + #15[0-9] + #17[0] + #18[0-9] + #'13000000000' # 11 + #invalid_cellphone = '1300000000' # 10 + #'130000000000'# 12 + #user.cellphone = + #expect{ described_class.find_or_copy( @template_text ) }.to change{ described_class.count}.by(0) + end + + +end diff --git a/spree_theme/spec/spec_helper.rb b/spree_theme/spec/spec_helper.rb index 34f6d807..d1e5c2e4 100644 --- a/spree_theme/spec/spec_helper.rb +++ b/spree_theme/spec/spec_helper.rb @@ -15,6 +15,7 @@ require File.expand_path('../dummy/config/environment.rb', __FILE__) require 'rspec/rails' +require 'database_cleaner' require 'ffaker' # Requires supporting ruby files with custom matchers and macros, etc, @@ -22,26 +23,37 @@ Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f } # Requires factories defined in spree_core -require 'spree/testing_support/factories' -require 'spree/testing_support/controller_requests' require 'spree/testing_support/authorization_helpers' +require 'spree/testing_support/controller_requests' +require 'spree/testing_support/capybara_ext' +require 'spree/testing_support/factories' require 'spree/testing_support/url_helpers' +require 'spree_theme/testing_support/factories' +require 'spree_theme/testing_support/request_helpers' +require 'spree_theme/testing_support/controller_requests' + RSpec.configure do |config| config.include FactoryGirl::Syntax::Methods + # Infer an example group's spec type from the file location. + config.infer_spec_type_from_file_location! + # == URL Helpers # # Allows access to Spree's routes in specs: # # visit spree.admin_path # current_path.should eql(spree.products_path) - config.include Spree::TestingSupport::Preferences config.include Spree::TestingSupport::UrlHelpers - config.include Spree::TestingSupport::ControllerRequests - config.include Spree::TestingSupport::Flash - config.include Devise::TestHelpers, :type => :controller - config.include Rack::Test::Methods, :type => :requests + + # == Requests support + # + # Adds convenient methods to request Spree's controllers + # spree_get :index + config.include Spree::TestingSupport::ControllerRequests, type: :controller + config.include SpreeTheme::TestingSupport::ControllerRequests, type: :controller + # == Mock Framework # # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line: @@ -50,14 +62,33 @@ # config.mock_with :flexmock # config.mock_with :rr config.mock_with :rspec + config.color = true # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures - config.fixture_path = "#{::Rails.root}/spec/fixtures" + config.fixture_path = "#{SpreeTheme::Engine.root}/spec/fixtures" + + # Capybara javascript drivers require transactional fixtures set to false, and we use DatabaseCleaner + # to cleanup after each test instead. Without transactional fixtures set to false the records created + # to setup a test will be unavailable to the browser, which runs under a separate server instance. + config.use_transactional_fixtures = false + + # Ensure Suite is set to use transactions for speed. + config.before :suite do + DatabaseCleaner.strategy = :transaction + DatabaseCleaner.clean_with :truncation + end + + # Before each spec check if it is a Javascript test and switch between using database transactions or not where necessary. + config.before :each do + DatabaseCleaner.strategy = RSpec.current_example.metadata[:js] ? :truncation : :transaction + DatabaseCleaner.start + end - # If you're not using ActiveRecord, or you'd prefer not to run each of your - # examples within a transaction, remove the following line or assign false - # instead of true. - config.use_transactional_fixtures = true + # After each spec clean the database. + config.after :each do + DatabaseCleaner.clean + end config.fail_fast = ENV['FAIL_FAST'] || false + config.order = "random" end diff --git a/spree_theme/spree_theme.gemspec b/spree_theme/spree_theme.gemspec index 4da94874..ed06ff9f 100644 --- a/spree_theme/spree_theme.gemspec +++ b/spree_theme/spree_theme.gemspec @@ -5,7 +5,7 @@ Gem::Specification.new do |s| s.version = '2.4.0' s.summary = 'spree theme' s.description = 'spree theme' - s.required_ruby_version = '>= 1.9.3' + s.required_ruby_version = '>= 2.0.0' s.author = 'qinghe' s.email = 'areq22@gmail.com' @@ -16,11 +16,19 @@ Gem::Specification.new do |s| s.require_path = 'lib' s.requirements << 'none' - s.add_dependency 'spree_core', '~> 2.4.0' + s.add_dependency 'spree_core', '~> 2.4' s.add_dependency 'friendly_id' - s.add_development_dependency 'capybara' - s.add_development_dependency 'factory_girl' + s.add_dependency 'useragent' + s.add_dependency 'acts_as_commentable', '3.0.1' +# copy from https://github.com/DynamoMTL/sprangular/gemspec + s.add_development_dependency 'capybara', '~> 2.4' + s.add_development_dependency 'coffee-rails' + s.add_development_dependency 'database_cleaner' + s.add_development_dependency 'factory_girl', '~> 4.5' s.add_development_dependency 'ffaker' - s.add_development_dependency 'rspec-rails' + s.add_development_dependency 'rspec-rails', '~> 3.1' + s.add_development_dependency 'sass-rails', '~> 5.0.0.beta1' + s.add_development_dependency 'selenium-webdriver' + s.add_development_dependency 'simplecov' s.add_development_dependency 'sqlite3' end diff --git a/spree_theme/todo b/spree_theme/todo index 236867d8..2d78d8e2 100644 --- a/spree_theme/todo +++ b/spree_theme/todo @@ -1,34 +1,31 @@ #flaws -after theme release, if we modify page_layout tree, this would cause theme generating error. +after theme release, if we modify page_layout tree, this would cause theme generating error. #todos -0. go through whole process, create new template -> edit it-> release it-> other shop apply it - -*1. export template -*2. editor dock. -*2.1 promote section, demote section -*2.2 highlight counter part of preview page when hovering on section -2.3 _update_param_value.js.erb, update hover,selected param_value, client should be updated by ajax. +2.3 _update_param_value.js.erb, update hover,selected param_value, client should be updated by ajax. 3. ajax update section, no need refresh when add section into template. 4. add section cart and try add to cart. - - +5. �༭��z-index С��highlight cover, �����޷�ѡ��section +6. container ȱʡ width:100%, �ֻ�ģ����Ҫ +7. product ȱʡ width:100%, text-align:center; +8. product images in slide +9. minicart for mobile +10. �������� +11. mobile root, padding, border, margin, background #bugs -get_css 12,13,'block', it is not right in generated css. +get_css 12,13,'block', it is not right in generated css. set font-size:0, unset it does not work. set input font-color:red, unset it does not work. category 'brand' do not work. -https://github.com/spree/spree_fancy - +user logged in, click copy template until timeout, user is redirected to login form, after login again, redirect to get:template_theme/copy, this would cause error, there is only post:template_theme/copy # new features -link add margin -link add hover param, same as link -container add hover param disable taxon/post link + +click effect diff --git a/test/unit/paper_clip_test.rb b/test/unit/paper_clip_test.rb new file mode 100644 index 00000000..29f9924c --- /dev/null +++ b/test/unit/paper_clip_test.rb @@ -0,0 +1,40 @@ +#encoding: utf-8 +require 'test_helper' +class PaperclipTest < ActiveSupport::TestCase + def setup + WebMock.disable! + #@site = Spree::Site.new(:name=>'ABCD',:domain=>'www.abc.net') + end + + test "upload image to alipay oss" do + noimage_path = File.join( Rails.root, 'app', 'assets', 'images','noimage','large.png') + file = Spree::Image.new + begin + File.open( noimage_path ) do |noimage| + file.attachment = noimage + #upload to aliyun + file.save! + end + rescue => e + puts e.inspect + end + end + + test "upload taxon icon to alipay oss" do + noimage_path = File.join( Rails.root, 'app', 'assets', 'images','noimage','large.png') + file = Spree::Image.new + begin + File.open( noimage_path ) do |noimage| + file.attachment = noimage + #upload to aliyun + file.save! + end + rescue => e + puts e.inspect + end + end + + def teardown + WebMock.enable! + end +end diff --git a/test/unit/site_test.rb b/test/unit/site_test.rb index fb6249d0..5d4245d6 100644 --- a/test/unit/site_test.rb +++ b/test/unit/site_test.rb @@ -2,10 +2,10 @@ require 'test_helper' class SiteTest < ActiveSupport::TestCase setup do - @site = Spree::Site.new(:name=>'ABCD',:domain=>'www.abc.net') + @site = Spree::Site.new(:name=>'ABCD',:domain=>'www.abc.net', :email=>'test@dalianshops.com', :password=>'123456') end - + test "load samples" do @site.save! Spree::Site.current = @site @@ -13,15 +13,14 @@ class SiteTest < ActiveSupport::TestCase @site.reload assert @site.shipping_categories.present? product = @site.products.first -Rails.logger.debug "product=#{product.inspect}" assert product.shipping_category.present?, 'product has shipping category' assert product.tax_category.present?, 'product has tax category' end - - + + test "remove samples" do @site.save! - @site.load_sample + @site.load_sample @site.reload @site.unload_sample Spree::Site.current = @site @@ -36,13 +35,13 @@ class SiteTest < ActiveSupport::TestCase #zone,zone_member #state_changes end - - test "create two site and load samples for them" do - @site1 = Spree::Site.create!(:name=>'Site1',:domain=>'www.site1.net',:short_name=>'site1') - @site2 = Spree::Site.create!(:name=>'Site1',:domain=>'www.site2.net',:short_name=>'site2') - @site1.load_sample - @site2.load_sample - #product image copied and in right folder. - end - + + #test "create two site and load samples for them" do + # @site1 = Spree::Site.create!(:name=>'Site1',:domain=>'www.site1.net',:short_name=>'site1') + # @site2 = Spree::Site.create!(:name=>'Site1',:domain=>'www.site2.net',:short_name=>'site2') + # @site1.load_sample + # @site2.load_sample + # #product image copied and in right folder. + #end + end diff --git a/todos b/todos index a3676153..a9a1a8fb 100644 --- a/todos +++ b/todos @@ -1,107 +1,13 @@ -1. 中文示例数据 -2. 商店创建发布流程。 guided tour -3. 支持百度统计 -4. 查看注册网站信息 -5. 分析Rails日志, 查看错误请求。 -6. remove redundant option_values from server db. -7. css(:image_style), css(:slides), those situation is reading param_values in layout. try to remove it. -8. 在seeds 中设置产品的配送类型。否则导致产品无法更新。 -9. replace 'canonical' tag in original spree. -10. select variant in radio list. it is not working now. -https://github.com/spree/spree/issues/1906 -https://github.com/spree/spree/commit/a398bc289bb6008c177452fd1d86b652ded96dbd - -1. override spree_multi_site, should not allow user add site. -2. override spree_editor, should not allow user configure editor - -20140122 -*1. for design site, disable editor if logged in user is not admin -1. new shop no need to add taxon for each context during import theme. - a. taxon, section, page_layout has context - b. system has default taxon tree for each context, theme could use it if no taxon assigned. - - remove page_layout.current_context, fix related method - rename taxon.mtype to page_context. - move taxon routes into one place - - http://demo.david.com:3000/ account menu default taxon is not right. - http://demo.david.com:3000/ context home should be special one of list, or home have no product - section_pieces.resource length =20 - -1.1 improve spree_theme for first shop -2. prepare for import, how to handle logo image? remove upload image for now. -3. assign taxon to taxonomy name. -4. complete theme 1 -5. deploy spree_abc on vps. - -bugs -1. for unlogged customer, http://demo.david.com:3000/account would use layout 'abc_application' -*2. logged user could not design page http://design.david.com:3000/password/recover. -*3. unset container height, should remove inner height. - -4. .s_1_75 .error, should be label.error, input has class="error". - -5. fix rails r "load 'db/patch/20140329_fix_shipping_categories_site_id.rb'" -Connecting to database specified by database.yml - Spree::Preference Load (4.4ms) SELECT `spree_preferences`.* FROM `spree_preferences` WHERE `spree_preferences`.`key` = 'spree/app_configuration/show_raw_product_description/0' LIMIT 1 - (0.1ms) BEGIN - (0.3ms) UPDATE `spree_preferences` SET `value` = 1, `value_type` = 'boolean', `updated_at` = '2014-03-30 13:59:05' WHERE `spree_preferences`.`id` = 14 - (42.6ms) COMMIT - Spree::Preference Load (0.3ms) SELECT `spree_preferences`.* FROM `spree_preferences` WHERE `spree_preferences`.`key` = 'spree/multi_site_configuration/seed_dir' LIMIT 1 - (0.1ms) BEGIN - (0.3ms) UPDATE `spree_preferences` SET `value_type` = 'string', `updated_at` = '2014-03-30 13:59:05' WHERE `spree_preferences`.`id` = 15 - (45.0ms) COMMIT - Spree::Preference Load (0.3ms) SELECT `spree_preferences`.* FROM `spree_preferences` WHERE `spree_preferences`.`key` = 'spree/editor_configuration/ids' LIMIT 1 - (0.1ms) BEGIN - (0.2ms) UPDATE `spree_preferences` SET `value_type` = 'string', `updated_at` = '2014-03-30 13:59:05' WHERE `spree_preferences`.`id` = 16 -6. upload background image -ActionView::MissingTemplate (Missing template base/model_dialog with {:locale=>[:"zh-CN"], :formats=>[:js, :html], :handlers=>[:erb, :builder, :coffee, :rabl], :versions=>[:v1]}. Searched in: - * "/var/www/workspace/spree_abc/app/views" - * "/home/david/.rvm/gems/ruby-1.9.3-p448@spree_abc/bundler/gems/spree_editor-4312b29cc270/app/views" - * "/home/david/.rvm/gems/ruby-1.9.3-p448@spree_abc/gems/ckeditor-4.0.6/app/views" - * "/var/www/workspace/spree_abc/spree_china_checkout/app/views" - * "/var/www/workspace/spree_alipay/app/views" - * "/var/www/workspace/spree_abc/spree_theme/app/views" - * "/var/www/workspace/spree_abc/spree_multi_site/app/views" - * "/home/david/.rvm/gems/ruby-1.9.3-p448@spree_abc/bundler/gems/spree_auth_devise-3224869cfda1/app/views" - * "/home/david/.rvm/gems/ruby-1.9.3-p448@spree_abc/gems/devise-2.2.8/app/views" - * "/home/david/.rvm/gems/ruby-1.9.3-p448@spree_abc/bundler/gems/spree-4d7ac0b2e06d/frontend/app/views" - * "/home/david/.rvm/gems/ruby-1.9.3-p448@spree_abc/bundler/gems/spree-4d7ac0b2e06d/backend/app/views" - * "/home/david/.rvm/gems/ruby-1.9.3-p448@spree_abc/bundler/gems/spree-4d7ac0b2e06d/api/app/views" - * "/home/david/.rvm/gems/ruby-1.9.3-p448@spree_abc/bundler/gems/spree-4d7ac0b2e06d/core/app/views" - * "/home/david/.rvm/gems/ruby-1.9.3-p448@spree_abc/gems/kaminari-0.15.1/app/views" - * "/var/www/workspace/spree_abc/public/shops/development/2" - * "/var/www/workspace/spree_abc/public/shops/development/2" - * "/var/www/workspace/spree_abc" - * "/" -): - new todo ============================================================================================== -1. add feature spree_editor. - -2. https://app.shopify.com/services/signup/setup - https://shopabc-5.myshopify.com/admin/account_setup - -3. export/import theme 2. -4. show error message in checkout page. ex. can not ship. +1. store setup flow +2. docs.dalianshops.com +3. privacy_policy -5. select shop currency. use CNY -6. add site_id into shipping_categories - -7. 生成page_tag API文档 - -1. 修正 thankyou 页面 账单地址 - -2. 上传一个原图,生成两个缩略图片 - -3. 登录后安全警告。 -http://spreecommerce.com/blog/exploits-found-within-core-and-api -http://spreecommerce.com/blog/spree-1-3-1-and-1-2-3-released designer todo ============================================================================================== @@ -119,40 +25,16 @@ developer todo 1.2 demo 网站 1.3 使用协议 1.4 定价 -2. user.email unique for each site. +2. user.email unique for each site. 3. use current site mail server before send mail. 4. body:background 5. search, advance search +6. fix add order from backend. error caused by spree_flexi_variants. + it overrides method OrderContent.add which is called by /api/orders/R413483534/line_items +7. page_layout scoped root_id, site_id. copy_to_new required. sales todo =============================================================================================== 1. 市场调查 2.0 制定客户调查范围,流程 2.1 执行客户电话调查 - - -When upgrading - -Re-run the migrations generator - - rake acts_as_taggable_on_engine:install:migrations - -It will create any new migrations and skip existing ones - - -##Breaking changes: - - - ActsAsTaggableOn::Tag is not extend with ActsAsTaggableOn::Utils anymore. - Please use ActsAsTaggableOn::Utils instead -Post-install message from capistrano-stats: - Capistrano will ask you the next time you run it if you would like to share - anonymous usage statistics with the maintainance team to help guide our - development efforts. We emplore you to opt-in, but we understand if your - privacy is important to you in this regard. -Post-install message from capistrano: -Capistrano 3.1 has some breaking changes. Please check the CHANGELOG: http://goo.gl/SxB0lr - -If you're upgrading Capistrano from 2.x, we recommend to read the upgrade guide: http://goo.gl/4536kB - -The `deploy:restart` hook for passenger applications is now in a separate gem called capistrano-passenger. Just add it to your Gemfile and require it in your Capfile. -