recurring_select 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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>
|