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.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/db/bootstrap/card_actions.yml +1039 -668
- data/db/bootstrap/card_acts.yml +1 -1
- data/db/bootstrap/card_changes.yml +3614 -2523
- data/db/bootstrap/card_references.yml +1401 -1163
- data/db/bootstrap/cards.yml +2832 -1848
- data/db/migrate_core_cards/20150202143810_import_bootstrap_layout.rb +58 -4
- data/db/migrate_core_cards/20150317162412_bootstrap_themes.rb +37 -0
- data/db/migrate_core_cards/data/1.12_stylesheets/traditional.scss +1 -1
- data/db/migrate_core_cards/data/bootstrap_layout.json +39 -24
- data/db/migrate_core_cards/data/skin_images.json +91 -0
- data/db/schema.rb +1 -1
- data/db/version_core_cards.txt +1 -1
- data/lib/card/format.rb +6 -6
- data/lib/card/migration.rb +7 -2
- data/mod/01_core/chunk/include.rb +10 -0
- data/mod/01_core/format/html_format.rb +2 -8
- data/mod/01_core/set/all/collection.rb +4 -0
- data/mod/01_core/set/all/states.rb +1 -1
- data/mod/01_core/set/all/utils.rb +3 -2
- data/mod/01_core/set_pattern/02_all_plus.rb +1 -1
- data/mod/01_core/set_pattern/04_star.rb +2 -2
- data/mod/01_core/set_pattern/05_rstar.rb +2 -2
- data/mod/01_core/set_pattern/07_type_plus_right.rb +1 -1
- data/mod/01_core/spec/format/html_format_spec.rb +23 -24
- data/mod/01_history/set/all/history.rb +6 -7
- data/mod/02_basic_types/set/all/all_css.rb +1 -1
- data/mod/02_basic_types/set/all/all_csv.rb +2 -2
- data/mod/02_basic_types/set/all/json.rb +1 -1
- data/mod/02_basic_types/set/type/plain_text.rb +1 -1
- data/mod/02_basic_types/set/type/pointer.rb +25 -29
- data/mod/03_machines/lib/javascript/wagn.js.coffee +7 -6
- data/mod/03_machines/lib/javascript/wagn_mod.js.coffee +2 -1
- data/mod/03_machines/lib/stylesheets/style_bootstrap_compatible.css +154 -0
- data/mod/03_machines/lib/stylesheets/{standard.scss → style_cards.scss} +260 -166
- data/mod/03_machines/set/self/style_bootstrap_compatible.rb +9 -0
- data/mod/03_machines/set/self/{style_functional.rb → style_cards.rb} +1 -1
- data/mod/03_machines/spec/set/type/scss_spec.rb +1 -1
- data/mod/04_settings/set/type/setting.rb +1 -1
- data/mod/05_email/set/all/notify.rb +1 -1
- data/mod/05_email/set/self/follow_defaults.rb +3 -3
- data/mod/05_standard/file/{790/icon-6419.png → credit/icon-image.png} +0 -0
- data/mod/05_standard/file/{790/large-6419.png → credit/large-image.png} +0 -0
- data/mod/05_standard/file/{790/medium-6419.png → credit/medium-image.png} +0 -0
- data/mod/05_standard/file/{790/original-6419.png → credit/original-image.png} +0 -0
- data/mod/05_standard/file/{790/small-6419.png → credit/small-image.png} +0 -0
- data/mod/05_standard/file/{103/icon-6566.ico → favicon/icon-image.ico} +0 -0
- data/mod/05_standard/file/{103/large-6566.ico → favicon/large-image.ico} +0 -0
- data/mod/05_standard/file/{103/medium-6566.ico → favicon/medium-image.ico} +0 -0
- data/mod/05_standard/file/{103/original-6566.ico → favicon/original-image.ico} +0 -0
- data/mod/05_standard/file/{103/small-6566.ico → favicon/small-image.ico} +0 -0
- data/mod/05_standard/file/{79/icon-6556.png → logo/icon-image.png} +0 -0
- data/mod/05_standard/file/{79/large-6556.png → logo/large-image.png} +0 -0
- data/mod/05_standard/file/{79/medium-6556.png → logo/medium-image.png} +0 -0
- data/mod/05_standard/file/{79/original-6556.png → logo/original-image.png} +0 -0
- data/mod/05_standard/file/{79/small-6556.png → logo/small-image.png} +0 -0
- data/mod/05_standard/set/all/attach.rb +8 -10
- data/mod/05_standard/set/all/comment.rb +1 -1
- data/mod/05_standard/set/all/error.rb +1 -1
- data/mod/05_standard/set/all/rich_html/content.rb +14 -2
- data/mod/05_standard/set/all/rich_html/editing.rb +19 -18
- data/mod/05_standard/set/all/rich_html/form.rb +38 -47
- data/mod/05_standard/set/all/rich_html/header.rb +37 -14
- data/mod/05_standard/set/all/rich_html/wrapper.rb +3 -3
- data/mod/05_standard/set/rstar/rules.rb +18 -18
- data/mod/05_standard/set/self/account_links.rb +6 -18
- data/mod/05_standard/set/self/navbox.rb +23 -10
- data/mod/05_standard/set/self/recent.rb +1 -1
- data/mod/05_standard/set/self/signin.rb +6 -3
- data/mod/05_standard/set/type/cardtype.rb +1 -1
- data/mod/05_standard/set/type/html.rb +1 -1
- data/mod/05_standard/set/type/search_type.rb +76 -54
- data/mod/05_standard/set/type/signup.rb +5 -5
- data/mod/05_standard/set/type/user.rb +4 -4
- data/mod/05_standard/spec/set/all/rich_html/wrapper_spec.rb +2 -2
- data/mod/05_standard/spec/set/self/account_links_spec.rb +1 -1
- data/mod/06_bootstrap/file/cerulean_skin/icon-image.png +0 -0
- data/mod/06_bootstrap/file/cerulean_skin/large-image.png +0 -0
- data/mod/06_bootstrap/file/cerulean_skin/medium-image.png +0 -0
- data/mod/06_bootstrap/file/cerulean_skin/original-image.png +0 -0
- data/mod/06_bootstrap/file/cerulean_skin/small-image.png +0 -0
- data/mod/06_bootstrap/file/cosmo_skin/icon-image.png +0 -0
- data/mod/06_bootstrap/file/cosmo_skin/large-image.png +0 -0
- data/mod/06_bootstrap/file/cosmo_skin/medium-image.png +0 -0
- data/mod/06_bootstrap/file/cosmo_skin/original-image.png +0 -0
- data/mod/06_bootstrap/file/cosmo_skin/small-image.png +0 -0
- data/mod/06_bootstrap/file/cyborg_skin/icon-image.png +0 -0
- data/mod/06_bootstrap/file/cyborg_skin/large-image.png +0 -0
- data/mod/06_bootstrap/file/cyborg_skin/medium-image.png +0 -0
- data/mod/06_bootstrap/file/cyborg_skin/original-image.png +0 -0
- data/mod/06_bootstrap/file/cyborg_skin/small-image.png +0 -0
- data/mod/06_bootstrap/file/darkly_skin/icon-image.png +0 -0
- data/mod/06_bootstrap/file/darkly_skin/large-image.png +0 -0
- data/mod/06_bootstrap/file/darkly_skin/medium-image.png +0 -0
- data/mod/06_bootstrap/file/darkly_skin/original-image.png +0 -0
- data/mod/06_bootstrap/file/darkly_skin/small-image.png +0 -0
- data/mod/06_bootstrap/file/flatly_skin/icon-image.png +0 -0
- data/mod/06_bootstrap/file/flatly_skin/large-image.png +0 -0
- data/mod/06_bootstrap/file/flatly_skin/medium-image.png +0 -0
- data/mod/06_bootstrap/file/flatly_skin/original-image.png +0 -0
- data/mod/06_bootstrap/file/flatly_skin/small-image.png +0 -0
- data/mod/06_bootstrap/file/journal_skin/icon-image.png +0 -0
- data/mod/06_bootstrap/file/journal_skin/large-image.png +0 -0
- data/mod/06_bootstrap/file/journal_skin/medium-image.png +0 -0
- data/mod/06_bootstrap/file/journal_skin/original-image.png +0 -0
- data/mod/06_bootstrap/file/journal_skin/small-image.png +0 -0
- data/mod/06_bootstrap/file/lumen_skin/icon-image.png +0 -0
- data/mod/06_bootstrap/file/lumen_skin/large-image.png +0 -0
- data/mod/06_bootstrap/file/lumen_skin/medium-image.png +0 -0
- data/mod/06_bootstrap/file/lumen_skin/original-image.png +0 -0
- data/mod/06_bootstrap/file/lumen_skin/small-image.png +0 -0
- data/mod/06_bootstrap/file/paper_skin/icon-image.png +0 -0
- data/mod/06_bootstrap/file/paper_skin/large-image.png +0 -0
- data/mod/06_bootstrap/file/paper_skin/medium-image.png +0 -0
- data/mod/06_bootstrap/file/paper_skin/original-image.png +0 -0
- data/mod/06_bootstrap/file/paper_skin/small-image.png +0 -0
- data/mod/06_bootstrap/file/readable_skin/icon-image.png +0 -0
- data/mod/06_bootstrap/file/readable_skin/large-image.png +0 -0
- data/mod/06_bootstrap/file/readable_skin/medium-image.png +0 -0
- data/mod/06_bootstrap/file/readable_skin/original-image.png +0 -0
- data/mod/06_bootstrap/file/readable_skin/small-image.png +0 -0
- data/mod/06_bootstrap/file/sandstone_skin/icon-image.png +0 -0
- data/mod/06_bootstrap/file/sandstone_skin/large-image.png +0 -0
- data/mod/06_bootstrap/file/sandstone_skin/medium-image.png +0 -0
- data/mod/06_bootstrap/file/sandstone_skin/original-image.png +0 -0
- data/mod/06_bootstrap/file/sandstone_skin/small-image.png +0 -0
- data/mod/06_bootstrap/file/simplex_skin/icon-image.png +0 -0
- data/mod/06_bootstrap/file/simplex_skin/large-image.png +0 -0
- data/mod/06_bootstrap/file/simplex_skin/medium-image.png +0 -0
- data/mod/06_bootstrap/file/simplex_skin/original-image.png +0 -0
- data/mod/06_bootstrap/file/simplex_skin/small-image.png +0 -0
- data/mod/06_bootstrap/file/slate_skin/icon-image.png +0 -0
- data/mod/06_bootstrap/file/slate_skin/large-image.png +0 -0
- data/mod/06_bootstrap/file/slate_skin/medium-image.png +0 -0
- data/mod/06_bootstrap/file/slate_skin/original-image.png +0 -0
- data/mod/06_bootstrap/file/slate_skin/small-image.png +0 -0
- data/mod/06_bootstrap/file/spacelab_skin/icon-image.png +0 -0
- data/mod/06_bootstrap/file/spacelab_skin/large-image.png +0 -0
- data/mod/06_bootstrap/file/spacelab_skin/medium-image.png +0 -0
- data/mod/06_bootstrap/file/spacelab_skin/original-image.png +0 -0
- data/mod/06_bootstrap/file/spacelab_skin/small-image.png +0 -0
- data/mod/06_bootstrap/file/superhero_skin/icon-image.png +0 -0
- data/mod/06_bootstrap/file/superhero_skin/large-image.png +0 -0
- data/mod/06_bootstrap/file/superhero_skin/medium-image.png +0 -0
- data/mod/06_bootstrap/file/superhero_skin/original-image.png +0 -0
- data/mod/06_bootstrap/file/superhero_skin/small-image.png +0 -0
- data/mod/06_bootstrap/file/united_skin/icon-image.png +0 -0
- data/mod/06_bootstrap/file/united_skin/large-image.png +0 -0
- data/mod/06_bootstrap/file/united_skin/medium-image.png +0 -0
- data/mod/06_bootstrap/file/united_skin/original-image.png +0 -0
- data/mod/06_bootstrap/file/united_skin/small-image.png +0 -0
- data/mod/06_bootstrap/file/yeti_skin/icon-image.png +0 -0
- data/mod/06_bootstrap/file/yeti_skin/large-image.png +0 -0
- data/mod/06_bootstrap/file/yeti_skin/medium-image.png +0 -0
- data/mod/06_bootstrap/file/yeti_skin/original-image.png +0 -0
- data/mod/06_bootstrap/file/yeti_skin/small-image.png +0 -0
- data/mod/06_bootstrap/lib/stylesheets/bootstrap_cards.scss +199 -0
- data/mod/06_bootstrap/lib/stylesheets/{bootstrap.css → bootstrap_css.css} +0 -0
- data/mod/06_bootstrap/lib/stylesheets/theme_amelia.css +5871 -0
- data/mod/06_bootstrap/lib/stylesheets/{bootstrap-theme.css → theme_bootstrap_default.css} +0 -0
- data/mod/06_bootstrap/lib/stylesheets/theme_cerulean.css +5893 -0
- data/mod/06_bootstrap/lib/stylesheets/theme_cosmo.css +5898 -0
- data/mod/06_bootstrap/lib/stylesheets/theme_cyborg.css +5876 -0
- data/mod/06_bootstrap/lib/stylesheets/theme_darkly.css +5986 -0
- data/mod/06_bootstrap/lib/stylesheets/{darkly.css → theme_flatly.css} +574 -327
- data/mod/06_bootstrap/lib/stylesheets/theme_holo.css +183 -0
- data/mod/06_bootstrap/lib/stylesheets/theme_journal.css +6647 -0
- data/mod/06_bootstrap/lib/stylesheets/theme_lumen.css +6097 -0
- data/mod/06_bootstrap/lib/stylesheets/theme_paper.css +6647 -0
- data/mod/06_bootstrap/lib/stylesheets/theme_readable.css +5896 -0
- data/mod/06_bootstrap/lib/stylesheets/theme_sandstone.css +6733 -0
- data/mod/06_bootstrap/lib/stylesheets/theme_simplex.css +5886 -0
- data/mod/06_bootstrap/lib/stylesheets/theme_slate.css +7057 -0
- data/mod/06_bootstrap/lib/stylesheets/theme_spacelab.css +5935 -0
- data/mod/06_bootstrap/lib/stylesheets/theme_superhero.css +5964 -0
- data/mod/06_bootstrap/lib/stylesheets/theme_united.css +6588 -0
- data/mod/06_bootstrap/lib/stylesheets/theme_yeti.css +6088 -0
- data/mod/06_bootstrap/set/all/rich_bootstrap.rb +0 -16
- data/mod/06_bootstrap/set/self/bootstrap_cards.rb +9 -0
- data/mod/06_bootstrap/set/self/bootstrap_css.rb +5 -3
- data/mod/06_bootstrap/set/self/theme_bootstrap_default.rb +2 -0
- data/mod/06_bootstrap/set/self/theme_cerulean.rb +2 -0
- data/mod/06_bootstrap/set/self/theme_cosmo.rb +2 -0
- data/mod/06_bootstrap/set/self/theme_cyborg.rb +2 -0
- data/mod/06_bootstrap/set/self/theme_darkly.rb +2 -0
- data/mod/06_bootstrap/set/self/theme_flatly.rb +2 -0
- data/mod/06_bootstrap/set/self/theme_journal.rb +2 -0
- data/mod/06_bootstrap/set/self/theme_lumen.rb +2 -0
- data/mod/06_bootstrap/set/self/theme_paper.rb +2 -0
- data/mod/06_bootstrap/set/self/theme_readable.rb +2 -0
- data/mod/06_bootstrap/set/self/theme_sandstone.rb +2 -0
- data/mod/06_bootstrap/set/self/theme_simplex.rb +2 -0
- data/mod/06_bootstrap/set/self/theme_slate.rb +2 -0
- data/mod/06_bootstrap/set/self/theme_spacelab.rb +2 -0
- data/mod/06_bootstrap/set/self/theme_superhero.rb +2 -0
- data/mod/06_bootstrap/set/self/theme_united.rb +2 -0
- data/mod/06_bootstrap/set/self/theme_yeti.rb +2 -0
- data/test/fixtures/card_actions.yml +1951 -1580
- data/test/fixtures/card_acts.yml +282 -282
- data/test/fixtures/card_changes.yml +6769 -5678
- data/test/fixtures/card_references.yml +2086 -1848
- data/test/fixtures/cards.yml +4167 -3183
- metadata +142 -30
- data/mod/03_machines/lib/stylesheets/functional.scss +0 -184
- data/mod/03_machines/set/self/style_standard.rb +0 -8
- data/mod/03_machines/spec/set/self/style_functional_spec.rb +0 -5
- data/mod/03_machines/spec/set/self/style_standard_spec.rb +0 -5
- data/mod/06_bootstrap/set/all/bootstrap/header.rb +0 -29
- data/mod/06_bootstrap/set/self/bootstrap_theme_css.rb +0 -7
- data/mod/06_bootstrap/set/self/navbox.rb +0 -32
- 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}"
|
|
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="
|
|
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
|
-
#{
|
|
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
|
-
(
|
|
141
|
-
|
|
142
|
-
|
|
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
|
|
149
|
-
|
|
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
|
|
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
|
|
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
|
-
<
|
|
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
|
-
</
|
|
190
|
+
</label>
|
|
191
191
|
}.html_safe
|
|
192
192
|
end
|
|
193
193
|
|
|
194
194
|
end
|
|
195
|
-
|
|
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=>'
|
|
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( :
|
|
224
|
-
_optional_render( :
|
|
225
|
-
_optional_render( :
|
|
226
|
-
_optional_render( :
|
|
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
|
|
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
|
-
|
|
42
|
-
account_links(args).join ' '
|
|
43
|
-
end
|
|
41
|
+
item_links(args).join ' '
|
|
44
42
|
end
|
|
45
|
-
|
|
46
|
-
view :
|
|
47
|
-
content_tag :
|
|
48
|
-
|
|
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
|
-
|
|
14
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 :
|
|
43
|
+
subformat(account)._render :content_formgroup, :structure=>true, :items=>{:autocomplete=>'on'}
|
|
44
44
|
end,
|
|
45
|
-
_optional_render( :
|
|
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']
|
|
@@ -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
|
-
|
|
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
|
|
66
|
+
if search_results.empty?
|
|
67
67
|
'no results'
|
|
68
68
|
else
|
|
69
|
-
|
|
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 ||=
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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">«</span>', page, false, 'aria-label'=>"Previous"
|
|
125
|
+
end
|
|
96
126
|
|
|
127
|
+
def next_page_link page
|
|
128
|
+
page_li '<span aria-hidden="true">»</span>', page, false, 'aria-label'=>"Next"
|
|
129
|
+
end
|
|
97
130
|
|
|
98
|
-
def
|
|
99
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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 +
|
|
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 = ['<
|
|
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
|
-
|
|
201
|
-
|
|
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 <<
|
|
207
|
-
out <<
|
|
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 <<
|
|
244
|
+
out << page_li( text, page, page==current_page )
|
|
214
245
|
end
|
|
215
246
|
|
|
216
247
|
if total_pages > window_max
|
|
217
|
-
out <<
|
|
218
|
-
out <<
|
|
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
|
-
|
|
223
|
-
|
|
224
|
-
end
|
|
252
|
+
next_page = current_page < total_pages ? current_page + 1 : false
|
|
253
|
+
out << next_page_link(next_page)
|
|
225
254
|
|
|
226
|
-
out << %{
|
|
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
|
-
|