Commit 1caf5e7d authored by Alain Takoudjou's avatar Alain Takoudjou

erp5_web_mynij_search: Import source from a given url, also add description field to source object

parent ff90b656
<!doctype html>
<html>
<head>
<title>Mynij Search</title>
<script src="rsvp.js" type="text/javascript"></script>
<script src="renderjs.js" type="text/javascript"></script>
<script src="gadget_erp5_page_load_source.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="mynij-style.css">
</head>
<body>
<h1 class="head-title">Importing index Source Ajax</h1>
<div><i class="notification-msg">Do not close this page to keep downloading the sources</i></div>
<div id = "gadget_model" data-gadget-url="gadget_mynij_model.html"
data-gadget-scope="model" data-gadget-sandbox="public"></div>
</body>
</html>
\ No newline at end of file
/*jslint nomen: true, indent: 2, maxerr: 3, maxlen: 80*/
/*global window, RSVP, rJS, document*/
(function (window, document, rJS, RSVP) {
var gadget;
rJS(window)
.setState({
torrent_gadget : null
})
.declareAcquiredMethod("redirect", "redirect")
.declareAcquiredMethod("getUrlParameter", "getUrlParameter")
.declareAcquiredMethod("getSetting", "getSetting")
.declareAcquiredMethod("notifySubmitted", "notifySubmitted")
.ready(function () {
var gadget = this;
return this.getDeclaredGadget("model")
.push(function (model) {
return gadget.changeState({
model_gadget: model
});
});
})
.onStateChange(function () {
})
.declareMethod("render", function (options) {
var gadget = this;
return new RSVP.Queue()
.push(function () {
return gadget.updateHeader({
page_title: "Torrent Source import"
});
});
})
.declareMethod("loadSource", function (url) {
return new RSVP.Queue()
.push(function () {
return jIO.util.ajax({
url : url
});
})
.push(undefined, function (error) {
console.log(error);
return undefined;
})
.push(function (response) {
var source_json;
if (!response)
return undefined;
source_json = JSON.parse(response.target.responseText);
return source_json;
});
})
.declareMethod("render", function (options) {
var gadget = this,
doc,
promise_list = [],
i;
return gadget.loadSource(options.url)
.push(function (source_list) {
if (!source_list) {
return gadget.notifySubmitted({
message: "Failed to download source file from specified url...",
status: "error"
})
.push(function () {
return gadget.redirect({command: 'display', options: {
page : "ojs_local_controller"
}});
});
} else {
for (i = 0; i < source_list.length; i += 1) {
doc = {};
doc.title = source_list[i].title;
doc.links = source_list[i].links;
doc.status = "not built";
doc.description = source_list[i].description || "";
promise_list.push(gadget.state.model_gadget.createIndexDoc(doc));
}
return new RSVP.Queue()
.push(function () {
return RSVP.all(promise_list);
})
.push(function (result) {
var count = result.length;
return gadget.notifySubmitted({
message: count + " Source(s) correctly imported!",
status: "success"
})
.push(function () {
var options = {page : "ojs_local_controller"};
if (count > 0) {
options.jio_key = result[0];
}
return gadget.redirect({command: 'display', options: options});
});
});
}
});
});
}(window, document, rJS, RSVP));
\ No newline at end of file
......@@ -77,6 +77,7 @@
<value>
<list>
<string>my_title</string>
<string>my_description</string>
<string>my_links</string>
<string>my_seed</string>
<string>my_magnet_uri</string>
......
......@@ -11,6 +11,8 @@ url_list = [
"gadget_erp5_page_mynij_torrent.js",
"gadget_erp5_page_mynij_activities.html",
"gadget_erp5_page_mynij_activities.js",
"gadget_erp5_page_load_source.html",
"gadget_erp5_page_load_source.js",
"gadget_mynij_model.html",
"gadget_mynij_model.js",
"gadget_mynij_parser.html",
......
......@@ -262,6 +262,7 @@
if (index) {
file_blob = new Blob([JSON.stringify([{
title: index.title,
description: index.description || "",
links: index.links}])], {type : "application/json"});
return gadget.downloadBlob(index.title + ".json", file_blob)
.push(function () {
......
image_module/mynij_*
web_page_module/flexsearch**
web_page_module/gadget_erp5_mynij_**
web_page_module/gadget_erp5_page_load_source_html
web_page_module/gadget_erp5_page_load_source_js
web_page_module/gadget_erp5_page_mynij_**
web_page_module/gadget_mynij_**
web_page_module/gadget_officejs_mynij_**
......
image_module/mynij_*
web_page_module/flexsearch**
web_page_module/gadget_erp5_mynij_**
web_page_module/gadget_erp5_page_load_source_html
web_page_module/gadget_erp5_page_load_source_js
web_page_module/gadget_erp5_page_mynij_**
web_page_module/gadget_mynij_**
web_page_module/gadget_officejs_mynij_**
......
image_module/mynij_*
web_page_module/flexsearch**
web_page_module/gadget_erp5_mynij_**
web_page_module/gadget_erp5_page_load_source_html
web_page_module/gadget_erp5_page_load_source_js
web_page_module/gadget_erp5_page_mynij_**
web_page_module/gadget_mynij_**
web_page_module/gadget_officejs_mynij_**
......
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