* End of javascript refactoring: both editors, history and gallery work as expected.
[redakcja.git] / platforma / static / js / wiki / source_editor.js
index 0f67110..9ca3f64 100644 (file)
@@ -1,49 +1,51 @@
 /* COMMENT */
 (function($) {
        
-       function CodeMirrorPerspective(doc, callback
+       function CodeMirrorPerspective(options
        {
-               this.perspective_id = 'CodeMirrorPerspective';
-               this.doc = doc; // document model
-               
-               var self = this;
-               
-               this.codemirror = CodeMirror.fromTextArea('codemirror_placeholder', {                   
-                       parserfile: 'parsexml.js',
-                       path: STATIC_URL + "js/lib/codemirror/",
-                       stylesheet: STATIC_URL + "css/xmlcolors_15032010.css",
-                       parserConfig: {
-                               useHTMLKludges: false
-                       },
-                       iframeClass: 'xml-iframe',
-                       textWrapping: true,
-                       lineNumbers: true,
-                       width: "100%",
-                       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();          
+               var old_callback = options.callback;        
+        options.callback = function(){         
+                       var self = this;
+                       
+                       this.codemirror = CodeMirror.fromTextArea('codemirror_placeholder', {
+                               parserfile: 'parsexml.js',
+                               path: STATIC_URL + "js/lib/codemirror/",
+                               stylesheet: STATIC_URL + "css/xmlcolors_15032010.css",
+                               parserConfig: {
+                                       useHTMLKludges: false
+                               },
+                               iframeClass: 'xml-iframe',
+                               textWrapping: true,
+                               lineNumbers: false,
+                               width: "100%",
+                               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();
                                                
-                               console.log("Initialized CodeMirror");
-                               // textarea is no longer needed
-                               $('codemirror_placeholder').remove();
-                               callback.call(self);
-                       }       
-               });
+                                               $('.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();
+                                       old_callback.call(self);
+                               }
+                       });     
+               };
+               
+               $.wiki.Perspective.call(this, options);
        };
        
        
@@ -56,7 +58,7 @@
        CodeMirrorPerspective.prototype.onEnter = function(success, failure) {
                $.wiki.Perspective.prototype.onEnter.call(this);
        
-               console.log(this.doc);
+               console.log('Entering', this.doc);
                this.codemirror.setCode(this.doc.text);
                if(success) success();
        }
@@ -64,7 +66,7 @@
        CodeMirrorPerspective.prototype.onExit = function(success, failure) {
                $.wiki.Perspective.prototype.onExit.call(this);
        
-               console.log(this.doc);
+               console.log('Exiting', this.doc);
                this.doc.setText(this.codemirror.getCode());
                if(success) success();
        }