X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/8e8b2c44fc1345b2b4ae2806f2ef5f2187d760c0..3ca475c8e10c811633dec531772e18da6e5fa33d:/src/redakcja/static/js/wiki/view_history.js diff --git a/src/redakcja/static/js/wiki/view_history.js b/src/redakcja/static/js/wiki/view_history.js index 6e306391..9ce518cb 100644 --- a/src/redakcja/static/js/wiki/view_history.js +++ b/src/redakcja/static/js/wiki/view_history.js @@ -1,73 +1,64 @@ (function($){ - function HistoryPerspective(options) { - var old_callback = options.callback || function() {}; - - options.callback = function() { - var self = this; - if (CurrentDocument.diff) { - rev_from = CurrentDocument.diff[0]; - rev_to = CurrentDocument.diff[1]; - this.doc.fetchDiff({ - from: rev_from, - to: rev_to, - success: function(doc, data){ - var result = $.wiki.newTab(doc, ''+rev_from +' -> ' + rev_to, 'DiffPerspective'); - - $(result.view).html(data); - $.wiki.switchToTab(result.tab); - } - }); - } + class HistoryPerspective extends $.wiki.Perspective { + constructor(options) { + super(options); + var self = this; - // first time page is rendered + // first time page is rendered $('#make-diff-button').click(function() { - self.makeDiff(); - }); + self.makeDiff(); + }); - $('#pubmark-changeset-button').click(function() { - self.showPubmarkForm(); - }); + $('#pubmark-changeset-button').click(function() { + self.showPubmarkForm(); + }); - $('#doc-revert-button').click(function() { - self.revertDialog(); - }); + $('#doc-revert-button').click(function() { + self.revertDialog(); + }); - $('#open-preview-button').click(function(event) { - var selected = $('#changes-list .entry.selected'); + $('#open-preview-button').click(function(event) { + var selected = $('#changes-list .entry.selected'); - if (selected.length != 1) { + if (selected.length != 1) { window.alert("Wybierz dokładnie *jedną* wersję."); return; - } + } - var version = parseInt($("*[data-stub-value='version']", selected[0]).text()); - window.open($(this).attr('data-basehref') + "?revision=" + version); + var version = parseInt($("*[data-stub-value='version']", selected[0]).text()); + window.open($(this).attr('data-basehref') + "?revision=" + version); - event.preventDefault(); - }); + event.preventDefault(); + }); $(document).on('click', '#changes-list .entry', function(){ - var $this = $(this); + var $this = $(this); - var selected_count = $("#changes-list .entry.selected").length; + var selected_count = $("#changes-list .entry.selected").length; - if ($this.hasClass('selected')) { + if ($this.hasClass('selected')) { $this.removeClass('selected'); selected_count -= 1; - } - else { - if (selected_count < 2) { - $this.addClass('selected'); - selected_count += 1; - }; - }; - - $('#history-view-editor .toolbar button').attr('disabled', 'disabled'). + } + else { + if (selected_count < 2) { + $this.addClass('selected'); + selected_count += 1; + }; + }; + + $('#history-view-editor .toolbar button').attr('disabled', 'disabled'). filter('*[data-enabled-when~="' + selected_count + '"]'). - attr('disabled', null); + attr('disabled', null); }); + $(document).on('click', '#changes-list .entry .approved', function(){ + $("#changes-list .entry.selected").removeClass('selected'); + $(this).closest('.entry').click(); + self.showPubmarkForm(); + return false; + }) $(document).on('click', '#changes-list span.tag', function(event){ return false; }); @@ -80,140 +71,111 @@ self.triggerFetch(); } }); + } - old_callback.call(this); - } - - $.wiki.Perspective.call(this, options); - }; - - HistoryPerspective.prototype = new $.wiki.Perspective(); - - HistoryPerspective.prototype.freezeState = function(){ - // must - }; - - HistoryPerspective.prototype.onEnter = function(success, failure){ - $.wiki.Perspective.prototype.onEnter.call(this); - this.startFetching(); - success && success(); - }; - - HistoryPerspective.prototype.startFetching = function() { - $('#history-view .message-box').html('Wczytywanie historii…').show(); - $('#changes-list').html(''); - this.finished = false; - this.befored = ''; - this.triggerFetch(); - }; - HistoryPerspective.prototype.stopFetching = function() { - self.finished = true; - $('#history-view .message-box').hide() - }; - - - HistoryPerspective.prototype.triggerFetch = function() { - var self = this; - self.fetching = true; - - function _finalize() { - self.fetching = false; + onEnter(success, failure) { + super.onEnter(); + this.startFetching(); + success && success(); } - function _failure(doc, message){ - $('#history-view .message-box').html('Nie udało się odświeżyć historii:' + message).show(); - _finalize(); - }; + startFetching() { + $('#history-view .message-box').html('Wczytywanie historii…').show(); + $('#changes-list').html(''); + this.finished = false; + this.before = ''; + this.triggerFetch(); + } + stopFetching() { + self.finished = true; + $('#history-view .message-box').hide() + } - function _success(doc, data){ - //$('#history-view .message-box').hide(); ONLY AFTER LAST! - var changes_list = $('#changes-list'); - var $stub = $('#history-view .row-stub'); + triggerFetch() { + var self = this; + self.fetching = true; - if (!data.length) { - self.stopFetching(); + function _finalize() { + self.fetching = false; } - $.each(data, function(){ - $.wiki.renderStub({ - container: changes_list, - stub: $stub, - data: this, - }); - self.before = this.version; - if (this.version == 1) { - self.stopFetching(); - } - }); + function _failure(doc, message){ + $('#history-view .message-box').html('Nie udało się odświeżyć historii:' + message).show(); + _finalize(); + }; - _finalize(); - }; + function _success(doc, data){ + //$('#history-view .message-box').hide(); ONLY AFTER LAST! + var changes_list = $('#changes-list'); + var $stub = $('#history-view .row-stub'); - this.doc.fetchHistory({ - success: _success, - failure: _failure, - before: this.before, - }); - } + if (!data.length) { + self.stopFetching(); + } + $.each(data, function(){ + $.wiki.renderStub({ + container: changes_list, + stub: $stub, + data: this, + }); + self.before = this.version; + if (this.version == 1) { + self.stopFetching(); + } + }); - HistoryPerspective.prototype.showPubmarkForm = function(){ - var selected = $('#changes-list .entry.selected'); + _finalize(); + }; - if (selected.length != 1) { - window.alert("Musisz zaznaczyć dokładnie jedną wersję."); - return; + this.doc.fetchHistory({ + success: _success, + failure: _failure, + before: this.before, + }); } - var version = parseInt($("*[data-stub-value='version']", selected[0]).text()); - $.wiki.showDialog('#pubmark_dialog', {'revision': version}); - }; + showPubmarkForm() { + var selected = $('#changes-list .entry.selected'); - HistoryPerspective.prototype.makeDiff = function() { - var changelist = $('#changes-list'); - var selected = $('.entry.selected', changelist); + if (selected.length != 1) { + window.alert("Musisz zaznaczyć dokładnie jedną wersję."); + return; + } - if (selected.length != 2) { - window.alert("Musisz zaznaczyć dokładnie dwie wersje do porównania."); - return; + var version = parseInt($("*[data-stub-value='version']", selected[0]).text()); + var approved = selected.attr('data-approved') == 'true'; + $.wiki.showDialog('#pubmark_dialog', {'revision': version, 'approved': !approved}); } - $.blockUI({ - message: 'Wczytywanie porównania...' - }); - - var rev_from = $("*[data-stub-value='version']", selected[1]).text(); - var rev_to = $("*[data-stub-value='version']", selected[0]).text(); - - return this.doc.fetchDiff({ - from: rev_from, - to: rev_to, - success: function(doc, data){ - var result = $.wiki.newTab(doc, ''+rev_from +' -> ' + rev_to, 'DiffPerspective'); - - $(result.view).html(data); - $.wiki.switchToTab(result.tab); - $.unblockUI(); - }, - failure: function(doc){ - $.unblockUI(); + makeDiff() { + var changelist = $('#changes-list'); + var selected = $('.entry.selected', changelist); + + if (selected.length != 2) { + window.alert("Musisz zaznaczyć dokładnie dwie wersje do porównania."); + return; } - }); - }; - HistoryPerspective.prototype.revertDialog = function(){ - var self = this; - var selected = $('#changes-list .entry.selected'); + var rev_from = $("*[data-stub-value='version']", selected[1]).text(); + var rev_to = $("*[data-stub-value='version']", selected[0]).text(); - if (selected.length != 1) { - window.alert("Musisz zaznaczyć dokładnie jedną wersję."); - return; + $.wiki.DiffPerspective.open(rev_from, rev_to); } - var version = parseInt($("*[data-stub-value='version']", selected[0]).text()); - $.wiki.showDialog('#revert_dialog', {revision: version}); - }; + revertDialog() { + var self = this; + var selected = $('#changes-list .entry.selected'); + if (selected.length != 1) { + window.alert("Musisz zaznaczyć dokładnie jedną wersję."); + return; + } + + var version = parseInt($("*[data-stub-value='version']", selected[0]).text()); + $.wiki.showDialog('#revert_dialog', {revision: version}); + } + } $.wiki.HistoryPerspective = HistoryPerspective; })(jQuery);