Skip to content
Snippets Groups Projects
Backend.js 3.82 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'], function($) {
	'use strict';
	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();
			});
		},
		// functions for backend docheader functionality
		jumpExt: function(URL, anchor) {
			var anc = anchor ? anchor : "";
			window.location.href = URL + (T3_THIS_LOCATION ? "&returnUrl=" + T3_THIS_LOCATION : "") + anc;
			return false;
		},
		jumpSelf: function(URL) {
			window.location.href = URL + (T3_RETURN_URL ? "&returnUrl=" + T3_RETURN_URL : "");
			return false;
		},
		jumpToUrl: function(URL) {
			window.location.href = URL;
			return false;
		},
		setHighlight: function(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();
			}
		},
		/**
		 * Switches to the spefied page in the BE
		 *
		 * @param {number} uid
		 * @param {string} path
		 */
		sgNewsGoToPage: function(uid, path, selectOnly) {
			parent.fsMod.recentIds['web'] = uid;
			if (typeof selectOnly === 'undefined') {
				selectOnly = false;
			}
			selectOnly = Boolean(selectOnly);
			if (top.nav) {
				if (selectOnly) {
					top.nav.invokePageId(uid, SgNewsModule.gotToPageCallbackNoFollow);
				} else {
					top.nav.invokePageId(uid, SgNewsModule.gotToPageCallback);
				}
			} else {
				var tree = top.Ext.getCmp('typo3-pagetree');
				if (tree) {
					tree.activeTree.selectPath(path);
				}
				if (selectOnly) {
					return;
				}
				var separator = '?';
				if (top.currentSubScript.indexOf('?') !== -1) {
					separator = '&';
				}
				top.TYPO3.Backend.ContentContainer.setUrl(
					top.currentSubScript + separator + 'id=' + uid
				);
			}
		},
		/**
		 * Callback for page selection in the pagetree without follow
		 */
		gotToPageCallbackNoFollow: function(path) {
			var callback = top.Ext.createDelegate(top.nav.mainTree.selectPath, top.nav.mainTree);
			callback.apply(this, arguments);
		},
		/**
		 * Callback for page selection in the pagetree
		 */
		gotToPageCallback: 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);
			}
		},
		sgNewsGoToPageModule: function(uid, path) {
			SgNewsModule.sgNewsGoToPage(uid, path, true);
			parent.TYPO3.ModuleMenu.App.showModule('web_layout');
			return false;
		}
	};

	TYPO3.SgNewsModule = SgNewsModule;

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