Răsfoiți Sursa

#31 - Dashboard, Version AJAX update.

AntonLV 12 ani în urmă
părinte
comite
a5973bac66

+ 4 - 0
studio/classes/BxDolStudioDashboard.php

@@ -62,6 +62,10 @@ class BxDolStudioDashboard extends BxTemplStudioPage
 
             		break;
 
+				case 'check_for_upgrade':
+					$aResult = array('code' => 0, 'data' => $this->getPageCodeVersionAvailable());
+                    break;
+
             	case 'perform_upgrade':
             		$oUpgrader = bx_instance('BxDolUpgrader');
 			        if(!$oUpgrader->prepare())

+ 25 - 0
studio/js/dashboard.js

@@ -19,6 +19,31 @@ function BxDolStudioDashboard(oOptions) {
     });
 }
 
+BxDolStudioDashboard.prototype.checkForUpgrade = function() {
+	var $this = this;
+	var oDate = new Date();
+	var sDivId = 'bx-dbd-version';
+
+	bx_loading(sDivId, true);
+
+	$.get(
+		this.sActionsUrl,
+		{
+			dbd_action: 'check_for_upgrade',
+			_t: oDate.getTime()
+		},
+		function(oData) {
+			bx_loading(sDivId, false);
+
+			if(!oData.data)
+			    return;
+
+			$('#' + sDivId + ' .bx-dbd-version-available').html(oData.data).show();
+		},
+		'json'
+	);
+};
+
 BxDolStudioDashboard.prototype.performUpgrade = function() {
 	var $this = this;
 	var oDate = new Date();

+ 3 - 0
studio/template/css/dashboard.css

@@ -26,6 +26,9 @@ div.bx-dbd-vi-column {
 	float: left;
 	width: 50%;
 }
+div.bx-dbd-version-available {
+	display: none;
+}
 div.bx-dbd-version {
 	position: relative;
 	float: left;

+ 6 - 8
studio/template/dbd_versions.html

@@ -5,13 +5,11 @@
 	<div class="bx-dbd-virsion-info">
 		<div class="bx-def-margin-thd-top"><bx_text:_adm_dbd_txt_dolphin_on />&nbsp;<b>__domain__</b></div>
 		<div class="bx-def-margin-thd-top"><bx_text:_adm_dbd_txt_version />&nbsp;<b>__version__</b>&nbsp;<bx_text:_adm_dbd_txt_installed />&nbsp;<b>__installed__</b></div>
-		<div class="bx-dbd-version-available bx-def-margin-thd-top bx-clearfix">
-			<bx_if:show_version_available>
-				<div class="bx-dbd-version bx-def-margin-thd-right col-red1">__version_available__</div>
-			</bx_if:show_version_available>
-			<bx_if:show_upgrade_available>
-				<a class="bx-btn bx-btn-small" href="javascript:void(0)" onclick="javascript:__js_object__.performUpgrade()"><bx_text:_adm_dbd_btn_update /></a>
-			</bx_if:show_upgrade_available>
-		</div>
+		<div class="bx-dbd-version-available bx-def-margin-thd-top bx-clearfix"></div>
 	</div>
+	<script type="text/javascript">
+		$(document).ready(function() {
+			__js_object__.checkForUpgrade();
+		});
+	</script>
 </div>

+ 6 - 0
studio/template/dbd_versions_upgrade.html

@@ -0,0 +1,6 @@
+<bx_if:show_version_available>
+	<div class="bx-dbd-version bx-def-margin-thd-right col-red1">__version_available__</div>
+</bx_if:show_version_available>
+<bx_if:show_upgrade_available>
+	<a class="bx-btn bx-btn-small" href="javascript:void(0)" onclick="javascript:__js_object__.performUpgrade()"><bx_text:_adm_dbd_btn_update /></a>
+</bx_if:show_upgrade_available>

+ 28 - 16
studio/template/scripts/BxBaseStudioDashboard.php

@@ -63,6 +63,31 @@ class BxBaseStudioDashboard extends BxDolStudioDashboard
     	return $oPage->getCode();
     }
 
+	public function getPageCodeVersionAvailable()
+	{
+		list($sVersionAvailable, $bUpgradeAvailable) = $this->getVersionUpgradeAvailable();
+		if(!$sVersionAvailable && !$bUpgradeAvailable)
+			return '';
+
+    	if($sVersionAvailable !== false)
+    		$sVersionAvailable = _t('_adm_dbd_txt_dolphin_n_available', $sVersionAvailable);
+
+		return BxDolStudioTemplate::getInstance()->parseHtmlByName('dbd_versions_upgrade.html', array(
+			'bx_if:show_version_available' => array(
+        		'condition' => !empty($sVersionAvailable),
+        		'content' => array(
+        			'version_available' => $sVersionAvailable
+        		)
+        	),
+			'bx_if:show_upgrade_available' => array(
+        		'condition' => $bUpgradeAvailable,
+        		'content' => array(
+        			'js_object' => $this->getPageJsObject()
+        		)
+        	)
+		));
+	}
+
     public function serviceGetWidgetNotices() {
     	$iResult = 0;
 
@@ -88,26 +113,13 @@ class BxBaseStudioDashboard extends BxDolStudioDashboard
 
 	public function serviceGetBlockVersion()
     {
-    	list($sVersionAvailable, $bUpgradeAvailable) = $this->getVersionUpgradeAvailable();
-    	if($sVersionAvailable !== false)
-    		$sVersionAvailable = _t('_adm_dbd_txt_dolphin_n_available', $sVersionAvailable);
+    	$sJsObject = $this->getPageJsObject();
 
         $sContent = BxDolStudioTemplate::getInstance()->parseHtmlByName('dbd_versions.html', array(
+        	'js_object' => $sJsObject,
             'domain' => getParam('site_title'),
             'version' => bx_get_ver(),
-            'installed' => bx_time_js(getParam('sys_install_time')),
-        	'bx_if:show_version_available' => array(
-        		'condition' => !empty($sVersionAvailable),
-        		'content' => array(
-        			'version_available' => $sVersionAvailable
-        		)
-        	),
-			'bx_if:show_upgrade_available' => array(
-        		'condition' => $bUpgradeAvailable,
-        		'content' => array(
-        			'js_object' => $this->getPageJsObject()
-        		)
-        	)
+            'installed' => bx_time_js(getParam('sys_install_time'))
         ));
 
     	return array('content' => $sContent);