From 16d36a670edcca71a72d8a5395ccb6cf2d028a7f Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Mon, 7 Jun 2021 21:08:41 +0200 Subject: [PATCH] Icons can now be organized in subdirectories. --- Client/httpInterface.js | 134 +++++++++++------- .../Icons/{ => Asset}/asset-claim-vote.png | Bin .../Icons/{ => Asset}/asset-class.png | Bin .../{ => Asset}/asset-contribution-claim.png | Bin .../asset-contributions-folder.png | Bin .../Icons/{ => Asset}/asset-weight-vote.png | Bin .../Governance/Icons/{ => Asset}/asset.png | Bin .../Governance/Icons/{ => Asset}/assets.png | Bin .../{ => Feature}/feature-claim-vote.png | Bin .../Icons/{ => Feature}/feature-class.png | Bin .../feature-contribution-claim.png | Bin .../feature-contributions-folder.png | Bin .../{ => Feature}/feature-weight-vote.png | Bin .../Icons/{ => Feature}/feature.png | Bin .../Icons/{ => Feature}/features.png | Bin .../Icons/{ => Pool}/pool-class.png | Bin .../Icons/{ => Pool}/pool-weight-vote.png | Bin Projects/Governance/Icons/{ => Pool}/pool.png | Bin .../Governance/Icons/{ => Pool}/pools.png | Bin .../{ => Position}/position-claim-vote.png | Bin .../Icons/{ => Position}/position-class.png | Bin .../position-contribution-claim.png | Bin .../position-contributions-folder.png | Bin .../{ => Position}/position-weight-vote.png | Bin .../Icons/{ => Position}/position.png | Bin .../Icons/{ => Position}/positions.png | Bin .../Governance/Icons/api-query-parameter.png | Bin 9747 -> 0 bytes .../Icons/{referrer.png => user-referrer.png} | Bin .../Schemas/App-Schema/user-profile.json | 10 +- .../{Referrer.json => user-referrer.json} | 4 +- .../App-Schema/votes-distribution.json | 6 +- .../Schemas/Docs-Nodes/referrer.json | 4 +- .../UI/Spaces/Design-Space/DesignSpace.js | 15 +- 33 files changed, 106 insertions(+), 67 deletions(-) rename Projects/Governance/Icons/{ => Asset}/asset-claim-vote.png (100%) rename Projects/Governance/Icons/{ => Asset}/asset-class.png (100%) rename Projects/Governance/Icons/{ => Asset}/asset-contribution-claim.png (100%) rename Projects/Governance/Icons/{ => Asset}/asset-contributions-folder.png (100%) rename Projects/Governance/Icons/{ => Asset}/asset-weight-vote.png (100%) rename Projects/Governance/Icons/{ => Asset}/asset.png (100%) rename Projects/Governance/Icons/{ => Asset}/assets.png (100%) rename Projects/Governance/Icons/{ => Feature}/feature-claim-vote.png (100%) rename Projects/Governance/Icons/{ => Feature}/feature-class.png (100%) rename Projects/Governance/Icons/{ => Feature}/feature-contribution-claim.png (100%) rename Projects/Governance/Icons/{ => Feature}/feature-contributions-folder.png (100%) rename Projects/Governance/Icons/{ => Feature}/feature-weight-vote.png (100%) rename Projects/Governance/Icons/{ => Feature}/feature.png (100%) rename Projects/Governance/Icons/{ => Feature}/features.png (100%) rename Projects/Governance/Icons/{ => Pool}/pool-class.png (100%) rename Projects/Governance/Icons/{ => Pool}/pool-weight-vote.png (100%) rename Projects/Governance/Icons/{ => Pool}/pool.png (100%) rename Projects/Governance/Icons/{ => Pool}/pools.png (100%) rename Projects/Governance/Icons/{ => Position}/position-claim-vote.png (100%) rename Projects/Governance/Icons/{ => Position}/position-class.png (100%) rename Projects/Governance/Icons/{ => Position}/position-contribution-claim.png (100%) rename Projects/Governance/Icons/{ => Position}/position-contributions-folder.png (100%) rename Projects/Governance/Icons/{ => Position}/position-weight-vote.png (100%) rename Projects/Governance/Icons/{ => Position}/position.png (100%) rename Projects/Governance/Icons/{ => Position}/positions.png (100%) delete mode 100644 Projects/Governance/Icons/api-query-parameter.png rename Projects/Governance/Icons/{referrer.png => user-referrer.png} (100%) rename Projects/Governance/Schemas/App-Schema/{Referrer.json => user-referrer.json} (93%) diff --git a/Client/httpInterface.js b/Client/httpInterface.js index ae027858f..aca478aa4 100644 --- a/Client/httpInterface.js +++ b/Client/httpInterface.js @@ -948,6 +948,7 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE } path = unescape(path) + respondWithImage(path, httpResponse) } break @@ -1068,7 +1069,9 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE const folder = global.env.PATH_TO_PROJECTS + '/' + project + '/Icons/' - fs.readdir(folder, (err, files) => { + getAllFilesInDirectoryAndSubdirectories(folder, onFilesReady) + + function onFilesReady(files) { for (let j = 0; j < files.length; j++) { let file = files[j] icons.push([project, file]) @@ -1078,7 +1081,7 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE if (projectCounter === totalProjects) { respondWithContent(JSON.stringify(icons), httpResponse) } - }) + } } } break @@ -1496,57 +1499,57 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE function sendSchema(filePath, schemaType) { let fs = require('fs') - try { - let folder = '' - switch (schemaType) { - case 'AppSchema': { - folder = 'App-Schema' - break - } - case 'DocsNodeSchema': { - folder = 'Docs-Nodes' - break - } - case 'DocsConceptSchema': { - folder = 'Docs-Concepts' - break - } - case 'DocsTopicSchema': { - folder = 'Docs-Topics' - break - } - case 'DocsTutorialSchema': { - folder = 'Docs-Tutorials' - break - } - case 'DocsReviewSchema': { - folder = 'Docs-Reviews' - break - } - case 'DocsBookSchema': { - folder = 'Docs-Books' - break - } + try { + let folder = '' + switch (schemaType) { + case 'AppSchema': { + folder = 'App-Schema' + break } - - let schemaArray = [] - let fileList = fs.readdirSync(filePath + '/' + folder) - for (let k = 0; k < fileList.length; k++) { - let name = fileList[k] - let fileContent = fs.readFileSync(filePath + '/' + folder + '/' + name) - let schemaDocument = JSON.parse(fileContent) - schemaArray.push(schemaDocument) + case 'DocsNodeSchema': { + folder = 'Docs-Nodes' + break } - let schema = JSON.stringify(schemaArray) - respondWithContent(schema, httpResponse) - } catch (err) { - if (err.message.indexOf('no such file or directory') < 0) { - console.log('Could not send Schema:', filePath, schemaType) - console.log(err.stack) + case 'DocsConceptSchema': { + folder = 'Docs-Concepts' + break + } + case 'DocsTopicSchema': { + folder = 'Docs-Topics' + break + } + case 'DocsTutorialSchema': { + folder = 'Docs-Tutorials' + break + } + case 'DocsReviewSchema': { + folder = 'Docs-Reviews' + break + } + case 'DocsBookSchema': { + folder = 'Docs-Books' + break } - respondWithContent("[]", httpResponse) } - + + let schemaArray = [] + let fileList = fs.readdirSync(filePath + '/' + folder) + for (let k = 0; k < fileList.length; k++) { + let name = fileList[k] + let fileContent = fs.readFileSync(filePath + '/' + folder + '/' + name) + let schemaDocument = JSON.parse(fileContent) + schemaArray.push(schemaDocument) + } + let schema = JSON.stringify(schemaArray) + respondWithContent(schema, httpResponse) + } catch (err) { + if (err.message.indexOf('no such file or directory') < 0) { + console.log('Could not send Schema:', filePath, schemaType) + console.log(err.stack) + } + respondWithContent("[]", httpResponse) + } + } function sendStyleSheet(fileName) { @@ -1727,4 +1730,37 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE return [] } } + + function getAllFilesInDirectoryAndSubdirectories(dir, callback) { + const { promisify } = require('util'); + const { resolve } = require('path'); + const fs = require('fs'); + const readdir = promisify(fs.readdir); + const stat = promisify(fs.stat); + + getFiles(dir) + .then(files => { + let splittedDir = dir.split('/') + let lastFolder = splittedDir[splittedDir.length - 2] + let pathAndNames = [] + for (let i = 0; i < files.length; i++) { + let file = files[i] + let filesSplitted = file.split(lastFolder) + let pathName = filesSplitted[1] + pathName = pathName.substring(1, pathName.length) + pathAndNames.push(pathName) + } + callback(pathAndNames) + }) + .catch(e => console.error(e)); + + async function getFiles(dir) { + const subdirs = await readdir(dir); + const files = await Promise.all(subdirs.map(async (subdir) => { + const res = resolve(dir, subdir); + return (await stat(res)).isDirectory() ? getFiles(res) : res; + })); + return files.reduce((a, f) => a.concat(f), []); + } + } } \ No newline at end of file diff --git a/Projects/Governance/Icons/asset-claim-vote.png b/Projects/Governance/Icons/Asset/asset-claim-vote.png similarity index 100% rename from Projects/Governance/Icons/asset-claim-vote.png rename to Projects/Governance/Icons/Asset/asset-claim-vote.png diff --git a/Projects/Governance/Icons/asset-class.png b/Projects/Governance/Icons/Asset/asset-class.png similarity index 100% rename from Projects/Governance/Icons/asset-class.png rename to Projects/Governance/Icons/Asset/asset-class.png diff --git a/Projects/Governance/Icons/asset-contribution-claim.png b/Projects/Governance/Icons/Asset/asset-contribution-claim.png similarity index 100% rename from Projects/Governance/Icons/asset-contribution-claim.png rename to Projects/Governance/Icons/Asset/asset-contribution-claim.png diff --git a/Projects/Governance/Icons/asset-contributions-folder.png b/Projects/Governance/Icons/Asset/asset-contributions-folder.png similarity index 100% rename from Projects/Governance/Icons/asset-contributions-folder.png rename to Projects/Governance/Icons/Asset/asset-contributions-folder.png diff --git a/Projects/Governance/Icons/asset-weight-vote.png b/Projects/Governance/Icons/Asset/asset-weight-vote.png similarity index 100% rename from Projects/Governance/Icons/asset-weight-vote.png rename to Projects/Governance/Icons/Asset/asset-weight-vote.png diff --git a/Projects/Governance/Icons/asset.png b/Projects/Governance/Icons/Asset/asset.png similarity index 100% rename from Projects/Governance/Icons/asset.png rename to Projects/Governance/Icons/Asset/asset.png diff --git a/Projects/Governance/Icons/assets.png b/Projects/Governance/Icons/Asset/assets.png similarity index 100% rename from Projects/Governance/Icons/assets.png rename to Projects/Governance/Icons/Asset/assets.png diff --git a/Projects/Governance/Icons/feature-claim-vote.png b/Projects/Governance/Icons/Feature/feature-claim-vote.png similarity index 100% rename from Projects/Governance/Icons/feature-claim-vote.png rename to Projects/Governance/Icons/Feature/feature-claim-vote.png diff --git a/Projects/Governance/Icons/feature-class.png b/Projects/Governance/Icons/Feature/feature-class.png similarity index 100% rename from Projects/Governance/Icons/feature-class.png rename to Projects/Governance/Icons/Feature/feature-class.png diff --git a/Projects/Governance/Icons/feature-contribution-claim.png b/Projects/Governance/Icons/Feature/feature-contribution-claim.png similarity index 100% rename from Projects/Governance/Icons/feature-contribution-claim.png rename to Projects/Governance/Icons/Feature/feature-contribution-claim.png diff --git a/Projects/Governance/Icons/feature-contributions-folder.png b/Projects/Governance/Icons/Feature/feature-contributions-folder.png similarity index 100% rename from Projects/Governance/Icons/feature-contributions-folder.png rename to Projects/Governance/Icons/Feature/feature-contributions-folder.png diff --git a/Projects/Governance/Icons/feature-weight-vote.png b/Projects/Governance/Icons/Feature/feature-weight-vote.png similarity index 100% rename from Projects/Governance/Icons/feature-weight-vote.png rename to Projects/Governance/Icons/Feature/feature-weight-vote.png diff --git a/Projects/Governance/Icons/feature.png b/Projects/Governance/Icons/Feature/feature.png similarity index 100% rename from Projects/Governance/Icons/feature.png rename to Projects/Governance/Icons/Feature/feature.png diff --git a/Projects/Governance/Icons/features.png b/Projects/Governance/Icons/Feature/features.png similarity index 100% rename from Projects/Governance/Icons/features.png rename to Projects/Governance/Icons/Feature/features.png diff --git a/Projects/Governance/Icons/pool-class.png b/Projects/Governance/Icons/Pool/pool-class.png similarity index 100% rename from Projects/Governance/Icons/pool-class.png rename to Projects/Governance/Icons/Pool/pool-class.png diff --git a/Projects/Governance/Icons/pool-weight-vote.png b/Projects/Governance/Icons/Pool/pool-weight-vote.png similarity index 100% rename from Projects/Governance/Icons/pool-weight-vote.png rename to Projects/Governance/Icons/Pool/pool-weight-vote.png diff --git a/Projects/Governance/Icons/pool.png b/Projects/Governance/Icons/Pool/pool.png similarity index 100% rename from Projects/Governance/Icons/pool.png rename to Projects/Governance/Icons/Pool/pool.png diff --git a/Projects/Governance/Icons/pools.png b/Projects/Governance/Icons/Pool/pools.png similarity index 100% rename from Projects/Governance/Icons/pools.png rename to Projects/Governance/Icons/Pool/pools.png diff --git a/Projects/Governance/Icons/position-claim-vote.png b/Projects/Governance/Icons/Position/position-claim-vote.png similarity index 100% rename from Projects/Governance/Icons/position-claim-vote.png rename to Projects/Governance/Icons/Position/position-claim-vote.png diff --git a/Projects/Governance/Icons/position-class.png b/Projects/Governance/Icons/Position/position-class.png similarity index 100% rename from Projects/Governance/Icons/position-class.png rename to Projects/Governance/Icons/Position/position-class.png diff --git a/Projects/Governance/Icons/position-contribution-claim.png b/Projects/Governance/Icons/Position/position-contribution-claim.png similarity index 100% rename from Projects/Governance/Icons/position-contribution-claim.png rename to Projects/Governance/Icons/Position/position-contribution-claim.png diff --git a/Projects/Governance/Icons/position-contributions-folder.png b/Projects/Governance/Icons/Position/position-contributions-folder.png similarity index 100% rename from Projects/Governance/Icons/position-contributions-folder.png rename to Projects/Governance/Icons/Position/position-contributions-folder.png diff --git a/Projects/Governance/Icons/position-weight-vote.png b/Projects/Governance/Icons/Position/position-weight-vote.png similarity index 100% rename from Projects/Governance/Icons/position-weight-vote.png rename to Projects/Governance/Icons/Position/position-weight-vote.png diff --git a/Projects/Governance/Icons/position.png b/Projects/Governance/Icons/Position/position.png similarity index 100% rename from Projects/Governance/Icons/position.png rename to Projects/Governance/Icons/Position/position.png diff --git a/Projects/Governance/Icons/positions.png b/Projects/Governance/Icons/Position/positions.png similarity index 100% rename from Projects/Governance/Icons/positions.png rename to Projects/Governance/Icons/Position/positions.png diff --git a/Projects/Governance/Icons/api-query-parameter.png b/Projects/Governance/Icons/api-query-parameter.png deleted file mode 100644 index d573c891d1743fd44958275553e6efe196ff402a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9747 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 Profile->" }, - "propertyNameAtParent": "referrer" + "propertyNameAtParent": "userReferrer" } \ No newline at end of file diff --git a/Projects/Governance/Schemas/App-Schema/votes-distribution.json b/Projects/Governance/Schemas/App-Schema/votes-distribution.json index 147e9e197..1d0e34703 100644 --- a/Projects/Governance/Schemas/App-Schema/votes-distribution.json +++ b/Projects/Governance/Schemas/App-Schema/votes-distribution.json @@ -17,10 +17,10 @@ { "action": "Add UI Object", "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "referrer", + "propertyToCheckFor": "userReferrer", "actionFunction": "payload.executeAction", - "label": "Add Referrer", - "relatedUiObject": "Referrer" + "label": "Add User Referrer", + "relatedUiObject": "User Referrer" }, { "action": "Delete UI Object", diff --git a/Projects/Governance/Schemas/Docs-Nodes/referrer.json b/Projects/Governance/Schemas/Docs-Nodes/referrer.json index d18ddea06..78d42c699 100644 --- a/Projects/Governance/Schemas/Docs-Nodes/referrer.json +++ b/Projects/Governance/Schemas/Docs-Nodes/referrer.json @@ -1,7 +1,7 @@ { - "type": "Referrer", + "type": "User Referrer", "definition": { - "text": "This node is used by users to reference other users defining in this way who was the user who brought them into the project. The referrer could have acted by word of mouth, or producing some marketing material with it's referral id. These references are later used at the token distribution process to reward referrers and also users declaring who these referrers are.", + "text": "This node is used by users to reference other users defining in this way who was the user who brought them into the project. The userReferrer could have acted by word of mouth, or producing some marketing material with it's referral id. These references are later used at the token distribution process to reward referrers and also users declaring who these referrers are.", "updated": 1622990015308 }, "paragraphs": [ diff --git a/Projects/Superalgos/UI/Spaces/Design-Space/DesignSpace.js b/Projects/Superalgos/UI/Spaces/Design-Space/DesignSpace.js index 23e4647f3..7c34cf1e5 100644 --- a/Projects/Superalgos/UI/Spaces/Design-Space/DesignSpace.js +++ b/Projects/Superalgos/UI/Spaces/Design-Space/DesignSpace.js @@ -38,7 +38,7 @@ function newSuperalgosDesignSpace() { /* Take types-icons relationships defined at the schema */ for (let i = 0; i < PROJECTS_ARRAY.length; i++) { let project = PROJECTS_ARRAY[i] - + addSchemaTypes(SCHEMAS_BY_PROJECT.get(project).array.appSchema) addSchemaTypes(SCHEMAS_BY_PROJECT.get(project).array.docsNodeSchema) addSchemaTypes(SCHEMAS_BY_PROJECT.get(project).array.docsConceptSchema) @@ -78,21 +78,24 @@ function newSuperalgosDesignSpace() { for (let i = 0; i < iconsArray.length; i++) { let project = iconsArray[i][0] - let name = iconsArray[i][1] - loadImage(project, name) + let path = iconsArray[i][1] + loadImage(project, path) } - function loadImage(project, name) { + function loadImage(project, path) { imageLoadedCounter++ const PATH = 'Icons/' + project + '/' let image = new Image() image.onload = onImageLoad - image.fileName = name + image.fileName = path function onImageLoad() { image.canDrawIcon = true } - image.src = PATH + name + image.src = PATH + path + let splittedPath = path.split('\\') + let name = splittedPath[splittedPath.length - 1] + let key = project + '-' + name.substring(0, name.length - 4) thisObject.iconsByProjectAndName.set(key, image)