semantic-ui-rails 0.6.5 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -0
  3. data/lib/semantic/ui/rails/version.rb +1 -1
  4. data/vendor/assets/javascripts/semantic-ui/modules/accordion.js +13 -16
  5. data/vendor/assets/javascripts/semantic-ui/modules/behavior/api.js +18 -22
  6. data/vendor/assets/javascripts/semantic-ui/modules/behavior/form.js +18 -24
  7. data/vendor/assets/javascripts/semantic-ui/modules/behavior/state.js +8 -8
  8. data/vendor/assets/javascripts/semantic-ui/modules/chatroom.js +18 -14
  9. data/vendor/assets/javascripts/semantic-ui/modules/checkbox.js +26 -24
  10. data/vendor/assets/javascripts/semantic-ui/modules/dimmer.js +70 -48
  11. data/vendor/assets/javascripts/semantic-ui/modules/dropdown.js +47 -46
  12. data/vendor/assets/javascripts/semantic-ui/modules/modal.js +44 -30
  13. data/vendor/assets/javascripts/semantic-ui/modules/nag.js +13 -16
  14. data/vendor/assets/javascripts/semantic-ui/modules/popup.js +347 -261
  15. data/vendor/assets/javascripts/semantic-ui/modules/rating.js +18 -22
  16. data/vendor/assets/javascripts/semantic-ui/modules/search.js +18 -24
  17. data/vendor/assets/javascripts/semantic-ui/modules/shape.js +182 -173
  18. data/vendor/assets/javascripts/semantic-ui/modules/sidebar.js +65 -42
  19. data/vendor/assets/javascripts/semantic-ui/modules/tab.js +47 -30
  20. data/vendor/assets/javascripts/semantic-ui/modules/transition.js +23 -23
  21. data/vendor/assets/javascripts/semantic-ui/modules/video.js +18 -22
  22. data/vendor/assets/stylesheets/semantic-ui/collections/grid.less +1 -1
  23. data/vendor/assets/stylesheets/semantic-ui/collections/menu.less +8 -3
  24. data/vendor/assets/stylesheets/semantic-ui/collections/message.less +6 -7
  25. data/vendor/assets/stylesheets/semantic-ui/collections/table.less +76 -23
  26. data/vendor/assets/stylesheets/semantic-ui/elements/button.less +163 -167
  27. data/vendor/assets/stylesheets/semantic-ui/elements/header.less +1 -1
  28. data/vendor/assets/stylesheets/semantic-ui/elements/icon.less +8 -10
  29. data/vendor/assets/stylesheets/semantic-ui/elements/input.less +0 -2
  30. data/vendor/assets/stylesheets/semantic-ui/elements/label.less +54 -5
  31. data/vendor/assets/stylesheets/semantic-ui/elements/segment.less +0 -9
  32. data/vendor/assets/stylesheets/semantic-ui/modules/accordion.less +197 -198
  33. data/vendor/assets/stylesheets/semantic-ui/modules/checkbox.less +17 -21
  34. data/vendor/assets/stylesheets/semantic-ui/modules/dimmer.less +4 -27
  35. data/vendor/assets/stylesheets/semantic-ui/modules/dropdown.less +28 -28
  36. data/vendor/assets/stylesheets/semantic-ui/modules/popup.less +255 -255
  37. data/vendor/assets/stylesheets/semantic-ui/modules/rating.less +1 -1
  38. data/vendor/assets/stylesheets/semantic-ui/modules/shape.less +81 -7
  39. data/vendor/assets/stylesheets/semantic-ui/modules/sidebar.less +129 -28
  40. data/vendor/assets/stylesheets/semantic-ui/modules/transition.less +12 -10
  41. data/vendor/assets/stylesheets/semantic-ui/views/list.less +6 -6
  42. metadata +2 -2
@@ -22,7 +22,7 @@ $.fn.dimmer = function(parameters) {
22
22
  methodInvoked = (typeof query == 'string'),
23
23
  queryArguments = [].slice.call(arguments, 1),
24
24
 
25
- invokedResponse
25
+ returnedValue
26
26
  ;
27
27
 
28
28
  $allModules
@@ -54,8 +54,6 @@ $.fn.dimmer = function(parameters) {
54
54
  module
55
55
  ;
56
56
 
57
- console.log(element, parameters);
58
-
59
57
  module = {
60
58
 
61
59
  preinitialize: function() {
@@ -152,13 +150,21 @@ $.fn.dimmer = function(parameters) {
152
150
 
153
151
  animate: {
154
152
  show: function(callback) {
155
- callback = callback || function(){};
153
+ callback = $.isFunction(callback)
154
+ ? callback
155
+ : function(){}
156
+ ;
156
157
  module.set.dimmed();
157
158
  if($.fn.transition !== undefined) {
158
159
  $dimmer
159
- .transition(settings.transition + ' in', module.get.duration(), function() {
160
- module.set.active();
161
- callback();
160
+ .transition({
161
+ animation : settings.transition + ' in',
162
+ queue : true,
163
+ duration : module.get.duration(),
164
+ complete : function() {
165
+ module.set.active();
166
+ callback();
167
+ },
162
168
  })
163
169
  ;
164
170
  }
@@ -180,14 +186,22 @@ $.fn.dimmer = function(parameters) {
180
186
  }
181
187
  },
182
188
  hide: function(callback) {
183
- callback = callback || function(){};
184
- module.remove.dimmed();
189
+ callback = $.isFunction(callback)
190
+ ? callback
191
+ : function(){}
192
+ ;
185
193
  if($.fn.transition !== undefined) {
186
194
  module.verbose('Hiding dimmer with css');
187
195
  $dimmer
188
- .transition(settings.transition + ' out', module.get.duration(), function() {
189
- module.remove.active();
190
- callback();
196
+ .transition({
197
+ animation : settings.transition + ' out',
198
+ duration : module.get.duration(),
199
+ queue : true,
200
+ complete : function() {
201
+ module.remove.dimmed();
202
+ module.remove.active();
203
+ callback();
204
+ }
191
205
  })
192
206
  ;
193
207
  }
@@ -197,6 +211,7 @@ $.fn.dimmer = function(parameters) {
197
211
  .stop()
198
212
  .fadeOut(module.get.duration(), function() {
199
213
  $dimmer.removeAttr('style');
214
+ module.remove.dimmed();
200
215
  module.remove.active();
201
216
  callback();
202
217
  })
@@ -229,27 +244,30 @@ $.fn.dimmer = function(parameters) {
229
244
  },
230
245
 
231
246
  is: {
232
- dimmer: function() {
233
- return $module.is(selector.dimmer);
234
- },
235
- dimmable: function() {
236
- return $module.is(selector.dimmable);
237
- },
238
247
  active: function() {
239
248
  return $dimmer.hasClass(className.active);
240
249
  },
241
250
  animating: function() {
242
251
  return ( $dimmer.is(':animated') || $dimmer.hasClass(className.transition) );
243
252
  },
244
- page: function () {
245
- return $dimmable.is('body');
253
+ dimmer: function() {
254
+ return $module.is(selector.dimmer);
246
255
  },
247
- enabled: function() {
248
- return !$dimmable.hasClass(className.disabled);
256
+ dimmable: function() {
257
+ return $module.is(selector.dimmable);
258
+ },
259
+ dimmed: function() {
260
+ return $dimmable.hasClass(className.dimmed);
249
261
  },
250
262
  disabled: function() {
251
263
  return $dimmable.hasClass(className.disabled);
252
264
  },
265
+ enabled: function() {
266
+ return !module.is.disabled();
267
+ },
268
+ page: function () {
269
+ return $dimmable.is('body');
270
+ },
253
271
  pageDimmer: function() {
254
272
  return $dimmer.hasClass(className.pageDimmer);
255
273
  }
@@ -263,6 +281,7 @@ $.fn.dimmer = function(parameters) {
263
281
 
264
282
  set: {
265
283
  active: function() {
284
+ module.set.dimmed();
266
285
  $dimmer
267
286
  .removeClass(className.transition)
268
287
  .addClass(className.active)
@@ -298,8 +317,12 @@ $.fn.dimmer = function(parameters) {
298
317
  },
299
318
 
300
319
  show: function(callback) {
320
+ callback = $.isFunction(callback)
321
+ ? callback
322
+ : function(){}
323
+ ;
301
324
  module.debug('Showing dimmer', $dimmer, settings);
302
- if( !(module.is.active() || module.is.animating() ) && module.is.enabled() ) {
325
+ if( !module.is.active() && module.is.enabled() ) {
303
326
  module.animate.show(callback);
304
327
  $.proxy(settings.onShow, element)();
305
328
  $.proxy(settings.onChange, element)();
@@ -310,7 +333,11 @@ $.fn.dimmer = function(parameters) {
310
333
  },
311
334
 
312
335
  hide: function(callback) {
313
- if( module.is.active() && !module.is.animating() ) {
336
+ callback = $.isFunction(callback)
337
+ ? callback
338
+ : function(){}
339
+ ;
340
+ if( module.is.active() || module.is.animating() ) {
314
341
  module.debug('Hiding dimmer', $dimmer);
315
342
  module.animate.hide(callback);
316
343
  $.proxy(settings.onHide, element)();
@@ -323,7 +350,7 @@ $.fn.dimmer = function(parameters) {
323
350
 
324
351
  toggle: function() {
325
352
  module.verbose('Toggling dimmer visibility', $dimmer);
326
- if( !module.is.active() ) {
353
+ if( !module.is.dimmed() ) {
327
354
  module.show();
328
355
  }
329
356
  else {
@@ -332,26 +359,22 @@ $.fn.dimmer = function(parameters) {
332
359
  },
333
360
 
334
361
  setting: function(name, value) {
335
- if(value !== undefined) {
336
- if( $.isPlainObject(name) ) {
337
- $.extend(true, settings, name);
338
- }
339
- else {
340
- settings[name] = value;
341
- }
362
+ if( $.isPlainObject(name) ) {
363
+ $.extend(true, settings, name);
364
+ }
365
+ else if(value !== undefined) {
366
+ settings[name] = value;
342
367
  }
343
368
  else {
344
369
  return settings[name];
345
370
  }
346
371
  },
347
372
  internal: function(name, value) {
348
- if(value !== undefined) {
349
- if( $.isPlainObject(name) ) {
350
- $.extend(true, module, name);
351
- }
352
- else {
353
- module[name] = value;
354
- }
373
+ if( $.isPlainObject(name) ) {
374
+ $.extend(true, module, name);
375
+ }
376
+ else if(value !== undefined) {
377
+ module[name] = value;
355
378
  }
356
379
  else {
357
380
  return module[name];
@@ -479,14 +502,14 @@ $.fn.dimmer = function(parameters) {
479
502
  else if(found !== undefined) {
480
503
  response = found;
481
504
  }
482
- if($.isArray(invokedResponse)) {
483
- invokedResponse.push(response);
505
+ if($.isArray(returnedValue)) {
506
+ returnedValue.push(response);
484
507
  }
485
- else if(typeof invokedResponse == 'string') {
486
- invokedResponse = [invokedResponse, response];
508
+ else if(returnedValue !== undefined) {
509
+ returnedValue = [returnedValue, response];
487
510
  }
488
511
  else if(response !== undefined) {
489
- invokedResponse = response;
512
+ returnedValue = response;
490
513
  }
491
514
  return found;
492
515
  }
@@ -509,8 +532,8 @@ $.fn.dimmer = function(parameters) {
509
532
  })
510
533
  ;
511
534
 
512
- return (invokedResponse !== undefined)
513
- ? invokedResponse
535
+ return (returnedValue !== undefined)
536
+ ? returnedValue
514
537
  : this
515
538
  ;
516
539
  };
@@ -520,12 +543,11 @@ $.fn.dimmer.settings = {
520
543
  name : 'Dimmer',
521
544
  namespace : 'dimmer',
522
545
 
523
- verbose : true,
524
546
  debug : true,
547
+ verbose : true,
525
548
  performance : true,
526
549
 
527
550
  transition : 'fade',
528
-
529
551
  on : false,
530
552
  closable : true,
531
553
  duration : {
@@ -24,7 +24,7 @@ $.fn.dropdown = function(parameters) {
24
24
  query = arguments[0],
25
25
  methodInvoked = (typeof query == 'string'),
26
26
  queryArguments = [].slice.call(arguments, 1),
27
- invokedResponse
27
+ returnedValue
28
28
  ;
29
29
 
30
30
  $allModules
@@ -63,16 +63,11 @@ $.fn.dropdown = function(parameters) {
63
63
 
64
64
  module.set.selected();
65
65
 
66
- // no use detecting mouse events because touch devices emulate them
67
66
  if(hasTouch) {
68
67
  module.bind.touchEvents();
69
68
  }
69
+ // no use detecting mouse events because touch devices emulate them
70
70
  module.bind.mouseEvents();
71
-
72
- $document
73
- .one('mousemove' + eventNamespace, module.set.hasMouse)
74
- ;
75
-
76
71
  module.instantiate();
77
72
  },
78
73
 
@@ -161,14 +156,14 @@ $.fn.dropdown = function(parameters) {
161
156
  event: {
162
157
  test: {
163
158
  toggle: function(event) {
164
- module.determine.intent(event, module.toggle);
165
- event.preventDefault();
166
- event.stopImmediatePropagation();
159
+ if( module.determine.intent(event, module.toggle) ) {
160
+ event.preventDefault();
161
+ }
167
162
  },
168
163
  touch: function(event) {
169
164
  module.determine.intent(event, function() {
170
165
  if(event.type == 'touchstart') {
171
- module.timer = setTimeout(module.hide, 50);
166
+ module.timer = setTimeout(module.hide, settings.delay.touch);
172
167
  }
173
168
  else if(event.type == 'touchmove') {
174
169
  clearTimeout(module.timer);
@@ -178,7 +173,6 @@ $.fn.dropdown = function(parameters) {
178
173
  },
179
174
  hide: function(event) {
180
175
  module.determine.intent(event, module.hide);
181
- event.stopPropagation();
182
176
  }
183
177
  },
184
178
 
@@ -245,7 +239,7 @@ $.fn.dropdown = function(parameters) {
245
239
  settings.action(text, value);
246
240
  }
247
241
  else {
248
- module.error(error.action);
242
+ module.error(error.action, settings.action);
249
243
  }
250
244
  },
251
245
  intent: function(event, callback) {
@@ -254,9 +248,11 @@ $.fn.dropdown = function(parameters) {
254
248
  if( $(event.target).closest($menu).size() === 0 ) {
255
249
  module.verbose('Triggering event', callback);
256
250
  callback();
251
+ return true;
257
252
  }
258
253
  else {
259
254
  module.verbose('Event occurred in dropdown, canceling callback');
255
+ return false;
260
256
  }
261
257
  }
262
258
  },
@@ -383,16 +379,22 @@ $.fn.dropdown = function(parameters) {
383
379
  selection: function() {
384
380
  return $module.hasClass(className.selection);
385
381
  },
382
+ animated: function($subMenu) {
383
+ return ($subMenu)
384
+ ? $subMenu.is(':animated') || $subMenu.transition('is animating')
385
+ : $menu.is(':animated') || $menu.transition('is animating')
386
+ ;
387
+ },
386
388
  visible: function($subMenu) {
387
389
  return ($subMenu)
388
- ? $subMenu.is(':animated, :visible')
389
- : $menu.is(':animated, :visible')
390
+ ? $subMenu.is(':visible')
391
+ : $menu.is(':visible')
390
392
  ;
391
393
  },
392
394
  hidden: function($subMenu) {
393
395
  return ($subMenu)
394
- ? $subMenu.is(':not(:animated, :visible)')
395
- : $menu.is(':not(:animated, :visible)')
396
+ ? $subMenu.is(':not(:visible)')
397
+ : $menu.is(':not(:visible)')
396
398
  ;
397
399
  }
398
400
  },
@@ -454,7 +456,7 @@ $.fn.dropdown = function(parameters) {
454
456
  ;
455
457
  }
456
458
  else {
457
- module.error(error.transition);
459
+ module.error(error.transition, settings.transition);
458
460
  }
459
461
  }
460
462
  },
@@ -516,16 +518,18 @@ $.fn.dropdown = function(parameters) {
516
518
  if( module.is.hidden() ) {
517
519
  module.hideOthers();
518
520
  module.set.active();
519
- module.animate.show(module.set.visible);
520
- if( module.can.click() ) {
521
- module.bind.intent();
522
- }
521
+ module.animate.show(function() {
522
+ if( module.can.click() ) {
523
+ module.bind.intent();
524
+ }
525
+ module.set.visible();
526
+ });
523
527
  $.proxy(settings.onShow, element)();
524
528
  }
525
529
  },
526
530
 
527
531
  hide: function() {
528
- if( module.is.visible() ) {
532
+ if( !module.is.animated() && module.is.visible() ) {
529
533
  module.debug('Hiding dropdown');
530
534
  if( module.can.click() ) {
531
535
  module.unbind.intent();
@@ -569,26 +573,22 @@ $.fn.dropdown = function(parameters) {
569
573
  },
570
574
 
571
575
  setting: function(name, value) {
572
- if(value !== undefined) {
573
- if( $.isPlainObject(name) ) {
574
- $.extend(true, settings, name);
575
- }
576
- else {
577
- settings[name] = value;
578
- }
576
+ if( $.isPlainObject(name) ) {
577
+ $.extend(true, settings, name);
578
+ }
579
+ else if(value !== undefined) {
580
+ settings[name] = value;
579
581
  }
580
582
  else {
581
583
  return settings[name];
582
584
  }
583
585
  },
584
586
  internal: function(name, value) {
585
- if(value !== undefined) {
586
- if( $.isPlainObject(name) ) {
587
- $.extend(true, module, name);
588
- }
589
- else {
590
- module[name] = value;
591
- }
587
+ if( $.isPlainObject(name) ) {
588
+ $.extend(true, module, name);
589
+ }
590
+ else if(value !== undefined) {
591
+ module[name] = value;
592
592
  }
593
593
  else {
594
594
  return module[name];
@@ -713,14 +713,14 @@ $.fn.dropdown = function(parameters) {
713
713
  else if(found !== undefined) {
714
714
  response = found;
715
715
  }
716
- if($.isArray(invokedResponse)) {
717
- invokedResponse.push(response);
716
+ if($.isArray(returnedValue)) {
717
+ returnedValue.push(response);
718
718
  }
719
- else if(typeof invokedResponse == 'string') {
720
- invokedResponse = [invokedResponse, response];
719
+ else if(returnedValue !== undefined) {
720
+ returnedValue = [returnedValue, response];
721
721
  }
722
722
  else if(response !== undefined) {
723
- invokedResponse = response;
723
+ returnedValue = response;
724
724
  }
725
725
  return found;
726
726
  }
@@ -741,8 +741,8 @@ $.fn.dropdown = function(parameters) {
741
741
  })
742
742
  ;
743
743
 
744
- return (invokedResponse)
745
- ? invokedResponse
744
+ return (returnedValue)
745
+ ? returnedValue
746
746
  : this
747
747
  ;
748
748
  };
@@ -760,8 +760,9 @@ $.fn.dropdown.settings = {
760
760
  action : 'activate',
761
761
 
762
762
  delay: {
763
- show: 200,
764
- hide: 300
763
+ show : 200,
764
+ hide : 300,
765
+ touch : 50
765
766
  },
766
767
 
767
768
  transition : 'slide down',
@@ -24,7 +24,7 @@ $.fn.modal = function(parameters) {
24
24
  methodInvoked = (typeof query == 'string'),
25
25
  queryArguments = [].slice.call(arguments, 1),
26
26
 
27
- invokedResponse
27
+ returnedValue
28
28
  ;
29
29
 
30
30
 
@@ -63,6 +63,11 @@ $.fn.modal = function(parameters) {
63
63
  initialize: function() {
64
64
  module.verbose('Initializing dimmer', $context);
65
65
 
66
+ if(typeof $.fn.dimmer === undefined) {
67
+ module.error(error.dimmer);
68
+ return;
69
+ }
70
+
66
71
  $dimmable = $context
67
72
  .dimmer({
68
73
  closable : false,
@@ -140,12 +145,24 @@ $.fn.modal = function(parameters) {
140
145
  close: function() {
141
146
  module.verbose('Closing element pressed');
142
147
  if( $(this).is(selector.approve) ) {
143
- $.proxy(settings.onApprove, element)();
148
+ if($.proxy(settings.onApprove, element)()) {
149
+ module.hide();
150
+ }
151
+ else {
152
+ module.verbose('Approve callback returned false cancelling hide');
153
+ }
144
154
  }
145
- if( $(this).is(selector.deny) ) {
146
- $.proxy(settings.onDeny, element)();
155
+ else if( $(this).is(selector.deny) ) {
156
+ if($.proxy(settings.onDeny, element)()) {
157
+ module.hide();
158
+ }
159
+ else {
160
+ module.verbose('Deny callback returned false cancelling hide');
161
+ }
162
+ }
163
+ else {
164
+ module.hide();
147
165
  }
148
- module.hide();
149
166
  },
150
167
  click: function(event) {
151
168
  module.verbose('Determining if event occured on dimmer', event);
@@ -282,7 +299,7 @@ $.fn.modal = function(parameters) {
282
299
 
283
300
  restore: {
284
301
  focus: function() {
285
- if($focusedElement.size() > 0) {
302
+ if($focusedElement && $focusedElement.size() > 0) {
286
303
  $focusedElement.focus();
287
304
  }
288
305
  }
@@ -376,26 +393,22 @@ $.fn.modal = function(parameters) {
376
393
  },
377
394
 
378
395
  setting: function(name, value) {
379
- if(value !== undefined) {
380
- if( $.isPlainObject(name) ) {
381
- $.extend(true, settings, name);
382
- }
383
- else {
384
- settings[name] = value;
385
- }
396
+ if( $.isPlainObject(name) ) {
397
+ $.extend(true, settings, name);
398
+ }
399
+ else if(value !== undefined) {
400
+ settings[name] = value;
386
401
  }
387
402
  else {
388
403
  return settings[name];
389
404
  }
390
405
  },
391
406
  internal: function(name, value) {
392
- if(value !== undefined) {
393
- if( $.isPlainObject(name) ) {
394
- $.extend(true, module, name);
395
- }
396
- else {
397
- module[name] = value;
398
- }
407
+ if( $.isPlainObject(name) ) {
408
+ $.extend(true, module, name);
409
+ }
410
+ else if(value !== undefined) {
411
+ module[name] = value;
399
412
  }
400
413
  else {
401
414
  return module[name];
@@ -520,14 +533,14 @@ $.fn.modal = function(parameters) {
520
533
  else if(found !== undefined) {
521
534
  response = found;
522
535
  }
523
- if($.isArray(invokedResponse)) {
524
- invokedResponse.push(response);
536
+ if($.isArray(returnedValue)) {
537
+ returnedValue.push(response);
525
538
  }
526
- else if(typeof invokedResponse == 'string') {
527
- invokedResponse = [invokedResponse, response];
539
+ else if(returnedValue !== undefined) {
540
+ returnedValue = [returnedValue, response];
528
541
  }
529
542
  else if(response !== undefined) {
530
- invokedResponse = response;
543
+ returnedValue = response;
531
544
  }
532
545
  return found;
533
546
  }
@@ -548,8 +561,8 @@ $.fn.modal = function(parameters) {
548
561
  })
549
562
  ;
550
563
 
551
- return (invokedResponse !== undefined)
552
- ? invokedResponse
564
+ return (returnedValue !== undefined)
565
+ ? returnedValue
553
566
  : this
554
567
  ;
555
568
  };
@@ -571,8 +584,8 @@ $.fn.modal.settings = {
571
584
 
572
585
  onShow : function(){},
573
586
  onHide : function(){},
574
- onApprove : function(){},
575
- onDeny : function(){},
587
+ onApprove : function(){ return true; },
588
+ onDeny : function(){ return true; },
576
589
 
577
590
  selector : {
578
591
  close : '.close, .actions .button',
@@ -580,7 +593,8 @@ $.fn.modal.settings = {
580
593
  deny : '.actions .negative, .actions .cancel'
581
594
  },
582
595
  error : {
583
- method : 'The method you called is not defined.'
596
+ dimmer : 'UI Dimmer, a required component is not included in this page',
597
+ method : 'The method you called is not defined.'
584
598
  },
585
599
  className : {
586
600
  active : 'active',