anjlab-widgets 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
  /* ===========================================================
2
- * bootstrap-modal.js v2.0
2
+ * bootstrap-modal.js v2.1
3
3
  * ===========================================================
4
4
  * Copyright 2012 Jordan Schroter
5
5
  *
@@ -20,85 +20,61 @@
20
20
  !function ($) {
21
21
 
22
22
  "use strict"; // jshint ;_;
23
-
23
+
24
24
  /* MODAL CLASS DEFINITION
25
25
  * ====================== */
26
26
 
27
27
  var Modal = function (element, options) {
28
28
  this.init(element, options);
29
- }
29
+ };
30
30
 
31
31
  Modal.prototype = {
32
32
 
33
- constructor: Modal,
34
-
33
+ constructor: Modal,
34
+
35
35
  init: function (element, options) {
36
36
  this.options = options;
37
-
37
+
38
38
  this.$element = $(element)
39
39
  .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this));
40
-
40
+
41
41
  this.options.remote && this.$element.find('.modal-body').load(this.options.remote);
42
-
43
- var manager = typeof this.options.manager === 'function' ?
42
+
43
+ var manager = typeof this.options.manager === 'function' ?
44
44
  this.options.manager.call(this) : this.options.manager;
45
45
 
46
- manager = manager.appendModal ?
46
+ manager = manager.appendModal ?
47
47
  manager : $(manager).modalmanager().data('modalmanager');
48
48
 
49
49
  manager.appendModal(this);
50
- },
51
-
50
+ },
51
+
52
52
  toggle: function () {
53
53
  return this[!this.isShown ? 'show' : 'hide']();
54
- },
55
-
54
+ },
55
+
56
56
  show: function () {
57
- var that = this,
58
- e = $.Event('show');
59
-
57
+ var e = $.Event('show');
58
+
60
59
  if (this.isShown) return;
61
60
 
62
- this.$element.triggerHandler(e);
61
+ this.$element.trigger(e);
63
62
 
64
63
  if (e.isDefaultPrevented()) return;
65
-
66
- if (this.options.width){
67
- this.$element.css('width', this.options.width);
68
-
69
- var that = this;
70
- this.$element.css('margin-left', function () {
71
- if (/%/ig.test(that.options.width)){
72
- return -(parseInt(that.options.width) / 2) + '%';
73
- } else {
74
- return -($(this).width() / 2) + 'px';
75
- }
76
- });
77
- }
78
-
79
- var prop = this.options.height ? 'height' : 'max-height';
80
-
81
- var value = this.options.height || this.options.maxHeight;
82
-
83
- if (value){
84
- this.$element.find('.modal-body')
85
- .css('overflow', 'auto')
86
- .css(prop, value);
87
- }
88
64
 
89
65
  this.escape();
90
66
 
91
67
  this.tab();
92
-
68
+
93
69
  this.options.loading && this.loading();
94
- },
95
-
70
+ },
71
+
96
72
  hide: function (e) {
97
73
  e && e.preventDefault();
98
74
 
99
75
  e = $.Event('hide');
100
76
 
101
- this.$element.triggerHandler(e);
77
+ this.$element.trigger(e);
102
78
 
103
79
  if (!this.isShown || e.isDefaultPrevented()) return (this.isShown = false);
104
80
 
@@ -107,7 +83,7 @@
107
83
  this.escape();
108
84
 
109
85
  this.tab();
110
-
86
+
111
87
  this.isLoading && this.loading();
112
88
 
113
89
  $(document).off('focusin.modal');
@@ -122,108 +98,149 @@
122
98
  $.support.transition && this.$element.hasClass('fade') ?
123
99
  this.hideWithTransition() :
124
100
  this.hideModal();
125
- },
101
+ },
102
+
103
+ layout: function () {
104
+ var prop = this.options.height ? 'height' : 'max-height',
105
+ value = this.options.height || this.options.maxHeight;
106
+
107
+ if (this.options.width){
108
+ this.$element.css('width', this.options.width);
109
+
110
+ var that = this;
111
+ this.$element.css('margin-left', function () {
112
+ if (/%/ig.test(that.options.width)){
113
+ return -(parseInt(that.options.width) / 2) + '%';
114
+ } else {
115
+ return -($(this).width() / 2) + 'px';
116
+ }
117
+ });
118
+ } else {
119
+ this.$element.css('width', '');
120
+ this.$element.css('margin-left', '');
121
+ }
122
+
123
+ this.$element.find('.modal-body')
124
+ .css('overflow', '')
125
+ .css(prop, '');
126
+
127
+ var modalOverflow = $(window).height() - 10 < this.$element.height();
128
+
129
+ if (value){
130
+ this.$element.find('.modal-body')
131
+ .css('overflow', 'auto')
132
+ .css(prop, value);
133
+ }
134
+
135
+ if (modalOverflow || this.options.modalOverflow) {
136
+ this.$element
137
+ .css('margin-top', 0)
138
+ .addClass('modal-overflow');
139
+ } else {
140
+ this.$element
141
+ .css('margin-top', 0 - this.$element.height() / 2)
142
+ .removeClass('modal-overflow');
143
+ }
144
+ },
126
145
 
127
146
  tab: function () {
128
147
  var that = this;
129
148
 
130
- if (this.isShown && this.options.consumeTab) {
131
- this.$element.on('keydown.tabindex.modal', '[data-tabindex]', function (e) {
132
- if (e.keyCode && e.keyCode == 9){
133
- var $next = $(this),
134
- $rollover = $(this);
135
-
136
- that.$element.find('[data-tabindex]:enabled:not([readonly])').each(function (e) {
137
- if (!e.shiftKey){
138
- $next = $next.data('tabindex') < $(this).data('tabindex') ?
139
- $next = $(this) :
140
- $rollover = $(this);
141
- } else {
142
- $next = $next.data('tabindex') > $(this).data('tabindex') ?
143
- $next = $(this) :
144
- $rollover = $(this);
145
- }
146
- });
147
-
148
- $next[0] !== $(this)[0] ?
149
- $next.focus() : $rollover.focus();
150
-
151
- e.preventDefault();
152
-
153
- }
154
- });
149
+ if (this.isShown && this.options.consumeTab) {
150
+ this.$element.on('keydown.tabindex.modal', '[data-tabindex]', function (e) {
151
+ if (e.keyCode && e.keyCode == 9){
152
+ var $next = $(this),
153
+ $rollover = $(this);
154
+
155
+ that.$element.find('[data-tabindex]:enabled:not([readonly])').each(function (e) {
156
+ if (!e.shiftKey){
157
+ $next = $next.data('tabindex') < $(this).data('tabindex') ?
158
+ $next = $(this) :
159
+ $rollover = $(this);
160
+ } else {
161
+ $next = $next.data('tabindex') > $(this).data('tabindex') ?
162
+ $next = $(this) :
163
+ $rollover = $(this);
164
+ }
165
+ });
166
+
167
+ $next[0] !== $(this)[0] ?
168
+ $next.focus() : $rollover.focus();
169
+
170
+ e.preventDefault();
171
+ }
172
+ });
155
173
  } else if (!this.isShown) {
156
174
  this.$element.off('keydown.tabindex.modal');
157
175
  }
158
- },
159
-
176
+ },
177
+
160
178
  escape: function () {
161
179
  var that = this;
162
180
  if (this.isShown && this.options.keyboard) {
163
181
  if (!this.$element.attr('tabindex')) this.$element.attr('tabindex', -1);
164
-
182
+
165
183
  this.$element.on('keyup.dismiss.modal', function (e) {
166
184
  e.which == 27 && that.hide();
167
185
  });
168
186
  } else if (!this.isShown) {
169
187
  this.$element.off('keyup.dismiss.modal')
170
188
  }
171
- },
172
-
189
+ },
190
+
173
191
  hideWithTransition: function () {
174
192
  var that = this
175
193
  , timeout = setTimeout(function () {
176
- that.$element.off($.support.transition.end)
177
- that.hideModal()
194
+ that.$element.off($.support.transition.end);
195
+ that.hideModal();
178
196
  }, 500);
179
197
 
180
198
  this.$element.one($.support.transition.end, function () {
181
- clearTimeout(timeout)
182
- that.hideModal()
199
+ clearTimeout(timeout);
200
+ that.hideModal();
183
201
  });
184
- },
185
-
202
+ },
203
+
186
204
  hideModal: function () {
187
205
  this.$element
188
206
  .hide()
189
- .triggerHandler('hidden');
190
-
207
+ .trigger('hidden');
191
208
 
192
209
  var prop = this.options.height ? 'height' : 'max-height';
193
210
  var value = this.options.height || this.options.maxHeight;
194
-
211
+
195
212
  if (value){
196
213
  this.$element.find('.modal-body')
197
214
  .css('overflow', '')
198
215
  .css(prop, '');
199
216
  }
200
217
 
201
- },
218
+ },
202
219
 
203
220
  removeLoading: function () {
204
221
  this.$loading.remove();
205
222
  this.$loading = null;
206
223
  this.isLoading = false;
207
224
  },
208
-
225
+
209
226
  loading: function (callback) {
210
227
  callback = callback || function () {};
211
-
228
+
212
229
  var animate = this.$element.hasClass('fade') ? 'fade' : '';
213
-
230
+
214
231
  if (!this.isLoading) {
215
232
  var doAnimate = $.support.transition && animate;
216
-
233
+
217
234
  this.$loading = $('<div class="loading-mask ' + animate + '">')
218
235
  .append(this.options.spinner)
219
236
  .appendTo(this.$element);
220
237
 
221
- if (doAnimate) this.$loading[0].offsetWidth // force reflow
222
-
223
- this.$loading.addClass('in')
238
+ if (doAnimate) this.$loading[0].offsetWidth; // force reflow
239
+
240
+ this.$loading.addClass('in');
224
241
 
225
242
  this.isLoading = true;
226
-
243
+
227
244
  doAnimate ?
228
245
  this.$loading.one($.support.transition.end, callback) :
229
246
  callback();
@@ -240,7 +257,7 @@
240
257
  callback(this.isLoading);
241
258
  }
242
259
  },
243
-
260
+
244
261
  focus: function () {
245
262
  var $focusElem = this.$element.find(this.options.focusOn);
246
263
 
@@ -269,17 +286,17 @@
269
286
 
270
287
  this.focus();
271
288
  },
272
-
289
+
273
290
 
274
291
  destroy: function () {
275
292
  var e = $.Event('destroy');
276
- this.$element.triggerHandler(e);
293
+ this.$element.trigger(e);
277
294
  if (e.isDefaultPrevented()) return;
278
-
295
+
279
296
  this.teardown();
280
297
  },
281
-
282
- teardown: function () {
298
+
299
+ teardown: function () {
283
300
  if (!this.$parent.length){
284
301
  this.$element.remove();
285
302
  this.$element = null;
@@ -296,26 +313,26 @@
296
313
  .removeClass('in')
297
314
  .attr('aria-hidden', true);
298
315
  }
299
- }
316
+ };
300
317
 
301
318
 
302
319
  /* MODAL PLUGIN DEFINITION
303
320
  * ======================= */
304
321
 
305
- $.fn.modal = function (option) {
322
+ $.fn.modal = function (option, args) {
306
323
  return this.each(function () {
307
- var $this = $(this),
308
- data = $this.data('modal'),
324
+ var $this = $(this),
325
+ data = $this.data('modal'),
309
326
  options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option);
310
327
 
311
- if (!data) $this.data('modal', (data = new Modal(this, options)))
312
- if (typeof option == 'string') data[option]()
328
+ if (!data) $this.data('modal', (data = new Modal(this, options)));
329
+ if (typeof option == 'string') data[option].apply(data, [].concat(args));
313
330
  else if (options.show) data.show()
314
331
  })
315
- }
332
+ };
316
333
 
317
334
  $.fn.modal.defaults = {
318
- keyboard: true,
335
+ keyboard: true,
319
336
  backdrop: true,
320
337
  loading: false,
321
338
  show: true,
@@ -325,22 +342,24 @@
325
342
  modalOverflow: false,
326
343
  consumeTab: true,
327
344
  focusOn: null,
345
+ replace: false,
346
+ resize: false,
328
347
  attentionAnimation: 'shake',
329
348
  manager: 'body',
330
349
  spinner: '<div class="loading-spinner" style="width: 200px; margin-left: -100px;"><div class="progress progress-striped active"><div class="bar" style="width: 100%;"></div></div></div>'
331
- }
350
+ };
332
351
 
333
- $.fn.modal.Constructor = Modal
352
+ $.fn.modal.Constructor = Modal;
334
353
 
335
354
 
336
355
  /* MODAL DATA-API
337
356
  * ============== */
338
-
357
+
339
358
  $(function () {
340
- $(document).off('.modal').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) {
341
- var $this = $(this),
342
- href = $this.attr('href'),
343
- $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))), //strip for ie7
359
+ $(document).off('click.modal').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) {
360
+ var $this = $(this),
361
+ href = $this.attr('href'),
362
+ $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))), //strip for ie7
344
363
  option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data());
345
364
 
346
365
  e.preventDefault();
@@ -1,5 +1,5 @@
1
- /* ===========================================================
2
- * bootstrap-modalmanager.js v2.0
1
+ /* ===========================================================
2
+ * bootstrap-modalmanager.js v2.1
3
3
  * ===========================================================
4
4
  * Copyright 2012 Jordan Schroter.
5
5
  *
@@ -25,7 +25,7 @@
25
25
 
26
26
  var ModalManager = function (element, options) {
27
27
  this.init(element, options);
28
- }
28
+ };
29
29
 
30
30
  ModalManager.prototype = {
31
31
 
@@ -36,6 +36,20 @@
36
36
  this.options = $.extend({}, $.fn.modalmanager.defaults, this.$element.data(), typeof options == 'object' && options);
37
37
  this.stack = [];
38
38
  this.backdropCount = 0;
39
+
40
+ if (this.options.resize) {
41
+ var resizeTimeout,
42
+ that = this;
43
+
44
+ $(window).on('resize.modal', function(){
45
+ resizeTimeout && clearTimeout(resizeTimeout);
46
+ resizeTimeout = setTimeout(function(){
47
+ for (var i = 0; i < that.stack.length; i++){
48
+ that.stack[i].isShown && that.stack[i].layout();
49
+ }
50
+ }, 10);
51
+ });
52
+ }
39
53
  },
40
54
 
41
55
  createModal: function (element, options) {
@@ -48,47 +62,52 @@
48
62
  var that = this;
49
63
 
50
64
  modal.$element.on('show.modalmanager', targetIsSelf(function (e) {
51
- modal.isShown = true;
52
-
53
- var transition = $.support.transition && modal.$element.hasClass('fade');
54
-
55
- that.$element
56
- .toggleClass('modal-open', that.hasOpenModal())
57
- .toggleClass('page-overflow', $(window).height() < that.$element.height());
58
-
59
- modal.$parent = modal.$element.parent();
60
-
61
- modal.$container = that.createContainer(modal);
62
-
63
- modal.$element.appendTo(modal.$container);
64
-
65
- var modalOverflow = $(window).height() < modal.$element.height() || modal.options.modalOverflow;
66
-
67
- that.backdrop(modal, function () {
68
-
69
- modal.$element.show();
70
-
71
- if (transition) {
72
- modal.$element[0].style.display = 'run-in';
73
- modal.$element[0].offsetWidth;
74
- modal.$element.one($.support.transition.end, function () { modal.$element[0].style.display = 'block' });
75
- }
76
-
77
- modal.$element
78
- .toggleClass('modal-overflow', modalOverflow)
79
- .css('margin-top', modalOverflow ? 0 : 0 - modal.$element.height()/2)
80
- .addClass('in')
81
- .attr('aria-hidden', false);
82
-
83
- var complete = function () {
84
- that.setFocus();
85
- modal.$element.triggerHandler('shown');
86
- }
87
-
88
- transition ?
89
- modal.$element.one($.support.transition.end, complete) :
90
- complete();
91
- });
65
+
66
+ var showModal = function(){
67
+ modal.isShown = true;
68
+
69
+ var transition = $.support.transition && modal.$element.hasClass('fade');
70
+
71
+ that.$element
72
+ .toggleClass('modal-open', that.hasOpenModal())
73
+ .toggleClass('page-overflow', $(window).height() < that.$element.height());
74
+
75
+ modal.$parent = modal.$element.parent();
76
+
77
+ modal.$container = that.createContainer(modal);
78
+
79
+ modal.$element.appendTo(modal.$container);
80
+
81
+ that.backdrop(modal, function () {
82
+
83
+ modal.$element.show();
84
+
85
+ if (transition) {
86
+ //modal.$element[0].style.display = 'run-in';
87
+ modal.$element[0].offsetWidth;
88
+ //modal.$element.one($.support.transition.end, function () { modal.$element[0].style.display = 'block' });
89
+ }
90
+
91
+ modal.layout();
92
+
93
+ modal.$element
94
+ .addClass('in')
95
+ .attr('aria-hidden', false);
96
+
97
+ var complete = function () {
98
+ that.setFocus();
99
+ modal.$element.trigger('shown');
100
+ };
101
+
102
+ transition ?
103
+ modal.$element.one($.support.transition.end, complete) :
104
+ complete();
105
+ });
106
+ };
107
+
108
+ modal.options.replace ?
109
+ that.replace(showModal) :
110
+ showModal();
92
111
  }));
93
112
 
94
113
  modal.$element.on('hidden.modalmanager', targetIsSelf(function (e) {
@@ -96,7 +115,7 @@
96
115
  that.backdrop(modal);
97
116
 
98
117
  if (modal.$backdrop){
99
- $.support.transition && modal.$element.hasClass('fade')?
118
+ $.support.transition && modal.$element.hasClass('fade') ?
100
119
  modal.$backdrop.one($.support.transition.end, function () { that.destroyModal(modal) }) :
101
120
  that.destroyModal(modal);
102
121
  } else {
@@ -108,6 +127,7 @@
108
127
  modal.$element.on('destroy.modalmanager', targetIsSelf(function (e) {
109
128
  that.removeModal(modal);
110
129
  }));
130
+
111
131
  },
112
132
 
113
133
  destroyModal: function (modal) {
@@ -117,7 +137,7 @@
117
137
  var hasOpenModal = this.hasOpenModal();
118
138
 
119
139
  this.$element.toggleClass('modal-open', hasOpenModal);
120
-
140
+
121
141
  if (!hasOpenModal){
122
142
  this.$element.removeClass('page-overflow');
123
143
  }
@@ -164,24 +184,42 @@
164
184
  }
165
185
  },
166
186
 
187
+ replace: function (callback) {
188
+ var topModal;
189
+
190
+ for (var i = 0; i < this.stack.length; i++){
191
+ if (this.stack[i].isShown) topModal = this.stack[i];
192
+ }
193
+
194
+ if (topModal) {
195
+ this.$backdropHandle = topModal.$backdrop;
196
+ topModal.$backdrop = null;
197
+
198
+ callback && topModal.$element.one('hidden',
199
+ targetIsSelf( $.proxy(callback, this) ));
200
+
201
+ topModal.hide();
202
+ } else if (callback) {
203
+ callback();
204
+ }
205
+ },
206
+
167
207
  removeBackdrop: function (modal) {
168
208
  modal.$backdrop.remove();
169
209
  modal.$backdrop = null;
170
- },
210
+ },
171
211
 
172
212
  createBackdrop: function (animate) {
173
213
  var $backdrop;
174
214
 
175
- if (!this.isLoading) {
215
+ if (!this.$backdropHandle) {
176
216
  $backdrop = $('<div class="modal-backdrop ' + animate + '" />')
177
217
  .appendTo(this.$element);
178
-
179
218
  } else {
180
- $backdrop = this.$loading;
219
+ $backdrop = this.$backdropHandle;
181
220
  $backdrop.off('.modalmanager');
182
- this.$spinner.remove();
183
- this.isLoading = false;
184
- this.$loading = this.$spinner = null;
221
+ this.$backdropHandle = null;
222
+ this.isLoading && this.removeSpinner();
185
223
  }
186
224
 
187
225
  return $backdrop
@@ -190,13 +228,13 @@
190
228
  removeContainer: function (modal) {
191
229
  modal.$container.remove();
192
230
  modal.$container = null;
193
- },
231
+ },
194
232
 
195
233
  createContainer: function (modal) {
196
234
  var $container;
197
235
 
198
236
  $container = $('<div class="modal-scrollable">')
199
- .css('z-index', getzIndex( 'modal',
237
+ .css('z-index', getzIndex( 'modal',
200
238
  modal ? this.getIndexOfModal(modal) : this.stack.length ))
201
239
  .appendTo(this.$element);
202
240
 
@@ -216,20 +254,19 @@
216
254
 
217
255
  backdrop: function (modal, callback) {
218
256
  var animate = modal.$element.hasClass('fade') ? 'fade' : '',
219
- showBackdrop = modal.options.backdrop &&
257
+ showBackdrop = modal.options.backdrop &&
220
258
  this.backdropCount < this.options.backdropLimit;
221
259
 
222
260
  if (modal.isShown && showBackdrop) {
223
- var doAnimate = $.support.transition && animate && !this.isLoading;
224
-
261
+ var doAnimate = $.support.transition && animate && !this.$backdropHandle;
225
262
 
226
263
  modal.$backdrop = this.createBackdrop(animate);
227
264
 
228
- modal.$backdrop.css('z-index', getzIndex( 'backdrop', this.getIndexOfModal(modal) ))
265
+ modal.$backdrop.css('z-index', getzIndex( 'backdrop', this.getIndexOfModal(modal) ));
229
266
 
230
- if (doAnimate) modal.$backdrop[0].offsetWidth // force reflow
267
+ if (doAnimate) modal.$backdrop[0].offsetWidth; // force reflow
231
268
 
232
- modal.$backdrop.addClass('in')
269
+ modal.$backdrop.addClass('in');
233
270
 
234
271
  this.backdropCount += 1;
235
272
 
@@ -253,26 +290,32 @@
253
290
  }
254
291
  },
255
292
 
256
- removeLoading: function () {
257
- this.$loading && this.$loading.remove();
258
- this.$loading = null;
293
+ removeSpinner: function(){
294
+ this.$spinner && this.$spinner.remove();
295
+ this.$spinner = null;
259
296
  this.isLoading = false;
260
297
  },
261
298
 
299
+ removeLoading: function () {
300
+ this.$backdropHandle && this.$backdropHandle.remove();
301
+ this.$backdropHandle = null;
302
+ this.removeSpinner();
303
+ },
304
+
262
305
  loading: function (callback) {
263
306
  callback = callback || function () { };
264
-
307
+
265
308
  this.$element
266
309
  .toggleClass('modal-open', !this.isLoading || this.hasOpenModal())
267
310
  .toggleClass('page-overflow', $(window).height() < this.$element.height());
268
-
311
+
269
312
  if (!this.isLoading) {
270
313
 
271
- this.$loading = this.createBackdrop('fade');
314
+ this.$backdropHandle = this.createBackdrop('fade');
272
315
 
273
- this.$loading[0].offsetWidth // force reflow
316
+ this.$backdropHandle[0].offsetWidth; // force reflow
274
317
 
275
- this.$loading
318
+ this.$backdropHandle
276
319
  .css('z-index', getzIndex('backdrop', this.stack.length))
277
320
  .addClass('in');
278
321
 
@@ -288,31 +331,29 @@
288
331
  this.isLoading = true;
289
332
 
290
333
  $.support.transition ?
291
- this.$loading.one($.support.transition.end, callback) :
292
- callback();
293
-
294
- } else if (this.isLoading && this.$loading) {
295
- this.$loading.removeClass('in');
334
+ this.$backdropHandle.one($.support.transition.end, callback) :
335
+ callback();
296
336
 
297
- if (this.$spinner) this.$spinner.remove();
337
+ } else if (this.isLoading && this.$backdropHandle) {
338
+ this.$backdropHandle.removeClass('in');
298
339
 
299
340
  var that = this;
300
341
  $.support.transition ?
301
- this.$loading.one($.support.transition.end, function () { that.removeLoading() }) :
342
+ this.$backdropHandle.one($.support.transition.end, function () { that.removeLoading() }) :
302
343
  that.removeLoading();
303
344
 
304
345
  } else if (callback) {
305
346
  callback(this.isLoading);
306
347
  }
307
348
  }
308
- }
349
+ };
309
350
 
310
351
  /* PRIVATE METHODS
311
352
  * ======================= */
312
353
 
313
354
  // computes and caches the zindexes
314
355
  var getzIndex = (function () {
315
- var zIndexFactor,
356
+ var zIndexFactor,
316
357
  baseIndex = {};
317
358
 
318
359
  return function (type, pos) {
@@ -321,10 +362,10 @@
321
362
  var $baseModal = $('<div class="modal hide" />').appendTo('body'),
322
363
  $baseBackdrop = $('<div class="modal-backdrop hide" />').appendTo('body');
323
364
 
324
- baseIndex['modal'] = +$baseModal.css('z-index'),
325
- baseIndex['backdrop'] = +$baseBackdrop.css('z-index'),
365
+ baseIndex['modal'] = +$baseModal.css('z-index');
366
+ baseIndex['backdrop'] = +$baseBackdrop.css('z-index');
326
367
  zIndexFactor = baseIndex['modal'] - baseIndex['backdrop'];
327
-
368
+
328
369
  $baseModal.remove();
329
370
  $baseBackdrop.remove();
330
371
  $baseBackdrop = $baseModal = null;
@@ -333,16 +374,16 @@
333
374
  return baseIndex[type] + (zIndexFactor * pos);
334
375
 
335
376
  }
336
- }())
377
+ }());
337
378
 
338
- // make sure the event target is the modal itself in order to prevent
339
- // other components such as tabsfrom triggering the modal manager.
379
+ // make sure the event target is the modal itself in order to prevent
380
+ // other components such as tabsfrom triggering the modal manager.
340
381
  // if Boostsrap namespaced events, this would not be needed.
341
382
  function targetIsSelf(callback){
342
383
  return function (e) {
343
384
  if (this === e.target){
344
385
  return callback.apply(this, arguments);
345
- }
386
+ }
346
387
  }
347
388
  }
348
389
 
@@ -350,20 +391,21 @@
350
391
  /* MODAL MANAGER PLUGIN DEFINITION
351
392
  * ======================= */
352
393
 
353
- $.fn.modalmanager = function (option) {
394
+ $.fn.modalmanager = function (option, args) {
354
395
  return this.each(function () {
355
- var $this = $(this),
396
+ var $this = $(this),
356
397
  data = $this.data('modalmanager');
357
398
 
358
- if (!data) $this.data('modalmanager', (data = new ModalManager(this, option)))
359
- if (typeof option === 'string') data[option]()
399
+ if (!data) $this.data('modalmanager', (data = new ModalManager(this, option)));
400
+ if (typeof option === 'string') data[option].apply(data, [].concat(args))
360
401
  })
361
- }
402
+ };
362
403
 
363
404
  $.fn.modalmanager.defaults = {
364
405
  backdropLimit: 999,
406
+ resize: true,
365
407
  spinner: '<div class="loading-spinner fade" style="width: 200px; margin-left: -100px;"><div class="progress progress-striped active"><div class="bar" style="width: 100%;"></div></div></div>'
366
- }
408
+ };
367
409
 
368
410
  $.fn.modalmanager.Constructor = ModalManager
369
411
 
@@ -1,5 +1,5 @@
1
1
  module Anjlab
2
2
  module Widgets
3
- VERSION = "1.0.1"
3
+ VERSION = "1.0.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -2,14 +2,14 @@
2
2
  name: anjlab-widgets
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.0.1
5
+ version: 1.0.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Yury Korolev
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-06 00:00:00.000000000 Z
12
+ date: 2013-02-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: anjlab-bootstrap-rails
@@ -172,7 +172,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
172
172
  - - ! '>='
173
173
  - !ruby/object:Gem::Version
174
174
  version: '0'
175
- hash: 1438020642301613825
175
+ hash: -869637543149161080
176
176
  segments:
177
177
  - 0
178
178
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -181,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
181
181
  - - ! '>='
182
182
  - !ruby/object:Gem::Version
183
183
  version: '0'
184
- hash: 1438020642301613825
184
+ hash: -869637543149161080
185
185
  segments:
186
186
  - 0
187
187
  requirements: []