X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/087829d6b0ab58254c1d702f131978b48ddba372..21c8ba33691b168fbc69ab7f663d1b6fb99808d9:/redakcja/static/js/wiki/loader.js diff --git a/redakcja/static/js/wiki/loader.js b/redakcja/static/js/wiki/loader.js index f0515113..1223992b 100644 --- a/redakcja/static/js/wiki/loader.js +++ b/redakcja/static/js/wiki/loader.js @@ -5,7 +5,7 @@ if (!window.console) { } } -var DEFAULT_PERSPECTIVE = "#SummaryPerspective"; +var DEFAULT_PERSPECTIVE = "#VisualPerspective"; $(function() { @@ -17,6 +17,23 @@ $(function() function initialize() { + var splitter = $('#splitter'), + editors = $('#editor .editor'), + vsplitbar = $('.vsplitbar'), + sidebar = $('#sidebar'), + dragLayer = $('#drag-layer'), + vsplitbarWidth = vsplitbar.outerWidth(), + isHolding = false; + + // Moves panes so that left border of the vsplitbar lands x pixels from the left border of the splitter + function setSplitbarAt(x) { + var right = splitterWidth - x; + editors.each(function() { + this.style.right = right + 'px'; + }); + vsplitbar[0].style.right = sidebar[0].style.width = (right - vsplitbarWidth) + 'px'; + }; + $(document).keydown(function(event) { console.log("Received key:", event); }); @@ -33,6 +50,7 @@ $(function() * TABS */ $('.tabs li').live('click', function(event, callback) { + event.preventDefault(); $.wiki.switchToTab(this); }); @@ -51,40 +69,56 @@ $(function() $(window).resize(function(){ $('iframe').height($(window).height() - $('#tabs').outerHeight() - $('#source-editor .toolbar').outerHeight()); + splitterWidth = splitter.width(); }); $(window).resize(); - $('.vsplitbar').toggle( + vsplitbar.toggle( function() { $.wiki.state.perspectives.ScanGalleryPerspective.show = true; - $('#sidebar').show(); - $(".vsplitbar-title").html("↓ GALLERY ↓"); - $('.vsplitbar').css('right', 480).addClass('active'); - $('#editor .editor').css('right', 510); + setSplitbarAt(splitterWidth - (480 + vsplitbarWidth)); + $('.vsplitbar').addClass('active'); $(window).resize(); $.wiki.perspectiveForTab('#tabs-right .active').onEnter(); }, function() { + var active_right = $.wiki.perspectiveForTab('#tabs-right .active'); $.wiki.state.perspectives.ScanGalleryPerspective.show = false; - $('#sidebar').hide(); - $('.vsplitbar').css('right', 0).removeClass('active'); - if($(".vsplitbar-title").html() == "↓ SEARCH AND REPLACE â†“"){ - $(".vsplitbar-title").html("↑ SEARCH AND REPLACE ↑"); - } else { - $(".vsplitbar-title").html("↑ GALLERY ↑"); - } - $('#editor .editor').css('right', 30); + $(".vsplitbar-title").html("↑ " + active_right.vsplitbar + " ↑"); + setSplitbarAt(splitterWidth - vsplitbarWidth); + $('.vsplitbar').removeClass('active'); $(window).resize(); - $.wiki.perspectiveForTab('#tabs-right .active').onExit(); + active_right.onExit(); } ); + + /* Splitbar dragging support */ + vsplitbar + .mousedown(function(e) { + e.preventDefault(); + isHolding = true; + }) + .mousemove(function(e) { + if(isHolding) { + dragLayer.show(); // We don't show it up until now so that we don't lose single click events on vsplitbar + } + }); + dragLayer.mousemove(function(e) { + setSplitbarAt(e.clientX - vsplitbarWidth/2); + }); + $('body').mouseup(function(e) { + dragLayer.hide(); + isHolding = false; + }); + + if($.wiki.state.perspectives.ScanGalleryPerspective.show){ $('.vsplitbar').trigger('click'); - $(".vsplitbar-title").html("↓ GALLERY ↓"); + $(".vsplitbar-title").html("↓ GALERIA ↓"); } else { - $(".vsplitbar-title").html("↑ GALLERY ↑"); + $(".vsplitbar-title").html("↑ GALERIA ↑"); } window.onbeforeunload = function(e) { if($.wiki.isDirty()) { @@ -114,6 +148,14 @@ $(function() console.log("Initial tab is:", active_tab) $.wiki.switchToTab(active_tab); + + /* every 5 minutes check for a newer version */ + var revTimer = setInterval(function() { + CurrentDocument.checkRevision({outdated: function(){ + $('#header').addClass('out-of-date'); + clearInterval(revTimer); + }}); + }, 300000); }, failure: function() { $('#loading-overlay').fadeOut();