dey-examples/connectcore-demo-example/static/js/multimedia.js

80 lines
2.7 KiB
JavaScript

/*
* Copyright 2022, Digi International Inc.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
// Constants.
// Variables.
var readingMultimediaInfo = false;
var multimediaInfoRead = false;
// Initializes the multimedia page.
function initializeMultimediaPage() {
// Sanity checks.
if (!isMultimediaShowing() || multimediaInfoRead)
return;
// Read multimedia information.
readDeviceInfoMultimedia();
}
// Gets the information of the device.
function readDeviceInfoMultimedia() {
// Execute only in the multimedia page.
if (!isMultimediaShowing() || readingMultimediaInfo)
return;
// Flag reading variable.
readingMultimediaInfo = true;
// Hide the info popup.
showInfoPopup(false);
// Show the loading popup.
showLoadingPopup(true, MESSAGE_LOADING_INFORMATION);
// Send request to retrieve device information.
$.post(
"http://" + getServerAddress() + "/ajax/get_device_info",
function(data) {
readingMultimediaInfo = false;
// Process only in the management page.
if (!isMultimediaShowing())
return;
// Hide the loading panel.
showLoadingPopup(false);
// Process device information answer.
processDeviceInfoMultimediaResponse(data);
}
).fail(function(response) {
// Flag reading variable.
readingMultimediaInfo = false;
// Process only in the management page.
if (!isMultimediaShowing())
return;
// Hide the loading panel.
showLoadingPopup(false);
// Process error.
processAjaxErrorResponse(response);
});
}
// Processes the response of the device info request.
function processDeviceInfoMultimediaResponse(response) {
// Check if there was any error in the request.
if (!checkErrorResponse(response, false)) {
// Set the device type.
updateFieldValue(ID_DEVICE_NAME, response[ID_DEVICE_TYPE].toUpperCase());
// Flag device info read.
multimediatInfoRead = true;
}
}