roroacms 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/app/assets/javascripts/roroacms/admin/admin.js +1 -0
- data/app/assets/javascripts/roroacms/admin/menu.js +14 -2
- data/app/assets/javascripts/roroacms/admin/posts/posts.js +1 -1
- data/app/assets/javascripts/roroacms/admin/settings/settings.js +1 -1
- data/app/assets/javascripts/roroacms/admin/site.js +1 -1
- data/app/assets/stylesheets/roroacms/admin/main.css.erb +37 -5
- data/app/assets/stylesheets/roroacms/vendor/ghostdown.css +13 -5
- data/app/controllers/roroacms/application_controller.rb +11 -1
- data/app/helpers/roroacms/media_helper.rb +1 -1
- data/app/helpers/roroacms/seo_helper.rb +4 -2
- data/app/views/roroacms/admin/administrators/_form.html.erb +0 -1
- data/app/views/roroacms/admin/menus/index.html.erb +10 -2
- data/app/views/roroacms/admin/partials/_content_form.html.erb +42 -14
- data/app/views/roroacms/admin/partials/_revision_tree.html.erb +2 -1
- data/app/views/roroacms/admin/partials/_submit_bar.html.erb +0 -7
- data/app/views/roroacms/admin/partials/_table_header.html.erb +1 -1
- data/app/views/roroacms/admin/settings/index.html.erb +78 -31
- data/app/views/roroacms/admin/terms/edit.html.erb +0 -3
- data/app/views/roroacms/setup/index.html.erb +8 -0
- data/config/locales/en.yml +3 -0
- data/db/seeds.rb +2 -0
- data/lib/roroacms/engine.rb +2 -2
- metadata +4 -17
- data/app/assets/images/roroacms/admin/Spaceship.gif +0 -0
- data/app/assets/images/roroacms/admin/avatar.gif +0 -0
- data/app/assets/images/roroacms/admin/avatar.png +0 -0
- data/app/assets/images/roroacms/admin/avatar1.gif +0 -0
- data/app/assets/images/roroacms/admin/avatar2.gif +0 -0
- data/app/assets/images/roroacms/admin/avatar3.gif +0 -0
- data/app/assets/images/roroacms/admin/avatar4.gif +0 -0
- data/app/assets/images/roroacms/admin/avatar5.gif +0 -0
- data/app/assets/images/roroacms/admin/avatar6.gif +0 -0
- data/app/assets/images/roroacms/admin/favicon-old.ico +0 -0
- data/app/assets/images/roroacms/admin/select2.png +0 -0
- data/app/assets/images/roroacms/admin/spritemap.png +0 -0
- data/app/assets/images/roroacms/admin/top.png +0 -0
@@ -9,7 +9,13 @@ $(document).ready(function() {
|
|
9
9
|
url: $('.js-settings').attr('data-site-url') + "admin/menus/save_menu",
|
10
10
|
data: data,
|
11
11
|
dataType: "html",
|
12
|
-
success: function(data) {
|
12
|
+
success: function(data) {
|
13
|
+
if(data == 'demo'){
|
14
|
+
do_demo_alert();
|
15
|
+
} else {
|
16
|
+
do_alert();
|
17
|
+
}
|
18
|
+
}
|
13
19
|
});
|
14
20
|
};
|
15
21
|
do_alert = function() {
|
@@ -18,6 +24,13 @@ $(document).ready(function() {
|
|
18
24
|
scrollTop: $("#header").offset().top
|
19
25
|
}, "slow");
|
20
26
|
};
|
27
|
+
|
28
|
+
do_demo_alert = function(){
|
29
|
+
$("#main-content .row > .col-md-12 .alert-wrapper").html("<div class=\"alert alert-danger\"><button data-dismiss=\"alert\" class=\"close\" type=\"button\">x</button><strong>Error!</strong> You are working in demo mode so no CRUD functions will be undertaken</div>");
|
30
|
+
$("html,body").animate({
|
31
|
+
scrollTop: $("#header").offset().top
|
32
|
+
}, "slow");
|
33
|
+
}
|
21
34
|
build_under_form = function(data, selector) {
|
22
35
|
$.ajax({
|
23
36
|
type: "POST",
|
@@ -43,7 +56,6 @@ $(document).ready(function() {
|
|
43
56
|
});
|
44
57
|
$(".update-menu").bind("click", function(e) {
|
45
58
|
do_update_function();
|
46
|
-
do_alert();
|
47
59
|
});
|
48
60
|
$("ol.sortable").on("click", "i.handler", function() {
|
49
61
|
var container;
|
@@ -51,7 +51,7 @@ $(document).ready(function() {
|
|
51
51
|
$("body").on("click", ".addAdditionalDataInput", function() {
|
52
52
|
$.ajax({
|
53
53
|
type: "POST",
|
54
|
-
url: settings.attr('data-site-url') + "admin/articles/create_additional_data",
|
54
|
+
url: $('.js-settings').attr('data-site-url') + "admin/articles/create_additional_data",
|
55
55
|
data: "key=" + $("#addAdditionalDataInput").val(),
|
56
56
|
dataType: "html",
|
57
57
|
success: function(data) {
|
@@ -9,7 +9,7 @@ $(document).ready(function() {
|
|
9
9
|
$("body").on("click", ".addGroupInput", function() {
|
10
10
|
$.ajax({
|
11
11
|
type: "POST",
|
12
|
-
url: settings.attr('data-site-url') + "admin/settings/create_user_group",
|
12
|
+
url: $('.js-settings').attr('data-site-url') + "admin/settings/create_user_group",
|
13
13
|
data: "key=" + $("#addGroupInput").val(),
|
14
14
|
dataType: "html",
|
15
15
|
success: function(data) {
|
@@ -37,7 +37,7 @@ app = (function() {
|
|
37
37
|
$(".sidebar").addClass("sidebar-toggle");
|
38
38
|
$(".main-content-wrapper").addClass("main-content-toggle-left");
|
39
39
|
}
|
40
|
-
$(".sidebar-right").toggleClass("sidebar-toggle-right
|
40
|
+
$(".sidebar-right").toggleClass("sidebar-toggle-right bounceInRight");
|
41
41
|
$(".main-content-wrapper").toggleClass("main-content-toggle-right");
|
42
42
|
if ($(window).width() < 660) {
|
43
43
|
$(".sidebar").removeClass("sidebar-toggle");
|
@@ -1719,6 +1719,10 @@ fieldset[disabled] .btn-warning.active {
|
|
1719
1719
|
font-size: 1em;
|
1720
1720
|
margin: 0 3px;
|
1721
1721
|
}
|
1722
|
+
|
1723
|
+
.panel .actions i.fa-chevron-down {
|
1724
|
+
display: none;
|
1725
|
+
}
|
1722
1726
|
.panel .actions i:hover {
|
1723
1727
|
cursor: pointer;
|
1724
1728
|
}
|
@@ -2719,8 +2723,8 @@ h3.timeline-title {
|
|
2719
2723
|
margin-bottom: 10px;
|
2720
2724
|
}
|
2721
2725
|
.radio-inline:first-child {
|
2722
|
-
margin-left: 0px;
|
2723
|
-
padding-left: 0px
|
2726
|
+
/* margin-left: 0px;
|
2727
|
+
padding-left: 0px;*/
|
2724
2728
|
}
|
2725
2729
|
select.form-control {
|
2726
2730
|
margin-bottom: 10px;
|
@@ -2823,7 +2827,7 @@ ol.sortable .item-information {
|
|
2823
2827
|
.well small {
|
2824
2828
|
color: #5D5F63;
|
2825
2829
|
}
|
2826
|
-
.
|
2830
|
+
.floatingheader {
|
2827
2831
|
-moz-box-sizing: border-box;
|
2828
2832
|
background-color: rgba(0, 0, 0, 0) !important;
|
2829
2833
|
background-image: linear-gradient(to bottom, #ffffff 0%, #ffffff 25%, rgba(255, 255, 255, 0.9) 100%) !important;
|
@@ -2836,7 +2840,7 @@ ol.sortable .item-information {
|
|
2836
2840
|
top: 0;
|
2837
2841
|
z-index: 400;
|
2838
2842
|
}
|
2839
|
-
.
|
2843
|
+
.floatingheader i {
|
2840
2844
|
margin-top: 5px;
|
2841
2845
|
}
|
2842
2846
|
.features .editor .CodeMirror pre {
|
@@ -3506,13 +3510,29 @@ ul.theme-issues li i.fa-check {
|
|
3506
3510
|
border-radius:0px;
|
3507
3511
|
}
|
3508
3512
|
|
3513
|
+
.tooltip-inner {
|
3514
|
+
background-color: #EEEEEE;
|
3515
|
+
color:#5D5F63;
|
3516
|
+
opacity: 1;
|
3517
|
+
}
|
3518
|
+
|
3519
|
+
.tooltip.right .tooltip-arrow {
|
3520
|
+
border-right: 5px solid #EEEEEE;
|
3521
|
+
|
3522
|
+
}
|
3523
|
+
|
3524
|
+
input, textarea, select, input[type=submit] {
|
3525
|
+
-webkit-appearance: none;
|
3526
|
+
}
|
3527
|
+
|
3528
|
+
|
3509
3529
|
@media only screen and (max-width: 767px) and (min-width: 480px) {
|
3510
3530
|
#main-content .h1 {
|
3511
3531
|
font-size: 35px;
|
3512
3532
|
}
|
3513
3533
|
}
|
3514
3534
|
@media (max-width: 767px) {
|
3515
|
-
|
3535
|
+
ul.timeline:before {
|
3516
3536
|
left: 40px;
|
3517
3537
|
}
|
3518
3538
|
ul.timeline > li > .timeline-badge {
|
@@ -3538,6 +3558,15 @@ ul.theme-issues li i.fa-check {
|
|
3538
3558
|
.shrink {
|
3539
3559
|
display: none;
|
3540
3560
|
}
|
3561
|
+
|
3562
|
+
.floatingheader > a, .floatingheader .entry-word-count {
|
3563
|
+
display: none;
|
3564
|
+
}
|
3565
|
+
|
3566
|
+
.radio-inline, .checkbox-inline {
|
3567
|
+
display: block;
|
3568
|
+
padding:0px;
|
3569
|
+
}
|
3541
3570
|
}
|
3542
3571
|
@media only screen and (max-width: 960px) {
|
3543
3572
|
strong {
|
@@ -3553,6 +3582,9 @@ ul.theme-issues li i.fa-check {
|
|
3553
3582
|
margin-left: 0px;
|
3554
3583
|
width: 100%;
|
3555
3584
|
}
|
3585
|
+
.panel .actions i.fa-chevron-down {
|
3586
|
+
display: none;
|
3587
|
+
}
|
3556
3588
|
}
|
3557
3589
|
@media only screen and (max-width: 767px) {
|
3558
3590
|
strong {
|
@@ -301,11 +301,11 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {
|
|
301
301
|
}
|
302
302
|
}
|
303
303
|
.features .editor .editorwrap {
|
304
|
-
max-width:
|
304
|
+
max-width: 1180px;
|
305
305
|
padding: 40px 0;
|
306
306
|
margin: 0 auto;
|
307
307
|
position: relative;
|
308
|
-
height:
|
308
|
+
height: 700px
|
309
309
|
}
|
310
310
|
@media (max-width: 860px), (max-width: 860px) {
|
311
311
|
.features .editor .editorwrap {
|
@@ -386,8 +386,10 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {
|
|
386
386
|
box-shadow: rgba(0,0,0,0.1) 0 -2px 3px inset;
|
387
387
|
padding: 10px 0;
|
388
388
|
}
|
389
|
-
|
390
|
-
|
389
|
+
|
390
|
+
.editor {
|
391
|
+
position: relative;
|
392
|
+
margin-top: 40px !important;
|
391
393
|
}
|
392
394
|
.features .editor .entry-markdown .floatingheader a, .features .editor .entry-preview .floatingheader a {
|
393
395
|
color: #fff
|
@@ -407,12 +409,16 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {
|
|
407
409
|
.features .editor .entry-markdown.active header, .features .editor .entry-preview.active header {
|
408
410
|
cursor: auto;
|
409
411
|
color: #aaa9a2;
|
412
|
+
color:#5d5f63;
|
410
413
|
background: #fff;
|
411
414
|
box-shadow: #edece4 0 1px 0 inset, #edece4 1px 0 0 inset, #edece4 -1px 0 0 inset
|
412
415
|
}
|
413
416
|
.features .editor .entry-markdown.active header a, .features .editor .entry-preview.active header a {
|
414
417
|
color: #aaa9a2
|
415
418
|
}
|
419
|
+
.features .editor .entry-markdown .floatingheader, .features .editor .entry-preview .floatingheader {
|
420
|
+
color: #aaa9a2;
|
421
|
+
}
|
416
422
|
}
|
417
423
|
@media (max-width: 400px), (max-width: 400px) {
|
418
424
|
.features .editor .entry-markdown .markdown-help, .features .editor .entry-markdown .entry-word-count, .features .editor .entry-preview .markdown-help, .features .editor .entry-preview .entry-word-count {
|
@@ -503,7 +509,9 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {
|
|
503
509
|
padding: 65px 0 40px 0
|
504
510
|
}
|
505
511
|
@media (max-width: 860px), (max-width: 860px) {
|
506
|
-
|
512
|
+
.features .editor .CodeMirror-lines {
|
513
|
+
padding: 25px 0 30px 0
|
514
|
+
}
|
507
515
|
}
|
508
516
|
@media (max-width: 400px), (max-width: 400px) {
|
509
517
|
.features .editor .CodeMirror-lines {
|
@@ -6,6 +6,7 @@ module Roroacms
|
|
6
6
|
before_filter :set_vars
|
7
7
|
before_filter :check_setup
|
8
8
|
before_filter :add_breadcrumb_fe
|
9
|
+
before_filter :authorize_demo, :except => [:index, :show, :edit, :new]
|
9
10
|
|
10
11
|
protect_from_forgery
|
11
12
|
helper Roroacms::PrepcontentHelper
|
@@ -97,7 +98,7 @@ module Roroacms
|
|
97
98
|
# checks if the admin is logged in before anything else
|
98
99
|
|
99
100
|
def authorize_admin
|
100
|
-
redirect_to admin_login_path, error: I18n.t("controllers.application.unauthorized") and return if current_user.nil?
|
101
|
+
redirect_to admin_login_path, flash: { error: I18n.t("controllers.application.unauthorized") } and return if current_user.nil?
|
101
102
|
end
|
102
103
|
|
103
104
|
|
@@ -123,6 +124,15 @@ module Roroacms
|
|
123
124
|
@breadcrumbs << hash
|
124
125
|
end
|
125
126
|
|
127
|
+
def authorize_demo
|
128
|
+
if !request.xhr? && !request.get? && ( !current_user.blank? && current_user.username.downcase == 'demo' && Setting.get('demonstration_mode') == 'Y' )
|
129
|
+
redirect_to :back, flash: { error: I18n.t('generic.demo_notification') } and return
|
130
|
+
end
|
131
|
+
|
132
|
+
render :inline => 'demo' and return if params[:action] == 'save_menu'
|
133
|
+
|
134
|
+
end
|
135
|
+
|
126
136
|
|
127
137
|
# protected
|
128
138
|
|
@@ -14,7 +14,7 @@ module Roroacms
|
|
14
14
|
S3 = AWS::S3.new
|
15
15
|
|
16
16
|
def upload_images(file, type, initial_folder = 'users')
|
17
|
-
path = "#{BUCKET}/" + initial_folder.to_s + "/" + type.to_s + "/" + file.original_filename
|
17
|
+
path = "#{BUCKET}/" + Setting.get("aws_folder") + "/" + initial_folder.to_s + "/" + type.to_s + "/" + file.original_filename
|
18
18
|
begin
|
19
19
|
obj = S3.buckets[BUCKET].objects["#{path}"].write(:file => file, :acl => :public_read)
|
20
20
|
unauthenticated_url(obj)
|
@@ -105,13 +105,15 @@ module Roroacms
|
|
105
105
|
# if seo description is not blank then use that
|
106
106
|
if !@content.post_seo_description.blank?
|
107
107
|
return "<meta name=\"description\" content=\"#{@content.post_seo_description}\" />\n<meta name=\"author\" content=\"#{Setting.get('seo_site_title')}\">"
|
108
|
-
|
109
|
-
# if worst comes to worst use the page
|
108
|
+
elsif Setting.get('seo_autogenerate_descriptions') == 'Y'
|
109
|
+
# if worst comes to worst use the page content
|
110
110
|
description = truncate(prep_content(@content), :length => 100, :separator => ' ').gsub(/\r?\n|\r/, "")
|
111
111
|
return "<meta name=\"description\" content=\"#{strip_tags(description)}\" />\n<meta name=\"author\" content=\"#{Setting.get('seo_site_title')}\">"
|
112
112
|
end
|
113
113
|
end
|
114
114
|
|
115
|
+
return ''
|
116
|
+
|
115
117
|
end
|
116
118
|
|
117
119
|
|
@@ -6,9 +6,17 @@
|
|
6
6
|
<div class="panel-body">
|
7
7
|
<div class="tab-wrapper tab-left ">
|
8
8
|
<ul class="nav nav-tabs">
|
9
|
-
<li class="active"
|
9
|
+
<li class="tooltipState active" data-toggle="tooltip" data-placement="right" data-title="<%= t("views.admin.menus.index.new_menu") %>">
|
10
|
+
<a href="#new" data-toggle="tab">
|
11
|
+
<i class="fa fa-plus"></i>
|
12
|
+
</a>
|
13
|
+
</li>
|
10
14
|
<% @all_menus.each_with_index do |m, index| %>
|
11
|
-
<li
|
15
|
+
<li class="tooltipState" data-toggle="tooltip" data-placement="right" title="<%= m.name %>">
|
16
|
+
<a href="#<%= m.key + '-' + index.to_s %>" data-toggle="tab">
|
17
|
+
<i class="fa fa-list"></i> <%= m.name %>
|
18
|
+
</a>
|
19
|
+
</li>
|
12
20
|
<% end %>
|
13
21
|
</ul>
|
14
22
|
<div class="tab-content">
|
@@ -1,18 +1,43 @@
|
|
1
1
|
<%= form_for [:admin, @record], :url => { action: @action.to_sym } do |f| %>
|
2
2
|
|
3
3
|
<div class="panel panel-default">
|
4
|
-
<div class="panel-body">
|
4
|
+
<div class="panel-body" id="collapsed_tabs">
|
5
5
|
<div class="tab-wrapper tab-left ">
|
6
6
|
<ul class="nav nav-tabs">
|
7
7
|
|
8
|
-
<li class="active
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
<li class="active tooltipState" data-toggle="tooltip" data-placement="right" data-title="<%= t("views.admin.generic.general") %>">
|
9
|
+
<a href="#general" data-toggle="tab">
|
10
|
+
<i class="fa fa-cog"></i>
|
11
|
+
</a>
|
12
|
+
</li>
|
13
|
+
|
14
|
+
<li class="tooltipState" data-toggle="tooltip" data-placement="right" data-title="<%= t("views.admin.generic.content") %>">
|
15
|
+
<a class="contentReload" href="#content" data-toggle="tab">
|
16
|
+
<i class="fa fa-desktop"></i>
|
17
|
+
</a>
|
18
|
+
</li>
|
19
|
+
<li class="tooltipState" data-toggle="tooltip" data-placement="right" data-title="<%= t("views.admin.pages.new.tabs.history") %>">
|
20
|
+
<a href="#revisions" data-toggle="tab">
|
21
|
+
<i class="fa fa-history"></i>
|
22
|
+
</a>
|
23
|
+
</li>
|
24
|
+
<li class="tooltipState" data-toggle="tooltip" data-placement="right" data-title="<%= t("views.admin.generic.search_engine_optimisation") %>">
|
25
|
+
<a href="#seo" data-toggle="tab">
|
26
|
+
<i class="fa fa-bar-chart-o"></i>
|
27
|
+
</a>
|
28
|
+
</li>
|
12
29
|
<% if @post_type == 'post' %>
|
13
|
-
<li
|
30
|
+
<li class="tooltipState" data-toggle="tooltip" data-placement="right" data-title="<%= t("views.admin.pages.new.tabs.tags_and_categories") %>">
|
31
|
+
<a href="#categories" data-toggle="tab">
|
32
|
+
<i class="fa fa-sitemap"></i>
|
33
|
+
</a>
|
34
|
+
</li>
|
14
35
|
<% end %>
|
15
|
-
<li
|
36
|
+
<li class="tooltipState" data-toggle="tooltip" data-placement="right" data-title="<%= t("views.admin.pages.new.tabs.additional") %>">
|
37
|
+
<a href="#additional" data-toggle="tab">
|
38
|
+
<i class="fa fa-paperclip"></i>
|
39
|
+
</a>
|
40
|
+
</li>
|
16
41
|
|
17
42
|
</ul>
|
18
43
|
<div class="tab-content">
|
@@ -136,22 +161,24 @@
|
|
136
161
|
|
137
162
|
</div>
|
138
163
|
<div class="tab-pane" id="content">
|
139
|
-
<!--
|
140
|
-
<%= f.text_area :post_content, :class => 'editor', :value => @record.post_content.blank? ? '' : @record.post_content %>
|
141
|
-
-->
|
142
164
|
|
143
|
-
|
165
|
+
<div class="features">
|
166
|
+
|
144
167
|
<section class="editor">
|
145
168
|
<div class="outer">
|
146
169
|
<div class="editorwrap">
|
147
170
|
<section class="entry-markdown">
|
148
|
-
<header class="
|
171
|
+
<header class="floatingheader">
|
172
|
+
<%= t("views.admin.pages.new.tab_content.markdown") %> <a href="javascript:;" data-toggle="modal" data-target="#mdModal"><i class="fa fa-info-circle pull-right"></i></a>
|
173
|
+
</header>
|
149
174
|
<section class="entry-markdown-content">
|
150
|
-
|
175
|
+
<%= f.text_area :post_content, :class => 'markdown_editor', :value => @record.post_content.blank? ? '...' : @record.post_content %>
|
151
176
|
</section>
|
152
177
|
</section>
|
153
178
|
<section class="entry-preview active">
|
154
|
-
<header class="
|
179
|
+
<header class="floatingheader">
|
180
|
+
<%= t("views.admin.generic.preview") %> <span class="entry-word-count">0 <%= t("views.admin.generic.words") %></span>
|
181
|
+
</header>
|
155
182
|
<section class="entry-preview-content">
|
156
183
|
<div class="rendered-markdown"></div>
|
157
184
|
</section>
|
@@ -159,6 +186,7 @@
|
|
159
186
|
</div>
|
160
187
|
</div>
|
161
188
|
</section>
|
189
|
+
|
162
190
|
</div>
|
163
191
|
|
164
192
|
</div>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<% @revisions = Roroacms::Post.where(:ancestry => @record.id.to_s, :post_type => 'autosave').order('created_at desc') %>
|
2
2
|
|
3
|
-
<% if @revisions.blank? || @record.id.blank? %>
|
3
|
+
<% if @revisions.blank? || @record.id.blank? || @revisions.size <= 1 %>
|
4
4
|
|
5
5
|
<div class="text-center top-margin-20">
|
6
6
|
<strong class="text-center"><%= t("views.admin.partials.revision_tree.no_revisions") %></strong>
|
@@ -10,6 +10,7 @@
|
|
10
10
|
|
11
11
|
<ul class="timeline-single">
|
12
12
|
|
13
|
+
|
13
14
|
<%
|
14
15
|
@revisions.each_with_index do |f, index| %>
|
15
16
|
|
@@ -1,11 +1,4 @@
|
|
1
1
|
<div class="form-toolbar">
|
2
|
-
<% cache('admin_submit_bar_toggle') do %>
|
3
|
-
<div class="toggle-navigation toggle-left pull-left">
|
4
|
-
<button type="button" class="btn btn-default shrink">
|
5
|
-
<i class="fa fa-bars"></i>
|
6
|
-
</button>
|
7
|
-
</div>
|
8
|
-
<% end %>
|
9
2
|
<div class="btn-group pull-right">
|
10
3
|
<% if ! defined?(unbuttoned) %>
|
11
4
|
<% if defined?(post_record) && !post_record.id.blank? %>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<div class="row">
|
2
2
|
<div class="col-md-6">
|
3
3
|
<% if defined?(path) %>
|
4
|
-
<%= link_to path, id: defined?(id) ? id : '', class: "
|
4
|
+
<%= link_to path, id: defined?(id) ? id : '', class: "btn btn-small btn-block btn-primary" do %>
|
5
5
|
<span class="fa fa-plus"></span> <%= name %>
|
6
6
|
<% end %>
|
7
7
|
<% else %>
|
@@ -10,12 +10,38 @@
|
|
10
10
|
<div class="panel-body">
|
11
11
|
<div class="tab-wrapper tab-left ">
|
12
12
|
<ul class="nav nav-tabs">
|
13
|
-
<li class="active"
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
<li
|
13
|
+
<li class="tooltipState active" data-toggle="tooltip" data-placement="right" data-title="<%= t("views.admin.generic.general") %>">
|
14
|
+
<a href="#general" data-toggle="tab">
|
15
|
+
<i class="fa fa-cog"></i>
|
16
|
+
</a>
|
17
|
+
</li>
|
18
|
+
<li class="tooltipState" data-toggle="tooltip" data-placement="right" data-title="<%= t("views.admin.settings.tabs.email_config") %>">
|
19
|
+
<a href="#email" data-toggle="tab">
|
20
|
+
<i class="fa fa-envelope-o"></i>
|
21
|
+
</a>
|
22
|
+
</li>
|
23
|
+
<% if current_user.username.downcase != 'demo' && Roroacms::Setting.get('demonstration_mode') == 'Y' %>
|
24
|
+
<li class="tooltipState" data-toggle="tooltip" data-placement="right" data-title="<%= t("views.admin.settings.tabs.aws") %>">
|
25
|
+
<a href="#amazon" data-toggle="tab">
|
26
|
+
<i class="fa fa-cloud-upload"></i>
|
27
|
+
</a>
|
28
|
+
</li>
|
29
|
+
<% end %>
|
30
|
+
<li class="tooltipState" data-toggle="tooltip" data-placement="right" data-title="<%= t("generic.comments") %>">
|
31
|
+
<a href="#comment" data-toggle="tab">
|
32
|
+
<i class="fa fa-comments"></i>
|
33
|
+
</a>
|
34
|
+
</li>
|
35
|
+
<li class="tooltipState" data-toggle="tooltip" data-placement="right" data-title="<%= t("views.admin.generic.search_engine_optimisation") %>">
|
36
|
+
<a href="#seo" data-toggle="tab">
|
37
|
+
<i class="fa fa-bar-chart-o"></i>
|
38
|
+
</a>
|
39
|
+
</li>
|
40
|
+
<li class="tooltipState" data-toggle="tooltip" data-placement="right" data-title="<%= t("views.admin.settings.tabs.user_groups") %>">
|
41
|
+
<a href="#user-groups" data-toggle="tab">
|
42
|
+
<i class="fa fa-users"></i>
|
43
|
+
</a>
|
44
|
+
</li>
|
19
45
|
</ul>
|
20
46
|
<div class="tab-content">
|
21
47
|
<%= render :partial => 'roroacms/admin/partials/submit_bar' %>
|
@@ -92,6 +118,14 @@
|
|
92
118
|
</div>
|
93
119
|
<div class="clearfix"></div>
|
94
120
|
</div>
|
121
|
+
<div class="form-group">
|
122
|
+
<%= label_tag(:home_page, t("views.admin.settings.tab_content.home_page"), class: "col-sm-3 control-label") %>
|
123
|
+
<div class="col-sm-6">
|
124
|
+
<%= select_tag :home_page, options_for_select(Roroacms::Post.where(:post_type => 'page').collect {|p| [ p.post_title, p.id ] }, @settings['home_page']), prompt: t("views.admin.generic.select_homepage"), class: 'form-control' %>
|
125
|
+
|
126
|
+
</div>
|
127
|
+
<div class="clearfix"></div>
|
128
|
+
</div>
|
95
129
|
<div class="form-group">
|
96
130
|
<%= label_tag(:breadcrumb_seperator, t("views.admin.settings.tab_content.breadcrumb_seperator"), class: "col-sm-3 control-label") %>
|
97
131
|
<div class="col-sm-6">
|
@@ -101,11 +135,14 @@
|
|
101
135
|
<div class="clearfix"></div>
|
102
136
|
</div>
|
103
137
|
<div class="form-group">
|
104
|
-
<%= label_tag(:
|
138
|
+
<%= label_tag(:demonstration_mode, t("views.admin.settings.tab_content.demonstration_mode"), class: "col-sm-3 control-label") %>
|
105
139
|
<div class="col-sm-6">
|
106
|
-
|
107
|
-
|
140
|
+
<div class="">
|
141
|
+
<%= hidden_field_tag :demonstration_mode, 'N' %>
|
142
|
+
<%= check_box_tag :demonstration_mode, 'Y', @settings['demonstration_mode'] == 'Y' ? true : false %>
|
143
|
+
</div>
|
108
144
|
</div>
|
145
|
+
<div class="clearfix"></div>
|
109
146
|
</div>
|
110
147
|
</div>
|
111
148
|
<div class="tab-pane" id="email">
|
@@ -174,32 +211,42 @@
|
|
174
211
|
|
175
212
|
|
176
213
|
</div>
|
177
|
-
|
178
|
-
<div class="
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
214
|
+
<% if current_user.username.downcase != 'demo' && Roroacms::Setting.get('demonstration_mode') == 'Y' %>
|
215
|
+
<div class="tab-pane" id="amazon">
|
216
|
+
<div class="form-group">
|
217
|
+
<%= label_tag(:aws_access_key_id, t("views.admin.settings.tab_content.aws_access_key_id "), class: "col-sm-3 control-label") %>
|
218
|
+
<div class="col-sm-6">
|
219
|
+
<%= text_field_tag(:aws_access_key_id, @settings['aws_access_key_id'], class: 'form-control') %>
|
220
|
+
<%= setting_errors_for @settings, :aws_access_key_id %>
|
221
|
+
</div>
|
222
|
+
<div class="clearfix"></div>
|
183
223
|
</div>
|
184
|
-
<div class="
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
224
|
+
<div class="form-group">
|
225
|
+
<%= label_tag(:aws_secret_access_key, t("views.admin.settings.tab_content.aws_secret_access_key"), class: "col-sm-3 control-label") %>
|
226
|
+
<div class="col-sm-6">
|
227
|
+
<%= text_field_tag(:aws_secret_access_key, @settings['aws_secret_access_key'], class: 'form-control') %>
|
228
|
+
<%= setting_errors_for @settings, :aws_secret_access_key %>
|
229
|
+
</div>
|
230
|
+
<div class="clearfix"></div>
|
191
231
|
</div>
|
192
|
-
<div class="
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
232
|
+
<div class="form-group">
|
233
|
+
<%= label_tag(:aws_bucket_name, t("views.admin.settings.tab_content.aws_bucket_name"), class: "col-sm-3 control-label") %>
|
234
|
+
<div class="col-sm-6">
|
235
|
+
<%= text_field_tag(:aws_bucket_name, @settings['aws_bucket_name'], class: 'form-control') %>
|
236
|
+
<%= setting_errors_for @settings, :aws_bucket_name %>
|
237
|
+
</div>
|
238
|
+
<div class="clearfix"></div>
|
239
|
+
</div>
|
240
|
+
<div class="form-group">
|
241
|
+
<%= label_tag(:aws_folder, t("views.admin.settings.tab_content.aws_folder"), class: "col-sm-3 control-label") %>
|
242
|
+
<div class="col-sm-6">
|
243
|
+
<%= text_field_tag(:aws_folder, @settings['aws_folder'], class: 'form-control') %>
|
244
|
+
<%= setting_errors_for @settings, :aws_folder %>
|
245
|
+
</div>
|
246
|
+
<div class="clearfix"></div>
|
199
247
|
</div>
|
200
|
-
<div class="clearfix"></div>
|
201
248
|
</div>
|
202
|
-
|
249
|
+
<% end %>
|
203
250
|
<div class="tab-pane" id="comment">
|
204
251
|
<div class="form-group">
|
205
252
|
<%= label_tag(:article_comments, t("views.admin.settings.tab_content.article_comments"), class: "col-sm-3 control-label") %>
|
@@ -23,9 +23,6 @@
|
|
23
23
|
<div class="panel panel-default">
|
24
24
|
<div class="panel-heading">
|
25
25
|
<h3 class="panel-title">Articles in <%= @type.capitalize %></h3>
|
26
|
-
<div class="actions pull-right">
|
27
|
-
<i class="fa fa-chevron-down"></i>
|
28
|
-
</div>
|
29
26
|
</div>
|
30
27
|
<div class="panel-body no-padding">
|
31
28
|
<ul class="list-group">
|
@@ -89,6 +89,14 @@
|
|
89
89
|
</div>
|
90
90
|
<div class="clearfix"></div>
|
91
91
|
</div>
|
92
|
+
<div class="form-group">
|
93
|
+
<%= label_tag(:aws_folder, t("views.admin.settings.tab_content.aws_folder"), class: "col-sm-3 control-label") %>
|
94
|
+
<div class="col-sm-6">
|
95
|
+
<%= text_field_tag(:aws_folder, @settings['aws_folder'], class: 'form-control') %>
|
96
|
+
<%= setting_errors_for @settings, :aws_folder %>
|
97
|
+
</div>
|
98
|
+
<div class="clearfix"></div>
|
99
|
+
</div>
|
92
100
|
|
93
101
|
<div class="form-group">
|
94
102
|
<div class="col-sm-3"> </div>
|
data/config/locales/en.yml
CHANGED
@@ -13,6 +13,7 @@ en:
|
|
13
13
|
two: "Installation - Administrator"
|
14
14
|
theme_issues:
|
15
15
|
title: "Theme Issues"
|
16
|
+
demo_notification: "You are working in demo mode so no CRUD functions will be undertaken"
|
16
17
|
add_new_user: "Add New User"
|
17
18
|
profile: "Profile"
|
18
19
|
users: "Users"
|
@@ -441,6 +442,7 @@ en:
|
|
441
442
|
category_slug: "Category Slug"
|
442
443
|
tag_slug: "Tag Slug"
|
443
444
|
breadcrumb_seperator: "Breadcrumb Seperator"
|
445
|
+
demonstration_mode: "Demonstration Mode"
|
444
446
|
home_page: "Home Page"
|
445
447
|
smtp_username: "Server E-mail Address"
|
446
448
|
smtp_password: "SMTP password"
|
@@ -469,6 +471,7 @@ en:
|
|
469
471
|
aws_access_key_id: "AWS S3 - Access Key ID"
|
470
472
|
aws_secret_access_key: "AWS S3 - Secret Access Key ID"
|
471
473
|
aws_bucket_name: "AWS S3 - Bucket name"
|
474
|
+
aws_folder: "AWS S3 - folder name"
|
472
475
|
url_prefix: "URL prefix"
|
473
476
|
terms:
|
474
477
|
table:
|
data/db/seeds.rb
CHANGED
@@ -36,6 +36,7 @@ Roroacms::Setting.create(:setting_name => 'theme_folder', :type_of_setting => 'T
|
|
36
36
|
Roroacms::Setting.create(:setting_name => 'aws_access_key_id', :type_of_setting => 'AWS')
|
37
37
|
Roroacms::Setting.create(:setting_name => 'aws_secret_access_key', :type_of_setting => 'AWS')
|
38
38
|
Roroacms::Setting.create(:setting_name => 'aws_bucket_name', :type_of_setting => 'AWS')
|
39
|
+
Roroacms::Setting.create(:setting_name => 'aws_folder', :type_of_setting => 'AWS')
|
39
40
|
Roroacms::Setting.create(:setting_name => 'smtp_address', :type_of_setting => 'EMAIL')
|
40
41
|
Roroacms::Setting.create(:setting_name => 'smtp_domain', :type_of_setting => 'EMAIL')
|
41
42
|
Roroacms::Setting.create(:setting_name => 'smtp_port', :type_of_setting => 'EMAIL')
|
@@ -46,6 +47,7 @@ Roroacms::Setting.create(:setting_name => 'setup_complete', :type_of_setting =>
|
|
46
47
|
Roroacms::Setting.create(:setting_name => 'tour_taken', :type_of_setting => 'G', :setting => 'N')
|
47
48
|
Roroacms::Setting.create(:setting_name => 'url_prefix', :type_of_setting => 'G', :setting => 'http://')
|
48
49
|
Roroacms::Setting.create(:setting_name => 'breadcrumb_seperator', :type_of_setting => 'G', :setting => '/')
|
50
|
+
Roroacms::Setting.create(:setting_name => 'demonstration_mode', :type_of_setting => 'G', :setting => 'N')
|
49
51
|
Roroacms::Setting.create(:setting_name => 'user_groups', :type_of_setting => 'G', :setting => '{"admin":["posts","banners","terms","comments","media","menus","pages","revisions","settings","themes","trash","administrators","articles","banners","terms","comments","media","menus","pages","revisions","themes","trash","markdown"]}')
|
50
52
|
|
51
53
|
Roroacms::Post.create(:post_title => 'Sample page', :post_type => 'page', :post_status => 'Published', :post_slug => 'sample', :structured_url => '/sample', :post_date => Time.now.to_s(:db), :admin_id => '1', :post_content => '<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sollicitudin a orci ut tempor. Praesent in diam sagittis ligula sodales iaculis. Suspendisse ante nisi, sagittis quis elementum ac, tempor at nisi. Vestibulum convallis luctus nisi, ac tincidunt velit facilisis at. Duis eget rhoncus mi, sit amet fringilla felis. Pellentesque egestas, nisi ullamcorper venenatis vehicula, ipsum sem congue velit, sit amet molestie orci massa quis sapien. Aliquam in nisl quis augue ultricies interdum. Aenean pretium, lacus et posuere porttitor, velit erat placerat mi, tristique bibendum tellus magna sit amet elit. Donec turpis tellus, elementum nec consequat vel, tempus et turpis. Nunc quis elit volutpat, congue justo ac, sollicitudin diam. Etiam rhoncus nibh at ipsum porttitor mollis.</p>
|
data/lib/roroacms/engine.rb
CHANGED
@@ -58,8 +58,8 @@ module Roroacms
|
|
58
58
|
Rails.application.config.assets.paths << "#{Dir.pwd}/app/assets/stylesheets/roroacms" if Dir.exists?("#{Dir.pwd}/app/assets/stylesheets/roroacms")
|
59
59
|
Rails.application.config.assets.precompile += %w( roroacms/roroacms.js ) if File.exists?("#{Dir.pwd}/app/assets/javascripts/roroacms/roroacms.js")
|
60
60
|
Rails.application.config.assets.precompile += %w( roroacms/roroacms.css ) if File.exists?("#{Dir.pwd}/app/assets/stylesheets/roroacms/roroacms.css")
|
61
|
-
Rails.application.config.assets.precompile +=
|
62
|
-
Rails.application.config.assets.precompile +=
|
61
|
+
Rails.application.config.assets.precompile += ["theme.css", "theme.js", "theme.scss", "theme.coffee"]
|
62
|
+
Rails.application.config.assets.precompile += ["#{Dir.pwd}/app/views/themes/#{Setting.get('theme_folder')}/assets/images/*"]
|
63
63
|
|
64
64
|
end
|
65
65
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roroacms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-08-
|
12
|
+
date: 2014-08-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -286,32 +286,19 @@ dependencies:
|
|
286
286
|
description: A full Rails engine providing content management functionality for any
|
287
287
|
Rails 4 application that is fully extendable and is completely boundless
|
288
288
|
email:
|
289
|
-
-
|
289
|
+
- roroacms@gmail.com
|
290
290
|
executables: []
|
291
291
|
extensions: []
|
292
292
|
extra_rdoc_files: []
|
293
293
|
files:
|
294
|
-
- app/assets/images/roroacms/admin/avatar.gif
|
295
|
-
- app/assets/images/roroacms/admin/avatar.png
|
296
|
-
- app/assets/images/roroacms/admin/avatar1.gif
|
297
|
-
- app/assets/images/roroacms/admin/avatar2.gif
|
298
|
-
- app/assets/images/roroacms/admin/avatar3.gif
|
299
|
-
- app/assets/images/roroacms/admin/avatar4.gif
|
300
|
-
- app/assets/images/roroacms/admin/avatar5.gif
|
301
|
-
- app/assets/images/roroacms/admin/avatar6.gif
|
302
294
|
- app/assets/images/roroacms/admin/chosen-sprite.png
|
303
295
|
- app/assets/images/roroacms/admin/chosen-sprite@2x.png
|
304
|
-
- app/assets/images/roroacms/admin/favicon-old.ico
|
305
296
|
- app/assets/images/roroacms/admin/favicon.ico
|
306
297
|
- app/assets/images/roroacms/admin/grey.png
|
307
298
|
- app/assets/images/roroacms/admin/grey@2x.png
|
308
299
|
- app/assets/images/roroacms/admin/logo.png
|
309
300
|
- app/assets/images/roroacms/admin/roroa-logo.png
|
310
301
|
- app/assets/images/roroacms/admin/roroafull.png
|
311
|
-
- app/assets/images/roroacms/admin/select2.png
|
312
|
-
- app/assets/images/roroacms/admin/Spaceship.gif
|
313
|
-
- app/assets/images/roroacms/admin/spritemap.png
|
314
|
-
- app/assets/images/roroacms/admin/top.png
|
315
302
|
- app/assets/images/roroacms/default-profile.jpg
|
316
303
|
- app/assets/javascripts/roroacms/admin/admin.js
|
317
304
|
- app/assets/javascripts/roroacms/admin/application.js
|
@@ -1042,7 +1029,7 @@ files:
|
|
1042
1029
|
- spec/support/factories.rb
|
1043
1030
|
- spec/support/selectors.rb
|
1044
1031
|
- spec/support/utilities.rb
|
1045
|
-
homepage: http://roroacms.co.uk
|
1032
|
+
homepage: http://www.roroacms.co.uk
|
1046
1033
|
licenses:
|
1047
1034
|
- MIT
|
1048
1035
|
post_install_message:
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|