scrivito_editors 0.71.2 → 0.90.0.rc1
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/scrivito_editors/binary_editor.js +41 -0
- data/app/assets/javascripts/scrivito_editors/date_editor.js +66 -0
- data/app/assets/javascripts/scrivito_editors/default_editor.js +43 -0
- data/app/assets/javascripts/scrivito_editors/deprecated_data_attrs.js +44 -0
- data/app/assets/javascripts/scrivito_editors/enum_editor.js +68 -0
- data/app/assets/javascripts/scrivito_editors/filter_context.js +54 -0
- data/app/assets/javascripts/scrivito_editors/helpers/file_dropzone.js +33 -0
- data/app/assets/javascripts/scrivito_editors/helpers/imgly_assets.js.erb +5 -0
- data/app/assets/javascripts/scrivito_editors/helpers/setup_binary_button_container.js +12 -0
- data/app/assets/javascripts/scrivito_editors/html_editor.js +15 -0
- data/app/assets/javascripts/scrivito_editors/image_drop_editor.js +52 -0
- data/app/assets/javascripts/scrivito_editors/image_editor.js +114 -0
- data/app/assets/javascripts/scrivito_editors/link_editor.js +88 -0
- data/app/assets/javascripts/scrivito_editors/linklist_editor.js +187 -0
- data/app/assets/javascripts/scrivito_editors/medium_editor.js +97 -0
- data/app/assets/javascripts/scrivito_editors/multienum_editor.js +48 -0
- data/app/assets/javascripts/scrivito_editors/permalink_editor.js +124 -0
- data/app/assets/javascripts/scrivito_editors/placeholder.js +37 -0
- data/app/assets/javascripts/scrivito_editors/redactor_editor.js +155 -0
- data/app/assets/javascripts/scrivito_editors/redactor_plugins/scrivito_editors_image_manager.js +41 -0
- data/app/assets/javascripts/scrivito_editors/redactor_plugins/scrivito_editors_link_manager.js +56 -0
- data/app/assets/javascripts/scrivito_editors/reference_editor.js +60 -0
- data/app/assets/javascripts/scrivito_editors/referencelist_editor.js +120 -0
- data/app/assets/javascripts/scrivito_editors/reload.js +14 -0
- data/app/assets/javascripts/scrivito_editors/slider_editor.js +62 -0
- data/app/assets/javascripts/scrivito_editors/string_editor.js +156 -0
- data/app/assets/javascripts/scrivito_editors/stringlist_editor.js +22 -0
- data/app/assets/javascripts/scrivito_editors.js +3 -0
- data/app/assets/stylesheets/scrivito_editors/editors/medium_editor.css +20 -0
- data/app/assets/stylesheets/scrivito_editors/editors/{html_editor.css → redactor_editor.css} +0 -0
- data/app/assets/stylesheets/scrivito_editors/editors/referencelist_editor.css +4 -0
- data/app/assets/stylesheets/scrivito_editors/placeholder.css +14 -3
- data/app/helpers/scrivito_editors/scrivito_tag_helper.rb +40 -135
- data/lib/scrivito_editors/engine.rb +0 -1
- data/vendor/assets/javascripts/medium-editor.js +6445 -0
- data/{app → vendor}/assets/javascripts/redactor.js +0 -0
- data/{app/assets/javascripts/scrivito_editors → vendor/assets/javascripts}/redactor_plugins/table.js +0 -0
- data/vendor/assets/stylesheets/medium-editor-themes/flat.css +58 -0
- data/vendor/assets/stylesheets/medium-editor.css +214 -0
- metadata +78 -56
- data/app/assets/javascripts/scrivito_editors/binary_editor.js.coffee +0 -25
- data/app/assets/javascripts/scrivito_editors/date_editor.js.coffee +0 -59
- data/app/assets/javascripts/scrivito_editors/enum_editor.js.coffee +0 -41
- data/app/assets/javascripts/scrivito_editors/filter_context.js.coffee +0 -26
- data/app/assets/javascripts/scrivito_editors/helpers/file_dropzone.js.coffee +0 -16
- data/app/assets/javascripts/scrivito_editors/helpers/setup_binary_button_container.js.coffee +0 -6
- data/app/assets/javascripts/scrivito_editors/html_editor.js.coffee +0 -138
- data/app/assets/javascripts/scrivito_editors/image_drop_editor.js.coffee +0 -19
- data/app/assets/javascripts/scrivito_editors/image_editor.js.coffee.erb +0 -96
- data/app/assets/javascripts/scrivito_editors/link_editor.js.coffee +0 -141
- data/app/assets/javascripts/scrivito_editors/linklist_editor.js.coffee +0 -197
- data/app/assets/javascripts/scrivito_editors/multienum_editor.js.coffee +0 -42
- data/app/assets/javascripts/scrivito_editors/permalink_editor.js.coffee +0 -111
- data/app/assets/javascripts/scrivito_editors/placeholder.js.coffee +0 -22
- data/app/assets/javascripts/scrivito_editors/redactor_plugins/scrivito_editors_image_manager.js.coffee +0 -22
- data/app/assets/javascripts/scrivito_editors/redactor_plugins/scrivito_editors_link_manager.js.coffee +0 -49
- data/app/assets/javascripts/scrivito_editors/reference_editor.js.coffee +0 -33
- data/app/assets/javascripts/scrivito_editors/referencelist_editor.js.coffee +0 -113
- data/app/assets/javascripts/scrivito_editors/reload.js.coffee +0 -12
- data/app/assets/javascripts/scrivito_editors/slider_editor.js.coffee +0 -41
- data/app/assets/javascripts/scrivito_editors/string_editor.js.coffee +0 -136
- data/app/assets/javascripts/scrivito_editors/stringlist_editor.js.coffee +0 -13
- data/app/helpers/scrivito_editors/cms_tag_helper.rb +0 -36
data/app/assets/javascripts/scrivito_editors/redactor_plugins/scrivito_editors_link_manager.js
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
(function() {
|
2
|
+
if (this.RedactorPlugins == null) {
|
3
|
+
this.RedactorPlugins = {};
|
4
|
+
}
|
5
|
+
|
6
|
+
RedactorPlugins.scrivito_editors_link_manager = function() {
|
7
|
+
var self;
|
8
|
+
return self = {
|
9
|
+
init: function() {
|
10
|
+
this.modal.addTemplate('scrivito_link_manager_browse', self.browseButtonHtml);
|
11
|
+
this.modal.addTemplate('scrivito_link_manager_url', '/$id');
|
12
|
+
this.modal.addCallback('imageEdit', self.addBrowseToModal);
|
13
|
+
return this.modal.addCallback('link', self.addBrowseToModal);
|
14
|
+
},
|
15
|
+
browseButtonHtml: "<button class=\"editing-button editing-green\">\n <i class=\"editing-icon editing-icon-search\"></i>\n Browse\n</button>",
|
16
|
+
urlInput: function() {
|
17
|
+
return this.modal.getModal().find('#redactor-link-url, #redactor-image-link');
|
18
|
+
},
|
19
|
+
addBrowseToModal: function() {
|
20
|
+
return self.urlInput().wrap('<div id="scrivito-link-manager-url"></div>').after(this.modal.getTemplate('scrivito_link_manager_browse')).siblings('button').on('click', self.browse);
|
21
|
+
},
|
22
|
+
browse: function() {
|
23
|
+
return scrivito.content_browser.open({
|
24
|
+
filter: this.$element.data('scrivitoEditorsFilter'),
|
25
|
+
filter_context: this.$element.data('scrivitoEditorsFilterContext'),
|
26
|
+
selection: self.getObjIds(),
|
27
|
+
selection_mode: 'single'
|
28
|
+
}).done((function(_this) {
|
29
|
+
return function(selection) {
|
30
|
+
var id;
|
31
|
+
id = selection[0];
|
32
|
+
if (id != null) {
|
33
|
+
return self.setObjId(id);
|
34
|
+
}
|
35
|
+
};
|
36
|
+
})(this));
|
37
|
+
},
|
38
|
+
getObjIds: function() {
|
39
|
+
var matches;
|
40
|
+
matches = self.urlInput().val().match(/[\/:]([a-f0-9]{16})\b/);
|
41
|
+
if (matches != null) {
|
42
|
+
return [matches[1]];
|
43
|
+
} else {
|
44
|
+
return [];
|
45
|
+
}
|
46
|
+
},
|
47
|
+
setObjId: function(id) {
|
48
|
+
return self.urlInput().val(self.toUrl(id));
|
49
|
+
},
|
50
|
+
toUrl: function(id) {
|
51
|
+
return this.modal.getTemplate('scrivito_link_manager_url').replace("$id", id);
|
52
|
+
}
|
53
|
+
};
|
54
|
+
};
|
55
|
+
|
56
|
+
}).call(this);
|
@@ -0,0 +1,60 @@
|
|
1
|
+
(function() {
|
2
|
+
var activate, onContentBrowserSave;
|
3
|
+
|
4
|
+
activate = function(element) {
|
5
|
+
var cmsField, objId;
|
6
|
+
cmsField = $(element);
|
7
|
+
objId = cmsField.scrivito('content');
|
8
|
+
if (objId && !cmsField.children().length) {
|
9
|
+
scrivito.description_for_editor([objId]).then(function(results) {
|
10
|
+
return cmsField.text(results[0]);
|
11
|
+
});
|
12
|
+
}
|
13
|
+
return cmsField.on('click', function(event) {
|
14
|
+
var filterContext, filters, isImage, selected;
|
15
|
+
event.preventDefault();
|
16
|
+
selected = [cmsField.scrivito('content')].filter(function(element) {
|
17
|
+
return element;
|
18
|
+
});
|
19
|
+
isImage = cmsField.is('img');
|
20
|
+
filters = cmsField.data('scrivitoEditorsFilters');
|
21
|
+
filterContext = $.extend({
|
22
|
+
_image: isImage
|
23
|
+
}, cmsField.data('scrivitoEditorsFilterContext'));
|
24
|
+
return scrivito.content_browser.open({
|
25
|
+
filters: filters,
|
26
|
+
filter_context: filterContext,
|
27
|
+
selection: selected,
|
28
|
+
selection_mode: 'single'
|
29
|
+
}).done((function(_this) {
|
30
|
+
return function(selection) {
|
31
|
+
return onContentBrowserSave(selection, cmsField);
|
32
|
+
};
|
33
|
+
})(this));
|
34
|
+
});
|
35
|
+
};
|
36
|
+
|
37
|
+
onContentBrowserSave = function(selection, cmsField) {
|
38
|
+
var value;
|
39
|
+
value = selection[0] || null;
|
40
|
+
cmsField.scrivito('save', value).done(function() {
|
41
|
+
cmsField.trigger('save.scrivito_editors');
|
42
|
+
return cmsField.scrivito('reload');
|
43
|
+
});
|
44
|
+
return true;
|
45
|
+
};
|
46
|
+
|
47
|
+
scrivito.editors.reference_editor = {
|
48
|
+
can_edit: function(element) {
|
49
|
+
return $(element).is('[data-scrivito-field-type=reference]');
|
50
|
+
},
|
51
|
+
activate: function(element) {
|
52
|
+
return activate(element);
|
53
|
+
}
|
54
|
+
};
|
55
|
+
|
56
|
+
scrivito.on('load', function() {
|
57
|
+
return scrivito.define_editor('reference', scrivito.editors.reference_editor);
|
58
|
+
});
|
59
|
+
|
60
|
+
}).call(this);
|
@@ -0,0 +1,120 @@
|
|
1
|
+
(function() {
|
2
|
+
var activate, collectIds, contentBrowserButtonTemplate, getCmsField, onContentBrowserOpen, remove, render, renderItem, save;
|
3
|
+
|
4
|
+
renderItem = function(objId) {
|
5
|
+
return $("<li data-id=\"" + objId + "\">\n <span class=\"list-content\"></span>\n <div class=\"actions\">\n <a href=\"#\" class=\"editing-button editing-red delete\">\n <i class=\"editing-icon editing-icon-trash\" />\n </a>\n </div>\n</li>");
|
6
|
+
};
|
7
|
+
|
8
|
+
contentBrowserButtonTemplate = function() {
|
9
|
+
return $('<button class="editing-button editing-green content-browser-open">\n <i class="editing-icon editing-icon-plus" />\n</button>');
|
10
|
+
};
|
11
|
+
|
12
|
+
getCmsField = function(element) {
|
13
|
+
return element.closest('[data-scrivito-field-type=referencelist]');
|
14
|
+
};
|
15
|
+
|
16
|
+
save = function(ids, cmsField, reload) {
|
17
|
+
var lastSaved;
|
18
|
+
if (reload == null) {
|
19
|
+
reload = true;
|
20
|
+
}
|
21
|
+
lastSaved = cmsField.scrivito('content');
|
22
|
+
if (JSON.stringify(ids) !== JSON.stringify(lastSaved)) {
|
23
|
+
return cmsField.scrivito('save', ids).done(function() {
|
24
|
+
cmsField.trigger('save.scrivito_editors');
|
25
|
+
if (reload) {
|
26
|
+
return cmsField.scrivito('reload');
|
27
|
+
}
|
28
|
+
});
|
29
|
+
}
|
30
|
+
};
|
31
|
+
|
32
|
+
onContentBrowserOpen = function(event) {
|
33
|
+
var cmsField, filterContext, filters;
|
34
|
+
event.preventDefault();
|
35
|
+
cmsField = getCmsField($(event.currentTarget));
|
36
|
+
filters = cmsField.data('scrivitoEditorsFilters');
|
37
|
+
filterContext = cmsField.data('scrivitoEditorsFilterContext');
|
38
|
+
return scrivito.content_browser.open({
|
39
|
+
filters: filters,
|
40
|
+
filter_context: filterContext
|
41
|
+
}).done((function(_this) {
|
42
|
+
return function(selection) {
|
43
|
+
var ids;
|
44
|
+
ids = cmsField.scrivito('content').concat(selection);
|
45
|
+
return save(ids, cmsField);
|
46
|
+
};
|
47
|
+
})(this));
|
48
|
+
};
|
49
|
+
|
50
|
+
collectIds = function(cmsField) {
|
51
|
+
var item, items, value;
|
52
|
+
items = $(cmsField).find('[data-id]');
|
53
|
+
return value = (function() {
|
54
|
+
var i, len, results;
|
55
|
+
results = [];
|
56
|
+
for (i = 0, len = items.length; i < len; i++) {
|
57
|
+
item = items[i];
|
58
|
+
results.push($(item).data('id'));
|
59
|
+
}
|
60
|
+
return results;
|
61
|
+
})();
|
62
|
+
};
|
63
|
+
|
64
|
+
remove = function(event) {
|
65
|
+
var cmsField, ids, target;
|
66
|
+
event.preventDefault();
|
67
|
+
target = $(event.currentTarget);
|
68
|
+
cmsField = getCmsField(target);
|
69
|
+
target.closest('li').remove();
|
70
|
+
ids = collectIds(cmsField);
|
71
|
+
return save(ids, cmsField, false);
|
72
|
+
};
|
73
|
+
|
74
|
+
render = function(cmsField) {
|
75
|
+
var i, len, objId, objIds, ul;
|
76
|
+
cmsField.empty();
|
77
|
+
objIds = cmsField.scrivito('content');
|
78
|
+
if (objIds.length) {
|
79
|
+
ul = $('<ul></ul>').appendTo(cmsField);
|
80
|
+
for (i = 0, len = objIds.length; i < len; i++) {
|
81
|
+
objId = objIds[i];
|
82
|
+
ul.append(renderItem(objId));
|
83
|
+
}
|
84
|
+
scrivito.description_for_editor(objIds).then(function(descriptions) {
|
85
|
+
return ul.find('li').each(function(index, element) {
|
86
|
+
return $(element).find('> span').text(descriptions[index]);
|
87
|
+
});
|
88
|
+
});
|
89
|
+
}
|
90
|
+
return cmsField.append(contentBrowserButtonTemplate);
|
91
|
+
};
|
92
|
+
|
93
|
+
activate = function(dom_element) {
|
94
|
+
var cmsField;
|
95
|
+
cmsField = $(dom_element);
|
96
|
+
render(cmsField);
|
97
|
+
return cmsField.on('click', 'li a.delete', remove).on('click', 'button.content-browser-open', onContentBrowserOpen).find('ul').sortable({
|
98
|
+
update: function(event) {
|
99
|
+
var ids;
|
100
|
+
cmsField = getCmsField($(event.target));
|
101
|
+
ids = collectIds(cmsField);
|
102
|
+
return save(ids, cmsField, false);
|
103
|
+
}
|
104
|
+
});
|
105
|
+
};
|
106
|
+
|
107
|
+
scrivito.editors.referencelist_editor = {
|
108
|
+
can_edit: function(element) {
|
109
|
+
return $(element).is('[data-scrivito-field-type=referencelist]');
|
110
|
+
},
|
111
|
+
activate: function(element) {
|
112
|
+
return activate(element);
|
113
|
+
}
|
114
|
+
};
|
115
|
+
|
116
|
+
scrivito.on('load', function() {
|
117
|
+
return scrivito.define_editor('referencelist', scrivito.editors.referencelist_editor);
|
118
|
+
});
|
119
|
+
|
120
|
+
}).call(this);
|
@@ -0,0 +1,14 @@
|
|
1
|
+
(function() {
|
2
|
+
var selector;
|
3
|
+
|
4
|
+
selector = '[data-scrivito-field-type][data-scrivito-editors-reload=true]';
|
5
|
+
|
6
|
+
scrivito.on('content', function() {
|
7
|
+
if (scrivito.in_editable_view()) {
|
8
|
+
return $(':root').on('scrivito_editors:blur', selector, function(event) {
|
9
|
+
return $(this).scrivito("reload");
|
10
|
+
});
|
11
|
+
}
|
12
|
+
});
|
13
|
+
|
14
|
+
}).call(this);
|
@@ -0,0 +1,62 @@
|
|
1
|
+
(function() {
|
2
|
+
var activate, onSlide, onStop, template;
|
3
|
+
|
4
|
+
template = function() {
|
5
|
+
return $('<div></div>');
|
6
|
+
};
|
7
|
+
|
8
|
+
onStop = function(event, ui) {
|
9
|
+
var cmsField, content;
|
10
|
+
cmsField = $(this).data('cmsField');
|
11
|
+
content = ui.value;
|
12
|
+
return cmsField.scrivito('save', content).done(function() {
|
13
|
+
cmsField.trigger('save.scrivito_editors');
|
14
|
+
return cmsField.trigger('scrivito_editors:blur');
|
15
|
+
});
|
16
|
+
};
|
17
|
+
|
18
|
+
onSlide = function(event, ui) {
|
19
|
+
var cmsField, content;
|
20
|
+
cmsField = $(this).data('cmsField');
|
21
|
+
content = ui.value;
|
22
|
+
return cmsField.text(ui.value);
|
23
|
+
};
|
24
|
+
|
25
|
+
activate = function(element) {
|
26
|
+
return $(element).on('click', function() {
|
27
|
+
var cmsField, content, max, min, step;
|
28
|
+
cmsField = $(element);
|
29
|
+
if (cmsField.data('scrivito_editors_active')) {
|
30
|
+
return;
|
31
|
+
}
|
32
|
+
cmsField.data('scrivito_editors_active', true);
|
33
|
+
content = cmsField.scrivito('content');
|
34
|
+
min = cmsField.data('scrivito-editors-min');
|
35
|
+
max = cmsField.data('scrivito-editors-max');
|
36
|
+
step = cmsField.data('scrivito-editors-step');
|
37
|
+
return template().data('cmsField', cmsField).insertAfter(cmsField).slider({
|
38
|
+
min: parseInt(min) || 1,
|
39
|
+
max: parseInt(max) || 10,
|
40
|
+
step: parseInt(step) || 1,
|
41
|
+
value: parseInt(content) || 0,
|
42
|
+
range: 'min',
|
43
|
+
slide: onSlide,
|
44
|
+
stop: onStop
|
45
|
+
}).find('.ui-slider-handle').focus();
|
46
|
+
});
|
47
|
+
};
|
48
|
+
|
49
|
+
scrivito.editors.slider_editor = {
|
50
|
+
can_edit: function(element) {
|
51
|
+
return $(element).is('[data-scrivito-field-type=string]');
|
52
|
+
},
|
53
|
+
activate: function(element) {
|
54
|
+
return activate(element);
|
55
|
+
}
|
56
|
+
};
|
57
|
+
|
58
|
+
scrivito.on('load', function() {
|
59
|
+
return scrivito.define_editor('slider', scrivito.editors.slider_editor);
|
60
|
+
});
|
61
|
+
|
62
|
+
}).call(this);
|
@@ -0,0 +1,156 @@
|
|
1
|
+
(function() {
|
2
|
+
var DOUBLE_CLICK_MS, _deprecationLogged, activate, cleanUp, cmsFieldAndPastedContent, finishEditing, getCurrentContent, isNewlineAllowed, onBlur, onFocus, onInput, onKey, prepareForEditing, save;
|
3
|
+
|
4
|
+
onKey = function(event) {
|
5
|
+
var cmsField, key;
|
6
|
+
cmsField = $(event.currentTarget);
|
7
|
+
key = event.keyCode || event.which;
|
8
|
+
switch (key) {
|
9
|
+
case 13:
|
10
|
+
if (!isNewlineAllowed(cmsField)) {
|
11
|
+
event.preventDefault();
|
12
|
+
return cmsField.blur();
|
13
|
+
}
|
14
|
+
break;
|
15
|
+
case 27:
|
16
|
+
event.stopPropagation();
|
17
|
+
return cmsField.blur();
|
18
|
+
}
|
19
|
+
};
|
20
|
+
|
21
|
+
onInput = function(event) {
|
22
|
+
var cmsField;
|
23
|
+
cmsField = $(event.currentTarget);
|
24
|
+
return save(cmsField);
|
25
|
+
};
|
26
|
+
|
27
|
+
onFocus = function(event) {
|
28
|
+
var cmsField;
|
29
|
+
cmsField = $(event.currentTarget);
|
30
|
+
return prepareForEditing(cmsField);
|
31
|
+
};
|
32
|
+
|
33
|
+
onBlur = function(event) {
|
34
|
+
var cmsField;
|
35
|
+
cmsField = $(event.currentTarget);
|
36
|
+
save(cmsField).done(function() {
|
37
|
+
return cmsField.trigger('scrivito_editors:blur');
|
38
|
+
});
|
39
|
+
return finishEditing(cmsField);
|
40
|
+
};
|
41
|
+
|
42
|
+
save = function(cmsField) {
|
43
|
+
var content;
|
44
|
+
content = getCurrentContent(cmsField);
|
45
|
+
if (content !== cmsField.scrivito('content')) {
|
46
|
+
return cmsField.scrivito('save', content).done(function() {
|
47
|
+
return cmsField.trigger('save.scrivito_editors');
|
48
|
+
});
|
49
|
+
} else {
|
50
|
+
return $.Deferred().resolve();
|
51
|
+
}
|
52
|
+
};
|
53
|
+
|
54
|
+
getCurrentContent = function(cmsField) {
|
55
|
+
var clone, content;
|
56
|
+
cleanUp(cmsField);
|
57
|
+
clone = cmsFieldAndPastedContent(cmsField).clone();
|
58
|
+
clone.find('div:not(:has(br)),p:not(:first)').before('\n');
|
59
|
+
clone.find('br').replaceWith('\n');
|
60
|
+
content = clone.text();
|
61
|
+
clone.remove();
|
62
|
+
return content;
|
63
|
+
};
|
64
|
+
|
65
|
+
cleanUp = function(cmsField) {
|
66
|
+
var pasted, siblings;
|
67
|
+
siblings = cmsFieldAndPastedContent(cmsField);
|
68
|
+
pasted = siblings.not(cmsField);
|
69
|
+
if (pasted.length > 0) {
|
70
|
+
pasted.remove();
|
71
|
+
return cmsField.text(siblings.text());
|
72
|
+
}
|
73
|
+
};
|
74
|
+
|
75
|
+
cmsFieldAndPastedContent = function(cmsField) {
|
76
|
+
var needsReset, siblings, siblingsBefore;
|
77
|
+
siblingsBefore = cmsField.data('scrivito_editors_siblings_before_edit');
|
78
|
+
siblings = cmsField.siblings();
|
79
|
+
needsReset = !siblingsBefore || siblings.filter(siblingsBefore).length < siblingsBefore.length;
|
80
|
+
if (needsReset) {
|
81
|
+
return cmsField.data('scrivito_editors_siblings_before_edit', siblings);
|
82
|
+
} else {
|
83
|
+
return cmsField.siblings().addBack().not(siblingsBefore);
|
84
|
+
}
|
85
|
+
};
|
86
|
+
|
87
|
+
_deprecationLogged = false;
|
88
|
+
|
89
|
+
isNewlineAllowed = function(cmsField) {
|
90
|
+
if (cmsField.data('editor') === 'text') {
|
91
|
+
if (!_deprecationLogged) {
|
92
|
+
console.warn('Scrivito editors: data-editor="text" is deprecated, please use {data: {scrivito_editors_multiline: true}}, editor: "string" instead.');
|
93
|
+
_deprecationLogged = true;
|
94
|
+
}
|
95
|
+
return true;
|
96
|
+
}
|
97
|
+
if (cmsField.data('scrivitoEditorsMultiline') === true) {
|
98
|
+
return true;
|
99
|
+
}
|
100
|
+
if (cmsField.data('scrivitoEditorsMultiline') === false) {
|
101
|
+
return false;
|
102
|
+
}
|
103
|
+
return cmsField.css('white-space').match(/pre/);
|
104
|
+
};
|
105
|
+
|
106
|
+
prepareForEditing = function(cmsField) {
|
107
|
+
var html, htmlNl2Br;
|
108
|
+
if (isNewlineAllowed(cmsField) && !cmsField.data('scrivito_editors_prepared_for_editing')) {
|
109
|
+
cmsField.data('scrivito_editors_prepared_for_editing', true);
|
110
|
+
html = cmsField.html();
|
111
|
+
htmlNl2Br = html.replace(/\n/g, '<br />');
|
112
|
+
if (html !== htmlNl2Br) {
|
113
|
+
return cmsField.html(htmlNl2Br);
|
114
|
+
}
|
115
|
+
}
|
116
|
+
};
|
117
|
+
|
118
|
+
finishEditing = function(cmsField) {
|
119
|
+
cmsField.data('scrivito_editors_prepared_for_editing', false);
|
120
|
+
return cmsField.text(cmsField.scrivito('content'));
|
121
|
+
};
|
122
|
+
|
123
|
+
DOUBLE_CLICK_MS = 300;
|
124
|
+
|
125
|
+
activate = function(element) {
|
126
|
+
var cmsField;
|
127
|
+
cmsField = $(element);
|
128
|
+
cmsField.attr('contenteditable', true).blur(onBlur).focus(onFocus).keypress(onKey).keyup(onKey);
|
129
|
+
if (cmsField.attr('data-scrivito-editors-autosave') !== 'false') {
|
130
|
+
cmsField.on('cut input keypress keyup paste', onInput);
|
131
|
+
}
|
132
|
+
prepareForEditing(cmsField);
|
133
|
+
return cmsField.on('click', function(event) {
|
134
|
+
cmsField.attr('contenteditable', true);
|
135
|
+
cleanUp(cmsField);
|
136
|
+
if (!(event.timeStamp - cmsField.data('scrivito_editors_last_click') < DOUBLE_CLICK_MS)) {
|
137
|
+
event.preventDefault();
|
138
|
+
}
|
139
|
+
return cmsField.data('scrivito_editors_last_click', event.timeStamp);
|
140
|
+
});
|
141
|
+
};
|
142
|
+
|
143
|
+
scrivito.editors.string_editor = {
|
144
|
+
can_edit: function(element) {
|
145
|
+
return $(element).is('[data-scrivito-field-type=string]');
|
146
|
+
},
|
147
|
+
activate: function(element) {
|
148
|
+
return activate(element);
|
149
|
+
}
|
150
|
+
};
|
151
|
+
|
152
|
+
scrivito.on('load', function() {
|
153
|
+
return scrivito.define_editor('string', scrivito.editors.string_editor);
|
154
|
+
});
|
155
|
+
|
156
|
+
}).call(this);
|
@@ -0,0 +1,22 @@
|
|
1
|
+
(function() {
|
2
|
+
scrivito.editors.stringlist_editor = {
|
3
|
+
can_edit: function(element) {
|
4
|
+
return $(element).is('[data-scrivito-field-type=stringlist]');
|
5
|
+
},
|
6
|
+
activate: function(element) {
|
7
|
+
var field;
|
8
|
+
field = $(element);
|
9
|
+
return field.tagEditor({
|
10
|
+
initialTags: field.scrivito('content'),
|
11
|
+
onChange: function(field, editor, tags) {
|
12
|
+
return field.scrivito('save', tags);
|
13
|
+
}
|
14
|
+
});
|
15
|
+
}
|
16
|
+
};
|
17
|
+
|
18
|
+
scrivito.on('load', function() {
|
19
|
+
return scrivito.define_editor('stringlist', scrivito.editors.stringlist_editor);
|
20
|
+
});
|
21
|
+
|
22
|
+
}).call(this);
|
@@ -10,5 +10,8 @@
|
|
10
10
|
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
|
11
11
|
// about supported directives.
|
12
12
|
//
|
13
|
+
//= require jquery.caret
|
14
|
+
//= require jquery.tag-editor
|
15
|
+
//= require medium-editor
|
13
16
|
//= require scrivito_editors_addons
|
14
17
|
//= require scrivito_editors_core
|
@@ -0,0 +1,20 @@
|
|
1
|
+
/*
|
2
|
+
*= require medium-editor
|
3
|
+
*= require medium-editor-themes/flat
|
4
|
+
*= require_self
|
5
|
+
*/
|
6
|
+
.medium-toolbar-arrow-under::after { top: auto;}
|
7
|
+
.medium-editor-toolbar { z-index: 11112; margin:0 10px; background:rgba(67, 148, 57, 0.9);
|
8
|
+
border-radius:4px;}
|
9
|
+
.medium-editor-toolbar li button { height:40px; min-width:40px; padding:10px;
|
10
|
+
border:none; margin:1px; background:rgba(0,0,0,.1);
|
11
|
+
}
|
12
|
+
.medium-editor-toolbar li button * { color: inherit; }
|
13
|
+
.medium-editor-toolbar li button .scrivito_customer_icon { font-size:18px;}
|
14
|
+
.medium-editor-toolbar-form .scrivito_customer_icon { font-size:18px;
|
15
|
+
min-width:40px; height:40px; line-height: 40px!important;
|
16
|
+
display:inline-block; text-align:center;
|
17
|
+
color: #fff; margin: 1px; background:rgba(0,0,0,.1);
|
18
|
+
}
|
19
|
+
.medium-editor-toolbar-form .scrivito_customer_icon:hover {background:rgba(0,0,0,.3);}
|
20
|
+
.medium-editor-toolbar-form .medium-editor-toolbar-input {margin: 1px;height:40px; background:rgba(0,0,0,.3);}
|
data/app/assets/stylesheets/scrivito_editors/editors/{html_editor.css → redactor_editor.css}
RENAMED
File without changes
|
@@ -2,10 +2,10 @@
|
|
2
2
|
Placeholder styling for empty CMS attributes. The placeholder text is only displayed, if the
|
3
3
|
element is not focused and it gets a slightly less visible style.
|
4
4
|
*/
|
5
|
-
[data-scrivito-display-mode="editing"] [data-scrivito-
|
6
|
-
content: attr(data-placeholder);
|
5
|
+
[data-scrivito-display-mode="editing"] [data-scrivito-editors-placeholder]:empty:not(:focus):before {
|
6
|
+
content: attr(data-scrivito-editors-placeholder);
|
7
7
|
color: #999;
|
8
|
-
display: block;
|
8
|
+
display: inline-block;
|
9
9
|
font-size: 13px;
|
10
10
|
font-style: normal;
|
11
11
|
font-weight: normal;
|
@@ -15,4 +15,15 @@
|
|
15
15
|
text-decoration: none;
|
16
16
|
vertical-align: middle;
|
17
17
|
cursor: pointer;
|
18
|
+
white-space: nowrap;
|
19
|
+
overflow: hidden;
|
20
|
+
text-overflow: ellipsis;
|
21
|
+
max-width: 100%;
|
22
|
+
}
|
23
|
+
|
24
|
+
/* Firefox: Let the input cursor appear at the expected position */
|
25
|
+
[data-scrivito-display-mode="editing"] [data-scrivito-editors-placeholder]:empty:focus:after,
|
26
|
+
[data-scrivito-display-mode="editing"] [data-scrivito-editors-placeholder]:empty:focus:before {
|
27
|
+
content: " ";
|
28
|
+
display: inline-block;
|
18
29
|
}
|