Commit 1ec0842a authored by Sven Franck's avatar Sven Franck

switched to renderJs.mapUrl, cleaned up code

parent a0a78541
...@@ -2,120 +2,87 @@ ...@@ -2,120 +2,87 @@
(function (document, $) { (function (document, $) {
"use strict"; "use strict";
var getParameter = function(searchString, paramName) { var setup = function () {
var i, val, params = searchString.split("&"); renderJs.mapUrl(window.location.search, function (value, textStatus, jqXHR) {
for (i=0;i<params.length;i++) { var scope = value._links.scope.href.slice(0,-1).split(/[/]+/).pop(),
val = params[i].split("="); register = value._links.call.href
if (val[0] == paramName) { .replace("{method}", "register")
return decodeURIComponent(val[1]); .replace("{scope}", scope )
} .replace("{interaction}", ""),
} service = {
return null; "type": "register/any",
}; "src": encodeURIComponent(window.location.href),
"rel": "browse",
"self": window.frameElement.id
};
var mapUrl = function (searchString) { $.ajax({
var fileToDisplay = getParameter(searchString, "file"), method: 'POST',
scope, url: register,
register, context: $(this),
service; data: JSON.stringify(service),
error: function (jqXHR, textStatus, errorThrown) {
console.log("registration failed: " + errorThrown);
},
success: function (value, textStatus, jqXHR) {
// console.log("registration successful");
}
});
if (fileToDisplay) { // HACK: this is hacking the functionality provided by the
// filebrowser!
// 'browser://call/browse/' should be called by the interactor
// instead of hardcoding it here
$.ajax({ $.ajax({
method: 'GET', method: 'GET',
url: fileToDisplay, url: value._links.scope.href,
context: $('body'), context: $('body'),
error: function (jqXHR, textStatus, errorThrown) { error: function (jqXHR, textStatus, errorThrown) {
$(this).text(errorThrown); $(this).text(errorThrown);
}, },
success: function (value, textStatus, jqXHR) { success: function (value2, textStatus, jqXHR) {
var content_type = jqXHR.getResponseHeader("Content-Type") || "",
request = value._links.call.href
.replace("{method}", "request")
.replace("{scope}", scope )
.replace("{interaction}", "preview");
scope = value._links.scope.href.slice(0,-1).split(/[/]+/).pop(); // XXX Hardcoded mime type
register = value._links.call.href if (content_type.split(';')[0] === "application/hal+json") {
.replace("{method}", "register") // XXX Will fail if response does not send expected links...
.replace("{scope}", scope ) $(this).html("<ul>");
.replace("{interaction}", ""); for (var i in value2._links.contents){
service = { $(this).append("<li><button id='" + i + "'>" +
"type": "register/any", value2._links.contents[i].href + "</button></li>");
"src": encodeURIComponent(window.location.href),
"rel": "browse",
"self": window.frameElement.id
};
$.ajax({
method: 'POST',
url: register,
context: $(this),
data: JSON.stringify(service),
error: function (jqXHR, textStatus, errorThrown) {
console.log("registration failed: " + errorThrown);
},
success: function (value, textStatus, jqXHR) {
// console.log("registration successful");
}
});
// HACK: this is hacking the functionality provided by the $(this).find("#" + i.toString()).on('click', function(e, target) {
// filebrowser!
// 'browser://call/browse/' should be called by the interactor
// instead of hardcoding it here
$.ajax({
method: 'GET',
url: value._links.scope.href,
context: $('body'),
error: function (jqXHR, textStatus, errorThrown) {
$(this).text(errorThrown);
},
success: function (value2, textStatus, jqXHR) {
var content_type = jqXHR.getResponseHeader("Content-Type") || "",
request = value._links.call.href
.replace("{method}", "request")
.replace("{scope}", scope )
.replace("{interaction}", "preview");
// XXX Hardcoded mime type $.ajax({
if (content_type.split(';')[0] === "application/hal+json") { method: "POST",
// XXX Will fail if response does not send expected links... url: request,
$(this).html("<ul>"); context: $(this),
for (var i in value2._links.contents){ data: $(this).text(),
$(this).append("<li><button id='" + i + "'>" + error: function (jqXHR, textStatus, errorThrown) {
value2._links.contents[i].href + "</button></li>"); console.log("request failed: " + errorThrown);
},
$(this).find("#" + i.toString()).on('click', function(e, target) { success: function (value, textStatus, jqXHR) {
$.ajax({ console.log("request sent");
method: "POST", }
url: request, });
context: $(this), });
data: $(this).text(),
error: function (jqXHR, textStatus, errorThrown) {
console.log("request failed: " + errorThrown);
},
// success: function (value, textStatus, jqXHR) {
// console.log("request sent");
// }
});
});
}
$(this).append("</ul>");
} else {
$(this).text("Unsupported content type " + content_type);
};
} }
}); $(this).append("</ul>");
}, } else {
$(this).text("Unsupported content type " + content_type);
};
}
}); });
} else { });
$("body").text("No parameter found in url");
}
}; };
$(document).ready(function () { $(document).ready(function () {
var search = window.location.search; setup();
if (search) {
mapUrl(search.slice(1));
} else {
$("body").text("No parameter found in url");
}
}); });
}(document, jQuery)); }(document, jQuery));
...@@ -2,74 +2,31 @@ ...@@ -2,74 +2,31 @@
(function (document, $) { (function (document, $) {
"use strict"; "use strict";
var getParameter = function(searchString, paramName) { var setup = function () {
var i, val, params = searchString.split("&"); renderJs.mapUrl(window.location.search, function (value, textStatus, jqXHR) {
for (i=0;i<params.length;i++) { var sendAPI = "data://application/hal+json;base64," +
val = params[i].split("="); window.btoa(JSON.stringify({
if (val[0] == paramName) { _links: {
return decodeURIComponent(val[1]); self: {href:''},
} scope: {href: value._links.scope.href},
} call: {href:'browser://call/{method}/{scope}/{interaction}'}
return null; }}));
};
$("body").addGadget({
var mapUrl = function (searchString) { "src": 'filebrowser.html?file=' + sendAPI,
var fileToDisplay = getParameter(searchString, "file"), "iframe": "true"
browserAPI, });
previewAPI;
if (fileToDisplay) {
$.ajax({
method: 'GET',
// XXX Hardcoded
url: fileToDisplay,
context: $('body'),
error: function (jqXHR, textStatus, errorThrown) {
$(this).text(errorThrown);
},
success: function (value, textStatus, jqXHR) {
// merge again once working!
browserAPI = "data://application/hal+json;base64," +
window.btoa(JSON.stringify({
_links: {
self: {href:''},
scope: {href: value._links.scope.href},
call: {href:'browser://call/{method}/{scope}/{interaction}'}
}}));
previewAPI = "data://application/hal+json;base64," +
window.btoa(JSON.stringify({
_links: {
self: {href:''},
scope: {href: value._links.scope.href},
call: {href:'browser://call/{method}/{scope}/{interaction}'}
}}));
$("body").addGadget({
"src": 'filebrowser.html?file=' + browserAPI,
"iframe": "true"
});
$("body").addGadget({ $("body").addGadget({
"src": value._links.target.href + '?file=' + previewAPI, "src": value._links.target.href + '?file=' + sendAPI,
"iframe": "true" "iframe": "true"
});
}
}); });
} else { });
$("body").text("No parameter found in url");
}
}; };
$(document).ready(function () { $(document).ready(function () {
var search = window.location.search; setup();
if (search) {
mapUrl(search.slice(1));
} else {
$("body").text("No parameter found in url");
}
}); });
}(document, jQuery)); }(document, jQuery));
...@@ -9,37 +9,34 @@ ...@@ -9,37 +9,34 @@
sessionStorage.setItem("schnick", "schnack"); sessionStorage.setItem("schnick", "schnack");
var setup = function () { var setup = function () {
// instance1 and 2 should be passed through the URl, mapped here!
// TODO: I don't like scope/target for passing too specific information renderJs.mapUrl(window.location.search, function (value, textStatus, jqXHR) {
// like scope = which storage to use and target = which file to load in
// the next target var instance1 = "data://application/hal+json;base64," +
// TODO: Should be in window.location.href, not declared here window.btoa(JSON.stringify({
// TODO: how to pass multiple instances of _links? allow at all? _links: {
self: {href: ''},
var instance1 = "data://application/hal+json;base64," + scope: {href: 'browser://browse/ls/'},
window.btoa(JSON.stringify({ target: {href: 'preview_by_hash_change.html'}
_links: {
self: {href: ''},
scope: {href: 'browser://browse/ls/'},
target: {href: 'preview_by_hash_change.html'}
}})); }}));
var instance2 = "data://application/hal+json;base64," + var instance2 = "data://application/hal+json;base64," +
window.btoa(JSON.stringify({ window.btoa(JSON.stringify({
_links: { _links: {
self: {href: ''}, self: {href: ''},
scope: {href: 'browser://browse/ss/'}, scope: {href: 'browser://browse/ss/'},
target: {href: 'preview_by_postmessage.html'} target: {href: 'preview_by_postmessage.html'}
}})); }}));
$("body").addGadget({ $("body").addGadget({
"src": "filebrowser_and_preview.html?file=" + instance1, "src": "filebrowser_and_preview.html?file=" + instance1,
"iframe": "true" "iframe": "true"
}); });
$("body").addGadget({ $("body").addGadget({
"src": "filebrowser_and_preview.html?file=" + instance2, "src": "filebrowser_and_preview.html?file=" + instance2,
"iframe": "true" "iframe": "true"
});
}); });
}; };
......
...@@ -2,70 +2,38 @@ ...@@ -2,70 +2,38 @@
"use strict"; "use strict";
(function (document, $) { (function (document, $) {
var getParameter = function(searchString, paramName) { var setup = function () {
var i, val, params = searchString.split("&"); renderJs.mapUrl(window.location.search, function (value, textStatus, jqXHR) {
for (i=0;i<params.length;i++) { var scope = value._links.scope.href.slice(0,-1).split(/[/]+/).pop(),
val = params[i].split("="); register = value._links.call.href
if (val[0] == paramName) { .replace("{method}", "register")
return decodeURIComponent(val[1]); .replace("{scope}", scope )
} .replace("{interaction}", ""),
} service = {
return null; "type": "register/any",
"src": encodeURIComponent(window.location.href),
"rel": "preview",
"self": window.frameElement.id
};
$.ajax({
method: 'POST',
url: register,
context: $(this),
data: JSON.stringify(service),
error: function (jqXHR, textStatus, errorThrown) {
console.log("registration failed: " + errorThrown);
},
success: function (value, textStatus, jqXHR) {
// console.log("registration successful");
}
});
});
}; };
var mapUrl = function (searchString) {
var fileToDisplay = getParameter(searchString, "file"),
scope,
register,
service;
if (fileToDisplay) {
$.ajax({
method: 'GET',
url: fileToDisplay,
context: $('body'),
error: function (jqXHR, textStatus, errorThrown) {
$(this).text(errorThrown);
},
success: function (value, textStatus, jqXHR) {
scope = value._links.scope.href.slice(0,-1).split(/[/]+/).pop();
register = value._links.call.href
.replace("{method}", "register")
.replace("{scope}", scope )
.replace("{interaction}", "");
service = {
"type": "register/any",
"src": encodeURIComponent(window.location.href),
"rel": "preview",
"self": window.frameElement.id
};
$.ajax({
method: 'POST',
url: register,
context: $(this),
data: JSON.stringify(service),
error: function (jqXHR, textStatus, errorThrown) {
console.log("registration failed: " + errorThrown);
},
success: function (value, textStatus, jqXHR) {
// console.log("registration successful");
}
});
}
});
}
}
$(document).ready(function () { $(document).ready(function () {
var search = window.location.search; setup();
if (search) {
mapUrl(search.slice(1));
} else {
$("body").text("No parameter found in url");
}
}); });
}(document, jQuery)); }(document, jQuery));
\ No newline at end of file
...@@ -2,76 +2,38 @@ ...@@ -2,76 +2,38 @@
"use strict"; "use strict";
(function (document, $) { (function (document, $) {
var getParameter = function(searchString, paramName) { var setup = function () {
var i, val, params = searchString.split("&"); renderJs.mapUrl(window.location.search, function (value, textStatus, jqXHR) {
for (i=0;i<params.length;i++) { var scope = value._links.scope.href.slice(0,-1).split(/[/]+/).pop(),
val = params[i].split("="); register = value._links.call.href
if (val[0] == paramName) { .replace("{method}", "register")
return decodeURIComponent(val[1]); .replace("{scope}", scope )
} .replace("{interaction}", ""),
} service = {
return null; "type": "register/any",
"src": encodeURIComponent(window.location.href),
"rel": "preview",
"self": window.frameElement.id
};
$.ajax({
method: 'POST',
url: register,
context: $(this),
data: JSON.stringify(service),
error: function (jqXHR, textStatus, errorThrown) {
console.log("registration failed: " + errorThrown);
},
success: function (value, textStatus, jqXHR) {
// console.log("registration successful");
}
});
});
}; };
var mapUrl = function (searchString) {
var fileToDisplay = getParameter(searchString, "file"),
scope,
register,
service;
if (fileToDisplay) {
$.ajax({
method: 'GET',
url: fileToDisplay,
context: $('body'),
error: function (jqXHR, textStatus, errorThrown) {
$(this).text(errorThrown);
},
success: function (value, textStatus, jqXHR) {
scope = value._links.scope.href.slice(0,-1).split(/[/]+/).pop();
register = value._links.call.href
.replace("{method}", "register")
.replace("{scope}", scope )
.replace("{interaction}", "");
service = {
"type": "register/any",
"src": encodeURIComponent(window.location.href),
"rel": "preview",
"self": window.frameElement.id
};
$.ajax({
method: 'POST',
url: register,
context: $(this),
data: JSON.stringify(service),
error: function (jqXHR, textStatus, errorThrown) {
console.log("registration failed: " + errorThrown);
},
success: function (value, textStatus, jqXHR) {
// console.log("registration successful");
}
});
// renderJs.addService(service, function (response, error) {
// console.log("registration happened");
// console.log(error);
// console.log(response);
// });
}
});
}
}
$(document).ready(function () { $(document).ready(function () {
var search = window.location.search; setup();
if (search) {
mapUrl(search.slice(1));
} else {
$("body").text("No parameter found in url");
}
}); });
}(document, jQuery)); }(document, jQuery));
\ No newline at end of file
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