blob: 8b3dcefe84879e2411bfdeb20ab2782e40093a20 [file] [log] [blame]
// Copyright (c) 2000-2017 Ericsson Telecom AB //
// All rights reserved. This program and the accompanying materials are made available under the //
// terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at //
// http://www.eclipse.org/legal/epl-v10.html //
///////////////////////////////////////////////////////////////////////////////////////////////////////
function FileHandler() {
"use strict";
// disable cache (mainly for IE, it works all right with firefox and chrome)
$.ajaxSetup({cache: false});
var v_cache = {};
var v_useCache = true;
this.useCache = function(p_useCache) {
v_useCache = p_useCache;
v_cache = {};
};
this.putFile = function(url, p_data, callback) {
$.ajax({
url: url,
type: 'PUT',
success: function(data) { callback(true, data); },
error: function(data) { callback(false, data); },
data: p_data,
dataType: 'text',
contentType: 'text',
timeout: 10000
});
if (v_useCache) {
v_cache[url] = p_data;
}
};
this.getDirectory = function(url, callback) {
$.ajax({
url: url,
type: 'LSDIR',
success: function(aData) {callback(JSON.parse(aData).fileList.sort());},
data: "",
dataType: 'text',
contentType: 'text',
timeout: 10000
});
};
this.createDirectory = function(url, callback) {
$.ajax({
url: url,
type: 'MKDIR',
success: function(data) {callback(true, data);},
error: function(data) {callback(false, data);},
data: "",
dataType: "text",
timeout: 10000
});
};
this.delDirectory = function(url, callback) {
$.ajax({
url: url,
type: 'RMDIR',
success: function(data) { callback(true, data); },
error: function(data) { callback(false, data); },
data: "",
dataType: "text",
timeout: 10000
});
};
this.loadFile = function(url, callback) {
if (v_useCache && v_cache[url] != undefined) {
callback(true, v_cache[url]);
return;
}
function success(data, textStatus, jqXHR) {
if (v_useCache) {
v_cache[url] = data;
}
callback(true, data);
}
function error(data, textStatus, jqXHR) {
callback(false, "Loading: " + textStatus + " " + jqXHR);
}
$.ajax({
url: url,
type: 'GET',
success: success,
error: error,
dataType: "text",
data: "",
timeout: 10000
});
};
this.importJsFile = function(file, p_callback) {
var v_callback = p_callback;
function success(data, textStatus, jqXHR) {
v_callback(true);
}
function error(data, textStatus, jqXHR) {
v_callback(false, "Loading: " + textStatus + " " + jqXHR + " " + file);
}
$.ajax({
url: file,
dataType: "script",
success: success,
error: error,
timeout: 10000
});
};
this.loadCss = function(hmtlContentId, cssFile, callback) {
$("#" + hmtlContentId).load(cssFile, callback);
};
this.loadCssFiles = function(cssFiles, id) {
for (var i = 0; i < cssFiles.length; ++i) {
// html ids should not contain / and . so we replace them with _
var cssId = cssFiles[i].replace(/[\/\.]/gi, "_");
$("#" + id).prepend('<style id="' + cssId + '" type="text/css"></style>');
this.loadCss(cssId, cssFiles[i]);
}
};
}