insert_tag - inserts only end tag, when no text selected - fixed.
[redakcja.git] / project / static / js / editor.js
index 8267097..f94d33c 100644 (file)
@@ -253,7 +253,9 @@ Panel.prototype.isHotkey = function(event) {
     if(event.ctrlKey) code = code | 0x200;
     if(event.shiftKey) code = code | 0x400;
 
     if(event.ctrlKey) code = code | 0x200;
     if(event.shiftKey) code = code | 0x400;
 
-    if(this.hotkeys[code] !== null) {
+    $.log(event.character, this.hotkeys[code]);
+
+    if(this.hotkeys[code]) {
         return true;
     }
     return false;
         return true;
     }
     return false;
@@ -298,9 +300,25 @@ Editor.prototype.loadConfig = function() {
     } catch (e) {    
         this.options = defaultOptions;
     }
     } catch (e) {    
         this.options = defaultOptions;
     }
+    
+    this.fileOptions = this.options;
+    var self = this;
+
+    if(!this.options.recentFiles)
+        this.options.recentFiles = [];
+
+    $.each(this.options.recentFiles, function(index) {
+        if (fileId == self.options.recentFiles[index].fileId) {
+            $.log('Found options for', fileId);
+            self.fileOptions = self.options.recentFiles[index];
+        }
+    });
+    
     $.log(this.options);
     $.log(this.options);
+    $.log('fileOptions', this.fileOptions);
     
     this.loadPanelOptions();
     
     this.loadPanelOptions();
+    this.savePanelOptions();
 };
 
 Editor.prototype.loadPanelOptions = function() {
 };
 
 Editor.prototype.loadPanelOptions = function() {
@@ -308,7 +326,7 @@ Editor.prototype.loadPanelOptions = function() {
     var totalWidth = 0;
     
     $('.panel-wrap', self.rootDiv).each(function(index) {
     var totalWidth = 0;
     
     $('.panel-wrap', self.rootDiv).each(function(index) {
-        var panelWidth = self.options.panels[index].ratio * self.rootDiv.width();
+        var panelWidth = self.fileOptions.panels[index].ratio * self.rootDiv.width();
         if ($(this).hasClass('last-panel')) {
             $(this).css({
                 left: totalWidth,
         if ($(this).hasClass('last-panel')) {
             $(this).css({
                 left: totalWidth,
@@ -323,7 +341,7 @@ Editor.prototype.loadPanelOptions = function() {
         }
         $.log('panel:', this, $(this).css('left'));
         $('.panel-toolbar option', this).each(function() {
         }
         $.log('panel:', this, $(this).css('left'));
         $('.panel-toolbar option', this).each(function() {
-            if ($(this).attr('p:panel-name') == self.options.panels[index].name) {
+            if ($(this).attr('p:panel-name') == self.fileOptions.panels[index].name) {
                 $(this).parent('select').val($(this).attr('value'));
             }
         });
                 $(this).parent('select').val($(this).attr('value'));
             }
         });
@@ -340,8 +358,20 @@ Editor.prototype.savePanelOptions = function() {
         });
     });
     self.options.panels = panels;
         });
     });
     self.options.panels = panels;
+
+    // Dodaj obecnie oglÄ…dany plik do listy recentFiles
+    var recentFiles = [{fileId: fileId, panels: panels}];
+    var count = 1;
+    $.each(self.options.recentFiles, function(index) {
+        if (count < 5 && fileId != self.options.recentFiles[index].fileId) {
+            recentFiles.push(self.options.recentFiles[index]);
+            count++;
+        }
+    });
+    self.options.recentFiles = recentFiles;
+    
     self.options.lastUpdate = new Date().getTime() / 1000;
     self.options.lastUpdate = new Date().getTime() / 1000;
-    $.log($.toJSON(self.options));
+    $.log($.toJSON(self.options));    
     $.cookie('options', $.toJSON(self.options), {
         expires: 7,
         path: '/'
     $.cookie('options', $.toJSON(self.options), {
         expires: 7,
         path: '/'
@@ -354,7 +384,7 @@ Editor.prototype.saveToBranch = function(msg)
     var self = this;
     $.log('Saving to local branch - panel:', changed_panel);
 
     var self = this;
     $.log('Saving to local branch - panel:', changed_panel);
 
-    if(!msg) msg = "Zapis z edytora platformy.";
+    if(!msg) msg = "Szybki zapis z edytora platformy.";
 
     if( changed_panel.length === 0) {
         $.log('Nothing to save.');
 
     if( changed_panel.length === 0) {
         $.log('Nothing to save.');
@@ -395,7 +425,7 @@ Editor.prototype.saveToBranch = function(msg)
                 if(self.autosaveTimer) {
                     clearTimeout(self.autosaveTimer);
                 }
                 if(self.autosaveTimer) {
                     clearTimeout(self.autosaveTimer);
                 }
-                if (data.warnings === null) {
+                if (data.warnings === null || data.warning === undefined) {
                     self.showPopup('save-successful');
                 } else {
                     self.showPopup('save-warn', data.warnings[0]);
                     self.showPopup('save-successful');
                 } else {
                     self.showPopup('save-warn', data.warnings[0]);
@@ -426,9 +456,8 @@ Editor.prototype.autoSave = function()
 Editor.prototype.onContentChanged = function(event, data) {
     var self = this;
 
 Editor.prototype.onContentChanged = function(event, data) {
     var self = this;
 
-    $('#toolbar-button-save').removeAttr('disabled');
-    $('#toolbar-button-commit').attr('disabled', 'disabled');
-    $('#toolbar-button-update').attr('disabled', 'disabled');
+    $('button.provides-save').removeAttr('disabled');
+    $('button.requires-save').attr('disabled', 'disabled');
     
     if(this.autosaveTimer) return;
     this.autosaveTimer = setTimeout( function() {
     
     if(this.autosaveTimer) return;
     this.autosaveTimer = setTimeout( function() {
@@ -471,9 +500,8 @@ Editor.prototype.sendMergeRequest = function (message) {
         alert("There are unsaved changes - can't commit.");
     }
 
         alert("There are unsaved changes - can't commit.");
     }
 
-    var self =  this;
-    $.log('URL !: ', $('#commit-dialog form').attr('action'));
-    
+    var self =  this;    
+        
     $.ajax({        
         url: $('#commit-dialog form').attr('action'),
         dataType: 'json',
     $.ajax({        
         url: $('#commit-dialog form').attr('action'),
         dataType: 'json',