0byt3m1n1
Path:
/
data
/
applications
/
aps
/
typo3
/
4.5.5-0
/
standard
/
htdocs
/
t3lib
/
js
/
extjs
/
[
Home
]
File: notifications.js
/*************************************************************** * Copyright notice * * (c) 2010-2011 Oliver Hader <oliver@typo3.org> * (c) 2010-2011 Steffen Kamper <steffen@typo3.org> * 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 2 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. * A copy is found in the textfile GPL.txt and important notices to the license * from the author is found in LICENSE.txt distributed with these scripts. * * * 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! ***************************************************************/ Ext.ns('TYPO3', 'TYPO3.Components'); /** * TYPO3window - General TYPO3 window component */ TYPO3.Components.Window = Ext.extend(Ext.Window, { width: 450, autoHeight: true, closable: true, resizable: false, plain: true, border: false, modal: true, draggable: true, closeAction: 'hide', cls: 't3-window', constructor: function(config) { config = config || {}; Ext.apply(this, config); TYPO3.Components.Window.superclass.constructor.call(this, config); } }); Ext.reg('TYPO3window', TYPO3.Components.Window); /** * Helper class for managing windows. * Once a window is created, it is permanent until you close * [TYPO3.Windows.close(id)] or remove all [TYPO3.Windows.closeAll()] * * Example usage: * * var w = TYPO3.Windows.getWindow({ * title: 'Testwindow', * html: 'some content!', * width: 400 * }).show(); */ TYPO3.Windows = function() { /** @private */ var windowCollection = new Ext.util.MixedCollection(true); return { /** @public */ /** * Get a window. If already in collection return it, otherwise create a new one * * @param {Object} configuration * @return {Object} window */ getWindow: function(configuration) { var id = configuration.id || '', window; if (id) { window = this.getById(id); } if (window) { return window; } else { window = new TYPO3.Components.Window(configuration); windowCollection.add(window); return window; } }, /** * Get a window and show. If already in collection return it, otherwise create a new one * * @param {Object} configuration * @return {Object} window */ showWindow: function(configuration) { var window = this.getWindow(configuration); window.show(); return window; }, /** * Shows window with id and return reference. If not exist return false * * @param {String} id * @return {Object} window false if not found */ show: function(id) { var window = this.getById(id); if (window) { window.show(); return window; } return false; }, /** * Shows window with id and return reference. If not exist return false * * @param {String} id * @return {Object} window or false if not found */ getById: function(id) { return windowCollection.key(id); }, /** * Get the window collection * * @return {Ext.util.MixedCollection} windowCollection */ getCollection: function () { return windowCollection; }, /** * Get count of windows * * @return {Int} count */ getCount: function() { return windowCollection.length; }, /** * Each for windowCollection * * @param {Function} function * @param {Object} scope * @return void */ each : function(fn, scope) { windowCollection.each(fn, scope); }, /** * Close window and remove from stack * * @param {Int} id * @return void */ close: function(id) { var window = this.getById(id); if (window) { window.close(); windowCollection.remove(window); } }, /** * Close all windows and clear stack * * @return void */ closeAll: function() { windowCollection.each(function(window) { window.close(); }); windowCollection.clear(); } } }(); /** * Helper class for dialog windows * * Example usage: * * TYPO3.Dialog.InformationDialog({ * title: 'Test', * msg: 'some information' * }); */ TYPO3.Dialog = function() { /** @private functions */ var informationDialogConfiguration = { buttons: Ext.MessageBox.OK, icon: Ext.MessageBox.INFO, fn: Ext.emptyFn }; var questionDialogConfiguration = { buttons: Ext.MessageBox.YESNO, icon: Ext.MessageBox.QUESTION }; var warningDialogConfiguration = { buttons: Ext.MessageBox.OK, icon: Ext.MessageBox.WARNING, fn: Ext.emptyFn }; var errorDialogConfiguration = { buttons: Ext.MessageBox.OK, icon: Ext.MessageBox.ERROR, fn: Ext.emptyFn }; return { /** @public functions */ InformationDialog: function(configuration) { configuration = configuration || {}; configuration = Ext.apply( informationDialogConfiguration, configuration ); Ext.Msg.show(configuration); }, QuestionDialog: function(configuration) { configuration = configuration || {}; configuration = Ext.apply( questionDialogConfiguration, configuration ); Ext.Msg.show(configuration); }, WarningDialog: function(configuration) { configuration = configuration || {}; configuration = Ext.apply( warningDialogConfiguration, configuration ); Ext.Msg.show(configuration); }, ErrorDialog: function(configuration) { configuration = configuration || {}; configuration = Ext.apply( errorDialogConfiguration, configuration ); Ext.Msg.show(configuration); } } }(); /** * Helper class for dialog windows * * Example usage: * * TYPO3.ContextHelpWindow.open(identifier); */ TYPO3.ContextHelpWindow = function() { /** * Path to typo3 directory * * @type {String} * @private */ var typo3Path = ''; /** * Context for open a window * "window" - open a new window * "inline" - open a TYPO3.Window (not currently implementy) * * @type {String} * @private */ var openContext; /** * Width for the window * * @type {Number} * @private */ var width; /** * Height of the window * * @type {Number} * @private */ var height; return { /** * init class vars * * @return void */ init: function() { this.typo3Path = top.TYPO3.configuration.PATH_typo3; this.openContext = 'window'; this.width = top.TYPO3.configuration.ContextHelpWindows.width; this.height = top.TYPO3.configuration.ContextHelpWindows.height; }, /** * Open window for TYPO3 inline help * * @param {String} help identifier * @return {Object} window */ open: function(helpIdentifier) { if (this.openContext === 'window') { var cshWindow = window.open( this.typo3Path + 'view_help.php?tfID=' + helpIdentifier, 'ContextHelpWindow', 'height=' + this.height + ',width=' + this.width + ',status=0,menubar=0,scrollbars=1' ); cshWindow.focus(); return cshWindow; } } } }();