Skip to content

Commit

Permalink
28/01/2018 10:09:20
Browse files Browse the repository at this point in the history
  • Loading branch information
epeios-q37 committed Jan 28, 2018
1 parent 67f7620 commit 71bbda8
Show file tree
Hide file tree
Showing 34 changed files with 1,621 additions and 1,085 deletions.
2 changes: 1 addition & 1 deletion .appveyor.yml
@@ -1,5 +1,5 @@
environment:
version: 20180109
version: 20180127
affix: xdhq
matrix:
- nodejs_version: "4"
Expand Down
11 changes: 10 additions & 1 deletion CHANGELOG.md
@@ -1 +1,10 @@
Changelog for the *XDHTML* wrappers.
*Changelog* for the *XDHTML* wrappers.

2018-01-14:
- *xdhqnjs*
- all the files served by the *httpd* server are automatically now relative to the directory containing the main *JS* script; it's no more required to give this directory as parameter of the `launch(...)` method,

2018-01-13:
- *xdhqnjs*
- replacing the *cast* system handling with a system based on *CSS* styles and classes,
- adding functions to (en|dis)able elements (including styles).
8 changes: 4 additions & 4 deletions Makefile
Expand Up @@ -43,9 +43,9 @@ mods += csdbns csdcmn csdmns csdmxb csdmxs
mods += csdscb
mods += sclargmnt sclmisc sclerror scllocale sclrgstry
mods += scln4a sclnjs
mods += prtcl server
mods += registry treep xdhp xdh_cmn xdh_dws
mods += xdh_ups
mods += prtcl proxy prxy_cmn prxy_recv prxy_send
mods += tree
mods += registry treep xdhp

pmods += pllio

Expand Down Expand Up @@ -396,7 +396,7 @@ ifeq ("$(target)","$(Android)")
rm -rf *.d
endif

copt += -DVERSION=\""20180109"\"
copt += -DVERSION=\""20180127"\"
copt += -DCOPYRIGHT_YEARS=\""2017"\"
copt += -DIDENTIFIER=\""d6a723cb-e88f-4f2f-b429-3adc207f1d62"\"

Expand Down
160 changes: 90 additions & 70 deletions XDHq.js
@@ -1,5 +1,5 @@
/*
Copyright (C) 2007-2017 Claude SIMON (http://q37.info/contact/).
Copyright (C) 2017 Claude SIMON (http://q37.info/contact/).
This file is part of XDHq.
Expand Down Expand Up @@ -36,12 +36,12 @@ if (process.env.EPEIOS_SRC) {
} else {
componentPath = '~/bin/';
epeiosPath = "~/hg/epeios/tools/";
xslPath = path.join( epeiosToolsPath, "xdhq/servers/" );
xslPath = path.join(epeiosToolsPath, "xdhq/servers/");
}
njsq = require(componentPath + 'njsq.node');
} else {
njsq = require('njsq');
componentPath = __dirname;
njsq = require('njsq');
componentPath = __dirname;
}

componentFilename = path.join(componentPath, affix + "njs").replace(/\\/g, "\\\\").replace(/'/g, "\\'").replace(/ /g, "\\ ");
Expand All @@ -50,134 +50,154 @@ module.exports = njsq;

class Tree {
constructor() {
njsq._wrapper(xdhq, 1, this );
njsq._call(xdhq, 1, this);
}
pushTag(name) {
njsq._wrapper(xdhq, 3, this, name);
njsq._call(xdhq, 3, this, name);
}
popTag() {
njsq._wrapper(xdhq, 4, this);
njsq._call(xdhq, 4, this);
}
putValue( value ) {
njsq._wrapper(xdhq, 5, this, value.toString());
putValue(value) {
njsq._call(xdhq, 5, this, value.toString());
}
putAttribute(name, value) {
njsq._wrapper(xdhq, 6, this, name, value.toString());
njsq._call(xdhq, 6, this, name, value.toString());
}
}

function pushLabelAndItem(labelAndItem, itemType, labels, items) {
if ((labelAndItem instanceof Array) && (labelAndItem.length === 2) && (typeof labelAndItem[0] === "string") && (typeof labelAndItem[1] === itemType)) {
labels.push(labelAndItem[0]);
items.push(labelAndItem[1]);
} else
throw ("Error in parameters.");
// {'a': b, 'c': d, 'e': f} -> ['a','c','e'] [b,d,f]
function split(keysAndValues, keys, values) {
for (var prop in keysAndValues) {
keys.push(prop);
values.push(keysAndValues[prop]);
}
}

// '[a,b],[c,d],[e,f]' => '[a,c,e],[b,d,f]'
function pushLabelsAndItems(labelsAndItems, itemType, labels, items) {
var length = labelsAndItems.length;
// ['a', 'b', 'c'] ['d', 'e', 'f'] -> { 'a': 'd', 'b': 'e', 'c': 'f' }
function unsplit(keys, values) {
var i = 0;
var keysValues = {};

while (length--) {
pushLabelAndItem(labelsAndItems[length], itemType, labels, items);
while (i < keys.length) {
keysValues[keys[i]] = values[i];
i++;
}
}

function nop() {
return keysValues;
}

function normalize(callback) {
if (typeof callback === "undefined")
return nop;
else
return callback;
// 'key', value -> { 'key': value }
function merge(key, value) {
var keyValue = {};

keyValue[key] = value;

return keyValue;
}

class XDH {
alert(message, callback) {
njsq._wrapper(xdhq, 9, this, message, normalize(callback));
njsq._call(xdhq, 9, this, message, callback);
}
confirm(message, callback) {
njsq._wrapper(xdhq, 10, this, message, (result) => normalize(callback)( result == "true" ));
njsq._call(xdhq, 10, this, message, (result) => callback(result == "true"));
}
setLayout(id, tree, xslFilename, callback) {
njsq._wrapper(xdhq, 11, this, id, tree, xslFilename, normalize(callback));
njsq._call(xdhq, 11, this, id, tree, xslFilename, callback);
}
getContents(ids, callback ) {
njsq._wrapper(xdhq, 12, this, ids, normalize( callback) );
getContents(ids, callback) {
njsq._call(xdhq, 12, this, ids,
(contents) => callback(unsplit(ids, contents))
);
}
getContent(id, callback ) {
return this.getContents([id], (result) => { normalize(callback)(result[0]); } );
getContent(id, callback) {
return this.getContents([id], (result) => { callback(result[id]); });
}
setContents(idsAndContents, callback) {
var ids = new Array();
var contents = new Array();
var ids = [];
var contents = [];

pushLabelsAndItems(idsAndContents, "string", ids, contents);
split(idsAndContents, ids, contents);

njsq._wrapper(xdhq, 13, this, ids, contents, normalize(callback));
njsq._call(xdhq, 13, this, ids, contents, callback);
}
setContent(id, content, callback) {
return this.setContents([[id,content]], normalize(callback));
return this.setContents(merge(id, content), callback);
}
dressWidgets(id, callback) {
njsq._wrapper(xdhq, 14, this, id, normalize(callback));
njsq._call(xdhq, 14, this, id, callback);
}
setCastsByIds(idsAndValues, callback ) {
var ids = new Array();
var values = new Array();
handleClasses(idsAndClasses, fid, callback) {
var ids = [];
var classes = [];

pushLabelsAndItems(idsAndValues, "string", ids, values);
split(idsAndClasses, ids, classes);

njsq._wrapper(xdhq, 15, this, ids, values, normalize(callback));
njsq._call(xdhq, fid, this, ids, classes, callback);
}
setCastById(id, value, callback ) {
this.setCastsByIds([[id, value]], normalize(callback) );
addClasses(idsAndClasses, callback) {
this.handleClasses(idsAndClasses, 15, callback);
}
setCastsByTags(id, tagsAndValues, callback) {
var tags = new Array();
var values = new Array();

pushLabelsAndItems(tagsAndValues, "string", tags, values);

njsq._wrapper(xdhq, 16, this, id, tags, values, normalize(callback));
addClass(id, clas, callback) {
this.addClasses(merge(id, clas), callback);
}
removeClasses(idsAndClasses, callback) {
this.handleClasses(idsAndClasses, 16, callback);
}
setCastByTag(id, tag, value, callback) {
this.setCastsByTags(id, [[tag, value]], normalize(callback));
removeClass(id, clas, callback) {
this.removeClasses(merge(id, clas), callback);
}
toggleClasses(idsAndClasses, callback) {
this.handleClasses(idsAndClasses, 17, callback);
}
toggleClass(id, clas, callback) {
this.toggleClasses(merge(id, clas), callback);
}
enableElements(ids, callback) {
njsq._call(xdhq, 18, this, ids, callback);
}
enableElement(id, callback) {
this.enableElements([id], callback);
}
disableElements(ids, callback) {
njsq._call(xdhq, 19, this, ids, callback);
}
disableElement(id, callback) {
this.disableElements([id], callback);
}
getAttribute(id, name, callback) {
return njsq._wrapper(xdhq, 17, this, id, name, normalize(callback));
return njsq._call(xdhq, 20, this, id, name, callback);
}
setAttribute(id, name, value, callback ) {
njsq._wrapper(xdhq, 18, this, id, name, value, normalize(callback));
setAttribute(id, name, value, callback) {
njsq._call(xdhq, 21, this, id, name, value, callback);
}
getProperty(id, name) {
return njsq._wrapper(xdhq, 19, this, id, name);
return njsq._call(xdhq, 22, this, id, name);
}
setProperty(id, name, value) {
njsq._wrapper(xdhq, 20, this, id, name, value);
njsq._call(xdhq, 23, this, id, name, value);
}
}

function register(idsAndItems) {
var tags = new Array();
var callbacks = new Array();
var tags = [];
var callbacks = [];

pushLabelsAndItems(idsAndItems, "function", tags, callbacks);
split(idsAndItems, tags, callbacks);

njsq._wrapper(xdhq, 7, tags, callbacks);
njsq._call(xdhq, 7, tags, callbacks);
}

function launch( callback ) {
njsq._wrapper(xdhq, 8, callback, "53752" );
function launch(callback) {
njsq._call(xdhq, 8, callback, "53752");
}

module.exports.componentInfo = () => njsq._componentInfo(xdhq);
module.exports.wrapperInfo = () => njsq._wrapperInfo();
module.exports.returnArgument = (text) => { return njsq._wrapper(xdhq, 0, text) };
module.exports.returnArgument = (text) => { return njsq._call(xdhq, 0, text) };

module.exports.Tree = Tree;
module.exports.register = register;
module.exports.launch = launch;
module.exports.XDH = XDH;

4 changes: 2 additions & 2 deletions binding.gyp
Expand Up @@ -41,9 +41,9 @@
{
"target_name": "<(module_name)",
"type": "shared_library",
"sources": [ "<(src)/xdhqnjs.cpp", "<(src)/registry.cpp", "<(src)/treep.cpp", "<(src)/xdhp.cpp", "<(src)/xdh_cmn.cpp", "<(src)/xdh_dws.cpp", "<(src)/xdh_ups.cpp", "<(epeios)/ags.cpp", "<(epeios)/aem.cpp", "<(epeios)/bch.cpp", "<(epeios)/bitbch.cpp", "<(epeios)/bomhdl.cpp", "<(epeios)/bso.cpp", "<(epeios)/cdgb64.cpp", "<(epeios)/cio.cpp", "<(epeios)/cpe.cpp", "<(epeios)/crptgr.cpp", "<(epeios)/cslio.cpp", "<(epeios)/crt.cpp", "<(epeios)/ctn.cpp", "<(epeios)/dir.cpp", "<(epeios)/dte.cpp", "<(epeios)/dtfbsc.cpp", "<(epeios)/dtfptb.cpp", "<(epeios)/epsmsc.cpp", "<(epeios)/err.cpp", "<(epeios)/fdr.cpp", "<(epeios)/fil.cpp", "<(epeios)/flf.cpp", "<(epeios)/flsq.cpp", "<(epeios)/flw.cpp", "<(epeios)/flx.cpp", "<(epeios)/fnm.cpp", "<(epeios)/ias.cpp", "<(epeios)/idsq.cpp", "<(epeios)/iof.cpp", "<(epeios)/iop.cpp", "<(epeios)/lcl.cpp", "<(epeios)/lck.cpp", "<(epeios)/lst.cpp", "<(epeios)/lstbch.cpp", "<(epeios)/lstcrt.cpp", "<(epeios)/lstctn.cpp", "<(epeios)/mns.cpp", "<(epeios)/mtk.cpp", "<(epeios)/mtx.cpp", "<(epeios)/ntvstr.cpp", "<(epeios)/que.cpp", "<(epeios)/rgstry.cpp", "<(epeios)/sdr.cpp", "<(epeios)/stkbse.cpp", "<(epeios)/stkbch.cpp", "<(epeios)/stkcrt.cpp", "<(epeios)/stkctn.cpp", "<(epeios)/str.cpp", "<(epeios)/strng.cpp", "<(epeios)/stsfsm.cpp", "<(epeios)/tagsbs.cpp", "<(epeios)/tht.cpp", "<(epeios)/thtsub.cpp", "<(epeios)/tol.cpp", "<(epeios)/txf.cpp", "<(epeios)/tys.cpp", "<(epeios)/uys.cpp", "<(epeios)/utf.cpp", "<(epeios)/xml.cpp", "<(epeios)/xpp.cpp", "<(epeios)/xtf.cpp", "<(epeios)/llio.cpp", "<(epeios)/dlbrry.cpp", "<(epeios)/n4all.cpp", "<(epeios)/n4njs.cpp", "<(epeios)/plgn.cpp", "<(epeios)/plgncore.cpp", "<(epeios)/uvqdcl.cpp", "<(epeios)/sck.cpp", "<(epeios)/csdbns.cpp", "<(epeios)/csdcmn.cpp", "<(epeios)/csdmns.cpp", "<(epeios)/csdmxb.cpp", "<(epeios)/csdmxs.cpp", "<(epeios)/csdscb.cpp", "<(epeios)/sclargmnt.cpp", "<(epeios)/sclmisc.cpp", "<(epeios)/sclerror.cpp", "<(epeios)/scllocale.cpp", "<(epeios)/sclrgstry.cpp", "<(epeios)/scln4a.cpp", "<(epeios)/sclnjs.cpp", "<(src)/prtcl.cpp", "<(src)/server.cpp",
"sources": [ "<(src)/xdhqnjs.cpp", "<(src)/registry.cpp", "<(src)/treep.cpp", "<(src)/xdhp.cpp", "<(epeios)/ags.cpp", "<(epeios)/aem.cpp", "<(epeios)/bch.cpp", "<(epeios)/bitbch.cpp", "<(epeios)/bomhdl.cpp", "<(epeios)/bso.cpp", "<(epeios)/cdgb64.cpp", "<(epeios)/cio.cpp", "<(epeios)/cpe.cpp", "<(epeios)/crptgr.cpp", "<(epeios)/cslio.cpp", "<(epeios)/crt.cpp", "<(epeios)/ctn.cpp", "<(epeios)/dir.cpp", "<(epeios)/dte.cpp", "<(epeios)/dtfbsc.cpp", "<(epeios)/dtfptb.cpp", "<(epeios)/epsmsc.cpp", "<(epeios)/err.cpp", "<(epeios)/fdr.cpp", "<(epeios)/fil.cpp", "<(epeios)/flf.cpp", "<(epeios)/flsq.cpp", "<(epeios)/flw.cpp", "<(epeios)/flx.cpp", "<(epeios)/fnm.cpp", "<(epeios)/ias.cpp", "<(epeios)/idsq.cpp", "<(epeios)/iof.cpp", "<(epeios)/iop.cpp", "<(epeios)/lcl.cpp", "<(epeios)/lck.cpp", "<(epeios)/lst.cpp", "<(epeios)/lstbch.cpp", "<(epeios)/lstcrt.cpp", "<(epeios)/lstctn.cpp", "<(epeios)/mns.cpp", "<(epeios)/mtk.cpp", "<(epeios)/mtx.cpp", "<(epeios)/ntvstr.cpp", "<(epeios)/que.cpp", "<(epeios)/rgstry.cpp", "<(epeios)/sdr.cpp", "<(epeios)/stkbse.cpp", "<(epeios)/stkbch.cpp", "<(epeios)/stkcrt.cpp", "<(epeios)/stkctn.cpp", "<(epeios)/str.cpp", "<(epeios)/strng.cpp", "<(epeios)/stsfsm.cpp", "<(epeios)/tagsbs.cpp", "<(epeios)/tht.cpp", "<(epeios)/thtsub.cpp", "<(epeios)/tol.cpp", "<(epeios)/txf.cpp", "<(epeios)/tys.cpp", "<(epeios)/uys.cpp", "<(epeios)/utf.cpp", "<(epeios)/xml.cpp", "<(epeios)/xpp.cpp", "<(epeios)/xtf.cpp", "<(epeios)/llio.cpp", "<(epeios)/dlbrry.cpp", "<(epeios)/n4all.cpp", "<(epeios)/n4njs.cpp", "<(epeios)/plgn.cpp", "<(epeios)/plgncore.cpp", "<(epeios)/uvqdcl.cpp", "<(epeios)/sck.cpp", "<(epeios)/csdbns.cpp", "<(epeios)/csdcmn.cpp", "<(epeios)/csdmns.cpp", "<(epeios)/csdmxb.cpp", "<(epeios)/csdmxs.cpp", "<(epeios)/csdscb.cpp", "<(epeios)/sclargmnt.cpp", "<(epeios)/sclmisc.cpp", "<(epeios)/sclerror.cpp", "<(epeios)/scllocale.cpp", "<(epeios)/sclrgstry.cpp", "<(epeios)/scln4a.cpp", "<(epeios)/sclnjs.cpp", "<(src)/prtcl.cpp", "<(src)/proxy.cpp", "<(src)/prxy_cmn.cpp", "<(src)/prxy_recv.cpp", "<(src)/prxy_send.cpp", "<(src)/tree.cpp",
],
"defines": ["VERSION=\"20180109\"", "COPYRIGHT_YEARS=\"2017\""],
"defines": ["VERSION=\"20180127\"", "COPYRIGHT_YEARS=\"2017\""],
"include_dirs": [ "<(src)", "<(epeios)", ],
"conditions": [
[
Expand Down
8 changes: 4 additions & 4 deletions package.json
@@ -1,6 +1,6 @@
{
"name": "xdhq",
"version": "2018.1.9",
"version": "2018.1.27",
"author": "Claude SIMON (http://q37.info/contact/)",
"description": "'XDHTML' wrapper.",
"main": "XDHq.js",
Expand All @@ -10,12 +10,12 @@
"binary": {
"module_name": "xdhqnjs",
"module_path": "./",
"remote_path": "./epeios-q37/xdhq-node/releases/download/v20180109/",
"package_name": "{module_name}-v20180109-{platform}-{arch}.tar.gz",
"remote_path": "./epeios-q37/xdhq-node/releases/download/v20180127/",
"package_name": "{module_name}-v20180127-{platform}-{arch}.tar.gz",
"host": "https://github.com"
},
"dependencies": {
"njsq": "2018.1.9"
"njsq": "2018.1.27"
},
"devDependencies": {

Expand Down

0 comments on commit 71bbda8

Please sign in to comment.