lalala 4.0.0.dev.269 → 4.0.0.dev.275

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: ae24558e01d4aba9225e319fca6d7b449c7cf194
4
- data.tar.gz: 39209ffc36b417e3d94743802fde45564e0acc26
3
+ metadata.gz: 516beae401a055b6b4ff0e4be439d662e4724320
4
+ data.tar.gz: 23ff79bee97b10067c5c8d714ac75452e8b20523
5
5
  SHA512:
6
- metadata.gz: 4701812b65a850ae27e50b9b0ca2d32584d5d98fda48cfc7a85efb81a9d22b31d00c31e10d0503f16bf0b53880f88051ae9102e53f8f9845eaba1d6b8684e251
7
- data.tar.gz: b4880b9c957b99bb12f48df39a7d78bd132c0b90fd12e9edf3ba818a311a2b0aaa14c70f0f0c834dd1698d9b2bb14a2924da13713d82bc1b61b0dad548fa33cf
6
+ metadata.gz: ef962f9342106f776682ae780bc2b852ddfa9dd4e56ea01cc24795ea7388036bfa4e3743cf45d4707c4e31dc1d73402bc5e9466be8f8caaa8ab8bd99bca615d7
7
+ data.tar.gz: daf28c65cc9878acd86eeb389412677bc61ef941146452aed8e543f67d37dc42c706552349475691bdbda92c0306b6a25add0f855019a63d6d642ec6938f1c4e
@@ -0,0 +1,8 @@
1
+ {
2
+ "globals": {
3
+ "$": true,
4
+ "localStorage": true,
5
+ "window": true
6
+ },
7
+ "node": true
8
+ }
@@ -0,0 +1,152 @@
1
+ 'use strict';
2
+
3
+
4
+ var lalalaStorage = require('lalala/modules/storage'),
5
+ storage_key = 'collapsible_pages_tree_states';
6
+
7
+
8
+ /**
9
+ * @constructor
10
+ */
11
+ function CPT() {
12
+ this.$element = $('#index_tree_table_pages');
13
+ this.$tree_parents = this.getTreeParents();
14
+ this.states = lalalaStorage[storage_key] || [];
15
+
16
+ this.addTriggers();
17
+ this.initStates();
18
+
19
+ this.$tree_parents.on('click.collapsible_tree', '.collapse', $.proxy(this.toggleState, this));
20
+
21
+ // Best behaviour would be to save on window unload,
22
+ // but the current storage save on unload is wrong,
23
+ // so this will be added after the storage module saves..
24
+ //$(window).unload( $.proxy(this.saveState, this) );
25
+ }
26
+
27
+
28
+ /**
29
+ * Get tree items with children
30
+ *
31
+ * It adds the target as a data attribute to the tree parent element
32
+ *
33
+ * @return {jQuery Array}
34
+ */
35
+ CPT.prototype.getTreeParents = function() {
36
+ return this.$element.find('td.subtree').map(function() {
37
+ var $subtree = $(this),
38
+ $tree_parent = $(this).closest('tr').prev();
39
+
40
+ $tree_parent.data('collapsible_target', $subtree);
41
+
42
+ return $tree_parent.get();
43
+ });
44
+ };
45
+
46
+
47
+ /**
48
+ * Add trigger column to tree parent rows
49
+ */
50
+ CPT.prototype.addTriggers = function() {
51
+ this.$tree_parents.each(function() {
52
+ var $tree_parent = $(this),
53
+ $trigger = $('<td class="collapse"></td>');
54
+
55
+ $trigger.data('tree_parent', $tree_parent);
56
+ $trigger.prependTo($tree_parent);
57
+ });
58
+ };
59
+
60
+
61
+ /**
62
+ * Initialize saved states
63
+ */
64
+ CPT.prototype.initStates = function() {
65
+ var _this = this;
66
+
67
+ $.each(this.states, function(idx, value) {
68
+ var $tree_parent = $('#' + value),
69
+ $target = $tree_parent.data('collapsible_target'),
70
+ $trigger = $tree_parent.find('.collapse');
71
+
72
+ _this.close($target, $trigger);
73
+ });
74
+ };
75
+
76
+
77
+ /**
78
+ * Close target
79
+ *
80
+ * @param {jQuery object} $target The element to be closed
81
+ * @param {jQuery object} $trigger The trigger element
82
+ */
83
+ CPT.prototype.close = function($target, $trigger) {
84
+ $target.hide();
85
+ $trigger.addClass('closed');
86
+
87
+ this.saveState();
88
+ };
89
+
90
+
91
+ /**
92
+ * Open target
93
+ *
94
+ * @param {jQuery object} $target The element to be closed
95
+ * @param {jQuery object} $trigger The trigger element
96
+ */
97
+ CPT.prototype.open = function($target, $trigger) {
98
+ $target.show();
99
+ $trigger.removeClass('closed');
100
+
101
+ this.saveState();
102
+ };
103
+
104
+
105
+ /**
106
+ * Toggle collapsible sate
107
+ *
108
+ * @param {jQuery event} event
109
+ */
110
+ CPT.prototype.toggleState = function(event) {
111
+ var $trigger = $(event.currentTarget),
112
+ $target = $trigger.data('tree_parent').data('collapsible_target');
113
+
114
+ if ( $target.is(':visible') ) {
115
+ this.close($target, $trigger);
116
+
117
+ } else {
118
+ this.open($target, $trigger);
119
+
120
+ }
121
+
122
+ event.preventDefault();
123
+ event.stopPropagation();
124
+ };
125
+
126
+
127
+ /**
128
+ * Save tree states by adding the closed ones into an Array
129
+ */
130
+ CPT.prototype.saveState = function() {
131
+ var new_states = [];
132
+
133
+ this.$tree_parents.each( function() {
134
+ var $tree_parent = $(this),
135
+ $trigger = $tree_parent.find('.collapse');
136
+
137
+ if ( $trigger.hasClass('closed') ) {
138
+ new_states.push($tree_parent.attr('id'));
139
+ }
140
+
141
+ });
142
+
143
+ lalalaStorage[storage_key] = this.states = new_states;
144
+ };
145
+
146
+
147
+ /**
148
+ * Initialize module
149
+ */
150
+ exports.init = function() {
151
+ new CPT();
152
+ };
@@ -5,7 +5,8 @@ var console = require('browser/console'),
5
5
  locale_chooser = require("lalala/modules/locale_chooser"),
6
6
  sorted_pages_tree = require("lalala/modules/sorted_pages_tree"),
7
7
  login = require("lalala/modules/login"),
8
- dashboard = require("lalala/modules/dashboard");
8
+ dashboard = require("lalala/modules/dashboard"),
9
+ collapsible_pages_tree = require("lalala/modules/collapsible_pages_tree");
9
10
 
10
11
  $(function() {
11
12
  login.init();
@@ -15,6 +16,7 @@ $(function() {
15
16
  grid.init();
16
17
  sorted_pages_tree.init();
17
18
  dashboard.init();
19
+ collapsible_pages_tree.init();
18
20
 
19
21
  $('select').not(".bypass-chosen").chosen();
20
22
  });
@@ -1,15 +1,34 @@
1
+ 'use strict';
2
+
3
+
1
4
  var lalala_storage;
2
5
 
6
+
7
+ // Get lalala storage object from local storage
3
8
  try {
4
9
  lalala_storage = JSON.parse(localStorage.lalala);
5
- } catch(e) {}
6
10
 
11
+ } catch(error) {
12
+ console.error(error);
13
+
14
+ }
15
+
16
+ // If lalala storage doesn't exist, create empty object
7
17
  if (!lalala_storage) {
8
18
  lalala_storage = {};
9
19
  }
10
20
 
21
+
22
+ /**
23
+ * On window unload save lalala storage object to local storage
24
+ */
11
25
  $(window).unload(function(){
26
+ console.log("storage save");
12
27
  localStorage.lalala = JSON.stringify(lalala_storage);
13
28
  });
14
29
 
30
+
31
+ /**
32
+ * @export {Object}
33
+ */
15
34
  module.exports = lalala_storage;
@@ -39,7 +39,7 @@
39
39
  display: block;
40
40
  overflow: hidden;
41
41
  padding: 5px 6px 5px 8px;
42
- border: 1px solid gray(200);
42
+ border: 1px solid gray(220);
43
43
  border-radius: 5px;
44
44
  background-color: #fff;
45
45
  background: none;
@@ -109,7 +109,7 @@
109
109
  width: 100%;
110
110
  height: auto;
111
111
  outline: 0;
112
- border: 1px solid gray(200);
112
+ border: 1px solid gray(220);
113
113
  background: white image-url('lalala/chosen/chosen-sprite.png') no-repeat 100% -20px;
114
114
  box-shadow: none;
115
115
  background: none;
@@ -181,7 +181,7 @@
181
181
  /* @group Multi Chosen */
182
182
  .chosen-container-multi .chosen-choices {
183
183
  @include border-radius(5px);
184
- border: 1px solid gray(200);
184
+ border: 1px solid gray(220);
185
185
 
186
186
  background-color: white;
187
187
  background-image: none !important;
@@ -61,7 +61,7 @@ select {
61
61
  @include border-radius(5px);
62
62
  @include box-sizing("border-box");
63
63
  background-color: $white;
64
- border: 1px solid gray(200);
64
+ border: 1px solid gray(220);
65
65
  color: gray(150);
66
66
  display: inline-block;
67
67
  line-height: 1em;
@@ -38,3 +38,8 @@ code {
38
38
  background-color: rgb(240,240,240);
39
39
  padding: 10px;
40
40
  }
41
+
42
+ img {
43
+ max-width: 95%;
44
+ height: auto;
45
+ }
@@ -34,7 +34,7 @@
34
34
  }
35
35
 
36
36
  &.markItUpSeparator {
37
- background-color: rgb(200,200,200);
37
+ background-color: gray(220);
38
38
  height: 30px;
39
39
  margin: 0 10px;
40
40
  overflow: hidden;
@@ -1,12 +1,52 @@
1
1
  .filter_form {
2
2
 
3
- label {
4
- display: block;
5
- float: none;
3
+ .filter_form_field {
4
+
5
+ label {
6
+ color: #6d6e71;
7
+ display: block;
8
+ float: none;
9
+ font-size: 13px;
10
+ font-weight: bold;
11
+ padding: 15px 0;
12
+ }
13
+
14
+ //
15
+ // Specific cases for filter styles
16
+ // overwrites some chosen-features (_chosen-lalala.css.scss)
17
+
18
+ // normal dropdown select
19
+ &.filter_select {
20
+ .chosen-container {
21
+ width: 100% !important;
22
+ }
23
+ }
24
+
25
+ // date rage
26
+ &.filter_date_range {
27
+
28
+ .datepicker {
29
+ width: 45%;
30
+ }
31
+ .seperator {
32
+ color: gray(200);
33
+ font-weight: normal;
34
+ padding: 0 4px;
35
+ }
36
+ }
37
+
38
+ &.filter_string.select_and_search {
39
+ input {
40
+ margin: 0 0 0 10px;
41
+ width: 60%;
42
+ }
43
+ }
44
+
45
+
6
46
  }
7
47
 
8
48
  .buttons {
9
- padding: 20px 0;
49
+ padding: 20px 0 0 0;
10
50
 
11
51
  a,
12
52
  input {
@@ -21,6 +61,4 @@
21
61
 
22
62
  }
23
63
 
24
-
25
-
26
64
  }
@@ -10,6 +10,33 @@
10
10
  td {
11
11
  background-color: white;
12
12
 
13
+ &.collapse {
14
+ padding: 0 0 0 10px;
15
+ width: 14px;
16
+
17
+ &:before {
18
+ border-color: black transparent transparent transparent;
19
+ border-style: solid;
20
+ border-width: 7px;
21
+ content: "";
22
+ cursor: pointer;
23
+ display: block;
24
+ position: relative;
25
+ top: 4px;
26
+ }
27
+
28
+ }
29
+
30
+ &.collapse.closed {
31
+
32
+ &:before {
33
+ border-color: transparent transparent transparent black;
34
+ left: 4px;
35
+ top: 1px;
36
+ }
37
+
38
+ }
39
+
13
40
  &.selectable {
14
41
  padding-right: 0;
15
42
  width: 16px;
@@ -28,7 +55,9 @@
28
55
 
29
56
  @include icon("text_align_justify");
30
57
  }
58
+
31
59
  }
60
+
32
61
  }
33
62
 
34
63
  }
@@ -1,20 +1,21 @@
1
1
  .sidebar_section {
2
- @include border-radius(10px);
2
+ @include border-radius(3px);
3
3
  border: 1px solid gray(220);
4
- margin: 0 10px 20px 0;
4
+ margin: 0 30px 20px 0;
5
5
  overflow: hidden;
6
6
 
7
7
  h3 {
8
- background-color: gray(220);
9
- color: $white;
8
+ background-color: gray(247);
9
+ border-bottom: 1px solid gray(220);
10
+ color: gray(70);
10
11
  font-size: 14px !important;
11
12
  font-weight: bold;
12
- padding: 10px;
13
+ padding: 15px 20px;
13
14
  margin: 0 !important;
14
15
  }
15
16
 
16
17
  .panel_contents {
17
- padding: 10px;
18
+ padding: 15px 20px 15px 20px;
18
19
 
19
20
  // LALALA specific styling
20
21
  //
@@ -1 +1,2 @@
1
+
1
2
  <%= raw(@content) %>
@@ -75,6 +75,10 @@ module Lalala
75
75
  empty_directory ".forklift"
76
76
  end
77
77
 
78
+ def copy_default_mailer_layout
79
+ copy_file 'application_mailer.html.erb', 'app/views/layouts/application_mailer.html.erb'
80
+ end
81
+
78
82
  def create_assets
79
83
  generate "lalala:assets"
80
84
  end
@@ -0,0 +1,159 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title></title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=320, target-densitydpi=device-dpi">
2
+ <style type="text/css">
3
+ /* Mobile-specific Styles */
4
+ @media only screen and (max-width: 660px) {
5
+ table[class=w0], td[class=w0] { width: 0 !important; }
6
+ table[class=w10], td[class=w10], img[class=w10] { width:10px !important; }
7
+ table[class=w15], td[class=w15], img[class=w15] { width:5px !important; }
8
+ table[class=w30], td[class=w30], img[class=w30] { width:10px !important; }
9
+ table[class=w60], td[class=w60], img[class=w60] { width:10px !important; }
10
+ table[class=w125], td[class=w125], img[class=w125] { width:80px !important; }
11
+ table[class=w130], td[class=w130], img[class=w130] { width:55px !important; }
12
+ table[class=w140], td[class=w140], img[class=w140] { width:90px !important; }
13
+ table[class=w160], td[class=w160], img[class=w160] { width:180px !important; }
14
+ table[class=w170], td[class=w170], img[class=w170] { width:100px !important; }
15
+ table[class=w180], td[class=w180], img[class=w180] { width:80px !important; }
16
+ table[class=w195], td[class=w195], img[class=w195] { width:80px !important; }
17
+ table[class=w220], td[class=w220], img[class=w220] { width:80px !important; }
18
+ table[class=w240], td[class=w240], img[class=w240] { width:180px !important; }
19
+ table[class=w255], td[class=w255], img[class=w255] { width:185px !important; }
20
+ table[class=w275], td[class=w275], img[class=w275] { width:135px !important; }
21
+ table[class=w280], td[class=w280], img[class=w280] { width:135px !important; }
22
+ table[class=w300], td[class=w300], img[class=w300] { width:140px !important; }
23
+ table[class=w325], td[class=w325], img[class=w325] { width:95px !important; }
24
+ table[class=w360], td[class=w360], img[class=w360] { width:140px !important; }
25
+ table[class=w410], td[class=w410], img[class=w410] { width:180px !important; }
26
+ table[class=w470], td[class=w470], img[class=w470] { width:200px !important; }
27
+ table[class=w580], td[class=w580], img[class=w580] { width:280px !important; }
28
+ table[class=w640], td[class=w640], img[class=w640] { width:300px !important; }
29
+ table[class*=hide], td[class*=hide], img[class*=hide], p[class*=hide], span[class*=hide] { display:none !important; }
30
+ table[class=h0], td[class=h0] { height: 0 !important; }
31
+ p[class=footer-content-left] { text-align: center !important; }
32
+ #headline p { font-size: 30px !important; }
33
+ .article-content, #left-sidebar{ -webkit-text-size-adjust: 90% !important; -ms-text-size-adjust: 90% !important; }
34
+ .header-content, .footer-content-left {-webkit-text-size-adjust: 80% !important; -ms-text-size-adjust: 80% !important;}
35
+ img { height: auto; line-height: 100%;}
36
+ }
37
+ /* Client-specific Styles */
38
+ #outlook a { padding: 0; } /* Force Outlook to provide a "view in browser" button. */
39
+ body { width: 100% !important; }
40
+ .ReadMsgBody { width: 100%; }
41
+ .ExternalClass { width: 100%; display:block !important; } /* Force Hotmail to display emails at full width */
42
+ /* Reset Styles */
43
+ /* Add 100px so mobile switch bar doesn't cover street address. */
44
+ body { background-color: #c7c7c7; margin: 0; padding: 0; }
45
+ img { outline: none; text-decoration: none; display: block;}
46
+ br, strong br, b br, em br, i br { line-height:100%; }
47
+ h1, h2, h3, h4, h5, h6 { line-height: 100% !important; -webkit-font-smoothing: antialiased; }
48
+ h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { color: blue !important; }
49
+ h1 a:active, h2 a:active, h3 a:active, h4 a:active, h5 a:active, h6 a:active { color: red !important; }
50
+ /* Preferably not the same color as the normal header link color. There is limited support for psuedo classes in email clients, this was added just for good measure. */
51
+ h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited { color: purple !important; }
52
+ /* Preferably not the same color as the normal header link color. There is limited support for psuedo classes in email clients, this was added just for good measure. */
53
+ table td, table tr { border-collapse: collapse; }
54
+ .yshortcuts, .yshortcuts a, .yshortcuts a:link,.yshortcuts a:visited, .yshortcuts a:hover, .yshortcuts a span {
55
+ color: black; text-decoration: none !important; border-bottom: none !important; background: none !important;
56
+ } /* Body text color for the New Yahoo. This example sets the font of Yahoo's Shortcuts to black. */
57
+ /* This most probably won't work in all email clients. Don't include code blocks in email. */
58
+ code {
59
+ white-space: normal;
60
+ word-break: break-all;
61
+ }
62
+ #background-table { background-color: #c7c7c7; }
63
+ /* Webkit Elements */
64
+ #top-bar { border-radius:6px 6px 0px 0px; -moz-border-radius: 6px 6px 0px 0px; -webkit-border-radius:6px 6px 0px 0px; -webkit-font-smoothing: antialiased; background-color: #2E2E2E; color: #888888; }
65
+ #top-bar a { font-weight: bold; color: #eeeeee; text-decoration: none;}
66
+ #footer { border-radius:0px 0px 6px 6px; -moz-border-radius: 0px 0px 6px 6px; -webkit-border-radius:0px 0px 6px 6px; -webkit-font-smoothing: antialiased; }
67
+ /* Fonts and Content */
68
+ body, td { font-family: 'Helvetica Neue', Arial, Helvetica, Geneva, sans-serif; }
69
+ .header-content, .footer-content-left, .footer-content-right { -webkit-text-size-adjust: none; -ms-text-size-adjust: none; }
70
+ /* Prevent Webkit and Windows Mobile platforms from changing default font sizes on header and footer. */
71
+ .header-content { font-size: 12px; color: #888888; }
72
+ .header-content a { font-weight: bold; color: #eeeeee; text-decoration: none; }
73
+ #headline p { color: #eeeeee; font-family: HelveticaNeue, sans-serif; font-size: 36px; text-align: center; margin-top:0px; margin-bottom:30px; }
74
+ #headline p a { color: #eeeeee; text-decoration: none; }
75
+ .article-title { font-size: 18px; line-height:24px; color: #b0b0b0; font-weight:bold; margin-top:0px; margin-bottom:18px; font-family: 'Helvetica Neue', Arial, Helvetica, Geneva, sans-serif; }
76
+ .article-title a { color: #b0b0b0; text-decoration: none; }
77
+ .article-title.with-meta {margin-bottom: 0;}
78
+ .article-meta { font-size: 13px; line-height: 20px; color: #ccc; font-weight: bold; margin-top: 0;}
79
+ .article-content { font-size: 13px; line-height: 18px; color: #444444; margin-top: 0px; margin-bottom: 18px; font-family: 'Helvetica Neue', Arial, Helvetica, Geneva, sans-serif; }
80
+ .article-content a { color: #2f82de; font-weight:bold; text-decoration:none; }
81
+ .article-content img { max-width: 100% }
82
+ .article-content ol, .article-content ul { margin-top:0px; margin-bottom:18px; margin-left:19px; padding:0; }
83
+ .article-content li { font-size: 13px; line-height: 18px; color: #444444; }
84
+ .article-content li a { color: #2f82de; text-decoration:underline; }
85
+ .article-content p {margin-bottom: 15px;}
86
+ .footer-content-left { font-size: 12px; line-height: 15px; color: #888888; margin-top: 0px; margin-bottom: 15px; }
87
+ .footer-content-left a { color: #eeeeee; font-weight: bold; text-decoration: none; }
88
+ .footer-content-right { font-size: 11px; line-height: 16px; color: #888888; margin-top: 0px; margin-bottom: 15px; }
89
+ .footer-content-right a { color: #eeeeee; font-weight: bold; text-decoration: none; }
90
+ #footer { background-color: #000000; color: #888888; }
91
+ #footer a { color: #eeeeee; text-decoration: none; font-weight: bold; }
92
+ #permission-reminder { white-space: normal; }
93
+ #street-address { color: #ffffff; white-space: normal; }
94
+ </style>
95
+ <!--[if gte mso 9]>
96
+ <style _tmplitem="347" >
97
+ .article-content ol, .article-content ul {
98
+ margin: 0 0 0 24px;
99
+ padding: 0;
100
+ list-style-position: inside;
101
+ }
102
+ </style>
103
+ <![endif]-->
104
+ </head>
105
+ <body>
106
+ <table id="background-table" border="0" cellpadding="0" cellspacing="0" width="100%">
107
+ <tbody><tr><td align="center" bgcolor="#c7c7c7"><table class="w640" style="margin:0 10px;" border="0" cellpadding="0" cellspacing="0" width="640"><tbody><tr><td class="w640" height="20" width="640"></td></tr><tr><td class="w640" width="640"><table id="top-bar" class="w640" bgcolor="#000000" border="0" cellpadding="0" cellspacing="0" width="640"><tbody><tr><td class="w15" width="15"></td><td class="w325" align="left" valign="middle" width="350"><table class="w325" border="0" cellpadding="0" cellspacing="0" width="350"><tbody><tr><td class="w325" height="8" width="350"></td></tr></tbody></table>
108
+
109
+
110
+ <!-- TOP BAR CONTENT -->
111
+ <div class="header-content">
112
+ SITENAME
113
+ </div>
114
+ <!-- /TOP BAR CONTENT -->
115
+
116
+
117
+ <table class="w325" border="0" cellpadding="0" cellspacing="0" width="350"><tbody><tr><td class="w325" height="8" width="350"></td></tr></tbody></table></td><td class="w30" width="30"></td><td class="w255" align="right" valign="middle" width="255"><table class="w255" border="0" cellpadding="0" cellspacing="0" width="255"><tbody><tr><td class="w255" height="8" width="255"></td></tr></tbody></table><table border="0" cellpadding="0" cellspacing="0"><tbody><tr></tr></tbody></table><table class="w255" border="0" cellpadding="0" cellspacing="0" width="255"><tbody><tr><td class="w255" height="8" width="255"></td></tr></tbody></table></td><td class="w15" width="15"></td></tr></tbody></table></td></tr><tr><td id="header" class="w640" align="center" bgcolor="#000000" width="640"><table class="w640" border="0" cellpadding="0" cellspacing="0" width="640"><tbody><tr><td class="w30" width="30"></td><td class="w580" height="30" width="580"></td><td class="w30" width="30"></td></tr><tr><td class="w30" width="30"></td><td class="w580" width="580">
118
+
119
+
120
+ <!-- LOGO -->
121
+ <div id="headline" align="center">
122
+ <p>
123
+ <strong>
124
+ LOGO
125
+ </strong>
126
+ </p>
127
+ </div>
128
+ <!-- /LOGO -->
129
+
130
+
131
+ </td><td class="w30" width="30"></td></tr></tbody></table></td></tr><tr><td class="w640" bgcolor="#ffffff" height="30" width="640"></td></tr><tr id="simple-content-row"><td class="w640" bgcolor="#ffffff" width="640"><table class="w640" border="0" cellpadding="0" cellspacing="0" width="640"><tbody><tr><td class="w30" width="30"></td><td class="w580" width="580">
132
+
133
+
134
+ <!-- CONTENT -->
135
+ <%= yield %>
136
+ <!-- /CONTENT -->
137
+
138
+
139
+ </td><td class="w30" width="30"></td></tr></tbody></table></td></tr><tr><td class="w640" bgcolor="#ffffff" height="15" width="640"></td></tr><tr><td class="w640" width="640"><table id="footer" class="w640" bgcolor="#000000" border="0" cellpadding="0" cellspacing="0" width="640"><tbody><tr><td class="w30" width="30"></td><td class="w580 h0" height="30" width="360"></td><td class="w0" width="60"></td><td class="w0" width="160"></td><td class="w30" width="30"></td></tr><tr><td class="w30" width="30"></td><td class="w580" valign="top" width="360">
140
+
141
+
142
+ <!-- FOOTER CONTENT LEFT -->
143
+ <p class="footer-content-left" align="left">
144
+ FOOTER LEFT
145
+ </p>
146
+ <!-- /FOOTER CONTENT LEFT -->
147
+
148
+
149
+ </td><td class="hide w0" width="60"></td><td class="hide w0" valign="top" width="160">
150
+
151
+
152
+ <!-- FOOTER CONTENT RIGHT -->
153
+ <p class="footer-content-right" align="right">
154
+ FOOTER RIGHT
155
+ </p>
156
+ <!-- /FOOTER CONTENT RIGHT -->
157
+
158
+
159
+ </td><td class="w30" width="30"></td></tr><tr><td class="w30" width="30"></td><td class="w580 h0" height="15" width="360"></td><td class="w0" width="60"></td><td class="w0" width="160"></td><td class="w30" width="30"></td></tr></tbody></table></td></tr><tr><td class="w640" height="60" width="640"></td></tr></tbody></table></td></tr></tbody></table></body></html>
@@ -1,6 +1,6 @@
1
1
  module Lalala
2
2
  VERSION = "4.0.0"
3
- BUILD = "269"
3
+ BUILD = "275"
4
4
 
5
5
  if BUILD != ("{{BUILD_NUMBER" + "}}") # prevent sed replacement (see script/ci)
6
6
  BUILD_VERSION = "#{VERSION}.dev.#{BUILD}"
@@ -16,6 +16,24 @@ ActiveAdmin.register Article do
16
16
  f.actions
17
17
  end
18
18
 
19
+ sidebar "Actions", :only => [:edit] do
20
+
21
+ div :class =>"lalala sidebar actions", :id => "lalala_sidebar_actions" do
22
+
23
+
24
+
25
+ end
26
+
27
+ end
28
+
29
+ sidebar "Actions", :only => [:edit] do
30
+
31
+ div :class => "lalala sidebar message", :id => "lalala_sidebar_message" do
32
+ "This item has been updated last at <strong>Feb 14th, 2014</strong>".html_safe
33
+ end
34
+
35
+ end
36
+
19
37
 
20
38
  sidebar "Related tags", :only => [:show] do
21
39
 
@@ -9,6 +9,11 @@ class Article < ActiveRecord::Base
9
9
  # Validations
10
10
  validates :title, presence: true
11
11
 
12
+ # Markdown columns
13
+ markdown :body, tables: true, link_schemes: {
14
+ "youtube" => Lalala::Markdown::Handlers::YouTube.new(width: 520, height: 292)
15
+ }
16
+
12
17
  # Scopes
13
18
  scope :catA, where(:category => "A")
14
19
  scope :catB, where(:category => "B")
@@ -1,6 +1,6 @@
1
1
  class HomePage < ApplicationPage
2
2
 
3
- # self.route = nil # slug
3
+ self.route = ''
4
4
  self.allow_create = false
5
5
  self.allow_destroy = false
6
6
  # self.minimum_children = nil
@@ -15,5 +15,6 @@ class HomePage < ApplicationPage
15
15
  # def static_children
16
16
  # {}
17
17
  # end
18
+ #
18
19
 
19
20
  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.0.0.dev.269
4
+ version: 4.0.0.dev.275
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Menke
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2014-02-18 00:00:00.000000000 Z
16
+ date: 2014-02-21 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: activeadmin
@@ -1297,6 +1297,7 @@ files:
1297
1297
  - app/assets/images/lalala/overlay-logo.png
1298
1298
  - app/assets/images/lalala/users/default.jpg
1299
1299
  - app/assets/images/lalala/users/fallback.jpg
1300
+ - app/assets/javascripts/.jshintrc
1300
1301
  - app/assets/javascripts/browser/console.module.js
1301
1302
  - app/assets/javascripts/browser/document.module.js
1302
1303
  - app/assets/javascripts/browser/history.module.js
@@ -1311,6 +1312,7 @@ files:
1311
1312
  - app/assets/javascripts/lalala/lib/moment.js
1312
1313
  - app/assets/javascripts/lalala/lib/pikaday.js
1313
1314
  - app/assets/javascripts/lalala/modules/calendar.module.js
1315
+ - app/assets/javascripts/lalala/modules/collapsible_pages_tree.module.js
1314
1316
  - app/assets/javascripts/lalala/modules/dashboard.module.js
1315
1317
  - app/assets/javascripts/lalala/modules/editor.module.js
1316
1318
  - app/assets/javascripts/lalala/modules/grid.module.js
@@ -1410,6 +1412,7 @@ files:
1410
1412
  - lib/generators/lalala/install/templates/active_admin.rb.erb
1411
1413
  - lib/generators/lalala/install/templates/admin_pages.rb
1412
1414
  - lib/generators/lalala/install/templates/admin_users.rb
1415
+ - lib/generators/lalala/install/templates/application_mailer.html.erb
1413
1416
  - lib/generators/lalala/install/templates/dashboard.rb
1414
1417
  - lib/generators/lalala/install/templates/devise.rb.erb
1415
1418
  - lib/generators/lalala/install/templates/errors_controller.rb