142 lines
4.3 KiB
JavaScript
142 lines
4.3 KiB
JavaScript
// Method to display a message in a message field. The existing html is saved and replaced
|
|
// with the new html. After a timeout period the original html is restored.
|
|
//
|
|
$origMessage = null;
|
|
$origId = null;
|
|
$msgTimerId = null;
|
|
function showMessage(timeout, id, message)
|
|
{
|
|
// Is this a new message whilst one is active?
|
|
if($origMessage !== null)
|
|
{
|
|
// Cancel timer and restore original message.
|
|
clearTimeout($msgTimerId);
|
|
$('#' + $origId).html($origMessage);
|
|
}
|
|
|
|
// Store original message and Id so that on timer expiry it can be replaced..
|
|
$origMessage = $('#' + id).html();
|
|
$origId = id;
|
|
|
|
// Change HTML and set timer to restore it.
|
|
$('#' + id).html(message);
|
|
$msgTimerId = setTimeout(function(msgFieldId)
|
|
{
|
|
$('#' + msgFieldId).html($origMessage);
|
|
$origMessage = null;
|
|
}, timeout, id);
|
|
}
|
|
|
|
// Method to enable the correct side-bar menu for the underlying host interface.
|
|
function enableIfConfig()
|
|
{
|
|
// Disable keymap if no host is connected to the SharpKey. KeyInterface is the base class which exists when
|
|
// no host was detected to invoke a host specific sub-class.
|
|
if(activeInterface === "KeyInterface ")
|
|
{
|
|
document.getElementById("keyMapAvailable").style.display = 'none';
|
|
}
|
|
// Mouse interface active?
|
|
else if(activeInterface === "Mouse ")
|
|
{
|
|
document.getElementById("keyMapAvailable").style.display = 'none';
|
|
document.getElementById("mouseCfgAvailable").style.display = 'compact';
|
|
} else
|
|
{
|
|
document.getElementById("keyMapAvailable").style.display = 'compact';
|
|
|
|
// Secondary interface available?
|
|
if(secondaryInterface == "Mouse ")
|
|
{
|
|
document.getElementById("mouseCfgAvailable").style.display = 'compact';
|
|
} else
|
|
{
|
|
document.getElementById("mouseCfgAvailable").style.display = 'none';
|
|
}
|
|
}
|
|
}
|
|
|
|
// Method to convert a string/numeric into a hex number and range check it to be within and 8bit unsigned range.
|
|
function hexConvert(inVal, invert)
|
|
{
|
|
if(isNaN(inVal) == true && isNaN('0x' + inVal) == false)
|
|
{
|
|
inVal = parseInt(inVal, 16);
|
|
}
|
|
else if(isNaN(inVal) == false && typeof inVal == 'string' && inVal.length > 0)
|
|
{
|
|
if(inVal.toUpperCase().indexOf("0X") == 0)
|
|
{
|
|
inVal = parseInt(inVal, 16);
|
|
} else
|
|
{
|
|
inVal = parseInt(inVal, 10);
|
|
}
|
|
}
|
|
else if(isNaN(inVal) == true || inVal.length == 0)
|
|
{
|
|
inVal = 0;
|
|
}
|
|
if(inVal < 0)
|
|
{
|
|
inVal = 0;
|
|
}
|
|
else if(inVal > 255)
|
|
{
|
|
inVal = 255;
|
|
}
|
|
if(invert == true)
|
|
{
|
|
inVal = (~inVal) & 0xFF;
|
|
}
|
|
return('0x' + (inVal).toString(16).toUpperCase());
|
|
}
|
|
|
|
$(document).ready(function() {
|
|
|
|
// Setup the menu options according to underlying interface.
|
|
enableIfConfig();
|
|
|
|
// AJAX code to post in a controlled manner so that we can receive back an error/success message to the commit.
|
|
$("#mouseHostCfgSave").submit( function(e)
|
|
{
|
|
var form = $(this);
|
|
var actionUrl = form.attr('action');
|
|
|
|
// Prevent default submit action, we want to manually submit and be able to receive a response for errors/success.
|
|
e.preventDefault();
|
|
|
|
$.ajax(
|
|
{
|
|
type: "POST",
|
|
url: actionUrl,
|
|
data: form.serialize(), // serializes the form's elements.
|
|
success: function(data)
|
|
{
|
|
// Show the message then revert back to original text.
|
|
showMessage(10000, "mouseHostCfgMsg", data);
|
|
}
|
|
});
|
|
});
|
|
$("#mousePS2CfgSave").submit( function(e)
|
|
{
|
|
var form = $(this);
|
|
var actionUrl = form.attr('action');
|
|
|
|
// Prevent default submit action, we want to manually submit and be able to receive a response for errors/success.
|
|
e.preventDefault();
|
|
|
|
$.ajax(
|
|
{
|
|
type: "POST",
|
|
url: actionUrl,
|
|
data: form.serialize(), // serializes the form's elements.
|
|
success: function(data)
|
|
{
|
|
// Show the message then revert back to original text.
|
|
showMessage(10000, "mousePS2CfgMsg", data);
|
|
}
|
|
});
|
|
});
|
|
});
|