card 1.15.pre → 1.15.pre2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (212) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/db/bootstrap/card_actions.yml +1039 -668
  4. data/db/bootstrap/card_acts.yml +1 -1
  5. data/db/bootstrap/card_changes.yml +3614 -2523
  6. data/db/bootstrap/card_references.yml +1401 -1163
  7. data/db/bootstrap/cards.yml +2832 -1848
  8. data/db/migrate_core_cards/20150202143810_import_bootstrap_layout.rb +58 -4
  9. data/db/migrate_core_cards/20150317162412_bootstrap_themes.rb +37 -0
  10. data/db/migrate_core_cards/data/1.12_stylesheets/traditional.scss +1 -1
  11. data/db/migrate_core_cards/data/bootstrap_layout.json +39 -24
  12. data/db/migrate_core_cards/data/skin_images.json +91 -0
  13. data/db/schema.rb +1 -1
  14. data/db/version_core_cards.txt +1 -1
  15. data/lib/card/format.rb +6 -6
  16. data/lib/card/migration.rb +7 -2
  17. data/mod/01_core/chunk/include.rb +10 -0
  18. data/mod/01_core/format/html_format.rb +2 -8
  19. data/mod/01_core/set/all/collection.rb +4 -0
  20. data/mod/01_core/set/all/states.rb +1 -1
  21. data/mod/01_core/set/all/utils.rb +3 -2
  22. data/mod/01_core/set_pattern/02_all_plus.rb +1 -1
  23. data/mod/01_core/set_pattern/04_star.rb +2 -2
  24. data/mod/01_core/set_pattern/05_rstar.rb +2 -2
  25. data/mod/01_core/set_pattern/07_type_plus_right.rb +1 -1
  26. data/mod/01_core/spec/format/html_format_spec.rb +23 -24
  27. data/mod/01_history/set/all/history.rb +6 -7
  28. data/mod/02_basic_types/set/all/all_css.rb +1 -1
  29. data/mod/02_basic_types/set/all/all_csv.rb +2 -2
  30. data/mod/02_basic_types/set/all/json.rb +1 -1
  31. data/mod/02_basic_types/set/type/plain_text.rb +1 -1
  32. data/mod/02_basic_types/set/type/pointer.rb +25 -29
  33. data/mod/03_machines/lib/javascript/wagn.js.coffee +7 -6
  34. data/mod/03_machines/lib/javascript/wagn_mod.js.coffee +2 -1
  35. data/mod/03_machines/lib/stylesheets/style_bootstrap_compatible.css +154 -0
  36. data/mod/03_machines/lib/stylesheets/{standard.scss → style_cards.scss} +260 -166
  37. data/mod/03_machines/set/self/style_bootstrap_compatible.rb +9 -0
  38. data/mod/03_machines/set/self/{style_functional.rb → style_cards.rb} +1 -1
  39. data/mod/03_machines/spec/set/type/scss_spec.rb +1 -1
  40. data/mod/04_settings/set/type/setting.rb +1 -1
  41. data/mod/05_email/set/all/notify.rb +1 -1
  42. data/mod/05_email/set/self/follow_defaults.rb +3 -3
  43. data/mod/05_standard/file/{790/icon-6419.png → credit/icon-image.png} +0 -0
  44. data/mod/05_standard/file/{790/large-6419.png → credit/large-image.png} +0 -0
  45. data/mod/05_standard/file/{790/medium-6419.png → credit/medium-image.png} +0 -0
  46. data/mod/05_standard/file/{790/original-6419.png → credit/original-image.png} +0 -0
  47. data/mod/05_standard/file/{790/small-6419.png → credit/small-image.png} +0 -0
  48. data/mod/05_standard/file/{103/icon-6566.ico → favicon/icon-image.ico} +0 -0
  49. data/mod/05_standard/file/{103/large-6566.ico → favicon/large-image.ico} +0 -0
  50. data/mod/05_standard/file/{103/medium-6566.ico → favicon/medium-image.ico} +0 -0
  51. data/mod/05_standard/file/{103/original-6566.ico → favicon/original-image.ico} +0 -0
  52. data/mod/05_standard/file/{103/small-6566.ico → favicon/small-image.ico} +0 -0
  53. data/mod/05_standard/file/{79/icon-6556.png → logo/icon-image.png} +0 -0
  54. data/mod/05_standard/file/{79/large-6556.png → logo/large-image.png} +0 -0
  55. data/mod/05_standard/file/{79/medium-6556.png → logo/medium-image.png} +0 -0
  56. data/mod/05_standard/file/{79/original-6556.png → logo/original-image.png} +0 -0
  57. data/mod/05_standard/file/{79/small-6556.png → logo/small-image.png} +0 -0
  58. data/mod/05_standard/set/all/attach.rb +8 -10
  59. data/mod/05_standard/set/all/comment.rb +1 -1
  60. data/mod/05_standard/set/all/error.rb +1 -1
  61. data/mod/05_standard/set/all/rich_html/content.rb +14 -2
  62. data/mod/05_standard/set/all/rich_html/editing.rb +19 -18
  63. data/mod/05_standard/set/all/rich_html/form.rb +38 -47
  64. data/mod/05_standard/set/all/rich_html/header.rb +37 -14
  65. data/mod/05_standard/set/all/rich_html/wrapper.rb +3 -3
  66. data/mod/05_standard/set/rstar/rules.rb +18 -18
  67. data/mod/05_standard/set/self/account_links.rb +6 -18
  68. data/mod/05_standard/set/self/navbox.rb +23 -10
  69. data/mod/05_standard/set/self/recent.rb +1 -1
  70. data/mod/05_standard/set/self/signin.rb +6 -3
  71. data/mod/05_standard/set/type/cardtype.rb +1 -1
  72. data/mod/05_standard/set/type/html.rb +1 -1
  73. data/mod/05_standard/set/type/search_type.rb +76 -54
  74. data/mod/05_standard/set/type/signup.rb +5 -5
  75. data/mod/05_standard/set/type/user.rb +4 -4
  76. data/mod/05_standard/spec/set/all/rich_html/wrapper_spec.rb +2 -2
  77. data/mod/05_standard/spec/set/self/account_links_spec.rb +1 -1
  78. data/mod/06_bootstrap/file/cerulean_skin/icon-image.png +0 -0
  79. data/mod/06_bootstrap/file/cerulean_skin/large-image.png +0 -0
  80. data/mod/06_bootstrap/file/cerulean_skin/medium-image.png +0 -0
  81. data/mod/06_bootstrap/file/cerulean_skin/original-image.png +0 -0
  82. data/mod/06_bootstrap/file/cerulean_skin/small-image.png +0 -0
  83. data/mod/06_bootstrap/file/cosmo_skin/icon-image.png +0 -0
  84. data/mod/06_bootstrap/file/cosmo_skin/large-image.png +0 -0
  85. data/mod/06_bootstrap/file/cosmo_skin/medium-image.png +0 -0
  86. data/mod/06_bootstrap/file/cosmo_skin/original-image.png +0 -0
  87. data/mod/06_bootstrap/file/cosmo_skin/small-image.png +0 -0
  88. data/mod/06_bootstrap/file/cyborg_skin/icon-image.png +0 -0
  89. data/mod/06_bootstrap/file/cyborg_skin/large-image.png +0 -0
  90. data/mod/06_bootstrap/file/cyborg_skin/medium-image.png +0 -0
  91. data/mod/06_bootstrap/file/cyborg_skin/original-image.png +0 -0
  92. data/mod/06_bootstrap/file/cyborg_skin/small-image.png +0 -0
  93. data/mod/06_bootstrap/file/darkly_skin/icon-image.png +0 -0
  94. data/mod/06_bootstrap/file/darkly_skin/large-image.png +0 -0
  95. data/mod/06_bootstrap/file/darkly_skin/medium-image.png +0 -0
  96. data/mod/06_bootstrap/file/darkly_skin/original-image.png +0 -0
  97. data/mod/06_bootstrap/file/darkly_skin/small-image.png +0 -0
  98. data/mod/06_bootstrap/file/flatly_skin/icon-image.png +0 -0
  99. data/mod/06_bootstrap/file/flatly_skin/large-image.png +0 -0
  100. data/mod/06_bootstrap/file/flatly_skin/medium-image.png +0 -0
  101. data/mod/06_bootstrap/file/flatly_skin/original-image.png +0 -0
  102. data/mod/06_bootstrap/file/flatly_skin/small-image.png +0 -0
  103. data/mod/06_bootstrap/file/journal_skin/icon-image.png +0 -0
  104. data/mod/06_bootstrap/file/journal_skin/large-image.png +0 -0
  105. data/mod/06_bootstrap/file/journal_skin/medium-image.png +0 -0
  106. data/mod/06_bootstrap/file/journal_skin/original-image.png +0 -0
  107. data/mod/06_bootstrap/file/journal_skin/small-image.png +0 -0
  108. data/mod/06_bootstrap/file/lumen_skin/icon-image.png +0 -0
  109. data/mod/06_bootstrap/file/lumen_skin/large-image.png +0 -0
  110. data/mod/06_bootstrap/file/lumen_skin/medium-image.png +0 -0
  111. data/mod/06_bootstrap/file/lumen_skin/original-image.png +0 -0
  112. data/mod/06_bootstrap/file/lumen_skin/small-image.png +0 -0
  113. data/mod/06_bootstrap/file/paper_skin/icon-image.png +0 -0
  114. data/mod/06_bootstrap/file/paper_skin/large-image.png +0 -0
  115. data/mod/06_bootstrap/file/paper_skin/medium-image.png +0 -0
  116. data/mod/06_bootstrap/file/paper_skin/original-image.png +0 -0
  117. data/mod/06_bootstrap/file/paper_skin/small-image.png +0 -0
  118. data/mod/06_bootstrap/file/readable_skin/icon-image.png +0 -0
  119. data/mod/06_bootstrap/file/readable_skin/large-image.png +0 -0
  120. data/mod/06_bootstrap/file/readable_skin/medium-image.png +0 -0
  121. data/mod/06_bootstrap/file/readable_skin/original-image.png +0 -0
  122. data/mod/06_bootstrap/file/readable_skin/small-image.png +0 -0
  123. data/mod/06_bootstrap/file/sandstone_skin/icon-image.png +0 -0
  124. data/mod/06_bootstrap/file/sandstone_skin/large-image.png +0 -0
  125. data/mod/06_bootstrap/file/sandstone_skin/medium-image.png +0 -0
  126. data/mod/06_bootstrap/file/sandstone_skin/original-image.png +0 -0
  127. data/mod/06_bootstrap/file/sandstone_skin/small-image.png +0 -0
  128. data/mod/06_bootstrap/file/simplex_skin/icon-image.png +0 -0
  129. data/mod/06_bootstrap/file/simplex_skin/large-image.png +0 -0
  130. data/mod/06_bootstrap/file/simplex_skin/medium-image.png +0 -0
  131. data/mod/06_bootstrap/file/simplex_skin/original-image.png +0 -0
  132. data/mod/06_bootstrap/file/simplex_skin/small-image.png +0 -0
  133. data/mod/06_bootstrap/file/slate_skin/icon-image.png +0 -0
  134. data/mod/06_bootstrap/file/slate_skin/large-image.png +0 -0
  135. data/mod/06_bootstrap/file/slate_skin/medium-image.png +0 -0
  136. data/mod/06_bootstrap/file/slate_skin/original-image.png +0 -0
  137. data/mod/06_bootstrap/file/slate_skin/small-image.png +0 -0
  138. data/mod/06_bootstrap/file/spacelab_skin/icon-image.png +0 -0
  139. data/mod/06_bootstrap/file/spacelab_skin/large-image.png +0 -0
  140. data/mod/06_bootstrap/file/spacelab_skin/medium-image.png +0 -0
  141. data/mod/06_bootstrap/file/spacelab_skin/original-image.png +0 -0
  142. data/mod/06_bootstrap/file/spacelab_skin/small-image.png +0 -0
  143. data/mod/06_bootstrap/file/superhero_skin/icon-image.png +0 -0
  144. data/mod/06_bootstrap/file/superhero_skin/large-image.png +0 -0
  145. data/mod/06_bootstrap/file/superhero_skin/medium-image.png +0 -0
  146. data/mod/06_bootstrap/file/superhero_skin/original-image.png +0 -0
  147. data/mod/06_bootstrap/file/superhero_skin/small-image.png +0 -0
  148. data/mod/06_bootstrap/file/united_skin/icon-image.png +0 -0
  149. data/mod/06_bootstrap/file/united_skin/large-image.png +0 -0
  150. data/mod/06_bootstrap/file/united_skin/medium-image.png +0 -0
  151. data/mod/06_bootstrap/file/united_skin/original-image.png +0 -0
  152. data/mod/06_bootstrap/file/united_skin/small-image.png +0 -0
  153. data/mod/06_bootstrap/file/yeti_skin/icon-image.png +0 -0
  154. data/mod/06_bootstrap/file/yeti_skin/large-image.png +0 -0
  155. data/mod/06_bootstrap/file/yeti_skin/medium-image.png +0 -0
  156. data/mod/06_bootstrap/file/yeti_skin/original-image.png +0 -0
  157. data/mod/06_bootstrap/file/yeti_skin/small-image.png +0 -0
  158. data/mod/06_bootstrap/lib/stylesheets/bootstrap_cards.scss +199 -0
  159. data/mod/06_bootstrap/lib/stylesheets/{bootstrap.css → bootstrap_css.css} +0 -0
  160. data/mod/06_bootstrap/lib/stylesheets/theme_amelia.css +5871 -0
  161. data/mod/06_bootstrap/lib/stylesheets/{bootstrap-theme.css → theme_bootstrap_default.css} +0 -0
  162. data/mod/06_bootstrap/lib/stylesheets/theme_cerulean.css +5893 -0
  163. data/mod/06_bootstrap/lib/stylesheets/theme_cosmo.css +5898 -0
  164. data/mod/06_bootstrap/lib/stylesheets/theme_cyborg.css +5876 -0
  165. data/mod/06_bootstrap/lib/stylesheets/theme_darkly.css +5986 -0
  166. data/mod/06_bootstrap/lib/stylesheets/{darkly.css → theme_flatly.css} +574 -327
  167. data/mod/06_bootstrap/lib/stylesheets/theme_holo.css +183 -0
  168. data/mod/06_bootstrap/lib/stylesheets/theme_journal.css +6647 -0
  169. data/mod/06_bootstrap/lib/stylesheets/theme_lumen.css +6097 -0
  170. data/mod/06_bootstrap/lib/stylesheets/theme_paper.css +6647 -0
  171. data/mod/06_bootstrap/lib/stylesheets/theme_readable.css +5896 -0
  172. data/mod/06_bootstrap/lib/stylesheets/theme_sandstone.css +6733 -0
  173. data/mod/06_bootstrap/lib/stylesheets/theme_simplex.css +5886 -0
  174. data/mod/06_bootstrap/lib/stylesheets/theme_slate.css +7057 -0
  175. data/mod/06_bootstrap/lib/stylesheets/theme_spacelab.css +5935 -0
  176. data/mod/06_bootstrap/lib/stylesheets/theme_superhero.css +5964 -0
  177. data/mod/06_bootstrap/lib/stylesheets/theme_united.css +6588 -0
  178. data/mod/06_bootstrap/lib/stylesheets/theme_yeti.css +6088 -0
  179. data/mod/06_bootstrap/set/all/rich_bootstrap.rb +0 -16
  180. data/mod/06_bootstrap/set/self/bootstrap_cards.rb +9 -0
  181. data/mod/06_bootstrap/set/self/bootstrap_css.rb +5 -3
  182. data/mod/06_bootstrap/set/self/theme_bootstrap_default.rb +2 -0
  183. data/mod/06_bootstrap/set/self/theme_cerulean.rb +2 -0
  184. data/mod/06_bootstrap/set/self/theme_cosmo.rb +2 -0
  185. data/mod/06_bootstrap/set/self/theme_cyborg.rb +2 -0
  186. data/mod/06_bootstrap/set/self/theme_darkly.rb +2 -0
  187. data/mod/06_bootstrap/set/self/theme_flatly.rb +2 -0
  188. data/mod/06_bootstrap/set/self/theme_journal.rb +2 -0
  189. data/mod/06_bootstrap/set/self/theme_lumen.rb +2 -0
  190. data/mod/06_bootstrap/set/self/theme_paper.rb +2 -0
  191. data/mod/06_bootstrap/set/self/theme_readable.rb +2 -0
  192. data/mod/06_bootstrap/set/self/theme_sandstone.rb +2 -0
  193. data/mod/06_bootstrap/set/self/theme_simplex.rb +2 -0
  194. data/mod/06_bootstrap/set/self/theme_slate.rb +2 -0
  195. data/mod/06_bootstrap/set/self/theme_spacelab.rb +2 -0
  196. data/mod/06_bootstrap/set/self/theme_superhero.rb +2 -0
  197. data/mod/06_bootstrap/set/self/theme_united.rb +2 -0
  198. data/mod/06_bootstrap/set/self/theme_yeti.rb +2 -0
  199. data/test/fixtures/card_actions.yml +1951 -1580
  200. data/test/fixtures/card_acts.yml +282 -282
  201. data/test/fixtures/card_changes.yml +6769 -5678
  202. data/test/fixtures/card_references.yml +2086 -1848
  203. data/test/fixtures/cards.yml +4167 -3183
  204. metadata +142 -30
  205. data/mod/03_machines/lib/stylesheets/functional.scss +0 -184
  206. data/mod/03_machines/set/self/style_standard.rb +0 -8
  207. data/mod/03_machines/spec/set/self/style_functional_spec.rb +0 -5
  208. data/mod/03_machines/spec/set/self/style_standard_spec.rb +0 -5
  209. data/mod/06_bootstrap/set/all/bootstrap/header.rb +0 -29
  210. data/mod/06_bootstrap/set/self/bootstrap_theme_css.rb +0 -7
  211. data/mod/06_bootstrap/set/self/navbox.rb +0 -32
  212. data/mod/06_bootstrap/set/type/search_type.rb +0 -79
@@ -0,0 +1,9 @@
1
+ view :raw do |args|
2
+ File.read "#{Cardio.gem_root}/mod/03_machines/lib/stylesheets/#{card.codename}.css"
3
+ end
4
+
5
+ format :html do
6
+ view :editor do |args|
7
+ "Content is stored in file and can't be edited."
8
+ end
9
+ end
@@ -1,6 +1,6 @@
1
1
 
2
2
  view :raw do |args|
3
- File.read "#{Cardio.gem_root}/mod/03_machines/lib/stylesheets/functional.scss"
3
+ File.read "#{Cardio.gem_root}/mod/03_machines/lib/stylesheets/style_cards.scss"
4
4
  end
5
5
 
6
6
  view :editor do |args|
@@ -16,7 +16,7 @@ describe Card::Set::Type::Scss do
16
16
  }
17
17
  let(:compressed_changed_css) { "a{color:#fedcba}\n" }
18
18
  before do
19
- @scss_card = Card[:style_functional]
19
+ @scss_card = Card[:style_cards]
20
20
  end
21
21
 
22
22
 
@@ -72,7 +72,7 @@ view :core do |args|
72
72
  end
73
73
 
74
74
  view :rule_help do |args|
75
- %{<div class="instruction">#{process_content_object "{{+*right+*help}}"}</div>}
75
+ %{<div class="alert alert-info">#{process_content_object "{{+*right+*help}}"}</div>}
76
76
  end
77
77
 
78
78
 
@@ -139,7 +139,7 @@ format do
139
139
  if args[:followed_set] && (set_card = Card.fetch(args[:followed_set])) && args[:follow_option] && args[:follower]
140
140
  rule_name = set_card.follow_rule_name args[:follower]
141
141
  target_name = "#{args[:follower]}+#{Card[:follow].name}"
142
- update_path = page_path target_name, :path_opts=>{:action=>:update}, :card=>{:subcards=>{rule_name=>Card[:never].name}}
142
+ update_path = page_path target_name, :action=>:update, :card=>{:subcards=>{rule_name=>Card[:never].name}}
143
143
  card_url update_path # absolutize path
144
144
  end
145
145
  end
@@ -31,9 +31,9 @@ format :html do
31
31
  view :edit, :perms=>:update, :tags=>:unknown_ok do |args|
32
32
  frame_and_form :update, args do
33
33
  [
34
- _optional_render( :content_fieldsets, args ),
34
+ _optional_render( :content_formgroups, args ),
35
35
  _optional_render( :confirm_update_all, args ),
36
- _optional_render( :button_fieldset, args )
36
+ _optional_render( :button_formgroup, args )
37
37
  ]
38
38
  end
39
39
  end
@@ -41,7 +41,7 @@ format :html do
41
41
 
42
42
  view :confirm_update_all do |args|
43
43
  wrap args do
44
- alert 'info'do
44
+ alert 'info' do
45
45
  %{
46
46
  <h1>Are you sure you want to change the default follow rules?</h1>
47
47
  <p>You may choose to update all existing users. This may take a while. </p>
@@ -96,8 +96,8 @@ def self.included(base)
96
96
 
97
97
  has_attached_file :attach, :preserve_files=>true,
98
98
  :default_url => "missing",
99
- :url => ":file_path/:basename-:size:action_id.:extension",
100
- :path => ":local/:card_id/:size:action_id.:extension",
99
+ :url => ":web_dir/:basename-:size:action_id.:extension",
100
+ :path => ":system_path.:extension",
101
101
  :styles => { :icon => '16x16#', :small => '75x75',
102
102
  :medium => '200x200>', :large => '500x500>' }
103
103
 
@@ -120,23 +120,21 @@ module Paperclip::Interpolations
120
120
 
121
121
  extend Card::Format::Location
122
122
 
123
- def local at, style_name
123
+ def system_path at, style
124
+ card = at.instance
124
125
  if mod = at.instance.attach_mod
125
126
  # generalize this to work with any mod (needs design)
126
- "#{Cardio.gem_root}/mod/#{mod}/file"
127
+ codecard = card.cardname.junction? ? card.left : card
128
+ "#{ Cardio.gem_root}/mod/#{mod}/file/#{codecard.codename}/#{size at, style}#{card.type_code}"
127
129
  else
128
- Card.paths['files'].existent.first
130
+ "#{ Card.paths['files'].existent.first }/#{card.id}/#{size at, style}#{action_id at, style}"
129
131
  end
130
132
  end
131
133
 
132
- def file_path at, style_name
134
+ def web_dir at, style_name
133
135
  card_path Card.config.files_web_path
134
136
  end
135
137
 
136
- def card_id at, style_name
137
- at.instance.id
138
- end
139
-
140
138
  def basename at, style_name
141
139
  at.instance.name.to_name.url_key
142
140
  end
@@ -31,7 +31,7 @@ view( :comment_box, :denial=>:blank, :tags=>:unknown_ok, :perms=>lambda { |r| r.
31
31
  %{<label>My Name is:</label> #{ text_field :comment_author }}
32
32
  end
33
33
  }
34
- <input type="submit" value="Comment"/>
34
+ #{ button_tag 'Comment', :type=>:submit, :disable_with=>"Commenting" }
35
35
  </div>
36
36
  }
37
37
  end}
@@ -68,7 +68,7 @@ format :html do
68
68
  error_cardname
69
69
  end
70
70
 
71
- content_tag :span, :class=>'render-error' do
71
+ content_tag :span, :class=>'render-error alert alert-danger' do
72
72
  [
73
73
  'error rendering',
74
74
  details,
@@ -18,13 +18,24 @@ format :html do
18
18
  end
19
19
 
20
20
  view :content do |args|
21
- wrap args.merge(:slot_class=>'card-content') do
21
+ wrap args.reverse_merge(:slot_class=>'card-content') do
22
22
  [
23
23
  _optional_render( :menu, args, :hide ),
24
24
  _render_core( args )
25
25
  ]
26
26
  end
27
27
  end
28
+
29
+ view :content_panel do |args|
30
+ wrap args.reverse_merge(:slot_class=>'card-content panel panel-default') do
31
+ wrap_with :div, :class=>'panel-body' do
32
+ [
33
+ _optional_render( :menu, args, :hide ),
34
+ _render_core( args )
35
+ ]*"\n"
36
+ end
37
+ end
38
+ end
28
39
 
29
40
  view :titled, :tags=>:comment do |args|
30
41
  wrap args do
@@ -142,7 +153,8 @@ format :html do
142
153
  end
143
154
  end
144
155
  end
145
- %{<div class="instruction">#{raw text}</div>} if text
156
+ klass = [args[:help_class], 'help-text'].compact*' '
157
+ %{<div class="#{klass}">#{raw text}</div>} if text
146
158
  end
147
159
 
148
160
 
@@ -4,10 +4,10 @@ format :html do
4
4
  view :new, :perms=>:create, :tags=>:unknown_ok do |args|
5
5
  frame_and_form :create, args, 'main-success'=>'REDIRECT' do
6
6
  [
7
- _optional_render( :name_fieldset, args ),
8
- _optional_render( :type_fieldset, args ),
9
- _optional_render( :content_fieldsets, args ),
10
- _optional_render( :button_fieldset, args )
7
+ _optional_render( :name_formgroup, args ),
8
+ _optional_render( :type_formgroup, args ),
9
+ _optional_render( :content_formgroups, args ),
10
+ _optional_render( :button_formgroup, args )
11
11
  ]
12
12
  end
13
13
  end
@@ -30,10 +30,10 @@ format :html do
30
30
  unless card.rule_card :autoname
31
31
  # prompt for name
32
32
  hidden[:name_prompt] = true unless hidden.has_key? :name_prompt
33
- args[:optional_name_fieldset] ||= :show
33
+ args[:optional_name_formgroup] ||= :show
34
34
  end
35
35
  end
36
- args[:optional_name_fieldset] ||= :hide
36
+ args[:optional_name_formgroup] ||= :hide
37
37
 
38
38
 
39
39
  # type field
@@ -41,10 +41,10 @@ format :html do
41
41
  ( main? || card.simple? || card.is_template? ) and
42
42
  Card.new( :type_id=>card.type_id ).ok? :create #otherwise current type won't be on menu
43
43
  )
44
- args[:optional_type_fieldset] = :show
44
+ args[:optional_type_formgroup] = :show
45
45
  else
46
46
  hidden[:card][:type_id] ||= card.type_id
47
- args[:optional_type_fieldset] = :hide
47
+ args[:optional_type_formgroup] = :hide
48
48
  end
49
49
 
50
50
 
@@ -65,8 +65,8 @@ format :html do
65
65
  view :edit, :perms=>:update, :tags=>:unknown_ok do |args|
66
66
  frame_and_form :update, args do
67
67
  [
68
- _optional_render( :content_fieldsets, args ),
69
- _optional_render( :button_fieldset, args )
68
+ _optional_render( :content_formgroups, args ),
69
+ _optional_render( :button_formgroup, args )
70
70
  ]
71
71
  end
72
72
  end
@@ -83,20 +83,20 @@ format :html do
83
83
  view :edit_name, :perms=>:update do |args|
84
84
  frame_and_form( { :action=>:update, :id=>card.id }, args, 'main-success'=>'REDIRECT' ) do
85
85
  [
86
- _render_name_fieldset( args ),
86
+ _render_name_formgroup( args ),
87
87
  _optional_render( :confirm_rename, args ),
88
- _optional_render( :button_fieldset, args )
88
+ _optional_render( :button_formgroup, args )
89
89
  ]
90
90
  end
91
91
  end
92
-
92
+
93
93
  view :confirm_rename do |args|
94
94
  referers = args[:referers]
95
95
  dependents = card.dependents
96
- wrap args do
96
+ alert 'warning' do
97
97
  %{
98
- <h1>Are you sure you want to rename <em>#{card.name}</em>?</h1>
99
- #{ %{ <h2>This change will...</h2> } if referers.any? || dependents.any? }
98
+ <h5>Are you sure you want to rename <em>#{card.name}</em>?</h5>
99
+ #{ %{ <h6>This change will...</h6> } if referers.any? || dependents.any? }
100
100
  <ul>
101
101
  #{ %{<li>automatically alter #{ dependents.size } related name(s). } if dependents.any? }
102
102
  #{ %{<li>affect at least #{referers.size} reference(s) to "#{card.name}".} if referers.any? }
@@ -106,6 +106,7 @@ format :html do
106
106
  end
107
107
  end
108
108
 
109
+
109
110
  def default_edit_name_args args
110
111
  referers = args[:referers] = card.extended_referencers
111
112
  args[:hidden] ||= {}
@@ -128,8 +129,8 @@ format :html do
128
129
  frame_and_form :update, args do
129
130
  #'main-success'=>'REDIRECT: _self', # adding this back in would make main cards redirect on cardtype changes
130
131
  [
131
- _render_type_fieldset( args ),
132
- optional_render( :button_fieldset, args )
132
+ _render_type_formgroup( args ),
133
+ optional_render( :button_formgroup, args )
133
134
  ]
134
135
  end
135
136
  end
@@ -14,9 +14,9 @@ format :html do
14
14
  # single-card edit mode
15
15
  field = content_field form, args
16
16
 
17
- if [ args[:optional_type_fieldset], args[:optional_name_fieldset] ].member? :show
18
- # display content field in fieldset for consistency with other fields
19
- fieldset '', field, :editor=>:content
17
+ if [ args[:optional_type_formgroup], args[:optional_name_formgroup] ].member? :show
18
+ # display content field in formgroup for consistency with other fields
19
+ formgroup '', field, :editor=>:content
20
20
  else
21
21
  editor_wrap( :content ) { field }
22
22
  end
@@ -70,26 +70,27 @@ format :html do
70
70
  content_tag( :div, :class=>"editor#{ " #{type}-editor" if type }" ) { yield }
71
71
  end
72
72
 
73
- def fieldset title, content, opts={}
74
- if attribs = opts[:attribs]
75
- attrib_string = attribs.keys.map do |key|
76
- %{#{key}="#{attribs[key]}"}
77
- end * ' '
78
- end
79
- help_text = case opts[:help]
80
- when String ; _render_help :help_text=> opts[:help]
81
- when true ; _render_help
73
+ def formgroup title, content, opts={}
74
+ help_text =
75
+ case opts[:help]
76
+ when String ; _render_help :help_class=>'help-block', :help_text=> opts[:help]
77
+ when true ; _render_help :help_class=>'help-block'
82
78
  else ; nil
79
+ end
80
+
81
+ div_args = { :class=>['form-group', opts[:class]].compact*' ' }
82
+ div_args[:card_id ] = card.id if card.real?
83
+ div_args[:card_name] = h card.name if card.name.present?
84
+
85
+ wrap_with :div, div_args do
86
+ %{
87
+ <label>#{ title }</label>
88
+ <div>
89
+ #{ editor_wrap( opts[:editor] ) { content } }
90
+ #{ help_text }
91
+ </div>
92
+ }
83
93
  end
84
- %{
85
- <fieldset #{ attrib_string }>
86
- <legend>
87
- <h2>#{ title }</h2>
88
- #{ help_text }
89
- </legend>
90
- #{ editor_wrap( opts[:editor] ) { content } }
91
- </fieldset>
92
- }
93
94
  end
94
95
 
95
96
  def hidden_tags hash, base=nil
@@ -110,35 +111,29 @@ format :html do
110
111
 
111
112
  # FIELDSET VIEWS
112
113
 
113
- view :name_fieldset do |args|
114
- fieldset 'name', raw( name_field form ), :editor=>'name', :help=>args[:help]
114
+ view :name_formgroup do |args|
115
+ formgroup 'name', raw( name_field form ), :editor=>'name', :help=>args[:help]
115
116
  end
116
117
 
117
- view :type_fieldset do |args|
118
+ view :type_formgroup do |args|
118
119
  field = if args[:variety] == :edit #FIXME dislike this api -ef
119
120
  type_field :class=>'type-field edit-type-field'
120
121
  else
121
122
  type_field :class=>"type-field live-type-field", :href=>path(:view=>:new), 'data-remote'=>true
122
123
  end
123
- fieldset 'type', field, :editor => 'type', :attribs => { :class=>'type-fieldset'}
124
+ formgroup 'type', field, :editor => 'type', :class=>'type-formgroup'
124
125
  end
125
126
 
126
127
 
127
- view :button_fieldset do |args|
128
- %{
129
- <fieldset>
130
- <div class="button-area">
131
- #{ args[:buttons] }
132
- </div>
133
- </fieldset>
134
- }
128
+ view :button_formgroup do |args|
129
+ %{<div class="form-group"><div>#{ args[:buttons] }</div></div>}
135
130
  end
136
131
 
137
- view :content_fieldsets do |args|
132
+ view :content_formgroups do |args|
138
133
  raw %{
139
- <div class="card-editor editor">
134
+ <fieldset class="card-editor editor">
140
135
  #{ edit_slot args }
141
- </div>
136
+ </fieldset>
142
137
  }
143
138
  end
144
139
 
@@ -184,23 +179,19 @@ format :html do
184
179
  # FIELD VIEWS
185
180
 
186
181
  view :editor do |args|
187
- text_area :content, :rows=>3, :class=>'tinymce-textarea card-content', :id=>unique_id
182
+ text_area :content, :rows=>3, :class=>'tinymce-textarea card-content', :id=>unique_id, "data-card-type-code"=>card.type_code
188
183
  end
189
184
 
190
-
191
185
  view :edit_in_form, :perms=>:update, :tags=>:unknown_ok do |args|
192
186
  eform = form_for_multi
187
+
193
188
  content = content_field eform, args.merge( :nested=>true )
194
- opts = { :editor=>'content', :help=>true, :attribs =>
195
- { :class=> "card-editor RIGHT-#{ card.cardname.tag_name.safe_key }" }
196
- }
197
- if card.new_card?
198
- content += raw( "\n #{ eform.hidden_field :type_id }" )
199
- else
200
- opts[:attribs].merge! :card_id=>card.id, :card_name=>(h card.name)
201
- end
189
+ opts = { :editor=>'content', :help=>true, :class=>'card-editor' }
190
+
191
+ content += raw( "\n #{ eform.hidden_field :type_id }" ) if card.new_card?
192
+ opts[:class] += " RIGHT-#{ card.cardname.tag_name.safe_key }" if card.cardname.junction?
202
193
 
203
- fieldset fancy_title( args[:title] ), content, opts
194
+ formgroup fancy_title( args[:title] ), content, opts
204
195
  end
205
196
 
206
197
  def process_relative_tags args
@@ -1,22 +1,27 @@
1
1
  format :html do
2
-
3
- view :toggle do |args|
4
- verb, adjective, direction = ( args[:toggle_mode] == :close ? %w{ open open e } : %w{ close closed s } )
5
-
6
- view_link '', adjective, :title => "#{verb} #{card.name}",
7
- :class => "#{verb}-icon ui-icon ui-icon-circle-triangle-#{direction} toggler slotter nodblclick"
8
- end
9
-
10
2
 
11
3
  view :header do |args|
12
4
  %{
13
- <h1 class="card-header">
14
- #{ _optional_render :toggle, args, :hide }
15
- #{ _optional_render :title, args }
5
+ <div class="card-header #{ args[:header_class] }">
6
+ <div class="card-header-title #{ args[:title_class] }">
7
+ #{ _optional_render :toggle, args, :hide }
8
+ #{ _optional_render :title, args }
9
+ </div>
16
10
  #{ _optional_render :menu, args }
17
- </h1>
11
+ </div>
18
12
  }
19
13
  end
14
+
15
+ view :toggle do |args|
16
+ verb, adjective, direction = ( args[:toggle_mode] == :close ? %w{ open open expand } : %w{ close closed collapse-down } )
17
+
18
+ link_to glyphicon(direction), #content_tag(:span, '', :class=>"glyphicon glyphicon-#{direction}"),
19
+ path( :view=>adjective ),
20
+ :remote => true,
21
+ :title => "#{verb} #{card.name}",
22
+ :class => "#{verb}-icon toggler slotter nodblclick"
23
+ end
24
+
20
25
 
21
26
  view :menu, :tags=>:unknown_ok do |args|
22
27
  return _render_template_closer if args[:menu_hack] == :template_closer
@@ -54,11 +59,29 @@ format :html do
54
59
  end
55
60
 
56
61
  view :menu_link do |args|
57
- '<a class="ui-icon ui-icon-gear"></a>'
62
+ glyphicon 'cog'
63
+ end
64
+
65
+ view :link_list do |args|
66
+ content_tag :ul, :class=>args[:class] do
67
+ item_links(args).map do |al|
68
+ content_tag :li, raw(al)
69
+ end.join "\n"
70
+ end
58
71
  end
59
-
72
+
73
+ view :navbar_right do |args|
74
+ render_link_list args.merge(:class=>"nav navbar-nav navbar-right")
75
+ end
76
+
77
+ view :navbar_left do |args|
78
+ render_link_list args.merge(:class=>"nav navbar-nav navbar-left")
79
+ end
80
+
60
81
  def show_follow?
61
82
  Auth.signed_in? && !card.new_card?
62
83
  end
84
+
85
+
63
86
  end
64
87