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 +4 -4
- data/app/assets/javascripts/.jshintrc +8 -0
- data/app/assets/javascripts/lalala/modules/collapsible_pages_tree.module.js +152 -0
- data/app/assets/javascripts/lalala/modules/init.module.js +3 -1
- data/app/assets/javascripts/lalala/modules/storage.module.js +20 -1
- data/app/assets/stylesheets/lalala/components/_chosen-lalala.css.scss +3 -3
- data/app/assets/stylesheets/lalala/components/_forms.css.scss +1 -1
- data/app/assets/stylesheets/lalala/modules/_editor-preview.css.scss +5 -0
- data/app/assets/stylesheets/lalala/modules/_editor.css.scss +1 -1
- data/app/assets/stylesheets/lalala/modules/_filter-form.css.scss +44 -6
- data/app/assets/stylesheets/lalala/modules/_index-as-tree-table.css.scss +29 -0
- data/app/assets/stylesheets/lalala/modules/_sidebar-section.css.scss +7 -6
- data/app/views/lalala/markdown/preview.html.erb +1 -0
- data/lib/generators/lalala/install/install_generator.rb +4 -0
- data/lib/generators/lalala/install/templates/application_mailer.html.erb +159 -0
- data/lib/lalala/version.rb +1 -1
- data/test/dummy/app/admin/articles.rb +18 -0
- data/test/dummy/app/models/article.rb +5 -0
- data/test/dummy/app/pages/home_page.rb +2 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 516beae401a055b6b4ff0e4be439d662e4724320
|
4
|
+
data.tar.gz: 23ff79bee97b10067c5c8d714ac75452e8b20523
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef962f9342106f776682ae780bc2b852ddfa9dd4e56ea01cc24795ea7388036bfa4e3743cf45d4707c4e31dc1d73402bc5e9466be8f8caaa8ab8bd99bca615d7
|
7
|
+
data.tar.gz: daf28c65cc9878acd86eeb389412677bc61ef941146452aed8e543f67d37dc42c706552349475691bdbda92c0306b6a25add0f855019a63d6d642ec6938f1c4e
|
@@ -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(
|
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(
|
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(
|
184
|
+
border: 1px solid gray(220);
|
185
185
|
|
186
186
|
background-color: white;
|
187
187
|
background-image: none !important;
|
@@ -1,12 +1,52 @@
|
|
1
1
|
.filter_form {
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
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(
|
2
|
+
@include border-radius(3px);
|
3
3
|
border: 1px solid gray(220);
|
4
|
-
margin: 0
|
4
|
+
margin: 0 30px 20px 0;
|
5
5
|
overflow: hidden;
|
6
6
|
|
7
7
|
h3 {
|
8
|
-
background-color: gray(
|
9
|
-
|
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:
|
13
|
+
padding: 15px 20px;
|
13
14
|
margin: 0 !important;
|
14
15
|
}
|
15
16
|
|
16
17
|
.panel_contents {
|
17
|
-
padding:
|
18
|
+
padding: 15px 20px 15px 20px;
|
18
19
|
|
19
20
|
// LALALA specific styling
|
20
21
|
//
|
@@ -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>
|
data/lib/lalala/version.rb
CHANGED
@@ -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
|
-
|
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.
|
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-
|
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
|