recurring_select 1.1.0 → 1.2.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.
- data/README.md +48 -0
- data/app/assets/javascripts/recurring_select.js.coffee +24 -0
- data/app/assets/javascripts/recurring_select/fr.js.coffee +23 -0
- data/app/assets/javascripts/recurring_select_dialog.js.coffee.erb +83 -18
- data/app/assets/stylesheets/recurring_select.css.scss.erb +2 -2
- data/app/helpers/utilities/form_options_ext.rb +6 -6
- data/config/locales/en.yml +8 -0
- data/config/locales/fr.yml +8 -0
- data/lib/recurring_select.rb +0 -8
- data/lib/recurring_select/version.rb +1 -1
- metadata +25 -6
- checksums.yaml +0 -15
- data/app/assets/templates/recurring_select/dialog_template.html +0 -77
data/README.md
CHANGED
@@ -68,6 +68,54 @@ for IceCube. This is sometimes needed based on if you're receiving strings, fixe
|
|
68
68
|
numbers, strings vs symbols, etc.
|
69
69
|
`RecurringSelect.dirty_hash_to_rule(params)`
|
70
70
|
|
71
|
+
I18n
|
72
|
+
----
|
73
|
+
Recurrent select is I18n aware
|
74
|
+
|
75
|
+
You can create a locale file like this:
|
76
|
+
|
77
|
+
```
|
78
|
+
en:
|
79
|
+
recurring_select:
|
80
|
+
not_recurring: "- not recurring -"
|
81
|
+
change_schedule: "Change schedule..."
|
82
|
+
set_schedule: "Set schedule..."
|
83
|
+
new_custom_schedule: "New custom schedule..."
|
84
|
+
custom_schedule: "Custom schedule..."
|
85
|
+
or: or
|
86
|
+
```
|
87
|
+
|
88
|
+
You have to translate javascript texts too by including the locale file in your assets manifest. Only french and english are supported for the moment
|
89
|
+
|
90
|
+
```
|
91
|
+
//= require recurring_select/en
|
92
|
+
//= require recurring_select/fr
|
93
|
+
```
|
94
|
+
|
95
|
+
For other languages include a file like this:
|
96
|
+
|
97
|
+
```
|
98
|
+
$.fn.recurring_select.texts = {
|
99
|
+
repeat: "Repeat"
|
100
|
+
frequency: "Frequency"
|
101
|
+
daily: "Daily"
|
102
|
+
weekly: "Weekly"
|
103
|
+
monthly: "Monthly"
|
104
|
+
yearly: "Yearly"
|
105
|
+
every: "Every"
|
106
|
+
days: "day(s)"
|
107
|
+
weeks_on: "week(s) on"
|
108
|
+
months: "month(s)"
|
109
|
+
years: "year(s)"
|
110
|
+
first_day_of_week: 1
|
111
|
+
day_of_month: "Day of month"
|
112
|
+
day_of_week: "Day of week"
|
113
|
+
cancel: "Cancel"
|
114
|
+
ok: "OK"
|
115
|
+
days_first_letter: ["S", "M", "T", "W", "T", "F", "S" ]
|
116
|
+
order: ["1st", "2nd", "3rd", "4th"]
|
117
|
+
}
|
118
|
+
```
|
71
119
|
|
72
120
|
Testing and development
|
73
121
|
----------------------
|
@@ -72,3 +72,27 @@ $.fn.recurring_select = (method) ->
|
|
72
72
|
return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ) );
|
73
73
|
else
|
74
74
|
$.error( "Method #{method} does not exist on jQuery.recurring_select" );
|
75
|
+
|
76
|
+
$.fn.recurring_select.texts = {
|
77
|
+
repeat: "Repeat"
|
78
|
+
last_day: "Last Day"
|
79
|
+
frequency: "Frequency"
|
80
|
+
daily: "Daily"
|
81
|
+
weekly: "Weekly"
|
82
|
+
monthly: "Monthly"
|
83
|
+
yearly: "Yearly"
|
84
|
+
every: "Every"
|
85
|
+
days: "day(s)"
|
86
|
+
weeks_on: "week(s) on"
|
87
|
+
months: "month(s)"
|
88
|
+
years: "year(s)"
|
89
|
+
first_day_of_week: 1
|
90
|
+
day_of_month: "Day of month"
|
91
|
+
day_of_week: "Day of week"
|
92
|
+
cancel: "Cancel"
|
93
|
+
ok: "OK"
|
94
|
+
summary: "Summary"
|
95
|
+
first_day_of_week: 0
|
96
|
+
days_first_letter: ["S", "M", "T", "W", "T", "F", "S" ]
|
97
|
+
order: ["1st", "2nd", "3rd", "4th"]
|
98
|
+
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
$.fn.recurring_select.texts = {
|
2
|
+
repeat: "Récurrence"
|
3
|
+
last_day: "Dernier jour"
|
4
|
+
frequency: "Fréquence"
|
5
|
+
daily: "Tous les jours"
|
6
|
+
weekly: "Toutes les semaines"
|
7
|
+
monthly: "Tous les mois"
|
8
|
+
yearly: "Tous les ans"
|
9
|
+
every: "Tous les"
|
10
|
+
days: "jour(s)"
|
11
|
+
weeks_on: "semaine(s) le"
|
12
|
+
months: "mois"
|
13
|
+
years: "année(s)"
|
14
|
+
cancel: "Annuler"
|
15
|
+
day_of_month: "Jour du mois"
|
16
|
+
day_of_week: "Jour de la semaine"
|
17
|
+
ok: "OK"
|
18
|
+
cancel: "Annuler"
|
19
|
+
summary: "Résumé"
|
20
|
+
first_day_of_week: 1
|
21
|
+
days_first_letter: ["D", "L", "M", "M", "J", "V", "S" ]
|
22
|
+
order: ["1er", "2ème", "3ème", "4ème"]
|
23
|
+
}
|
@@ -1,10 +1,3 @@
|
|
1
|
-
<%
|
2
|
-
template_path = File.expand_path("../templates/recurring_select/dialog_template.html", File.dirname(__FILE__))
|
3
|
-
File.open(template_path) do |file|
|
4
|
-
@template = file.read
|
5
|
-
end
|
6
|
-
%>
|
7
|
-
|
8
1
|
window.RecurringSelectDialog =
|
9
2
|
class RecurringSelectDialog
|
10
3
|
constructor: (@recurring_selector) ->
|
@@ -20,11 +13,10 @@ window.RecurringSelectDialog =
|
|
20
13
|
|
21
14
|
open_in = $("body")
|
22
15
|
open_in = $(".ui-page-active") if $(".ui-page-active").length
|
23
|
-
open_in.append
|
16
|
+
open_in.append @template()
|
24
17
|
@outer_holder = $(".rs_dialog_holder")
|
25
18
|
@inner_holder = @outer_holder.find ".rs_dialog"
|
26
19
|
@content = @outer_holder.find ".rs_dialog_content"
|
27
|
-
|
28
20
|
@positionDialogVert(true)
|
29
21
|
@mainEventInit()
|
30
22
|
@freqInit()
|
@@ -159,7 +151,7 @@ window.RecurringSelectDialog =
|
|
159
151
|
@save_button.removeClass("disabled")
|
160
152
|
rule_str = @current_rule.str.replace("*", "")
|
161
153
|
if rule_str.length < 20
|
162
|
-
rule_str = "
|
154
|
+
rule_str = "#{$.fn.recurring_select.texts["summary"]}: "+rule_str
|
163
155
|
@summary.find("span").html rule_str
|
164
156
|
else
|
165
157
|
@summary.addClass "fetching"
|
@@ -190,7 +182,7 @@ window.RecurringSelectDialog =
|
|
190
182
|
day_link.addClass("selected")
|
191
183
|
|
192
184
|
# add last day of month button
|
193
|
-
monthly_calendar.append (end_of_month_link = $(document.createElement("a")).text("
|
185
|
+
monthly_calendar.append (end_of_month_link = $(document.createElement("a")).text($.fn.recurring_select.texts["last_day"]))
|
194
186
|
end_of_month_link.addClass("end_of_month")
|
195
187
|
if $.inArray(-1, @current_rule.hash.validations.day_of_month) != -1
|
196
188
|
end_of_month_link.addClass("selected")
|
@@ -200,8 +192,8 @@ window.RecurringSelectDialog =
|
|
200
192
|
init_calendar_weeks: (section) =>
|
201
193
|
monthly_calendar = section.find(".rs_calendar_week")
|
202
194
|
monthly_calendar.html ""
|
203
|
-
row_labels = ["
|
204
|
-
cell_str = ["
|
195
|
+
row_labels = $.fn.recurring_select.texts["order"]
|
196
|
+
cell_str = $.fn.recurring_select.texts["days_first_letter"]
|
205
197
|
|
206
198
|
for num in [1..4]
|
207
199
|
monthly_calendar.append "<span>#{row_labels[num - 1]}</span>"
|
@@ -235,19 +227,19 @@ window.RecurringSelectDialog =
|
|
235
227
|
switch @freq_select.val()
|
236
228
|
when "Weekly"
|
237
229
|
@current_rule.hash.rule_type = "IceCube::WeeklyRule"
|
238
|
-
@current_rule.str = "
|
230
|
+
@current_rule.str = $.fn.recurring_select.texts["weekly"]
|
239
231
|
@initWeeklyOptions()
|
240
232
|
when "Monthly"
|
241
233
|
@current_rule.hash.rule_type = "IceCube::MonthlyRule"
|
242
|
-
@current_rule.str = "
|
234
|
+
@current_rule.str = $.fn.recurring_select.texts["monthly"]
|
243
235
|
@initMonthlyOptions()
|
244
236
|
when "Yearly"
|
245
237
|
@current_rule.hash.rule_type = "IceCube::YearlyRule"
|
246
|
-
@current_rule.str = "
|
238
|
+
@current_rule.str = $.fn.recurring_select.texts["yearly"]
|
247
239
|
@initYearlyOptions()
|
248
240
|
else
|
249
241
|
@current_rule.hash.rule_type = "IceCube::DailyRule"
|
250
|
-
@current_rule.str = "
|
242
|
+
@current_rule.str = $.fn.recurring_select.texts["daily"]
|
251
243
|
@initDailyOptions()
|
252
244
|
@summaryUpdate()
|
253
245
|
@positionDialogVert()
|
@@ -277,7 +269,7 @@ window.RecurringSelectDialog =
|
|
277
269
|
@current_rule.hash ||= {}
|
278
270
|
@current_rule.hash.validations = {}
|
279
271
|
raw_days = @content.find(".monthly_options .rs_calendar_day a.selected").map ->
|
280
|
-
res = if $(this).text() == "
|
272
|
+
res = if $(this).text() == $.fn.recurring_select.texts["last_day"] then -1 else parseInt($(this).text())
|
281
273
|
res
|
282
274
|
@current_rule.hash.validations.day_of_week = {}
|
283
275
|
@current_rule.hash.validations.day_of_month = raw_days.get()
|
@@ -299,3 +291,76 @@ window.RecurringSelectDialog =
|
|
299
291
|
@summaryUpdate()
|
300
292
|
false
|
301
293
|
|
294
|
+
# ========================= Change callbacks ===============================
|
295
|
+
|
296
|
+
template: () ->
|
297
|
+
str = "
|
298
|
+
<div class='rs_dialog_holder'>
|
299
|
+
<div class='rs_dialog'>
|
300
|
+
<div class='rs_dialog_content'>
|
301
|
+
<h1>#{$.fn.recurring_select.texts["repeat"]} <a href='#' title='#{$.fn.recurring_select.texts["cancel"]}' Alt='#{$.fn.recurring_select.texts["cancel"]}'></a> </h1>
|
302
|
+
<p>
|
303
|
+
<label for='rs_frequency'>#{$.fn.recurring_select.texts["frequency"]}:</label>
|
304
|
+
<select id='rs_frequency' class='rs_frequency' name='rs_frequency'>
|
305
|
+
<option value='Daily'>#{$.fn.recurring_select.texts["daily"]}</option>
|
306
|
+
<option value='Weekly'>#{$.fn.recurring_select.texts["weekly"]}</option>
|
307
|
+
<option value='Monthly'>#{$.fn.recurring_select.texts["monthly"]}</option>
|
308
|
+
<option value='Yearly'>#{$.fn.recurring_select.texts["yearly"]}</option>
|
309
|
+
</select>
|
310
|
+
</p>
|
311
|
+
|
312
|
+
<div class='daily_options freq_option_section'>
|
313
|
+
<p>
|
314
|
+
#{$.fn.recurring_select.texts["every"]}
|
315
|
+
<input type='text' name='rs_daily_interval' class='rs_daily_interval rs_interval' value='1' size='2' />
|
316
|
+
#{$.fn.recurring_select.texts["days"]}
|
317
|
+
</p>
|
318
|
+
</div>
|
319
|
+
<div class='weekly_options freq_option_section'>
|
320
|
+
<p>
|
321
|
+
#{$.fn.recurring_select.texts["every"]}
|
322
|
+
<input type='text' name='rs_weekly_interval' class='rs_weekly_interval rs_interval' value='1' size='2' />
|
323
|
+
#{$.fn.recurring_select.texts["weeks_on"]}:
|
324
|
+
</p>
|
325
|
+
<div class='day_holder'>
|
326
|
+
"
|
327
|
+
for day_of_week in [$.fn.recurring_select.texts["first_day_of_week"]...(7 + $.fn.recurring_select.texts["first_day_of_week"])]
|
328
|
+
day_of_week = day_of_week % 7
|
329
|
+
console.log day_of_week
|
330
|
+
str += "<a href='#' data-value='#{day_of_week}'>#{$.fn.recurring_select.texts["days_first_letter"][day_of_week]}</a>"
|
331
|
+
|
332
|
+
str += "
|
333
|
+
</div>
|
334
|
+
<span style='clear:both; visibility:hidden; height:1px;'>.</span>
|
335
|
+
</div>
|
336
|
+
<div class='monthly_options freq_option_section'>
|
337
|
+
<p>
|
338
|
+
#{$.fn.recurring_select.texts["every"]}
|
339
|
+
<input type='text' name='rs_monthly_interval' class='rs_monthly_interval rs_interval' value='1' size='2' />
|
340
|
+
#{$.fn.recurring_select.texts["months"]}:
|
341
|
+
</p>
|
342
|
+
<p class='monthly_rule_type'>
|
343
|
+
<span>#{$.fn.recurring_select.texts["day_of_month"]} <input type='radio' class='monthly_rule_type_day' name='monthly_rule_type' value='true' /></span>
|
344
|
+
<span>#{$.fn.recurring_select.texts["day_of_week"]} <input type='radio' class='monthly_rule_type_week' name='monthly_rule_type' value='true' /></span>
|
345
|
+
</p>
|
346
|
+
<p class='rs_calendar_day'></p>
|
347
|
+
<p class='rs_calendar_week'></p>
|
348
|
+
</div>
|
349
|
+
<div class='yearly_options freq_option_section'>
|
350
|
+
<p>
|
351
|
+
#{$.fn.recurring_select.texts["every"]}
|
352
|
+
<input type='text' name='rs_yearly_interval' class='rs_yearly_interval rs_interval' value='1' size='2' />
|
353
|
+
#{$.fn.recurring_select.texts["years"]}
|
354
|
+
</p>
|
355
|
+
</div>
|
356
|
+
<p class='rs_summary'>
|
357
|
+
<span></span>
|
358
|
+
</p>
|
359
|
+
<div class='controls'>
|
360
|
+
<input type='button' class='rs_save' value='#{$.fn.recurring_select.texts["ok"]}' />
|
361
|
+
<input type='button' class='rs_cancel' value='#{$.fn.recurring_select.texts["cancel"]}' />
|
362
|
+
</div>
|
363
|
+
</div>
|
364
|
+
</div>
|
365
|
+
</div>
|
366
|
+
"
|
@@ -3,19 +3,19 @@ module RecurringSelectHelper
|
|
3
3
|
def recurring_options_for_select(currently_selected_rule = nil, default_schedules = nil, options = {})
|
4
4
|
|
5
5
|
options_array = []
|
6
|
-
blank_option_label = options[:blank_label] || "
|
6
|
+
blank_option_label = options[:blank_label] || I18n.t("recurring_select.not_recurring")
|
7
7
|
blank_option = [blank_option_label, "null"]
|
8
|
-
separator = ["or", {:disabled => true}]
|
8
|
+
separator = [I18n.t("recurring_select.or"), {:disabled => true}]
|
9
9
|
|
10
10
|
if default_schedules.blank?
|
11
11
|
if currently_selected_rule
|
12
12
|
options_array << blank_option if options[:allow_blank]
|
13
13
|
options_array << ice_cube_rule_to_option(currently_selected_rule)
|
14
14
|
options_array << separator
|
15
|
-
options_array << ["
|
15
|
+
options_array << [I18n.t("recurring_select.change_schedule"), "custom"]
|
16
16
|
else
|
17
17
|
options_array << blank_option
|
18
|
-
options_array << ["
|
18
|
+
options_array << [I18n.t("recurring_select.set_schedule"), "custom"]
|
19
19
|
end
|
20
20
|
else
|
21
21
|
options_array << blank_option if options[:allow_blank]
|
@@ -26,9 +26,9 @@ module RecurringSelectHelper
|
|
26
26
|
|
27
27
|
if currently_selected_rule and not current_rule_in_defaults?(currently_selected_rule, default_schedules)
|
28
28
|
options_array << ice_cube_rule_to_option(currently_selected_rule, true)
|
29
|
-
custom_label = ["
|
29
|
+
custom_label = [I18n.t("recurring_select.new_custom_schedule"), "custom"]
|
30
30
|
else
|
31
|
-
custom_label = ["
|
31
|
+
custom_label = [I18n.t("recurring_select.custom_schedule"), "custom"]
|
32
32
|
end
|
33
33
|
|
34
34
|
options_array << separator
|
data/lib/recurring_select.rb
CHANGED
@@ -1,14 +1,6 @@
|
|
1
1
|
require "recurring_select/engine"
|
2
2
|
require "ice_cube"
|
3
3
|
|
4
|
-
#TODO: remove monkey patch when https://github.com/seejohnrun/ice_cube/issues/136 is fixed
|
5
|
-
IceCube::ValidatedRule.class_eval do
|
6
|
-
alias old_to_s to_s
|
7
|
-
def to_s
|
8
|
-
old_to_s.gsub("when it is", "and")
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
4
|
module RecurringSelect
|
13
5
|
|
14
6
|
def self.dirty_hash_to_rule(params)
|
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: recurring_select
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Jobber
|
@@ -10,11 +11,12 @@ authors:
|
|
10
11
|
autorequire:
|
11
12
|
bindir: bin
|
12
13
|
cert_chain: []
|
13
|
-
date: 2013-
|
14
|
+
date: 2013-07-03 00:00:00.000000000 Z
|
14
15
|
dependencies:
|
15
16
|
- !ruby/object:Gem::Dependency
|
16
17
|
name: rails
|
17
18
|
requirement: !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
18
20
|
requirements:
|
19
21
|
- - ! '>='
|
20
22
|
- !ruby/object:Gem::Version
|
@@ -22,6 +24,7 @@ dependencies:
|
|
22
24
|
type: :runtime
|
23
25
|
prerelease: false
|
24
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
none: false
|
25
28
|
requirements:
|
26
29
|
- - ! '>='
|
27
30
|
- !ruby/object:Gem::Version
|
@@ -29,6 +32,7 @@ dependencies:
|
|
29
32
|
- !ruby/object:Gem::Dependency
|
30
33
|
name: jquery-rails
|
31
34
|
requirement: !ruby/object:Gem::Requirement
|
35
|
+
none: false
|
32
36
|
requirements:
|
33
37
|
- - ! '>='
|
34
38
|
- !ruby/object:Gem::Version
|
@@ -36,6 +40,7 @@ dependencies:
|
|
36
40
|
type: :runtime
|
37
41
|
prerelease: false
|
38
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
none: false
|
39
44
|
requirements:
|
40
45
|
- - ! '>='
|
41
46
|
- !ruby/object:Gem::Version
|
@@ -43,6 +48,7 @@ dependencies:
|
|
43
48
|
- !ruby/object:Gem::Dependency
|
44
49
|
name: ice_cube
|
45
50
|
requirement: !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
46
52
|
requirements:
|
47
53
|
- - ! '>='
|
48
54
|
- !ruby/object:Gem::Version
|
@@ -50,6 +56,7 @@ dependencies:
|
|
50
56
|
type: :runtime
|
51
57
|
prerelease: false
|
52
58
|
version_requirements: !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
53
60
|
requirements:
|
54
61
|
- - ! '>='
|
55
62
|
- !ruby/object:Gem::Version
|
@@ -57,6 +64,7 @@ dependencies:
|
|
57
64
|
- !ruby/object:Gem::Dependency
|
58
65
|
name: sass-rails
|
59
66
|
requirement: !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
60
68
|
requirements:
|
61
69
|
- - ! '>='
|
62
70
|
- !ruby/object:Gem::Version
|
@@ -64,6 +72,7 @@ dependencies:
|
|
64
72
|
type: :runtime
|
65
73
|
prerelease: false
|
66
74
|
version_requirements: !ruby/object:Gem::Requirement
|
75
|
+
none: false
|
67
76
|
requirements:
|
68
77
|
- - ! '>='
|
69
78
|
- !ruby/object:Gem::Version
|
@@ -71,6 +80,7 @@ dependencies:
|
|
71
80
|
- !ruby/object:Gem::Dependency
|
72
81
|
name: coffee-rails
|
73
82
|
requirement: !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
74
84
|
requirements:
|
75
85
|
- - ! '>='
|
76
86
|
- !ruby/object:Gem::Version
|
@@ -78,6 +88,7 @@ dependencies:
|
|
78
88
|
type: :runtime
|
79
89
|
prerelease: false
|
80
90
|
version_requirements: !ruby/object:Gem::Requirement
|
91
|
+
none: false
|
81
92
|
requirements:
|
82
93
|
- - ! '>='
|
83
94
|
- !ruby/object:Gem::Version
|
@@ -85,6 +96,7 @@ dependencies:
|
|
85
96
|
- !ruby/object:Gem::Dependency
|
86
97
|
name: appraisal
|
87
98
|
requirement: !ruby/object:Gem::Requirement
|
99
|
+
none: false
|
88
100
|
requirements:
|
89
101
|
- - ! '>='
|
90
102
|
- !ruby/object:Gem::Version
|
@@ -92,6 +104,7 @@ dependencies:
|
|
92
104
|
type: :development
|
93
105
|
prerelease: false
|
94
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
95
108
|
requirements:
|
96
109
|
- - ! '>='
|
97
110
|
- !ruby/object:Gem::Version
|
@@ -99,6 +112,7 @@ dependencies:
|
|
99
112
|
- !ruby/object:Gem::Dependency
|
100
113
|
name: rspec
|
101
114
|
requirement: !ruby/object:Gem::Requirement
|
115
|
+
none: false
|
102
116
|
requirements:
|
103
117
|
- - '='
|
104
118
|
- !ruby/object:Gem::Version
|
@@ -106,6 +120,7 @@ dependencies:
|
|
106
120
|
type: :development
|
107
121
|
prerelease: false
|
108
122
|
version_requirements: !ruby/object:Gem::Requirement
|
123
|
+
none: false
|
109
124
|
requirements:
|
110
125
|
- - '='
|
111
126
|
- !ruby/object:Gem::Version
|
@@ -121,16 +136,18 @@ files:
|
|
121
136
|
- app/assets/images/recurring_select/cancel.png
|
122
137
|
- app/assets/images/recurring_select/throbber_13x13.gif
|
123
138
|
- app/assets/javascripts/jquery-mobile-rs.js.coffee
|
139
|
+
- app/assets/javascripts/recurring_select/fr.js.coffee
|
124
140
|
- app/assets/javascripts/recurring_select.js.coffee
|
125
141
|
- app/assets/javascripts/recurring_select_dialog.js.coffee.erb
|
126
142
|
- app/assets/stylesheets/jquery-mobile-rs.css.scss.erb
|
127
143
|
- app/assets/stylesheets/recurring_select.css.scss.erb
|
128
144
|
- app/assets/stylesheets/utilities.scss
|
129
|
-
- app/assets/templates/recurring_select/dialog_template.html
|
130
145
|
- app/helpers/recurring_select_helper.rb
|
131
146
|
- app/helpers/utilities/form_options_ext.rb
|
132
147
|
- app/helpers/utilities/tag_ext.rb
|
133
148
|
- app/middleware/recurring_select_middleware.rb
|
149
|
+
- config/locales/en.yml
|
150
|
+
- config/locales/fr.yml
|
134
151
|
- config/routes.rb
|
135
152
|
- lib/recurring_select/engine.rb
|
136
153
|
- lib/recurring_select/version.rb
|
@@ -140,25 +157,27 @@ files:
|
|
140
157
|
- README.md
|
141
158
|
homepage: http://github.com/getjobber/recurring_select
|
142
159
|
licenses: []
|
143
|
-
metadata: {}
|
144
160
|
post_install_message:
|
145
161
|
rdoc_options: []
|
146
162
|
require_paths:
|
147
163
|
- lib
|
148
164
|
required_ruby_version: !ruby/object:Gem::Requirement
|
165
|
+
none: false
|
149
166
|
requirements:
|
150
167
|
- - ! '>='
|
151
168
|
- !ruby/object:Gem::Version
|
152
169
|
version: '0'
|
153
170
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
171
|
+
none: false
|
154
172
|
requirements:
|
155
173
|
- - ! '>='
|
156
174
|
- !ruby/object:Gem::Version
|
157
175
|
version: '0'
|
158
176
|
requirements: []
|
159
177
|
rubyforge_project:
|
160
|
-
rubygems_version:
|
178
|
+
rubygems_version: 1.8.25
|
161
179
|
signing_key:
|
162
|
-
specification_version:
|
180
|
+
specification_version: 3
|
163
181
|
summary: A select helper which gives you magical powers to generate ice_cube rules.
|
164
182
|
test_files: []
|
183
|
+
has_rdoc:
|
checksums.yaml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
!binary "U0hBMQ==":
|
3
|
-
metadata.gz: !binary |-
|
4
|
-
MWJkOGI0NDIxNzQ1MzU4MTBmOGI1MGM4OTI3YThlZTQxNzQyNTIyMg==
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
NTM0NDE2OGRiZDYxOWFiZWM4ZjM4OTVhNDBiNGNmZGUzMGQ2NTNiYQ==
|
7
|
-
!binary "U0hBNTEy":
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
NGJhMzZhZTA3ZWFlNTg1OWQwNTVhMWE0MDIyYzJmYjQwM2NkNDllNDhlZGU0
|
10
|
-
NDA5ZjhjNzBhYWRhMGZhNzkwYmExMTkwYTgwMDIzOWM4ZjQwNjk5ZGJjMWE4
|
11
|
-
YzFkM2M4NWJhZjNmYWIxZTk2MDEzYjBhYjU3ZmUyM2QyMTY5M2U=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MmY2OGVhNzFlNWQ0NDgzOGZiYTAyN2NmNzk1OTA5NzkzOGQyY2Q5NDFmYzJl
|
14
|
-
OTkxZDhmYWU1MTJhOGM3OWQxMTk5ZWZiOTIwMzU2Njk4YzRmZTM1NjJiYTMz
|
15
|
-
Y2Q3ODRjNDc5ZDM2ZWMyYmNmNzkzYzA3ZDIwMGQwODYxODYyN2Y=
|
@@ -1,77 +0,0 @@
|
|
1
|
-
<div class='rs_dialog_holder'>
|
2
|
-
<div class='rs_dialog'>
|
3
|
-
<div class='rs_dialog_content'>
|
4
|
-
<h1>Repeat <a href='#' title='Cancel' Alt='Cancel'></a> </h1>
|
5
|
-
|
6
|
-
<p>
|
7
|
-
<label for='rs_frequency'>Frequency:</label>
|
8
|
-
<select id='rs_frequency' class='rs_frequency' name='rs_frequency'>
|
9
|
-
<option value="Daily">Daily</option>
|
10
|
-
<option value="Weekly">Weekly</option>
|
11
|
-
<option value="Monthly">Monthly</option>
|
12
|
-
<option value="Yearly">Yearly</option>
|
13
|
-
</select>
|
14
|
-
</p>
|
15
|
-
|
16
|
-
<div class="daily_options freq_option_section">
|
17
|
-
<p>
|
18
|
-
Every
|
19
|
-
<input type='text' name='rs_daily_interval' class='rs_daily_interval rs_interval' value='1' size='2' />
|
20
|
-
day(s)
|
21
|
-
</p>
|
22
|
-
</div>
|
23
|
-
|
24
|
-
<div class="weekly_options freq_option_section">
|
25
|
-
<p>
|
26
|
-
Every
|
27
|
-
<input type='text' name='rs_weekly_interval' class='rs_weekly_interval rs_interval' value='1' size='2' />
|
28
|
-
week(s) on :
|
29
|
-
</p>
|
30
|
-
<div class="day_holder">
|
31
|
-
<a href="#" data-value='0'>S</a>
|
32
|
-
<a href="#" data-value='1'>M</a>
|
33
|
-
<a href="#" data-value='2'>T</a>
|
34
|
-
<a href="#" data-value='3'>W</a>
|
35
|
-
<a href="#" data-value='4'>T</a>
|
36
|
-
<a href="#" data-value='5'>F</a>
|
37
|
-
<a href="#" data-value='6'>S</a>
|
38
|
-
</div>
|
39
|
-
|
40
|
-
<span style="clear:both; visibility:hidden; height:1px;">.</span>
|
41
|
-
</div>
|
42
|
-
|
43
|
-
<div class="monthly_options freq_option_section">
|
44
|
-
<p>
|
45
|
-
Every
|
46
|
-
<input type='text' name='rs_monthly_interval' class='rs_monthly_interval rs_interval' value='1' size='2' />
|
47
|
-
month(s):
|
48
|
-
</p>
|
49
|
-
<p class="monthly_rule_type">
|
50
|
-
<span>Day of Month <input type="radio" class="monthly_rule_type_day" name="monthly_rule_type" value="true" /></span>
|
51
|
-
<span>Day of Week <input type="radio" class="monthly_rule_type_week" name="monthly_rule_type" value="true" /></span>
|
52
|
-
</p>
|
53
|
-
<p class="rs_calendar_day"></p>
|
54
|
-
<p class="rs_calendar_week"></p>
|
55
|
-
</div>
|
56
|
-
|
57
|
-
<div class="yearly_options freq_option_section">
|
58
|
-
<p>
|
59
|
-
Every
|
60
|
-
<input type='text' name='rs_yearly_interval' class='rs_yearly_interval rs_interval' value='1' size='2' />
|
61
|
-
year(s)
|
62
|
-
</p>
|
63
|
-
</div>
|
64
|
-
|
65
|
-
|
66
|
-
<p class='rs_summary'>
|
67
|
-
<span></span>
|
68
|
-
</p>
|
69
|
-
|
70
|
-
<div class="controls">
|
71
|
-
<input type="button" class="rs_save" value='OK' />
|
72
|
-
<input type="button" class="rs_cancel" value='Cancel' />
|
73
|
-
</div>
|
74
|
-
|
75
|
-
</div>
|
76
|
-
</div>
|
77
|
-
</div>
|