Skip to content
Snippets Groups Projects
Backend.js 3.61 KiB
Newer Older
/***************************************************************
 *  Copyright notice
 *
 *  (c) sgalinski Internet Services (https://www.sgalinski.de)
 *
 *  All rights reserved
 *
 *  This script is part of the TYPO3 project. The TYPO3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
 *
 *  This script is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  This copyright notice MUST APPEAR in all copies of the script!
 ***************************************************************/

define([
	'jquery',
	'TYPO3/CMS/Backend/ModuleMenu',
	'TYPO3/CMS/Backend/Viewport'
], function($, ModuleMenu, Viewport) {
	var SgNewsModule = {
		init: function() {
			$.get(TYPO3.settings.ajaxUrls['sg_news::ajaxPing']);
			$('#filter-reset-btn').on('click', function(event) {
				event.preventDefault();
				this.form.reset();
				$(this).closest('form').find('select').val('');
				$('#filter-search').val('');
				this.form.submit();
			});
			$('.sg-news_pageswitch').on('click', function(event) {
				event.preventDefault();
				SgNewsModule.goTo('web_SgNewsNews', event.target.dataset.page, event.target.dataset.path);
			});
		goTo: function(module, id, path) {
			if (TYPO3.version < 9000000) {
				var tree = top.Ext.getCmp('typo3-pagetree');
				if (tree) {
					tree.activeTree.selectPath(path);
				} else if(top.nav) {
					top.nav.invokePageId(id, function(path) {
						var callback = top.Ext.createDelegate(top.nav.mainTree.selectPath, top.nav.mainTree);
						callback.apply(this, arguments);
						var node = top.nav.getSelected();
						if (node) {
							top.TYPO3.Components.PageTree.Actions.singleClick(node, top.TYPO3.Components.PageTree.Tree);
						}
					});
				}
				parent.TYPO3.ModuleMenu.App.showModule(module, 'id=' + id);
			} else {
				var pageTreeNodes = Viewport.NavigationContainer.PageTree.instance.nodes;
				for (var nodeIndex in pageTreeNodes) {
					if (pageTreeNodes.hasOwnProperty(nodeIndex) && pageTreeNodes[nodeIndex].identifier === parseInt(id)) {
						Viewport.NavigationContainer.PageTree.selectNode(pageTreeNodes[nodeIndex]);
						break;
					}
				ModuleMenu.App.showModule(module, 'id=' + id);
		sgNewsGoToNewsModule: function(uid, path) {
			this.goTo('web_SgNewsNews', uid, path);
		sgNewsGoToPageModule: function(uid, path) {
			this.goTo('web_layout', uid, path);
			return false;
		}
	};

	TYPO3.SgNewsModule = SgNewsModule;

	SgNewsModule.init();
	return SgNewsModule;
});

// functions for backend docheader functionality
function jumpExt(URL, anchor) {
	var anc = anchor ? anchor : "";
	window.location.href = URL + (T3_THIS_LOCATION ? "&returnUrl=" + T3_THIS_LOCATION : "") + anc;
	return false;
}

function jumpSelf(URL) {
	window.location.href = URL + (T3_RETURN_URL ? "&returnUrl=" + T3_RETURN_URL : "");
	return false;
}

function jumpToUrl(URL) {
	window.location.href = URL;
	return false;
}

function setHighlight(id) {
	top.fsMod.recentIds["web"] = id;
	top.fsMod.navFrameHighlightedID["web"] = "pages" + id + "_" + top.fsMod.currentBank;    // For highlighting
	if (top.content && top.content.nav_frame && top.content.nav_frame.refresh_nav) {
		top.content.nav_frame.refresh_nav();
	}
}