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
@@ -13,16 +13,19 @@
13
13
 
14
14
  $.fn.sidebar = function(parameters) {
15
15
  var
16
- $allModules = $(this),
17
- moduleSelector = $allModules.selector || '',
16
+ $allModules = $(this),
17
+ $body = $('body'),
18
+ $head = $('head'),
18
19
 
19
- time = new Date().getTime(),
20
- performance = [],
20
+ moduleSelector = $allModules.selector || '',
21
21
 
22
- query = arguments[0],
23
- methodInvoked = (typeof query == 'string'),
24
- queryArguments = [].slice.call(arguments, 1),
25
- invokedResponse
22
+ time = new Date().getTime(),
23
+ performance = [],
24
+
25
+ query = arguments[0],
26
+ methodInvoked = (typeof query == 'string'),
27
+ queryArguments = [].slice.call(arguments, 1),
28
+ returnedValue
26
29
  ;
27
30
 
28
31
  $allModules
@@ -40,14 +43,11 @@ $.fn.sidebar = function(parameters) {
40
43
  eventNamespace = '.' + namespace,
41
44
  moduleNamespace = 'module-' + namespace,
42
45
 
43
- $module = $(this),
44
-
45
- $body = $('body'),
46
- $head = $('head'),
47
- $style = $('style[title=' + namespace + ']'),
46
+ $module = $(this),
47
+ $style = $('style[title=' + namespace + ']'),
48
48
 
49
- element = this,
50
- instance = $module.data(moduleNamespace),
49
+ element = this,
50
+ instance = $module.data(moduleNamespace),
51
51
  module
52
52
  ;
53
53
 
@@ -99,30 +99,54 @@ $.fn.sidebar = function(parameters) {
99
99
  }
100
100
  },
101
101
 
102
-
103
- show: function() {
104
- module.debug('Showing sidebar');
102
+ show: function(callback) {
103
+ callback = $.isFunction(callback)
104
+ ? callback
105
+ : function(){}
106
+ ;
107
+ module.debug('Showing sidebar', callback);
105
108
  if(module.is.closed()) {
106
109
  if(!settings.overlay) {
110
+ if(settings.exclusive) {
111
+ module.hideAll();
112
+ }
107
113
  module.pushPage();
108
114
  }
109
115
  module.set.active();
116
+ callback();
117
+ $.proxy(settings.onChange, element)();
118
+ $.proxy(settings.onShow, element)();
110
119
  }
111
120
  else {
112
121
  module.debug('Sidebar is already visible');
113
122
  }
114
123
  },
115
124
 
116
- hide: function() {
125
+ hide: function(callback) {
126
+ callback = $.isFunction(callback)
127
+ ? callback
128
+ : function(){}
129
+ ;
130
+ module.debug('Hiding sidebar', callback);
117
131
  if(module.is.open()) {
118
132
  if(!settings.overlay) {
119
133
  module.pullPage();
120
134
  module.remove.pushed();
121
135
  }
122
136
  module.remove.active();
137
+ callback();
138
+ $.proxy(settings.onChange, element)();
139
+ $.proxy(settings.onHide, element)();
123
140
  }
124
141
  },
125
142
 
143
+ hideAll: function() {
144
+ $(selector.sidebar)
145
+ .filter(':visible')
146
+ .sidebar('hide')
147
+ ;
148
+ },
149
+
126
150
  toggle: function() {
127
151
  if(module.is.closed()) {
128
152
  module.show();
@@ -272,26 +296,22 @@ $.fn.sidebar = function(parameters) {
272
296
  },
273
297
 
274
298
  setting: function(name, value) {
275
- if(value !== undefined) {
276
- if( $.isPlainObject(name) ) {
277
- $.extend(true, settings, name);
278
- }
279
- else {
280
- settings[name] = value;
281
- }
299
+ if( $.isPlainObject(name) ) {
300
+ $.extend(true, settings, name);
301
+ }
302
+ else if(value !== undefined) {
303
+ settings[name] = value;
282
304
  }
283
305
  else {
284
306
  return settings[name];
285
307
  }
286
308
  },
287
309
  internal: function(name, value) {
288
- if(value !== undefined) {
289
- if( $.isPlainObject(name) ) {
290
- $.extend(true, module, name);
291
- }
292
- else {
293
- module[name] = value;
294
- }
310
+ if( $.isPlainObject(name) ) {
311
+ $.extend(true, module, name);
312
+ }
313
+ else if(value !== undefined) {
314
+ module[name] = value;
295
315
  }
296
316
  else {
297
317
  return module[name];
@@ -419,14 +439,14 @@ $.fn.sidebar = function(parameters) {
419
439
  else if(found !== undefined) {
420
440
  response = found;
421
441
  }
422
- if($.isArray(invokedResponse)) {
423
- invokedResponse.push(response);
442
+ if($.isArray(returnedValue)) {
443
+ returnedValue.push(response);
424
444
  }
425
- else if(typeof invokedResponse == 'string') {
426
- invokedResponse = [invokedResponse, response];
445
+ else if(returnedValue !== undefined) {
446
+ returnedValue = [returnedValue, response];
427
447
  }
428
448
  else if(response !== undefined) {
429
- invokedResponse = response;
449
+ returnedValue = response;
430
450
  }
431
451
  return found;
432
452
  }
@@ -446,8 +466,8 @@ $.fn.sidebar = function(parameters) {
446
466
  })
447
467
  ;
448
468
 
449
- return (invokedResponse !== undefined)
450
- ? invokedResponse
469
+ return (returnedValue !== undefined)
470
+ ? returnedValue
451
471
  : this
452
472
  ;
453
473
  };
@@ -462,11 +482,10 @@ $.fn.sidebar.settings = {
462
482
  performance : true,
463
483
 
464
484
  useCSS : true,
485
+ exclusive : true,
465
486
  overlay : false,
466
487
  duration : 300,
467
488
 
468
- side : 'left',
469
-
470
489
  onChange : function(){},
471
490
  onShow : function(){},
472
491
  onHide : function(){},
@@ -480,6 +499,10 @@ $.fn.sidebar.settings = {
480
499
  bottom : 'bottom'
481
500
  },
482
501
 
502
+ selector: {
503
+ sidebar: '.ui.sidebar'
504
+ },
505
+
483
506
  error : {
484
507
  method : 'The method you called is not defined.',
485
508
  notFound : 'There were no elements that matched the specified selector'
@@ -47,7 +47,7 @@
47
47
  queryArguments = [].slice.call(arguments, 1),
48
48
 
49
49
  module,
50
- invokedResponse
50
+ returnedValue
51
51
  ;
52
52
 
53
53
  module = {
@@ -65,18 +65,26 @@
65
65
 
66
66
  // attach history events
67
67
  if(settings.history) {
68
+ module.debug('Initializing page state');
68
69
  if( $.address === undefined ) {
69
70
  module.error(error.state);
70
71
  return false;
71
72
  }
72
- else if(settings.path === false) {
73
- module.error(error.path);
74
- return false;
75
- }
76
73
  else {
77
- module.verbose('Address library found adding state change event');
74
+ if(settings.historyType == 'html5') {
75
+ module.debug('Using HTML5 to manage state');
76
+ if(settings.path !== false) {
77
+ $.address
78
+ .history(true)
79
+ .state(settings.path)
80
+ ;
81
+ }
82
+ else {
83
+ module.error(error.path);
84
+ return false;
85
+ }
86
+ }
78
87
  $.address
79
- .state(settings.path)
80
88
  .unbind('change')
81
89
  .bind('change', module.event.history.change)
82
90
  ;
@@ -110,15 +118,16 @@
110
118
 
111
119
  event: {
112
120
  click: function(event) {
113
- module.debug('Navigation clicked');
114
121
  var
115
122
  tabPath = $(this).data(metadata.tab)
116
123
  ;
117
124
  if(tabPath !== undefined) {
118
125
  if(settings.history) {
126
+ module.verbose('Updating page state', event);
119
127
  $.address.value(tabPath);
120
128
  }
121
129
  else {
130
+ module.verbose('Changing tab without state management', event);
122
131
  module.changeTab(tabPath);
123
132
  }
124
133
  event.preventDefault();
@@ -172,6 +181,12 @@
172
181
  }
173
182
  },
174
183
 
184
+ set: {
185
+ state: function(url) {
186
+ $.address.value(url);
187
+ }
188
+ },
189
+
175
190
  changeTab: function(tabPath) {
176
191
  var
177
192
  pushStateAvailable = (window.history && window.history.pushState),
@@ -234,6 +249,11 @@
234
249
  else {
235
250
  module.debug('Opened local tab', currentPath);
236
251
  module.activate.all(currentPath);
252
+ if( !module.cache.read(currentPath) ) {
253
+ module.cache.add(currentPath, true);
254
+ module.debug('First time tab loaded calling tab init');
255
+ $.proxy(settings.onTabInit, $tab)(currentPath, parameterArray, historyEvent);
256
+ }
237
257
  $.proxy(settings.onTabLoad, $tab)(currentPath, parameterArray, historyEvent);
238
258
  }
239
259
  }
@@ -443,26 +463,22 @@
443
463
  },
444
464
 
445
465
  setting: function(name, value) {
446
- if(value !== undefined) {
447
- if( $.isPlainObject(name) ) {
448
- $.extend(true, settings, name);
449
- }
450
- else {
451
- settings[name] = value;
452
- }
466
+ if( $.isPlainObject(name) ) {
467
+ $.extend(true, settings, name);
468
+ }
469
+ else if(value !== undefined) {
470
+ settings[name] = value;
453
471
  }
454
472
  else {
455
473
  return settings[name];
456
474
  }
457
475
  },
458
476
  internal: function(name, value) {
459
- if(value !== undefined) {
460
- if( $.isPlainObject(name) ) {
461
- $.extend(true, module, name);
462
- }
463
- else {
464
- module[name] = value;
465
- }
477
+ if( $.isPlainObject(name) ) {
478
+ $.extend(true, module, name);
479
+ }
480
+ else if(value !== undefined) {
481
+ module[name] = value;
466
482
  }
467
483
  else {
468
484
  return module[name];
@@ -587,14 +603,14 @@
587
603
  else if(found !== undefined) {
588
604
  response = found;
589
605
  }
590
- if($.isArray(invokedResponse)) {
591
- invokedResponse.push(response);
606
+ if($.isArray(returnedValue)) {
607
+ returnedValue.push(response);
592
608
  }
593
- else if(typeof invokedResponse == 'string') {
594
- invokedResponse = [invokedResponse, response];
609
+ else if(returnedValue !== undefined) {
610
+ returnedValue = [returnedValue, response];
595
611
  }
596
612
  else if(response !== undefined) {
597
- invokedResponse = response;
613
+ returnedValue = response;
598
614
  }
599
615
  return found;
600
616
  }
@@ -613,8 +629,8 @@
613
629
  module.initialize();
614
630
  }
615
631
 
616
- return (invokedResponse !== undefined)
617
- ? invokedResponse
632
+ return (returnedValue !== undefined)
633
+ ? returnedValue
618
634
  : this
619
635
  ;
620
636
 
@@ -644,7 +660,8 @@
644
660
 
645
661
  // uses pjax style endpoints fetching content from same url with remote-content headers
646
662
  auto : false,
647
- history : false,
663
+ history : true,
664
+ historyType : 'hash',
648
665
  path : false,
649
666
 
650
667
  context : 'body',
@@ -30,7 +30,7 @@ $.fn.transition = function() {
30
30
  || window.msRequestAnimationFrame
31
31
  || function(callback) { setTimeout(callback, 0); },
32
32
 
33
- invokedResponse
33
+ returnedValue
34
34
  ;
35
35
  $allModules
36
36
  .each(function() {
@@ -146,10 +146,12 @@ $.fn.transition = function() {
146
146
  if($module.hasClass(className.outward)) {
147
147
  module.restore.conditions();
148
148
  module.hide();
149
+ $.proxy(settings.onHide, this)();
149
150
  }
150
151
  else if($module.hasClass(className.inward)) {
151
152
  module.restore.conditions();
152
153
  module.show();
154
+ $.proxy(settings.onShow, this)();
153
155
  }
154
156
  else {
155
157
  module.restore.conditions();
@@ -436,26 +438,22 @@ $.fn.transition = function() {
436
438
  },
437
439
 
438
440
  setting: function(name, value) {
439
- if(value !== undefined) {
440
- if( $.isPlainObject(name) ) {
441
- $.extend(true, settings, name);
442
- }
443
- else {
444
- settings[name] = value;
445
- }
441
+ if( $.isPlainObject(name) ) {
442
+ $.extend(true, settings, name);
443
+ }
444
+ else if(value !== undefined) {
445
+ settings[name] = value;
446
446
  }
447
447
  else {
448
448
  return settings[name];
449
449
  }
450
450
  },
451
451
  internal: function(name, value) {
452
- if(value !== undefined) {
453
- if( $.isPlainObject(name) ) {
454
- $.extend(true, module, name);
455
- }
456
- else {
457
- module[name] = value;
458
- }
452
+ if( $.isPlainObject(name) ) {
453
+ $.extend(true, module, name);
454
+ }
455
+ else if(value !== undefined) {
456
+ module[name] = value;
459
457
  }
460
458
  else {
461
459
  return module[name];
@@ -582,14 +580,14 @@ $.fn.transition = function() {
582
580
  else if(found !== undefined) {
583
581
  response = found;
584
582
  }
585
- if($.isArray(invokedResponse)) {
586
- invokedResponse.push(response);
583
+ if($.isArray(returnedValue)) {
584
+ returnedValue.push(response);
587
585
  }
588
- else if(typeof invokedResponse == 'string') {
589
- invokedResponse = [invokedResponse, response];
586
+ else if(returnedValue !== undefined) {
587
+ returnedValue = [returnedValue, response];
590
588
  }
591
589
  else if(response !== undefined) {
592
- invokedResponse = response;
590
+ returnedValue = response;
593
591
  }
594
592
  return found || false;
595
593
  }
@@ -597,8 +595,8 @@ $.fn.transition = function() {
597
595
  module.initialize();
598
596
  })
599
597
  ;
600
- return (invokedResponse !== undefined)
601
- ? invokedResponse
598
+ return (returnedValue !== undefined)
599
+ ? returnedValue
602
600
  : this
603
601
  ;
604
602
  };
@@ -622,12 +620,14 @@ $.fn.transition.settings = {
622
620
 
623
621
  // animation complete event
624
622
  complete : function() {},
623
+ onShow : function() {},
624
+ onHide : function() {},
625
625
 
626
626
  // animation duration
627
627
  animation : 'fade',
628
628
  duration : '700ms',
629
629
 
630
- // queue up animations
630
+ // new animations will occur after previous ones
631
631
  queue : true,
632
632
 
633
633
  className : {