lalala 4.0.0.dev.50 → 4.0.0.dev.56

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 34fc1e87c660f9e8552d085eaef0011998c25b22
4
- data.tar.gz: 88bcc61a4969106b60ee5b825d756309a8820777
3
+ metadata.gz: f367f7a3bcd2371400cc57d75b9337e898f265a5
4
+ data.tar.gz: e97f450415b1b69cb47ee903bb77440ba7c05886
5
5
  SHA512:
6
- metadata.gz: 49434b8e34b7f5b06a1cfe36eeab5de4b4dc53551ba5325a389b2b1147ac5a847850afddc998285676629618f6e2477a7808953d08f0166209d41ba11f0c23d5
7
- data.tar.gz: a88615c311c5ba20c575311595b19ad335a65c0b74e0e4703c68478de2e8260727aaf545520762f8e4372f1d22fd70e57b4197ac090f17543efc071ecd935163
6
+ metadata.gz: f6a812f89f955058a5d50db7fd2a535519e277c670fe32d5f460c8b32b4b05650fc19fb691e702754bfc339524acb811dba7538b4032079610fa30f9c7b15664
7
+ data.tar.gz: f16f2434a2d803444150b7f609cb210ca1309e89ea28b8d3798dcb5ff341d1593b66cf44fed7891e3495995fbd260caddb77ac94fbc371d369cd6409e42b84f3
@@ -0,0 +1,137 @@
1
+ var Grid;
2
+
3
+
4
+ exports.init = function() {
5
+ var instances = [];
6
+ this.$el = $(".grid");
7
+ this.$el.each(function() { instances.push(new Grid(this)); });
8
+ };
9
+
10
+
11
+ Grid = (function() {
12
+ var __bind = function(fn, me) {
13
+ return function() { return fn.apply(me, arguments); };
14
+ };
15
+
16
+
17
+ function G(grid_element) {
18
+ this.transform_html(grid_element);
19
+ this.bind_mouse_events();
20
+ }
21
+
22
+
23
+ G.prototype.transform_html = function(grid_element) {
24
+ var fragment, el, el_images, el_input, $grid;
25
+
26
+ // document fragment for the images
27
+ fragment = document.createDocumentFragment();
28
+
29
+ // transform images html
30
+ $grid = $(grid_element);
31
+ $grid.find("li").not(":last-child").each(function() {
32
+ var grid_piece = document.createElement("li");
33
+ grid_piece.innerHTML = this.innerHTML.replace("<a", "<a class=\"image\"");
34
+ var overlay = document.createElement("div");
35
+ overlay.className = "overlay";
36
+ grid_piece.appendChild(overlay);
37
+ fragment.appendChild(grid_piece);
38
+ });
39
+
40
+ // create new container elements
41
+ el = document.createElement("div");
42
+ el.className = "mod-grid";
43
+ el_images = document.createElement("ul");
44
+ el_images.className = "images";
45
+ el_images.appendChild(fragment);
46
+ el_input = document.createElement("div");
47
+ el_input.className = "input-fields";
48
+ el_input.innerHTML = $grid.find("li:last-child").html();
49
+
50
+ // merge
51
+ el.appendChild(el_images);
52
+ el.appendChild(el_input);
53
+
54
+ // replace original with new
55
+ $grid.children("ul:first-child").replaceWith(el);
56
+
57
+ // bind to instance
58
+ this.$el = $(el);
59
+ };
60
+
61
+
62
+ //
63
+ // Events
64
+ //
65
+ G.prototype.bind_mouse_events = function() {
66
+ this.$el.children(".images")
67
+ .on("mouseleave", "li", this.row_mouseleave)
68
+ .on("mouseleave", "li label", this.row_label_mouseleave)
69
+ .on("mouseenter", "li label", this.row_label_mouseenter)
70
+ .on("mouseenter", "li .image", this.row_image_mouseenter)
71
+ .on("click", "li .overlay", __bind(this.row_overlay_click, this));
72
+ };
73
+
74
+ G.prototype.row_mouseleave = function(e) {
75
+ $(this).removeClass("properties");
76
+ };
77
+
78
+ G.prototype.row_label_mouseenter = function(e) {
79
+ $(this).parent().addClass("move");
80
+ };
81
+
82
+ G.prototype.row_label_mouseleave = function(e) {
83
+ $(this).parent().addClass("properties").removeClass("move");
84
+ };
85
+
86
+ G.prototype.row_image_mouseenter = function(e) {
87
+ $(this).parent().addClass("properties");
88
+ };
89
+
90
+ G.prototype.row_overlay_click = function(e) {
91
+ // $(this).parent().toggleClass("selected");
92
+ this.toggle_destroy( $(e.currentTarget).parent()[0] );
93
+ };
94
+
95
+
96
+
97
+ //
98
+ // Destroy
99
+ //
100
+ G.prototype.toggle_destroy = function(row) {
101
+ if ($(row).find('input[name$="[_destroy]"]').length) {
102
+ this.set_to_not_destroy(row);
103
+ } else {
104
+ this.set_to_destroy(row);
105
+ }
106
+ };
107
+
108
+
109
+ G.prototype.set_to_destroy = function(row) {
110
+ var $row = $(row);
111
+ var input_id_name = $row.find('input[name$="[id]"]')[0].name;
112
+ var input_destroy = document.createElement("input");
113
+
114
+ $(input_destroy).attr({
115
+ name: input_id_name.replace("[id]", "[_destroy]"),
116
+ type: "hidden",
117
+ value: "1"
118
+ });
119
+
120
+ $row.append(input_destroy);
121
+ $row.addClass("will-destroy");
122
+ };
123
+
124
+
125
+ G.prototype.set_to_not_destroy = function(row) {
126
+ $(row).find('input[name$="[_destroy]"]').remove();
127
+ $(row).removeClass("will-destroy");
128
+ };
129
+
130
+
131
+
132
+ //
133
+ // The end
134
+ //
135
+ return G;
136
+
137
+ })();
@@ -1,12 +1,14 @@
1
1
  var console = require('browser/console'),
2
2
  calendar = require('lalala/modules/calendar'),
3
3
  editor = require('lalala/modules/editor'),
4
+ grid = require('lalala/modules/grid'),
4
5
  locale_chooser = require("lalala/modules/locale_chooser");
5
6
 
6
7
  $(function(){
7
8
  locale_chooser.init();
8
9
  editor.init();
9
10
  calendar.init();
11
+ grid.init();
10
12
 
11
13
  $('select').chosen();
12
14
  });
@@ -27,6 +27,7 @@
27
27
  @import "lalala/modules/index-as-tree-table";
28
28
  @import "lalala/modules/editor";
29
29
  @import "lalala/modules/editor-cheatsheet";
30
+ @import "lalala/modules/grids";
30
31
 
31
32
  @import "lalala/lib/jquery-ui";
32
33
  @import "lalala/lib/chosen";
@@ -1,14 +1,14 @@
1
1
  // colors
2
- $white: rgba(255,255,255, 1);
3
- $black: rgba(35,31,32, 1);
4
- $gray_lighter: rgba(211,211,211, 1);
5
- $yellow: rgba(255,204,100, 1);
6
- $blue: rgba(31,115,255, 1);
7
- $red: rgba(225,70,62, 1);
2
+ $white: rgb(255,255,255);
3
+ $black: rgb(35,31,32);
4
+ $gray_lighter: rgb(211,211,211);
5
+ $yellow: rgb(255,204,100);
6
+ $blue: rgb(31,115,255);
7
+ $red: rgb(225,70,62);
8
8
 
9
- $button_green: rgba(162,218,137, 1);
10
- $button_blue: rgba(159,220,248, 1);
11
- $button_red: rgba(245,92,92, 1);
9
+ $button_green: rgb(162,218,137);
10
+ $button_blue: rgb(159,220,248);
11
+ $button_red: rgb(245,92,92);
12
12
 
13
13
 
14
14
  // fonts
@@ -1,12 +1,15 @@
1
1
  /*
2
2
 
3
- IMAGE GRIDS
4
- --------------
3
+ GRIDS
4
+ --------
5
5
 
6
6
  */
7
- .grid.images {
8
- list-style: none;
9
- overflow: hidden;
7
+
8
+ .mod-grid {
9
+ .images,
10
+ .input-fields {
11
+ overflow: hidden;
12
+ }
10
13
 
11
14
  // [row]
12
15
  li {
@@ -21,13 +24,16 @@
21
24
 
22
25
  &.move,
23
26
  &.properties,
24
- &.selected { .overlay { display: block; }}
27
+ &.selected,
28
+ &.will-destroy { .overlay { display: block; }}
25
29
  }
26
30
 
27
31
  // [row]:types
28
32
  li.move label { cursor: move; }
29
33
  li.properties { cursor: pointer; }
30
34
  li.selected .overlay { background: rgba($yellow, .5); }
35
+ li.will-destroy .overlay,
36
+ li.selected.will-destroy .overlay { background: rgba($red, .5); }
31
37
 
32
38
  // image + overlay
33
39
  li .image,
@@ -0,0 +1,31 @@
1
+ class Formtastic::Inputs::GridInput
2
+ include Formtastic::Inputs::Base
3
+
4
+ def to_html
5
+ object = builder.object
6
+ assets = object.send(method)
7
+
8
+ ul = template.content_tag :ul do
9
+ html = template.raw("")
10
+
11
+ assets.each do |asset|
12
+ html += template.content_tag :li do
13
+ builder.fields_for(method, asset) do |f|
14
+ thumbnail_html = template.image_tag f.object.asset.thumb.url
15
+ template.link_to thumbnail_html, f.object.asset.url
16
+ end
17
+ end
18
+ end
19
+
20
+ html += template.content_tag :li do
21
+ builder.fields_for(method, assets.build) do |f|
22
+ f.file_field :asset
23
+ end
24
+ end
25
+
26
+ html
27
+ end
28
+
29
+ input_wrapping { ul }
30
+ end
31
+ end
@@ -0,0 +1,17 @@
1
+ class Lalala::Uploaders::Image < CarrierWave::Uploader::Base
2
+
3
+ include CarrierWave::MiniMagick
4
+ include Sprockets::Helpers::RailsHelper
5
+ include Sprockets::Helpers::IsolatedHelper
6
+
7
+ storage :file
8
+
9
+ def store_dir
10
+ "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
11
+ end
12
+
13
+ def extension_white_list
14
+ %w(jpg jpeg gif png)
15
+ end
16
+
17
+ end
@@ -0,0 +1,5 @@
1
+ module Lalala::Uploaders
2
+ extend ActiveSupport::Autoload
3
+
4
+ autoload :Image
5
+ end
@@ -1,6 +1,6 @@
1
1
  module Lalala
2
2
  VERSION = "4.0.0"
3
- BUILD = "50"
3
+ BUILD = "56"
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
@@ -45,6 +45,7 @@ module Lalala
45
45
 
46
46
  autoload :Markdown
47
47
  autoload :Pages
48
+ autoload :Uploaders
48
49
 
49
50
  module Core
50
51
  require 'lalala/core/class_inheritable_setting'
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.0.0.dev.50
4
+ version: 4.0.0.dev.56
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Menke
@@ -1368,6 +1368,7 @@ files:
1368
1368
  - app/assets/javascripts/lalala/lib/pikaday.js
1369
1369
  - app/assets/javascripts/lalala/modules/calendar.module.js
1370
1370
  - app/assets/javascripts/lalala/modules/editor.module.js
1371
+ - app/assets/javascripts/lalala/modules/grid.module.js
1371
1372
  - app/assets/javascripts/lalala/modules/init.module.js
1372
1373
  - app/assets/javascripts/lalala/modules/locale_chooser.module.js
1373
1374
  - app/assets/javascripts/lalala/modules/storage.module.js
@@ -1421,6 +1422,7 @@ files:
1421
1422
  - lalala-development.gemspec
1422
1423
  - lalala-test.gemspec
1423
1424
  - lalala.gemspec
1425
+ - lib/formtastic/inputs/grid_input.rb
1424
1426
  - lib/generators/lalala/assets/assets_generator.rb
1425
1427
  - lib/generators/lalala/assets/templates/active_admin.css.scss
1426
1428
  - lib/generators/lalala/assets/templates/active_admin.js
@@ -1474,6 +1476,8 @@ files:
1474
1476
  - lib/lalala/pages/path_handler.rb
1475
1477
  - lib/lalala/pages/route_mapper.rb
1476
1478
  - lib/lalala/test.rb
1479
+ - lib/lalala/uploaders.rb
1480
+ - lib/lalala/uploaders/image.rb
1477
1481
  - lib/lalala/utils/intall_template.rb
1478
1482
  - lib/lalala/vendor.rb
1479
1483
  - lib/lalala/version.rb