overte-JulianGro/scripts/developer/tests/dynamics/dynamics-tests-interface.js
2017-04-30 12:23:34 -07:00

76 lines
2.3 KiB
JavaScript

//
// dynamics-tests-interface.js
// scripts/developer/tests/dynamics/
//
// Created by Seth Alves 2017-4-30
// Copyright 2017 High Fidelity, Inc.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
"use strict";
/* globals $, EventBridge */
var parameters = {
"lifetime":"integer"
};
function getQueryArgByName(name, url) {
if (!url) {
url = window.location.href;
}
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
function addCommandParameters(params) {
// copy from html elements into an associative-array which will get passed (as JSON) through the EventBridge
for (var parameterName in parameters) {
if (parameters.hasOwnProperty(parameterName)) {
var parameterType = parameters[parameterName];
var strVal = $("#" + parameterName).val();
if (parameterType == "integer") {
params[parameterName] = parseInt(strVal);
} else if (parameterType == "float") {
params[parameterName] = parseFloat(strVal);
} else {
params[parameterName] = strVal;
}
}
}
return params;
}
$(document).ready(function() {
// hook all buttons to EventBridge
$(":button").each(function(index) {
$(this).click(function() {
EventBridge.emitWebEvent(JSON.stringify(addCommandParameters({ "dynamics-tests-command": this.id })));
});
});
// copy parameters from query-args into elements
for (var parameterName in parameters) {
if (parameters.hasOwnProperty(parameterName)) {
var val = getQueryArgByName(parameterName);
if (val) {
var parameterType = parameters[parameterName];
if (parameterType == "integer") {
val = parseInt(val);
} else if (parameterType == "float") {
val = parseFloat(val);
}
$("#" + parameterName).val(val.toString());
}
}
}
});