From 62238a169d6763a62770259e52721f7e9747d7b2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?L=C3=B3na=20Lore?= <lonalore@freemail.hu>
Date: Thu, 2 Feb 2017 22:49:55 +0100
Subject: [PATCH] Added Addon-Updates menu to flexpanel.

---
 e107_admin/includes/flexpanel.php         | 472 +++++++++++-----------
 e107_admin/includes/layouts/flexpanel.php |  56 +++
 2 files changed, 291 insertions(+), 237 deletions(-)
 create mode 100644 e107_admin/includes/layouts/flexpanel.php

diff --git a/e107_admin/includes/flexpanel.php b/e107_admin/includes/flexpanel.php
index e46e2bc09..aaef79494 100644
--- a/e107_admin/includes/flexpanel.php
+++ b/e107_admin/includes/flexpanel.php
@@ -223,6 +223,14 @@ class adminstyle_flexpanel extends adminstyle_infopanel
 		// $panels['Area01'] .= $this->renderLatestComments(); // TODO
 
 
+		// --------------------- Add-on updates ---------------------------
+		$tp->parseTemplate("{SETSTYLE=flexpanel}");
+		$ns->setUniqueId('e-addon-updates');
+		$addonUpdates = $tp->parseTemplate("{ADMIN_ADDON_UPDATES}", true, $admin_sc);
+		$info = $this->getMenuPosition('e-addon-updates');
+		$panels[$info['area']][$info['weight']] .= $addonUpdates;
+
+
 		// --------------------- User Selected Menus ----------------------
 		if(varset($user_pref['core-infopanel-menus']))
 		{
@@ -294,249 +302,239 @@ class adminstyle_flexpanel extends adminstyle_infopanel
 			'weight' => 1000,
 		);
 
-		switch(varset($user_pref['core-flexpanel-layout'], 'default'))
+		$positions = $this->getDefaultPositions();
+
+		$layout = varset($user_pref['core-flexpanel-layout'], 'default');
+
+		if(!empty($positions[$layout][$id]))
 		{
-			case 'two_col_bricks':
-				if($id == 'core-infopanel_help')
-				{
-					$default['area'] = 'menu-area-01';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'e-latest-list')
-				{
-					$default['area'] = 'menu-area-04';
-					$default['weight'] = 1;
-				}
-
-				if($id == 'e-status-list')
-				{
-					$default['area'] = 'menu-area-04';
-					$default['weight'] = 2;
-				}
-
-				if($id == 'core-infopanel_mye107')
-				{
-					$default['area'] = 'menu-area-02';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'core-infopanel_news')
-				{
-					$default['area'] = 'menu-area-03';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'core-infopanel_website_status')
-				{
-					$default['area'] = 'menu-area-03';
-					$default['weight'] = 1;
-				}
-				break;
-
-			case 'two_col_stacked':
-				if($id == 'core-infopanel_help')
-				{
-					$default['area'] = 'menu-area-01';
-					$default['weight'] = 1;
-				}
-
-				if($id == 'e-latest-list')
-				{
-					$default['area'] = 'menu-area-04';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'e-status-list')
-				{
-					$default['area'] = 'menu-area-05';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'core-infopanel_mye107')
-				{
-					$default['area'] = 'menu-area-02';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'core-infopanel_news')
-				{
-					$default['area'] = 'menu-area-03';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'core-infopanel_website_status')
-				{
-					$default['area'] = 'menu-area-12';
-					$default['weight'] = 1;
-				}
-				break;
-
-			case 'three_col_bricks':
-				if($id == 'core-infopanel_help')
-				{
-					$default['area'] = 'menu-area-02';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'e-latest-list')
-				{
-					$default['area'] = 'menu-area-03';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'e-status-list')
-				{
-					$default['area'] = 'menu-area-04';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'core-infopanel_mye107')
-				{
-					$default['area'] = 'menu-area-01';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'core-infopanel_news')
-				{
-					$default['area'] = 'menu-area-09';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'core-infopanel_website_status')
-				{
-					$default['area'] = 'menu-area-13';
-					$default['weight'] = 0;
-				}
-				break;
-
-			case 'three_col_stacked':
-				if($id == 'core-infopanel_help')
-				{
-					$default['area'] = 'menu-area-03';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'e-latest-list')
-				{
-					$default['area'] = 'menu-area-04';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'e-status-list')
-				{
-					$default['area'] = 'menu-area-05';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'core-infopanel_mye107')
-				{
-					$default['area'] = 'menu-area-02';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'core-infopanel_news')
-				{
-					$default['area'] = 'menu-area-12';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'core-infopanel_website_status')
-				{
-					$default['area'] = 'menu-area-13';
-					$default['weight'] = 0;
-				}
-				break;
-
-			case 'one_col':
-				if($id == 'core-infopanel_help')
-				{
-					$default['area'] = 'menu-area-01';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'e-latest-list')
-				{
-					$default['area'] = 'menu-area-02';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'e-status-list')
-				{
-					$default['area'] = 'menu-area-03';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'core-infopanel_mye107')
-				{
-					$default['area'] = 'menu-area-04';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'core-infopanel_news')
-				{
-					$default['area'] = 'menu-area-05';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'core-infopanel_website_status')
-				{
-					$default['area'] = 'menu-area-06';
-					$default['weight'] = 0;
-				}
-				break;
-
-			case 'wider_sidebar':
-			case 'default':
-			default:
-
-				if($id == 'e-addon-updates')
-				{
-					$default['area'] = 'menu-area-01';
-					$default['weight'] = 1;
-				}
-
-				if($id == 'core-infopanel_help')
-				{
-					$default['area'] = 'menu-area-01';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'e-latest-list')
-				{
-					$default['area'] = 'menu-area-01';
-					$default['weight'] = 1;
-				}
-
-				if($id == 'e-status-list')
-				{
-					$default['area'] = 'menu-area-01';
-					$default['weight'] = 2;
-				}
-
-				if($id == 'core-infopanel_mye107')
-				{
-					$default['area'] = 'menu-area-07';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'core-infopanel_news')
-				{
-					$default['area'] = 'menu-area-08';
-					$default['weight'] = 0;
-				}
-
-				if($id == 'core-infopanel_website_status')
-				{
-					$default['area'] = 'menu-area-08';
-					$default['weight'] = 1;
-				}
-				break;
+			return $positions[$layout][$id];
 		}
 
 		return $default;
 	}
 
+	/**
+	 * Get default menu positions.
+	 *
+	 * @return array
+	 */
+	function getDefaultPositions()
+	{
+		return array(
+			'two_col_bricks'    => array(
+				'e-addon-updates'               => array(
+					'area'   => 'menu-area-01',
+					'weight' => -1,
+				),
+				'core-infopanel_help'           => array(
+					'area'   => 'menu-area-01',
+					'weight' => 0,
+				),
+				'e-latest-list'                 => array(
+					'area'   => 'menu-area-04',
+					'weight' => 1,
+				),
+				'e-status-list'                 => array(
+					'area'   => 'menu-area-04',
+					'weight' => 2,
+				),
+				'core-infopanel_mye107'         => array(
+					'area'   => 'menu-area-02',
+					'weight' => 0,
+				),
+				'core-infopanel_news'           => array(
+					'area'   => 'menu-area-03',
+					'weight' => 0,
+				),
+				'core-infopanel_website_status' => array(
+					'area'   => 'menu-area-03',
+					'weight' => 1,
+				),
+			),
+			'two_col_stacked'   => array(
+				'e-addon-updates'               => array(
+					'area'   => 'menu-area-01',
+					'weight' => -1,
+				),
+				'core-infopanel_help'           => array(
+					'area'   => 'menu-area-01',
+					'weight' => 0,
+				),
+				'e-latest-list'                 => array(
+					'area'   => 'menu-area-04',
+					'weight' => 0,
+				),
+				'e-status-list'                 => array(
+					'area'   => 'menu-area-05',
+					'weight' => 0,
+				),
+				'core-infopanel_mye107'         => array(
+					'area'   => 'menu-area-02',
+					'weight' => 0,
+				),
+				'core-infopanel_news'           => array(
+					'area'   => 'menu-area-03',
+					'weight' => 0,
+				),
+				'core-infopanel_website_status' => array(
+					'area'   => 'menu-area-12',
+					'weight' => 1,
+				),
+			),
+			'three_col_bricks'  => array(
+				'e-addon-updates'               => array(
+					'area'   => 'menu-area-02',
+					'weight' => -1,
+				),
+				'core-infopanel_help'           => array(
+					'area'   => 'menu-area-02',
+					'weight' => 0,
+				),
+				'e-latest-list'                 => array(
+					'area'   => 'menu-area-03',
+					'weight' => 0,
+				),
+				'e-status-list'                 => array(
+					'area'   => 'menu-area-04',
+					'weight' => 0,
+				),
+				'core-infopanel_mye107'         => array(
+					'area'   => 'menu-area-01',
+					'weight' => 0,
+				),
+				'core-infopanel_news'           => array(
+					'area'   => 'menu-area-09',
+					'weight' => 0,
+				),
+				'core-infopanel_website_status' => array(
+					'area'   => 'menu-area-13',
+					'weight' => 0,
+				),
+			),
+			'three_col_stacked' => array(
+				'e-addon-updates'               => array(
+					'area'   => 'menu-area-03',
+					'weight' => -1,
+				),
+				'core-infopanel_help'           => array(
+					'area'   => 'menu-area-03',
+					'weight' => 0,
+				),
+				'e-latest-list'                 => array(
+					'area'   => 'menu-area-04',
+					'weight' => 0,
+				),
+				'e-status-list'                 => array(
+					'area'   => 'menu-area-05',
+					'weight' => 0,
+				),
+				'core-infopanel_mye107'         => array(
+					'area'   => 'menu-area-02',
+					'weight' => 0,
+				),
+				'core-infopanel_news'           => array(
+					'area'   => 'menu-area-12',
+					'weight' => 0,
+				),
+				'core-infopanel_website_status' => array(
+					'area'   => 'menu-area-13',
+					'weight' => 0,
+				),
+			),
+			'one_col'           => array(
+				'e-addon-updates'               => array(
+					'area'   => 'menu-area-01',
+					'weight' => -1,
+				),
+				'core-infopanel_help'           => array(
+					'area'   => 'menu-area-01',
+					'weight' => 0,
+				),
+				'e-latest-list'                 => array(
+					'area'   => 'menu-area-02',
+					'weight' => 0,
+				),
+				'e-status-list'                 => array(
+					'area'   => 'menu-area-03',
+					'weight' => 0,
+				),
+				'core-infopanel_mye107'         => array(
+					'area'   => 'menu-area-04',
+					'weight' => 0,
+				),
+				'core-infopanel_news'           => array(
+					'area'   => 'menu-area-05',
+					'weight' => 0,
+				),
+				'core-infopanel_website_status' => array(
+					'area'   => 'menu-area-06',
+					'weight' => 0,
+				),
+			),
+			'wider_sidebar'     => array(
+				'e-addon-updates'               => array(
+					'area'   => 'menu-area-01',
+					'weight' => -1,
+				),
+				'core-infopanel_help'           => array(
+					'area'   => 'menu-area-01',
+					'weight' => 0,
+				),
+				'e-latest-list'                 => array(
+					'area'   => 'menu-area-01',
+					'weight' => 1,
+				),
+				'e-status-list'                 => array(
+					'area'   => 'menu-area-01',
+					'weight' => 2,
+				),
+				'core-infopanel_mye107'         => array(
+					'area'   => 'menu-area-07',
+					'weight' => 0,
+				),
+				'core-infopanel_news'           => array(
+					'area'   => 'menu-area-08',
+					'weight' => 0,
+				),
+				'core-infopanel_website_status' => array(
+					'area'   => 'menu-area-08',
+					'weight' => 1,
+				),
+			),
+			'default'           => array(
+				'e-addon-updates'               => array(
+					'area'   => 'menu-area-01',
+					'weight' => -1,
+				),
+				'core-infopanel_help'           => array(
+					'area'   => 'menu-area-01',
+					'weight' => 0,
+				),
+				'e-latest-list'                 => array(
+					'area'   => 'menu-area-01',
+					'weight' => 1,
+				),
+				'e-status-list'                 => array(
+					'area'   => 'menu-area-01',
+					'weight' => 2,
+				),
+				'core-infopanel_mye107'         => array(
+					'area'   => 'menu-area-07',
+					'weight' => 0,
+				),
+				'core-infopanel_news'           => array(
+					'area'   => 'menu-area-08',
+					'weight' => 0,
+				),
+				'core-infopanel_website_status' => array(
+					'area'   => 'menu-area-08',
+					'weight' => 1,
+				),
+			),
+		);
+	}
+
 	/**
 	 * Render layout-picker widget.
 	 *
diff --git a/e107_admin/includes/layouts/flexpanel.php b/e107_admin/includes/layouts/flexpanel.php
new file mode 100644
index 000000000..b62d31082
--- /dev/null
+++ b/e107_admin/includes/layouts/flexpanel.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * @file
+ * Layouts for "flexpanel" dashboard style.
+ */
+
+$ONECOL_12 = '
+<div class="row">
+	<div class="col-sm-12">
+		<div class="draggable-panels" id="menu-area-01">
+			{MENU_AREA_01}
+		</div>
+		
+		<div class="draggable-panels" id="menu-area-02">
+			{MENU_AREA_02}
+		</div>
+		
+		<div class="draggable-panels" id="menu-area-03">
+			{MENU_AREA_03}
+		</div>
+		
+		<div class="draggable-panels" id="menu-area-04">
+			{MENU_AREA_04}
+		</div>
+		
+		<div class="draggable-panels" id="menu-area-05">
+			{MENU_AREA_05}
+		</div>
+		
+		<div class="draggable-panels" id="menu-area-06">
+			{MENU_AREA_06}
+		</div>
+		
+		<div class="draggable-panels" id="menu-area-07">
+			{MENU_AREA_07}
+		</div>
+		
+		<div class="draggable-panels" id="menu-area-08">
+			{MENU_AREA_08}
+		</div>
+		
+		<div class="draggable-panels" id="menu-area-09">
+			{MENU_AREA_09}
+		</div>
+		
+		<div class="draggable-panels" id="menu-area-10">
+			{MENU_AREA_10}
+		</div>
+		
+		<div class="draggable-panels" id="menu-area-11">
+			{MENU_AREA_11}
+		</div>
+	</div>
+</div>
+';