Javascript refactoring. History view now displays tags
[redakcja.git] / platforma / static / js / wiki / source_editor.js
index 6f7ed3d..0f67110 100644 (file)
@@ -4,26 +4,10 @@
        function CodeMirrorPerspective(doc, callback) 
        {
                this.perspective_id = 'CodeMirrorPerspective';
-               this.doc = doc;
+               this.doc = doc; // document model
                
                var self = this;
                
-               $('#source-editor .toolbar button').click(function(event){
-            event.preventDefault();
-            var params = eval("(" + $(this).attr('ui:action-params') + ")");
-            scriptletCenter.scriptlets[$(this).attr('ui:action')](editor, params);
-        });
-        
-        $('.toolbar select').change(function(event){
-            var slug = $(this).val();
-            
-            $('.toolbar-buttons-container').hide().filter('[data-group=' + slug + ']').show();
-            $(window).resize();
-        });
-        
-        $('.toolbar-buttons-container').hide();
-        $('.toolbar select').change();
-               
                this.codemirror = CodeMirror.fromTextArea('codemirror_placeholder', {                   
                        parserfile: 'parsexml.js',
                        path: STATIC_URL + "js/lib/codemirror/",
                        tabMode: 'spaces',
                        indentUnit: 0,
                        initCallback: function() {
+                               $('#source-editor .toolbar button').click(function(event){
+                   event.preventDefault();
+                   var params = eval("(" + $(this).attr('data-ui-action-params') + ")");
+                       scriptletCenter.scriptlets[$(this).attr('data-ui-action')](self.codemirror, params);
+                       });
+               
+                       $('.toolbar select').change(function(event){
+                           var slug = $(this).val();
+                           
+                           $('.toolbar-buttons-container').hide().filter('[data-group=' + slug + ']').show();
+                           $(window).resize();
+                       });
+               
+                       $('.toolbar-buttons-container').hide();
+                       $('.toolbar select').change();          
+                                               
                                console.log("Initialized CodeMirror");
+                               // textarea is no longer needed
+                               $('codemirror_placeholder').remove();
                                callback.call(self);
                        }       
                });
                if(success) success();
        }
        
+       CodeMirrorPerspective.prototype.onExit = function(success, failure) {
+               $.wiki.Perspective.prototype.onExit.call(this);
+       
+               console.log(this.doc);
+               this.doc.setText(this.codemirror.getCode());
+               if(success) success();
+       }
+       
        $.wiki.CodeMirrorPerspective = CodeMirrorPerspective;
                
 })(jQuery);