alchemy_cms 2.4.beta2 → 2.4.rc1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -1
- data/.travis.yml +3 -1
- data/.yardopts +1 -1
- data/Gemfile +2 -1
- data/alchemy_cms.gemspec +18 -17
- data/app/assets/images/alchemy/ajax_loader.gif +0 -0
- data/app/assets/images/alchemy/alchemy-logo.png +0 -0
- data/app/assets/images/alchemy/icons.png +0 -0
- data/app/assets/images/alchemy/image_loader.gif +0 -0
- data/app/assets/images/alchemy/placeholder.png +0 -0
- data/app/assets/images/alchemy/shading.png +0 -0
- data/app/assets/images/alchemy/swfupload/browse_button.png +0 -0
- data/app/assets/images/alchemy/tabs.gif +0 -0
- data/app/assets/images/alchemy/ui-icons_666666_256x240.png +0 -0
- data/app/assets/images/sassy-ie-overlay.png +0 -0
- data/app/assets/javascripts/alchemy/alchemy.base.js +1 -3
- data/app/assets/javascripts/alchemy/alchemy.browser.js.coffee +28 -0
- data/app/assets/javascripts/alchemy/alchemy.jquery_loader.js +2 -2
- data/app/assets/javascripts/alchemy/alchemy.js +2 -0
- data/app/assets/javascripts/alchemy/alchemy.link_overlay.js.coffee +79 -47
- data/app/assets/javascripts/alchemy/alchemy.menubar.js +12 -4
- data/app/assets/javascripts/alchemy/alchemy.onload.js.coffee +1 -1
- data/app/assets/javascripts/alchemy/alchemy.preview.js.coffee +103 -0
- data/app/assets/javascripts/alchemy/alchemy.swf_upload.js +1 -1
- data/app/assets/javascripts/alchemy/alchemy.uploader.js +4 -6
- data/app/assets/javascripts/alchemy/preview.js +1 -0
- data/app/assets/stylesheets/alchemy/admin.css.scss +25 -0
- data/app/assets/stylesheets/alchemy/{archive.css.scss → archive.scss} +0 -2
- data/app/assets/stylesheets/alchemy/{base.css.scss → base.scss} +1 -57
- data/app/assets/stylesheets/alchemy/{custom.css → custom.scss} +0 -0
- data/app/assets/stylesheets/alchemy/{dashboard.css.scss → dashboard.scss} +0 -2
- data/app/assets/stylesheets/alchemy/defaults.scss +5 -0
- data/app/assets/stylesheets/alchemy/{elements.css.scss → elements.scss} +24 -37
- data/app/assets/stylesheets/alchemy/{errors.css.scss → errors.scss} +0 -2
- data/app/assets/stylesheets/alchemy/{flash.css.scss → flash.scss} +0 -2
- data/app/assets/stylesheets/alchemy/{form_elements.css.scss → form_elements.scss} +39 -12
- data/app/assets/stylesheets/alchemy/{frame.css.scss → frame.scss} +0 -2
- data/app/assets/stylesheets/alchemy/{icons.css.scss → icons.scss} +20 -2
- data/app/assets/stylesheets/alchemy/{jquery-ui.alchemy.css.scss → jquery-ui.scss} +6 -3
- data/app/assets/stylesheets/alchemy/{login.css.scss → login.scss} +3 -3
- data/app/assets/stylesheets/alchemy/menubar.css.scss +0 -1
- data/app/assets/stylesheets/alchemy/{_defaults.scss → mixins.scss} +2 -39
- data/app/assets/stylesheets/alchemy/{modules.css.scss → modules.scss} +4 -2
- data/app/assets/stylesheets/alchemy/notices.scss +51 -0
- data/app/assets/stylesheets/alchemy/{pagination.css.scss → pagination.scss} +0 -2
- data/app/assets/stylesheets/alchemy/{print.css → print.css.scss} +3 -3
- data/app/assets/stylesheets/alchemy/search.scss +63 -0
- data/app/assets/stylesheets/alchemy/{sitemap.css.scss → sitemap.scss} +1 -2
- data/app/assets/stylesheets/alchemy/{tables.css.scss → tables.scss} +16 -3
- data/app/assets/stylesheets/alchemy/tinymce_content.css.scss +3 -0
- data/app/assets/stylesheets/alchemy/tinymce_dialog.css.scss +3 -0
- data/app/assets/stylesheets/alchemy/{upload.css.scss → upload.scss} +0 -2
- data/app/assets/stylesheets/alchemy/variables.scss +33 -0
- data/app/controllers/alchemy/admin/elements_controller.rb +1 -2
- data/app/controllers/alchemy/admin/tags_controller.rb +64 -0
- data/app/controllers/alchemy/base_controller.rb +8 -23
- data/app/controllers/alchemy/pages_controller.rb +5 -18
- data/app/helpers/alchemy/admin/base_helper.rb +1 -1
- data/app/helpers/alchemy/admin/elements_helper.rb +1 -0
- data/app/helpers/alchemy/elements_block_helper.rb +162 -0
- data/app/helpers/alchemy/elements_helper.rb +41 -3
- data/app/helpers/alchemy/pages_helper.rb +2 -1
- data/app/models/alchemy/attachment.rb +2 -1
- data/app/models/alchemy/element.rb +13 -10
- data/app/models/alchemy/essence_link.rb +11 -0
- data/app/models/alchemy/essence_picture.rb +15 -4
- data/app/models/alchemy/page.rb +23 -25
- data/app/models/alchemy/picture.rb +2 -2
- data/app/models/alchemy/tag.rb +16 -0
- data/app/models/alchemy/user.rb +3 -1
- data/app/views/alchemy/admin/attachments/_attachment.html.erb +12 -12
- data/app/views/alchemy/admin/attachments/edit.html.erb +10 -4
- data/app/views/alchemy/admin/elements/_element.html.erb +10 -13
- data/app/views/alchemy/admin/elements/_element_foot.html.erb +1 -1
- data/app/views/alchemy/admin/essence_files/edit.html.erb +12 -76
- data/app/views/alchemy/admin/essence_pictures/crop.html.erb +9 -4
- data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +1 -1
- data/app/views/alchemy/admin/layoutpages/index.html.erb +1 -1
- data/app/views/alchemy/admin/pages/_external_link.html.erb +9 -4
- data/app/views/alchemy/admin/pages/configure.html.erb +22 -12
- data/app/views/alchemy/admin/pages/edit.html.erb +40 -40
- data/app/views/alchemy/admin/partials/_autocomplete_tag_list.html.erb +9 -0
- data/app/views/alchemy/admin/pictures/edit.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/edit_multiple.html.erb +11 -2
- data/app/views/alchemy/admin/tags/_radio_tag.html.erb +6 -0
- data/app/views/alchemy/admin/tags/_tag.html.erb +29 -0
- data/app/views/alchemy/admin/tags/edit.html.erb +41 -0
- data/app/views/alchemy/admin/tags/index.html.erb +46 -0
- data/app/views/alchemy/admin/tags/new.html.erb +16 -0
- data/app/views/alchemy/admin/users/_table.html.erb +18 -10
- data/app/views/alchemy/admin/users/_user.html.erb +2 -1
- data/app/views/alchemy/admin/users/index.html.erb +2 -1
- data/app/views/alchemy/elements/_article_view.html.erb +1 -1
- data/app/views/alchemy/essences/_essence_link_editor.html.erb +23 -0
- data/app/views/alchemy/essences/_essence_link_view.html.erb +0 -0
- data/app/views/alchemy/essences/_essence_picture_tools.html.erb +1 -1
- data/app/views/alchemy/essences/_essence_text_editor.html.erb +1 -9
- data/app/views/alchemy/essences/_linkable_essence_tools.html.erb +19 -0
- data/app/views/layouts/alchemy/admin.html.erb +1 -1
- data/config/alchemy/elements.yml +2 -0
- data/config/alchemy/modules.yml +12 -0
- data/config/alchemy/page_layouts.yml +2 -0
- data/config/authorization_rules.rb +2 -0
- data/config/locales/alchemy.de.yml +36 -5
- data/config/locales/alchemy.en.yml +3 -0
- data/config/routes.rb +6 -4
- data/db/migrate/20121026100815_alchemy_two_point_three.rb +0 -36
- data/db/migrate/20121113115120_create_alchemy_essence_links.rb +13 -0
- data/db/migrate/20121115100736_add_cached_tag_list_to_elements_pages_and_users.rb +7 -0
- data/db/migrate/20121116140636_add_cached_tag_list_to_alchemy_attachments.rb +5 -0
- data/db/migrate/20121116141016_change_alchemy_pictures_tag_list_column.rb +9 -0
- data/lib/alchemy/engine.rb +1 -1
- data/lib/alchemy/resource.rb +1 -1
- data/lib/alchemy/resources_helper.rb +1 -1
- data/lib/alchemy/upgrader.rb +17 -0
- data/lib/alchemy/version.rb +1 -1
- data/lib/alchemy_cms.rb +1 -0
- data/lib/rails/generators/alchemy/base.rb +41 -0
- data/lib/rails/generators/alchemy/deploy_script/templates/deploy.rb.tt +10 -3
- data/lib/rails/generators/alchemy/elements/elements_generator.rb +6 -14
- data/lib/rails/generators/alchemy/elements/templates/editor.html.erb +8 -6
- data/lib/rails/generators/alchemy/elements/templates/editor.html.haml +13 -0
- data/lib/rails/generators/alchemy/elements/templates/editor.html.slim +13 -0
- data/lib/rails/generators/alchemy/elements/templates/view.html.erb +4 -4
- data/lib/rails/generators/alchemy/elements/templates/view.html.haml +15 -0
- data/lib/rails/generators/alchemy/elements/templates/view.html.slim +15 -0
- data/lib/rails/generators/alchemy/essence/essence_generator.rb +1 -1
- data/lib/rails/generators/alchemy/essence/templates/editor.html.erb +2 -3
- data/lib/rails/generators/alchemy/page_layouts/page_layouts_generator.rb +4 -13
- data/lib/rails/generators/alchemy/page_layouts/templates/layout.html.haml +1 -0
- data/lib/rails/generators/alchemy/page_layouts/templates/layout.html.slim +1 -0
- data/spec/controllers/pages_controller_spec.rb +41 -34
- data/spec/dummy/app/views/layouts/application.html.erb +51 -0
- data/spec/dummy/db/migrate/20121026100815_alchemy_two_point_three.rb +0 -36
- data/spec/dummy/db/migrate/20121113115120_create_alchemy_essence_links.rb +13 -0
- data/spec/dummy/db/migrate/20121115100736_add_cached_tag_list_to_elements_pages_and_users.rb +7 -0
- data/spec/dummy/db/migrate/20121116140636_add_cached_tag_list_to_alchemy_attachments.rb +5 -0
- data/spec/dummy/db/migrate/20121116141016_change_alchemy_pictures_tag_list_column.rb +9 -0
- data/spec/dummy/db/schema.rb +24 -45
- data/spec/helpers/elements_block_helper_spec.rb +135 -0
- data/spec/helpers/elements_helper_spec.rb +43 -5
- data/spec/integration/pages_controller_spec.rb +22 -18
- data/spec/integration/translation_integration_spec.rb +0 -15
- data/spec/models/element_spec.rb +44 -36
- data/spec/models/essence_picture_spec.rb +22 -6
- data/spec/models/page_spec.rb +28 -0
- data/spec/spec_helper.rb +8 -3
- data/spec/support/ci/install_phantomjs +6 -0
- metadata +82 -40
- data/app/assets/images/alchemy/gui/navi-tab.png +0 -0
- data/app/assets/images/alchemy/gui/shading_90.png +0 -0
- data/app/assets/images/alchemy/jquery-sb/select_arrow.gif +0 -0
- data/app/assets/images/alchemy/jquery-sb/select_arrow_bg.gif +0 -0
- data/app/assets/images/alchemy/jquery-sb/select_arrow_bg_hover.gif +0 -0
- data/app/assets/javascripts/alchemy/alchemy.preview.js +0 -98
- data/app/assets/stylesheets/alchemy/alchemy.css +0 -21
- data/app/controllers/alchemy/admin/essence_audios_controller.rb +0 -12
- data/app/controllers/alchemy/admin/essence_flashes_controller.rb +0 -12
- data/app/controllers/alchemy/admin/essence_videos_controller.rb +0 -12
- data/app/models/alchemy/essence_audio.rb +0 -14
- data/app/models/alchemy/essence_flash.rb +0 -12
- data/app/models/alchemy/essence_video.rb +0 -20
- data/app/views/alchemy/essences/_essence_audio_editor.html.erb +0 -1
- data/app/views/alchemy/essences/_essence_audio_view.html.erb +0 -33
- data/app/views/alchemy/essences/_essence_flash_editor.html.erb +0 -1
- data/app/views/alchemy/essences/_essence_flash_view.html.erb +0 -26
- data/app/views/alchemy/essences/_essence_video_editor.html.erb +0 -1
- data/app/views/alchemy/essences/_essence_video_view.html.erb +0 -35
@@ -1,5 +1,3 @@
|
|
1
|
-
@import "alchemy/defaults";
|
2
|
-
|
3
1
|
.icon {
|
4
2
|
@include inline-block;
|
5
3
|
background: url('icons.png') no-repeat;
|
@@ -209,6 +207,26 @@
|
|
209
207
|
background-position: -96px -136px;
|
210
208
|
}
|
211
209
|
|
210
|
+
&.tag_add {
|
211
|
+
background-position: -384px -168px;
|
212
|
+
}
|
213
|
+
|
214
|
+
&.tag {
|
215
|
+
background-position: -288px -168px;
|
216
|
+
}
|
217
|
+
|
218
|
+
&.tag_label {
|
219
|
+
background: url('ui-icons_666666_256x240.png') -240px -97px;
|
220
|
+
}
|
221
|
+
|
222
|
+
&.tag_edit {
|
223
|
+
background-position: -352px -168px;
|
224
|
+
}
|
225
|
+
|
226
|
+
&.tag_delete {
|
227
|
+
background-position: -320px -168px;
|
228
|
+
}
|
229
|
+
|
212
230
|
&.text {
|
213
231
|
background-position: -448px -136px;
|
214
232
|
}
|
@@ -1,5 +1,3 @@
|
|
1
|
-
@import "alchemy/defaults";
|
2
|
-
|
3
1
|
/*
|
4
2
|
* jQuery UI CSS Framework 1.8.7
|
5
3
|
*
|
@@ -1293,6 +1291,9 @@
|
|
1293
1291
|
margin: 0;
|
1294
1292
|
display: block;
|
1295
1293
|
float: left;
|
1294
|
+
background-color: white;
|
1295
|
+
@include box-shadow(0 4px 16px $dark-gray);
|
1296
|
+
border: $default-border;
|
1296
1297
|
}
|
1297
1298
|
|
1298
1299
|
#alchemy .ui-menu .ui-menu {
|
@@ -1319,7 +1320,9 @@
|
|
1319
1320
|
#alchemy .ui-menu .ui-menu-item a.ui-state-hover,
|
1320
1321
|
#alchemy .ui-menu .ui-menu-item a.ui-state-active {
|
1321
1322
|
font-weight: normal;
|
1322
|
-
|
1323
|
+
cursor: pointer;
|
1324
|
+
background-color: #e6f0f5;
|
1325
|
+
color: $text-color;
|
1323
1326
|
}
|
1324
1327
|
|
1325
1328
|
/*
|
@@ -1,5 +1,3 @@
|
|
1
|
-
@import "alchemy/defaults";
|
2
|
-
|
3
1
|
div#alchemy_greeting {
|
4
2
|
width: 370px;
|
5
3
|
margin-right: auto;
|
@@ -21,12 +19,14 @@ div#alchemy_greeting {
|
|
21
19
|
}
|
22
20
|
|
23
21
|
div.login_signup_box {
|
24
|
-
width:
|
22
|
+
width: 390px;
|
25
23
|
padding: 4*$default-padding;
|
26
24
|
border: $default-border;
|
27
25
|
background-color: $medium-gray;
|
28
26
|
@include rounded-corner;
|
29
27
|
margin: 2em auto;
|
28
|
+
|
29
|
+
input[type="text"], input.thin_border { width: 240px }
|
30
30
|
}
|
31
31
|
|
32
32
|
html.no-js {
|
@@ -1,41 +1,3 @@
|
|
1
|
-
@import "compass/css3";
|
2
|
-
@import "compass/css3/user-interface";
|
3
|
-
@import "sassy-buttons";
|
4
|
-
|
5
|
-
$text-color: #333333;
|
6
|
-
$light-blue: #C6DBE7;
|
7
|
-
$blue: darken($light-blue, 15%);
|
8
|
-
$very-light-blue: lighten($light-blue, 12%);
|
9
|
-
$light-gray: #EDEDED;
|
10
|
-
$medium-gray: #E3E3E3;
|
11
|
-
$dark-gray: #666666;
|
12
|
-
|
13
|
-
$default-padding: 4px;
|
14
|
-
$default-margin: $default-padding;
|
15
|
-
|
16
|
-
$default-font-face: "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Verdana, Tahoma, sans-serif;
|
17
|
-
$default-font-size: 12px;
|
18
|
-
$default-font-style: $default-font-size $default-font-face;
|
19
|
-
|
20
|
-
$default-border-color: #AFAFAF;
|
21
|
-
$default-border-width: 1px;
|
22
|
-
$default-border-style: solid;
|
23
|
-
$default-border: $default-border-width $default-border-style $default-border-color;
|
24
|
-
$default-border-radius: 3px;
|
25
|
-
|
26
|
-
$button-bg-color: #F7F7F7;
|
27
|
-
$button-hover-bg-color: #e6f0f5;
|
28
|
-
$button-border-color: #9A9A9A;
|
29
|
-
$button-hover-border-color: #888888;
|
30
|
-
$button-text-shadow: #f2f2f2 1px 1px 0;
|
31
|
-
|
32
|
-
$sb-base-color: $light-gray;
|
33
|
-
$sb-border-radius: $default-border-radius;
|
34
|
-
$sb-font-size: $default-font-size;
|
35
|
-
$sb-text-color: $text-color;
|
36
|
-
$sb-ie-support: true;
|
37
|
-
$default-form-field-margin: 0.3em 0;
|
38
|
-
|
39
1
|
@mixin rounded-corner($radius: $default-border-radius) {
|
40
2
|
@include border-radius($radius);
|
41
3
|
}
|
@@ -69,7 +31,8 @@ $default-form-field-margin: 0.3em 0;
|
|
69
31
|
}
|
70
32
|
|
71
33
|
@mixin default-button-style {
|
72
|
-
@include sassy-button('shiny');
|
34
|
+
@include sassy-button('shiny', $sb-border-radius, $sb-font-size, $sb-base-color, $sb-second-color, $sb-text-color, $sb-text-style, $sb-pseudo-states, $sb-ie-support);
|
35
|
+
|
73
36
|
border-color: $button-border-color;
|
74
37
|
margin: $default-form-field-margin;
|
75
38
|
}
|
@@ -1,5 +1,3 @@
|
|
1
|
-
@import "alchemy/defaults";
|
2
|
-
|
3
1
|
span.icon.module {
|
4
2
|
width: 24px;
|
5
3
|
height: 24px;
|
@@ -26,6 +24,10 @@ span.module.languages {
|
|
26
24
|
background-position: -200px 0;
|
27
25
|
}
|
28
26
|
|
27
|
+
span.module.tags {
|
28
|
+
background-position: -280px 0;
|
29
|
+
}
|
30
|
+
|
29
31
|
span.module.exit {
|
30
32
|
background-position: -160px 0;
|
31
33
|
}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
@mixin message {
|
2
|
+
padding: 8px 8px 8px 32px;
|
3
|
+
line-height: 17px;
|
4
|
+
border-width: 1px;
|
5
|
+
border-style: solid;
|
6
|
+
@include rounded-corner;
|
7
|
+
position: relative;
|
8
|
+
margin-bottom: 8px;
|
9
|
+
|
10
|
+
h2 { margin-top: 0 }
|
11
|
+
|
12
|
+
span.icon {
|
13
|
+
position: absolute;
|
14
|
+
left: 8px;
|
15
|
+
top: 8px;
|
16
|
+
}
|
17
|
+
|
18
|
+
&.footnote {
|
19
|
+
font-size: 10px;
|
20
|
+
margin: 16px;
|
21
|
+
}
|
22
|
+
|
23
|
+
ol {
|
24
|
+
margin: 0 0 8px;
|
25
|
+
padding-left: 20px;
|
26
|
+
|
27
|
+
li {
|
28
|
+
text-indent: 0;
|
29
|
+
margin-bottom: 4px;
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
div.info {
|
35
|
+
@include message;
|
36
|
+
color: $text-color;
|
37
|
+
background-color: #eaf4f9;
|
38
|
+
border-color: #0b5c84;
|
39
|
+
}
|
40
|
+
|
41
|
+
div.error {
|
42
|
+
@include message;
|
43
|
+
background-color: #f1c9ca;
|
44
|
+
color: #931f23;
|
45
|
+
}
|
46
|
+
|
47
|
+
div.warning {
|
48
|
+
@include message;
|
49
|
+
background-color: #f7efb8;
|
50
|
+
color: #756f47;
|
51
|
+
}
|
@@ -0,0 +1,63 @@
|
|
1
|
+
#toolbar div.search_field {
|
2
|
+
position: relative;
|
3
|
+
float: left;
|
4
|
+
margin-bottom: $default-margin;
|
5
|
+
}
|
6
|
+
|
7
|
+
div#image_assign_filter_and_image_sizing form div.search_field {
|
8
|
+
margin-right: 4px;
|
9
|
+
float: left;
|
10
|
+
position: relative;
|
11
|
+
}
|
12
|
+
|
13
|
+
#alchemy a.search_field_clear {
|
14
|
+
width: 16px;
|
15
|
+
height: 16px;
|
16
|
+
background: url('ui-icons_666666_256x240.png') no-repeat -80px -128px;
|
17
|
+
position: absolute;
|
18
|
+
right: 8px;
|
19
|
+
top: 7px;
|
20
|
+
@include rounded-corner;
|
21
|
+
}
|
22
|
+
|
23
|
+
td#tags_tag_list {
|
24
|
+
text-align: left;
|
25
|
+
|
26
|
+
ul.tags {
|
27
|
+
max-height: 10em;
|
28
|
+
padding: 1px;
|
29
|
+
margin: 0;
|
30
|
+
margin-top: 2px;
|
31
|
+
overflow: auto;
|
32
|
+
text-align: left;
|
33
|
+
list-style-type: none;
|
34
|
+
|
35
|
+
li {
|
36
|
+
background-color: white;
|
37
|
+
padding: 4px;
|
38
|
+
margin: 0;
|
39
|
+
|
40
|
+
&.odd {
|
41
|
+
background-color: #eaf3f9;
|
42
|
+
}
|
43
|
+
}
|
44
|
+
}
|
45
|
+
|
46
|
+
.js_filter_field_box {
|
47
|
+
float: none;
|
48
|
+
margin: 0;
|
49
|
+
|
50
|
+
.js_filter_field {
|
51
|
+
width: 260px;
|
52
|
+
border-radius: 3px;
|
53
|
+
-o-border-radius: 3px;
|
54
|
+
-ms-border-radius: 3px;
|
55
|
+
-moz-border-radius: 3px;
|
56
|
+
-webkit-border-radius: 3px;
|
57
|
+
}
|
58
|
+
|
59
|
+
label {
|
60
|
+
display: none
|
61
|
+
}
|
62
|
+
}
|
63
|
+
}
|
@@ -1,5 +1,3 @@
|
|
1
|
-
@import "alchemy/defaults";
|
2
|
-
|
3
1
|
div#sort_panel {
|
4
2
|
background: $medium-gray;
|
5
3
|
padding: 60px 0 8px 0;
|
@@ -95,6 +93,7 @@ div.sitemap_page:hover a.sitemap_pagename_link {
|
|
95
93
|
}
|
96
94
|
|
97
95
|
div.sitemap_left_images {
|
96
|
+
width: 16px;
|
98
97
|
margin-top: 3px;
|
99
98
|
float: left;
|
100
99
|
margin-right: 8px;
|
@@ -1,5 +1,3 @@
|
|
1
|
-
@import "alchemy/defaults";
|
2
|
-
|
3
1
|
table {
|
4
2
|
border-style: none;
|
5
3
|
border-spacing: 0 $default-padding;
|
@@ -9,7 +7,6 @@ table {
|
|
9
7
|
|
10
8
|
td, th {
|
11
9
|
padding: $default-padding;
|
12
|
-
white-space: nowrap;
|
13
10
|
vertical-align: top;
|
14
11
|
line-height: 18px;
|
15
12
|
|
@@ -19,6 +16,7 @@ table {
|
|
19
16
|
}
|
20
17
|
|
21
18
|
th {
|
19
|
+
white-space: nowrap;
|
22
20
|
text-align: left;
|
23
21
|
height: 22px;
|
24
22
|
vertical-align: top;
|
@@ -45,6 +43,10 @@ td.input, td.submit, td.select, td.value {
|
|
45
43
|
}
|
46
44
|
}
|
47
45
|
|
46
|
+
td.input {
|
47
|
+
.autocomplete_tag_list { float: right }
|
48
|
+
}
|
49
|
+
|
48
50
|
td.submit p.foot_note { float: left; padding-top: 1em }
|
49
51
|
|
50
52
|
td.label {
|
@@ -171,6 +173,12 @@ td.role {
|
|
171
173
|
width: 10%;
|
172
174
|
}
|
173
175
|
|
176
|
+
th.count, td.count {
|
177
|
+
width: 120px;
|
178
|
+
text-align: right;
|
179
|
+
padding-right: 16px;
|
180
|
+
}
|
181
|
+
|
174
182
|
table td.rights {
|
175
183
|
width: 60px;
|
176
184
|
}
|
@@ -194,4 +202,9 @@ table tr.even td {
|
|
194
202
|
th.icon, td.icon {
|
195
203
|
background: none;
|
196
204
|
display: table-cell;
|
205
|
+
vertical-align: top;
|
206
|
+
}
|
207
|
+
|
208
|
+
td.file_name {
|
209
|
+
word-break: break-all;
|
197
210
|
}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
$text-color: #333333;
|
2
|
+
$light-blue: #C6DBE7;
|
3
|
+
$blue: darken($light-blue, 15%);
|
4
|
+
$very-light-blue: lighten($light-blue, 12%);
|
5
|
+
$light-gray: #EDEDED;
|
6
|
+
$medium-gray: #E3E3E3;
|
7
|
+
$dark-gray: #666666;
|
8
|
+
|
9
|
+
$default-padding: 4px;
|
10
|
+
$default-margin: $default-padding;
|
11
|
+
|
12
|
+
$default-font-face: "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Verdana, Tahoma, sans-serif;
|
13
|
+
$default-font-size: 12px;
|
14
|
+
$default-font-style: $default-font-size $default-font-face;
|
15
|
+
|
16
|
+
$default-border-color: #AFAFAF;
|
17
|
+
$default-border-width: 1px;
|
18
|
+
$default-border-style: solid;
|
19
|
+
$default-border: $default-border-width $default-border-style $default-border-color;
|
20
|
+
$default-border-radius: 3px;
|
21
|
+
|
22
|
+
$button-bg-color: #F7F7F7;
|
23
|
+
$button-hover-bg-color: #e6f0f5;
|
24
|
+
$button-border-color: #9A9A9A;
|
25
|
+
$button-hover-border-color: #888888;
|
26
|
+
$button-text-shadow: #f2f2f2 1px 1px 0;
|
27
|
+
|
28
|
+
$sb-base-color: $light-gray;
|
29
|
+
$sb-border-radius: $default-border-radius;
|
30
|
+
$sb-font-size: $default-font-size;
|
31
|
+
$sb-text-color: $text-color;
|
32
|
+
$sb-ie-support: true;
|
33
|
+
$default-form-field-margin: 0.3em 0;
|
@@ -66,8 +66,7 @@ module Alchemy
|
|
66
66
|
@element = Element.find_by_id(params[:id])
|
67
67
|
if @element.save_contents(params)
|
68
68
|
@page = @element.page
|
69
|
-
@
|
70
|
-
@element_validated = @element.save!
|
69
|
+
@element_validated = @element.update_attributes!(params[:element])
|
71
70
|
else
|
72
71
|
@element_validated = false
|
73
72
|
@notice = t('Validation failed')
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module Alchemy
|
2
|
+
module Admin
|
3
|
+
class TagsController < BaseController
|
4
|
+
|
5
|
+
before_filter :load_tag, :only => [:edit, :update, :destroy]
|
6
|
+
|
7
|
+
def index
|
8
|
+
@tags = ActsAsTaggableOn::Tag.where(
|
9
|
+
"name LIKE '%#{params[:query]}%'"
|
10
|
+
).page(params[:page] || 1).per(per_page_value_for_screen_size).order("name ASC")
|
11
|
+
end
|
12
|
+
|
13
|
+
def new
|
14
|
+
@tag = ActsAsTaggableOn::Tag.new
|
15
|
+
render :layout => false
|
16
|
+
end
|
17
|
+
|
18
|
+
def create
|
19
|
+
@tag = ActsAsTaggableOn::Tag.create(params[:tag])
|
20
|
+
render_errors_or_redirect @tag, admin_tags_path, t('New Tag Created')
|
21
|
+
end
|
22
|
+
|
23
|
+
def edit
|
24
|
+
@tags = ActsAsTaggableOn::Tag.order("name ASC").all - [@tag]
|
25
|
+
render :layout => false
|
26
|
+
end
|
27
|
+
|
28
|
+
def update
|
29
|
+
if params[:replace]
|
30
|
+
@new_tag = ActsAsTaggableOn::Tag.find(params[:tag][:merge_to])
|
31
|
+
Tag.replace(@tag, @new_tag)
|
32
|
+
operation_text = t('Replaced Tag %{old_tag} with %{new_tag}') % {:old_tag => @tag.name, :new_tag => @new_tag.name}
|
33
|
+
@tag.destroy
|
34
|
+
else
|
35
|
+
@tag.update_attributes(params[:tag])
|
36
|
+
@tag.save
|
37
|
+
operation_text = t(:successfully_updated_tag)
|
38
|
+
end
|
39
|
+
render_errors_or_redirect @tag, admin_tags_path, operation_text
|
40
|
+
end
|
41
|
+
|
42
|
+
def destroy
|
43
|
+
if request.delete?
|
44
|
+
@tag.destroy
|
45
|
+
flash[:notice] = t(:successfully_deleted_tag)
|
46
|
+
end
|
47
|
+
@redirect_url = admin_tags_path
|
48
|
+
render :action => :redirect
|
49
|
+
end
|
50
|
+
|
51
|
+
def autocomplete
|
52
|
+
items = ActsAsTaggableOn::Tag.where(['LOWER(name) LIKE ?', "#{params[:term].downcase}%"])
|
53
|
+
render :json => json_for_autocomplete(items, :name)
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
def load_tag
|
59
|
+
@tag = ActsAsTaggableOn::Tag.find(params[:id])
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|