corn_js 0.0.1

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.
data/README.md ADDED
@@ -0,0 +1,9 @@
1
+ # Popcorn
2
+
3
+ Popcorm is a pop up library that will handle list and menu associated
4
+ with an HTML control
5
+
6
+ # npm
7
+ use
8
+ npm install popcorn
9
+ to get popcorn from npm repository
data/Rakefile ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env rake
2
+ begin
3
+ require 'bundler/setup'
4
+ rescue LoadError
5
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
+ end
7
+ begin
8
+ require 'rdoc/task'
9
+ rescue LoadError
10
+ require 'rdoc/rdoc'
11
+ require 'rake/rdoctask'
12
+ RDoc::Task = Rake::RDocTask
13
+ end
14
+
15
+ RDoc::Task.new(:rdoc) do |rdoc|
16
+ rdoc.rdoc_dir = 'rdoc'
17
+ rdoc.title = 'CornJs'
18
+ rdoc.options << '--line-numbers'
19
+ rdoc.rdoc_files.include('README.rdoc')
20
+ rdoc.rdoc_files.include('lib/**/*.rb')
21
+ end
22
+
23
+ APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
24
+ load 'rails/tasks/engine.rake'
25
+
26
+
27
+
28
+ Bundler::GemHelper.install_tasks
29
+
@@ -0,0 +1 @@
1
+ //= require corn_js/corn.js
@@ -0,0 +1,326 @@
1
+ var Popcorn = function($element, defaults) {
2
+ this.$element = $element;
3
+ this.defaults = defaults;
4
+ };
5
+
6
+ Popcorn.prototype.decorateContainerWithHtml = function() {
7
+ if (this.positionType) {
8
+ throw "inferPositionType must be called after decorateContainerWithHtml";
9
+ }
10
+ this.containerOf().hide().addClass('popcorn');
11
+ this.containerOf().contents().wrap("<div class='popcorn-body'/>");
12
+ this.containerOf().append("<div class='popcorn-tail'></div>");
13
+ };
14
+
15
+ Popcorn.prototype.inferPositionType = function() {
16
+ var self = this;
17
+
18
+ function _createPositionType(defaults) {
19
+ if (self.collideLeft()) { return new LeftPosition(self); }
20
+ else if (self.collideRight()) { return new RightPosition(self); }
21
+ return new CenterPosition(self);
22
+ }
23
+
24
+ self.positionType = _createPositionType(self.defaults);
25
+ };
26
+
27
+ Popcorn.prototype.decorateContainerWithArrow = function() {
28
+ if (this.positionType == undefined) { throw "inferPositionType must be called in order to set up the arrows"; }
29
+
30
+ this.containerOf().find('.popcorn-tail').css('left', this.positionType.leftOffset());
31
+ };
32
+
33
+ var LeftPosition = function(popcorn) {
34
+ // TODO centrare la freccia sull'elemento puntato da fatpopcorn
35
+ // this.leftOffset = function() {return popcorn.$element.offset().left + (popcorn.$element.width() - popcorn.defaults.arrowWidth) / 2; }
36
+ this.leftOffset = function() { return popcorn.defaults.marginArrow; }
37
+ this.left = function() { return popcorn.defaults.marginBorder; }
38
+ this.top = function() { return popcorn.$element.offset().top + popcorn.defaults.verticalOffsetFromElement };
39
+ };
40
+
41
+ var RightPosition = function(popcorn) {
42
+ this.leftOffset = function() { return popcorn.containerOf().width() - (popcorn.defaults.arrowWidth + popcorn.defaults.marginArrow); }
43
+ this.left = function() { return $('html').width() - popcorn.defaults.marginBorder - popcorn.containerOf().width(); }
44
+ this.top = function() { return popcorn.$element.offset().top + popcorn.defaults.verticalOffsetFromElement };
45
+ };
46
+
47
+ var CenterPosition = function(popcorn) {
48
+ this.leftOffset = function() { return popcorn.containerOf().width() / 2 - Math.floor(popcorn.defaults.arrowWidth / 2); }
49
+ this.left = function() {
50
+ var middleOfElement = Popcorn.calculateMiddle(popcorn.$element.offset().left, popcorn.$element.width());
51
+ return Popcorn.calculateLeftOffset(middleOfElement, popcorn.containerOf().width());
52
+ }
53
+ this.top = function() { return popcorn.$element.offset().top + popcorn.defaults.verticalOffsetFromElement };
54
+ };
55
+
56
+ Popcorn.containerOf = function($element) {
57
+ return $element.next();
58
+ }
59
+
60
+ Popcorn.prototype.containerOf = function() {
61
+ return Popcorn.containerOf(this.$element);
62
+ }
63
+
64
+ Popcorn.prototype.setContainerPosition = function() {
65
+ this.containerOf().css('top', this.positionType.top());
66
+ this.containerOf().css('left', this.positionType.left());
67
+ }
68
+
69
+ Popcorn.prototype.collideRight = function() {
70
+ var middleOfElement = Popcorn.calculateMiddle(this.$element.offset().left, this.$element.width());
71
+ var rightOffset = middleOfElement + this.containerOf().width() / 2;
72
+ return ($('html').width() - (rightOffset + this.defaults.marginBorder)) < 0;
73
+ }
74
+
75
+ Popcorn.prototype.collideLeft = function() {
76
+ return (Popcorn.calculateLeftOffset(this.middleOf(), this.containerOf().width()) - this.defaults.marginBorder) < 0;
77
+ }
78
+
79
+ Popcorn.prototype.middleOf = function() {
80
+ return Popcorn.calculateMiddle(this.$element.offset().left, this.$element.width());
81
+ }
82
+
83
+ Popcorn.calculateMiddle = function(left, width) {
84
+ return left + width / 2;
85
+ }
86
+
87
+ Popcorn.calculateRightOffset = function(middlePoint, width) {
88
+ return middlePoint + width / 2;
89
+ }
90
+ Popcorn.calculateLeftOffset = function(middlePoint, width) {
91
+ return middlePoint - width / 2;
92
+ }
93
+ Popcorn.containerOf = function(element) {
94
+ return $(element).next();
95
+ }
96
+ Popcorn.hideAllContainers = function($elements) {
97
+ $elements.each(function() {
98
+ Popcorn.containerOf(this).hide();
99
+ });
100
+ }
101
+ Popcorn.hideAllContainersExcept = function($elements, element) {
102
+ $elements.not(element).each(function() {
103
+ Popcorn.containerOf(this).hide()
104
+ });
105
+ };
106
+
107
+ var FatPopcorn = function($element, defaults) {
108
+ function _checkOptions(options) {
109
+ return typeof options.modelName === undefined ||
110
+ options.modelId === undefined ||
111
+ options.token === undefined ||
112
+ options.current_user === undefined;
113
+ };
114
+ var self = this;
115
+
116
+ self.$element = $element;
117
+ self.defaults = defaults;
118
+ self.attributes = defaults;
119
+ this.get = function(option) {
120
+ return self.defaults[option];
121
+ }
122
+
123
+ if (_checkOptions(self.defaults)){
124
+ throw("parameters [modelName], [modelId], [token], [current_user] are required");
125
+ }
126
+ };
127
+ FatPopcorn.prototype = new Popcorn();
128
+
129
+ // // all'inizializzazione dello stream fa una richiesta e mostra la rotella di caricamento
130
+ // // all'arrivo della risposta toglie la rotella di caricamento e mostra lo stream arrivato
131
+ // FatPopcorn.prototype.initStream = function() {
132
+ // this.requestStream(onArrivedStream);
133
+ // this.showSpinner();
134
+ // };
135
+ // FatPopcorn.prototype.onArrivedStream = function() {
136
+ // this.hideSpinner();
137
+ // this.showStream();
138
+ // };
139
+ // FatPopcorn.prototype.initEdit = function() {
140
+ //
141
+ // };
142
+ // FatPopcorn.prototype.initHistory = function() {
143
+ //
144
+ // };
145
+
146
+ FatPopcorn.prototype.initEdit = function() {
147
+ this.setupFormAction();
148
+ this.setupFormToken();
149
+
150
+ };
151
+ FatPopcorn.prototype.actionUrl = function() {
152
+ return '/active_metadata/' + this.get('modelName') + '/' + this.get('modelId') + '/' + this.currentLabel() + '/notes';
153
+ };
154
+ FatPopcorn.prototype.setupFormAction = function() {
155
+ $('.fatpopcorn #notes_form').attr('action', this.actionUrl());
156
+ };
157
+ FatPopcorn.prototype.setupFormToken = function() {
158
+ $('.fatpopcorn #notes_form input[name="authenticity_token"]').val(this.get('token'));
159
+ };
160
+ FatPopcorn.prototype.currentLabel = function() {
161
+ return this.$element.attr('data-label');
162
+ };
163
+ FatPopcorn.hideContainer = function() {
164
+ $(window).off('resize');
165
+ return FatPopcorn.container().hide();
166
+ }
167
+ FatPopcorn.container = function() {
168
+ return $('.fatpopcorn').first();
169
+ }
170
+ FatPopcorn.prototype.containerOf = function() {
171
+ return $('.fatpopcorn').first();
172
+ }
173
+
174
+ FatPopcorn.decorateContainerWithHtml = function() {
175
+ var self = this;
176
+ function _html() {
177
+ return '<div class="fatpopcorn"><div class="popcorn-body"><div class="header"><ul><li class="stream-tab active"><div>stream</div></li>' +
178
+ '<li class="edit-tab"><div>edit</div></li><li class="history-tab"><div>history</div></li></ul></div>' +
179
+ '<div class="stream"><div class="content"></div></div><div class="history"><div class="content"></div></div>' +
180
+ '<div class="edit"><div class="watchlist"><h1>Watchlist</h1><div class="on-off _23states"><input type="radio" ' +
181
+ 'name="on" value="on" id="on"><label for="on" class="true"><span class="true">On</span></label><input type="radio" name="off" value="off" id="off"><label for="off" class="false">' +
182
+ '<span class="false">Off</span></label></div></div><hr/><div class="note"><h1>Nota</h1><form form action="" method="post" id="notes_form"><div style="margin:0;padding:0;display:inline"><input type="hidden" value="✓" name="utf8"><input type="hidden" value="' + self['token'] + '" name="authenticity_token"></div>' +
183
+ '<textarea name="note" rows="4"></textarea><a id="send_note" href="#">Inserisci</a></form></div><hr/>' +
184
+ '<div class="attachment"><h1>Allegati</h1><a href="#">Inserisci</a></div><div class="info"><h1>Info</h1><p>Lorem ipsum...</p></div></div></div><div class="popcorn-tail"></div><span class="loader"></span></div>';
185
+ };
186
+
187
+ if (FatPopcorn.container().size() == 0) {
188
+ $('body').append(_html());
189
+ }
190
+ FatPopcorn.container().hide();
191
+ }
192
+ FatPopcorn.prototype.addGripToElement = function($element) {
193
+ return $element.wrap('<span class="fatpopcorn_grip"/>');
194
+ };
195
+ FatPopcorn.prototype.gripOf = function($element) {
196
+ return $element.parent();
197
+ };
198
+
199
+ FatPopcorn.activateTheClickedTab = function() {
200
+ function _tabBodyName(tabName) { return '.' + tabName.split('-')[0].trim(); }
201
+ $('.fatpopcorn .header > ul > li').click(function(e){
202
+ e.stopPropagation();
203
+ e.preventDefault();
204
+ $('.fatpopcorn .active').removeClass('active');
205
+ $('.fatpopcorn .popcorn-body > div:not(.header)').hide();
206
+ $(_tabBodyName($(this).attr('class'))).show();
207
+ $(this).addClass('active');
208
+ });
209
+ };
210
+
211
+ FatPopcorn.containerVisible = function () {
212
+ return FatPopcorn.container().is(':visible');
213
+ };
214
+
215
+ FatPopcorn.bindRemoteEvents = function() {
216
+ $('.fatpopcorn').on('click', function(e) {
217
+ e.stopPropagation();
218
+ e.preventDefault();
219
+ });
220
+ $('#send_note').on('click',function() {
221
+ $.post($('form#notes_form').attr('action'), $('form#notes_form').serialize())
222
+ .success(FatPopcorn.newNoteSuccess);
223
+ });
224
+ $('.loader').ajaxSend(function(e) {
225
+ $(this).show();
226
+ });
227
+ $('.loader').ajaxComplete(function() {
228
+ $(this).hide();
229
+ });
230
+ };
231
+
232
+ FatPopcorn.prototype.newNoteSuccess = function() { $('.stream-tab').click(); };
233
+
234
+ (function($) {
235
+ $.fn.fatpopcorn = function(options) {
236
+
237
+ // plugin default options
238
+ var self = this, defaults = {
239
+ marginBorder: 4,
240
+ arrowWidth: 24,
241
+ marginArrow: 11,
242
+ verticalOffsetFromElement: 26
243
+ };
244
+
245
+ // extends defaults with options provided
246
+ if (options) {
247
+ $.extend(defaults, options);
248
+ }
249
+
250
+ $(window).click(function() { FatPopcorn.hideContainer(); });
251
+
252
+ FatPopcorn.decorateContainerWithHtml();
253
+ FatPopcorn.activateTheClickedTab();
254
+ FatPopcorn.bindRemoteEvents();
255
+
256
+ function _setUpElement() {
257
+ var $element = $(this), fatpopcorn = new FatPopcorn($element, defaults);
258
+ fatpopcorn.addGripToElement($element);
259
+
260
+ fatpopcorn.gripOf($element).click(function(e) {
261
+ e.stopPropagation();
262
+ e.preventDefault();
263
+ fatpopcorn.initEdit();
264
+
265
+ if (FatPopcorn.containerVisible()) {
266
+ FatPopcorn.hideContainer();
267
+ return;
268
+ }
269
+
270
+ fatpopcorn.inferPositionType();
271
+ fatpopcorn.setContainerPosition();
272
+ fatpopcorn.decorateContainerWithArrow();
273
+ fatpopcorn.containerOf().show();
274
+
275
+
276
+ $(window).on('resize',function() {
277
+ if (FatPopcorn.containerVisible()) fatpopcorn.setContainerPosition();
278
+ });
279
+ });
280
+
281
+ return this;
282
+ }
283
+ return self.each(_setUpElement);
284
+ }
285
+
286
+ $.fn.popcorn = function(options) {
287
+
288
+ // plugin default options
289
+ var elements = this, defaults = {
290
+ marginBorder: 4,
291
+ arrowWidth: 19,
292
+ marginArrow: 10,
293
+ verticalOffsetFromElement: 20
294
+ };
295
+
296
+ // extends defaults with options provided
297
+ if (options) {
298
+ $.extend(delfaults, options);
299
+ }
300
+
301
+ $(window).click(function() { Popcorn.hideAllContainers(elements); });
302
+
303
+ function _setUpElement(){
304
+ var $element = $(this), popcorn = new Popcorn($element, defaults);
305
+
306
+ popcorn.decorateContainerWithHtml();
307
+ popcorn.inferPositionType();
308
+ popcorn.decorateContainerWithArrow();
309
+ popcorn.setContainerPosition();
310
+
311
+ $element.click(function(e) {
312
+ e.stopPropagation();
313
+ e.preventDefault();
314
+ Popcorn.hideAllContainersExcept(elements, this);
315
+ Popcorn.containerOf($element).show();
316
+ });
317
+
318
+ $(window).resize(function() {
319
+ popcorn.setContainerPosition();
320
+ });
321
+ }
322
+
323
+ return this.each(_setUpElement);
324
+
325
+ };
326
+ })(jQuery);
@@ -0,0 +1,76 @@
1
+ /*
2
+ * Widget for 2 3 states display
3
+ */
4
+ ._23states input[type="radio"]{
5
+ -webkit-appearance:none;
6
+ display:none;
7
+ }
8
+
9
+ ._23states input[type="radio"]+label{
10
+ background-color:#dae2e8;
11
+ float: left;
12
+ display: block;
13
+ padding:0;
14
+ width : 25px;
15
+ height: 23px;
16
+ text-align: center;
17
+ font-weight: bold;
18
+ border: 1px solid #c3ccd1;
19
+ }
20
+
21
+ ._23states input[type="radio"]+label span{
22
+ display: block;
23
+ line-height:22px;
24
+ }
25
+ ._23states input[type="radio"] {
26
+ color: #666;
27
+ cursor: pointer;
28
+ text-transform: capitalize;
29
+ text-decoration: none;
30
+ }
31
+ ._23states input[type="radio"]+label.true {
32
+ border-right: none;
33
+ -moz-border-radius: 3px 0 0 3px;
34
+ -webkit-border-radius: 3px 0 0 3px;
35
+ border-radius: 3px 0 0 3px;
36
+ }
37
+ ._23states input[type="radio"]+label.false {
38
+ border-left: none;
39
+ -moz-border-radius: 0 3px 3px 0;
40
+ -webkit-border-radius: 0 3px 3px 0;
41
+ border-radius: 0 3px 3px 0;
42
+ }
43
+ ._23states input[type="radio"]+label.nil {
44
+ border-left: none;
45
+ border-right: none;
46
+ }
47
+ ._23states input[type="radio"]:checked+label.true {
48
+ color: #333;
49
+ border: 1px solid #9eba61;
50
+ -moz-border-radius: 3px 0 0 3px;
51
+ -webkit-border-radius: 3px 0 0 3px;
52
+ border-radius: 3px 0 0 3px;
53
+ background-image: linear-gradient(-90deg, rgb(162, 204, 89), rgb(201, 225, 132));
54
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, from(rgb(162, 204, 89)), to(rgb(201, 225, 132)));
55
+ background-image: -moz-linear-gradient(-90deg, rgb(162, 204, 89), rgb(201, 225, 132));
56
+ text-shadow: 0 1px 0 white;
57
+ }
58
+ ._23states input[type="radio"]:checked+label.false{
59
+ color: #333;
60
+ border: 1px solid #ce6632;
61
+ -moz-border-radius: 0 3px 3px 0;
62
+ -webkit-border-radius: 0 3px 3px 0;
63
+ border-radius: 0 3px 3px 0;
64
+ background-image: linear-gradient(-90deg, #d67747, #da855a);
65
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, from(#d67747), to(#da855a));
66
+ background-image: -moz-linear-gradient(-90deg, #d67747, #da855a);
67
+ text-shadow: 0 1px 0 white;
68
+ }
69
+ ._23states input[type="radio"]:checked+label.nil {
70
+ color: #333;
71
+ border: 1px solid #c3ccd1;
72
+ background-image: linear-gradient(-90deg, #e8e8e8, white);
73
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, from(#e8e8e8), to(white));
74
+ background-image: -moz-linear-gradient(-90deg, #e8e8e8, white);
75
+ text-shadow: 0 1px 0 white;
76
+ }
@@ -0,0 +1,276 @@
1
+ a {
2
+ color: #0066ff;
3
+ text-decoration: none;
4
+ font-style: italic;
5
+ }
6
+ a:hover {
7
+ color: #f56a00;
8
+ }
9
+ .popcorn, .fatpopcorn {
10
+ background: none repeat scroll 0 0 #FFFFFF;
11
+ border: medium none;
12
+ border-radius: 4px 4px 4px 4px;
13
+ box-shadow: 0 0 8px rgba(0, 0, 0, 0.35), 0 0 1px rgba(0, 0, 0, 0.5);
14
+ color: #444444;
15
+ font-size: 11px;
16
+ width: 160px;
17
+ min-height:20px;
18
+ overflow: visible;
19
+ position: fixed;
20
+ z-index: 9000;
21
+ margin-top: 4px;
22
+ }
23
+ .popcorn .popcorn-body {
24
+ padding: 5px;
25
+ }
26
+ .popcorn .popcorn-tail {
27
+ background: url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAAKCAYAAABWiWWfAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJlJREFUeNpi/P//PwM+wMjIqAKkQPgOUO0dfGqZCBikm5iYGPTmzZsZQUFBPkC+Nl6bQS7DhoEAZFDZjx8/PgL5/79+/foWaGABUFwbpx5iDIIBkIG+vr55uAzEalBMTEwJukHEGEiSQYQMJNkgLAZqoRgGBDqkGAQDX758eY1sINygb9++vf9PBkA2kAFoEBO5BqEZyAQQYAAiweCss5BeRQAAAABJRU5ErkJggg==") no-repeat scroll 0 100% transparent;
28
+ position: absolute;
29
+ width: 19px;
30
+ height: 10px;
31
+ top: -10px;
32
+ }
33
+
34
+ /* ----------------*/
35
+ /* -- fatpopcorn --*/
36
+ /* ----------------*/
37
+ /* grip */
38
+ .fatpopcorn_grip {
39
+ padding-right: 20px;
40
+ position: relative;
41
+ z-index: 100px;
42
+ }
43
+ .fatpopcorn_grip:hover {
44
+ background: transparent url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAcpJREFUeNqUU02rgVEQft73ykJJkixkI99+gYWFJCt+gGQnNvyGu7KwJMrCRpbWJFlIWStfiY0sKF/ZSp1rprhX93V1nzrNnM48z5yZM0cSQkAJ5/NZTKdT9j0eD3Q6naQUp3pFzmazOJ1OvNfr9SgUCkJJRFYSqNVqTPb5fLzIr9frijf9JbBarUSn04Esy0gkEojH4+y3221sNhuhWEKv1+N6F4sFlsslH4TDYZjNZvYDgQC63S5SqRRsNptwOp3cF7/fL30YDAZB1yPi8XhkgsPhQDqdhkaj4b3dbsdoNOJSKIYSDQYD7Pf7TykSiQiVSoVkMsmBtwz4C5RoPp+jWq3ier1CDoVC7IzHY1itVrwDxVC5xCGuHIvFoNVq0e/3UalU3gpQDMUSh7jyrQdSLpfjw1arhUaj8ZI8HA7pJWA0GkEc4oImkVaz2RTUj3K5LP6B7znY7XZsSf0/eAhst1u2JpOJ7eFw4HppkU+g2qPRKPL5PG2lp7+gVqvZXi4XlEolHhzqNIGmMBgMwuVyPcWyyv033sZXFIvFp+vdJu2R+ScymQw9ofQkcBeZTCZwu908qhaLhYPW6zWP+mw2g9frfZAJXwIMABU5CfhlmG8GAAAAAElFTkSuQmCC") no-repeat scroll right;
45
+ }
46
+
47
+ /* generic classes */
48
+ .fatpopcorn {
49
+ width: 360px;
50
+ min-height: 345px;
51
+ border: 1px solid #566476;
52
+ border-radius: 6px 6px 6px 6px;
53
+ position: absolute;
54
+ }
55
+ .fatpopcorn h1 {
56
+ margin: 12px 0 4px 0;
57
+ padding-left: 15px;
58
+ font-size: 12px;
59
+ color: #303030;
60
+ }
61
+ .fatpopcorn .attachment h1 {
62
+ background: transparent url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABh0RVh0Q3JlYXRpb24gVGltZQAxMS0wMS0yMDEytcl2IgAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNXG14zYAAADESURBVCiRfdAhcgJBEAXQtywCVHIEZGQcOLhByA1WEscRkMjIyI1DIpEcYeMikUjiggJBDzW1lc2vmprpqf/7/+5CN5aY4QE/OGDV6yDXuGCPIu66S1CjwWt0nWEUZ1q2yO844glbbOJ/gm8Mcocq8o6yCMnxhBU+i4w8beXN483dltCUGfkLA6yDvIx6jkUIpRnOGOMtcxxjGHPsUu4+HvESW/kv3h2HECU8B6lqE/NIDX7jvY764y9B6rgN+73bkJ24AvtdK0qIEWRDAAAAAElFTkSuQmCC") no-repeat scroll 0 2px;
63
+ }
64
+ .fatpopcorn .note h1 {
65
+ background: transparent url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABh0RVh0Q3JlYXRpb24gVGltZQAxMS0wMS0yMDEytcl2IgAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNXG14zYAAABtSURBVCiR5dGxDQJBDAXRAdEHlIA0LoDSKIVOOPIt4krYDj7RngQcOnImcvAsWfIuCVUV4MFnJ6ADl9ZaByAJalYw6lXt6qyek7Bfg2914AhMAIcNfBsQuG+eNBrm15Ne+suF5Q/q9A1V1TI/ATA3KJXtB0VMAAAAAElFTkSuQmCC") no-repeat scroll 0 2px;
66
+ }
67
+ .fatpopcorn .save h1 {
68
+ background: transparent url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAATRJREFUeNp8krFKxEAQhjfZJOZAOFNYqo11wCAW9gc+gZU+h9WJtQ8giC9i50PYXSXYWIgoKAm5bOL3r3vxbBz4M39m5p/Z2SSqqurJGLMHHPg0P2aHYdiMokj8Az6Ff+EvorIsB4KPYAp2g8BQcE3BDHoAv4Ofg9wWRXFF8LLv+/eu647wxjn3pmIwIXZC/pD4FvHjhIAKNgimFIwDiJk4jj3EsVflE71AdNjC/Jr4LblZKJbl2slPQLBtrZ0TvAnJGOyDe/Cizjq/EslyuZSfgEWWZYtwM7IHPbRT0zQS2FFAkdNo8bZtzUqkzjTxIuAXXO3glFSnMHG0NE1Nnue+6bgDaqdCfwtJ8keg7nVdS+h0Y0koPCOXrZ3frH1A72l8Kh6h0q+xw0ts/jGa9rjnbwEGAIjSw/IrQ5npAAAAAElFTkSuQmCC") no-repeat scroll 0 2px;
69
+ }
70
+ .fatpopcorn p {
71
+ color: #525252;
72
+ text-decoration: none;
73
+ font-style: italic;
74
+ font-size: 10px;
75
+ margin: 0 0 4px 0;
76
+ }
77
+
78
+ /* tail classes */
79
+ .fatpopcorn .popcorn-tail {
80
+ background: url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAALCAYAAABlNU3NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAXNJREFUeNpi/P//PwNNASkWGHvESAKxOSnmM4IsYGRkJKjQNTI7+eu377O0NVQ/P3ryrPDN2/eLzu5Y8peQPiZiXBGWWdWhrqLUPbW7kSkhMpifi5NzioKcdB/FPgAGB4+oiNAcORmpoMykaFZRYSGw+M9fvxh6Js/5/eTZ8yXPXrzKBPrkJ8kWAA3nkpeV3gMMEsv0hEgM+U+fvzAsWrme4c7dB0fuP3oSBLTkNdEWAA3XkpGSXGVuoq8dHujNwM7GhjMIVm/YxrD74NE7L1+9sQZa8oqgBUDDDRXlZbcG+bhL2lmZEgzjv3//MWzZuY/hyInTj2/dfeAPtOQ8Tgs8Y/Mj2FhZZ8dHBvGYGemTlNxPnLnAsHrjtg/AoMvcvnjiChQLTDxj2QT4+TKBKaU+OtRPEBj2ZOWpuw8eMfRPm/f9+48fOTuXTp4Ht8A7rnCRsJBgZF56HIukuBhFGffJsxcMS1Zt+P30+cuZwPxSBhBgAAqSqvJHz8DzAAAAAElFTkSuQmCC") no-repeat scroll 0 100% transparent;
81
+ position: absolute;
82
+ left: 0;
83
+ width: 24px;
84
+ height: 11px;
85
+ top: -11px;
86
+ }
87
+ /* header classes */
88
+ .fatpopcorn .header {
89
+ width: 100%;
90
+ height: 34px;
91
+ background-color: #E4EDF5;
92
+ border-bottom: 1px #566476 solid;
93
+ border-radius: 6px 6px 0px 0px;
94
+ }
95
+ .fatpopcorn .header ul {
96
+ list-style: none;
97
+ padding:0;
98
+ margin:0;
99
+ text-align: center;
100
+ }
101
+ .fatpopcorn .header ul li {
102
+ display: inline;
103
+ }
104
+ .fatpopcorn .header li {
105
+ width: 119px;
106
+ height: 34px;
107
+ float: left;
108
+ border-left: 1px solid #dbe2e7;
109
+ }
110
+ .fatpopcorn .header li.active {
111
+ -moz-box-shadow: inset 0 0 20px #717f8f;
112
+ -webkit-box-shadow: inset 0 0 20px #717f8f;
113
+ box-shadow: inset 0 0 20px #717f8f;
114
+ background-color: #b3c4d9;
115
+ border-left: none;
116
+ background-position: left bottom;
117
+ cursor: pointer;
118
+ width: 120px;
119
+ }
120
+ .fatpopcorn .header li:hover {
121
+ background-position: left bottom;
122
+ cursor: pointer;
123
+ }
124
+ .fatpopcorn .header li > div {
125
+ width: 16px;
126
+ height: 16px;
127
+ color: transparent;
128
+ margin: 8px auto;
129
+ }
130
+ .fatpopcorn .header li.active > div {
131
+ background-position: left bottom;
132
+ cursor: pointer;
133
+ }
134
+ .fatpopcorn .stream-tab > div {
135
+ background: url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAgCAYAAAAbifjMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALhJREFUeNpiLOuc85+BAsACpQuB+AKJeg2AuB9mwIWu8pQDpOgGuhxMMzFQCFjQTH0ApOQJ6PkAdK0gVgOAEgqkuoDqXigAUgKENAFd2oDVACD4D8XkuQBo8sQBDwNiovEj0KUCgy8aDWBpm8TMBDegn1wXMP4HgsFRHjAyMpJUHsAcTnEsMKGZ+uA/YfAeZ0oEemOAywOg84gqD4AupVF5ADSZ/uUBOdH4YXBGowEZmdKAKtkZIMAA98+JJhv1OP0AAAAASUVORK5CYII=") no-repeat scroll transparent;
136
+ }
137
+ .fatpopcorn .edit-tab > div {
138
+ background: url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAgCAYAAAAbifjMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUJJREFUeNqUk8FtwzAMRalMkBHcDbJBRqgzQWWgA/iUXNVje3LuBewRMkI6gbNBPUIzgUKh34AqSCpJ4DuWqP9MMZI5vn9uiWhiPbO+WPbj9LqQMDasC8whvoOZoTsNYI/3ic0dm0M1M/9aKeCWmF+QGyWQADhkzCSFmPDAnufKuo4/MpUqIE6GbXQVQLESEw+waNRUYtIVWojJrdBANrkskrme3FlvLPeniULIHefFocq2CshABh73eA+QvtiDQk9cZL7h3DwZUgTK7qP7c1YBIlADUEve+y3r4n/jympYJBXBtMaIxE4DSM0TxlYKmDNmL4VQtOfULIJQtOda2P8AhEVqSDqhhuTKUkFKzRFDan9RDvLDcqxFAkghwTxgPgBaCSCGuGTuKgWshgWy0blpSHPzUHZ8+QYtYFWDfiwPAQYAQE+qb2tD6HUAAAAASUVORK5CYII=") no-repeat scroll transparent;
139
+ }
140
+ .fatpopcorn .history-tab > div {
141
+ background: url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAgCAYAAAAbifjMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJ1JREFUeNpiLOuc85+BAsACpQuB+AKJeg2AuB9mwIWu8pQDpOgGuhxMM2GR+A/EDljEHbB5l4mBQjDwBrDgEE/AEg4KpBgQT6kLHNGjFeqi/cMwFig2gBGaPCnOTP1ku+A/EAyO8oCRkZGk8gDmcCYsEiDggEXcAZt3h3N5gCUcaFMe4PKCIyMaAIkN0+xMeXkATZ5kZyaKszNAgAEA3vlG66fKjJQAAAAASUVORK5CYII=") no-repeat scroll transparent;
142
+ }
143
+
144
+ /* stream classes */
145
+ .fatpopcorn .stream {
146
+ padding: 10px 0px 10px 10px;
147
+ }
148
+ .fatpopcorn .stream .content {
149
+ max-height: 400px;
150
+ overflow: auto;
151
+ padding: 0 10px 0 0;
152
+ }
153
+ .fatpopcorn .stream .content > * {
154
+ clear: both;
155
+ }
156
+ .fatpopcorn .stream .line {
157
+ display: table-cell;
158
+ width: 100%;
159
+ border-bottom: 1px solid #566476;
160
+ }
161
+ .fatpopcorn .stream .time {
162
+ font-size: 13px;
163
+ display: table-cell;
164
+ font-style: italic;
165
+ color: #303030;
166
+ padding-left: 3px;
167
+ vertical-align: bottom;
168
+ white-space: nowrap;
169
+ }
170
+
171
+ /* history classes*/
172
+ .fatpopcorn .history {
173
+ padding-bottom: 10px;
174
+ display: none;
175
+ }
176
+ .fatpopcorn .history .content {
177
+ max-height: 400px;
178
+ overflow: auto;
179
+ border-radius: 0 0 6px 6px;
180
+ }
181
+ .fatpopcorn .history div:nth-child(even) {
182
+ background-color: #fff
183
+ }
184
+ .fatpopcorn .history div:nth-child(odd) {
185
+ background-color: #f3f3f3
186
+ }
187
+ .fatpopcorn .history .content > div {
188
+ padding: 10px 10px 10px 10px;
189
+ }
190
+ .fatpopcorn .history .content > div > h1 {
191
+ margin: 0;
192
+ }
193
+
194
+ /* edit classes*/
195
+ .fatpopcorn .edit {
196
+ display: none;
197
+ }
198
+ .fatpopcorn .edit h1 {
199
+ font-size: 13px;
200
+ font-style: italic;
201
+ color: #303030;
202
+ white-space: nowrap;
203
+ margin 0;
204
+ font-weight: normal;
205
+ }
206
+ .fatpopcorn .edit .watchlist {
207
+ margin: 10px 10px 16px 10px;
208
+ }
209
+
210
+ .fatpopcorn .edit .note {
211
+ margin: 10px 10px 26px 10px;
212
+ }
213
+ .fatpopcorn .edit .attachment {
214
+ margin: 10px 10px 26px 10px;
215
+ }
216
+ .fatpopcorn .edit .watchlist h1 {
217
+ display: inline;
218
+ }
219
+ .fatpopcorn .edit .watchlist .on-off {
220
+ display: inline;
221
+ float: right;
222
+ }
223
+ .fatpopcorn .edit .info {
224
+ background-color: #f3f3f3;
225
+ display: table;
226
+ border-radius: 0px 0px 6px 6px;
227
+ padding: 10px;
228
+ height: 63px;
229
+ width: 340px;
230
+ }
231
+ .fatpopcorn .edit .info h1 {
232
+ background: url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAoxJREFUeNrMmL1SAjEQx7kbS3kAjwe40oaSRis7Km2gwkYqreyw4QW0OhupoNHqrKywofNegAcAHwB63OD/nFzcJBc+jtuZTGbysflls0k28VarVaWM4gkwz/OcOk0mk3PK6pRC5JwklKYibzQaYxf9a6a8YARTpayNdOxogCWloUgEudgZGEF1NwRiAQku2gqMgALKHrFkuxSxxHcEOHcGIygBM7BYKUESA8xQVqMUwPfqFut1CG6aG8wClfpLLM+Y+qwhqCxRLN40uAELx4JB2ZtG0YhSJDswJvFE6QRF35Ru5cGwcYSftjRwl/IkdWCvjE+Jzj1122PAD2YSov2FugNxzPSZ9lNqeyWD+czuCzXm5s6ipsayouxcLYSODnTKEmLsP/GZc0qVHuegkKrBuQOuELp6TFUbDFkwjYOOLKf2l6FO2w86R4yV2zowdQmNByF2YMxUxQYrpxIxS5oFg1Oq1sp1fVCbByxNjGPkGmW2fgu0z1gNLJUjFHAHYWy5puQ+Yqu/y3XyeWYQMcaNUib0jlMwdScmuutCkhdL/WkOq81pElNl/FD2sTpz1VRy+Ei8g3vzk7FY9hxTlsY222d5+bYQdiwd2KzAYHXmAnZw0YHVCmSouYAFBYIFJrCE2xkFyRl3IvhSqJsBQ1y2V8EYIRN2ay2WhjT7lqYmXP8Fw22/NIUhe7AWF2Yt02hGdv4hE4Z092itLhc4cLtyyFitld72G1rE9JJvaR45WTBNGCKkjweHqlxc4vemSx5tuBdYn2mfCbN85f6LmB0qzD1gLFe3PIT//WtAx0DzGImMnyquzzeHZd3u+ebw4LVGuDt98Jb6i6DUnyql/oYq/cfdwb46yyg/AgwAFCWENHW/4L0AAAAASUVORK5CYII=") no-repeat;
233
+ color: transparent;
234
+ display: table-cell;
235
+ width: 38px;
236
+ height: 38px;
237
+ }
238
+ .fatpopcorn .edit .info p {
239
+ color: #626262;
240
+ display: table-cell;
241
+ padding-left: 10px;
242
+ /* overflow: hidden; TODO Controllare cosa succede quando il testo va in overflow
243
+ text-overflow: ellipsis;*/
244
+ }
245
+ .fatpopcorn .edit textarea {
246
+ width: 98%;
247
+ margin-left: 2px;
248
+ resize: none;
249
+ border-width: 1px;
250
+ border-color: #7e9ab4;
251
+ border-style: solid;
252
+ }
253
+ .fatpopcorn .edit hr {
254
+ border-width: 0;
255
+ color: #566476;
256
+ height: 1px;
257
+ width: 340px;
258
+ background-color: #566476;
259
+ margin: 0 10px 0 10px;
260
+ clear: both;
261
+ }
262
+ .fatpopcorn .edit a {
263
+ font-size: 12px;
264
+ text-align: right;
265
+ float: right;
266
+ }
267
+ .fatpopcorn .loader {
268
+ display: none;
269
+ background: white url("data:image/gif;charset=utf-8;base64,R0lGODlhEAALAPQAAP///3F/j+rs7uTn6fL09XSCkXF/j4qWo7nAx6avuNjc4IOQnZqkr73Ey6ixutre4oaSn3OBkJymsfDy8+jr7fj5+ZCbp+vt7/f4+Nba3snP1OHk5/X29wAAAAAAAAAAACH+GkNyZWF0ZWQgd2l0aCBhamF4bG9hZC5pbmZvACH5BAALAAAAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQACwABACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQACwACACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQACwADACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAALAAQALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkEAAsABQAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAALAAYALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkEAAsABwAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA") no-repeat 50% 50%;
270
+ opacity: 0.7;
271
+ position: absolute;
272
+ top: 0;
273
+ width: 100%;
274
+ height: 100%;
275
+ z-index: 10000;
276
+ }
data/config/routes.rb ADDED
@@ -0,0 +1,2 @@
1
+ Rails.application.routes.draw do
2
+ end
@@ -0,0 +1,4 @@
1
+ module CornJs
2
+ class Engine < ::Rails::Engine
3
+ end
4
+ end
@@ -0,0 +1,3 @@
1
+ module CornJs
2
+ VERSION = "0.0.1"
3
+ end
data/lib/corn_js.rb ADDED
@@ -0,0 +1,4 @@
1
+ require "corn_js/engine"
2
+
3
+ module CornJs
4
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :corn_js do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,85 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: corn_js
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Gian Carlo Pace
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-02-07 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: &2165801040 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 3.2.1
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2165801040
25
+ - !ruby/object:Gem::Dependency
26
+ name: jquery-rails
27
+ requirement: &2165800420 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *2165800420
36
+ description: It's possible to use the generic popcorn and the app specific fat popcorn
37
+ plugin
38
+ email:
39
+ - giancarlo.pace@gmail.com
40
+ executables: []
41
+ extensions: []
42
+ extra_rdoc_files: []
43
+ files:
44
+ - app/assets/javascripts/corn.js
45
+ - app/assets/javascripts/corn_js/corn.js
46
+ - app/assets/stylesheets/corn_js/23states.css
47
+ - app/assets/stylesheets/corn_js/corn.css
48
+ - config/routes.rb
49
+ - lib/corn_js/engine.rb
50
+ - lib/corn_js/version.rb
51
+ - lib/corn_js.rb
52
+ - lib/tasks/corn_js_tasks.rake
53
+ - Rakefile
54
+ - README.md
55
+ homepage: http://www.fractalgarden.com
56
+ licenses: []
57
+ post_install_message:
58
+ rdoc_options: []
59
+ require_paths:
60
+ - lib
61
+ required_ruby_version: !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ segments:
68
+ - 0
69
+ hash: 2277742273154172901
70
+ required_rubygems_version: !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ segments:
77
+ - 0
78
+ hash: 2277742273154172901
79
+ requirements: []
80
+ rubyforge_project:
81
+ rubygems_version: 1.8.10
82
+ signing_key:
83
+ specification_version: 3
84
+ summary: A javascript popup menu plugin
85
+ test_files: []