Visual editor: editing meta data via contenteditable instead of inputs
[fnpeditor.git] / modules / sourceEditor.js
index ea84ee3..5a62eaf 100644 (file)
@@ -1,11 +1,38 @@
 rng.modules.sourceEditor = function(sandbox) {\r
 \r
+    var view = $(sandbox.getTemplate('main')());\r
+    var isDirty = false;\r
+    \r
+    var editor = ace.edit(view.find('#rng-sourceEditor-editor')[0]);\r
+    editor.setTheme("ace/theme/chrome");\r
+    editor.getSession().setMode("ace/mode/xml");\r
+    $('textarea', view).on('keyup', function() {\r
+        isDirty = true;\r
+    });\r
+    \r
+    editor.getSession().on('change', function() {\r
+        isDirty = true;\r
+    })\r
     return {\r
         start: function() {\r
             sandbox.publish('ready');\r
         },\r
         getView: function() {\r
-            return $('<p>source editor</p>');\r
+            return view;\r
+        },\r
+        setDocument: function(document) {\r
+            editor.setValue(document);\r
+            editor.gotoLine(0)\r
+            isDirty = false;\r
+        },\r
+        getDocument: function() {\r
+            return editor.getValue();\r
+        },\r
+        isDirty: function() {\r
+            return isDirty;\r
+        },\r
+        setDirty: function(dirty) {\r
+            isDirty = dirty;\r
         }\r
     \r
     }\r