summaryrefslogtreecommitdiffstats
path: root/templates/html_editor_scripts_css.html
diff options
context:
space:
mode:
Diffstat (limited to 'templates/html_editor_scripts_css.html')
-rw-r--r--templates/html_editor_scripts_css.html233
1 files changed, 138 insertions, 95 deletions
diff --git a/templates/html_editor_scripts_css.html b/templates/html_editor_scripts_css.html
index 5bd56d4..78dad9f 100644
--- a/templates/html_editor_scripts_css.html
+++ b/templates/html_editor_scripts_css.html
@@ -1,3 +1,5 @@
+
+
<script src="{{ settings.MEDIA_URL }}admin/js/vendor/jquery/jquery.js" type="text/javascript"></script>
<script src={{ settings.MEDIA_URL }}codemirror/codemirror.js></script>
@@ -7,32 +9,7 @@
<script src={{ settings.MEDIA_URL }}codemirror/htmlmixed.js></script>
<link rel=stylesheet href={{ settings.MEDIA_URL }}codemirror/codemirror.css>
<link rel=stylesheet href={{ settings.MEDIA_URL }}codemirror/docs.css>
- <style type=text/css>
- .CodeMirror {
- float: left;
- width: 50%;
- border: 1px solid black;
- height: 80%;
- }
- .CodeMirror-scroll{
- height: 99%
- }
- iframe {
- width: 49%;
- height: 80%;
- float: left;
- border: 1px solid black;
- border-left: 0px;
- }
- body{max-width: none;
- margin-left: 275px;
- margin-right: 50px;
- text-align: left;
- }
- #id_change_message{
- height: 5%;
- }
- </style>
+
<style type=text/css>
html {
font-family: "Helvetica Neue", sans-serif;
@@ -44,10 +21,12 @@
.popup-overlay {
/*Hides pop-up when there is no "active" class*/
visibility: hidden;
- position: absolute;
+ position: fixed;
+ top: 10%;
+ left: 10%;
background: #ffffff;
border: 3px solid #666666;
- width: 90%;
+ width: 80%;
height: 80%;
overflow: scroll;
left: 5%;
@@ -70,83 +49,96 @@
visibility: visible;
}
+ button {
+ display: inline-block;
+ vertical-align: middle;
+ border-radius: 30px;
+ margin: .20rem;
+ font-size: 1rem;
+ color: #666666;
+ background: #ffffff;
+ border: 1px solid #666666;
+ }
+ button:hover {
+ border: 1px solid #666666;
+ background: #666666;
+ color: #ffffff;
+ }
</style>
+ <style type=text/css>
+ .CodeMirror {
+ float: left;
+ width: 50%;
+ border: 1px solid black;
+ height: 80%;
+ }
+ .CodeMirror-scroll{
+ height: 99%
+ }
+ iframe {
+ width: 49%;
+ height: 80%;
+ float: left;
+ border: 1px solid black;
+ border-left: 0px;
+ }
+ body{max-width: none;
+ margin-left: 275px;
+ margin-right: 50px;
+ text-align: left;
+ }
+ #id_change_message{
+ height: 5%;
+ }
+ </style>
<script>
-function add_image_popup() {
- $('.add-image-popup').addClass('active');
- $('#image_popup_content').load("{% url 'image_selector' path %}", function() {
- $('.thumbnail').click(function(){
- $(".add-image-popup").removeClass("active");
- addStr($( this ).attr("data-html"))
- });
- })
- }
-function new_image_popup() {
- $('.add-image-popup').removeClass('active');
- $('.new-image-popup').addClass('active');
- $.ajax({
- type : "GET",
- dataType: "json",
- url: "{% url 'new_image_form' path %}",
- success: function(data){handle_new_image(data)}
- });
- }
-
-function handle_new_image(data) {
- if (data.hasOwnProperty('form')) {
- $('#new_image_popup_content').html(data.form);
- $('#new_image_form').on('submit', function(e){
- e.preventDefault();
- data = $('#new_image_form').serialize();
-
- $.ajax({
- type : "POST",
- dataType: "json",
- url: "{% url 'new_image_form' path %}",
- data: new FormData($('#new_image_form')[0]),
- processData: false,
- contentType: false,
- success: function(data){
- handle_new_image(data);
- }
- });
+ $(function() {
+
+ $(".HTMLarea").each(function(){
+ var HTMLarea = $(this).children("textarea")
+ HTMLarea.data("editor",
+ CodeMirror.fromTextArea(HTMLarea[0], {
+ mode: 'text/html',
+ tabMode: 'indent',
+ onChange: function() {
+ clearTimeout(HTMLarea.data("delay"));
+ HTMLarea.data("delay", setTimeout(updatePreview, 300, HTMLarea));
+ }
+ })
+ );
+ HTMLarea.data("preview", $('#preview'));
+ updatePreview(HTMLarea);
});
- }
- else if (data.hasOwnProperty('html')) {
- $('.new-image-popup').removeClass('active');
- addStr(data.html);
- }
- else {
- alert(data.error);
- }
- }
-</script>
- <script>
- var delay;
- // Initialize CodeMirror editor with a nice html5 canvas demo.
- var editor = CodeMirror.fromTextArea(document.getElementById('id_html'), {
- mode: 'text/html',
- tabMode: 'indent',
- onChange: function() {
- clearTimeout(delay);
- delay = setTimeout(updatePreview, 300);
- }
- });
+ $(".addTag").click(function(){
+ addTag($(this).parents(".HTMLarea").children("textarea").data("editor"),
+ $(this).attr("data-tag"),
+ $(this).attr("data-attr") || ""
+ );
+ })
- function updatePreview() {
- var previewFrame = document.getElementById('preview');
- var preview = previewFrame.contentDocument || previewFrame.contentWindow.document;
+ $(".addStr").click(function(){
+ addStr($(this).parents(".HTMLarea").children("textarea").data("editor"),
+ $(this).attr("data-str")
+ );
+ })
+
+ $(".addImage").click(function(){
+ add_image_popup($(this).parents(".HTMLarea").children("textarea").data("editor"));
+ })
+});
+
+
+ function updatePreview(HTMLarea) {
+ var preview = $('#preview')[0].contentDocument || $('#preview')[0].contentWindow.document;
preview.open();
preview.write("<html><head><meta http-equiv='Content-Type' content='text/html; charset=utf-8' /><link rel='stylesheet' type='text/css' href='/css/main2.css' /> <style type=text/css>body{max-width: none;margin-left: 15px;margin-right: 15px;}</style></head><body>");
- preview.write(editor.getValue());
+ preview.write(HTMLarea.data("editor").getValue());
preview.write("</body></html>");
preview.close();
}
- setTimeout(updatePreview, 300);
- function addTag(tag, attr){
- // For codemirror & center cursor
+ function addTag(editor, tag, attr){
var from = editor.getCursor(true);
var to = editor.getCursor(false);
editor.replaceRange("</"+tag+">", to);
@@ -156,11 +148,62 @@ function handle_new_image(data) {
editor.setCursor({line: to.line , ch : to.ch + 2 + tag.length + attr.length });
}
- function addStr(x){
+ function addStr(editor, x){
var to = editor.getCursor(false);
editor.replaceRange(x, to);
editor.focus();
editor.setCursor({line: to.line , ch : to.ch + x.length });
}
+
+ function add_image_popup(editor) {
+ $('.add-image-popup').addClass('active');
+ window.current_editor = editor;
+ $('#image_popup_content').load("{% url 'image_selector' path %}", function() {
+ $('.thumbnail').click(function(){
+ $(".add-image-popup").removeClass("active");
+ addStr(window.current_editor, $( this ).attr("data-html"))
+ });
+ })
+ }
+
+ function new_image_popup() {
+ $('.add-image-popup').removeClass('active');
+ $('.new-image-popup').addClass('active');
+ $.ajax({
+ type : "GET",
+ dataType: "json",
+ url: "{% url 'new_image_form' path %}",
+ success: function(data){handle_new_image(data)}
+ });
+ }
+
+ function handle_new_image(data) {
+ if (data.hasOwnProperty('form')) {
+ $('#new_image_popup_content').html(data.form);
+ $('#new_image_form').on('submit', function(e){
+ e.preventDefault();
+ data = $('#new_image_form').serialize();
+
+ $.ajax({
+ type : "POST",
+ dataType: "json",
+ url: "{% url 'new_image_form' path %}",
+ data: new FormData($('#new_image_form')[0]),
+ processData: false,
+ contentType: false,
+ success: function(data){
+ handle_new_image(data);
+ }
+ });
+ });
+ }
+ else if (data.hasOwnProperty('html')) {
+ $('.new-image-popup').removeClass('active');
+ addStr(window.current_editor, data.html);
+ }
+ else {
+ alert(data.error);
+ }
+ }
</script>