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

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