comfortable_mexican_sofa 1.12.6 → 1.12.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/assets/javascripts/comfy/admin/cms/application.js.coffee +1 -1
- data/app/assets/javascripts/comfy/admin/cms/base.js.coffee +10 -4
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/nb.js +1 -1
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/{pt_BR.js → pt-BR.js} +0 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/uk.js +76 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/{zh_CN.js → zh-CN.js} +0 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/{zh_TW.js → zh-TW.js} +0 -0
- data/app/assets/stylesheets/comfy/admin/cms/base.sass +2 -0
- data/app/controllers/comfy/admin/cms/base_controller.rb +2 -11
- data/app/controllers/concerns/comfy/paginate.rb +13 -0
- data/app/views/comfy/admin/cms/files/_page_form.html.haml +2 -1
- data/app/views/comfy/admin/cms/sites/_form.html.haml +1 -1
- data/config/locales/uk.yml +241 -0
- data/lib/comfortable_mexican_sofa/configuration.rb +13 -12
- data/lib/comfortable_mexican_sofa/render_methods.rb +19 -19
- data/lib/comfortable_mexican_sofa/version.rb +1 -1
- data/test/integration/render_cms_test.rb +26 -25
- metadata +8 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c52b1a77e4bfaf2d30972cfab68c402313e1b890
|
4
|
+
data.tar.gz: 75b8d1e27e366945246919e3ede5fe5298cd7bb4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 660c8208447330360005e76d8cdabd153244ca26df3f39e7072991838e67251efda5f6c203af3bc5cda973fe57d432c9d180ae16b5e55defe39731c3ca989569
|
7
|
+
data.tar.gz: 43cf5358ca68f84839f7da76e917f5b8d0e7ab10603fdb3bd440cd6d19359998b84e7c6ebc2e11f7e1438033d92e2e11806a1cd79d82cb2adb77d9d18bca5890
|
data/README.md
CHANGED
@@ -9,7 +9,7 @@ ComfortableMexicanSofa is a powerful Rails 4 CMS Engine
|
|
9
9
|
* Build your application in Rails, not in CMS
|
10
10
|
* Powerful page templating capability using [Tags](https://github.com/comfy/comfortable-mexican-sofa/wiki/Tags)
|
11
11
|
* [Multiple Sites](https://github.com/comfy/comfortable-mexican-sofa/wiki/Sites) from a single installation
|
12
|
-
* Multi-Language Support (i18n) (cs, da, de, en, es, fr, it, ja, nb, nl, pl, pt-BR, ru, sv, zh-CN, zh-TW)
|
12
|
+
* Multi-Language Support (i18n) (cs, da, de, en, es, fr, it, ja, nb, nl, pl, pt-BR, ru, sv, uk, zh-CN, zh-TW)
|
13
13
|
* [Fixtures](https://github.com/comfy/comfortable-mexican-sofa/wiki/Working-with-CMS-fixtures) for initial content population
|
14
14
|
* [Revision History](https://github.com/comfy/comfortable-mexican-sofa/wiki/Revisions)
|
15
15
|
* [Great extendable admin interface](https://github.com/comfy/comfortable-mexican-sofa/wiki/Reusing-sofa%27s-admin-area) built with [Bootstrap](http://twitter.github.com/bootstrap/), [CodeMirror](http://codemirror.net/) and [Redactor](http://imperavi.com/redactor)
|
@@ -8,8 +8,8 @@
|
|
8
8
|
#= require codemirror/modes/markdown
|
9
9
|
#= require codemirror/modes/xml
|
10
10
|
#= require codemirror/addons/edit/closetag
|
11
|
-
#= require bootstrap
|
12
11
|
#= require bootstrap-sprockets
|
12
|
+
#= require bootstrap
|
13
13
|
#= require comfy/admin/cms/lib/bootstrap-datetimepicker
|
14
14
|
#= require comfy/admin/cms/lib/diff
|
15
15
|
#= require comfy/admin/cms/lib/redactor
|
@@ -7,12 +7,14 @@ $(document).on 'page:load ready', ->
|
|
7
7
|
CMS.init()
|
8
8
|
|
9
9
|
window.CMS.init = ->
|
10
|
+
CMS.set_iframe_layout()
|
10
11
|
CMS.slugify()
|
11
12
|
CMS.wysiwyg()
|
12
13
|
CMS.codemirror()
|
13
14
|
CMS.sortable_list()
|
14
15
|
CMS.timepicker()
|
15
16
|
CMS.page_blocks()
|
17
|
+
CMS.page_file_popovers()
|
16
18
|
CMS.mirrors()
|
17
19
|
CMS.page_update_preview()
|
18
20
|
CMS.page_update_publish()
|
@@ -101,7 +103,14 @@ window.CMS.page_blocks = ->
|
|
101
103
|
CMS.wysiwyg()
|
102
104
|
CMS.timepicker()
|
103
105
|
CMS.codemirror()
|
104
|
-
CMS.
|
106
|
+
CMS.page_file_popovers()
|
107
|
+
|
108
|
+
|
109
|
+
window.CMS.page_file_popovers = ->
|
110
|
+
$('[data-toggle="page-file-popover"]').popover
|
111
|
+
trigger: 'hover'
|
112
|
+
placement: 'top'
|
113
|
+
html: true
|
105
114
|
|
106
115
|
|
107
116
|
window.CMS.mirrors = ->
|
@@ -150,6 +159,3 @@ window.CMS.set_iframe_layout = ->
|
|
150
159
|
$('body').ready ->
|
151
160
|
if in_iframe()
|
152
161
|
$('body').addClass('in-iframe')
|
153
|
-
|
154
|
-
# Triggering this right away to prevent flicker
|
155
|
-
window.CMS.set_iframe_layout()
|
File without changes
|
@@ -0,0 +1,76 @@
|
|
1
|
+
(function ($) {
|
2
|
+
$.Redactor.opts.langs['uk'] = {
|
3
|
+
html: 'Код',
|
4
|
+
video: 'Відео',
|
5
|
+
image: 'Зображення',
|
6
|
+
table: 'Таблиця',
|
7
|
+
link: 'Посилання',
|
8
|
+
link_insert: 'Вставити посилання ...',
|
9
|
+
link_edit: 'Edit link',
|
10
|
+
unlink: 'Видалити посилання',
|
11
|
+
formatting: 'Стилі',
|
12
|
+
paragraph: 'Звичайний текст',
|
13
|
+
quote: 'Цитата',
|
14
|
+
code: 'Код',
|
15
|
+
header1: 'Заголовок 1',
|
16
|
+
header2: 'Заголовок 2',
|
17
|
+
header3: 'Заголовок 3',
|
18
|
+
header4: 'Заголовок 4',
|
19
|
+
header5: 'Заголовок 5',
|
20
|
+
bold: 'Жирний',
|
21
|
+
italic: 'Похилий',
|
22
|
+
fontcolor: 'Колір тексту',
|
23
|
+
backcolor: 'Заливка тексту',
|
24
|
+
unorderedlist: 'Звичайний список',
|
25
|
+
orderedlist: 'Нумерований список',
|
26
|
+
outdent: 'Зменшити відступ',
|
27
|
+
indent: 'Збільшити відступ',
|
28
|
+
cancel: 'Скасувати',
|
29
|
+
insert: 'Вставити',
|
30
|
+
save: 'Зберегти',
|
31
|
+
_delete: 'Видалити',
|
32
|
+
insert_table: 'Вставити таблицю',
|
33
|
+
insert_row_above: 'Додати рядок зверху',
|
34
|
+
insert_row_below: 'Додати рядок знизу',
|
35
|
+
insert_column_left: 'Додати стовпець ліворуч',
|
36
|
+
insert_column_right: 'Додати стовпець праворуч',
|
37
|
+
delete_column: 'Видалити стовпець',
|
38
|
+
delete_row: 'Видалити рядок',
|
39
|
+
delete_table: 'Видалити таблицю',
|
40
|
+
rows: 'Рядки',
|
41
|
+
columns: 'Стовпці',
|
42
|
+
add_head: 'Додати заголовок',
|
43
|
+
delete_head: 'Видалити заголовок',
|
44
|
+
title: 'Підказка',
|
45
|
+
image_view: 'Завантажити зображення',
|
46
|
+
image_position: 'Обтікання текстом',
|
47
|
+
none: 'ні',
|
48
|
+
left: 'ліворуч',
|
49
|
+
right: 'праворуч',
|
50
|
+
image_web_link: 'Посилання на зображення',
|
51
|
+
text: 'Текст',
|
52
|
+
mailto: 'Ел. пошта',
|
53
|
+
web: 'URL',
|
54
|
+
video_html_code: 'Код відео ролика',
|
55
|
+
file: 'Файл',
|
56
|
+
upload: 'Завантажити',
|
57
|
+
download: 'Завантажити',
|
58
|
+
choose: 'Вибрати',
|
59
|
+
or_choose: 'Або виберіть',
|
60
|
+
drop_file_here: 'Перетягніть файл сюди',
|
61
|
+
align_left: 'По лівому краю',
|
62
|
+
align_center: 'По центру',
|
63
|
+
align_right: 'По правому краю',
|
64
|
+
align_justify: 'Вирівняти текст по ширині',
|
65
|
+
horizontalrule: 'Горизонтальная лінійка',
|
66
|
+
fullscreen: 'На весь екран',
|
67
|
+
deleted: 'Закреслений',
|
68
|
+
anchor: 'Anchor',
|
69
|
+
link_new_tab: 'Open link in new tab',
|
70
|
+
underline: 'Underline',
|
71
|
+
alignment: 'Alignment',
|
72
|
+
filename: 'Name (optional)',
|
73
|
+
edit: 'Edit',
|
74
|
+
center: 'Center'
|
75
|
+
};
|
76
|
+
})( jQuery );
|
File without changes
|
File without changes
|
@@ -1,5 +1,7 @@
|
|
1
1
|
class Comfy::Admin::Cms::BaseController < ComfortableMexicanSofa.config.base_controller.to_s.constantize
|
2
2
|
|
3
|
+
include Comfy::Paginate
|
4
|
+
|
3
5
|
# Authentication module must have `authenticate` method
|
4
6
|
include ComfortableMexicanSofa.config.admin_auth.to_s.constantize
|
5
7
|
|
@@ -53,15 +55,4 @@ protected
|
|
53
55
|
flash.now[:danger] = I18n.t('comfy.admin.cms.base.fixtures_enabled')
|
54
56
|
end
|
55
57
|
end
|
56
|
-
|
57
|
-
# Wrapper to deal with WillPaginate vs Kaminari nonsense
|
58
|
-
def comfy_paginate(scope, per_page = 50)
|
59
|
-
if defined?(WillPaginate)
|
60
|
-
scope.paginate(:page => params[:page], :per_page => per_page)
|
61
|
-
elsif defined?(Kaminari)
|
62
|
-
scope.page(params[:page]).per(per_page)
|
63
|
-
else
|
64
|
-
scope
|
65
|
-
end
|
66
|
-
end
|
67
58
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Comfy::Paginate
|
2
|
+
|
3
|
+
# Wrapper to deal with WillPaginate vs Kaminari nonsense
|
4
|
+
def comfy_paginate(scope, per_page = 50)
|
5
|
+
if defined?(WillPaginate)
|
6
|
+
scope.paginate(:page => params[:page], :per_page => per_page)
|
7
|
+
elsif defined?(Kaminari)
|
8
|
+
scope.page(params[:page]).per(per_page)
|
9
|
+
else
|
10
|
+
scope
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -3,7 +3,8 @@
|
|
3
3
|
- if (files = block.files).present?
|
4
4
|
.files
|
5
5
|
- files.each do |file|
|
6
|
-
.file
|
6
|
+
- file_thumb = image_tag(file.file.url(:cms_thumb)) if file.is_image?
|
7
|
+
.file{:id => dom_id(file), :data => {:toggle => 'page-file-popover', :content => file_thumb}}
|
7
8
|
= link_to file.file_file_name, file.file.url, :target => '_blank'
|
8
9
|
= link_to comfy_admin_cms_site_file_path(@site, file), :method => :delete, :remote => true, :data => {:confirm => t('.are_you_sure')}, :class => 'delete' do
|
9
10
|
%i.glyphicon.glyphicon-remove-circle
|
@@ -4,7 +4,7 @@
|
|
4
4
|
= form.text_field :identifier, :data => {:slug => true}
|
5
5
|
= form.text_field :hostname
|
6
6
|
= form.text_field :path
|
7
|
-
= form.select :locale, ComfortableMexicanSofa.config.locales.to_a.collect{|l| [l[1], l[0]]}
|
7
|
+
= form.select :locale, ComfortableMexicanSofa.config.locales.to_a.collect{|l| ["#{l[1]} (#{l[0]})", l[0]]}
|
8
8
|
= form.form_group do
|
9
9
|
= form.check_box :is_mirrored, :label => t('.is_mirrored')
|
10
10
|
|
@@ -0,0 +1,241 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
uk:
|
3
|
+
attributes:
|
4
|
+
label: Label
|
5
|
+
slug: Посилання
|
6
|
+
parent_id: Parent
|
7
|
+
content: Зміст
|
8
|
+
identifier: Ідентифікатор
|
9
|
+
full_path: Повний Шлях
|
10
|
+
activerecord:
|
11
|
+
models:
|
12
|
+
comfy/cms/site: Сайт
|
13
|
+
comfy/cms/layout: Шаблон
|
14
|
+
comfy/cms/page: Сторінка
|
15
|
+
comfy/cms/snippet: Сніппет
|
16
|
+
comfy/cms/file: Файл
|
17
|
+
attributes:
|
18
|
+
comfy/cms/site:
|
19
|
+
identifier: Ідентифікатор
|
20
|
+
hostname: Ім'я хоста
|
21
|
+
path: Шлях
|
22
|
+
locale: Мова
|
23
|
+
is_mirrored: Синхронізований з іншими сайтами
|
24
|
+
comfy/cms/layout:
|
25
|
+
identifier: Ідентифікатор
|
26
|
+
label: Назва шаблону
|
27
|
+
app_layout: Шаблон додатку
|
28
|
+
parent_id: Батьківскький шаблон
|
29
|
+
css: CSS
|
30
|
+
js: Javascript
|
31
|
+
comfy/cms/page:
|
32
|
+
label: Назва
|
33
|
+
layout_id: Шаблон
|
34
|
+
slug: Посилання
|
35
|
+
target_page_id: Редірект на сторінку
|
36
|
+
is_published: Опублікована
|
37
|
+
comfy/cms/file:
|
38
|
+
file: Файл
|
39
|
+
description: Опис
|
40
|
+
comfy/cms/snippet:
|
41
|
+
identifier: Ідентифікатор
|
42
|
+
|
43
|
+
comfy:
|
44
|
+
cms:
|
45
|
+
content:
|
46
|
+
site_not_found: Сайт не знайдено
|
47
|
+
layout_not_found: Шаблон не знайдено
|
48
|
+
page_not_found: Сторінку не знайдено
|
49
|
+
|
50
|
+
admin:
|
51
|
+
cms:
|
52
|
+
base:
|
53
|
+
site_not_found: Сайт не знайдено
|
54
|
+
fixtures_enabled: CMS Fixtures ввімкнені. Всі зміни, зроблені тут, будуть скасовані.
|
55
|
+
|
56
|
+
sites: Сайти
|
57
|
+
layouts: Шаблони
|
58
|
+
pages: Сторінки
|
59
|
+
snippets: Сніппети
|
60
|
+
files: Файли
|
61
|
+
|
62
|
+
sites:
|
63
|
+
created: Сайт створено
|
64
|
+
creation_failure: Не вийшло створити сайт
|
65
|
+
updated: Сайт оновлено
|
66
|
+
update_failure: Не вдалося оновити сайт
|
67
|
+
deleted: Сайт видалено
|
68
|
+
not_found: Сайт не знайдено
|
69
|
+
|
70
|
+
index:
|
71
|
+
title: Сайти
|
72
|
+
new_link: Створити новий сайт
|
73
|
+
select: Обрати сайт
|
74
|
+
edit: Редагувати
|
75
|
+
delete: Видалити
|
76
|
+
are_you_sure: Ви впевнені що хочете видалити цей сайт?
|
77
|
+
new:
|
78
|
+
title: Новий сайт
|
79
|
+
edit:
|
80
|
+
title: Редагувати сайт
|
81
|
+
form:
|
82
|
+
create: Створити сайт
|
83
|
+
cancel: Cкасувати
|
84
|
+
update: Оновити сайт
|
85
|
+
is_mirrored: Синхронізований
|
86
|
+
|
87
|
+
layouts:
|
88
|
+
created: Шаблон створено
|
89
|
+
creation_failure: Не вдалося створити шаблон
|
90
|
+
updated: Шаблон оновлено
|
91
|
+
update_failure: Не вдалося оновити шаблон
|
92
|
+
deleted: Шаблон видалено
|
93
|
+
not_found: Шаблон не знайдено
|
94
|
+
|
95
|
+
index:
|
96
|
+
title: Шаблони
|
97
|
+
new_link: Створити новий шаблон
|
98
|
+
index_branch:
|
99
|
+
add_child_layout: Додати дочірній шаблон
|
100
|
+
edit: Редагувати
|
101
|
+
delete: Видалити
|
102
|
+
are_you_sure: Ви впевнені?
|
103
|
+
new:
|
104
|
+
title: Новий шаблон
|
105
|
+
edit:
|
106
|
+
title: Редагувати шаблон
|
107
|
+
revision: &revision
|
108
|
+
zero: Нeмa Ревізій
|
109
|
+
one: '%{count} Ревізія'
|
110
|
+
few: '%{count} Ревізій'
|
111
|
+
many: '%{count} Ревізій'
|
112
|
+
other: '%{count} Ревізій'
|
113
|
+
form:
|
114
|
+
select_parent_layout: Вибрати батьківский шаблон
|
115
|
+
select_app_layout: Вибрати шаблон додатку
|
116
|
+
create: Створити шаблон
|
117
|
+
cancel: Cкасувати
|
118
|
+
update: Оновити шаблон
|
119
|
+
|
120
|
+
pages:
|
121
|
+
created: Сторінка створена
|
122
|
+
creation_failure: Не вийшло створити сторінку
|
123
|
+
updated: Сторінку оновлено
|
124
|
+
update_failure: Не вийшло оновити сторінку
|
125
|
+
deleted: Сторінка видалена
|
126
|
+
not_found: Сторінку не знайдено
|
127
|
+
layout_not_found: Жодного шаблону не знайдено
|
128
|
+
|
129
|
+
index:
|
130
|
+
title: Сторінки
|
131
|
+
new_link: Створити нову сторінку
|
132
|
+
index_branch:
|
133
|
+
toggle: Перемикач
|
134
|
+
add_child_page: Додати дочірню сторінку
|
135
|
+
edit: Редагувати
|
136
|
+
delete: Видалити
|
137
|
+
are_you_sure: Ви впевнені?
|
138
|
+
new:
|
139
|
+
title: Нова сторінка
|
140
|
+
edit:
|
141
|
+
title: Редагування сторінки
|
142
|
+
revision:
|
143
|
+
<<: *revision
|
144
|
+
form:
|
145
|
+
select_target_page: Без редіректу
|
146
|
+
preview: Передперегляд
|
147
|
+
create: Створити сторінку
|
148
|
+
cancel: Cкасувати
|
149
|
+
update: Оновити сторінку
|
150
|
+
is_published: Опублікована
|
151
|
+
form_blocks:
|
152
|
+
no_tags: |-
|
153
|
+
Шаблон не містить жодного контент-тега. <br/>
|
154
|
+
Відредагуйте контент, вставивши тег сторінки або поля. Наприклад: <code>{{cms:page:content}}</code>
|
155
|
+
|
156
|
+
snippets:
|
157
|
+
created: Сніппет створено
|
158
|
+
creation_failure: Не вдалося створити сніппет
|
159
|
+
updated: Сніппет оновлено
|
160
|
+
update_failure: Не вдалося оновити сніппет
|
161
|
+
deleted: Сніппет видалено
|
162
|
+
not_found: Сніппет не знайдено
|
163
|
+
|
164
|
+
index:
|
165
|
+
title: Сніппети
|
166
|
+
new_link: Створити новий сніппет
|
167
|
+
edit: Редагувати
|
168
|
+
delete: Видалити
|
169
|
+
are_you_sure: Ви впевнені?
|
170
|
+
new:
|
171
|
+
title: Новий сніппет
|
172
|
+
edit:
|
173
|
+
title: Редагувати сніппет
|
174
|
+
revision:
|
175
|
+
<<: *revision
|
176
|
+
form:
|
177
|
+
create: Створити сніппет
|
178
|
+
cancel: Cкасувати
|
179
|
+
update: Оновити сніппет
|
180
|
+
|
181
|
+
revisions:
|
182
|
+
reverted: Контент повернутий до попереднього стану
|
183
|
+
record_not_found: Запису не знайдено
|
184
|
+
not_found: Ревізії не знайдено
|
185
|
+
|
186
|
+
show:
|
187
|
+
title: Ревізія для
|
188
|
+
revision: Ревізія
|
189
|
+
full_path: Повний Шлях
|
190
|
+
slug: Посилання
|
191
|
+
update: Оновити до цієї ревізії
|
192
|
+
content: Зміст
|
193
|
+
changes: Зміни
|
194
|
+
previous: Попередній
|
195
|
+
current: Поточний
|
196
|
+
|
197
|
+
files:
|
198
|
+
created: Файли завантажені
|
199
|
+
creation_failure: Не вдалося завантажити файли
|
200
|
+
updated: Файл оновлено
|
201
|
+
update_failure: Не вдалося оновити файл
|
202
|
+
deleted: Файл видалено
|
203
|
+
not_found: Файл не знайдено
|
204
|
+
|
205
|
+
index:
|
206
|
+
title: Файли
|
207
|
+
new_link: Завантажити новий файл
|
208
|
+
edit: Редагувати
|
209
|
+
delete: Видалити
|
210
|
+
are_you_sure: Ви впевнені?
|
211
|
+
button: Завантажити файли
|
212
|
+
new:
|
213
|
+
title: Новий файл
|
214
|
+
edit:
|
215
|
+
title: Редагувати файл
|
216
|
+
form:
|
217
|
+
current_file: Поочний файл
|
218
|
+
create: Оновити файл
|
219
|
+
cancel: Cкасувати
|
220
|
+
update: Оновити файл
|
221
|
+
delete: Видалити
|
222
|
+
are_you_sure: Ви впевнені?
|
223
|
+
page_form:
|
224
|
+
are_you_sure: Ви впевнені?
|
225
|
+
file:
|
226
|
+
are_you_sure: Ви впевнені?
|
227
|
+
|
228
|
+
categories:
|
229
|
+
index:
|
230
|
+
label: Категорії
|
231
|
+
edit: Редагувати
|
232
|
+
done: Зроблено
|
233
|
+
all: Всі
|
234
|
+
add: Додати
|
235
|
+
add_placeholder: Додати Категорію
|
236
|
+
show:
|
237
|
+
are_you_sure: Ви впевнені?
|
238
|
+
edit:
|
239
|
+
save: Save
|
240
|
+
form:
|
241
|
+
label: Зберегти
|
@@ -90,22 +90,23 @@ class ComfortableMexicanSofa::Configuration
|
|
90
90
|
@fixtures_path = File.expand_path('db/cms_fixtures', Rails.root)
|
91
91
|
@revisions_limit = 25
|
92
92
|
@locales = {
|
93
|
+
'cs' => 'Česky',
|
94
|
+
'da' => 'Dansk',
|
95
|
+
'de' => 'Deutsch',
|
93
96
|
'en' => 'English',
|
94
|
-
'fr' => 'Français',
|
95
97
|
'es' => 'Español',
|
96
|
-
'
|
97
|
-
'
|
98
|
-
'zh-TW' => '正體中文',
|
98
|
+
'fr' => 'Français',
|
99
|
+
'it' => 'Italiano',
|
99
100
|
'ja' => '日本語',
|
100
|
-
'
|
101
|
-
'ru' => 'Русский',
|
102
|
-
'pl' => 'Polski',
|
103
|
-
'de' => 'Deutsch',
|
101
|
+
'nb' => 'Norsk',
|
104
102
|
'nl' => 'Nederlands',
|
105
|
-
'
|
106
|
-
'
|
107
|
-
'
|
108
|
-
'
|
103
|
+
'pl' => 'Polski',
|
104
|
+
'pt-BR' => 'Português Brasileiro',
|
105
|
+
'ru' => 'Русский',
|
106
|
+
'sv' => 'Svenska',
|
107
|
+
'uk' => 'Українська',
|
108
|
+
'zh-CN' => '简体中文',
|
109
|
+
'zh-TW' => '正體中文'
|
109
110
|
}
|
110
111
|
@admin_locale = nil
|
111
112
|
@admin_cache_sweeper = nil
|
@@ -1,25 +1,25 @@
|
|
1
1
|
module ComfortableMexicanSofa::RenderMethods
|
2
|
-
|
2
|
+
|
3
3
|
def self.included(base)
|
4
|
-
|
4
|
+
|
5
5
|
# If application controller doesn't have template associated with it
|
6
6
|
# CMS will attempt to find one. This is so you don't have to explicitly
|
7
7
|
# call render :cms_page => '/something'
|
8
8
|
base.rescue_from 'ActionView::MissingTemplate' do |e|
|
9
9
|
begin
|
10
10
|
render :cms_page => request.path
|
11
|
-
rescue ComfortableMexicanSofa::MissingPage
|
11
|
+
rescue ComfortableMexicanSofa::MissingPage, ComfortableMexicanSofa::MissingSite
|
12
12
|
raise e
|
13
13
|
end
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
# Now you can render cms_page simply by calling:
|
17
17
|
# render :cms_page => '/path/to/page'
|
18
18
|
# This way application controllers can use CMS content while populating
|
19
19
|
# instance variables that can be used in partials (that are included by
|
20
20
|
# by the cms page and/or layout)
|
21
21
|
#
|
22
|
-
# Or how about not worrying about setting up CMS pages and rendering
|
22
|
+
# Or how about not worrying about setting up CMS pages and rendering
|
23
23
|
# application view using a CMS layout?
|
24
24
|
# render :cms_layout => 'layout_slug', :cms_blocks => {
|
25
25
|
# :block_label_a => 'content text',
|
@@ -33,23 +33,23 @@ module ComfortableMexicanSofa::RenderMethods
|
|
33
33
|
# Site is loaded automatically based on the request. However you can force
|
34
34
|
# it by passing :cms_site parameter with site's slug. For example:
|
35
35
|
# render :cms_page => '/path/to/page', :cms_site => 'default'
|
36
|
-
#
|
36
|
+
#
|
37
37
|
def render(options = {}, locals = {}, &block)
|
38
|
-
|
38
|
+
|
39
39
|
return super unless options.is_a?(Hash)
|
40
|
-
|
40
|
+
|
41
41
|
if site_identifier = options.delete(:cms_site)
|
42
42
|
unless @cms_site = Comfy::Cms::Site.find_by_identifier(site_identifier)
|
43
43
|
raise ComfortableMexicanSofa::MissingSite.new(site_identifier)
|
44
44
|
end
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
if (page_path = options.delete(:cms_page)) || (layout_identifier = options.delete(:cms_layout))
|
48
48
|
unless @cms_site ||= Comfy::Cms::Site.find_site(request.host.downcase, request.fullpath)
|
49
49
|
raise ComfortableMexicanSofa::MissingSite.new("#{request.host.downcase}/#{request.fullpath}")
|
50
50
|
end
|
51
51
|
end
|
52
|
-
|
52
|
+
|
53
53
|
if page_path
|
54
54
|
render_cms_page(page_path, options, locals, &block)
|
55
55
|
elsif layout_identifier
|
@@ -58,14 +58,14 @@ module ComfortableMexicanSofa::RenderMethods
|
|
58
58
|
super
|
59
59
|
end
|
60
60
|
end
|
61
|
-
|
61
|
+
|
62
62
|
def render_cms_page(path, options = {}, locals = {}, &block)
|
63
63
|
path.gsub!(/^\/#{@cms_site.path}/, '') if @cms_site.path.present?
|
64
|
-
|
64
|
+
|
65
65
|
unless @cms_page = @cms_site.pages.find_by_full_path(path)
|
66
66
|
raise ComfortableMexicanSofa::MissingPage.new(path)
|
67
67
|
end
|
68
|
-
|
68
|
+
|
69
69
|
@cms_layout = @cms_page.layout
|
70
70
|
if (cms_blocks = options.delete(:cms_blocks)).present?
|
71
71
|
cms_blocks.each do |identifier, value|
|
@@ -78,16 +78,16 @@ module ComfortableMexicanSofa::RenderMethods
|
|
78
78
|
cms_app_layout = @cms_layout.app_layout
|
79
79
|
options[:layout] ||= cms_app_layout.blank?? nil : cms_app_layout
|
80
80
|
options[:inline] = @cms_page.render
|
81
|
-
|
81
|
+
|
82
82
|
render(options, locals, &block)
|
83
83
|
end
|
84
|
-
|
84
|
+
|
85
85
|
def render_cms_layout(identifier, options = {}, locals = {}, &block)
|
86
|
-
|
86
|
+
|
87
87
|
unless @cms_layout = @cms_site.layouts.find_by_identifier(identifier)
|
88
88
|
raise ComfortableMexicanSofa::MissingLayout.new(identifier)
|
89
89
|
end
|
90
|
-
|
90
|
+
|
91
91
|
cms_app_layout = @cms_layout.app_layout
|
92
92
|
cms_page = @cms_site.pages.build(:layout => @cms_layout)
|
93
93
|
cms_blocks = options.delete(:cms_blocks) || { :content => render_to_string({ :layout => false }.merge(options)) }
|
@@ -97,10 +97,10 @@ module ComfortableMexicanSofa::RenderMethods
|
|
97
97
|
end
|
98
98
|
options[:layout] ||= cms_app_layout.blank?? nil : cms_app_layout
|
99
99
|
options[:inline] = cms_page.render
|
100
|
-
|
100
|
+
|
101
101
|
render(options, locals, &block)
|
102
102
|
end
|
103
|
-
|
103
|
+
|
104
104
|
end
|
105
105
|
end
|
106
106
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require_relative '../test_helper'
|
2
2
|
|
3
3
|
class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
|
4
|
-
|
4
|
+
|
5
5
|
def setup
|
6
6
|
super
|
7
7
|
Rails.application.routes.draw do
|
@@ -15,11 +15,11 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
|
|
15
15
|
{ :identifier => 'content', :content => 'TestBlockContent' }
|
16
16
|
])
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
def teardown
|
20
20
|
Rails.application.reload_routes!
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
def create_site_b
|
24
24
|
site = Comfy::Cms::Site.create!(
|
25
25
|
:identifier => 'site-b',
|
@@ -32,23 +32,23 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
|
|
32
32
|
:layout => layout,
|
33
33
|
:blocks_attributes => [{ :identifier => 'content', :content => 'SiteBContent' }])
|
34
34
|
end
|
35
|
-
|
35
|
+
|
36
36
|
class ::RenderTestController < ApplicationController
|
37
37
|
append_view_path(File.expand_path('../fixtures/views', File.dirname(__FILE__)))
|
38
|
-
|
38
|
+
|
39
39
|
def render_basic
|
40
40
|
case params[:type]
|
41
41
|
when 'text'
|
42
42
|
render :text => 'TestText'
|
43
43
|
when 'update'
|
44
|
-
render :update do |page|
|
44
|
+
render :update do |page|
|
45
45
|
page.alert('rendered text')
|
46
46
|
end
|
47
47
|
else
|
48
48
|
render
|
49
49
|
end
|
50
50
|
end
|
51
|
-
|
51
|
+
|
52
52
|
def render_page
|
53
53
|
case params[:type]
|
54
54
|
when 'page_implicit'
|
@@ -67,7 +67,7 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
|
|
67
67
|
raise 'Invalid or no param[:type] provided'
|
68
68
|
end
|
69
69
|
end
|
70
|
-
|
70
|
+
|
71
71
|
def render_layout
|
72
72
|
@test_value = 'TestValue'
|
73
73
|
case params[:type]
|
@@ -95,20 +95,21 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
|
|
95
95
|
def new
|
96
96
|
end
|
97
97
|
end
|
98
|
-
|
98
|
+
|
99
99
|
# -- Basic Render Tests ---------------------------------------------------
|
100
100
|
def test_text
|
101
101
|
get '/render-basic?type=text'
|
102
102
|
assert_response :success
|
103
103
|
assert_equal 'TestText', response.body
|
104
104
|
end
|
105
|
-
|
105
|
+
|
106
106
|
def test_implicit_cms_page_failure
|
107
|
+
Comfy::Cms::Site.destroy_all
|
107
108
|
assert_exception_raised ActionView::MissingTemplate do
|
108
109
|
get '/render-basic'
|
109
110
|
end
|
110
111
|
end
|
111
|
-
|
112
|
+
|
112
113
|
# -- Page Render Test -----------------------------------------------------
|
113
114
|
def test_implicit_cms_page
|
114
115
|
page = comfy_cms_pages(:child)
|
@@ -121,7 +122,7 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
|
|
121
122
|
assert_equal page, assigns(:cms_page)
|
122
123
|
assert_equal 'TestBlockContent', response.body
|
123
124
|
end
|
124
|
-
|
125
|
+
|
125
126
|
def test_implicit_cms_page_with_site_path
|
126
127
|
comfy_cms_sites(:default).update_column(:path, 'site-path')
|
127
128
|
comfy_cms_pages(:child).update_attributes(:slug => 'render-page')
|
@@ -129,7 +130,7 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
|
|
129
130
|
assert_response :success
|
130
131
|
assert_equal 'TestBlockContent', response.body
|
131
132
|
end
|
132
|
-
|
133
|
+
|
133
134
|
def test_explicit_cms_page
|
134
135
|
page = comfy_cms_pages(:child)
|
135
136
|
page.update_attributes(slug: 'test-page')
|
@@ -141,7 +142,7 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
|
|
141
142
|
assert_equal page, assigns(:cms_page)
|
142
143
|
assert_equal 'TestBlockContent', response.body
|
143
144
|
end
|
144
|
-
|
145
|
+
|
145
146
|
def test_explicit_cms_page_with_status
|
146
147
|
page = comfy_cms_pages(:child)
|
147
148
|
page.update_attributes(:slug => 'test-page')
|
@@ -153,7 +154,7 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
|
|
153
154
|
assert_equal page, assigns(:cms_page)
|
154
155
|
assert_equal 'TestBlockContent', response.body
|
155
156
|
end
|
156
|
-
|
157
|
+
|
157
158
|
def test_explicit_cms_page_failure
|
158
159
|
page = comfy_cms_pages(:child)
|
159
160
|
page.update_attributes(:slug => 'invalid')
|
@@ -162,7 +163,7 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
|
|
162
163
|
raise Rails.env.to_s
|
163
164
|
end
|
164
165
|
end
|
165
|
-
|
166
|
+
|
166
167
|
def test_explicit_with_site
|
167
168
|
create_site_b
|
168
169
|
get '/render-page?type=page_explicit_with_site'
|
@@ -171,13 +172,13 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
|
|
171
172
|
assert_equal 'site-b', assigns(:cms_site).identifier
|
172
173
|
assert_equal 'site-b SiteBContent', response.body
|
173
174
|
end
|
174
|
-
|
175
|
+
|
175
176
|
def test_explicit_with_site_failure
|
176
177
|
assert_exception_raised ComfortableMexicanSofa::MissingSite do
|
177
178
|
get '/render-page?type=page_explicit_with_site'
|
178
179
|
end
|
179
180
|
end
|
180
|
-
|
181
|
+
|
181
182
|
def test_explicit_with_page_blocks
|
182
183
|
page = comfy_cms_pages(:child)
|
183
184
|
page.update_attributes(slug: 'test-page')
|
@@ -185,7 +186,7 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
|
|
185
186
|
assert_response :success
|
186
187
|
assert_equal 'custom page content', response.body
|
187
188
|
end
|
188
|
-
|
189
|
+
|
189
190
|
# -- Layout Render Tests --------------------------------------------------
|
190
191
|
def test_cms_layout_defaults
|
191
192
|
get '/render-layout?type=layout_defaults'
|
@@ -195,7 +196,7 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
|
|
195
196
|
assert assigns(:cms_layout)
|
196
197
|
assert_equal comfy_cms_layouts(:default), assigns(:cms_layout)
|
197
198
|
end
|
198
|
-
|
199
|
+
|
199
200
|
def test_cms_layout
|
200
201
|
comfy_cms_layouts(:default).update_columns(:content => '{{cms:page:content}} {{cms:page:content_b}} {{cms:page:content_c}}')
|
201
202
|
get '/render-layout?type=layout'
|
@@ -205,7 +206,7 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
|
|
205
206
|
assert assigns(:cms_layout)
|
206
207
|
assert_equal comfy_cms_layouts(:default), assigns(:cms_layout)
|
207
208
|
end
|
208
|
-
|
209
|
+
|
209
210
|
def test_cms_layout_with_status
|
210
211
|
get '/render-layout?type=layout_with_status'
|
211
212
|
assert_response 404
|
@@ -224,13 +225,13 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
|
|
224
225
|
assert assigns(:cms_layout)
|
225
226
|
assert_equal comfy_cms_layouts(:default), assigns(:cms_layout)
|
226
227
|
end
|
227
|
-
|
228
|
+
|
228
229
|
def test_cms_layout_failure
|
229
230
|
assert_exception_raised ComfortableMexicanSofa::MissingLayout do
|
230
231
|
get '/render-layout?type=layout_invalid'
|
231
232
|
end
|
232
233
|
end
|
233
|
-
|
234
|
+
|
234
235
|
def test_cms_layout_defaults_with_site
|
235
236
|
create_site_b
|
236
237
|
get '/render-layout?type=layout_defaults_with_site'
|
@@ -239,11 +240,11 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
|
|
239
240
|
assert_equal 'site-b', assigns(:cms_site).identifier
|
240
241
|
assert_equal 'site-b TestTemplate TestValue', response.body
|
241
242
|
end
|
242
|
-
|
243
|
+
|
243
244
|
def test_cms_layout_defaults_with_site_failure
|
244
245
|
assert_exception_raised ComfortableMexicanSofa::MissingSite do
|
245
246
|
get '/render-layout?type=layout_defaults_with_site'
|
246
247
|
end
|
247
248
|
end
|
248
|
-
|
249
|
+
|
249
250
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: comfortable_mexican_sofa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.12.
|
4
|
+
version: 1.12.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oleg Khabarov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -256,11 +256,12 @@ files:
|
|
256
256
|
- app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/nb.js
|
257
257
|
- app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/nl.js
|
258
258
|
- app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/pl.js
|
259
|
-
- app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/
|
259
|
+
- app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/pt-BR.js
|
260
260
|
- app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/ru.js
|
261
261
|
- app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/sv.js
|
262
|
-
- app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/
|
263
|
-
- app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/
|
262
|
+
- app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/uk.js
|
263
|
+
- app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/zh-CN.js
|
264
|
+
- app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/zh-TW.js
|
264
265
|
- app/assets/javascripts/comfy/admin/cms/lib/redactor/imagemanager.js
|
265
266
|
- app/assets/javascripts/comfy/admin/cms/lib/redactor/table.js
|
266
267
|
- app/assets/javascripts/comfy/admin/cms/lib/redactor/video.js
|
@@ -285,6 +286,7 @@ files:
|
|
285
286
|
- app/controllers/comfy/cms/assets_controller.rb
|
286
287
|
- app/controllers/comfy/cms/base_controller.rb
|
287
288
|
- app/controllers/comfy/cms/content_controller.rb
|
289
|
+
- app/controllers/concerns/comfy/paginate.rb
|
288
290
|
- app/helpers/comfy/cms_helper.rb
|
289
291
|
- app/models/comfy/cms/block.rb
|
290
292
|
- app/models/comfy/cms/categorization.rb
|
@@ -407,6 +409,7 @@ files:
|
|
407
409
|
- config/locales/pt-BR.yml
|
408
410
|
- config/locales/ru.yml
|
409
411
|
- config/locales/sv.yml
|
412
|
+
- config/locales/uk.yml
|
410
413
|
- config/locales/zh-CN.yml
|
411
414
|
- config/locales/zh-TW.yml
|
412
415
|
- db/cms_fixtures/sample-site/categories/files.yml
|