semantic-ui-rails 0.6.5 → 0.7.2

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.
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',