CMXX - Upgrade software update

This commit is contained in:
“VeLiTi”
2024-11-21 15:09:52 +01:00
parent 2da1046385
commit 6004394784
16 changed files with 159 additions and 116 deletions

View File

@@ -8,6 +8,15 @@ defined($security_key) or exit;
//Connect to DB
$pdo = dbConnect($dbname);
//------------------------------------------
//UPDATE SW_STATUS
//------------------------------------------
$sql = 'UPDATE equipment e JOIN products_software ps ON e.productrowid = ps.productrowid SET e.sw_version_latest = 1 WHERE ps.latest = 1 AND lower(e.sw_version) = lower(ps.version) AND e.sw_version_latest = 0';
$stmt = $pdo->prepare($sql);
$stmt->execute();
//------------------------------------------
//------------------------------------------
//Get user_rights from users.php
$partner = json_decode($partnerhierarchy);

View File

@@ -183,8 +183,8 @@ if (!isset($criterias['productrowid']) && isset($criterias['sn']) && $criterias[
}
//GET PRODUCTCODE BASED ON SN WHEN NO RECORDS FOUND
if (count($messages) === 0){
$sql = 'SELECT p.productcode, e.sw_version_upgrade FROM equipment e JOIN products p ON e.productrowid = p.rowID WHERE e.serialnumber =?';
if (isset($criterias['sn']) && !isset($criterias['productcode'])){
$sql = 'SELECT p.productcode, e.sw_version_upgrade FROM equipment e JOIN products p ON e.productrowid = p.rowID WHERE e.serialnumber = ?';
$stmt = $pdo->prepare($sql);
//Excute Query
$stmt->execute([$criterias['sn']]);
@@ -193,7 +193,7 @@ if (!isset($criterias['productrowid']) && isset($criterias['sn']) && $criterias[
//assign serialnumber to productcode
$criterias['productcode'] = $productcodes[0]['productcode'];
$sw_upgrade_version = $productcodes[0]['sw_version_upgrade'];
}
}
if ($latest_check == 0){
//GET LATEST BASED ON PRODUCTCODE

View File

@@ -89,6 +89,14 @@ if (isset($post_content['productrowid']) && $post_content['productrowid'] != '')
//QUERY AND VERIFY ALLOWED
if ($command == 'update' && isAllowed('products_software',$profile,$permission,'U') === 1){
//REMOVE LATEST FLAG FROM OTHER WHEN SEND
if ($criterias['latest'] == 1){
$sql = 'UPDATE products_software SET latest = 0 WHERE productrowid = ?';
$stmt = $pdo->prepare($sql);
$stmt->execute([$post_content['productrowid']]);
}
$sql = 'UPDATE products_software SET '.$clause.' WHERE rowID = ? '.$whereclause.'';
$execute_input[] = $id;
$stmt = $pdo->prepare($sql);

View File

@@ -8,6 +8,15 @@ defined($security_key) or exit;
//Connect to DB
$pdo = dbConnect($dbname);
//------------------------------------------
//UPDATE SW_STATUS
//------------------------------------------
$sql = 'UPDATE equipment e JOIN products_software ps ON e.productrowid = ps.productrowid SET e.sw_version_latest = 1 WHERE ps.latest = 1 AND lower(e.sw_version) = lower(ps.version) AND e.sw_version_latest = 0';
$stmt = $pdo->prepare($sql);
$stmt->execute();
//------------------------------------------
//------------------------------------------
//Get user_rights from users.php
$partner = json_decode($partnerhierarchy);

View File

@@ -182,8 +182,8 @@ if (!isset($criterias['productrowid']) && isset($criterias['sn']) && $criterias[
}
//GET PRODUCTCODE BASED ON SN WHEN NO RECORDS FOUND
if (count($messages) === 0){
$sql = 'SELECT p.productcode, e.sw_version_upgrade FROM equipment e JOIN products p ON e.productrowid = p.rowID WHERE e.serialnumber =?';
if (isset($criterias['sn']) && !isset($criterias['productcode'])){
$sql = 'SELECT p.productcode, e.sw_version_upgrade FROM equipment e JOIN products p ON e.productrowid = p.rowID WHERE e.serialnumber = ?';
$stmt = $pdo->prepare($sql);
//Excute Query
$stmt->execute([$criterias['sn']]);

View File

@@ -88,6 +88,14 @@ if (isset($post_content['productrowid']) && $post_content['productrowid'] != '')
//QUERY AND VERIFY ALLOWED
if ($command == 'update' && isAllowed('products_software',$profile,$permission,'U') === 1){
//REMOVE LATEST FLAG FROM OTHER WHEN SEND
if ($criterias['latest'] == 1){
$sql = 'UPDATE products_software SET latest = 0 WHERE productrowid = ?';
$stmt = $pdo->prepare($sql);
$stmt->execute([$post_content['productrowid']]);
}
$sql = 'UPDATE products_software SET '.$clause.' WHERE rowID = ? '.$whereclause.'';
$execute_input[] = $id;
$stmt = $pdo->prepare($sql);

View File

@@ -787,7 +787,7 @@ function getPartnerName($str){
//------------------------------------------
// overview Indicators
//------------------------------------------
function overviewIndicators($warranty, $service, $sw_version, $hw_version){
function overviewIndicators($warranty, $service, $sw_version, $sw_version_latest){
include dirname(__FILE__,2).'/settings/settings.php';
include dirname(__FILE__,2).'/settings/systemfirmware.php';
$indicator ='';
@@ -805,18 +805,16 @@ function overviewIndicators($warranty, $service, $sw_version, $hw_version){
}
//Firmware
if (isset($sw_version) && isset($hw_version)){
$sw_version = substr($sw_version, 0, strpos($sw_version, "."));
$firmware = ${'Firmwarename' . $hw_version} ?? '';
//Firmware upgrade required
if (!empty($firmware) && ($sw_version != $firmware)){
$indicator .= '<span class="dot" style="background-color: #eb8a0d;">F</span>';
} else {
if (isset($sw_version_latest)){
if($sw_version_latest == 1){
$indicator .= '<span class="dot" style="background-color: #13b368;">F</span>';
}
} else {
if ($sw_version == ''){
$indicator .= '<span class="dot" style="background-color: #81848a">F</span>';
} else {
$indicator .= '<span class="dot" style="background-color: #eb8a0d;">F</span>';
}
}
}
return $indicator;
@@ -891,13 +889,7 @@ function serviceStatus($input){
// Check available firmware
//------------------------------------------
function availableFirmware($sw_version, $hw_version){
$message ='<span class="status">Unknown</span>';
if (isset($sw_version) && isset($hw_version)){
include dirname(__FILE__,2).'/settings/systemfirmware.php';
include dirname(__FILE__,2).'/settings/settings.php';
function availableFirmware($sw_version,$sw_version_latest){
//INCLUDE TRANSLATION FILE
if(isset($_SESSION['country_code'])){
@@ -913,16 +905,19 @@ function availableFirmware($sw_version, $hw_version){
include dirname(__FILE__,2).'/settings/translations/translations_US.php';
}
$sw_version = substr($sw_version, 0, strpos($sw_version, "."));
$firmware = ${'Firmwarename' . $hw_version} ?? '';
if (!empty($firmware) && ($sw_version != $firmware)){
$message = '<span class="status firmware_update">'.$firmware_update_text.'</span>';
} else {
//SET DEFAULTS
if ((isset($sw_version) && $sw_version == '')){
$message ='<span class="status">Unknown</span>';
}
else {
//CHECK IF LATEST
if($sw_version_latest == 1){
$message = '<span class="status firmware_recent">'.$firmware_recent_text.'</span>';
} else {
$message = '<span class="status firmware_update">'.$firmware_update_text.'</span>';
}
}
return $message;
}

View File

@@ -90,13 +90,17 @@ async function getDeviceData(){
var c = b + 8;
serial = x.substring(b,c);
progressBar("65", "Retrieving device data", "#04AA6D");
//Check if serialnumber is allowed
if (serial != '23BB' || serial != '23AA'){
progressBar("70", "Retrieving device data", "#04AA6D");
console.log(serial);
if (x.indexOf("FW=") > 0){
var a = x.indexOf("FW=");
var b = a + 3;
var c = b + 8;
fw = x.substring(b,c);
fw = fw.replace(/^0+/, '');
}
//Check if HW is retrieved from device
if (x.indexOf("HW=") > 0){
if (x.indexOf("HW=") > 0 && x.indexOf("FW=") >0){
var a = x.indexOf("HW=");
var b = a + 3;
var c = b + 8;
@@ -114,6 +118,8 @@ async function getDeviceData(){
sw = 'R'+f;
}
$fw_name = 'Firmware_'+fw+'_'+sw;
console.log($fw_name);
getServiceID().then(firmwareUpdate);
progressBar("80", "checking for available firmware", "#04AA6D");
setTimeout(checkAvailableFirmware, 5000);
@@ -124,17 +130,11 @@ async function getDeviceData(){
console.log('Reading of device not successful');
}
}
else {
progressBar("100", "Upgrade not allowed", "#ff6666");
console.log('Upgrade not allowed');
}
}
}
function firmwareUpdate(data){
var serialnumber = serial;
var action = '/v0/application/firmwareUpdate?sn='+serialnumber+'&hw_version='+hw+'&sw_version='+sw;
var action = '/v2/products_software/sn='+serialnumber+'&version='+$fw_name;
var url = link+action;
var bearer = 'Bearer ' + data;
@@ -150,7 +150,7 @@ function firmwareUpdate(data){
})
.then(response => response.json())
.then(firmware=> {
firmwarelocation = './firmware/'+firmware.HEX_FW+'.HEX';
firmwarelocation = './firmware/'+firmware['software'];
return firmwarelocation;
})

View File

@@ -64,7 +64,7 @@ if (!empty($products_software)){$products_software = decode_payload($products_so
$status_text = 'status'.$responses->status.'_text';
$warrantydate = warrantyStatus($responses->warranty_date);
$service_date_due = serviceStatus($responses->service_date);
$firmware_status = availableFirmware($responses->sw_version, $responses->hw_version);
$firmware_status = availableFirmware($responses->sw_version, $products_software);
//Calculate Healthindex based on last test
$total_score = assetHealthIndex($_SESSION['profile'],$_SESSION['permission'],$equipment_data,0);
@@ -233,10 +233,19 @@ $view .= '<div class="content-block">
<tr>
<td style="width:25%;">'.$equipment_label5.'</td>
<td>'.$responses->hw_version.'</td>
</tr>
<tr>
</tr>';
//SHOW SOFTWARE NAME WHEN AVAILABLE
$software_name = '';
if (isset($products_software) && $products_software !=''){
foreach ($products_software as $products_soft){
if ($products_soft->version == $responses->sw_version){
$software_name = ' - '.$products_soft->software;
}
}
}
$view .= ' <tr>
<td style="width:25%;">'.$equipment_label6.'</td>
<td>'.$responses->sw_version.'</td>
<td>'.$responses->sw_version.$software_name.'</td>
</tr>';
//SHOW ONLY SW_UPGRADE WHEN SET
if (isset($products_software) && $products_software !=''){
@@ -244,7 +253,7 @@ if (isset($products_software) && $products_software !=''){
if ($products_soft->rowID == $responses->sw_version_upgrade){
$view .= ' <tr>
<td style="width:25%;">'.($equipment_sw_version_upgrade ?? 'sw_version_upgrade').'</td>
<td>'.$products_soft->version.'</td>
<td>'.$products_soft->version.' - '.$products_soft->software.'</td>
</tr>';
}
}

View File

@@ -173,7 +173,7 @@ if (isset($products_software) && $products_software !=''){
<option></option>
';
foreach ($products_software as $products_soft ){
$product_software_list .= '<option value="'.$products_soft->rowID.'" '.($equipment['sw_version_upgrade']==$products_soft->rowID?' selected':'').'>'.$products_soft->version.'</option>
$product_software_list .= '<option value="'.$products_soft->rowID.'" '.($equipment['sw_version_upgrade']==$products_soft->rowID?' selected':'').'>'.$products_soft->version.' - '.$products_soft->software.'</option>
';
}
$product_software_list .= '</select>';

View File

@@ -225,7 +225,7 @@ if (isset($partner_data->section)){$section = getPartnerName($partner_data->sect
$picture = glob("./assets/images/products/".$response->productcode.".{jpg,jpeg,png,gif}", GLOB_BRACE);
$indicators = overviewIndicators($response->warranty_date,$response->service_date,$response->sw_version,$response->hw_version);
$indicators = overviewIndicators($response->warranty_date,$response->service_date,$response->sw_version, $response->sw_version_latest);
$view .= '<tr>
<td class="responsive-hidden">'.$indicators.'</td>

View File

@@ -207,6 +207,7 @@ $message_no_assets = 'Es gibt keine Vermögenswerte';
//Manage assets
$manage_asset_h2 = 'Vermögenswert verwalten';
$equipment_sw_version_upgrade = 'Softwareversion, auf die aktualisiert werden soll (kein Eintrag ist die neueste Version)';
//ServiceReports
$servicereports_h2 = 'Serviceberichte';

View File

@@ -207,6 +207,7 @@ $message_no_assets = 'No hay activos';
//Manage assets
$manage_asset_h2 = 'Gestionar activo';
$equipment_sw_version_upgrade = 'Versión de software para actualizar (ninguna entrada es la versión más reciente)';
//ServiceReports
$servicereports_h2 = 'Informes de servicio';

View File

@@ -207,6 +207,7 @@ $message_eq_3 = 'Activa verwijderd!';
$message_no_assets = 'Er is geen activa';
//Manage assets
$manage_asset_h2 = 'Update activa';
$equipment_sw_version_upgrade = 'Software-versie om naar te upgraden (geen vermelding is de nieuwste versie)';
//ServiceReports
$servicereports_h2 = 'Service rapporten';

View File

@@ -206,6 +206,7 @@ $message_eq_3 = 'Equipamento excluído com sucesso!';
$message_no_assets = 'Não há ativos';
//Manage assets
$manage_asset_h2 = 'Gerenciar ativo';
$equipment_sw_version_upgrade = 'Versão de software para atualizar (nenhuma entrada é a versão mais recente)';
//ServiceReports
$servicereports_h2 = 'Relatórios de serviço';

View File

@@ -206,6 +206,7 @@ $message_no_assets = 'There are no assets';
//Manage assets
$manage_asset_h2 = 'Manage asset';
$equipment_sw_version_upgrade = 'Software version to upgrade to (no entry is latest version)';
//ServiceReports
$servicereports_h2 = 'Service reports';