Просмотр исходного кода

added option to define which settings page tab will open by default

CauseFX 4 лет назад
Родитель
Сommit
15d9924ec7
6 измененных файлов с 126 добавлено и 97 удалено
  1. 10 16
      api/classes/organizr.class.php
  2. 2 1
      api/config/default.php
  3. 30 0
      api/functions/organizr-functions.php
  4. 83 0
      api/pages/settings.php
  5. 0 1
      index.php
  6. 1 79
      js/cbpFWTabs.js

+ 10 - 16
api/classes/organizr.class.php

@@ -1717,6 +1717,16 @@ class Organizr
 	public function getSettingsMain()
 	{
 		return array(
+			'Settings Page' => array(
+				array(
+					'type' => 'select',
+					'name' => 'defaultSettingsTab',
+					'label' => 'Default Settings Tab',
+					'value' => $this->config['defaultSettingsTab'],
+					'options' => $this->getSettingsTabs(),
+					'help' => 'Choose which Settings Tab to be default when opening settings page'
+				),
+			),
 			'Github' => array(
 				array(
 					'type' => 'select',
@@ -2091,22 +2101,6 @@ class Organizr
 					)
 				)
 			),
-			'Performance' => array(
-				array(
-					'type' => 'switch',
-					'name' => 'performanceDisableIconDropdown',
-					'label' => 'Disable Icon Dropdown',
-					'help' => 'Disable select dropdown boxes on new and edit tab forms',
-					'value' => $this->config['performanceDisableIconDropdown'],
-				),
-				array(
-					'type' => 'switch',
-					'name' => 'performanceDisableImageDropdown',
-					'label' => 'Disable Image Dropdown',
-					'help' => 'Disable select dropdown boxes on new and edit tab forms',
-					'value' => $this->config['performanceDisableImageDropdown'],
-				),
-			),
 			'Login' => array(
 				array(
 					'type' => 'password-alt',

+ 2 - 1
api/config/default.php

@@ -495,5 +495,6 @@ return array(
 	'traktAccessTokenExpires' => '',
 	'traktRefreshToken' => '',
 	'autoCollapseCategories' => false,
-	'autoExpandNavBar' => true
+	'autoExpandNavBar' => true,
+	'defaultSettingsTab' => '5'
 );

+ 30 - 0
api/functions/organizr-functions.php

@@ -283,6 +283,36 @@ trait OrganizrFunctions
 		);
 	}
 	
+	public function getSettingsTabs()
+	{
+		return array(
+			array(
+				'name' => 'Tab Editor',
+				'value' => '0'
+			),
+			array(
+				'name' => 'Customize',
+				'value' => '1'
+			),
+			array(
+				'name' => 'User Management',
+				'value' => '2'
+			),
+			array(
+				'name' => 'Image Manager',
+				'value' => '3'
+			),
+			array(
+				'name' => 'Plugins',
+				'value' => '4'
+			),
+			array(
+				'name' => 'System Settings',
+				'value' => '5'
+			)
+		);
+	}
+	
 	public function getAuthTypes()
 	{
 		return array(

+ 83 - 0
api/pages/settings.php

@@ -14,6 +14,89 @@ function get_page_settings($Organizr)
 	$Organizr->writeLog('success', 'Admin Function -  Accessed Settings Page', $Organizr->user['username']);
 	return $Organizr->pluginFiles('js', true) . '
 <script>
+	/**
+	 * cbpFWTabs.js v1.0.0
+	 * http://www.codrops.com
+	 *
+	 * Licensed under the MIT license.
+	 * http://www.opensource.org/licenses/mit-license.php
+	 *
+	 * Copyright 2014, Codrops
+	 * http://www.codrops.com
+	 */
+	;( function( window ) {
+	
+		\'use strict\';
+	
+		function extend( a, b ) {
+			for( var key in b ) {
+				if( b.hasOwnProperty( key ) ) {
+					a[key] = b[key];
+				}
+			}
+			return a;
+		}
+	
+		function CBPFWTabs( el, options ) {
+			this.el = el;
+			this.options = extend( {}, this.options );
+	        extend( this.options, options );
+	        this._init();
+		}
+	
+		CBPFWTabs.prototype.options = {
+			start : 0
+		};
+	
+		CBPFWTabs.prototype._init = function() {
+			// tabs elems
+			this.tabs = [].slice.call( this.el.querySelectorAll( \'nav > ul > li\' ) );
+			// content items
+			this.items = [].slice.call( this.el.querySelectorAll( \'.content-wrap > section\' ) );
+			// current index
+			this.current = -1;
+			// show current content item
+			try{
+				if(this.tabs[0].innerHTML.indexOf(\'#settings\') >= 0){
+					this._show(' . $Organizr->config['defaultSettingsTab'] . ');
+					let tabId = $(this.items[' . $Organizr->config['defaultSettingsTab'] . ']).attr("id") + "-anchor";
+					$("#" + tabId).click();
+					$("#" + tabId + " a").click();
+				}else{
+					this._show();
+				}
+			}catch{
+				this._show();
+			}
+			// init events
+			this._initEvents();
+		};
+	
+		CBPFWTabs.prototype._initEvents = function() {
+			var self = this;
+			this.tabs.forEach( function( tab, idx ) {
+				tab.addEventListener( \'click\', function( ev ) {
+					ev.preventDefault();
+					self._show( idx );
+				} );
+			} );
+		};
+	
+		CBPFWTabs.prototype._show = function( idx ) {
+			if( this.current >= 0 ) {
+				this.tabs[ this.current ].className = this.items[ this.current ].className = \'\';
+			}
+			// change current
+			this.current = idx != undefined ? idx : this.options.start >= 0 && this.options.start < this.items.length ? this.options.start : 0;
+			this.tabs[ this.current ].className = \'tab-current\';
+			this.items[ this.current ].className = \'content-current\';
+		};
+	
+		// add to global namespace
+		window.CBPFWTabs = CBPFWTabs;
+	
+	})( window );
+
     (function() {
         updateCheck();
         authDebugCheck();

+ 0 - 1
index.php

@@ -192,7 +192,6 @@ $Organizr = new Organizr();
 <script src="plugins/bower_components/jquery-wizard-master/libs/formvalidation/bootstrap.min.js"></script>
 <script src="js/bowser.min.js"></script>
 <script src="js/jasny-bootstrap.js"></script>
-<script src="js/cbpFWTabs.js?v=<?php echo $Organizr->fileHash; ?>"></script>
 <script src="js/js.cookie.js"></script>
 <script src="js/jquery-lang.min.js"></script>
 <script src="js/jquery-ui.min.js"></script>

+ 1 - 79
js/cbpFWTabs.js

@@ -1,79 +1 @@
-/**
- * cbpFWTabs.js v1.0.0
- * http://www.codrops.com
- *
- * Licensed under the MIT license.
- * http://www.opensource.org/licenses/mit-license.php
- *
- * Copyright 2014, Codrops
- * http://www.codrops.com
- */
-;( function( window ) {
-
-	'use strict';
-
-	function extend( a, b ) {
-		for( var key in b ) {
-			if( b.hasOwnProperty( key ) ) {
-				a[key] = b[key];
-			}
-		}
-		return a;
-	}
-
-	function CBPFWTabs( el, options ) {
-		this.el = el;
-		this.options = extend( {}, this.options );
-  		extend( this.options, options );
-  		this._init();
-	}
-
-	CBPFWTabs.prototype.options = {
-		start : 0
-	};
-
-	CBPFWTabs.prototype._init = function() {
-		// tabs elems
-		this.tabs = [].slice.call( this.el.querySelectorAll( 'nav > ul > li' ) );
-		// content items
-		this.items = [].slice.call( this.el.querySelectorAll( '.content-wrap > section' ) );
-		// current index
-		this.current = -1;
-		// show current content item
-		try{
-			if(this.tabs[0].innerHTML.indexOf('#settings') >= 0){
-				this._show(5);
-			}else{
-				this._show();
-			}
-		}catch{
-			this._show();
-		}
-		// init events
-		this._initEvents();
-	};
-
-	CBPFWTabs.prototype._initEvents = function() {
-		var self = this;
-		this.tabs.forEach( function( tab, idx ) {
-			tab.addEventListener( 'click', function( ev ) {
-				ev.preventDefault();
-				self._show( idx );
-			} );
-		} );
-	};
-
-	CBPFWTabs.prototype._show = function( idx ) {
-		if( this.current >= 0 ) {
-			this.tabs[ this.current ].className = this.items[ this.current ].className = '';
-		}
-		// change current
-		this.current = idx != undefined ? idx : this.options.start >= 0 && this.options.start < this.items.length ? this.options.start : 0;
-		this.tabs[ this.current ].className = 'tab-current';
-		this.items[ this.current ].className = 'content-current';
-	};
-
-	// add to global namespace
-	window.CBPFWTabs = CBPFWTabs;
-
-})( window );
+/* no more file */