semantic-ui-rails 0.3.5 → 0.6.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
  }