interactive-mining/interactive-mining-backend/madoap/src/static/create-upload-profile.js

216 lines
8.5 KiB
JavaScript

(function(){
function getCookie(name) {
var value = "; " + document.cookie;
var parts = value.split("; " + name + "=");
if (parts.length == 2) return parts.pop().split(";").shift();
}
////////// UPLOAD FUNCTIONS
$( '.inputfile' ).each( function() {
var $input = $( this ),
$label = $input.next( 'label' ),
labelVal = $label.html();
$input.on( 'change', function( e )
{
var fileName = '';
if( this.files && this.files.length > 1 )
fileName = ( this.getAttribute( 'data-multiple-caption' ) || '' ).replace( '{count}', this.files.length );
else if( e.target.value )
fileName = e.target.value.split( '\\' ).pop();
if( fileName )
$label.find( 'span' ).html( fileName );
else
$label.html( labelVal );
});
// Firefox bug fix
$input
.on( 'focus', function(){ $input.addClass( 'has-focus' ); })
.on( 'blur', function(){ $input.removeClass( 'has-focus' ); });
});
//generates a unique id
var generateId = function(is_pos){
if (is_pos) {
return "positive-" + +new Date() + Math.random().toFixed(5).substring(2);
} else {
return "negative-" + +new Date() + Math.random().toFixed(5).substring(2);
}
}
var handleFileUploadButton = function() {
$("form#profile-input-form").on('change', function(){
if ($('#profile-file-input')[0].value === "") {
window.alert("You must specify a data file to import.");
return false;
}
var formData = new FormData($(this)[0]);
$.ajax({
url: "/",
type: 'POST',
data: formData,
async: false,
success: function (data) {
obj = JSON && JSON.parse(data) || $.parseJSON(data);
console.log(obj);
// reset localStorage and store the uploaded profiles data
localStorage.clear();
// set poswords
var poswords = [];
if (obj.hasOwnProperty("poswords")) {
poswords = obj["poswords"];
for (var word in poswords) {
var obj2 = {};
obj2["phrase"] = word;
obj2["weight"] = poswords[word];
localStorage.setItem(generateId(1), JSON.stringify(obj2));
}
}
// set poswords
var negwords = [];
if (obj.hasOwnProperty("negwords")) {
negwords = obj["negwords"];
for (var word in negwords) {
var obj2 = {};
obj2["phrase"] = word;
obj2["weight"] = negwords[word];
localStorage.setItem(generateId(0), JSON.stringify(obj2));
}
}
if (obj.hasOwnProperty("contextprev")) {
localStorage.setItem("contextprev", String(obj["contextprev"]));
}
if (obj.hasOwnProperty("contextmiddle")) {
localStorage.setItem("contextmiddle", String(obj["contextmiddle"]));
}
if (obj.hasOwnProperty("contextnext")) {
localStorage.setItem("contextnext", String(obj["contextnext"]));
}
if (obj.hasOwnProperty("lettercase")) {
localStorage.setItem("lettercase", String(obj["lettercase"]));
}
if (obj.hasOwnProperty("wordssplitnum")) {
localStorage.setItem("wordssplitnum", String(obj["wordssplitnum"]));
}
if (obj.hasOwnProperty("stopwords")) {
localStorage.setItem("stopwords", String(obj["stopwords"]));
}
if (obj.hasOwnProperty("punctuation")) {
localStorage.setItem("punctuation", String(obj["punctuation"]));
}
// set easy mode option to custom
localStorage.setItem("matchlevel", "#c-level");
window.location="upload-codes";
},
error: function (xhr, ajaxOptions, thrownError) {
UIkit.notification({
message: xhr.responseText,
status: 'danger',
pos: 'top-center',
timeout: 0
});
},
cache: false,
contentType: false,
processData: false
});
$("#profile-file-input")[0].value = "";
return false;
});
}
var handleExampleLoadButton = function() {
$("#example-load-btn").on('click', function(){
var formData = new FormData();
formData.append("example", "1");
$.ajax({
url: "/",
type: 'POST',
data: formData,
async: false,
success: function (data) {
obj = JSON && JSON.parse(data) || $.parseJSON(data);
console.log(obj);
// reset localStorage and store the uploaded profiles data
localStorage.clear();
// set poswords
var poswords = [];
if (obj.hasOwnProperty("poswords")) {
poswords = obj["poswords"];
for (var word in poswords) {
var obj2 = {};
obj2["phrase"] = word;
obj2["weight"] = poswords[word];
localStorage.setItem(generateId(1), JSON.stringify(obj2));
}
}
// set poswords
var negwords = [];
if (obj.hasOwnProperty("negwords")) {
negwords = obj["negwords"];
for (var word in negwords) {
var obj2 = {};
obj2["phrase"] = word;
obj2["weight"] = negwords[word];
localStorage.setItem(generateId(0), JSON.stringify(obj2));
}
}
if (obj.hasOwnProperty("contextprev")) {
localStorage.setItem("contextprev", String(obj["contextprev"]));
}
if (obj.hasOwnProperty("contextmiddle")) {
localStorage.setItem("contextmiddle", String(obj["contextmiddle"]));
}
if (obj.hasOwnProperty("contextnext")) {
localStorage.setItem("contextnext", String(obj["contextnext"]));
}
if (obj.hasOwnProperty("lettercase")) {
localStorage.setItem("lettercase", String(obj["lettercase"]));
}
if (obj.hasOwnProperty("wordssplitnum")) {
localStorage.setItem("wordssplitnum", String(obj["wordssplitnum"]));
}
if (obj.hasOwnProperty("stopwords")) {
localStorage.setItem("stopwords", String(obj["stopwords"]));
}
if (obj.hasOwnProperty("punctuation")) {
localStorage.setItem("punctuation", String(obj["punctuation"]));
}
// set easy mode option to custom
localStorage.setItem("matchlevel", "#c-level");
window.location="upload-codes";
},
error: function (xhr, ajaxOptions, thrownError) {
UIkit.notification({
message: xhr.responseText,
status: 'danger',
pos: 'top-center',
timeout: 0
});
},
cache: false,
contentType: false,
processData: false
});
return false;
});
}
var init = function(){
handleFileUploadButton();
handleExampleLoadButton();
};
//start all
init();
})();