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 +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
|