# -*- encoding : utf-8 -*- class ImportBootstrapLayout < Card::CoreMigration def up layout = Card.fetch "Default Layout" if layout layout.name = "Classic Layout" layout.update_referencers = true layout.save! end import_json "bootstrap_layout.json"#, pristine: true, output_file: nil if layout && layout.pristine? && all = Card[:all] layout_rule_card = all.fetch trait: :layout style_rule_card = all.fetch trait: :style if layout_rule_card.pristine? && style_rule_card.pristine? layout_rule_card.update_attributes! content: '[[Default Layout]]' if style_rule_card.item_names.first == 'customized classic skin' Card.create! name: 'customized bootstrap skin', type: 'Skin', content: "[[classic bootstrap skin]]\n[[*css]]" style_rule_card.update_attributes! content: '[[customized bootstrap skin]]' else style_rule_card.update_attributes! content: '[[classic bootstrap skin]]' end end end Card.create! name: "*header+*self+*read", content: '[[Anyone]]' # merge "style: functional" and "style: standard" into "style: cards" old_func = Card[:style_functional] old_func.name = 'style: cards' old_func.codename = 'style_cards' old_func.update_referencers = true old_func.save! old_stand = Card[:style_standard] old_stand.codename = nil old_stand.delete! # these are hard-coded Card.create! name: 'theme: bootstrap_default', type_code: :css, codename: 'theme_bootstrap_default' Card.create! name: 'style: bootstrap', type_code: :css, codename: 'bootstrap_css' Card.create! name: 'style: bootstrap cards', type_code: :css, codename: 'bootstrap_cards' Card.create! name: 'style: bootstrap compatible', type_code: :scss, codename: 'style_bootstrap_compatible' Card.create! name: 'script: bootstrap', type_code: :js, codename: 'bootstrap_js' # add new setting: *default html view Card.create! name: '*default html view', type_code: :setting, codename: 'default_html_view' Card.create! name: '*default html view+*right+*default', type_code: :phrase # retain old behavior (default view was content, now titled) Card.create! name: '*all+*default html view', content: 'content' # update layouts to have explicit views in inclusions Card.search( type_id: Card::LayoutTypeID ) do |lcard| lcontent = Card::Content.new lcard.content, lcard lcontent.find_chunks( Card::Chunk::Include ).each do |nest| nest.explicit_view = (nest.options[:inc_name]=='_main' ? 'open' : 'core') end lcard.update_attributes! content: lcontent.to_s end Card::Cache.reset_global end end