add iot app store demo (#96)
This commit is contained in:
@ -0,0 +1,228 @@
|
||||
/* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Dom Location
|
||||
*
|
||||
*/
|
||||
|
||||
function setDivCenter(divname)
|
||||
// make qn element center aligned
|
||||
{
|
||||
var Top =($(window).height()-$(divname).height())/2;
|
||||
var Left = ($(window).width()-$(divname).width())/2;
|
||||
var scrollTop = $(document).scrollTop();
|
||||
var scrollLeft = $(document).scrollLeft();
|
||||
$(divname).css({posisiton:'absolute','top':Top+scrollTop,'left':Left+scrollLeft});
|
||||
|
||||
};
|
||||
|
||||
setDivCenter(".middlebox");
|
||||
setDivCenter(".deletebox");
|
||||
|
||||
function setmain(divname){
|
||||
// Set the pop-up window of apps for download at the right place
|
||||
var x = $('#btn').offset().top;
|
||||
var Top = x + $('#btn').height()+15;
|
||||
var y = $('#btn').offset().left;
|
||||
var Left = y + ($('#btn').width()/2)-($(divname).width()/2);
|
||||
console.log(Top,Left)
|
||||
$(divname).css({'top':Top,'left':Left});
|
||||
}
|
||||
setmain(".main")
|
||||
|
||||
/*
|
||||
* download apps
|
||||
*
|
||||
*/
|
||||
|
||||
function getthis(val)
|
||||
//Telling background which app to be loaded from appstore_list and to be installed in the current device.
|
||||
{
|
||||
|
||||
/* Get the ip adress and the port of a device, as well as the application ID to be downloaded on this device*/
|
||||
var ip,port,name,version;
|
||||
var ipArr=$("#IPs").text().split(":");
|
||||
ip=ipArr[1];
|
||||
var portArr=$("#ports").text().split(":");
|
||||
port=portArr[1];
|
||||
name = $(val).parent().find("#appsinfo1").text().split(":")[1];
|
||||
version = $(val).parent().find("#appsinfo2").text().split(":")[1];
|
||||
$(".main").fadeOut();
|
||||
|
||||
for (num in alist){
|
||||
if (alist[num]['pname'].trim() == name.trim())
|
||||
{alert("This app has been downloaded.");
|
||||
return;}};
|
||||
$("#loading").fadeIn();
|
||||
var sNode = document.getElementById("APPS");
|
||||
var tempNode= sNode.cloneNode(true);
|
||||
sNode.parentNode.appendChild(tempNode);
|
||||
$("#appinfo1").html("Product Name : "+ name);
|
||||
$("#appinfo2").html("Status : "+"Installing");
|
||||
$("#appinfo3").html("Current_Version : "+ version);
|
||||
|
||||
$.get("/appDownload/",{'ip':ip.trim(),'port':port.trim(),'name':name.trim(),},function (ret) {
|
||||
var status = $.trim(ret.split(":")[1].split("}")[0]);
|
||||
$(".loadapp").html(name+" is downloading now");
|
||||
var msg = JSON.parse(status)
|
||||
console.log(msg)
|
||||
if (JSON.parse(status)=="ok"){
|
||||
$(".middlebox").fadeIn();
|
||||
$(".sourceapp").fadeOut();
|
||||
$("#loading").fadeOut();
|
||||
$(".findapp").html("Download "+name +" successfully");
|
||||
$(".surebtn").click(function (){
|
||||
$(".middlebox").fadeOut();
|
||||
window.location.reload();
|
||||
})}
|
||||
else if (JSON.parse(status)=="Fail!"){
|
||||
alert("Download failed!");
|
||||
$("#loading").fadeOut();
|
||||
sNode.remove();
|
||||
}
|
||||
else {
|
||||
alert("Install app failed:" + msg)
|
||||
$("#loading").fadeOut();
|
||||
sNode.remove();
|
||||
}
|
||||
})
|
||||
};
|
||||
|
||||
window.onload = function clone()
|
||||
//Add & Delete apps to the device.
|
||||
{
|
||||
/*Install Apps*/
|
||||
var sourceNode = document.getElementById("APPS");
|
||||
if (alist.length != 0)
|
||||
{
|
||||
$("#appinfo1").html("Product Name : "+ alist[0]['pname']);
|
||||
$("#appinfo2").html("Status : "+ alist[0]['status']);
|
||||
$("#appinfo3").html("Current_Version : "+ alist[0]['current_version']);
|
||||
$("#delete").attr('class','delet0');
|
||||
$("#APPS").attr('class','app0');
|
||||
|
||||
for (var i=1; i<alist.length; i++)
|
||||
{
|
||||
var cloneNode= sourceNode.cloneNode(true);
|
||||
sourceNode.parentNode.appendChild(cloneNode);
|
||||
$("#appinfo1").html("Product Name : "+ alist[i]['pname']);
|
||||
$("#appinfo2").html("Status : "+ alist[i]['status']);
|
||||
$("#appinfo3").html("Current_Version : "+ alist[i]['current_version']);
|
||||
$("#delete").attr('class','delet'+i);
|
||||
$("#APPS").attr('class','app'+i);
|
||||
}
|
||||
}
|
||||
$("#IPs").html("IP : "+ dlist[0]['IP']);
|
||||
$("#ports").html("Port : "+ dlist[0]['Port']);
|
||||
$("#installs").html("Installed Apps : "+ dlist[0]['apps']);
|
||||
|
||||
|
||||
|
||||
$(".mybtn").click(function ()
|
||||
{
|
||||
/*uninstall apps*/
|
||||
var thisitem = $(this).parent().attr('class');
|
||||
var indexa = thisitem.match(/\d+\b/);
|
||||
var pname = $(".app"+indexa).find('#appinfo1').text();
|
||||
|
||||
var ip,port;
|
||||
var ipArr=$("#IPs").text().split(":");
|
||||
ip=ipArr[1];
|
||||
var portArr=$("#ports").text().split(":");
|
||||
port=portArr[1];
|
||||
|
||||
var name = pname.split(':')[1].trim();
|
||||
$(".deletebox").fadeIn();
|
||||
$(".findapp").html("Are you sure to delete "+name);
|
||||
$(".suresbtn").click(function (){
|
||||
$(".app"+indexa).remove();
|
||||
$.get("/appDelete/",{'ip':ip.trim(),'port':port.trim(),"name":pname.split(':')[1].trim()},function (ret) {
|
||||
console.log(ret);});
|
||||
$(".deletebox").fadeOut();
|
||||
window.location.reload();
|
||||
})
|
||||
$(".cancelsbtn").click(function (){
|
||||
$(".deletebox").fadeOut(); })
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
function getdownloadapps()
|
||||
{
|
||||
/*Acquire apps for download from Appstore simultaneously whenever appstore is updated*/
|
||||
if (search_node[0] == "Nothing find"){
|
||||
alert(search_node[0])
|
||||
}
|
||||
if (search_node.length == 1 && search_node[0] != "Nothing find" ){
|
||||
$("#appsinfo1").html("Product Name : "+ search_node[0]['ID']);
|
||||
$("#appsinfo2").html("Version : "+ search_node[0]['Version']);
|
||||
}
|
||||
else{
|
||||
var sourceNode = document.getElementById("Dapplications");
|
||||
if (llist.length != 0)
|
||||
{
|
||||
$("#appsinfo1").html("Product Name : "+ llist[0]['ID']);
|
||||
$("#appsinfo2").html("Version : "+ llist[0]['Version']);
|
||||
$("#Dapplications").attr('class','dapp0');
|
||||
|
||||
for (var i=1; i<llist.length; i++)
|
||||
{
|
||||
var cloneNode= sourceNode.cloneNode(true);
|
||||
sourceNode.parentNode.appendChild(cloneNode);
|
||||
$("#appsinfo1").html("Product Name : "+ llist[i]['ID']);
|
||||
$("#appsinfo2").html("Version : "+ llist[i]['Version']);
|
||||
$("#Dapplications").attr('class','dapp'+i);
|
||||
}
|
||||
}};
|
||||
};
|
||||
|
||||
getdownloadapps();
|
||||
|
||||
function givevalue(){
|
||||
var ip=dlist[0]['IP'].trim();
|
||||
var port=dlist[0]['Port'].trim();
|
||||
document.getElementById("aa").value = ip;
|
||||
document.getElementById("bb").value = port;
|
||||
if (open_status == "open"){
|
||||
$(".main").fadeIn();
|
||||
$(".close").click(function(){
|
||||
$(".main").fadeOut();
|
||||
var newurl = "?"+"ip="+ip+"&port="+port;
|
||||
window.location.href= newurl;});
|
||||
$(".mybtn2").click(function(){
|
||||
if (alist.length >=3){
|
||||
alert("Install app failed: exceed max app installations.")
|
||||
}
|
||||
$(".main").fadeOut();
|
||||
getthis(".mybtn2");
|
||||
var newurl = "?"+"ip="+ip+"&port="+port;
|
||||
window.location.href= newurl;
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
givevalue();
|
||||
|
||||
function popbox(){
|
||||
/*Open and close the "install apps" window*/
|
||||
$(".btn").click(function(){
|
||||
$(".main").fadeIn();
|
||||
});
|
||||
$(".close").click(function(){
|
||||
$(".main").fadeOut();
|
||||
});
|
||||
};
|
||||
popbox();
|
||||
Reference in New Issue
Block a user