var App = App || {}; App.Presenters = App.Presenters || {}; App.Presenters.HistoryPresenter = function( _, jQuery, util, promise, auth, pagerPresenter, topNavigationPresenter) { var $el = jQuery('#content'); var templates = {}; var params; function init(params, loaded) { topNavigationPresenter.changeTitle('History'); promise.wait( util.promiseTemplate('global-history'), util.promiseTemplate('history')) .then(function(historyWrapperTemplate, historyTemplate) { templates.historyWrapper = historyWrapperTemplate; templates.history = historyTemplate; render(); loaded(); pagerPresenter.init({ baseUri: '#/history', backendUri: '/history', $target: $el.find('.pagination-target'), updateCallback: function($page, data) { renderHistory($page, data.entities); }, }, function() { reinit(params, function() {}); }); }).fail(function() { console.log(arguments); loaded(); }); } function reinit(_params, loaded) { params = _params; params.query = params.query || {}; pagerPresenter.reinit({query: params.query}); loaded(); } function deinit() { pagerPresenter.deinit(); } function render() { $el.html(templates.historyWrapper()); } function renderHistory($page, historyItems) { $page.append(templates.history({ formatRelativeTime: util.formatRelativeTime, history: historyItems})); } return { init: init, reinit: reinit, deinit: deinit, render: render, }; }; App.DI.register('historyPresenter', ['_', 'jQuery', 'util', 'promise', 'auth', 'pagerPresenter', 'topNavigationPresenter'], App.Presenters.HistoryPresenter);