semantic-ui-rails 0.3.5 → 0.6.5

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.
@@ -33,7 +33,7 @@ $.fn.modal = function(parameters) {
33
33
  var
34
34
  settings = ( $.isPlainObject(parameters) )
35
35
  ? $.extend(true, {}, $.fn.modal.settings, parameters)
36
- : $.fn.modal.settings,
36
+ : $.extend({}, $.fn.modal.settings),
37
37
 
38
38
  selector = settings.selector,
39
39
  className = settings.className,
@@ -50,6 +50,7 @@ $.fn.modal = function(parameters) {
50
50
  $close = $module.find(selector.close),
51
51
 
52
52
  $focusedElement,
53
+ $dimmable,
53
54
  $dimmer,
54
55
 
55
56
  element = this,
@@ -62,9 +63,17 @@ $.fn.modal = function(parameters) {
62
63
  initialize: function() {
63
64
  module.verbose('Initializing dimmer', $context);
64
65
 
65
- $dimmer = $context
66
+ $dimmable = $context
67
+ .dimmer({
68
+ closable : false,
69
+ show : settings.duration * 0.95,
70
+ hide : settings.duration * 1.05
71
+ })
66
72
  .dimmer('add content', $module)
67
73
  ;
74
+ $dimmer = $dimmable
75
+ .dimmer('get dimmer')
76
+ ;
68
77
 
69
78
  module.verbose('Attaching close events', $close);
70
79
  $close
@@ -89,8 +98,15 @@ $.fn.modal = function(parameters) {
89
98
  destroy: function() {
90
99
  module.verbose('Destroying previous modal');
91
100
  $module
101
+ .removeData(moduleNamespace)
102
+ .off(eventNamespace)
103
+ ;
104
+ $close
92
105
  .off(eventNamespace)
93
106
  ;
107
+ $context
108
+ .dimmer('destroy')
109
+ ;
94
110
  },
95
111
 
96
112
  refresh: function() {
@@ -122,9 +138,22 @@ $.fn.modal = function(parameters) {
122
138
 
123
139
  event: {
124
140
  close: function() {
125
- module.verbose('Close button pressed');
141
+ module.verbose('Closing element pressed');
142
+ if( $(this).is(selector.approve) ) {
143
+ $.proxy(settings.onApprove, element)();
144
+ }
145
+ if( $(this).is(selector.deny) ) {
146
+ $.proxy(settings.onDeny, element)();
147
+ }
126
148
  module.hide();
127
149
  },
150
+ click: function(event) {
151
+ module.verbose('Determining if event occured on dimmer', event);
152
+ if( $dimmer.find(event.target).size() === 0 ) {
153
+ module.hide();
154
+ event.stopImmediatePropagation();
155
+ }
156
+ },
128
157
  debounce: function(method, delay) {
129
158
  clearTimeout(module.timer);
130
159
  module.timer = setTimeout(method, delay);
@@ -135,13 +164,18 @@ $.fn.modal = function(parameters) {
135
164
  escapeKey = 27
136
165
  ;
137
166
  if(keyCode == escapeKey) {
138
- module.debug('Escape key pressed hiding modal');
139
- module.hide();
167
+ if(settings.closable) {
168
+ module.debug('Escape key pressed hiding modal');
169
+ module.hide();
170
+ }
171
+ else {
172
+ module.debug('Escape key pressed, but closable is set to false');
173
+ }
140
174
  event.preventDefault();
141
175
  }
142
176
  },
143
177
  resize: function() {
144
- if( $dimmer.dimmer('is active') ) {
178
+ if( $dimmable.dimmer('is active') ) {
145
179
  module.refresh();
146
180
  }
147
181
  }
@@ -177,13 +211,17 @@ $.fn.modal = function(parameters) {
177
211
 
178
212
  showDimmer: function() {
179
213
  module.debug('Showing modal');
180
- module.set.dimmerSettings();
181
- $dimmer.dimmer('show');
214
+ $dimmable.dimmer('show');
182
215
  },
183
216
 
184
217
  hide: function() {
185
- if( $dimmer.dimmer('is active') ) {
186
- $dimmer.dimmer('hide');
218
+ if(settings.closable) {
219
+ $dimmer
220
+ .off('click' + eventNamespace)
221
+ ;
222
+ }
223
+ if( $dimmable.dimmer('is active') ) {
224
+ $dimmable.dimmer('hide');
187
225
  }
188
226
  if( module.is.active() ) {
189
227
  module.hideModal();
@@ -196,7 +234,7 @@ $.fn.modal = function(parameters) {
196
234
 
197
235
  hideDimmer: function() {
198
236
  module.debug('Hiding dimmer');
199
- $dimmer.dimmer('hide');
237
+ $dimmable.dimmer('hide');
200
238
  },
201
239
 
202
240
  hideModal: function() {
@@ -261,7 +299,7 @@ $.fn.modal = function(parameters) {
261
299
  ;
262
300
  },
263
301
  scrolling: function() {
264
- $dimmer.removeClass(className.scrolling);
302
+ $dimmable.removeClass(className.scrolling);
265
303
  $module.removeClass(className.scrolling);
266
304
  }
267
305
  },
@@ -271,7 +309,7 @@ $.fn.modal = function(parameters) {
271
309
  height : $module.outerHeight() + settings.offset,
272
310
  contextHeight : (settings.context == 'body')
273
311
  ? $(window).height()
274
- : $dimmer.height()
312
+ : $dimmable.height()
275
313
  };
276
314
  module.debug('Caching modal and container sizes', module.cache);
277
315
  },
@@ -290,6 +328,7 @@ $.fn.modal = function(parameters) {
290
328
 
291
329
  set: {
292
330
  active: function() {
331
+ module.add.keyboardShortcuts();
293
332
  module.save.focus();
294
333
  module.set.type();
295
334
  $module
@@ -297,27 +336,12 @@ $.fn.modal = function(parameters) {
297
336
  ;
298
337
  if(settings.closable) {
299
338
  $dimmer
300
- .dimmer('get dimmer')
301
- .on('click', module.hide)
339
+ .on('click' + eventNamespace, module.event.click)
302
340
  ;
303
341
  }
304
342
  },
305
- dimmerSettings: function() {
306
- module.debug('Setting dimmer settings', $dimmer);
307
- $dimmer
308
- .dimmer('setting', 'closable', false)
309
- .dimmer('setting', 'duration', {
310
- show : settings.duration * 0.95,
311
- hide : settings.duration * 1.05
312
- })
313
- .dimmer('setting', 'onShow' , module.add.keyboardShortcuts)
314
- // destory after changing settings in order to reattach events
315
- .dimmer('destroy')
316
- .dimmer('initialize')
317
- ;
318
- },
319
343
  scrolling: function() {
320
- $dimmer.addClass(className.scrolling);
344
+ $dimmable.addClass(className.scrolling);
321
345
  $module.addClass(className.scrolling);
322
346
  },
323
347
  type: function() {
@@ -547,9 +571,13 @@ $.fn.modal.settings = {
547
571
 
548
572
  onShow : function(){},
549
573
  onHide : function(){},
574
+ onApprove : function(){},
575
+ onDeny : function(){},
550
576
 
551
577
  selector : {
552
- close : '.close, .actions .button'
578
+ close : '.close, .actions .button',
579
+ approve : '.actions .positive, .actions .approve',
580
+ deny : '.actions .negative, .actions .cancel'
553
581
  },
554
582
  error : {
555
583
  method : 'The method you called is not defined.'
@@ -32,7 +32,7 @@ $.fn.popup = function(parameters) {
32
32
  var
33
33
  settings = ( $.isPlainObject(parameters) )
34
34
  ? $.extend(true, {}, $.fn.popup.settings, parameters)
35
- : $.fn.popup.settings,
35
+ : $.extend({}, $.fn.popup.settings),
36
36
 
37
37
  selector = settings.selector,
38
38
  className = settings.className,
@@ -41,7 +41,7 @@ $.fn.popup = function(parameters) {
41
41
  namespace = settings.namespace,
42
42
 
43
43
  eventNamespace = '.' + settings.namespace,
44
- moduleNamespace = settings.namespace + '-module',
44
+ moduleNamespace = 'module-' + namespace,
45
45
 
46
46
  $module = $(this),
47
47
 
@@ -98,6 +98,9 @@ $.fn.popup = function(parameters) {
98
98
 
99
99
  destroy: function() {
100
100
  module.debug('Destroying previous module');
101
+ $window
102
+ .off(eventNamespace)
103
+ ;
101
104
  $module
102
105
  .off(eventNamespace)
103
106
  .removeData(moduleNamespace)
@@ -27,7 +27,9 @@ $.fn.rating = function(parameters) {
27
27
  $allModules
28
28
  .each(function() {
29
29
  var
30
- settings = $.extend(true, {}, $.fn.rating.settings, parameters),
30
+ settings = ( $.isPlainObject(parameters) )
31
+ ? $.extend(true, {}, $.fn.rating.settings, parameters)
32
+ : $.extend({}, $.fn.rating.settings),
31
33
 
32
34
  namespace = settings.namespace,
33
35
  className = settings.className,
@@ -38,11 +40,12 @@ $.fn.rating = function(parameters) {
38
40
  eventNamespace = '.' + namespace,
39
41
  moduleNamespace = 'module-' + namespace,
40
42
 
43
+ element = this,
44
+ instance = $(this).data(moduleNamespace),
45
+
41
46
  $module = $(this),
42
47
  $icon = $module.find(selector.icon),
43
48
 
44
- element = this,
45
- instance = $module.data(moduleNamespace),
46
49
  module
47
50
  ;
48
51
 
@@ -71,12 +74,14 @@ $.fn.rating = function(parameters) {
71
74
 
72
75
  instantiate: function() {
73
76
  module.verbose('Instantiating module', settings);
77
+ instance = module;
74
78
  $module
75
79
  .data(moduleNamespace, module)
76
80
  ;
77
81
  },
78
82
 
79
83
  destroy: function() {
84
+ module.verbose('Destroying previous instance', instance);
80
85
  $module
81
86
  .removeData(moduleNamespace)
82
87
  ;
@@ -274,6 +279,9 @@ $.fn.rating = function(parameters) {
274
279
  if(moduleSelector) {
275
280
  title += ' \'' + moduleSelector + '\'';
276
281
  }
282
+ if($allModules.size() > 1) {
283
+ title += ' ' + '(' + $allModules.size() + ')';
284
+ }
277
285
  if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
278
286
  console.groupCollapsed(title);
279
287
  if(console.table) {
@@ -343,7 +351,6 @@ $.fn.rating = function(parameters) {
343
351
  return found;
344
352
  }
345
353
  };
346
-
347
354
  if(methodInvoked) {
348
355
  if(instance === undefined) {
349
356
  module.initialize();
@@ -30,7 +30,7 @@ $.fn.sidebar = function(parameters) {
30
30
  var
31
31
  settings = ( $.isPlainObject(parameters) )
32
32
  ? $.extend(true, {}, $.fn.sidebar.settings, parameters)
33
- : $.fn.sidebar.settings,
33
+ : $.extend({}, $.fn.sidebar.settings),
34
34
 
35
35
  selector = settings.selector,
36
36
  className = settings.className,
@@ -38,7 +38,7 @@
38
38
  error = settings.error,
39
39
 
40
40
  eventNamespace = '.' + settings.namespace,
41
- moduleNamespace = settings.namespace + '-module',
41
+ moduleNamespace = 'module-' + settings.namespace,
42
42
 
43
43
  instance = $module.data(moduleNamespace),
44
44
 
@@ -103,6 +103,7 @@
103
103
  destroy: function() {
104
104
  module.debug('Destroying tabs', $module);
105
105
  $module
106
+ .removeData(moduleNamespace)
106
107
  .off(eventNamespace)
107
108
  ;
108
109
  },
@@ -314,7 +314,7 @@ $.fn.transition = function() {
314
314
  animation : animation
315
315
  });
316
316
  }
317
- return $.fn.transition.settings;
317
+ return $.extend({}, $.fn.transition.settings);
318
318
  },
319
319
 
320
320
  animationName: function() {
@@ -32,7 +32,7 @@ $.fn.video = function(parameters) {
32
32
  var
33
33
  settings = ( $.isPlainObject(parameters) )
34
34
  ? $.extend(true, {}, $.fn.video.settings, parameters)
35
- : $.fn.video.settings,
35
+ : $.extend({}, $.fn.video.settings),
36
36
 
37
37
  selector = settings.selector,
38
38
  className = settings.className,
@@ -41,7 +41,7 @@ $.fn.video = function(parameters) {
41
41
  namespace = settings.namespace,
42
42
 
43
43
  eventNamespace = '.' + namespace,
44
- moduleNamespace = namespace + '-module',
44
+ moduleNamespace = 'module-' + namespace,
45
45
 
46
46
  $module = $(this),
47
47
  $placeholder = $module.find(selector.placeholder),
@@ -80,6 +80,12 @@ $.fn.video = function(parameters) {
80
80
  .removeData(moduleNamespace)
81
81
  .off(eventNamespace)
82
82
  ;
83
+ $placeholder
84
+ .off(eventNamespace)
85
+ ;
86
+ $playButton
87
+ .off(eventNamespace)
88
+ ;
83
89
  },
84
90
 
85
91
  // sets new video
@@ -237,34 +237,45 @@
237
237
  margin-bottom: 0px;
238
238
  }
239
239
 
240
+
241
+ /*--------------
242
+ Button
243
+ ---------------*/
244
+
245
+ .ui.menu:not(.vertical) .item > .button {
246
+ position: relative;
247
+ top: -0.05em;
248
+
249
+ margin: -0.55em 0;
250
+ padding-bottom: 0.55em;
251
+ padding-top: 0.55em;
252
+
253
+ font-size: 0.875em;
254
+ box-shadow: none;
255
+ }
256
+
257
+
240
258
  /*--------------
241
259
  Inputs
242
260
  ---------------*/
243
261
 
244
- .ui.menu .item > .input,
245
- .ui.menu .item > .input input {
262
+ .ui.menu:not(.vertical) .item > .input {
263
+ margin-top: -0.83em;
264
+ margin-bottom: -0.83em;
265
+ padding-top: 0.3em;
266
+ padding-bottom: 0.3em;
246
267
  width: 100%;
247
268
  }
248
- .ui.menu .ui.input > .icon {
249
- padding-top: 0.1em;
250
- height: auto;
251
- }
252
- .ui.menu .item > .input input,
253
- .ui.menu .item > input[type="text"] {
254
- position: relative;
255
- margin: -0.45em 0em;
256
- padding-top: 0.45em;
257
- padding-bottom: 0.45em;
269
+ .ui.menu .item > .input input {
270
+ padding-top: 0.5em;
271
+ padding-bottom: 0.5em;
258
272
  }
259
- .ui.vertical.menu .item > .input input,
260
- .ui.vertical.menu .item > input[type="text"] {
261
- top: 0em;
273
+ .ui.vertical.menu .item > .input input {
262
274
  margin: 0em;
263
275
  padding-top: 0.63em;
264
276
  padding-bottom: 0.63em;
265
277
  }
266
278
  .ui.vertical.menu .ui.input > .icon {
267
- top: 0px;
268
279
  padding-top: 0.63em;
269
280
  }
270
281
 
@@ -284,9 +295,12 @@
284
295
  /*--------------
285
296
  Dropdowns
286
297
  ---------------*/
287
- /*.ui.menu .dropdown.item .menu {
298
+ .ui.menu .dropdown.item .menu {
299
+ left: 1px;
288
300
  margin: 1px 0px 0px 0px;
289
- }*/
301
+ min-width: calc(100% - 1px);
302
+ box-shadow: 0 1px 1px 1px #DDDDDD;
303
+ }
290
304
  .ui.menu .simple.dropdown.item .menu {
291
305
  margin: 0px !important;
292
306
  }
@@ -536,11 +550,13 @@
536
550
  /*--- Dropdown ---*/
537
551
  .ui.vertical.menu .dropdown.item > i {
538
552
  float: right;
553
+ content: "\f0da";
539
554
  }
540
555
  .ui.vertical.menu .dropdown.item .menu {
541
556
  top: 0% !important;
542
557
  left: 100%;
543
558
  margin: 0px 0px 0px 1px;
559
+ box-shadow: 0 0px 1px 1px #DDDDDD;
544
560
  }
545
561
  .ui.vertical.menu .dropdown.item.active {
546
562
  border-top-right-radius: 0em;
@@ -739,10 +755,12 @@
739
755
  }
740
756
 
741
757
  .ui.pagination.menu .item {
742
- min-width: 2.7em;
743
- min-height: 2.7em;
758
+ min-width: 3em;
744
759
  text-align: center;
745
760
  }
761
+ .ui.pagination.menu .icon.item .icon {
762
+ vertical-align: top;
763
+ }
746
764
  .ui.pagination.menu.floated {
747
765
  display: block;
748
766
  }
@@ -772,6 +790,7 @@
772
790
  -moz-box-shadow: none;
773
791
  box-shadow: none;
774
792
  }
793
+ .ui.secondary.menu > .menu > .item,
775
794
  .ui.secondary.menu > .item {
776
795
  -webkit-box-shadow: none;
777
796
  -moz-box-shadow: none;
@@ -787,10 +806,15 @@
787
806
  -moz-border-radius: 0.3125em;
788
807
  border-radius: 0.3125em;
789
808
  }
809
+ .ui.secondary.menu > .menu > .item:before,
790
810
  .ui.secondary.menu > .item:before {
791
811
  display: none !important;
792
812
  }
793
813
 
814
+ .ui.secondary.menu .item > .input input {
815
+ background-color: transparent;
816
+ border: none;
817
+ }
794
818
  .ui.secondary.menu .link.item,
795
819
  .ui.secondary.menu a.item {
796
820
  opacity: 0.8;
@@ -801,7 +825,6 @@
801
825
  -ms-transition: none;
802
826
  transition: none;
803
827
  }
804
-
805
828
  .ui.secondary.menu .header.item {
806
829
  border-right: 0.1em solid rgba(0, 0, 0, 0.1);
807
830
  background-color: transparent;
@@ -818,6 +841,7 @@
818
841
  }
819
842
 
820
843
  /* active */
844
+ .ui.secondary.menu > .menu > .active.item,
821
845
  .ui.secondary.menu > .active.item {
822
846
  background-color: rgba(0, 0, 0, 0.08);
823
847
  opacity: 1;
@@ -862,18 +886,9 @@
862
886
 
863
887
  .ui.secondary.pointing.menu {
864
888
  border-bottom: 3px solid rgba(0, 0, 0, 0.1);
865
-
866
- }
867
-
868
- .ui.secondary.pointing.menu .header.item {
869
- border-right-width: 0px;
870
- font-weight: bold;
871
- }
872
-
873
- .ui.secondary.pointing.menu .text.item {
874
- box-shadow: none !important;
875
889
  }
876
890
 
891
+ .ui.secondary.pointing.menu > .menu > .item,
877
892
  .ui.secondary.pointing.menu > .item {
878
893
  margin: 0em 0em -3px;
879
894
  padding: 0.6em 0.95em;
@@ -900,24 +915,40 @@
900
915
  color 0.2s
901
916
  ;
902
917
  }
918
+
919
+ /* Item Types */
920
+ .ui.secondary.pointing.menu .header.item {
921
+ border-right-width: 0px;
922
+ font-weight: bold;
923
+ }
924
+ .ui.secondary.pointing.menu .text.item {
925
+ box-shadow: none !important;
926
+ }
927
+ .ui.secondary.pointing.menu > .menu > .item:after,
903
928
  .ui.secondary.pointing.menu > .item:after {
904
929
  display: none;
905
930
  }
906
931
 
907
932
  /* Hover */
908
- .ui.secondary.pointing.menu > .item.hover,
909
- .ui.secondary.pointing.menu > .item:hover {
933
+ .ui.secondary.pointing.menu > .menu > .link.item:hover,
934
+ .ui.secondary.pointing.menu > .link.item:hover,
935
+ .ui.secondary.pointing.menu > .menu > a.item:hover,
936
+ .ui.secondary.pointing.menu > a.item:hover {
910
937
  background-color: transparent;
911
938
  color: rgba(0, 0, 0, 0.7);
912
939
  }
913
940
 
914
941
  /* Down */
915
- .ui.secondary.pointing.menu > .item:active {
942
+ .ui.secondary.pointing.menu > .menu > .link.item:active,
943
+ .ui.secondary.pointing.menu > .link.item:active,
944
+ .ui.secondary.pointing.menu > .menu > a.item:active,
945
+ .ui.secondary.pointing.menu > a.item:active {
916
946
  background-color: transparent;
917
947
  border-color: rgba(0, 0, 0, 0.2);
918
948
  }
919
949
 
920
950
  /* Active */
951
+ .ui.secondary.pointing.menu > .menu > .item.active,
921
952
  .ui.secondary.pointing.menu > .item.active {
922
953
  background-color: transparent;
923
954
  border-color: rgba(0, 0, 0, 0.4);
@@ -1744,6 +1775,10 @@
1744
1775
  .ui.small.menu .item {
1745
1776
  font-size: 0.875rem;
1746
1777
  }
1778
+ .ui.small.menu:not(.vertical) .item > .input input {
1779
+ padding-top: 0.4em;
1780
+ padding-bottom: 0.4em;
1781
+ }
1747
1782
  .ui.small.vertical.menu {
1748
1783
  width: 13rem;
1749
1784
  }
@@ -1762,6 +1797,14 @@
1762
1797
  .ui.large.menu .item .item {
1763
1798
  font-size: 0.875rem;
1764
1799
  }
1800
+ .ui.large.menu:not(.vertical) .item > .input input {
1801
+ top: -0.125em;
1802
+ padding-bottom: 0.6em;
1803
+ padding-top: 0.6em;
1804
+ }
1805
+ .ui.large.menu .dropdown.item .item {
1806
+ font-size: 1rem;
1807
+ }
1765
1808
  .ui.large.vertical.menu {
1766
1809
  width: 18rem;
1767
1810
  }