Merge branch 'master' of git@stigma.nowoczesnapolska.org.pl:platforma
[redakcja.git] / project / static / js / editor.js
index 3b750ca..585f3ce 100644 (file)
@@ -51,6 +51,7 @@ Panel.prototype.load = function (url) {
                },
         error: function(request, textStatus, errorThrown) {
             $.log('ajax', url, this.target, 'error:', textStatus, errorThrown);
+            $(self.contentDiv).html("<p>Wystapił błąd podczas wczytywania panelu.");
         }
     });
 }
@@ -120,7 +121,7 @@ Editor.prototype.setupUI = function() {
        $('#panels > *.panel-wrap').each(function() {
                var panelWrap = $(this);
                $.log('wrap: ', panelWrap);
-               panel = new Panel(panelWrap);
+               var panel = new Panel(panelWrap);
                panelWrap.data('ctrl', panel); // attach controllers to wraps
         panel.load($('.panel-toolbar select', panelWrap).val());
         
@@ -129,6 +130,9 @@ Editor.prototype.setupUI = function() {
             panelWrap.data('ctrl').load(url);
             self.savePanelOptions();
         });
+
+        $('.panel-toolbar button.refresh-button', panelWrap).click(
+            function() { panel.refresh(); } );            
     });
 
        $(document).bind('panel:contentChanged', function() { self.onContentChanged.apply(self, arguments) });
@@ -144,7 +148,8 @@ Editor.prototype.loadConfig = function() {
         panels: [
             {name: 'htmleditor', ratio: 0.5},
             {name: 'gallery', ratio: 0.5}
-        ]
+        ],
+        lastUpdate: 0,
     }
     
     try {
@@ -196,6 +201,7 @@ Editor.prototype.savePanelOptions = function() {
         })
     });
     self.options.panels = panels;
+    self.options.lastUpdate = (new Date()).getTime() / 1000;
     $.log($.toJSON(self.options));
     $.cookie('options', $.toJSON(self.options), { expires: 7, path: '/'});
 }
@@ -206,7 +212,7 @@ Editor.prototype.saveToBranch = function(msg)
        var self = this;
        $.log('Saving to local branch - panel:', changed_panel);
 
-    if(!msg) msg = "Zapis z edytora platformy.";
+        if(!msg) msg = "Zapis z edytora platformy.";
 
        if( changed_panel.length == 0) {
                $.log('Nothing to save.');
@@ -219,14 +225,21 @@ Editor.prototype.saveToBranch = function(msg)
        }
 
        saveInfo = changed_panel.data('ctrl').saveInfo();
-    $.extend(saveInfo.postData, {'commit_message': msg});
+    var postData = ''
+    
+    if(saveInfo.postData instanceof Object)
+        postData = $.param(saveInfo.postData);
+    else
+        postData = saveInfo.postData;
+
+    postData += '&' + $.param({'commit_message': msg})
 
        $.ajax({
                url: saveInfo.url,
                dataType: 'json',
                success: function(data, textStatus) {
                        if (data.result != 'ok')
-                               $.log('save errors: ', data.errors)
+                               self.showPopup('save-error', data.errors[0]);
                        else {
                                self.refreshPanels(changed_panel);
                 $('#toolbar-button-save').attr('disabled', 'disabled');
@@ -241,7 +254,7 @@ Editor.prototype.saveToBranch = function(msg)
             self.showPopup('save-error');
                },
                type: 'POST',
-               data: saveInfo.postData
+               data: postData
        });
 
     return true;
@@ -300,30 +313,37 @@ Editor.prototype.sendPullRequest = function () {
        }); */
 }
 
-Editor.prototype.showPopup = function(name) 
+Editor.prototype.showPopup = function(name, text
 {
     var self = this;
-    self.popupQueue.push(name)
+    self.popupQueue.push( [name, text] )
 
     if( self.popupQueue.length > 1) 
         return;
 
-    $('#message-box > #' + name).fadeIn();
+    var box = $('#message-box > #' + name);
+    $('*.data', box).html(text);
+    box.fadeIn();
  
-   self._nextPopup = function() {
+    self._nextPopup = function() {
         var elem = self.popupQueue.pop()
         if(elem) {
-            elem = $('#message-box > #' + elem);
-            elem.fadeOut(300, function() {
-                if( self.popupQueue.length > 0) 
-                    $('#message-box > #' + self.popupQueue[0]).fadeIn();
-                    setTimeout(self._nextPopup, 1700);
-            });
+            var box = $('#message-box > #' + elem[0]);
 
+            box.fadeOut(300, function() {
+                $('*.data', box).html();
+    
+                if( self.popupQueue.length > 0) {
+                    box = $('#message-box > #' + self.popupQueue[0][0]);
+                    $('*.data', box).html(self.popupQueue[0][1]);
+                    box.fadeIn();
+                    setTimeout(self._nextPopup, 5000);
+                }
+            });
         }
     }
 
-    setTimeout(self._nextPopup, 2000);
+    setTimeout(self._nextPopup, 5000);
 }