recurring_select 3.0.0 → 4.0.0.rc1

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.
metadata CHANGED
@@ -1,16 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: recurring_select
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 4.0.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jobber
8
8
  - Forrest Zeisler
9
9
  - Nathan Youngman
10
+ - Gregory Schmit
10
11
  autorequire:
11
12
  bindir: bin
12
13
  cert_chain: []
13
- date: 2020-08-31 00:00:00.000000000 Z
14
+ date: 2024-09-09 00:00:00.000000000 Z
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
17
  name: rails
@@ -18,28 +19,14 @@ dependencies:
18
19
  requirements:
19
20
  - - ">="
20
21
  - !ruby/object:Gem::Version
21
- version: '5.2'
22
+ version: '6.1'
22
23
  type: :runtime
23
24
  prerelease: false
24
25
  version_requirements: !ruby/object:Gem::Requirement
25
26
  requirements:
26
27
  - - ">="
27
28
  - !ruby/object:Gem::Version
28
- version: '5.2'
29
- - !ruby/object:Gem::Dependency
30
- name: jquery-rails
31
- requirement: !ruby/object:Gem::Requirement
32
- requirements:
33
- - - ">="
34
- - !ruby/object:Gem::Version
35
- version: '3.0'
36
- type: :runtime
37
- prerelease: false
38
- version_requirements: !ruby/object:Gem::Requirement
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- version: '3.0'
29
+ version: '6.1'
43
30
  - !ruby/object:Gem::Dependency
44
31
  name: ice_cube
45
32
  requirement: !ruby/object:Gem::Requirement
@@ -60,28 +47,14 @@ dependencies:
60
47
  requirements:
61
48
  - - ">="
62
49
  - !ruby/object:Gem::Version
63
- version: '4.0'
64
- type: :runtime
65
- prerelease: false
66
- version_requirements: !ruby/object:Gem::Requirement
67
- requirements:
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- version: '4.0'
71
- - !ruby/object:Gem::Dependency
72
- name: coffee-rails
73
- requirement: !ruby/object:Gem::Requirement
74
- requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- version: '3.1'
50
+ version: '5.0'
78
51
  type: :runtime
79
52
  prerelease: false
80
53
  version_requirements: !ruby/object:Gem::Requirement
81
54
  requirements:
82
55
  - - ">="
83
56
  - !ruby/object:Gem::Version
84
- version: '3.1'
57
+ version: '5.0'
85
58
  - !ruby/object:Gem::Dependency
86
59
  name: bundler
87
60
  requirement: !ruby/object:Gem::Requirement
@@ -141,7 +114,7 @@ dependencies:
141
114
  description: This gem provides a useful interface for creating recurring rules for
142
115
  the ice_cube gem.
143
116
  email:
144
- - forrest@getjobber.com
117
+ - schmitgreg@gmail.com
145
118
  executables: []
146
119
  extensions: []
147
120
  extra_rdoc_files: []
@@ -151,10 +124,12 @@ files:
151
124
  - Rakefile
152
125
  - app/assets/images/recurring_select/cancel.png
153
126
  - app/assets/images/recurring_select/throbber_13x13.gif
154
- - app/assets/javascripts/jquery-mobile-rs.js.coffee
155
- - app/assets/javascripts/recurring_select.js.coffee
156
- - app/assets/javascripts/recurring_select/fr.js.coffee
157
- - app/assets/javascripts/recurring_select_dialog.js.coffee.erb
127
+ - app/assets/javascripts/defaults.js
128
+ - app/assets/javascripts/jquery-mobile-rs.js
129
+ - app/assets/javascripts/recurring_select.js
130
+ - app/assets/javascripts/recurring_select/fr.js
131
+ - app/assets/javascripts/recurring_select_dialog.js.erb
132
+ - app/assets/javascripts/utils.js
158
133
  - app/assets/stylesheets/jquery-mobile-rs.scss
159
134
  - app/assets/stylesheets/recurring_select.scss
160
135
  - app/assets/stylesheets/utilities.scss
@@ -167,7 +142,7 @@ files:
167
142
  - lib/recurring_select.rb
168
143
  - lib/recurring_select/engine.rb
169
144
  - lib/recurring_select/version.rb
170
- homepage: http://github.com/getjobber/recurring_select
145
+ homepage: http://github.com/gregschmit/recurring_select
171
146
  licenses:
172
147
  - MIT
173
148
  metadata: {}
@@ -182,11 +157,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
182
157
  version: '0'
183
158
  required_rubygems_version: !ruby/object:Gem::Requirement
184
159
  requirements:
185
- - - ">="
160
+ - - ">"
186
161
  - !ruby/object:Gem::Version
187
- version: '0'
162
+ version: 1.3.1
188
163
  requirements: []
189
- rubygems_version: 3.0.6
164
+ rubygems_version: 3.4.10
190
165
  signing_key:
191
166
  specification_version: 4
192
167
  summary: A select helper which gives you magical powers to generate ice_cube rules.
@@ -1,15 +0,0 @@
1
- #= require recurring_select
2
- #= require_self
3
-
4
- $ ->
5
- $(document).on "recurring_select:cancel recurring_select:save", ".recurring_select", ->
6
- $(this).selectmenu('refresh')
7
-
8
- $(document).on "recurring_select:dialog_opened", ".rs_dialog_holder", ->
9
- $(this).find("select").attr("data-theme", $('.recurring_select').data("theme")).attr("data-mini", true).selectmenu()
10
- $(this).find("input[type=text]").textinput()
11
-
12
- $(this).on "recurring_select:dialog_positioned", ".rs_dialog", ->
13
- $(this).css
14
- "top" : $(window).scrollTop()+"px"
15
-
@@ -1,105 +0,0 @@
1
- #= require recurring_select_dialog
2
- #= require_self
3
-
4
- $ = jQuery
5
- $ ->
6
- $(document).on "focus", ".recurring_select", ->
7
- $(this).recurring_select('set_initial_values')
8
-
9
- $(document).on "change", ".recurring_select", ->
10
- $(this).recurring_select('changed')
11
-
12
- methods =
13
- set_initial_values: ->
14
- @data 'initial-value-hash', @val()
15
- @data 'initial-value-str', $(@find("option").get()[@.prop("selectedIndex")]).text()
16
-
17
- changed: ->
18
- if @val() == "custom"
19
- methods.open_custom.apply(@)
20
- else
21
- methods.set_initial_values.apply(@)
22
-
23
- open_custom: ->
24
- @data "recurring-select-active", true
25
- new RecurringSelectDialog(@)
26
- @blur()
27
-
28
- save: (new_rule) ->
29
- @find("option[data-custom]").remove()
30
- new_json_val = JSON.stringify(new_rule.hash)
31
-
32
- # TODO: check for matching name, and replace that value if found
33
-
34
- if $.inArray(new_json_val, @find("option").map -> $(@).val()) == -1
35
- methods.insert_option.apply @, [new_rule.str, new_json_val]
36
-
37
- @val new_json_val
38
- methods.set_initial_values.apply @
39
- @.trigger "recurring_select:save"
40
-
41
- current_rule: ->
42
- str: @data("initial-value-str")
43
- hash: $.parseJSON(@data("initial-value-hash"))
44
-
45
- cancel: ->
46
- @val @data("initial-value-hash")
47
- @data "recurring-select-active", false
48
- @.trigger "recurring_select:cancel"
49
-
50
-
51
- insert_option: (new_rule_str, new_rule_json) ->
52
- separator = @find("option:disabled")
53
- if separator.length == 0
54
- separator = @find("option")
55
- separator = separator.last()
56
-
57
- new_option = $(document.createElement("option"))
58
- new_option.attr "data-custom", true
59
-
60
- if new_rule_str.substr(new_rule_str.length - 1) != "*"
61
- new_rule_str+="*"
62
-
63
- new_option.text new_rule_str
64
- new_option.val new_rule_json
65
- new_option.insertBefore separator
66
-
67
- methods: ->
68
- methods
69
-
70
- $.fn.recurring_select = (method) ->
71
- if method of methods
72
- return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ) );
73
- else
74
- $.error( "Method #{method} does not exist on jQuery.recurring_select" );
75
-
76
- $.fn.recurring_select.options = {
77
- monthly: {
78
- show_week: [true, true, true, true, false, false]
79
- }
80
- }
81
-
82
- $.fn.recurring_select.texts = {
83
- locale_iso_code: "en"
84
- repeat: "Repeat"
85
- last_day: "Last Day"
86
- frequency: "Frequency"
87
- daily: "Daily"
88
- weekly: "Weekly"
89
- monthly: "Monthly"
90
- yearly: "Yearly"
91
- every: "Every"
92
- days: "day(s)"
93
- weeks_on: "week(s) on"
94
- months: "month(s)"
95
- years: "year(s)"
96
- day_of_month: "Day of month"
97
- day_of_week: "Day of week"
98
- cancel: "Cancel"
99
- ok: "OK"
100
- summary: "Summary"
101
- first_day_of_week: 0
102
- days_first_letter: ["S", "M", "T", "W", "T", "F", "S" ]
103
- order: ["1st", "2nd", "3rd", "4th", "5th", "Last"]
104
- show_week: [true, true, true, true, false, false]
105
- }
@@ -1,372 +0,0 @@
1
- window.RecurringSelectDialog =
2
- class RecurringSelectDialog
3
- constructor: (@recurring_selector) ->
4
- @current_rule = @recurring_selector.recurring_select('current_rule')
5
- @initDialogBox()
6
- if not @current_rule.hash? or not @current_rule.hash.rule_type?
7
- @freqChanged()
8
- else
9
- setTimeout @positionDialogVert, 10 # allow initial render
10
-
11
- initDialogBox: ->
12
- $(".rs_dialog_holder").remove()
13
-
14
- open_in = $("body")
15
- open_in = $(".ui-page-active") if $(".ui-page-active").length
16
- open_in.append @template()
17
- @outer_holder = $(".rs_dialog_holder")
18
- @inner_holder = @outer_holder.find ".rs_dialog"
19
- @content = @outer_holder.find ".rs_dialog_content"
20
- @positionDialogVert(true)
21
- @mainEventInit()
22
- @freqInit()
23
- @summaryInit()
24
- @outer_holder.trigger "recurring_select:dialog_opened"
25
- @freq_select.focus()
26
-
27
- positionDialogVert: (initial_positioning) =>
28
- window_height = $(window).height()
29
- window_width = $(window).width()
30
- dialog_height = @content.outerHeight()
31
- if dialog_height < 80
32
- dialog_height = 80
33
- margin_top = (window_height - dialog_height)/2 - 30
34
- margin_top = 10 if margin_top < 10
35
- # if dialog_height > window_height - 20
36
- # dialog_height = window_height - 20
37
-
38
- new_style_hash =
39
- "margin-top" : margin_top+"px"
40
- "min-height" : dialog_height+"px"
41
-
42
- if initial_positioning?
43
- @inner_holder.css new_style_hash
44
- @inner_holder.trigger "recurring_select:dialog_positioned"
45
- else
46
- @inner_holder.addClass "animated"
47
- @inner_holder.animate new_style_hash, 200, =>
48
- @inner_holder.removeClass "animated"
49
- @content.css {"width": "auto"}
50
- @inner_holder.trigger "recurring_select:dialog_positioned"
51
-
52
- cancel: =>
53
- @outer_holder.remove()
54
- @recurring_selector.recurring_select('cancel')
55
-
56
- outerCancel: (event) =>
57
- if $(event.target).hasClass("rs_dialog_holder")
58
- @cancel()
59
-
60
- save: =>
61
- return if !@current_rule.str?
62
- @outer_holder.remove()
63
- @recurring_selector.recurring_select('save', @current_rule)
64
-
65
- # ========================= Init Methods ===============================
66
-
67
- mainEventInit: ->
68
- # Tap hooks are for jQueryMobile
69
- @outer_holder.on 'click tap', @outerCancel
70
- @content.on 'click tap', 'h1 a', @cancel
71
- @save_button = @content.find('input.rs_save').on "click tap", @save
72
- @content.find('input.rs_cancel').on "click tap", @cancel
73
-
74
- freqInit: ->
75
- @freq_select = @outer_holder.find ".rs_frequency"
76
- if @current_rule.hash? && (rule_type = @current_rule.hash.rule_type)?
77
- if rule_type.search(/Weekly/) != -1
78
- @freq_select.prop('selectedIndex', 1)
79
- @initWeeklyOptions()
80
- else if rule_type.search(/Monthly/) != -1
81
- @freq_select.prop('selectedIndex', 2)
82
- @initMonthlyOptions()
83
- else if rule_type.search(/Yearly/) != -1
84
- @freq_select.prop('selectedIndex', 3)
85
- @initYearlyOptions()
86
- else
87
- @initDailyOptions()
88
- @freq_select.on "change", @freqChanged
89
-
90
- initDailyOptions: ->
91
- section = @content.find('.daily_options')
92
- interval_input = section.find('.rs_daily_interval')
93
- interval_input.val(@current_rule.hash.interval)
94
- interval_input.on "change keyup", @intervalChanged
95
- section.show()
96
-
97
- initWeeklyOptions: ->
98
- section = @content.find('.weekly_options')
99
-
100
- # connect the interval field
101
- interval_input = section.find('.rs_weekly_interval')
102
- interval_input.val(@current_rule.hash.interval)
103
- interval_input.on "change keyup", @intervalChanged
104
-
105
- # clear selected days
106
- section.find(".day_holder a").each (index, element) ->
107
- $(element).removeClass("selected")
108
-
109
- # connect the day fields
110
- if @current_rule.hash.validations? && @current_rule.hash.validations.day?
111
- $(@current_rule.hash.validations.day).each (index, val) ->
112
- section.find(".day_holder a[data-value='"+val+"']").addClass("selected")
113
-
114
- section.off('click', '.day_holder a').on "click", ".day_holder a", @daysChanged
115
-
116
- section.show()
117
-
118
- initMonthlyOptions: ->
119
- section = @content.find('.monthly_options')
120
- interval_input = section.find('.rs_monthly_interval')
121
- interval_input.val(@current_rule.hash.interval)
122
- interval_input.on "change keyup", @intervalChanged
123
-
124
- @current_rule.hash.validations ||= {}
125
- @current_rule.hash.validations.day_of_month ||= []
126
- @current_rule.hash.validations.day_of_week ||= {}
127
- @init_calendar_days(section)
128
- @init_calendar_weeks(section)
129
-
130
- in_week_mode = Object.keys(@current_rule.hash.validations.day_of_week).length > 0
131
- section.find(".monthly_rule_type_week").prop("checked", in_week_mode)
132
- section.find(".monthly_rule_type_day").prop("checked", !in_week_mode)
133
- @toggle_month_view()
134
- section.find("input[name=monthly_rule_type]").on "change", @toggle_month_view
135
- section.show()
136
-
137
- initYearlyOptions: ->
138
- section = @content.find('.yearly_options')
139
- interval_input = section.find('.rs_yearly_interval')
140
- interval_input.val(@current_rule.hash.interval)
141
- interval_input.on "change keyup", @intervalChanged
142
- section.show()
143
-
144
-
145
- summaryInit: ->
146
- @summary = @outer_holder.find(".rs_summary")
147
- @summaryUpdate()
148
-
149
- # ========================= render methods ===============================
150
-
151
- summaryUpdate: (new_string) =>
152
- @summary.width @content.width()
153
- if @current_rule.hash? && @current_rule.str?
154
- @summary.removeClass "fetching"
155
- @save_button.removeClass("disabled")
156
- rule_str = @current_rule.str.replace("*", "")
157
- if rule_str.length < 20
158
- rule_str = "#{$.fn.recurring_select.texts["summary"]}: "+rule_str
159
- @summary.find("span").html rule_str
160
- else
161
- @summary.addClass "fetching"
162
- @save_button.addClass("disabled")
163
- @summary.find("span").html ""
164
- @summaryFetch()
165
-
166
- summaryFetch: ->
167
- return if !(@current_rule.hash? && (rule_type = @current_rule.hash.rule_type)?)
168
- @current_rule.hash['week_start'] = $.fn.recurring_select.texts["first_day_of_week"]
169
- $.ajax
170
- url: "<%= Rails.application.config.action_controller.relative_url_root %>/recurring_select/translate/#{$.fn.recurring_select.texts["locale_iso_code"]}",
171
- type: "POST",
172
- data: @current_rule.hash
173
- success: @summaryFetchSuccess
174
-
175
- summaryFetchSuccess: (data) =>
176
- @current_rule.str = data
177
- @summaryUpdate()
178
- @content.css {"width": "auto"}
179
-
180
- init_calendar_days: (section) =>
181
- monthly_calendar = section.find(".rs_calendar_day")
182
- monthly_calendar.html ""
183
- for num in [1..31]
184
- monthly_calendar.append (day_link = $(document.createElement("a")).text(num))
185
- if $.inArray(num, @current_rule.hash.validations.day_of_month) != -1
186
- day_link.addClass("selected")
187
-
188
- # add last day of month button
189
- monthly_calendar.append (end_of_month_link = $(document.createElement("a")).text($.fn.recurring_select.texts["last_day"]))
190
- end_of_month_link.addClass("end_of_month")
191
- if $.inArray(-1, @current_rule.hash.validations.day_of_month) != -1
192
- end_of_month_link.addClass("selected")
193
-
194
- monthly_calendar.find("a").on "click tap", @dateOfMonthChanged
195
-
196
- init_calendar_weeks: (section) =>
197
- monthly_calendar = section.find(".rs_calendar_week")
198
- monthly_calendar.html ""
199
- row_labels = $.fn.recurring_select.texts["order"]
200
- show_row = $.fn.recurring_select.options["monthly"]["show_week"]
201
- cell_str = $.fn.recurring_select.texts["days_first_letter"]
202
-
203
- for num, index in [1, 2, 3, 4, 5, -1]
204
- if show_row[index]
205
- monthly_calendar.append "<span>#{row_labels[num - 1]}</span>"
206
- for day_of_week in [$.fn.recurring_select.texts["first_day_of_week"]...(7 + $.fn.recurring_select.texts["first_day_of_week"])]
207
- day_of_week = day_of_week % 7
208
- day_link = $("<a>", {text: cell_str[day_of_week] })
209
- day_link.attr("day", day_of_week)
210
- day_link.attr("instance", num)
211
- monthly_calendar.append day_link
212
-
213
- $.each @current_rule.hash.validations.day_of_week, (key, value) ->
214
- $.each value, (index, instance) ->
215
- section.find("a[day='#{key}'][instance='#{instance}']").addClass("selected")
216
- monthly_calendar.find("a").on "click tap", @weekOfMonthChanged
217
-
218
- toggle_month_view: =>
219
- week_mode = @content.find(".monthly_rule_type_week").prop("checked")
220
- @content.find(".rs_calendar_week").toggle(week_mode)
221
- @content.find(".rs_calendar_day").toggle(!week_mode)
222
-
223
- # ========================= Change callbacks ===============================
224
-
225
- freqChanged: =>
226
- @current_rule.hash = null unless $.isPlainObject(@current_rule.hash) # for custom values
227
-
228
- @current_rule.hash ||= {}
229
- @current_rule.hash.interval = 1
230
- @current_rule.hash.until = null
231
- @current_rule.hash.count = null
232
- @current_rule.hash.validations = null
233
- @content.find(".freq_option_section").hide();
234
- @content.find("input[type=radio], input[type=checkbox]").prop("checked", false)
235
- switch @freq_select.val()
236
- when "Weekly"
237
- @current_rule.hash.rule_type = "IceCube::WeeklyRule"
238
- @current_rule.str = $.fn.recurring_select.texts["weekly"]
239
- @initWeeklyOptions()
240
- when "Monthly"
241
- @current_rule.hash.rule_type = "IceCube::MonthlyRule"
242
- @current_rule.str = $.fn.recurring_select.texts["monthly"]
243
- @initMonthlyOptions()
244
- when "Yearly"
245
- @current_rule.hash.rule_type = "IceCube::YearlyRule"
246
- @current_rule.str = $.fn.recurring_select.texts["yearly"]
247
- @initYearlyOptions()
248
- else
249
- @current_rule.hash.rule_type = "IceCube::DailyRule"
250
- @current_rule.str = $.fn.recurring_select.texts["daily"]
251
- @initDailyOptions()
252
- @summaryUpdate()
253
- @positionDialogVert()
254
-
255
- intervalChanged: (event) =>
256
- @current_rule.str = null
257
- @current_rule.hash ||= {}
258
- @current_rule.hash.interval = parseInt($(event.currentTarget).val())
259
- if @current_rule.hash.interval < 1 || isNaN(@current_rule.hash.interval)
260
- @current_rule.hash.interval = 1
261
- @summaryUpdate()
262
-
263
- daysChanged: (event) =>
264
- $(event.currentTarget).toggleClass("selected")
265
- @current_rule.str = null
266
- @current_rule.hash ||= {}
267
- @current_rule.hash.validations = {}
268
- raw_days = @content.find(".day_holder a.selected").map -> parseInt($(this).data("value"))
269
- @current_rule.hash.validations.day = raw_days.get()
270
- @summaryUpdate()
271
- false # this prevents default and propogation
272
-
273
- dateOfMonthChanged: (event) =>
274
- $(event.currentTarget).toggleClass("selected")
275
- @current_rule.str = null
276
- @current_rule.hash ||= {}
277
- @current_rule.hash.validations = {}
278
- raw_days = @content.find(".monthly_options .rs_calendar_day a.selected").map ->
279
- res = if $(this).text() == $.fn.recurring_select.texts["last_day"] then -1 else parseInt($(this).text())
280
- res
281
- @current_rule.hash.validations.day_of_week = {}
282
- @current_rule.hash.validations.day_of_month = raw_days.get()
283
- @summaryUpdate()
284
- false
285
-
286
- weekOfMonthChanged: (event) =>
287
- $(event.currentTarget).toggleClass("selected")
288
- @current_rule.str = null
289
- @current_rule.hash ||= {}
290
- @current_rule.hash.validations = {}
291
- @current_rule.hash.validations.day_of_month = []
292
- @current_rule.hash.validations.day_of_week = {}
293
- @content.find(".monthly_options .rs_calendar_week a.selected").each (index, elm) =>
294
- day = parseInt($(elm).attr("day"))
295
- instance = parseInt($(elm).attr("instance"))
296
- @current_rule.hash.validations.day_of_week[day] ||= []
297
- @current_rule.hash.validations.day_of_week[day].push instance
298
- @summaryUpdate()
299
- false
300
-
301
- # ========================= Change callbacks ===============================
302
-
303
- template: () ->
304
- str = "
305
- <div class='rs_dialog_holder'>
306
- <div class='rs_dialog'>
307
- <div class='rs_dialog_content'>
308
- <h1>#{$.fn.recurring_select.texts["repeat"]} <a href='#' title='#{$.fn.recurring_select.texts["cancel"]}' Alt='#{$.fn.recurring_select.texts["cancel"]}'></a> </h1>
309
- <p class='frequency-select-wrapper'>
310
- <label for='rs_frequency'>#{$.fn.recurring_select.texts["frequency"]}:</label>
311
- <select data-wrapper-class='ui-recurring-select' id='rs_frequency' class='rs_frequency' name='rs_frequency'>
312
- <option value='Daily'>#{$.fn.recurring_select.texts["daily"]}</option>
313
- <option value='Weekly'>#{$.fn.recurring_select.texts["weekly"]}</option>
314
- <option value='Monthly'>#{$.fn.recurring_select.texts["monthly"]}</option>
315
- <option value='Yearly'>#{$.fn.recurring_select.texts["yearly"]}</option>
316
- </select>
317
- </p>
318
-
319
- <div class='daily_options freq_option_section'>
320
- <p>
321
- #{$.fn.recurring_select.texts["every"]}
322
- <input type='text' data-wrapper-class='ui-recurring-select' name='rs_daily_interval' class='rs_daily_interval rs_interval' value='1' size='2' />
323
- #{$.fn.recurring_select.texts["days"]}
324
- </p>
325
- </div>
326
- <div class='weekly_options freq_option_section'>
327
- <p>
328
- #{$.fn.recurring_select.texts["every"]}
329
- <input type='text' data-wrapper-class='ui-recurring-select' name='rs_weekly_interval' class='rs_weekly_interval rs_interval' value='1' size='2' />
330
- #{$.fn.recurring_select.texts["weeks_on"]}:
331
- </p>
332
- <div class='day_holder'>
333
- "
334
- for day_of_week in [$.fn.recurring_select.texts["first_day_of_week"]...(7 + $.fn.recurring_select.texts["first_day_of_week"])]
335
- day_of_week = day_of_week % 7
336
- str += "<a href='#' data-value='#{day_of_week}'>#{$.fn.recurring_select.texts["days_first_letter"][day_of_week]}</a>"
337
-
338
- str += "
339
- </div>
340
- <span style='clear:both; visibility:hidden; height:1px;'>.</span>
341
- </div>
342
- <div class='monthly_options freq_option_section'>
343
- <p>
344
- #{$.fn.recurring_select.texts["every"]}
345
- <input type='text' data-wrapper-class='ui-recurring-select' name='rs_monthly_interval' class='rs_monthly_interval rs_interval' value='1' size='2' />
346
- #{$.fn.recurring_select.texts["months"]}:
347
- </p>
348
- <p class='monthly_rule_type'>
349
- <span><label for='monthly_rule_type_day'>#{$.fn.recurring_select.texts["day_of_month"]}</label><input type='radio' class='monthly_rule_type_day' name='monthly_rule_type' id='monthly_rule_type_day' value='true' /></span>
350
- <span><label for='monthly_rule_type_week'>#{$.fn.recurring_select.texts["day_of_week"]}</label><input type='radio' class='monthly_rule_type_week' name='monthly_rule_type' id='monthly_rule_type_week' value='true' /></span>
351
- </p>
352
- <p class='rs_calendar_day'></p>
353
- <p class='rs_calendar_week'></p>
354
- </div>
355
- <div class='yearly_options freq_option_section'>
356
- <p>
357
- #{$.fn.recurring_select.texts["every"]}
358
- <input type='text' data-wrapper-class='ui-recurring-select' name='rs_yearly_interval' class='rs_yearly_interval rs_interval' value='1' size='2' />
359
- #{$.fn.recurring_select.texts["years"]}
360
- </p>
361
- </div>
362
- <p class='rs_summary'>
363
- <span></span>
364
- </p>
365
- <div class='controls'>
366
- <input type='button' data-wrapper-class='ui-recurring-select' class='rs_save' value='#{$.fn.recurring_select.texts["ok"]}' />
367
- <input type='button' data-wrapper-class='ui-recurring-select' class='rs_cancel' value='#{$.fn.recurring_select.texts["cancel"]}' />
368
- </div>
369
- </div>
370
- </div>
371
- </div>
372
- "