card 1.15.7 → 1.16.0
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/card.gemspec +3 -2
- data/config/initializers/inflections.rb +1 -1
- data/db/migrate_core_cards/20150528084659_add_session_cardtype.rb +0 -1
- data/db/migrate_core_cards/20150601133433_add_recent_setting_session_card.rb +12 -0
- data/db/migrate_core_cards/20150610171702_add_debugger_session_card.rb +11 -0
- data/db/migrate_core_cards/20150611203506_rails_inflection_updates.rb +82 -0
- data/db/migrate_core_cards/20150627205133_fix_script_bootstrap_card_type.rb +7 -0
- data/db/migrate_core_cards/20150702130543_remove_edit_toolbar_pinned.rb +9 -0
- data/db/schema.rb +81 -81
- data/db/seed/new/card_actions.yml +12581 -1647
- data/db/seed/new/card_acts.yml +1 -1
- data/db/seed/new/card_changes.yml +39326 -7569
- data/db/seed/new/card_references.yml +518 -455
- data/db/seed/new/cards.yml +1547 -1291
- data/db/seed/test/fixtures/card_actions.yml +13700 -2717
- data/db/seed/test/fixtures/card_acts.yml +314 -272
- data/db/seed/test/fixtures/card_changes.yml +45409 -13573
- data/db/seed/test/fixtures/card_references.yml +1223 -1125
- data/db/seed/test/fixtures/cards.yml +2694 -2433
- data/db/seed/test/fixtures/file1.txt +1 -0
- data/db/seed/test/fixtures/file2.txt +1 -0
- data/db/version_core_cards.txt +1 -1
- data/lib/card.rb +23 -13
- data/lib/card/auth.rb +6 -6
- data/lib/card/cache.rb +24 -5
- data/lib/card/env.rb +10 -10
- data/lib/card/format.rb +29 -12
- data/lib/card/log.rb +5 -3
- data/lib/card/migration.rb +17 -41
- data/lib/card/name.rb +12 -0
- data/lib/card/reference.rb +11 -12
- data/lib/card/set.rb +59 -6
- data/lib/card/simplecov_helper.rb +6 -1
- data/lib/card/spec_helper.rb +3 -2
- data/lib/card/view_cache.rb +77 -0
- data/lib/cardio.rb +30 -22
- data/mod/01_core/format/html_format.rb +17 -9
- data/mod/01_core/layout/blank.html +1 -1
- data/mod/01_core/layout/default.html +6 -16
- data/mod/01_core/layout/modal.html +9 -0
- data/mod/01_core/layout/noside.html +5 -12
- data/mod/01_core/layout/simple.html +1 -1
- data/mod/01_core/set/all/collection.rb +57 -5
- data/mod/01_core/set/all/content.rb +5 -7
- data/mod/01_core/set/all/name.rb +8 -10
- data/mod/01_core/set/all/permissions.rb +1 -2
- data/mod/01_core/set/all/phases.rb +5 -13
- data/mod/01_core/set/all/references.rb +10 -10
- data/mod/01_core/set/all/rules.rb +2 -2
- data/mod/01_core/set/all/tracked_attributes.rb +5 -3
- data/mod/01_core/set/all/utils.rb +79 -9
- data/mod/01_core/set/all/view_cache.rb +9 -0
- data/mod/01_core/spec/format/html_format_spec.rb +2 -2
- data/mod/01_core/spec/set/all/collection_spec.rb +1 -1
- data/mod/01_history/lib/card/act.rb +3 -1
- data/mod/01_history/lib/card/action.rb +20 -12
- data/mod/01_history/lib/card/change.rb +12 -8
- data/mod/01_history/set/all/actions.rb +2 -2
- data/mod/01_history/set/all/content_history.rb +3 -2
- data/mod/01_history/set/all/history.rb +57 -19
- data/mod/02_basic_types/set/all/rss.rb +5 -6
- data/mod/{05_standard → 02_basic_types}/set/type/html.rb +4 -3
- data/mod/02_basic_types/set/type/plain_text.rb +1 -1
- data/mod/02_basic_types/set/type/pointer.rb +7 -4
- data/mod/02_basic_types/spec/set/type/pointer_spec.rb +21 -17
- data/mod/03_machines/lib/card/machine.rb +33 -31
- data/mod/03_machines/lib/javascript/script_card_menu.js.coffee +2 -10
- data/mod/03_machines/lib/javascript/wagn.js.coffee +10 -10
- data/mod/03_machines/lib/javascript/wagn_mod.js.coffee +87 -40
- data/mod/03_machines/lib/stylesheets/style_cards.scss +26 -28
- data/mod/03_machines/set/right/machine_output.rb +3 -3
- data/mod/03_machines/set/type/coffee_script.rb +6 -6
- data/mod/03_machines/set/type/css.rb +1 -1
- data/mod/03_machines/set/type/java_script.rb +5 -6
- data/mod/03_machines/spec/lib/shared_machine_examples.rb +3 -1
- data/mod/03_machines/spec/set/type/scss_spec.rb +9 -10
- data/mod/04_settings/lib/card/setting.rb +16 -14
- data/mod/04_settings/set/right/structure.rb +6 -0
- data/mod/04_settings/set/self/add_help.rb +1 -1
- data/mod/04_settings/set/self/autoname.rb +1 -1
- data/mod/04_settings/set/self/captcha.rb +1 -1
- data/mod/04_settings/set/self/default.rb +1 -1
- data/mod/04_settings/set/self/help.rb +1 -1
- data/mod/04_settings/set/self/input.rb +1 -1
- data/mod/04_settings/set/self/layout.rb +1 -1
- data/mod/04_settings/set/self/on_create.rb +1 -1
- data/mod/04_settings/set/self/on_delete.rb +1 -1
- data/mod/04_settings/set/self/on_update.rb +1 -1
- data/mod/04_settings/set/self/options.rb +1 -1
- data/mod/04_settings/set/self/options_label.rb +1 -1
- data/mod/04_settings/set/self/script.rb +1 -1
- data/mod/04_settings/set/self/structure.rb +1 -1
- data/mod/04_settings/set/self/style.rb +1 -1
- data/mod/04_settings/set/self/table_of_contents.rb +1 -1
- data/mod/04_settings/set/self/thanks.rb +1 -1
- data/mod/05_email/set/all/follow.rb +3 -21
- data/mod/05_email/set/all/notify.rb +20 -4
- data/mod/05_email/set/right/follow.rb +16 -18
- data/mod/05_email/set/self/follow.rb +1 -1
- data/mod/05_email/spec/set/all/follow_spec.rb +6 -13
- data/mod/05_standard/set/all/attach.rb +23 -9
- data/mod/05_standard/set/all/error.rb +5 -7
- data/mod/05_standard/set/all/event_viz.rb +10 -6
- data/mod/05_standard/set/all/links.rb +37 -13
- data/mod/05_standard/set/all/rich_html/content.rb +46 -18
- data/mod/05_standard/set/all/rich_html/editing.rb +29 -25
- data/mod/05_standard/set/all/rich_html/form.rb +17 -10
- data/mod/05_standard/set/all/rich_html/header.rb +26 -4
- data/mod/05_standard/set/all/rich_html/menu.rb +17 -34
- data/mod/05_standard/set/all/rich_html/modal.rb +50 -12
- data/mod/05_standard/set/all/rich_html/toolbar.rb +178 -186
- data/mod/05_standard/set/all/rich_html/wrapper.rb +44 -21
- data/mod/05_standard/set/rstar/rules.rb +43 -53
- data/mod/05_standard/set/self/all.rb +2 -1
- data/mod/05_standard/set/self/head.rb +2 -2
- data/mod/05_standard/set/self/signin.rb +18 -18
- data/mod/05_standard/set/self/stats.rb +14 -2
- data/mod/05_standard/set/type/search_type.rb +9 -4
- data/mod/05_standard/set/type/session.rb +12 -7
- data/mod/05_standard/set/type/set.rb +135 -18
- data/mod/05_standard/spec/chunk/include_spec.rb +15 -16
- data/mod/05_standard/spec/set/all/account_spec.rb +21 -21
- data/mod/05_standard/spec/set/all/event_viz_spec.rb +7 -7
- data/mod/05_standard/spec/set/all/history_spec.rb +54 -24
- data/mod/05_standard/spec/set/all/rich_html/editing_spec.rb +42 -40
- data/mod/05_standard/spec/set/rstar/rules_spec.rb +1 -1
- data/mod/05_standard/spec/set/type/search_type_spec.rb +9 -1
- data/mod/05_standard/spec/set/type/signup_spec.rb +42 -42
- data/mod/06_bootstrap/lib/stylesheets/bootstrap_cards.scss +6 -0
- data/mod/06_bootstrap/set/all/bootstrap/form.rb +4 -5
- data/mod/06_bootstrap/set/all/bootstrap/helper.rb +145 -0
- data/mod/06_bootstrap/set/all/rich_bootstrap.rb +0 -59
- data/spec/lib/card/action_spec.rb +1 -1
- data/spec/lib/card/log_spec.rb +7 -7
- data/spec/models/card/cardtype_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -1
- metadata +31 -6
- data/mod/04_settings/set/self/comment.rb +0 -2
@@ -7,6 +7,8 @@ format :html do
|
|
7
7
|
options_hash['name_context'] = @context_names.map( &:key ) * ','
|
8
8
|
end
|
9
9
|
|
10
|
+
options_hash[:subslot] = 'true' if args[:subslot]
|
11
|
+
|
10
12
|
@@slot_option_keys.inject(options_hash) do |hash, opt|
|
11
13
|
hash[opt] = args[opt] if args[opt].present?
|
12
14
|
hash
|
@@ -18,15 +20,20 @@ format :html do
|
|
18
20
|
def wrap args = {}
|
19
21
|
@slot_view = @current_view
|
20
22
|
classes = [
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
23
|
+
( 'card-slot' unless args[:no_slot] ),
|
24
|
+
"#{ @current_view }-view",
|
25
|
+
( args[:slot_class] if args[:slot_class] ),
|
26
|
+
( "STRUCTURE-#{args[:structure].to_name.key}" if args[:structure]),
|
27
|
+
card.safe_set_keys
|
28
|
+
].compact.join ' '
|
29
|
+
data = {
|
30
|
+
'card-id' => card.id,
|
31
|
+
'card-name' => h(card.name),
|
32
|
+
'slot' => html_escape_except_quotes(slot_options( args ))
|
33
|
+
}
|
34
|
+
div =
|
35
|
+
content_tag :div, output(yield).html_safe,
|
36
|
+
:id=>card.cardname.url_key, :data=>data, :style=>h(args[:style]), :class=>classes
|
30
37
|
|
31
38
|
if params[:debug] == 'slot' && !tagged( @current_view, :no_wrap_comments )
|
32
39
|
name = h card.name
|
@@ -52,16 +59,37 @@ format :html do
|
|
52
59
|
end
|
53
60
|
end
|
54
61
|
|
55
|
-
def frame args={}
|
62
|
+
def frame args={}, &block
|
63
|
+
if args[:subframe]
|
64
|
+
args.delete(:panel_class)
|
65
|
+
subframe args, &block
|
66
|
+
else
|
67
|
+
show_subheader = show_view?(:toolbar, args.merge(:default_visibility=>:hide)) && @current_view != :related && @current_view != :open
|
68
|
+
wrap args do
|
69
|
+
[
|
70
|
+
_optional_render( :menu, args ),
|
71
|
+
panel(args) do
|
72
|
+
[
|
73
|
+
_optional_render( :header, args, :show),
|
74
|
+
_optional_render( :subheader, args,(show_subheader ? :show : :hide)),
|
75
|
+
_optional_render( :help, args.merge(:help_class=>'alert alert-info'), :hide),
|
76
|
+
wrap_body(args) { output( block.call(args) ) } ,
|
77
|
+
]
|
78
|
+
end
|
79
|
+
]
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def subframe args={}
|
56
85
|
wrap args do
|
57
86
|
[
|
58
|
-
_optional_render( :menu, args ),
|
87
|
+
_optional_render( :menu, args.merge(:optional_horizontal_menu=>:hide) ),
|
88
|
+
_optional_render( :subheader, args, :show),
|
89
|
+
_optional_render( :help, args.merge(:help_class=>'alert alert-info'), :hide),
|
59
90
|
panel(args) do
|
60
91
|
[
|
61
|
-
_optional_render( :header, args, :
|
62
|
-
(%{ <div class="card-subheader">#{ args[:subheader] }</div> } if args[:subheader]),
|
63
|
-
_optional_render( :help, args.merge(:help_class=>'alert alert-info'), :hide),
|
64
|
-
(_render( :close_related_link, args) if @slot_view == :related),
|
92
|
+
_optional_render( :header, args, :hide),
|
65
93
|
wrap_body(args) { output( yield args ) } ,
|
66
94
|
]
|
67
95
|
end
|
@@ -96,7 +124,7 @@ format :html do
|
|
96
124
|
end
|
97
125
|
|
98
126
|
def wrap_main(content)
|
99
|
-
return content if params[:layout]=='none'
|
127
|
+
return content if Env.ajax? || params[:layout]=='none'
|
100
128
|
%{<div id="main">#{content}</div>}
|
101
129
|
end
|
102
130
|
|
@@ -121,9 +149,4 @@ format :html do
|
|
121
149
|
end
|
122
150
|
end.join "\n"
|
123
151
|
end
|
124
|
-
|
125
|
-
view :close_related_link do |args|
|
126
|
-
card_link( args[:parent], :text=>glyphicon('remove'), :view=>:home, :remote=>true, :class=>'pull-right slotter close-related-view', :title=>'cancel', 'data-slot-selector'=>'.card-slot.related-view')
|
127
|
-
end
|
128
|
-
|
129
152
|
end
|
@@ -1,3 +1,9 @@
|
|
1
|
+
event :save_recently_edited_settings, :before=>:extend, :on=>:save, :when=>proc{|c| c.is_rule? } do
|
2
|
+
if (recent = Card[:recent_settings])
|
3
|
+
recent.insert_item 0, cardname.right
|
4
|
+
recent.save
|
5
|
+
end
|
6
|
+
end
|
1
7
|
|
2
8
|
format :html do
|
3
9
|
|
@@ -32,8 +38,6 @@ format :html do
|
|
32
38
|
end
|
33
39
|
|
34
40
|
|
35
|
-
|
36
|
-
|
37
41
|
view :open_rule, :tags=>:unknown_ok do |args|
|
38
42
|
return 'not a rule' if !card.is_rule?
|
39
43
|
current_rule = args[:current_rule]
|
@@ -76,7 +80,6 @@ format :html do
|
|
76
80
|
</td>
|
77
81
|
</tr>
|
78
82
|
}
|
79
|
-
|
80
83
|
end
|
81
84
|
|
82
85
|
def default_open_rule_args args
|
@@ -87,7 +90,6 @@ format :html do
|
|
87
90
|
args.reverse_merge! :current_rule => current_rule_card, :setting_name => card.rule_setting_name
|
88
91
|
end
|
89
92
|
|
90
|
-
|
91
93
|
view :show_rule, :tags=>:unknown_ok do |args|
|
92
94
|
return 'not a rule' if !card.is_rule?
|
93
95
|
|
@@ -107,9 +109,14 @@ format :html do
|
|
107
109
|
|
108
110
|
view :edit_rule, :tags=>:unknown_ok do |args|
|
109
111
|
return 'not a rule' if !card.is_rule?
|
112
|
+
form_args = { :url=>path(:action=>:update, :no_id=>true),
|
113
|
+
:html=> {:class=>"card-form card-rule-form" } }
|
114
|
+
if args[:remote]
|
115
|
+
form_args[:remote] = true
|
116
|
+
form_args[:html][:class] += ' slotter'
|
117
|
+
end
|
110
118
|
|
111
|
-
form_for card,
|
112
|
-
{:class=>"card-form card-rule-form slotter" } do |form|
|
119
|
+
form_for card, form_args do |form|
|
113
120
|
@form = form
|
114
121
|
%{
|
115
122
|
#{ hidden_success_formgroup args[:success]}
|
@@ -119,7 +126,10 @@ format :html do
|
|
119
126
|
end
|
120
127
|
end
|
121
128
|
|
129
|
+
view :related_edit_rule, :view=>:edit_rule
|
130
|
+
|
122
131
|
def default_edit_rule_args args
|
132
|
+
args[:remote] ||= true
|
123
133
|
args[:rule_context] ||= card
|
124
134
|
args[:set_context] ||= card.rule_set_name
|
125
135
|
args[:set_selected] = params[:type_reload] ? card.rule_set_name : false
|
@@ -132,51 +142,41 @@ format :html do
|
|
132
142
|
:view => 'open_rule',
|
133
143
|
:item => 'view_rule'
|
134
144
|
})
|
135
|
-
end
|
136
145
|
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
end
|
144
|
-
%{<span class="rule-delete-section">#{ button_tag 'Delete', b_args }</span>}
|
145
|
-
end
|
146
|
-
|
147
|
-
frame do
|
148
|
-
form_for card, :url=>path(:action=>:update, :no_id=>true), :html=>
|
149
|
-
{:class=>"card-form card-rule-form" } do |form|
|
150
|
-
@form = form
|
151
|
-
%{
|
152
|
-
#{ hidden_success_formgroup args[:success]}
|
153
|
-
#{ editor args }
|
154
|
-
#{
|
155
|
-
wrap_with( :div, :class=>'button-area' ) do
|
156
|
-
[
|
157
|
-
delete_button,
|
158
|
-
button_tag( 'Submit', :class=>'rule-submit-button', :situation=>'primary' ),
|
159
|
-
card_link( args[:success][:id], :text=>'Cancel', :class=>'rule-cancel-button btn btn-default',
|
160
|
-
:path_opts=>{:view=>args[:success][:view], :success=>'true'}
|
161
|
-
)
|
162
|
-
]
|
163
|
-
end
|
164
|
-
}
|
165
|
-
}
|
146
|
+
args[:delete_button] ||= delete_button args
|
147
|
+
args[:cancel_button] ||=
|
148
|
+
begin
|
149
|
+
cancel_path = path :view=>( card.new_card? ? :closed_rule : :open_rule ), :success=>false
|
150
|
+
button_tag( 'Cancel', :class=>'rule-cancel-button slotter', :type=>'button',
|
151
|
+
:href=>cancel_path )
|
166
152
|
end
|
167
|
-
end
|
168
153
|
end
|
169
154
|
|
170
155
|
def default_related_edit_rule_args args
|
171
|
-
args[:
|
172
|
-
|
173
|
-
:item => nil,
|
156
|
+
args[:remote] ||= false
|
157
|
+
args[:success] ||= {
|
174
158
|
:card => args[:parent] || card,
|
175
|
-
:id => (args[:parent] && args[:parent].cardname.url_key) || card.cardname.url_key
|
159
|
+
:id => (args[:parent] && args[:parent].cardname.url_key) || card.cardname.url_key,
|
160
|
+
:view => :open,
|
161
|
+
:item => nil
|
176
162
|
}
|
177
163
|
default_edit_rule_args args
|
164
|
+
args[:delete_button] = delete_button args, '.card-slot.related-view'
|
165
|
+
args[:cancel_button] = card_link( args[:success][:id], :text=>'Cancel',
|
166
|
+
:class=>'rule-cancel-button btn btn-default', :path_opts=>{:view=>args[:success][:view]} )
|
178
167
|
end
|
179
168
|
|
169
|
+
def delete_button args, slot_selector=nil
|
170
|
+
if !card.new_card?
|
171
|
+
b_args = { :remote=>true, :class=>'rule-delete-button slotter', :type=>'button' }
|
172
|
+
b_args['data-slot-selector'] = slot_selector if slot_selector
|
173
|
+
b_args[:href] = path :action=>:delete, :success=>args[:success]
|
174
|
+
if (fset = args[:fallback_set]) && (fcard = Card.fetch(fset))
|
175
|
+
b_args['data-confirm']="Deleting will revert to #{card.rule_setting_name} rule for #{fcard.label }"
|
176
|
+
end
|
177
|
+
%{<span class="rule-delete-section">#{ button_tag 'Delete', b_args }</span>}
|
178
|
+
end
|
179
|
+
end
|
180
180
|
|
181
181
|
# used keys for args:
|
182
182
|
# :success, :set_selected, :set_options, :rule_context
|
@@ -271,21 +271,11 @@ format :html do
|
|
271
271
|
end
|
272
272
|
|
273
273
|
def edit_buttons args
|
274
|
-
delete_button = if !card.new_card?
|
275
|
-
b_args = { :remote=>true, :class=>'rule-delete-button slotter', :type=>'button' }
|
276
|
-
b_args[:href] = path :action=>:delete, :success=>args[:success]
|
277
|
-
if (fset = args[:fallback_set]) && (fcard = Card.fetch(fset))
|
278
|
-
b_args['data-confirm']="Deleting will revert to #{card.rule_setting_name} rule for #{fcard.label }"
|
279
|
-
end
|
280
|
-
%{<span class="rule-delete-section">#{ button_tag 'Delete', b_args }</span>}
|
281
|
-
end
|
282
|
-
cancel_path = path :view=>( card.new_card? ? :closed_rule : :open_rule ), :success=>'true'
|
283
274
|
wrap_with( :div, :class=>'button-area' ) do
|
284
275
|
[
|
285
|
-
delete_button,
|
276
|
+
args[:delete_button],
|
286
277
|
button_tag( 'Submit', :class=>'rule-submit-button', :situation=>'primary' ),
|
287
|
-
|
288
|
-
:href=>cancel_path )
|
278
|
+
args[:cancel_button]
|
289
279
|
]
|
290
280
|
end
|
291
281
|
end
|
@@ -3,9 +3,10 @@ event :admin_tasks, :on=>:update, :before=>:approve do
|
|
3
3
|
if task = Env.params[:task]
|
4
4
|
if Auth.always_ok?
|
5
5
|
case task.to_sym
|
6
|
-
when :clear_cache ; Card::Cache.reset_global
|
6
|
+
when :clear_cache ; Card::Cache.reset_global; Card::ViewCache.reset
|
7
7
|
when :repair_references ; Card::Reference.repair_all
|
8
8
|
when :empty_trash ; Card.empty_trash
|
9
|
+
when :clear_view_cache ; Card::ViewCache.reset
|
9
10
|
when :delete_old_revisions ; Card::Action.delete_old
|
10
11
|
when :delete_old_sessions
|
11
12
|
if months = Env.params[:months].to_i and months > 0
|
@@ -2,8 +2,8 @@ format :html do
|
|
2
2
|
|
3
3
|
view :raw do |args|
|
4
4
|
%(
|
5
|
-
<meta charset="UTF-8">
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
5
|
+
<meta charset="UTF-8">
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
7
7
|
#{ head_title }
|
8
8
|
#{ head_buttons }
|
9
9
|
#{ head_stylesheets }
|
@@ -5,7 +5,7 @@ format :html do
|
|
5
5
|
args.merge! :optional_help=>:show
|
6
6
|
super args
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
def default_title_args args
|
10
10
|
args[:title] ||= 'Sign In'
|
11
11
|
end
|
@@ -14,34 +14,34 @@ format :html do
|
|
14
14
|
# annoying step designed to avoid table of contents. sigh
|
15
15
|
_render_core( args )
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
view :closed_content do |args|
|
19
19
|
''
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
22
|
def default_core_args args={}
|
23
23
|
args[:buttons] = button_tag 'Sign in', :situation=>'primary'
|
24
24
|
if Card.new(:type_id=>Card::SignupID).ok? :create
|
25
25
|
args[:buttons] += link_to( '...or sign up!', card_path("account/signup"))
|
26
26
|
end
|
27
|
-
args[:buttons] += raw("<div style='float:right'>#{ view_link 'RESET PASSWORD', :edit }</div>") #FIXME - hardcoded styling
|
27
|
+
args[:buttons] += raw("<div style='float:right'>#{ view_link 'RESET PASSWORD', :edit, :path_opts=>{:slot=>{:hide=>:toolbar}} }</div>") #FIXME - hardcoded styling
|
28
28
|
args
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
view :core do |args|
|
32
32
|
account = card.fetch :trait=>:account, :new=>{}
|
33
|
-
|
33
|
+
|
34
34
|
form_args = {
|
35
35
|
:hidden => { :success=>"REDIRECT: #{interrupted_action || '*previous'}" },
|
36
36
|
:recaptcha => :off
|
37
37
|
}
|
38
|
-
|
38
|
+
|
39
39
|
with_inclusion_mode :edit do
|
40
40
|
card_form :update, form_args do
|
41
41
|
[
|
42
42
|
Auth.as_bot do
|
43
43
|
subformat(account)._render :content_formgroup, :structure=>true, :items=>{:autocomplete=>'on'}
|
44
|
-
end,
|
44
|
+
end,
|
45
45
|
_optional_render( :button_formgroup, args )
|
46
46
|
].join
|
47
47
|
end
|
@@ -54,16 +54,16 @@ format :html do
|
|
54
54
|
:title=>'Forgot Password',
|
55
55
|
:optional_help=>:hide,
|
56
56
|
:buttons => button_tag( 'Reset my password', :situation=>'primary' ),
|
57
|
-
:structure => true,
|
58
|
-
:hidden => {
|
57
|
+
:structure => true,
|
58
|
+
:hidden => {
|
59
59
|
:reset_password => true,
|
60
60
|
:success => { :view => :reset_password_success }
|
61
61
|
}
|
62
62
|
} )
|
63
|
-
|
63
|
+
|
64
64
|
Auth.as_bot { super args }
|
65
65
|
end
|
66
|
-
|
66
|
+
|
67
67
|
view :raw do |args|
|
68
68
|
'{{+*email|title:email;type:Phrase}}'
|
69
69
|
end
|
@@ -74,14 +74,14 @@ format :html do
|
|
74
74
|
|
75
75
|
end
|
76
76
|
|
77
|
-
event :signin, :before=>:approve, :on=>:update do
|
77
|
+
event :signin, :before=>:approve, :on=>:update do
|
78
78
|
email = subcards["+#{Card[:email ].name}"]
|
79
79
|
email &&= email['content']
|
80
80
|
pword = subcards["+#{Card[:password].name}"]
|
81
81
|
pword &&= pword['content']
|
82
82
|
|
83
|
-
abort :failure, 'bad signin args' unless email && pword
|
84
|
-
|
83
|
+
abort :failure, 'bad signin args' unless email && pword
|
84
|
+
|
85
85
|
if signin_id = Auth.authenticate( email, pword )
|
86
86
|
Auth.signin signin_id
|
87
87
|
else
|
@@ -92,7 +92,7 @@ event :signin, :before=>:approve, :on=>:update do
|
|
92
92
|
else ; "Wrong password"
|
93
93
|
end
|
94
94
|
abort :failure
|
95
|
-
end
|
95
|
+
end
|
96
96
|
end
|
97
97
|
|
98
98
|
event :signin_success, :after=>:signin do
|
@@ -102,10 +102,10 @@ end
|
|
102
102
|
event :send_reset_password_token, :before=>:signin, :on=>:update, :when=>proc{ |c| Env.params[:reset_password] } do
|
103
103
|
email = subcards["+#{Card[:email].name}"]
|
104
104
|
email &&= email['content']
|
105
|
-
|
105
|
+
|
106
106
|
if accted = Auth[ email.strip.downcase ] and accted.account.active?
|
107
107
|
accted.account.send_reset_password_token
|
108
|
-
abort :success
|
108
|
+
abort :success
|
109
109
|
else
|
110
110
|
if accted
|
111
111
|
errors.add :account, 'not active'
|
@@ -40,6 +40,18 @@ format :html do
|
|
40
40
|
months
|
41
41
|
</td>
|
42
42
|
</tr>
|
43
|
+
#{
|
44
|
+
if Card.config.view_cache
|
45
|
+
%{
|
46
|
+
<tr>
|
47
|
+
<td>view cache</td>
|
48
|
+
<td>#{ Card::ViewCache.count }</td>
|
49
|
+
<td>#{link_to 'clear view cache', card_path( 'update/:all?task=clear_view_cache' ) }</td>
|
50
|
+
</tr>
|
51
|
+
}
|
52
|
+
end
|
53
|
+
}
|
54
|
+
|
43
55
|
<tr>
|
44
56
|
<td>memory now</td>
|
45
57
|
<td>#{ newmem }M</td>
|
@@ -58,14 +70,14 @@ format :html do
|
|
58
70
|
<td>#{ newmem - oldmem }M</td>
|
59
71
|
<td></td>
|
60
72
|
</tr>
|
61
|
-
|
73
|
+
|
62
74
|
}
|
63
75
|
end
|
64
76
|
}
|
65
77
|
</table>
|
66
78
|
}
|
67
79
|
end
|
68
|
-
|
80
|
+
|
69
81
|
def delete_sessions_link months
|
70
82
|
link_to months, card_path( "update/:all?task=delete_old_sessions&months=#{months}")
|
71
83
|
end
|
@@ -100,7 +100,7 @@ format do
|
|
100
100
|
end
|
101
101
|
end
|
102
102
|
|
103
|
-
def
|
103
|
+
def each_reference_with_args args={}
|
104
104
|
search_result_names.each do |name|
|
105
105
|
yield(name, nest_args(args.reverse_merge!(:item=>:content)))
|
106
106
|
end
|
@@ -174,6 +174,13 @@ format :json do
|
|
174
174
|
end
|
175
175
|
end
|
176
176
|
|
177
|
+
format :rss do
|
178
|
+
def raw_feed_items
|
179
|
+
search_params.merge!(:default_limit => 25)
|
180
|
+
search_results
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
177
184
|
format :html do
|
178
185
|
|
179
186
|
view :card_list do |args|
|
@@ -215,9 +222,7 @@ format :html do
|
|
215
222
|
end
|
216
223
|
end
|
217
224
|
|
218
|
-
view :editor
|
219
|
-
text_area :content, :rows=>5, "data-card-type-code"=>card.type_code
|
220
|
-
end
|
225
|
+
view :editor, :mod=>Html::HtmlFormat
|
221
226
|
|
222
227
|
view :no_search_results do |args|
|
223
228
|
%{<div class="search-no-results"></div>}
|