lalala 4.1.0.dev.299 → 4.1.0.dev.305

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 (24) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/lalala/base.js +17 -7
  3. data/app/assets/javascripts/lalala/initializers/assets.module.js +13 -0
  4. data/app/assets/javascripts/lalala/initializers/chosen.module.js +1 -1
  5. data/app/assets/javascripts/lalala/modules/{file-uploader-metadata.module.js → file-metadata.module.js} +16 -16
  6. data/app/assets/javascripts/lalala/modules/media_selector.module.js +1 -1
  7. data/app/assets/javascripts/lalala/modules/{file-uploader.module.js → multiple-files-uploader.module.js} +31 -27
  8. data/app/assets/javascripts/lalala/modules/single-file-uploader.module.js +197 -0
  9. data/app/assets/stylesheets/lalala/_base.css.scss +3 -2
  10. data/app/assets/stylesheets/lalala/base/_mixins.css.scss +11 -0
  11. data/app/assets/stylesheets/lalala/modules/{_file-uploader-metadata.css.scss → _file-metadata.css.scss} +2 -2
  12. data/app/assets/stylesheets/lalala/modules/{_file-uploader.css.scss → _multiple-file-uploader.css.scss} +3 -3
  13. data/app/assets/stylesheets/lalala/modules/_single-file-uploader.css.scss +130 -0
  14. data/lib/formtastic/inputs/{haraway_input.rb → multiple_files_input.rb} +44 -25
  15. data/lib/formtastic/inputs/single_file_input.rb +78 -0
  16. data/lib/lalala/version.rb +1 -1
  17. data/lib/lalala.rb +2 -1
  18. data/test/dummy/app/admin/articles.rb +3 -2
  19. data/test/dummy/app/models/article.rb +3 -1
  20. data/test/dummy/app/pages/media_page.rb +1 -1
  21. data/test/dummy/config/initializers/haraway.rb +3 -5
  22. metadata +10 -8
  23. data/app/assets/javascripts/lalala/initializers/haraway.module.js +0 -8
  24. data/app/assets/javascripts/lalala/modules/init.module.js +0 -20
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: aff21ad204eeefac76dc2d8cc0228cf471e7a652
4
- data.tar.gz: 7b71c86c78f8f818846c1a215377a6e33be9c033
3
+ metadata.gz: 83d329a4a1b854f2fbc863f36e6836c8024612fa
4
+ data.tar.gz: fc2864e92a0e8c8120decfd8d5d4aacd0f5e2289
5
5
  SHA512:
6
- metadata.gz: 2fd3c377829f45890a6e263e0138ca114ee6eaf58d902cbb1b5b3a3934ec119640a8c47d333e186b9997d7f36cb4bcaf002faf01168dfd259eb0ea3954e157e8
7
- data.tar.gz: f8a5bd437f23d2de42367364659ba04b540d7da857acd17c9c44944d9d2f97e64eb6b618e680e2f852bca6c4f3b83bf674fb06c3142444516796e2dcce6a0c3e
6
+ metadata.gz: a02aa6edd51dee002d5d2ec2bea3c776346f4d1944429646f3d23ef8a7cd67bf3088c01e3f731a04e064d9d095332c51e855c68cfd618ec5355b0b06d759a3c3
7
+ data.tar.gz: e959c755eef717dc4f227d0b7c94ee585111e5d977b012aee85d864b503c7e640655179feddaef226dab28f836d25cd030f862dc165d7ea296385952ff224e33
@@ -1,16 +1,26 @@
1
1
  //= require active_admin/base
2
2
  //= require_tree ./lib
3
-
4
3
  //= require_tree ../browser
5
4
  //= require_tree ./modules
6
5
  //= require_tree ./initializers
7
6
  //= require_self
8
7
 
9
- var haraway = require("lalala/initializers/haraway");
10
-
11
8
  $(function() {
12
- haraway.init();
13
- });
9
+ var initializers = [
10
+ "assets", "chosen"
11
+ ];
14
12
 
15
- // TODO - refactor
16
- require('lalala/modules/init');
13
+ var modules = [
14
+ "calendar", "editor", "locale_chooser",
15
+ "sorted_pages_tree", "login", "dashboard",
16
+ "collapsible_pages_tree"
17
+ ];
18
+
19
+ for (var i=0, j=initializers.length; i<j; ++i) {
20
+ require("lalala/initializers/" + initializers[i]).init();
21
+ }
22
+
23
+ for (var m=0, n=modules.length; m<n; ++m) {
24
+ require("lalala/modules/" + modules[m]).init();
25
+ }
26
+ });
@@ -0,0 +1,13 @@
1
+ var MultipleFilesUploader = require("lalala/modules/multiple-files-uploader");
2
+ var SingleFileUploader = require("lalala/modules/single-file-uploader");
3
+
4
+
5
+ exports.init = function() {
6
+ $("x-files[multiple-files]").each(function() {
7
+ new MultipleFilesUploader(this);
8
+ });
9
+
10
+ $("x-files[single-file]").each(function() {
11
+ new SingleFileUploader(this);
12
+ });
13
+ };
@@ -1,3 +1,3 @@
1
1
  exports.init = function() {
2
- $('select').not(".bypass-chosen").chosen();
2
+ $("select").not(".bypass-chosen").chosen();
3
3
  };
@@ -2,8 +2,8 @@ var Overlay = require("lalala/modules/overlay");
2
2
 
3
3
 
4
4
 
5
- function FileUploaderMetadata($xfile, fileuploader) {
6
- this.$el = $('<div class="mod-file-uploader-metadata" />');
5
+ function FileMetadata($xfile, fileuploader) {
6
+ this.$el = $('<div class="mod-file-metadata" />');
7
7
  this.$xfile = $xfile;
8
8
  this.fileuploader = fileuploader;
9
9
 
@@ -13,7 +13,7 @@ function FileUploaderMetadata($xfile, fileuploader) {
13
13
 
14
14
 
15
15
 
16
- FileUploaderMetadata.prototype.render = function() {
16
+ FileMetadata.prototype.render = function() {
17
17
  var tmpl, main_tmpl, sidebar_tmpl, img_tmpl, meta_tmpl;
18
18
  var that = this;
19
19
 
@@ -30,7 +30,7 @@ FileUploaderMetadata.prototype.render = function() {
30
30
 
31
31
  if (this.$xfile.hasClass("saved-to-db")) {
32
32
  img_tmpl = '<div class="image cover" style="background-image: url(' +
33
- this.$xfile.attr("data-src-original").replace("original", "cover") + ');"></div>';
33
+ this.$xfile.attr("data-src-original").replace("original", "thumb") + ');"></div>';
34
34
 
35
35
  meta_tmpl = this.$xfile.find(".meta").html();
36
36
 
@@ -92,9 +92,9 @@ FileUploaderMetadata.prototype.render = function() {
92
92
  //
93
93
  // Templates
94
94
  //
95
- FileUploaderMetadata.prototype.template = (function() {
95
+ FileMetadata.prototype.template = (function() {
96
96
  return [
97
- '<div class="mod-file-uploader-metadata">',
97
+ '<div class="mod-file-metadata">',
98
98
  '<div class="main">{{MAIN}}</div>',
99
99
  '<div class="sidebar">{{SIDEBAR}}</div>',
100
100
  '</div>'
@@ -102,7 +102,7 @@ FileUploaderMetadata.prototype.template = (function() {
102
102
  })();
103
103
 
104
104
 
105
- FileUploaderMetadata.prototype.main_template = (function() {
105
+ FileMetadata.prototype.main_template = (function() {
106
106
  return [
107
107
  '<div class="fields">',
108
108
  '{{FIELDS}}',
@@ -111,7 +111,7 @@ FileUploaderMetadata.prototype.main_template = (function() {
111
111
  })();
112
112
 
113
113
 
114
- FileUploaderMetadata.prototype.sidebar_template = (function() {
114
+ FileMetadata.prototype.sidebar_template = (function() {
115
115
  return [
116
116
  '{{IMAGE}}',
117
117
  '<div class="meta">{{META}}</div>',
@@ -123,7 +123,7 @@ FileUploaderMetadata.prototype.sidebar_template = (function() {
123
123
  })();
124
124
 
125
125
 
126
- FileUploaderMetadata.prototype.get_form_template = function() {
126
+ FileMetadata.prototype.get_form_template = function() {
127
127
  var $x = this.fileuploader.$el.find("template.form-template");
128
128
  var x = $x.get(0);
129
129
  var wrapper = document.createElement("div");
@@ -142,13 +142,13 @@ FileUploaderMetadata.prototype.get_form_template = function() {
142
142
  //
143
143
  // Events (General)
144
144
  //
145
- FileUploaderMetadata.prototype.bind_events = function() {
145
+ FileMetadata.prototype.bind_events = function() {
146
146
  this.$el.on("click", "a.button.commit", $.proxy(this.commit_click_handler, this));
147
147
  this.$el.on("click", "a.button.cancel", $.proxy(this.cancel_click_handler, this));
148
148
  };
149
149
 
150
150
 
151
- FileUploaderMetadata.prototype.unbind_events = function() {
151
+ FileMetadata.prototype.unbind_events = function() {
152
152
  this.$el.off("click");
153
153
  };
154
154
 
@@ -157,13 +157,13 @@ FileUploaderMetadata.prototype.unbind_events = function() {
157
157
  //
158
158
  // Actions
159
159
  //
160
- FileUploaderMetadata.prototype.commit_click_handler = function() {
160
+ FileMetadata.prototype.commit_click_handler = function() {
161
161
  this.copy_attributes_to_xfile();
162
162
  this.hide();
163
163
  };
164
164
 
165
165
 
166
- FileUploaderMetadata.prototype.cancel_click_handler = function() {
166
+ FileMetadata.prototype.cancel_click_handler = function() {
167
167
  this.hide();
168
168
  };
169
169
 
@@ -172,7 +172,7 @@ FileUploaderMetadata.prototype.cancel_click_handler = function() {
172
172
  //
173
173
  // Attributes
174
174
  //
175
- FileUploaderMetadata.prototype.copy_attributes_to_xfile = function() {
175
+ FileMetadata.prototype.copy_attributes_to_xfile = function() {
176
176
  var $xattr = this.$xfile.find(".attributes");
177
177
  var new_attributes_container;
178
178
 
@@ -235,7 +235,7 @@ FileUploaderMetadata.prototype.copy_attributes_to_xfile = function() {
235
235
  //
236
236
  // Other
237
237
  //
238
- FileUploaderMetadata.prototype.hide = function() {
238
+ FileMetadata.prototype.hide = function() {
239
239
  this.unbind_events();
240
240
  Overlay.get_instance().hide();
241
241
  };
@@ -245,4 +245,4 @@ FileUploaderMetadata.prototype.hide = function() {
245
245
  //
246
246
  // -> EXPORT
247
247
  //
248
- module.exports = FileUploaderMetadata;
248
+ module.exports = FileMetadata;
@@ -57,7 +57,7 @@ MediaSelector.prototype.collect_data_from_self = function() {
57
57
  return $(this).attr("data-name");
58
58
  }).toArray();
59
59
 
60
- $xfiles.find("x-file").each(function() {
60
+ $xfiles.find("x-file[data-src-original]").each(function() {
61
61
  var $xfile = $(this);
62
62
 
63
63
  data.push({
@@ -1,9 +1,9 @@
1
- var FileUploaderMetadata = require("lalala/modules/file-uploader-metadata"),
1
+ var FileMetadata = require("lalala/modules/file-metadata"),
2
2
  Overlay = require("lalala/modules/overlay");
3
3
 
4
4
 
5
5
 
6
- function FileUploader(xfiles_element) {
6
+ function MultipleFilesUploader(xfiles_element) {
7
7
  this.$el = $(xfiles_element);
8
8
  this.$file_container = this.$el.find(".file-container");
9
9
  this.$form = this.$el.closest("form");
@@ -26,7 +26,7 @@ function FileUploader(xfiles_element) {
26
26
  //
27
27
  // Templates, views, etc.
28
28
  //
29
- FileUploader.prototype.make_xfile_template = function() {
29
+ MultipleFilesUploader.prototype.make_xfile_template = function() {
30
30
  var $template = this.$el.find("template.x-file-template");
31
31
  var template = $template.get(0);
32
32
  var $wrapper = $("<x-file />");
@@ -51,7 +51,7 @@ FileUploader.prototype.make_xfile_template = function() {
51
51
  };
52
52
 
53
53
 
54
- FileUploader.prototype.render_isempty_message_if_needed = function() {
54
+ MultipleFilesUploader.prototype.render_isempty_message_if_needed = function() {
55
55
  if (this.$file_container.find("x-file").length === 0) {
56
56
  this.$file_container[0].innerHTML = [
57
57
  "<div class=\"is-empty\">",
@@ -66,18 +66,18 @@ FileUploader.prototype.render_isempty_message_if_needed = function() {
66
66
  };
67
67
 
68
68
 
69
- FileUploader.prototype.set_data_inspection_html = function(html) {
69
+ MultipleFilesUploader.prototype.set_data_inspection_html = function(html) {
70
70
  this.$el.find("header .data-inspection").html(html);
71
71
  };
72
72
 
73
73
 
74
- FileUploader.prototype.clear_file_container = function() {
74
+ MultipleFilesUploader.prototype.clear_file_container = function() {
75
75
  this.$file_container.empty();
76
76
  this.$file_container.append("<div class=\"inner-wrapper\" />");
77
77
  };
78
78
 
79
79
 
80
- FileUploader.prototype.show_amount_of_files = function() {
80
+ MultipleFilesUploader.prototype.show_amount_of_files = function() {
81
81
  var amount_of_files = this.$file_container.find("x-file").length;
82
82
  var word = (amount_of_files === 1 ? "file" : "files");
83
83
 
@@ -87,7 +87,7 @@ FileUploader.prototype.show_amount_of_files = function() {
87
87
  };
88
88
 
89
89
 
90
- FileUploader.prototype.remove_hidden_fields_from_checkboxes = function($element) {
90
+ MultipleFilesUploader.prototype.remove_hidden_fields_from_checkboxes = function($element) {
91
91
  $element.find("input[type=\"checkbox\"]").each(function() {
92
92
  var name = $(this).attr("name");
93
93
  $element.find('[name="' + name + '"][type="hidden"]').remove();
@@ -99,7 +99,7 @@ FileUploader.prototype.remove_hidden_fields_from_checkboxes = function($element)
99
99
  //
100
100
  // Handle file
101
101
  //
102
- FileUploader.prototype.handle_file = function(file) {
102
+ MultipleFilesUploader.prototype.handle_file = function(file) {
103
103
  this.state.files_counter++;
104
104
  this.state.files[this.state.files_counter.toString()] = file;
105
105
 
@@ -153,13 +153,13 @@ FileUploader.prototype.handle_file = function(file) {
153
153
  //
154
154
  // -> this = file
155
155
  //
156
- FileUploader.prototype.file_start_handler = function(e) {
156
+ MultipleFilesUploader.prototype.file_start_handler = function(e) {
157
157
  this.$el.removeClass("waiting");
158
158
  this.$el.addClass("uploading");
159
159
  };
160
160
 
161
161
 
162
- FileUploader.prototype.file_progess_handler = function(e) {
162
+ MultipleFilesUploader.prototype.file_progess_handler = function(e) {
163
163
  if (this.$el.hasClass("error")) return;
164
164
 
165
165
  // if there are no transform -> upload percentage
@@ -174,7 +174,7 @@ FileUploader.prototype.file_progess_handler = function(e) {
174
174
  };
175
175
 
176
176
 
177
- FileUploader.prototype.file_err_handler = function(e) {
177
+ MultipleFilesUploader.prototype.file_err_handler = function(e) {
178
178
  console.error("Error", this);
179
179
 
180
180
  this.$el.addClass("error");
@@ -183,19 +183,19 @@ FileUploader.prototype.file_err_handler = function(e) {
183
183
  };
184
184
 
185
185
 
186
- FileUploader.prototype.file_done_uploading_handler = function(e) {
186
+ MultipleFilesUploader.prototype.file_done_uploading_handler = function(e) {
187
187
  this.$el.find(".upload-bar").addClass("done");
188
188
  this.$el.removeClass("uploading");
189
189
  this.$el.addClass("processing");
190
190
  };
191
191
 
192
192
 
193
- FileUploader.prototype.file_done_processing_handler = function(e) {
193
+ MultipleFilesUploader.prototype.file_done_processing_handler = function(e) {
194
194
  this.$el.find(".process-bar").addClass("done");
195
195
  };
196
196
 
197
197
 
198
- FileUploader.prototype.file_done_handler = function(e) {
198
+ MultipleFilesUploader.prototype.file_done_handler = function(e) {
199
199
  var name = this.$el.closest("x-files").attr("name");
200
200
  var pairs = format_asset_metadata(this.metadata, name + "[]");
201
201
 
@@ -209,6 +209,10 @@ FileUploader.prototype.file_done_handler = function(e) {
209
209
 
210
210
  this.$el.removeClass("processing");
211
211
  this.$el.addClass("uploaded");
212
+
213
+ // attr
214
+ var id = this.$el.find("input[name$=\"[id]\"]").val();
215
+ if (id) this.$el.attr("data-src-original", "//c.assets.sh/" + id + "/thumb");
212
216
  };
213
217
 
214
218
 
@@ -216,7 +220,7 @@ FileUploader.prototype.file_done_handler = function(e) {
216
220
  //
217
221
  // Events - General
218
222
  //
219
- FileUploader.prototype.bind_events = function() {
223
+ MultipleFilesUploader.prototype.bind_events = function() {
220
224
  var choose_handler = $.proxy(this.choose_click_handler, this);
221
225
  var delete_handler = $.proxy(this.xfile_btn_delete_click_handler, this);
222
226
  var meta_handler = $.proxy(this.xfile_btn_meta_click_handler, this);
@@ -237,7 +241,7 @@ FileUploader.prototype.bind_events = function() {
237
241
  };
238
242
 
239
243
 
240
- FileUploader.prototype.choose_click_handler = function(e) {
244
+ MultipleFilesUploader.prototype.choose_click_handler = function(e) {
241
245
  var accept = this.$el.attr("accept").split(",");
242
246
  var profile = this.$el.attr("profile");
243
247
 
@@ -249,7 +253,7 @@ FileUploader.prototype.choose_click_handler = function(e) {
249
253
  };
250
254
 
251
255
 
252
- FileUploader.prototype.defer_submit = function(e) {
256
+ MultipleFilesUploader.prototype.defer_submit = function(e) {
253
257
  var $form = $(e.currentTarget);
254
258
 
255
259
  // prevent default behaviour
@@ -267,13 +271,13 @@ FileUploader.prototype.defer_submit = function(e) {
267
271
  };
268
272
 
269
273
 
270
- FileUploader.prototype.xfile_btn_delete_click_handler = function(e) {
274
+ MultipleFilesUploader.prototype.xfile_btn_delete_click_handler = function(e) {
271
275
  var $xfile = $(e.currentTarget).closest("x-file");
272
276
  if ($xfile.length) this.toggle_destroy($xfile);
273
277
  };
274
278
 
275
279
 
276
- FileUploader.prototype.xfile_btn_meta_click_handler = function(e) {
280
+ MultipleFilesUploader.prototype.xfile_btn_meta_click_handler = function(e) {
277
281
  var $xfile = $(e.currentTarget).closest("x-file"), fum;
278
282
  var main_overlay = Overlay.get_instance();
279
283
 
@@ -281,10 +285,10 @@ FileUploader.prototype.xfile_btn_meta_click_handler = function(e) {
281
285
  if (!$xfile.hasClass("uploaded")) return;
282
286
 
283
287
  // new metadata overlay-content block
284
- fum = new FileUploaderMetadata($xfile, this);
288
+ fum = new FileMetadata($xfile, this);
285
289
  main_overlay.append_content(fum.$el);
286
290
  main_overlay.$el.find("select").chosen({ width: "80%" });
287
- main_overlay.show("file-uploader-metadata");
291
+ main_overlay.show("file-metadata");
288
292
  };
289
293
 
290
294
 
@@ -292,7 +296,7 @@ FileUploader.prototype.xfile_btn_meta_click_handler = function(e) {
292
296
  //
293
297
  // Destroy
294
298
  //
295
- FileUploader.prototype.toggle_destroy = function($xfile) {
299
+ MultipleFilesUploader.prototype.toggle_destroy = function($xfile) {
296
300
  if ($xfile.hasClass("about-to-destroy")) {
297
301
  this.set_to_not_destroy($xfile);
298
302
  } else {
@@ -301,7 +305,7 @@ FileUploader.prototype.toggle_destroy = function($xfile) {
301
305
  };
302
306
 
303
307
 
304
- FileUploader.prototype.set_to_destroy = function($xfile) {
308
+ MultipleFilesUploader.prototype.set_to_destroy = function($xfile) {
305
309
  var $destroy, $id;
306
310
 
307
311
  // add class
@@ -323,7 +327,7 @@ FileUploader.prototype.set_to_destroy = function($xfile) {
323
327
  };
324
328
 
325
329
 
326
- FileUploader.prototype.set_to_not_destroy = function($xfile) {
330
+ MultipleFilesUploader.prototype.set_to_not_destroy = function($xfile) {
327
331
  $xfile.removeClass("about-to-destroy");
328
332
  $xfile.find("[name$=\"_destroy]\"]").attr("value", "0");
329
333
  };
@@ -333,7 +337,7 @@ FileUploader.prototype.set_to_not_destroy = function($xfile) {
333
337
  //
334
338
  // Sortable
335
339
  //
336
- FileUploader.prototype.make_items_sortable = function() {
340
+ MultipleFilesUploader.prototype.make_items_sortable = function() {
337
341
  this.$el.sortable({
338
342
  containment: "parent",
339
343
  items: "x-file",
@@ -373,4 +377,4 @@ function format_asset_metadata(value, prefix) {
373
377
  //
374
378
  // -> EXPORT
375
379
  //
376
- module.exports = FileUploader;
380
+ module.exports = MultipleFilesUploader;
@@ -0,0 +1,197 @@
1
+ function SingleFileUploader(xfile_element) {
2
+ this.$el = $(xfile_element);
3
+ this.$form = this.$el.closest("form");
4
+
5
+ this.bind_events();
6
+ }
7
+
8
+
9
+
10
+ //
11
+ // Handle file
12
+ //
13
+ SingleFileUploader.prototype.handle_file = function(file) {
14
+ var $image;
15
+
16
+ file.$el = this.$el;
17
+ file.el = file.$el.get(0);
18
+
19
+ // make & add thumbnail
20
+ image = file.$el.find(".content .image").get(0);
21
+ image.innerHTML = "";
22
+
23
+ if (file.type.indexOf("image") == -1) {
24
+ var fake_thumb = document.createElement("div");
25
+ fake_thumb.className = "thumb no-image";
26
+ image.appendChild(fake_thumb);
27
+
28
+ } else {
29
+ file.readThumbnailData(58, 38, function(canvas) {
30
+ image.appendChild(canvas);
31
+ });
32
+
33
+ }
34
+
35
+ // bind events
36
+ file.on("start", this.file_start_handler);
37
+ file.on("progress", this.file_progess_handler);
38
+ file.on("err", this.file_err_handler);
39
+ file.on("done:uploading", this.file_done_uploading_handler);
40
+ file.on("done:processing", this.file_done_processing_handler);
41
+ file.on("done", this.file_done_handler);
42
+ };
43
+
44
+
45
+
46
+ //
47
+ // Events - File handlers
48
+ //
49
+ // -> this = file
50
+ //
51
+ SingleFileUploader.prototype.file_start_handler = function(e) {
52
+ this.$el.removeClass("waiting");
53
+ this.$el.addClass("uploading");
54
+ };
55
+
56
+
57
+ SingleFileUploader.prototype.file_progess_handler = function(e) {
58
+ var $el = this.$el;
59
+
60
+ // check
61
+ if ($el.hasClass("error")) {
62
+ return;
63
+ }
64
+
65
+ // if there are no transform -> upload percentage
66
+ if (this.transforms === 0) {
67
+ $el.find(".upload-bar").css("width", this.upload_percentage + "%");
68
+
69
+ // if there are -> transform percentage
70
+ } else {
71
+ $el.find(".process-bar").css("width", this.transforms_percentage + "%");
72
+
73
+ }
74
+ };
75
+
76
+
77
+ SingleFileUploader.prototype.file_err_handler = function(e) {
78
+ console.error("Error", this);
79
+
80
+ this.$el.addClass("error");
81
+ this.$el.find(".upload-bar").css("width", "100%");
82
+ this.$el.find(".process-bar").css("width", "100%");
83
+ };
84
+
85
+
86
+ SingleFileUploader.prototype.file_done_uploading_handler = function(e) {
87
+ this.$el.find(".upload-bar").addClass("done");
88
+ this.$el.removeClass("uploading");
89
+ this.$el.addClass("processing");
90
+ };
91
+
92
+
93
+ SingleFileUploader.prototype.file_done_processing_handler = function(e) {
94
+ this.$el.find(".process-bar").addClass("done");
95
+ };
96
+
97
+
98
+ SingleFileUploader.prototype.file_done_handler = function(e) {
99
+ var name = this.$el.closest("x-files").attr("name");
100
+ var pairs = format_asset_metadata(this.metadata, name);
101
+
102
+ for (var i in pairs) {
103
+ var input = document.createElement("input");
104
+ input.type = "hidden";
105
+ input.name = pairs[i].name;
106
+ input.value = pairs[i].value;
107
+ this.el.appendChild(input);
108
+ }
109
+
110
+ this.$el.removeClass("processing");
111
+ this.$el.addClass("uploaded");
112
+ };
113
+
114
+
115
+
116
+ //
117
+ // Events - General
118
+ //
119
+ SingleFileUploader.prototype.bind_events = function() {
120
+ var choose_handler = $.proxy(this.choose_click_handler, this);
121
+
122
+ this.$el.on("click", ".choose", choose_handler);
123
+
124
+ // when processing/uploading files -> disable form
125
+ Haraway.on("busy", $.proxy(function() {
126
+ this.$form.on("submit", this.defer_submit);
127
+ }, this));
128
+
129
+ // when not processing/uploading files -> resume default behaviour
130
+ Haraway.on("idle", $.proxy(function() {
131
+ this.$form.off("submit", this.defer_submit);
132
+ }, this));
133
+ };
134
+
135
+
136
+ SingleFileUploader.prototype.choose_click_handler = function(e) {
137
+ var accept = this.$el.attr("accept").split(",");
138
+ var profile = this.$el.attr("profile");
139
+
140
+ // prevent default
141
+ e.preventDefault();
142
+
143
+ // show choose dialog
144
+ Haraway.choose(accept, false, profile, $.proxy(this.handle_file, this));
145
+ };
146
+
147
+
148
+ SingleFileUploader.prototype.defer_submit = function(e) {
149
+ var $form = $(e.currentTarget);
150
+
151
+ // prevent default behaviour
152
+ e.preventDefault();
153
+
154
+ // disable submit button
155
+ $form.find("input[type=\"submit\"]").attr("disabled", "disabled");
156
+
157
+ // once processing/uploading is complete
158
+ // enable submit button and submit form
159
+ Haraway.once("idle", function() {
160
+ $form.find("input[type=submit]").attr("disabled", null);
161
+ $form.submit();
162
+ });
163
+ };
164
+
165
+
166
+
167
+ //
168
+ // Extra's
169
+ //
170
+ function format_asset_metadata(value, prefix) {
171
+ var results = [], i;
172
+
173
+ if (value instanceof Array) {
174
+ for (i in value) {
175
+ results = results.concat(format_asset_metadata(value[i], prefix + "[]"));
176
+ }
177
+ return results;
178
+ }
179
+
180
+ if (value === Object(value)) {
181
+ for (i in value) {
182
+ if (value.hasOwnProperty(i)) {
183
+ results = results.concat(format_asset_metadata(value[i], prefix + "[" + i + "]"));
184
+ }
185
+ }
186
+ return results;
187
+ }
188
+
189
+ return [{ name: prefix, value: value }];
190
+ }
191
+
192
+
193
+
194
+ //
195
+ // -> EXPORT
196
+ //
197
+ module.exports = SingleFileUploader;
@@ -39,6 +39,7 @@
39
39
  @import "lalala/modules/dashboard";
40
40
  @import "lalala/modules/panel";
41
41
 
42
- @import "lalala/modules/file-uploader";
43
- @import "lalala/modules/file-uploader-metadata";
42
+ @import "lalala/modules/file-metadata";
44
43
  @import "lalala/modules/media-selector";
44
+ @import "lalala/modules/multiple-file-uploader";
45
+ @import "lalala/modules/single-file-uploader";
@@ -74,3 +74,14 @@
74
74
  &::-moz-placeholder { @content }
75
75
  &:-ms-input-placeholder { @content }
76
76
  }
77
+
78
+
79
+ //
80
+ // Calc
81
+ //
82
+ @mixin calc($property, $expression) {
83
+ #{$property}: -moz-calc(#{$expression});
84
+ #{$property}: -o-calc(#{$expression});
85
+ #{$property}: -webkit-calc(#{$expression});
86
+ #{$property}: calc(#{$expression});
87
+ }
@@ -1,10 +1,10 @@
1
1
  /*
2
2
 
3
- Modules / File uploader metadata
3
+ Modules / File metadata
4
4
 
5
5
  */
6
6
 
7
- .mod-file-uploader-metadata {
7
+ .mod-file-metadata {
8
8
  background: white;
9
9
  height: 100%;
10
10
  position: relative;
@@ -1,10 +1,10 @@
1
1
  /*
2
2
 
3
- Modules / File uploader
3
+ Modules / Multiple file uploader
4
4
 
5
5
  */
6
6
 
7
- x-files {
7
+ x-files[multiple-files] {
8
8
  color: #6F6F71;
9
9
  display: block;
10
10
  font-size: 12px;
@@ -122,7 +122,6 @@ x-files {
122
122
  // X-file -- General
123
123
  //
124
124
  x-file .thumb {
125
- background-color: #F3F3F3;
126
125
  background-position: center;
127
126
  background-repeat: no-repeat;
128
127
  background-size: cover;
@@ -131,6 +130,7 @@ x-files {
131
130
  }
132
131
 
133
132
  x-file .thumb.no-image {
133
+ background-color: #F3F3F3;
134
134
  background-image: icon-url("page_white");
135
135
  background-size: auto;
136
136
  }
@@ -0,0 +1,130 @@
1
+ /*
2
+
3
+ Modules / Single file uploader
4
+
5
+ */
6
+
7
+ x-files[single-file] {
8
+ color: #6F6F71;
9
+ display: block;
10
+ font-size: 12px;
11
+ height: 38px;
12
+ line-height: 38px;
13
+ margin: 31px 0 45px;
14
+ position: relative;
15
+
16
+ -moz-user-select: none;
17
+ -webkit-user-select: none;
18
+ user-select: none;
19
+
20
+ .buttons,
21
+ .content {
22
+ -webkit-font-smoothing: antialiased;
23
+ -moz-osx-font-smoothing: grayscale;
24
+ }
25
+
26
+
27
+ //
28
+ // Association
29
+ //
30
+ .association {
31
+ display: inline-block;
32
+ font-size: 14px;
33
+ font-weight: bold;
34
+ line-height: 16px;
35
+ margin-left: 2px;
36
+ position: relative;
37
+ top: -1px;
38
+ vertical-align: middle;
39
+ width: 20%;
40
+ }
41
+
42
+
43
+ //
44
+ // Buttons
45
+ //
46
+ .buttons {
47
+ border-right: 1px solid #E2E2E2;
48
+ bottom: 0;
49
+ left: 20%;
50
+ padding-right: 14px;
51
+ position: absolute;
52
+ text-align: right;
53
+ top: 0;
54
+
55
+ @media screen and (min-width: $min_width_large) {
56
+ // right: 511px;
57
+ }
58
+ }
59
+
60
+ .buttons .choose {
61
+ @include icon("folder_add");
62
+ background-position: left center;
63
+ color: #CDCDCD;
64
+ cursor: pointer;
65
+ display: inline-block;
66
+ font-weight: bold;
67
+ line-height: 24px;
68
+ padding-left: 22px;
69
+ padding-top: 2px;
70
+ white-space: nowrap;
71
+ }
72
+
73
+ .buttons .choose:hover {
74
+ color: #6F6F71;
75
+ }
76
+
77
+
78
+ //
79
+ // Content
80
+ //
81
+ .content {
82
+ @include calc(width, "80% - 101px - 26px");
83
+ position: absolute;
84
+ right: 0;
85
+ top: 0;
86
+ }
87
+
88
+ .image {
89
+ float: left;
90
+ height: 38px;
91
+ width: 58px;
92
+ }
93
+
94
+ .image .thumb {
95
+ background-position: center;
96
+ background-repeat: no-repeat;
97
+ background-size: cover;
98
+ height: 100%;
99
+ width: 100%;
100
+ }
101
+
102
+ .image .thumb.no-image {
103
+ background-color: #F3F3F3;
104
+ background-image: icon-url("page_white");
105
+ background-size: auto;
106
+ }
107
+
108
+ .image img,
109
+ .image canvas {
110
+ display: block;
111
+ height: auto;
112
+ opacity: 0.5;
113
+ width: 100%;
114
+
115
+ @include transition(
116
+ opacity 450ms
117
+ );
118
+ }
119
+
120
+
121
+ //
122
+ // Statusses
123
+ //
124
+ &.uploaded .image canvas,
125
+ &.uploaded .image img {
126
+ opacity: 1;
127
+ }
128
+
129
+
130
+ }
@@ -1,22 +1,27 @@
1
- class Formtastic::Inputs::HarawayInput
1
+ class Formtastic::Inputs::MultipleFilesInput
2
2
  include Formtastic::Inputs::Base
3
3
 
4
4
  def to_html
5
5
  object = builder.object
6
- klass = Formtastic::Inputs::HarawayInput
6
+
7
+ klass = Formtastic::Inputs::MultipleFilesInput
7
8
  param_key = "#{object.class.table_name.singularize}[#{method}]"
8
9
  title = method.to_s.pluralize.titleize
9
10
  assets = object.send(method)
10
- accepts = Haraway.configuration.profiles[method.to_s].try(:accepted_file_types)
11
+
12
+ profile_name = object.class.haraway_assets[method.to_s]
13
+ profile = Haraway.configuration.profiles[profile_name]
14
+ accepts = profile.try(:accepted_file_types)
11
15
  accepts = accepts.join(", ") if accepts
16
+ versions = compile_versions_array(profile)
12
17
 
13
18
  sorted_assets = klass.sorted_assets(assets.clone).map do |asset|
14
- klass.xfile_html(self, template, param_key, asset)
19
+ klass.xfile_html(self, template, param_key, asset, versions)
15
20
  end
16
21
 
17
- <<-EOT
22
+ <<-HTML
18
23
 
19
- <x-files profile="#{method}" accept="#{accepts}" name="#{param_key}">
24
+ <x-files multiple-files profile="#{profile_name}" accept="#{accepts}" name="#{param_key}">
20
25
  <header>
21
26
  <div class="col-a">
22
27
  <span class="name">#{title}</span>
@@ -49,11 +54,11 @@ class Formtastic::Inputs::HarawayInput
49
54
  </div>
50
55
 
51
56
  <div class="meta-versions">
52
- #{ versions(method) }
57
+ #{ versions_html(profile) }
53
58
  </div>
54
59
  </x-files>
55
60
 
56
- EOT
61
+ HTML
57
62
  end
58
63
 
59
64
 
@@ -72,10 +77,7 @@ class Formtastic::Inputs::HarawayInput
72
77
  end
73
78
 
74
79
 
75
- def versions(profile)
76
- profile = Haraway.configuration.profiles[profile.to_s]
77
-
78
- # collect data
80
+ def compile_versions_array(profile)
79
81
  if profile
80
82
  versions = profile.versions.keys.map do |key|
81
83
  version = profile.versions[key.to_s]
@@ -91,13 +93,18 @@ class Formtastic::Inputs::HarawayInput
91
93
 
92
94
  end
93
95
 
94
- # make html
95
- versions.map do |version|
96
- <<-EOS
96
+ # return
97
+ versions
98
+ end
99
+
100
+
101
+ def versions_html(profile)
102
+ compile_versions_array(profile).map do |version|
103
+ <<-HTML
97
104
  <script class="version" data-name="#{version.name}" type="application/json">
98
105
  #{version.params.to_json}
99
106
  </script>
100
- EOS
107
+ HTML
101
108
  end.join("")
102
109
  end
103
110
 
@@ -110,16 +117,28 @@ class Formtastic::Inputs::HarawayInput
110
117
  end
111
118
 
112
119
 
113
- def self.xfile_html(input, template, param_key, asset)
114
- asset_url_original = (asset.url(:original) rescue "")
115
- asset_url_thumb = (asset.url(:thumb) rescue "")
120
+ def self.xfile_html(input, template, param_key, asset, versions)
121
+ asset_url_original = asset.url(:original)
116
122
 
117
- <<-EOT
123
+ # thumb
124
+ if versions.select { |v| v.name == "thumb" }.length >= 1
125
+ asset_url_thumb = asset.url(:thumb)
126
+ end
127
+
128
+ if asset_url_thumb
129
+ thumb_html = "<div class=\"thumb\" style=\"background-image: " +
130
+ "url(#{ asset_url_thumb });\"></div>"
131
+ else
132
+ thumb_html = "<div class=\"thumb no-image\"></div>"
133
+ end
134
+
135
+ # return
136
+ <<-HTML
118
137
 
119
138
  <x-file class="uploaded saved-to-db" data-src-original="#{ asset_url_original }">
120
- <div class="thumb" style="background-image: url(#{ asset_url_thumb });"></div>
139
+ #{ thumb_html }
121
140
 
122
- #{ Formtastic::Inputs::HarawayInput.menu_html }
141
+ #{ Formtastic::Inputs::MultipleFilesInput.menu_html }
123
142
  #{ template.hidden_field_tag(param_key + "[][id]", asset.id) }
124
143
  #{ template.hidden_field_tag(param_key + "[][_destroy]", "") }
125
144
 
@@ -132,12 +151,12 @@ class Formtastic::Inputs::HarawayInput
132
151
  </div>
133
152
  </x-file>
134
153
 
135
- EOT
154
+ HTML
136
155
  end
137
156
 
138
157
 
139
158
  def self.menu_html
140
- <<-EOT
159
+ <<-HTML
141
160
 
142
161
  <div class="menu">
143
162
  <a data-action="delete"></a>
@@ -145,7 +164,7 @@ class Formtastic::Inputs::HarawayInput
145
164
  <a data-action="move"></a>
146
165
  </div>
147
166
 
148
- EOT
167
+ HTML
149
168
  end
150
169
 
151
170
  end
@@ -0,0 +1,78 @@
1
+ class Formtastic::Inputs::SingleFileInput
2
+ include Formtastic::Inputs::Base
3
+
4
+ def to_html
5
+ object = builder.object
6
+ param_key = "#{object.class.table_name.singularize}[#{method}]"
7
+ title = method.to_s.titleize
8
+ asset = object.send(method)
9
+
10
+ profile_name = object.class.haraway_assets[method.to_s]
11
+ profile = Haraway.configuration.profiles[profile_name]
12
+ accepts = profile.try(:accepted_file_types)
13
+ accepts = accepts.join(", ") if accepts
14
+ versions = compile_versions_array(profile)
15
+
16
+ <<-HTML
17
+
18
+ <x-files single-file profile="#{profile_name}" accept="#{accepts}" name="#{param_key}">
19
+ <div class="association">#{ title }</div>
20
+
21
+ <div class="buttons">
22
+ <a class="choose">Browse file</a>
23
+ </div>
24
+
25
+ <div class="content">
26
+ <div class="image">#{ asset ? image_html(asset, versions) : "" }</div>
27
+ <div class="status">
28
+ <div class="status-title"></div>
29
+ <div class="status-bar">
30
+ <div class="upload-bar"></div>
31
+ <div class="process-bar"></div>
32
+ </div>
33
+ </div>
34
+ <div class="name"></div>
35
+ </div>
36
+ </x-files>
37
+
38
+ HTML
39
+ end
40
+
41
+
42
+ def compile_versions_array(profile)
43
+ if profile
44
+ versions = profile.versions.keys.map do |key|
45
+ version = profile.versions[key.to_s]
46
+
47
+ OpenStruct.new(
48
+ name: version.name,
49
+ params: version.steps.first.try(:[], "params")
50
+ )
51
+ end.compact
52
+
53
+ else
54
+ versions = []
55
+
56
+ end
57
+
58
+ # return
59
+ versions
60
+ end
61
+
62
+
63
+ def image_html(asset, versions)
64
+ if versions.select { |v| v.name == "thumb" }.length >= 1
65
+ asset_url_thumb = asset.url(:thumb)
66
+ end
67
+
68
+ if asset_url_thumb
69
+ html = "<div class=\"thumb\" style=\"background-image: " +
70
+ "url(#{ asset_url_thumb });\"></div>"
71
+ else
72
+ html = "<div class=\"thumb no-image\"></div>"
73
+ end
74
+
75
+ html
76
+ end
77
+
78
+ end
@@ -1,6 +1,6 @@
1
1
  module Lalala
2
2
  VERSION = "4.1.0"
3
- BUILD = "299"
3
+ BUILD = "305"
4
4
 
5
5
  if BUILD != ("{{BUILD_NUMBER" + "}}") # prevent sed replacement (see script/ci)
6
6
  BUILD_VERSION = "#{VERSION}.dev.#{BUILD}"
data/lib/lalala.rb CHANGED
@@ -37,7 +37,8 @@ module Lalala
37
37
  require 'lalala/test'
38
38
  end
39
39
 
40
- require 'formtastic/inputs/haraway_input'
40
+ require 'formtastic/inputs/single_file_input'
41
+ require 'formtastic/inputs/multiple_files_input'
41
42
  require 'formtastic/form_builder_ext'
42
43
 
43
44
  autoload :ExtActionDispatch
@@ -13,15 +13,16 @@ ActiveAdmin.register Article do
13
13
  f.input :body
14
14
  f.input :tags
15
15
  f.input :category, as: :select, collection: %w(A B C)
16
+ f.input :poster_image, as: :single_file
16
17
 
17
- f.input :images, as: :haraway do |h|
18
+ f.input :images, as: :multiple_files do |h|
18
19
  h.inputs do
19
20
  h.input :title, as: :string
20
21
  h.input :caption, as: :text
21
22
  end
22
23
  end
23
24
 
24
- f.input :downloads, as: :haraway do |h|
25
+ f.input :downloads, as: :multiple_files do |h|
25
26
  h.inputs do
26
27
  h.input :title, as: :string
27
28
  h.input :category, as: :select, collection: %w(X Y Z)
@@ -1,5 +1,6 @@
1
1
  class Article < ActiveRecord::Base
2
- attr_accessible :body, :title, :category, :tag_ids, :images, :downloads
2
+ attr_accessible :body, :title, :category, :tag_ids,
3
+ :images, :downloads, :poster_image
3
4
 
4
5
  # Translations
5
6
  translates :title, :body
@@ -8,6 +9,7 @@ class Article < ActiveRecord::Base
8
9
  markdown :body
9
10
 
10
11
  # Assets
12
+ has_one_asset :poster_image, :images
11
13
  has_many_assets :images, :images
12
14
  has_many_assets :downloads, :downloads
13
15
 
@@ -8,7 +8,7 @@ class MediaPage < BasicPage
8
8
  f.inputs do
9
9
  f.input :title
10
10
  f.input :body
11
- f.input :images, as: :haraway do |h|
11
+ f.input :images, as: :multiple_files do |h|
12
12
  h.inputs do
13
13
  h.input :title, as: :string
14
14
  h.input :choice, as: :select, collection: %w(A B C)
@@ -12,10 +12,6 @@ Haraway.configure do |c|
12
12
  p.accept "image/*"
13
13
 
14
14
  p.version("thumb") do |v|
15
- v.resize_to_fill(158, 110)
16
- end
17
-
18
- p.version("cover") do |v|
19
15
  v.resize_to_fill(220, 153)
20
16
  end
21
17
 
@@ -24,6 +20,8 @@ Haraway.configure do |c|
24
20
  end
25
21
  end
26
22
 
27
- c.profile("downloads")
23
+ c.profile("downloads") do |p|
24
+ p.accept "*"
25
+ end
28
26
 
29
27
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lalala
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0.dev.299
4
+ version: 4.1.0.dev.305
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Menke
@@ -1295,8 +1295,8 @@ files:
1295
1295
  - app/assets/javascripts/browser/screen.module.js
1296
1296
  - app/assets/javascripts/browser/window.module.js
1297
1297
  - app/assets/javascripts/lalala/base.js
1298
+ - app/assets/javascripts/lalala/initializers/assets.module.js
1298
1299
  - app/assets/javascripts/lalala/initializers/chosen.module.js
1299
- - app/assets/javascripts/lalala/initializers/haraway.module.js
1300
1300
  - app/assets/javascripts/lalala/lib/jquery-chosen.js
1301
1301
  - app/assets/javascripts/lalala/lib/jquery-markitup.js
1302
1302
  - app/assets/javascripts/lalala/lib/moment.js
@@ -1306,14 +1306,14 @@ files:
1306
1306
  - app/assets/javascripts/lalala/modules/collapsible_pages_tree.module.js
1307
1307
  - app/assets/javascripts/lalala/modules/dashboard.module.js
1308
1308
  - app/assets/javascripts/lalala/modules/editor.module.js
1309
- - app/assets/javascripts/lalala/modules/file-uploader-metadata.module.js
1310
- - app/assets/javascripts/lalala/modules/file-uploader.module.js
1309
+ - app/assets/javascripts/lalala/modules/file-metadata.module.js
1311
1310
  - app/assets/javascripts/lalala/modules/helpers.module.js
1312
- - app/assets/javascripts/lalala/modules/init.module.js
1313
1311
  - app/assets/javascripts/lalala/modules/locale_chooser.module.js
1314
1312
  - app/assets/javascripts/lalala/modules/login.module.js
1315
1313
  - app/assets/javascripts/lalala/modules/media_selector.module.js
1314
+ - app/assets/javascripts/lalala/modules/multiple-files-uploader.module.js
1316
1315
  - app/assets/javascripts/lalala/modules/overlay.module.js
1316
+ - app/assets/javascripts/lalala/modules/single-file-uploader.module.js
1317
1317
  - app/assets/javascripts/lalala/modules/sorted_pages_tree.module.js
1318
1318
  - app/assets/javascripts/lalala/modules/storage.module.js
1319
1319
  - app/assets/stylesheets/lalala/_base.css.scss
@@ -1339,8 +1339,7 @@ files:
1339
1339
  - app/assets/stylesheets/lalala/modules/_editor-cheatsheet.css.scss
1340
1340
  - app/assets/stylesheets/lalala/modules/_editor-preview.css.scss
1341
1341
  - app/assets/stylesheets/lalala/modules/_editor.css.scss
1342
- - app/assets/stylesheets/lalala/modules/_file-uploader-metadata.css.scss
1343
- - app/assets/stylesheets/lalala/modules/_file-uploader.css.scss
1342
+ - app/assets/stylesheets/lalala/modules/_file-metadata.css.scss
1344
1343
  - app/assets/stylesheets/lalala/modules/_filter-form.css.scss
1345
1344
  - app/assets/stylesheets/lalala/modules/_flashes.css.scss
1346
1345
  - app/assets/stylesheets/lalala/modules/_footer.css.scss
@@ -1350,9 +1349,11 @@ files:
1350
1349
  - app/assets/stylesheets/lalala/modules/_index-footer.css.scss
1351
1350
  - app/assets/stylesheets/lalala/modules/_login.css.scss
1352
1351
  - app/assets/stylesheets/lalala/modules/_media-selector.css.scss
1352
+ - app/assets/stylesheets/lalala/modules/_multiple-file-uploader.css.scss
1353
1353
  - app/assets/stylesheets/lalala/modules/_panel.css.scss
1354
1354
  - app/assets/stylesheets/lalala/modules/_scopes.css.scss
1355
1355
  - app/assets/stylesheets/lalala/modules/_sidebar-section.css.scss
1356
+ - app/assets/stylesheets/lalala/modules/_single-file-uploader.css.scss
1356
1357
  - app/assets/stylesheets/lalala/modules/_table-tools.css.scss
1357
1358
  - app/assets/stylesheets/lalala/modules/_title-bar.css.scss
1358
1359
  - app/assets/stylesheets/lalala/modules/_utility-nav.css.scss
@@ -1387,7 +1388,8 @@ files:
1387
1388
  - lalala-test.gemspec
1388
1389
  - lalala.gemspec
1389
1390
  - lib/formtastic/form_builder_ext.rb
1390
- - lib/formtastic/inputs/haraway_input.rb
1391
+ - lib/formtastic/inputs/multiple_files_input.rb
1392
+ - lib/formtastic/inputs/single_file_input.rb
1391
1393
  - lib/generators/lalala/assets/assets_generator.rb
1392
1394
  - lib/generators/lalala/assets/templates/.bowerrc
1393
1395
  - lib/generators/lalala/assets/templates/.jshintrc
@@ -1,8 +0,0 @@
1
- var FileUploader = require("lalala/modules/file-uploader");
2
-
3
-
4
- exports.init = function() {
5
- $("x-files").each(function() {
6
- new FileUploader(this);
7
- });
8
- };
@@ -1,20 +0,0 @@
1
- var console = require('browser/console'),
2
- calendar = require('lalala/modules/calendar'),
3
- editor = require('lalala/modules/editor'),
4
- locale_chooser = require("lalala/modules/locale_chooser"),
5
- sorted_pages_tree = require("lalala/modules/sorted_pages_tree"),
6
- login = require("lalala/modules/login"),
7
- dashboard = require("lalala/modules/dashboard"),
8
- collapsible_pages_tree = require("lalala/modules/collapsible_pages_tree");
9
-
10
- $(function() {
11
- login.init();
12
- locale_chooser.init();
13
- editor.init();
14
- calendar.init();
15
- sorted_pages_tree.init();
16
- dashboard.init();
17
- collapsible_pages_tree.init();
18
-
19
- $('select').not(".bypass-chosen").chosen();
20
- });