-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathNeatEditor.SectionProviders.HtmlCode.js
63 lines (52 loc) · 2.43 KB
/
NeatEditor.SectionProviders.HtmlCode.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Narmand.NeatEditor.Extend({
HtmlCode: {
CreateAdderButton: function (AdderButtonBase) {
AdderButtonBase.click(function () {
var EditorWrapper = $(this).closest(".NarmandNeatEditor");
Narmand.NeatEditor.SectionProviders.HtmlCode.AddSectionToEditor(
$("<code>replace with your html code</code>"), EditorWrapper);
return false;
}).text("+ HTML Code");
return AdderButtonBase;
},
AddSectionToEditor: function (Content, EditorWrapper) {
var SectionsWrapper = EditorWrapper.find(".Sections");
var HtmlCode = $("<div>").append(Content).html();
if (this._IsLastSectionHtmlCode(SectionsWrapper)) {
var LastHtmlCodeTextarea = SectionsWrapper.find(".Section:last textarea");
LastHtmlCodeTextarea.val(LastHtmlCodeTextarea.val() + "\r\n" + HtmlCode);
return;
}
var HtmlCodeSection = Narmand.NeatEditor.SectionProvidersHelper.CreateSectionElement("HtmlCode");
HtmlCodeSection.addClass("HtmlCode");
var EditableSection = $("<textarea>").val(HtmlCode)
.css("width", "100%")
.appendTo(HtmlCodeSection.find(".Content"));
EditorWrapper.find(".SectionAdders").before(HtmlCodeSection);
},
_IsLastSectionHtmlCode: function (SectionsWrapper) {
var SectionBeforeSectionAddersElement = SectionsWrapper.find(".SectionAdders").prev();
if (SectionBeforeSectionAddersElement.length === 0) {
return false;
}
var SectionProviderName = SectionBeforeSectionAddersElement.data("SectionProviderName");
if (SectionProviderName === "HtmlCode") {
return true;
}
return false;
},
TagName: null,
ExportSectionHtml: function (SectionElement) {
var EncodedHtml = SectionElement.find(".Content > textarea").val();
return this._HtmlDecode(EncodedHtml);
},
_HtmlDecode: function (HtmlToDecode) {
return HtmlToDecode.replace(/&/g, '&').replace(/</g, '<')
.replace(/>/g, '>');
},
_HtmlEncode: function (HtmlToEncode) {
return HtmlToEncode.replace(/&/g, '&').replace(/</g, '<')
.replace(/>/g, '>');
}
}
});