Commit 9725db2c authored by Cédric Le Ninivin's avatar Cédric Le Ninivin

Add Log on Add Application page

parent d4e58a7b
......@@ -21,6 +21,7 @@
<div class="nav_content container">
<form class="crib-load-from-zip form-inline">
<h3>Add Application</h3>
<div class="info crib-add-app-status" style="display:none; background-color: #dff0d8;"></div>
<div class="form-group">
<label>Application Name:
<input name="app-name" class="app-name form-control"
......
......@@ -17,6 +17,22 @@
return params;
}
function log(gadget, str, klass) {
var p = document.createElement('p'),
old_p_element = gadget.props.element.querySelector(klass + ' p'),
log_element = gadget.props.element.querySelector(klass);
if (old_p_element) {
old_p_element.remove();
}
p.innerHTML = str;
log_element.style.display = "";
log_element.appendChild(p);
}
function logAddApp(gadget, str) {
return log(gadget, str, ".crib-add-app-status");
}
function putNewAppList(gadget, app_list) {
return RSVP.Queue()
.push(function () {
......@@ -49,6 +65,7 @@
.querySelector("form.crib-load-from-zip .load-zip-file").files.length === 0 &&
gadget.props.element
.querySelector("form.crib-load-from-zip .load-zip-url").value.length === 0) {
logAddApp(gadget, "Please set a Zip File or Zip Url");
return;
}
return RSVP.Queue()
......@@ -56,9 +73,11 @@
var promise_list = [];
if (gadget.props.element
.querySelector("form.crib-load-from-zip .load-zip-file").files.length !== 0) {
promise_list.push(loadCribJSFromZipFile(gadget, event));
logAddApp(gadget, "Will load Zip from File");
promise_list.push(loadCribJSFromZipFile(gadget, event, logAddApp));
} else {
promise_list.push(loadCribJSFromZipUrl(gadget, event));
logAddApp(gadget, "Will load Zip from Url");
promise_list.push(loadCribJSFromZipUrl(gadget, event, logAddApp));
}
promise_list.push(getApplicationList(gadget));
return RSVP.all(promise_list);
......@@ -77,6 +96,7 @@
application_category: undefined
}
);
logAddApp(gadget, "Adding App to App list");
return putNewAppList(gadget, app_list);
})
.push(function () {
......@@ -84,7 +104,7 @@
});
}
function loadCribJSFromZipFile(gadget, event) {
function loadCribJSFromZipFile(gadget, event, logFunction) {
return RSVP.Queue()
.push(function () {
return gadget.getDeclaredGadget("jio_cribjs");
......@@ -99,11 +119,14 @@
to_path: gadget.props
.element.querySelector("form.crib-load-from-zip .load-zip-to-path").value,
application_id: "cribjs"
},
function (str) {
logFunction(gadget, str);
});
});
}
function loadCribJSFromZipUrl(gadget, event) {
function loadCribJSFromZipUrl(gadget, event, logFunction) {
return RSVP.Queue()
.push(function () {
return gadget.getDeclaredGadget("jio_cribjs");
......@@ -118,6 +141,9 @@
to_path: gadget.props.element
.querySelector("form.crib-load-from-zip .load-zip-to-path").value,
application_id: "cribjs"
},
function (str) {
logFunction(gadget, str);
});
});
}
......
......@@ -12,7 +12,10 @@
return "." + extension;
}
function loadZipIntoCrib(gadget, zip, from_path, path_to_load) {
function loadZipIntoCrib(gadget, zip, from_path, path_to_load, logFunction) {
if (logFunction === undefined) {
logFunction = console.log;
}
var promise_list = [], url_number = 0;
zip.forEach(function (relativePath, zipEntry) {
var end_url;
......@@ -46,60 +49,81 @@
})
);
});
logFunction("Pushing " + promise_list.length + " URLs to local crib");
return RSVP.all(promise_list);
}
function loadContentFromZIPFile(gadget, options) {
function loadContentFromZIPFile(gadget, options, logFunction) {
if (logFunction === undefined) {
logFunction = console.log;
}
var path_to_load = options.to_path,
from_path = options.from_path,
file_list = options.file_list;
if (file_list.length === 0) {
logFunction("No File to Load");
return "No File to Load";
}
return new RSVP.Queue()
.push(function () {
logFunction("Loading Zip");
return JSZip.loadAsync(file_list[0]);
})
.push(function (zip) {
return loadZipIntoCrib(
gadget, zip, from_path, path_to_load
gadget, zip, from_path, path_to_load, logFunction
);
})
.push(console.log, console.log);
.push(function () {
logFunction("Imported Zip Successfully");
}, function (e) {
logFunction(e);
});
}
function loadContentFromZIPURL(gadget, options) {
function loadContentFromZIPURL(gadget, options, logFunction) {
if (logFunction === undefined) {
logFunction = console.log;
}
var path_to_load = options.to_path, file_list,
from_path = options.from_path, zip_url = options.zip_url,
jio_gadget, url_list = [], url_number = 0;
return new RSVP.Queue()
.push(function () {
logFunction("Fetching Url");
return fetch(zip_url)
.then(function (response) { // 2) filter on 200 OK
if (response.status === 200 || response.status === 0) {
logFunction("Fetched Successfully, Starts Loading Zip");
return Promise.resolve(response.blob());
} else {
logFunction("ERROR: " + response.statusText);
return Promise.reject(new Error(response.statusText));
}
});
})
.push(JSZip.loadAsync)
.push(function (zip) {
return loadZipIntoCrib(gadget, zip, from_path, path_to_load);
return loadZipIntoCrib(gadget, zip, from_path, path_to_load, logFunction);
})
.push(console.log, console.log);
.push(function () {
logFunction("Imported Zip Successfully");
}, function (e) {
logFunction(e);
throw e;
});
}
rJS(window)
.ready(function (g) {
g.props = {};
})
.declareMethod('loadFromZipUrl', function (options) {
return loadContentFromZIPURL(this, options);
.declareMethod('loadFromZipUrl', function (options, logFunction) {
return loadContentFromZIPURL(this, options, logFunction);
})
.declareMethod('loadFromZipFile', function (options) {
return loadContentFromZIPFile(this, options);
.declareMethod('loadFromZipFile', function (options, logFunction) {
return loadContentFromZIPFile(this, options, logFunction);
})
.declareAcquiredMethod("crib_sw_put", "crib_sw_put")
.declareAcquiredMethod("getSetting", "getSetting")
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment