Commit 8600259f authored by Boris Kocherov's avatar Boris Kocherov

add file's erp5package's metadata, support js,html,json,ttf

parent 3e38f2ea
(function(r){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=r()}else if(typeof define==="function"&&define.amd){define([],r)}else{var e;if(typeof window!=="undefined"){e=window}else if(typeof global!=="undefined"){e=global}else if(typeof self!=="undefined"){e=self}else{e=this}e.base64js=r()}})(function(){var r,e,t;return function r(e,t,n){function o(i,a){if(!t[i]){if(!e[i]){var u=typeof require=="function"&&require;if(!a&&u)return u(i,!0);if(f)return f(i,!0);var d=new Error("Cannot find module '"+i+"'");throw d.code="MODULE_NOT_FOUND",d}var c=t[i]={exports:{}};e[i][0].call(c.exports,function(r){var t=e[i][1][r];return o(t?t:r)},c,c.exports,r,e,t,n)}return t[i].exports}var f=typeof require=="function"&&require;for(var i=0;i<n.length;i++)o(n[i]);return o}({"/":[function(r,e,t){"use strict";t.byteLength=c;t.toByteArray=v;t.fromByteArray=s;var n=[];var o=[];var f=typeof Uint8Array!=="undefined"?Uint8Array:Array;var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var a=0,u=i.length;a<u;++a){n[a]=i[a];o[i.charCodeAt(a)]=a}o["-".charCodeAt(0)]=62;o["_".charCodeAt(0)]=63;function d(r){var e=r.length;if(e%4>0){throw new Error("Invalid string. Length must be a multiple of 4")}return r[e-2]==="="?2:r[e-1]==="="?1:0}function c(r){return r.length*3/4-d(r)}function v(r){var e,t,n,i,a;var u=r.length;i=d(r);a=new f(u*3/4-i);t=i>0?u-4:u;var c=0;for(e=0;e<t;e+=4){n=o[r.charCodeAt(e)]<<18|o[r.charCodeAt(e+1)]<<12|o[r.charCodeAt(e+2)]<<6|o[r.charCodeAt(e+3)];a[c++]=n>>16&255;a[c++]=n>>8&255;a[c++]=n&255}if(i===2){n=o[r.charCodeAt(e)]<<2|o[r.charCodeAt(e+1)]>>4;a[c++]=n&255}else if(i===1){n=o[r.charCodeAt(e)]<<10|o[r.charCodeAt(e+1)]<<4|o[r.charCodeAt(e+2)]>>2;a[c++]=n>>8&255;a[c++]=n&255}return a}function l(r){return n[r>>18&63]+n[r>>12&63]+n[r>>6&63]+n[r&63]}function h(r,e,t){var n;var o=[];for(var f=e;f<t;f+=3){n=(r[f]<<16)+(r[f+1]<<8)+r[f+2];o.push(l(n))}return o.join("")}function s(r){var e;var t=r.length;var o=t%3;var f="";var i=[];var a=16383;for(var u=0,d=t-o;u<d;u+=a){i.push(h(r,u,u+a>d?d:u+a))}if(o===1){e=r[t-1];f+=n[e>>2];f+=n[e<<4&63];f+="=="}else if(o===2){e=(r[t-2]<<8)+r[t-1];f+=n[e>>10];f+=n[e>>4&63];f+=n[e<<2&63];f+="="}i.push(f);return i.join("")}},{}]},{},[])("/")});
{
"name": "erp5_officejs_fs2erp5_gadget",
"scopes": [
{
"prefix": "fs2erp5",
"paths": [
""
]
}
]
"description": "RenderJs gadget allow export github published repos as bt for import in erp5.",
"version": "001",
"authors": [
"Copyright (c) 2017 Nexedi SA"
],
"license": "LGPL3",
"id_prefix": "fs2erp5_"
}
\ No newline at end of file
......@@ -13,6 +13,8 @@
<script src="gadget_officejs_page_export2erp5.js"></script>
<script src="zipfilestorage-with-jszip.js"></script>
<script src="jstoxml.js"></script>
<script src="base64js.min.js"></script>
<script src="jio_fs2erp5storage.js"></script>
<script src="jio_appcachestorage.js"></script>
</head>
......
This diff is collapsed.
/*jslint indent:2, nomen: true */
/*global exports */
(function(exports) {
"use strict";
var toXML = function(obj, config){
// include XML header
config = config || {};
var out = '';
if(config.header) {
if(typeof config.header === 'string') {
out = config.header;
} else {
out = '<?xml version="1.0" encoding="UTF-8"?>\n';
}
}
var origIndent = config.indent || '';
var indent = '';
var filter = function customFilter(txt) {
if(!config.filter) {
return txt;
}
var mappings = config.filter;
var replacements = [];
for(var map in mappings) {
if(!mappings.hasOwnProperty(map)) {
continue;
}
replacements.push(map);
}
return String(txt).replace(new RegExp('(' + replacements.join('|') + ')', 'g'), function(str, entity) {
return mappings[entity] || '';
});
};
// helper function to push a new line to the output
var push = function(string){
out += string + (origIndent ? '\n' : '');
};
/* create a tag and add it to the output
Example:
outputTag({
name: 'myTag', // creates a tag <myTag>
indent: ' ', // indent string to prepend
closeTag: true, // starts and closes a tag on the same line
selfCloseTag: true,
attrs: { // attributes
foo: 'bar', // results in <myTag foo="bar">
foo2: 'bar2'
}
});
*/
var outputTag = function(tag){
var attrsString = '';
var outputString = '';
var attrs = tag.attrs || '';
// turn the attributes object into a string with key="value" pairs
for(var attr in attrs){
if(attrs.hasOwnProperty(attr)) {
attrsString += ' ' + attr + '="' + attrs[attr] + '"';
}
}
// assemble the tag
outputString += (tag.indent || '') + '<' + (tag.closeTag ? '/' : '') + tag.name + (!tag.closeTag ? attrsString : '') + (tag.selfCloseTag ? '/' : '') + '>';
// if the tag only contains a text string, output it and close the tag
if(tag.text || tag.text === ''){
outputString += filter(tag.text) + '</' + tag.name + '>';
}
push(outputString);
};
// custom-tailored iterator for input arrays/objects (NOT a general purpose iterator)
var every = function(obj, fn, indent){
// array
if(Array.isArray(obj)){
obj.every(function(elt){ // for each element in the array
fn(elt, indent);
return true; // continue to iterate
});
return;
}
// object with tag name
if(obj._name){
fn(obj, indent);
return;
}
// iterable object
for(var key in obj){
if (obj.hasOwnProperty(key)) {
var type = typeof obj[key];
if(obj[key] || type === 'boolean' || type === 'number') {
fn({_name: key, _content: obj[key]}, indent);
//} else if(!obj[key]) { // null value (foo:'')
} else if(obj[key] === null) { // null value (foo:null)
fn(key, indent); // output the keyname as a string ('foo')
} else if(obj[key] === '') {
// blank string
outputTag({
name: key,
text: ''
});
}
}
}
};
var convert = function convert(input, indent){
var type = typeof input;
if(!indent) {
indent = '';
}
if(Array.isArray(input)) {
type = 'array';
}
var path = {
'string': function(){
push(indent + filter(input));
},
'boolean': function(){
push(indent + (input ? 'true' : 'false'));
},
'number': function(){
push(indent + input);
},
'array': function(){
every(input, convert, indent);
},
'function': function(){
push(indent + input());
},
'object': function(){
if(!input._name){
every(input, convert, indent);
return;
}
var outputTagObj = {
name: input._name,
indent: indent,
attrs: input._attrs
};
var type = typeof input._content;
if(type === 'undefined' || input._content._selfCloseTag === true){
if (input._content && input._content._attrs) {
outputTagObj.attrs = input._content._attrs;
}
outputTagObj.selfCloseTag = true;
outputTag(outputTagObj);
return;
}
var objContents = {
'string': function(){
outputTagObj.text = input._content;
outputTag(outputTagObj);
},
'boolean': function(){
outputTagObj.text = (input._content ? 'true' : 'false');
outputTag(outputTagObj);
},
'number': function(){
outputTagObj.text = input._content.toString();
outputTag(outputTagObj);
},
'object': function(){ // or Array
outputTag(outputTagObj);
every(input._content, convert, indent + origIndent);
outputTagObj.closeTag = true;
outputTag(outputTagObj);
},
'function': function(){
outputTagObj.text = input._content(); // () to execute the fn
outputTag(outputTagObj);
}
};
if(objContents[type]) {
objContents[type]();
}
}
};
if(path[type]) {
path[type]();
}
};
convert(obj, indent);
return out;
};
exports.toXML = toXML;
})(typeof exports === 'undefined' ? this.jstoxml={} : exports);
\ 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