added utility classes to release
parent
c0373703f8
commit
6e1961c793
@ -0,0 +1,92 @@
|
|||||||
|
export default class DataUtils {
|
||||||
|
//--------------------------
|
||||||
|
// constructor
|
||||||
|
//--------------------------
|
||||||
|
constructor() {}
|
||||||
|
//--------------------------
|
||||||
|
// methods
|
||||||
|
//--------------------------
|
||||||
|
|
||||||
|
imgLoad(url) {
|
||||||
|
'use strict';
|
||||||
|
// Create new promise with the Promise() constructor;
|
||||||
|
// This has as its argument a function with two parameters, resolve and reject
|
||||||
|
return new Promise(function(resolve, reject) {
|
||||||
|
// Standard XHR to load an image
|
||||||
|
var request = new XMLHttpRequest();
|
||||||
|
request.open('GET', url);
|
||||||
|
request.responseType = 'blob';
|
||||||
|
// When the request loads, check whether it was successful
|
||||||
|
request.onload = function() {
|
||||||
|
if (request.status === 200) {
|
||||||
|
// If successful, resolve the promise by passing back the request response
|
||||||
|
resolve(request.response);
|
||||||
|
} else {
|
||||||
|
// If it fails, reject the promise with a error message
|
||||||
|
reject(
|
||||||
|
new Error(
|
||||||
|
"Image didn't load successfully; error code:" + request.statusText
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
request.onerror = function() {
|
||||||
|
// Also deal with the case when the entire request fails to begin with
|
||||||
|
// This is probably a network error, so reject the promise with an appropriate message
|
||||||
|
reject(new Error('There was a network error.'));
|
||||||
|
};
|
||||||
|
// Send the request
|
||||||
|
request.send();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
loadImage(src) {
|
||||||
|
'use strict';
|
||||||
|
let self = this;
|
||||||
|
return new Promise(function(resolve, reject) {
|
||||||
|
// Get a reference to the body element, and create a new image object
|
||||||
|
var myImage = new Image();
|
||||||
|
myImage.crossOrigin = ''; // or "anonymous"
|
||||||
|
// Call the function with the URL we want to load, but then chain the
|
||||||
|
// promise then() method on to the end of it. This contains two callbacks
|
||||||
|
self.imgLoad(src).then(
|
||||||
|
function(response) {
|
||||||
|
// The first runs when the promise resolves, with the request.reponse specified within the resolve() method.
|
||||||
|
var imageURL = window.URL.createObjectURL(response);
|
||||||
|
resolve(imageURL);
|
||||||
|
//$('background-content').setStyle('background-image', 'url('+imageURL+')') //myImage.src = imageURL;
|
||||||
|
//console.log(imageURL);
|
||||||
|
//body.appendChild(myImage);
|
||||||
|
// The second runs when the promise is rejected, and logs the Error specified with the reject() method.
|
||||||
|
},
|
||||||
|
function(Error) {
|
||||||
|
reject(Error);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a function to convert the serialize and convert the form data to JSON
|
||||||
|
* @param : $('#form_example');
|
||||||
|
* @return a JSON Stringify
|
||||||
|
*/
|
||||||
|
formDataToJSON(form) {
|
||||||
|
let object = {};
|
||||||
|
let formData = new FormData(form);
|
||||||
|
formData.forEach((value, key) => {
|
||||||
|
if (!object.hasOwnProperty(key)) {
|
||||||
|
object[key] = value;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!Array.isArray(object[key])) {
|
||||||
|
object[key] = [object[key]];
|
||||||
|
}
|
||||||
|
object[key].push(value);
|
||||||
|
});
|
||||||
|
//let json = JSON.stringify(object);
|
||||||
|
return object;
|
||||||
|
}
|
||||||
|
//--------------------------
|
||||||
|
// event handlers
|
||||||
|
//--------------------------
|
||||||
|
}
|
@ -0,0 +1,68 @@
|
|||||||
|
class StringUtils {
|
||||||
|
//--------------------------
|
||||||
|
// constructor
|
||||||
|
//--------------------------
|
||||||
|
constructor() {}
|
||||||
|
//--------------------------
|
||||||
|
// methods
|
||||||
|
//--------------------------
|
||||||
|
cleanString(string) {
|
||||||
|
var clean = string
|
||||||
|
.replace(/(^\-+|[^a-zA-Z0-9\/_| -]+|\-+$)/g, '')
|
||||||
|
.toLowerCase()
|
||||||
|
.replace(/[\/_| -]+/g, '-');
|
||||||
|
return clean;
|
||||||
|
}
|
||||||
|
|
||||||
|
decodeHTML(string, quote_style) {
|
||||||
|
var optTemp = 0,
|
||||||
|
i = 0,
|
||||||
|
noquotes = false;
|
||||||
|
if (typeof quote_style === 'undefined') {
|
||||||
|
quote_style = 2;
|
||||||
|
}
|
||||||
|
string = string
|
||||||
|
.toString()
|
||||||
|
.replace(/</g, '<')
|
||||||
|
.replace(/>/g, '>');
|
||||||
|
var OPTS = {
|
||||||
|
ENT_NOQUOTES: 0,
|
||||||
|
ENT_HTML_QUOTE_SINGLE: 1,
|
||||||
|
ENT_HTML_QUOTE_DOUBLE: 2,
|
||||||
|
ENT_COMPAT: 2,
|
||||||
|
ENT_QUOTES: 3,
|
||||||
|
ENT_IGNORE: 4
|
||||||
|
};
|
||||||
|
if (quote_style === 0) {
|
||||||
|
noquotes = true;
|
||||||
|
}
|
||||||
|
if (typeof quote_style !== 'number') {
|
||||||
|
// Allow for a single string or an array of string flags
|
||||||
|
quote_style = [].concat(quote_style);
|
||||||
|
for (i = 0; i < quote_style.length; i++) {
|
||||||
|
// Resolve string input to bitwise e.g. 'PATHINFO_EXTENSION' becomes 4
|
||||||
|
if (OPTS[quote_style[i]] === 0) {
|
||||||
|
noquotes = true;
|
||||||
|
} else if (OPTS[quote_style[i]]) {
|
||||||
|
optTemp = optTemp | OPTS[quote_style[i]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
quote_style = optTemp;
|
||||||
|
}
|
||||||
|
if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) {
|
||||||
|
string = string.replace(/�*39;/g, "'"); // PHP doesn't currently escape if more than one 0, but it should
|
||||||
|
// string = string.replace(/'|�*27;/g, "'"); // This would also be useful here, but not a part of PHP
|
||||||
|
}
|
||||||
|
if (!noquotes) {
|
||||||
|
string = string.replace(/"/g, '"');
|
||||||
|
}
|
||||||
|
// Put this in last place to avoid escape being double-decoded
|
||||||
|
string = string.replace(/&/g, '&');
|
||||||
|
return string;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------
|
||||||
|
// event handlers
|
||||||
|
//--------------------------
|
||||||
|
}
|
||||||
|
export default StringUtils;
|
Loading…
Reference in New Issue