card 1.15.pre → 1.15.pre2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
@@ -25,7 +25,7 @@ format :html do
25
25
  card.safe_set_keys
26
26
  ].compact
27
27
 
28
- div = %{<div id="#{card.cardname.url_key}" data-card-id="#{card.id}" data-card-name="#{h card.name}" data-card-type-code="#{card.type_code}" style="#{h args[:style]}" class="#{classes*' '}" } +
28
+ div = %{<div id="#{card.cardname.url_key}" data-card-id="#{card.id}" data-card-name="#{h card.name}" style="#{h args[:style]}" class="#{classes*' '}" } +
29
29
  %{data-slot='#{html_escape_except_quotes slot_options( args )}'>#{ output yield }</div>}
30
30
 
31
31
  if params[:debug] == 'slot' && !tagged( @current_view, :no_wrap_comments )
@@ -52,7 +52,7 @@ format :html do
52
52
  %{
53
53
  #{ _render_header args }
54
54
  #{ %{ <div class="card-subheader">#{ args[:subheader] }</div> } if args[:subheader] }
55
- #{ _optional_render :help, args, :hide }
55
+ #{ _optional_render :help, args.merge(:help_class=>'alert alert-info'), :hide }
56
56
  #{ wrap_body args do output( yield args ) end }
57
57
  }
58
58
  end
@@ -90,7 +90,7 @@ format :html do
90
90
 
91
91
  def wrap_with tag, html_args={}
92
92
  content_tag( tag, html_args ) do
93
- output( yield )
93
+ output( yield ).html_safe
94
94
  end
95
95
  end
96
96
 
@@ -64,7 +64,7 @@ format :html do
64
64
  #{ card_link setting_name, :text=>"all #{setting_name} rules", :class=>'setting-link', :target=>'wagn_setting' }
65
65
  </div>
66
66
 
67
- <div class="instruction rule-instruction">
67
+ <div class="alert alert-info rule-instruction">
68
68
  #{ process_content "{{#{setting_name}+*right+*help}}" }
69
69
  </div>
70
70
 
@@ -110,7 +110,7 @@ format :html do
110
110
  {:class=>"card-form card-rule-form slotter" } do |form|
111
111
  @form = form
112
112
  %{
113
- #{ hidden_success_fieldset args[:success]}
113
+ #{ hidden_success_formgroup args[:success]}
114
114
  #{ editor args }
115
115
  }
116
116
  end
@@ -137,16 +137,16 @@ format :html do
137
137
  def editor args
138
138
  wrap_with( :div, :class=>'card-editor' ) do
139
139
  [
140
- (type_fieldset( args ) if card.right.rule_type_editable),
141
- fieldset( 'rule', content_field( form, args.merge(:skip_rev_id=>true) ), :editor=>'content' ),
142
- set_fieldset( args )
140
+ (type_formgroup( args ) if card.right.rule_type_editable),
141
+ formgroup( 'rule', content_field( form, args.merge(:skip_rev_id=>true) ), :editor=>'content' ),
142
+ set_formgroup( args )
143
143
  ]
144
144
  end + edit_buttons( args )
145
145
  end
146
146
 
147
147
 
148
- def type_fieldset args
149
- fieldset 'type', type_field(
148
+ def type_formgroup args
149
+ formgroup 'type', type_field(
150
150
  :href => path(:name=>args[:success][:card].name, :view=>args[:success][:view], :type_reload=>true),
151
151
  :class => 'type-field rule-type-field live-type-field',
152
152
  'data-remote' => true
@@ -154,7 +154,7 @@ format :html do
154
154
  end
155
155
 
156
156
 
157
- def hidden_success_fieldset args
157
+ def hidden_success_formgroup args
158
158
  %{
159
159
  #{ hidden_field_tag 'success[id]', args[:id] || args[:card].name }
160
160
  #{ hidden_field_tag 'success[view]', args[:view] }
@@ -162,12 +162,12 @@ format :html do
162
162
  }
163
163
  end
164
164
 
165
- def set_fieldset args
165
+ def set_formgroup args
166
166
  current_set_key = card.new_card? ? Card[:all].cardname.key : card.rule_set_key # (should have a constant for this?)
167
167
  tag = args[:rule_context].rule_user_setting_name
168
168
  narrower_rules = []
169
169
  option_list =
170
- wrap_each_with :li do
170
+ wrap_each_with :li, :class=>'radio' do
171
171
  args[:set_options].map do |set_name, state|
172
172
 
173
173
  checked = ( args[:set_selected] == set_name or current_set_key && args[:set_options].length==1 )
@@ -183,16 +183,16 @@ format :html do
183
183
  end
184
184
  rule_name = "#{set_name}+#{tag}"
185
185
  radio_button( :name, rule_name, :checked=>checked, :warning=>warning ) + %{
186
- <span class="set-label" #{'current-set-label' if is_current }>
186
+ <label class="set-label" #{'current-set-label' if is_current }>
187
187
  #{ card_link set_name, :text=> Card.fetch(set_name).label, :target=>'wagn_set' }
188
188
  #{'<em>(current)</em>' if is_current }
189
189
  #{"<em> #{card_link "#{set_name}+#{card.rule_user_setting_name}", :text=>"(overwritten)"}</em>" if state == :overwritten }
190
- </span>
190
+ </label>
191
191
  }.html_safe
192
192
  end
193
193
 
194
194
  end
195
- fieldset 'set', "<ul>#{ option_list }</ul>", :editor => 'set'
195
+ formgroup 'set', "<ul>#{ option_list }</ul>", :editor => 'set'
196
196
  end
197
197
 
198
198
  def edit_buttons args
@@ -205,7 +205,7 @@ format :html do
205
205
  %{<span class="rule-delete-section">#{ button_tag 'Delete', b_args }</span>}
206
206
  end
207
207
  cancel_path = path :view=>( card.new_card? ? :closed_rule : :open_rule )
208
- wrap_with( :div, :class=>'edit-button-area' ) do
208
+ wrap_with( :div, :class=>'button-area' ) do
209
209
  [
210
210
  delete_button,
211
211
  button_tag( 'Submit', :class=>'rule-submit-button' ),
@@ -220,10 +220,10 @@ format :html do
220
220
 
221
221
  card_form :update do
222
222
  [
223
- _optional_render( :type_fieldset, args ),
224
- _optional_render( :content_fieldset, args ),
225
- _optional_render( :set_fieldset, args ),
226
- _optional_render( :button_fieldset, args )
223
+ _optional_render( :type_formgroup, args ),
224
+ _optional_render( :content_formgroup, args ),
225
+ _optional_render( :set_formgroup, args ),
226
+ _optional_render( :button_formgroup, args )
227
227
  ]
228
228
  end
229
229
  end
@@ -1,7 +1,7 @@
1
1
 
2
2
  format :html do
3
3
 
4
- def account_links args
4
+ def item_links args
5
5
  [
6
6
  optional_render( :my_card, args),
7
7
  optional_render( :invite, args),
@@ -38,24 +38,12 @@ format :html do
38
38
  end
39
39
 
40
40
  view :raw do |args|
41
- content_tag :span, :id=>'logging' do
42
- account_links(args).join ' '
43
- end
41
+ item_links(args).join ' '
44
42
  end
45
-
46
- view :list do |args|
47
- content_tag :ul, :class=>args[:class] do
48
- account_links(args).map do |al|
49
- content_tag :li, al
50
- end.join "\n"
43
+
44
+ view :core do |args|
45
+ content_tag :span, :id=>'logging' do
46
+ render_raw args
51
47
  end
52
48
  end
53
-
54
- view :navbar_right do |args|
55
- render_list args.merge(:class=>"nav navbar-nav navbar-right")
56
- end
57
-
58
- view :navbar_left do |args|
59
- render_list args.merge(:class=>"nav navbar-nav navbar-left")
60
- end
61
49
  end
@@ -1,20 +1,33 @@
1
1
 
2
2
  format :html do
3
-
3
+
4
4
  view :raw do |args|
5
- input_args = { :class=>'navbox' }
5
+ input_args = { :class=>'navbox form-control' }
6
6
  @@placeholder ||= begin
7
7
  p = Card["#{Card[:navbox].name}+*placeholder"] and p.raw_content
8
8
  end
9
-
10
9
  input_args[:placeholder] = @@placeholder if @@placeholder
11
-
12
- %{
13
- <form action="#{Card.path_setting '/:search'}" method="get" class="navbox-form nodblclick">
14
- #{ text_field_tag :_keyword, '', input_args }
15
- </form>
16
- }
10
+
11
+ content_tag :div, :class=>'form-group' do
12
+ text_field_tag :_keyword, '', input_args
13
+ end
17
14
  end
15
+
16
+ view :navbar_left do |args|
17
+ _render_core args.merge(:navbar_class=>'navbar-form navbar-left')
18
+ end
19
+
20
+ view :navbar_right do |args|
21
+ _render_core args.merge(:navbar_class=>'navbar-form navbar-right')
22
+ end
23
+
24
+ view :core do |args|
25
+ tag_args = { :method=>'get', :role=>'search', :class=>"nodblclick navbox-form #{args[:navbar_class]}"}
26
+ form_tag Card.path_setting('/:search'), tag_args do
27
+ _render_raw args
28
+ end
18
29
 
19
- view :core, :raw
30
+ end
31
+
20
32
  end
33
+
@@ -9,7 +9,7 @@ format :html do
9
9
  search_vars[:item] ||= :change
10
10
 
11
11
  cards_by_day = Hash.new { |h, day| h[day] = [] }
12
- search_vars[:results].each do |card|
12
+ search_results.each do |card|
13
13
  begin
14
14
  stamp = card.updated_at
15
15
  day = Date.new(stamp.year, stamp.month, stamp.day)
@@ -40,9 +40,9 @@ format :html do
40
40
  card_form :update, form_args do
41
41
  [
42
42
  Auth.as_bot do
43
- subformat(account)._render :content_fieldset, :structure=>true, :items=>{:autocomplete=>'on'}
43
+ subformat(account)._render :content_formgroup, :structure=>true, :items=>{:autocomplete=>'on'}
44
44
  end,
45
- _optional_render( :button_fieldset, args )
45
+ _optional_render( :button_formgroup, args )
46
46
  ].join
47
47
  end
48
48
  end
@@ -84,7 +84,6 @@ event :signin, :before=>:approve, :on=>:update do
84
84
 
85
85
  if signin_id = Auth.authenticate( email, pword )
86
86
  Auth.signin signin_id
87
- abort :success
88
87
  else
89
88
  accted = Auth[ email.strip.downcase ]
90
89
  errors.add :signin, case
@@ -96,6 +95,10 @@ event :signin, :before=>:approve, :on=>:update do
96
95
  end
97
96
  end
98
97
 
98
+ event :signin_success, :after=>:signin do
99
+ abort :success
100
+ end
101
+
99
102
  event :send_reset_password_token, :before=>:signin, :on=>:update, :when=>proc{ |c| Env.params[:reset_password] } do
100
103
  email = subcards["+#{Card[:email].name}"]
101
104
  email &&= email['content']
@@ -6,7 +6,7 @@ format :html do
6
6
  super args
7
7
  end
8
8
 
9
- view :type_fieldset do |args|
9
+ view :type_formgroup do |args|
10
10
  if card.cards_of_type_exist?
11
11
  %{<div>Sorry, this card must remain a Cardtype so long as there are <strong>#{ card.name }</strong> cards.</div>}
12
12
  else
@@ -1,6 +1,6 @@
1
1
 
2
2
  view :editor do |args|
3
- text_area :content, :rows=>5, :class=>'card-content'
3
+ text_area :content, :rows=>5, :class=>'card-content', "data-card-type-code"=>card.type_code
4
4
  end
5
5
 
6
6
  view :closed_content do |args|
@@ -54,7 +54,7 @@ format do
54
54
  when e = search_vars[:error]
55
55
  %{#{e.class.to_s} :: #{e.message} :: #{card.raw_content}}
56
56
  when search_vars[:query][:return] =='count'
57
- search_vars[:results].to_s
57
+ search_results.to_s
58
58
  when @mode == :template
59
59
  render :raw
60
60
  else
@@ -63,25 +63,34 @@ format do
63
63
  end
64
64
 
65
65
  view :card_list do |args|
66
- if search_vars[:results].empty?
66
+ if search_results.empty?
67
67
  'no results'
68
68
  else
69
- search_vars[:results].map do |c|
69
+ search_results.map do |c|
70
70
  nest c
71
71
  end.join "\n"
72
72
  end
73
73
  end
74
74
 
75
75
  def search_vars args={}
76
- @search_vars ||= begin
77
- v = {}
78
- v[:query] = card.query search_params
79
- v[:item] = set_inclusion_opts args.merge( :query_view=>v[:query][:view] )
80
- v[:results] = card.item_cards search_params # this is really odd. the search is called from within the vars???
81
- v
82
- rescue =>e
83
- { :error => e }
84
- end
76
+ @search_vars ||=
77
+ begin
78
+ v = {}
79
+ v[:query] = card.query(search_params)
80
+ v[:item] = set_inclusion_opts args.merge( :query_view=>v[:query][:view] )
81
+ v
82
+ rescue =>e
83
+ { :error => e }
84
+ end
85
+ end
86
+
87
+ def search_results
88
+ @search_results ||=
89
+ begin
90
+ card.item_cards search_params
91
+ rescue => e
92
+ { :error => e}
93
+ end
85
94
  end
86
95
 
87
96
  def set_inclusion_opts args
@@ -93,11 +102,34 @@ format do
93
102
 
94
103
 
95
104
 
105
+ def page_link text, page, current=false, options={}
106
+ @paging_path_args[:offset] = page * @paging_limit
107
+ options.merge!(:class=>'card-paging-link slotter', :remote => true)
108
+ link_to raw(text), path(@paging_path_args), options
109
+ end
110
+
111
+ def page_li text, page, current=false, options={}
112
+ css_class = if current
113
+ 'active'
114
+ elsif !page
115
+ 'disabled'
116
+ end
117
+ page ||= 0
118
+ content_tag :li, :class=>css_class do
119
+ page_link text, page, current, options
120
+ end
121
+ end
122
+
123
+ def previous_page_link page
124
+ page_li '<span aria-hidden="true">&laquo;</span>', page, false, 'aria-label'=>"Previous"
125
+ end
96
126
 
127
+ def next_page_link page
128
+ page_li '<span aria-hidden="true">&raquo;</span>', page, false, 'aria-label'=>"Next"
129
+ end
97
130
 
98
- def page_link text, page
99
- @paging_path_args[:offset] = page * @paging_limit
100
- " #{link_to raw(text), path(@paging_path_args), :class=>'card-paging-link slotter', :remote => true} "
131
+ def ellipse_page
132
+ content_tag :li, content_tag(:span, '...')
101
133
  end
102
134
 
103
135
  end
@@ -106,7 +138,7 @@ end
106
138
  format :data do
107
139
 
108
140
  view :card_list do |args|
109
- search_vars[:results].map do |c|
141
+ search_results.map do |c|
110
142
  nest c
111
143
  end
112
144
  end
@@ -134,23 +166,25 @@ format :html do
134
166
  view :card_list do |args|
135
167
  paging = _optional_render :paging, args
136
168
 
137
- if search_vars[:results].empty?
169
+ if search_results.empty?
138
170
  render_no_search_results(args)
139
171
  else
172
+ results =
173
+ search_results.map do |c|
174
+ item_view = inclusion_defaults(c)[:view]
175
+ %{
176
+ <div class="search-result-item item-#{ item_view }">
177
+ #{nest(c, :size=>args[:size], :view=>item_view)}
178
+ </div>
179
+ }
180
+ end.join "\n"
181
+
140
182
  %{
141
- #{paging}
183
+ #{ paging }
142
184
  <div class="search-result-list">
143
- #{
144
- search_vars[:results].map do |c|
145
- %{
146
- <div class="search-result-item item-#{ inclusion_defaults[:view] }">
147
- #{ nest c, :size=>args[:size] }
148
- </div>
149
- }
150
- end * "\n"
151
- }
185
+ #{ results }
152
186
  </div>
153
- #{ paging if search_vars[:results].length > 10 }
187
+ #{ paging if search_results.length > 10 }
154
188
  }
155
189
  end
156
190
  end
@@ -169,7 +203,7 @@ format :html do
169
203
  end
170
204
 
171
205
  view :editor do |args|
172
- text_area :content, :rows=>5
206
+ text_area :content, :rows=>5, "data-card-type-code"=>card.type_code
173
207
  end
174
208
 
175
209
  view :no_search_results do |args|
@@ -180,16 +214,16 @@ format :html do
180
214
  s = card.query search_params
181
215
  offset, limit = s[:offset].to_i, s[:limit].to_i
182
216
  return '' if limit < 1
183
- return '' if offset==0 && limit > offset + search_vars[:results].length #avoid query if we know there aren't enough results to warrant paging
217
+ return '' if offset==0 && limit > offset + search_results.length #avoid query if we know there aren't enough results to warrant paging
184
218
  total = card.count search_params
185
219
  return '' if limit >= total # should only happen if limit exactly equals the total
186
220
 
187
- @paging_path_args = { :limit => limit, :item=> inclusion_defaults[:view] }
221
+ @paging_path_args = { :limit => limit, :item=> inclusion_defaults(card)[:view] }
188
222
  @paging_limit = limit
189
223
 
190
224
  s[:vars].each { |key, value| @paging_path_args["_#{key}"] = value }
191
225
 
192
- out = ['<span class="paging">' ]
226
+ out = ['<nav><ul class="pagination paging">' ]
193
227
 
194
228
  total_pages = ((total-1) / limit).to_i
195
229
  current_page = ( offset / limit).to_i # should already be integer
@@ -197,33 +231,28 @@ format :html do
197
231
  window_min = current_page - window
198
232
  window_max = current_page + window
199
233
 
200
- if current_page > 0
201
- out << page_link( '&laquo; prev', current_page - 1 )
202
- end
203
-
204
- out << %{<span class="paging-numbers">}
234
+ previous_page = current_page > 0 ? current_page - 1 : false
235
+ out << previous_page_link(previous_page)
205
236
  if window_min > 0
206
- out << page_link( 1, 0 )
207
- out << '...' if window_min > 1
237
+ out << page_li( 1, 0 )
238
+ out << ellipse_page if window_min > 1
208
239
  end
209
240
 
210
241
  (window_min .. window_max).each do |page|
211
242
  next if page < 0 or page > total_pages
212
243
  text = page + 1
213
- out << ( page==current_page ? text : page_link( text, page ) )
244
+ out << page_li( text, page, page==current_page )
214
245
  end
215
246
 
216
247
  if total_pages > window_max
217
- out << '...' if total_pages > window_max + 1
218
- out << page_link( total_pages + 1, total_pages )
248
+ out << ellipse_page if total_pages > window_max + 1
249
+ out << page_li( total_pages + 1, total_pages )
219
250
  end
220
- out << %{</span>}
221
251
 
222
- if current_page < total_pages
223
- out << page_link( 'next &raquo;', current_page + 1 )
224
- end
252
+ next_page = current_page < total_pages ? current_page + 1 : false
253
+ out << next_page_link(next_page)
225
254
 
226
- out << %{<span class="search-count">(#{total})</span></span>}
255
+ out << %{</ul></nav>}
227
256
  out.join
228
257
  end
229
258
 
@@ -231,13 +260,6 @@ format :html do
231
260
  set_default_search_params :default_limit=>20
232
261
  end
233
262
 
234
-
235
263
  end
236
264
 
237
265
 
238
-
239
-
240
-
241
-
242
-
243
-