Merge branch 'Superalgos:develop' into develop
This commit is contained in:
20 files changed
+840
-205
No files matched your search
+342
-10
@@ -1022,20 +1022,28 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE
|
||||
case 'Gov': {
|
||||
switch (requestParameters[2]) { // switch by command
|
||||
case 'getGithubStars': {
|
||||
getProfiles('activity', 'listStargazersForRepo')
|
||||
getGithubUsernames('activity', 'listStargazersForRepo')
|
||||
break
|
||||
}
|
||||
case 'getGithubWatchers': {
|
||||
getProfiles('activity', 'listWatchersForRepo')
|
||||
getGithubUsernames('activity', 'listWatchersForRepo')
|
||||
break
|
||||
}
|
||||
case 'getGithubForks': {
|
||||
getProfiles('repos', 'listForks')
|
||||
getGithubUsernames('repos', 'listForks')
|
||||
break
|
||||
}
|
||||
case 'PRs': {
|
||||
mergeGithubPullRequests()
|
||||
break
|
||||
}
|
||||
case 'Pay': {
|
||||
payToContributors()
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
function getProfiles(endpoint, method) {
|
||||
function getGithubUsernames(endpoint, method) {
|
||||
try {
|
||||
const GITHUB_API_WAITING_TIME = 250
|
||||
const repository = unescape(requestParameters[3])
|
||||
@@ -1099,13 +1107,13 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE
|
||||
|
||||
for (let i = 0; i < listResponse.data.length; i++) {
|
||||
let listItem = listResponse.data[i]
|
||||
let githubUsername
|
||||
switch(endpoint) {
|
||||
case 'activity' : {
|
||||
let githubUsername
|
||||
switch (endpoint) {
|
||||
case 'activity': {
|
||||
githubUsername = listItem.login
|
||||
break
|
||||
}
|
||||
case 'repos' : {
|
||||
case 'repos': {
|
||||
githubUsername = listItem.owner.login
|
||||
break
|
||||
}
|
||||
@@ -1114,8 +1122,8 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE
|
||||
|
||||
githubListArray.push(githubUsername)
|
||||
}
|
||||
console.log('[INFO] httpInterface -> Gov -> getRepoInfo -> doGithub -> getList -> ' + method + ' Page = ' + page)
|
||||
console.log('[INFO] httpInterface -> Gov -> getRepoInfo -> doGithub -> getList -> ' + method + ' Received = ' + listResponse.data.length)
|
||||
console.log('[INFO] httpInterface -> Gov -> getRepoInfo -> doGithub -> getList -> ' + method + ' Page = ' + page)
|
||||
console.log('[INFO] httpInterface -> Gov -> getRepoInfo -> doGithub -> getList -> ' + method + ' Received = ' + listResponse.data.length)
|
||||
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
@@ -1152,6 +1160,7 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE
|
||||
respondWithContent(JSON.stringify(error), httpResponse)
|
||||
}
|
||||
}
|
||||
|
||||
function respondWithDocsObject(docs, error) {
|
||||
|
||||
if (error.message !== undefined) {
|
||||
@@ -1186,6 +1195,295 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE
|
||||
respondWithContent(JSON.stringify(customResponse), httpResponse)
|
||||
|
||||
}
|
||||
|
||||
function mergeGithubPullRequests() {
|
||||
try {
|
||||
let commitMessage = unescape(requestParameters[3])
|
||||
|
||||
/* Unsavping # */
|
||||
for (let i = 0; i < 10; i++) {
|
||||
commitMessage = commitMessage.replace('_SLASH_', '/')
|
||||
commitMessage = commitMessage.replace('_HASHTAG_', '#')
|
||||
}
|
||||
|
||||
const GITHUB_API_WAITING_TIME = 250
|
||||
const repository = 'Superalgos'
|
||||
const username = unescape(requestParameters[4])
|
||||
const token = unescape(requestParameters[5])
|
||||
|
||||
let error
|
||||
let githubPrListArray = []
|
||||
|
||||
processOpenPullRequests()
|
||||
|
||||
async function processOpenPullRequests() {
|
||||
await doGithub()
|
||||
if (error !== undefined) {
|
||||
|
||||
let docs = {
|
||||
project: 'Governance',
|
||||
category: 'Topic',
|
||||
type: 'Gov Error - Merge Pull Requests',
|
||||
anchor: undefined,
|
||||
placeholder: {}
|
||||
}
|
||||
|
||||
respondWithDocsObject(docs, error)
|
||||
return
|
||||
}
|
||||
|
||||
respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), httpResponse)
|
||||
}
|
||||
|
||||
async function doGithub() {
|
||||
try {
|
||||
const repo = repository
|
||||
const owner = 'Superalgos'
|
||||
const { Octokit } = require("@octokit/rest")
|
||||
const octokit = new Octokit({
|
||||
auth: token,
|
||||
userAgent: 'Superalgos Beta 11'
|
||||
})
|
||||
await getPrList()
|
||||
await mergePrs()
|
||||
|
||||
async function getPrList() {
|
||||
|
||||
const per_page = 100 // Max
|
||||
let page = 0
|
||||
let lastPage = false
|
||||
|
||||
while (lastPage === false) {
|
||||
try {
|
||||
page++
|
||||
|
||||
await sleep(GITHUB_API_WAITING_TIME)
|
||||
let listResponse = await octokit.rest.pulls.list({
|
||||
owner: owner,
|
||||
repo: repo,
|
||||
state: 'open',
|
||||
head: 'develop',
|
||||
base: 'develop',
|
||||
sort: undefined,
|
||||
direction: undefined,
|
||||
per_page: per_page,
|
||||
page: page
|
||||
});
|
||||
|
||||
if (listResponse.data.length < 100) {
|
||||
lastPage = true
|
||||
}
|
||||
console.log('[INFO] httpInterface -> Gov -> mergeGithubPullRequests -> doGithub -> getPrList -> Receiving Page = ' + page)
|
||||
for (let i = 0; i < listResponse.data.length; i++) {
|
||||
let pullRequest = listResponse.data[i]
|
||||
console.log('[INFO] httpInterface -> Gov -> mergeGithubPullRequests -> doGithub -> getPrList -> Pull Request "' + pullRequest.title + '" found and added to the list to validate. ')
|
||||
githubPrListArray.push(pullRequest)
|
||||
}
|
||||
console.log('[INFO] httpInterface -> Gov -> mergeGithubPullRequests -> doGithub -> getPrList -> Received = ' + listResponse.data.length)
|
||||
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
|
||||
if (err.stack.indexOf('last page') >= 0) {
|
||||
return
|
||||
} else {
|
||||
console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> doGithub -> getPrList ->Method call produced an error.')
|
||||
console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> doGithub -> getPrList ->err.stack = ' + err.stack)
|
||||
console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> doGithub -> getPrList ->repository = ' + repository)
|
||||
console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> doGithub -> getPrList ->username = ' + username)
|
||||
console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> doGithub -> getPrList ->token starts with = ' + token.substring(0, 10) + '...')
|
||||
console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> doGithub -> getPrList ->token ends with = ' + '...' + token.substring(token.length - 10))
|
||||
error = err
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async function mergePrs() {
|
||||
/*
|
||||
In order to automatically merge a PRs we will run several validations first.
|
||||
We want to automate specifically the merging of Profile File changes at the
|
||||
Governance System done by the same Github user name that matches the profile
|
||||
changed. We will also not do the merge if there are more than one file at the
|
||||
PR.
|
||||
|
||||
We will go through the list of open PRs and run the validations at each one of them.
|
||||
*/
|
||||
console.log('[INFO] httpInterface -> Gov -> mergeGithubPullRequests -> Ready to Validate ' + githubPrListArray.length + ' pull requests. ')
|
||||
|
||||
for (let i = 0; i < githubPrListArray.length; i++) {
|
||||
let pullRequest = githubPrListArray[i]
|
||||
/*
|
||||
Lets get the files changed at this Pull Request.
|
||||
*/
|
||||
await sleep(GITHUB_API_WAITING_TIME)
|
||||
let listResponse = await octokit.rest.pulls.listFiles({
|
||||
owner: owner,
|
||||
repo: repo,
|
||||
pull_number: pullRequest.number
|
||||
});
|
||||
/*
|
||||
Validation #1: If the PR has more than one file, then we will not automatically
|
||||
merge it.
|
||||
*/
|
||||
if (listResponse.data.length !== 1) {
|
||||
console.log('[INFO] httpInterface -> Gov -> mergeGithubPullRequests -> Validation #1 Failed -> Pull Request "' + pullRequest.title + '" not merged because it contains more than 1 file. -> fileCount = ' + listResponse.data.length)
|
||||
/*
|
||||
We will close PRs that contains any User Profile file together with other files in the same Pull Request.
|
||||
This will avoid manual merges to include User Profile files.
|
||||
*/
|
||||
for (j = 0; j < listResponse.data.length; j++) {
|
||||
let pullRequestFile = listResponse.data[j]
|
||||
let fileContentUrl = pullRequestFile.raw_url
|
||||
if (fileContentUrl.indexOf('Governance/Plugins/User-Profiles') >= 0) {
|
||||
await sleep(GITHUB_API_WAITING_TIME)
|
||||
await octokit.rest.issues.createComment({
|
||||
owner: owner,
|
||||
repo: repo,
|
||||
issue_number: pullRequest.number,
|
||||
body: 'This Pull Request could not be automatically merged and was closed by the Superalgos Governance System because it was detected that a User Profile file... \n\n' + fileContentUrl + '\n\n...was submitted together with ' + (listResponse.data.length - 1) + ' other file/s. User Profiles files as per the Governance System rules, must be the only file present at a Pull Request in order to pass all the validations and be automatically merged.'
|
||||
});
|
||||
|
||||
await sleep(GITHUB_API_WAITING_TIME)
|
||||
await octokit.rest.pulls.update({
|
||||
owner: owner,
|
||||
repo: repo,
|
||||
pull_number: pullRequest.number,
|
||||
state: 'closed'
|
||||
});
|
||||
break
|
||||
}
|
||||
}
|
||||
continue
|
||||
}
|
||||
let pullRequestFile = listResponse.data[0]
|
||||
/*
|
||||
Validation #2: File Name must be the same to the Github Username of the PR owner.
|
||||
*/
|
||||
let fileContentUrl = pullRequestFile.raw_url
|
||||
|
||||
if (fileContentUrl.indexOf('Governance/Plugins/User-Profiles') < 0) {
|
||||
/*
|
||||
If it is not a user profile then there is no need to auto merge.
|
||||
*/
|
||||
console.log('[INFO] httpInterface -> Gov -> mergeGithubPullRequests -> Validation #2 Failed -> Pull Request "' + pullRequest.title + '" not merged because the file modified at the Pull Request is not a User Profile file. -> fileContentUrl = ' + fileContentUrl)
|
||||
continue
|
||||
}
|
||||
|
||||
let splittedURL = fileContentUrl.split('/')
|
||||
let fileName = splittedURL[splittedURL.length - 1]
|
||||
let splittedFileName = fileName.split('.')
|
||||
fileName = splittedFileName[0]
|
||||
let githubUsername = pullRequest.user.login
|
||||
|
||||
if (githubUsername !== fileName) {
|
||||
console.log('[INFO] httpInterface -> Gov -> mergeGithubPullRequests -> Validation #2 Failed -> Pull Request "' + pullRequest.title + '" not merged because the Github Username is not equal to the File Name. -> Github Username = ' + githubUsername + '-> fileName = ' + fileName)
|
||||
|
||||
await sleep(GITHUB_API_WAITING_TIME)
|
||||
await octokit.rest.issues.createComment({
|
||||
owner: owner,
|
||||
repo: repo,
|
||||
issue_number: pullRequest.number,
|
||||
body: 'This Pull Request could not be automatically merged and was closed by the Superalgos Governance System because it was detected that the Github User "' + githubUsername + '" who submitted it, is not equal to the name of the User Profile Plugin File.\n\n File Name = "' + fileName + '"'
|
||||
});
|
||||
|
||||
await sleep(GITHUB_API_WAITING_TIME)
|
||||
await octokit.rest.pulls.update({
|
||||
owner: owner,
|
||||
repo: repo,
|
||||
pull_number: pullRequest.number,
|
||||
state: 'closed'
|
||||
});
|
||||
continue
|
||||
}
|
||||
await sleep(GITHUB_API_WAITING_TIME)
|
||||
let fileContent = await fetchAPIDataFile(fileContentUrl)
|
||||
|
||||
let userProfile = JSON.parse(fileContent)
|
||||
/*
|
||||
Validation #3: The file changed at the PR is a User Profile.
|
||||
*/
|
||||
if (userProfile.type !== 'User Profile') {
|
||||
console.log('[INFO] httpInterface -> Gov -> mergeGithubPullRequests -> Validation #3 Failed -> Pull Request "' + pullRequest.title + '" not merged because the file modified is not a User Profile. -> Type = ' + userProfile.type)
|
||||
continue
|
||||
}
|
||||
/*
|
||||
Validation #4: The message signed at the config is not the Github Username.
|
||||
*/
|
||||
let config = JSON.parse(userProfile.config)
|
||||
let messageSigned = config.signature.message
|
||||
if (messageSigned !== githubUsername) {
|
||||
console.log('[INFO] httpInterface -> Gov -> mergeGithubPullRequests -> Validation #4 Failed -> Pull Request "' + pullRequest.title + '" not merged because the Github Username is not equal to the Message Signed at the User Profile. -> Github Username = ' + githubUsername + '-> messageSigned = ' + messageSigned)
|
||||
|
||||
await sleep(GITHUB_API_WAITING_TIME)
|
||||
await octokit.rest.issues.createComment({
|
||||
owner: owner,
|
||||
repo: repo,
|
||||
issue_number: pullRequest.number,
|
||||
body: 'This Pull Request could not be automatically merged and was closed by the Superalgos Governance System because it was detected that the Github User "' + githubUsername + '" who submitted it, is not equal to the Message Signed at the User Profile.\n\n Message Signed = "' + messageSigned + '"'
|
||||
});
|
||||
|
||||
await sleep(GITHUB_API_WAITING_TIME)
|
||||
await octokit.rest.pulls.update({
|
||||
owner: owner,
|
||||
repo: repo,
|
||||
pull_number: pullRequest.number,
|
||||
state: 'closed'
|
||||
});
|
||||
continue
|
||||
}
|
||||
/*
|
||||
All validations passed, we will proceed an merge this Pull Request.
|
||||
*/
|
||||
await sleep(GITHUB_API_WAITING_TIME)
|
||||
let mergeResponse = await octokit.rest.pulls.merge({
|
||||
owner: owner,
|
||||
repo: repo,
|
||||
pull_number: pullRequest.number,
|
||||
commit_title: 'Changes in User Profile done by Profile Owner ' + githubUsername + ' automatically merged by Superalgos.'
|
||||
});
|
||||
|
||||
if (mergeResponse.data.merged !== true) {
|
||||
console.log('[WARN] httpInterface -> Gov -> mergeGithubPullRequests -> Merge Failed -> Pull Request "' + pullRequest.title + '" not merged because Github could not merge it. -> mergeResponse.message = ' + mergeResponse.data.message)
|
||||
continue
|
||||
} else {
|
||||
console.log('[INFO] httpInterface -> Gov -> mergeGithubPullRequests -> Merge Succed -> Pull Request "' + pullRequest.title + '" successfully merged. -> mergeResponse.message = ' + mergeResponse.data.message)
|
||||
await sleep(GITHUB_API_WAITING_TIME)
|
||||
await octokit.rest.issues.createComment({
|
||||
owner: owner,
|
||||
repo: repo,
|
||||
issue_number: pullRequest.number,
|
||||
body: 'This Pull Request was automatically merged by the Superalgos Governance System because it was detected that the Github User " ' + githubUsername + '" who submitted it, modified its own User Profile Plugin File and nothning else but that file. All validations were successfull.'
|
||||
});
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> doGithub -> err.stack = ' + err.stack)
|
||||
}
|
||||
}
|
||||
|
||||
} catch (err) {
|
||||
console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> Method call produced an error.')
|
||||
console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> err.stack = ' + err.stack)
|
||||
console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> repository = ' + repository)
|
||||
console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> username = ' + username)
|
||||
console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> token starts with = ' + token.substring(0, 10) + '...')
|
||||
console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> token ends with = ' + '...' + token.substring(token.length - 10))
|
||||
|
||||
let error = {
|
||||
result: 'Fail Because',
|
||||
message: err.message,
|
||||
stack: err.stack
|
||||
}
|
||||
respondWithContent(JSON.stringify(error), httpResponse)
|
||||
}
|
||||
}
|
||||
|
||||
function payToContributors() {
|
||||
|
||||
}
|
||||
}
|
||||
break
|
||||
|
||||
@@ -2139,4 +2437,38 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE
|
||||
setTimeout(resolve, ms)
|
||||
})
|
||||
}
|
||||
|
||||
async function fetchAPIDataFile(url) {
|
||||
let promise = new Promise((resolve, reject) => {
|
||||
|
||||
const fetch = require('node-fetch')
|
||||
/*
|
||||
This is how we call the API.
|
||||
*/
|
||||
fetch(url)
|
||||
.then((response) => {
|
||||
|
||||
if (response.status !== 200) {
|
||||
console.log('[ERROR] fetchAPIData -> then -> url =' + url)
|
||||
reject()
|
||||
return
|
||||
}
|
||||
getResponseBody()
|
||||
|
||||
function getResponseBody() {
|
||||
response.text().then(body => {
|
||||
resolve(body)
|
||||
})
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.log('[ERROR] fetchAPIData -> url =' + url)
|
||||
reject()
|
||||
})
|
||||
|
||||
}
|
||||
)
|
||||
|
||||
return promise
|
||||
}
|
||||
}
|
||||
+2
-1
@@ -15,6 +15,7 @@
|
||||
"rimraf": "^3.0.2",
|
||||
"simple-git": "^2.42.0",
|
||||
"web3": "^1.5.0",
|
||||
"ws": "^7.4.6"
|
||||
"ws": "^7.4.6",
|
||||
"node-fetch": "2.6.1"
|
||||
}
|
||||
}
|
||||
@@ -37,6 +37,12 @@
|
||||
"workDoneLabel": "Done",
|
||||
"relatedUiObject": "Workspace",
|
||||
"actionFunction": "payload.executeAction"
|
||||
},
|
||||
{
|
||||
"action": "Check For Missing References",
|
||||
"label": "Check For Missing References",
|
||||
"relatedUiObject": "Workspace",
|
||||
"actionFunction": "payload.executeAction"
|
||||
}
|
||||
],
|
||||
"initialValues": {
|
||||
|
||||
+6
-6
@@ -14,8 +14,8 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Maybe you realized that you are doing repetitive actions at the Design Space and you can benefit from automating them. If your actions are constrained to manipulating the nodes at the workspace, by either creating new nodes, deleting existing ones, changing nodes configs, establishing references or some other similar stuff, then you might be able to create an Action function that can automate all this. This will allow you to stop doing those repetitive tasks youself and the ones that will come after you if you contribute these changes to the project.",
|
||||
"updated": 1614940379811
|
||||
"text": "Maybe you realized that you are doing repetitive actions at the Design Space and you can benefit from automating them. If your actions are constrained to manipulating the nodes at the workspace, by either creating new nodes, deleting existing ones, changing nodes configs, establishing references or something similar, then you might be able to create an Action function that can automate all this. This will allow you to complete the action with the click of a button and stop doing those repetitive tasks youself. Not to mention help make Superalgos easier to use for everyone once you contribute your action!",
|
||||
"updated": 1628255167092
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
@@ -23,8 +23,8 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "New Actions are implemented as functions inside a Function Library. So the basic workflow to implement a new Action is the following:",
|
||||
"updated": 1614940407806
|
||||
"text": "New Actions are implemented as functions inside a Function Library. So the basic workflow to implement a new Action is as follows:",
|
||||
"updated": 1628255279553
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
@@ -43,8 +43,8 @@
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Connect Menu Item to your Code: Finally you will connect the Menu Item to that function you wrote.",
|
||||
"updated": 1614940545908
|
||||
"text": "Connect Menu Item to your Code: Finally you will connect the Menu Item to the function you wrote.",
|
||||
"updated": 1628255317721
|
||||
}
|
||||
]
|
||||
}
|
||||
+13
-7
@@ -14,17 +14,18 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Check out the page of the App Schema concept. After that, locate the App Schema file you will need to edit at the Projects folder. There is one App Schema file for Project, pick the right one and edit it with VS Code."
|
||||
"text": "Check out the page of the App Schema concept. After that, locate the App Schema file you will need to edit at the Projects folder. There is one App Schema file for each Project, pick the right one and edit it with VS Code.",
|
||||
"updated": 1628255380671
|
||||
},
|
||||
{
|
||||
"style": "Warning",
|
||||
"text": "Be carefull not to damage anything in the App Schema file while editing it. You will get into trouble if you do so. It can not only produce the UI not to load, but it can also damage the workspace you are working at.",
|
||||
"updated": 1614940590024
|
||||
"text": "Be carefull not to damage anything in the App Schema file while editing it. You will get into trouble if you do. It can not only cause the UI to not load, but also damage the workspace you are working at.",
|
||||
"updated": 1628255452468
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "If you are not sure which project a certain node belongs to, there is a trick to find it out: close the Docs tab, and make focus on the node you want to add an Action to. While on focus, use Ctrl + Shift + Alt + F12 to log in the browser console the Node object. Inspect it to see the project property. Most likely it will be a Superalgos project's node.",
|
||||
"updated": 1614940654950
|
||||
"text": "If you are not sure which project a certain node belongs to, there is a trick to find it: close the Docs tab, and make focus on the node you want to add an Action to. While on focus, use Ctrl + Shift + Alt + F12 to log in the browser console the Node object. Inspect it to see the project property. Most likely it will be a Foundations project's node.",
|
||||
"updated": 1628255532030
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
@@ -37,8 +38,8 @@
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"action\": \"Add UI Object\",\n \"actionFunction\": \"payload.executeAction\",\n \"label\": \"Add Image\",\n \"relatedUiObject\": \"Image\"\n }",
|
||||
"updated": 1614789262250
|
||||
"text": "{\n \"action\": \"Add Missing Workspace Projects\",\n \"label\": \"Add Missing Projects\",\n \"relatedUiObject\": \"Workspace\",\n \"actionFunction\": \"payload.executeAction\"\n}",
|
||||
"updated": 1628255951872
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
@@ -90,6 +91,11 @@
|
||||
{
|
||||
"style": "List",
|
||||
"text": "propertyToCheckFor: read the previous property."
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "workDoneLabel: text to display when action has completed",
|
||||
"updated": 1628256114205
|
||||
}
|
||||
]
|
||||
}
|
||||
+6
-6
@@ -9,18 +9,18 @@
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The procedure to locate a suitable Function Library is very easy. Open the Projects folder, getting into the Project the Node where the action is going to be triggered at is defined. Inside that project Folder get into the UI folder and then into Function-Libraries folder.",
|
||||
"updated": 1614940833232
|
||||
"text": "The procedure to locate a suitable Function Library is very easy. Open the Projects folder, then open the Project associated with the Node you are attaching your action to. Inside that project Folder open the UI folder and then you will see the Function-Libraries folder.",
|
||||
"updated": 1628256668116
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "Each file in there is a Function Library except for the one called ActionSwitch.js, which is the place where you connect the Action Function name you defined at the App Schema with the function that will host the code for the new Action.",
|
||||
"updated": 1614928708817
|
||||
"text": "Each file within the Function Library folder is a set of functions. The only exception to this is ActionSwitch.js. This file is the place where you will connect the Action Function name you defined at the App Schema with the function that will host the code for the new Action.",
|
||||
"updated": 1628256808055
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Inspect each of these files and see at their header the functions they already implement. After a quick scan over all of them you can decide which one is where your action belongs to. If you believe that your Action should be placed at a new Function Library, then you can try to add a new one and set it up at the Project Schema file, but that is out of the scope of this guide.",
|
||||
"updated": 1614928780531
|
||||
"text": "Inspect each of these files and see at their header the functions they already implement. After a quick scan over all of them you can decide which one fits best with your new action. If you believe that your Action should be placed at a new Function Library, then you can try to add a new one and set it up at the Project Schema file, but that is out of the scope of this guide.",
|
||||
"updated": 1628256858024
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
|
||||
+6
-5
@@ -3,18 +3,19 @@
|
||||
"pageNumber": 4,
|
||||
"type": "Automating Actions - Adding your Function",
|
||||
"definition": {
|
||||
"text": "Take a look at how other functions are implemented in the Function Library and try to follow that way.",
|
||||
"updated": 1614941850917
|
||||
"text": "Take a look at how other functions are implemented in the Function Library and try to follow the same format.",
|
||||
"updated": 1628257476029
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The basic procedure is quite straight forward. First add the function name to the thisObject and the write you function at the most appropiate place at the Function Library. ",
|
||||
"updated": 1614941084806
|
||||
"text": "The basic procedure is quite straight forward. First add the function name to the thisObject and then write your function at the most appropiate place at the Function Library.",
|
||||
"updated": 1628257461177
|
||||
},
|
||||
{
|
||||
"style": "Important",
|
||||
"text": "Please document your function the best you can, even if you see the other functions implemented at the same library poorly documented. See if you can make your function the best documented in the whole library."
|
||||
"text": "Please document your function the best you can, even if you see other functions implemented at the same library poorly documented. See if you can make your function the best documented in the whole library.",
|
||||
"updated": 1628257493687
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
|
||||
+4
-3
@@ -9,8 +9,8 @@
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "It is a very good idea to invest some time at the Utilities folder, scaning the files in there to see what you already have available to use at your actions. You will see that other actions in Function Libraries heavily rely on utilities functions defined at one of the files at the Utilities folder.",
|
||||
"updated": 1614930012933
|
||||
"text": "It is a very good idea to invest some time at the Utilities folder, scaning the files in there to see what you already have available to use at your actions. You will see that other actions in Function Libraries heavily rely on utilities functions defined at one of the files within the Utilities folder.",
|
||||
"updated": 1628257595439
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
@@ -19,7 +19,8 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "At runtime, all utility objects will be already instantiated by the time your Action function code runs. You just need to get to the object that host the utility funtion you want to execute via the UI Global Object that is available to you. For exmaple:"
|
||||
"text": "At runtime, all utility objects will be already instantiated by the time your Action function code runs. You just need to get to the object that hosts the utility function you want to execute via the UI Global Object that is available to you. For example:",
|
||||
"updated": 1628257649169
|
||||
},
|
||||
{
|
||||
"style": "Javascript",
|
||||
|
||||
+14
-13
@@ -3,14 +3,14 @@
|
||||
"pageNumber": 6,
|
||||
"type": "Automating Actions - Using Function Libraries",
|
||||
"definition": {
|
||||
"text": "You might also as well other functions located at Function Libraries from within your Action Function. In order to do this, you just need to locate the instance of the Function Library Object and call any of it's functions.",
|
||||
"updated": 1614942828678
|
||||
"text": "You can also utilize other functions located within the Function Libraries to help build your Action Function. In order to do this, you just need to locate the instance of the Function Library Object and call any of it's functions.",
|
||||
"updated": 1628257841959
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "It is a very good idea to invest some time at the Function-Libraries folder, scaning the files in there to see what you already have available to use at your actions. You will see that other actions in Function Libraries heavily rely on functions defined at one of the files at the Function-Libraries folder.",
|
||||
"updated": 1614942900881
|
||||
"text": "It is a very good idea to invest some time at the Function-Libraries folder, scaning the files in there to see what you already have available to use at your actions. You will see that other actions in Function Libraries heavily rely on functions defined at one of the files within the Function-Libraries folder.",
|
||||
"updated": 1628257873103
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
@@ -19,8 +19,8 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "At runtime, all Funtion Library objects will be already instantiated by the time your Action function code runs. You just need to get to the object that host the Function Library funtion you want to execute via the UI Global Object that is available to you. For exmaple:",
|
||||
"updated": 1614942976608
|
||||
"text": "At runtime, all Function Library objects will be already instantiated by the time your Action function code runs. You just need to get to the object that host the Function Library funtion you want to execute via the UI Global Object that is available to you. For exmaple:",
|
||||
"updated": 1628257884243
|
||||
},
|
||||
{
|
||||
"style": "Javascript",
|
||||
@@ -48,8 +48,8 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "At your own Action Function you might likely need to execute these functions, belonging to popular actions done at Action Functions:",
|
||||
"updated": 1614943932540
|
||||
"text": "At your own Action Function you will likely need to execute these or similar functions, belonging to popular actions defined within other Action Functions:",
|
||||
"updated": 1628257991399
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
@@ -57,7 +57,8 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The following is an example on how to add a new children to an existing Node:"
|
||||
"text": "The following is an example on how to add a new child to an existing Node:",
|
||||
"updated": 1628258008587
|
||||
},
|
||||
{
|
||||
"style": "Javascript",
|
||||
@@ -87,13 +88,13 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Example of how to set the Reference Parent of a Node (in this case no Function Library is needed):",
|
||||
"updated": 1614944033214
|
||||
"text": "Example of how to set the Reference Parent of a Node:",
|
||||
"updated": 1628258163153
|
||||
},
|
||||
{
|
||||
"style": "Javascript",
|
||||
"text": "node.payload.referenceParent = baseAsset\n",
|
||||
"updated": 1614943688069
|
||||
"text": "UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(timeMachine, session)",
|
||||
"updated": 1628258141256
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
|
||||
+10
-6
@@ -3,8 +3,8 @@
|
||||
"pageNumber": 8,
|
||||
"type": "Automating Actions - Adding an Action Switch Case",
|
||||
"definition": {
|
||||
"text": "This steps create the mapping betwheen the actionFunction name you defined at the Menu Item of the node that can trigger your Action, and the function you coded inside a Function Library that will execute the code for the new Action. ",
|
||||
"updated": 1614941772231
|
||||
"text": "This step creates the mapping between the actionFunction name you defined at the Menu Item of the node to can trigger your Action, and the function you coded inside a Function Library that will execute the code for the new Action.",
|
||||
"updated": 1628258863939
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
@@ -18,8 +18,8 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Find within the list of cases some of the cases pointint to the same Function Library your new Action is hosted at, so that you can add a new case together with the rest.",
|
||||
"updated": 1614937904095
|
||||
"text": "Find within the list of cases some of the cases pointing to the same Function Library your new Action is hosted at, so that you can add a new case together with the rest.",
|
||||
"updated": 1628258889849
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
@@ -37,8 +37,12 @@
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "As you can see will you most likely be sending the node and rootNodes parameters into your Action function. You might want to also send other parameters from data you might find into the action object available to you at that point.",
|
||||
"updated": 1614938157839
|
||||
"text": "As you can see you will most likely be sending the node and rootNodes parameters into your Action function. However, you might want to also send other parameters with data you find available within the system at this point into the action object. ",
|
||||
"updated": 1628259076042
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "Setting a breakpoint here within Chrome's devTools is a convenient way to check the system for available data. "
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
|
||||
+2
-1
@@ -14,7 +14,8 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "In order to debug your action, you will need to open the developer tool, and at the Sources tab, locate the Function Library file where you added your action, place a breakpoint at the begining of your function and go and click at the node Menu Item you added."
|
||||
"text": "In order to debug your action, you will need to open the developer tool, and at the Sources tab, locate the Function Library file where you added your action, place a breakpoint at the beginning of your function and go and click at the node Menu Item you added.",
|
||||
"updated": 1628261072790
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
|
||||
@@ -735,6 +735,11 @@ function newFoundationsActionSwitch() {
|
||||
UI.projects.foundations.functionLibraries.workspaceFunctions.addMissingWorkspaceProjects(action.node, action.rootNodes)
|
||||
}
|
||||
break
|
||||
case 'Check For Missing References':
|
||||
{
|
||||
UI.projects.foundations.functionLibraries.workspaceFunctions.checkForMissingReferences(action.rootNodes)
|
||||
}
|
||||
break
|
||||
case 'Switch To Forward Testing':
|
||||
{
|
||||
action.node.type = "Forward Testing Session"
|
||||
|
||||
@@ -383,9 +383,6 @@ function newFoundationsFunctionLibraryUiObjectsFromNodes() {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (node.payload.referenceParent === undefined) {
|
||||
console.log('[WARN]' + node.type + ' ' + node.name + ' reference parent lost during re-binding phase.')
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
function newFoundationsFunctionLibraryWorkspaceFunctions() {
|
||||
let thisObject = {
|
||||
addMissingWorkspaceProjects: addMissingWorkspaceProjects
|
||||
addMissingWorkspaceProjects: addMissingWorkspaceProjects,
|
||||
checkForMissingReferences: checkForMissingReferences
|
||||
}
|
||||
|
||||
return thisObject
|
||||
@@ -26,4 +27,28 @@ function newFoundationsFunctionLibraryWorkspaceFunctions() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// This function scales the current workspace and highlights any nodes that have unresolved references
|
||||
function checkForMissingReferences(rootNodes) {
|
||||
let nodes
|
||||
for (let i = 0; i < rootNodes.length; i++) {
|
||||
if (rootNodes[i] !== undefined) {
|
||||
nodes = UI.projects.foundations.utilities.hierarchy.getHiriarchyMap(rootNodes[i])
|
||||
for (let [key, value] of nodes) {
|
||||
// Check nodes that have a saved reference parent
|
||||
if (value.savedPayload.referenceParent !== undefined) {
|
||||
// Highlight nodes that do not have an active reference connected to their referance parent
|
||||
if (value.payload.referenceParent === undefined) {
|
||||
console.log("[WARN] Reference Parent not found in the current workspace.\n Node:", value.name, " Type:", value.type, " ID:", key, " Node Object:", value)
|
||||
UI.projects.foundations.spaces.floatingSpace.inMapMode = true
|
||||
value.payload.uiObject.setWarningMessage('Reference Parent not found in the current workspace.', 10)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -597,35 +597,51 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Luis-Fernando-Molina",
|
||||
"User Profile"
|
||||
"User Profile",
|
||||
"Governance",
|
||||
"148911b3-b2f3-44fb-8cb4-017991789132"
|
||||
],
|
||||
[
|
||||
"New Token Power Switch",
|
||||
"Token Power Switch"
|
||||
"Token Power Switch",
|
||||
"Governance",
|
||||
"f8182a9c-f830-4ec1-a238-ac3a5efd69e6"
|
||||
],
|
||||
[
|
||||
"New Votes And Claims Programs",
|
||||
"Votes And Claims Programs"
|
||||
"Votes And Claims Programs",
|
||||
"Governance",
|
||||
"bb390957-b8a2-4a8a-9fbf-963ea20f6eaf"
|
||||
],
|
||||
[
|
||||
"New Claims Program",
|
||||
"Claims Program"
|
||||
"Claims Program",
|
||||
"Governance",
|
||||
"796dd30f-c90d-4b8d-a63d-89867347407b"
|
||||
],
|
||||
[
|
||||
"Project Features Feature Class",
|
||||
"Feature Claims Folder"
|
||||
"Feature Claims Folder",
|
||||
"Governance",
|
||||
"f8a482c4-dee0-475a-831b-7514fd255ba6"
|
||||
],
|
||||
[
|
||||
"Superalgos Platform Feature Class",
|
||||
"Feature Claims Folder"
|
||||
"Feature Claims Folder",
|
||||
"Governance",
|
||||
"ba6b4ff8-396b-4a9d-95ba-a52d096ec9eb"
|
||||
],
|
||||
[
|
||||
"New Features Feature Class",
|
||||
"Feature Claims Folder"
|
||||
"Feature Claims Folder",
|
||||
"Governance",
|
||||
"c4815ebe-d3a8-47fd-b204-936242bd8f40"
|
||||
],
|
||||
[
|
||||
"Governance System New Features",
|
||||
"Feature Contribution Claim"
|
||||
"Feature Contribution Claim",
|
||||
"Governance",
|
||||
"92f0f22e-f631-482d-88b1-c16596bf951d"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -664,35 +680,51 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Luis-Fernando-Molina",
|
||||
"User Profile"
|
||||
"User Profile",
|
||||
"Governance",
|
||||
"148911b3-b2f3-44fb-8cb4-017991789132"
|
||||
],
|
||||
[
|
||||
"New Token Power Switch",
|
||||
"Token Power Switch"
|
||||
"Token Power Switch",
|
||||
"Governance",
|
||||
"f8182a9c-f830-4ec1-a238-ac3a5efd69e6"
|
||||
],
|
||||
[
|
||||
"New Votes And Claims Programs",
|
||||
"Votes And Claims Programs"
|
||||
"Votes And Claims Programs",
|
||||
"Governance",
|
||||
"bb390957-b8a2-4a8a-9fbf-963ea20f6eaf"
|
||||
],
|
||||
[
|
||||
"New Claims Program",
|
||||
"Claims Program"
|
||||
"Claims Program",
|
||||
"Governance",
|
||||
"796dd30f-c90d-4b8d-a63d-89867347407b"
|
||||
],
|
||||
[
|
||||
"Project Features Feature Class",
|
||||
"Feature Claims Folder"
|
||||
"Feature Claims Folder",
|
||||
"Governance",
|
||||
"f8a482c4-dee0-475a-831b-7514fd255ba6"
|
||||
],
|
||||
[
|
||||
"Superalgos Platform Feature Class",
|
||||
"Feature Claims Folder"
|
||||
"Feature Claims Folder",
|
||||
"Governance",
|
||||
"ba6b4ff8-396b-4a9d-95ba-a52d096ec9eb"
|
||||
],
|
||||
[
|
||||
"New Features Feature Class",
|
||||
"Feature Claims Folder"
|
||||
"Feature Claims Folder",
|
||||
"Governance",
|
||||
"c4815ebe-d3a8-47fd-b204-936242bd8f40"
|
||||
],
|
||||
[
|
||||
"API Maps New Features",
|
||||
"Feature Contribution Claim"
|
||||
"Feature Contribution Claim",
|
||||
"Governance",
|
||||
"81c477e0-c9bf-4b25-a875-d265011a6136"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -5264,23 +5296,33 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos Platform",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"f83a751e-ff0c-49bd-a306-8b5ab6a8cc83"
|
||||
],
|
||||
[
|
||||
"Existing Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"b46ffee0-7c89-4155-8450-678d7cea24f8"
|
||||
],
|
||||
[
|
||||
"Charting System",
|
||||
"Feature"
|
||||
"Feature",
|
||||
"Governance",
|
||||
"992fe8ce-bd27-4857-900c-e0330b7ccc51"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -5319,23 +5361,33 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos Platform",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"f83a751e-ff0c-49bd-a306-8b5ab6a8cc83"
|
||||
],
|
||||
[
|
||||
"Existing Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"b46ffee0-7c89-4155-8450-678d7cea24f8"
|
||||
],
|
||||
[
|
||||
"Data Mining",
|
||||
"Feature"
|
||||
"Feature",
|
||||
"Governance",
|
||||
"afa546fa-799b-4c50-baa3-65c8409aaab9"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -5374,23 +5426,33 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos Platform",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"f83a751e-ff0c-49bd-a306-8b5ab6a8cc83"
|
||||
],
|
||||
[
|
||||
"Existing Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"b46ffee0-7c89-4155-8450-678d7cea24f8"
|
||||
],
|
||||
[
|
||||
"Visual Designer",
|
||||
"Feature"
|
||||
"Feature",
|
||||
"Governance",
|
||||
"b88a3b22-7060-45c8-90bd-57ec53e95c4f"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -5429,23 +5491,33 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos Platform",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"f83a751e-ff0c-49bd-a306-8b5ab6a8cc83"
|
||||
],
|
||||
[
|
||||
"Existing Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"b46ffee0-7c89-4155-8450-678d7cea24f8"
|
||||
],
|
||||
[
|
||||
"Visual Debugger",
|
||||
"Feature"
|
||||
"Feature",
|
||||
"Governance",
|
||||
"f713d118-f53a-4fc6-9b39-9e8717c4bd6f"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -5481,19 +5553,27 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos Platform",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"f83a751e-ff0c-49bd-a306-8b5ab6a8cc83"
|
||||
],
|
||||
[
|
||||
"Existing Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"b46ffee0-7c89-4155-8450-678d7cea24f8"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -5541,23 +5621,33 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos Platform",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"f83a751e-ff0c-49bd-a306-8b5ab6a8cc83"
|
||||
],
|
||||
[
|
||||
"New Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"372acad9-fb7b-4ac7-9620-28a66ac9c40d"
|
||||
],
|
||||
[
|
||||
"Governance System",
|
||||
"Feature"
|
||||
"Feature",
|
||||
"Governance",
|
||||
"a5a7304e-155a-47d1-97f7-c50b88082000"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -5596,23 +5686,33 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos Platform",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"f83a751e-ff0c-49bd-a306-8b5ab6a8cc83"
|
||||
],
|
||||
[
|
||||
"New Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"372acad9-fb7b-4ac7-9620-28a66ac9c40d"
|
||||
],
|
||||
[
|
||||
"API Maps",
|
||||
"Feature"
|
||||
"Feature",
|
||||
"Governance",
|
||||
"28c5218d-3213-4a10-8e28-11d5ae460547"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -5651,23 +5751,33 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos Platform",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"f83a751e-ff0c-49bd-a306-8b5ab6a8cc83"
|
||||
],
|
||||
[
|
||||
"New Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"372acad9-fb7b-4ac7-9620-28a66ac9c40d"
|
||||
],
|
||||
[
|
||||
"User Defined Variables and Code",
|
||||
"Feature"
|
||||
"Feature",
|
||||
"Governance",
|
||||
"55e7b969-383c-4ae8-95c0-2dc18473404f"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -5706,23 +5816,33 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos Platform",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"f83a751e-ff0c-49bd-a306-8b5ab6a8cc83"
|
||||
],
|
||||
[
|
||||
"New Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"372acad9-fb7b-4ac7-9620-28a66ac9c40d"
|
||||
],
|
||||
[
|
||||
"Tensor Flow Integration",
|
||||
"Feature"
|
||||
"Feature",
|
||||
"Governance",
|
||||
"68388215-3e97-4864-9804-72e91ecff02b"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -5758,19 +5878,27 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos Platform",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"f83a751e-ff0c-49bd-a306-8b5ab6a8cc83"
|
||||
],
|
||||
[
|
||||
"New Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"372acad9-fb7b-4ac7-9620-28a66ac9c40d"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -5809,15 +5937,21 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos Platform",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"f83a751e-ff0c-49bd-a306-8b5ab6a8cc83"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -5871,23 +6005,33 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos Mobile App",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"f193b1f9-c97d-4831-87b4-defe9f6aab9a"
|
||||
],
|
||||
[
|
||||
"Needed Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"243a3f35-62a2-4193-ab19-da643accd275"
|
||||
],
|
||||
[
|
||||
"Android Mobile App",
|
||||
"Feature"
|
||||
"Feature",
|
||||
"Governance",
|
||||
"22e0864c-5a2a-40b5-a24d-fe46cde7dd64"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -5926,23 +6070,33 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos Mobile App",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"f193b1f9-c97d-4831-87b4-defe9f6aab9a"
|
||||
],
|
||||
[
|
||||
"Needed Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"243a3f35-62a2-4193-ab19-da643accd275"
|
||||
],
|
||||
[
|
||||
"iOS Mobile App",
|
||||
"Feature"
|
||||
"Feature",
|
||||
"Governance",
|
||||
"dc029fe2-d4f7-46a1-908d-3d3251af002e"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -5981,23 +6135,33 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos Mobile App",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"f193b1f9-c97d-4831-87b4-defe9f6aab9a"
|
||||
],
|
||||
[
|
||||
"Needed Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"243a3f35-62a2-4193-ab19-da643accd275"
|
||||
],
|
||||
[
|
||||
"Huawei Mobile App",
|
||||
"Feature"
|
||||
"Feature",
|
||||
"Governance",
|
||||
"198f47fc-61bd-41a1-9b2f-7bc1bea082f9"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -6033,19 +6197,27 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos Mobile App",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"f193b1f9-c97d-4831-87b4-defe9f6aab9a"
|
||||
],
|
||||
[
|
||||
"Needed Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"243a3f35-62a2-4193-ab19-da643accd275"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -6084,15 +6256,21 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos Mobile App",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"f193b1f9-c97d-4831-87b4-defe9f6aab9a"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -6146,23 +6324,33 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos P2P Network",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"e205d4f2-140e-4d4b-a839-e37a6537dfa9"
|
||||
],
|
||||
[
|
||||
"Needed Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"0253c529-e28f-43b5-8b3a-a86abb38dc4a"
|
||||
],
|
||||
[
|
||||
"Node.js Implementation",
|
||||
"Feature"
|
||||
"Feature",
|
||||
"Governance",
|
||||
"bda64809-41d7-41a8-9166-792a6df000e1"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -6198,19 +6386,27 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos P2P Network",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"e205d4f2-140e-4d4b-a839-e37a6537dfa9"
|
||||
],
|
||||
[
|
||||
"Needed Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"0253c529-e28f-43b5-8b3a-a86abb38dc4a"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -6249,15 +6445,21 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos P2P Network",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"e205d4f2-140e-4d4b-a839-e37a6537dfa9"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -6296,11 +6498,15 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -12817,23 +13023,33 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos Platform",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"f83a751e-ff0c-49bd-a306-8b5ab6a8cc83"
|
||||
],
|
||||
[
|
||||
"New Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"372acad9-fb7b-4ac7-9620-28a66ac9c40d"
|
||||
],
|
||||
[
|
||||
"Governance System",
|
||||
"Feature"
|
||||
"Feature",
|
||||
"Governance",
|
||||
"a5a7304e-155a-47d1-97f7-c50b88082000"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -12872,23 +13088,33 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos Platform",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"f83a751e-ff0c-49bd-a306-8b5ab6a8cc83"
|
||||
],
|
||||
[
|
||||
"New Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"372acad9-fb7b-4ac7-9620-28a66ac9c40d"
|
||||
],
|
||||
[
|
||||
"API Maps",
|
||||
"Feature"
|
||||
"Feature",
|
||||
"Governance",
|
||||
"28c5218d-3213-4a10-8e28-11d5ae460547"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -12923,19 +13149,27 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos Platform",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"f83a751e-ff0c-49bd-a306-8b5ab6a8cc83"
|
||||
],
|
||||
[
|
||||
"New Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"372acad9-fb7b-4ac7-9620-28a66ac9c40d"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -12971,15 +13205,21 @@
|
||||
"referenceParentCombinedNodePath": [
|
||||
[
|
||||
"Superalgos",
|
||||
"Features"
|
||||
"Features",
|
||||
"Governance",
|
||||
"1d2c1985-c762-4ece-b350-15bd893bd1f4"
|
||||
],
|
||||
[
|
||||
"Project Features",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"136b6e7a-f042-441b-84be-395b56b65b70"
|
||||
],
|
||||
[
|
||||
"Superalgos Platform",
|
||||
"Feature Class"
|
||||
"Feature Class",
|
||||
"Governance",
|
||||
"f83a751e-ff0c-49bd-a306-8b5ab6a8cc83"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -13208,7 +13448,7 @@
|
||||
{
|
||||
"type": "Delegate Power Switch",
|
||||
"name": "harrellbm",
|
||||
"config": "{\n \"percentage\": 20\n}",
|
||||
"config": "{\n \"percentage\": 25\n}",
|
||||
"project": "Governance",
|
||||
"delegatePowerSwitch": [],
|
||||
"userDelegates": [],
|
||||
@@ -13238,7 +13478,7 @@
|
||||
{
|
||||
"type": "Delegate Power Switch",
|
||||
"name": "Thomas",
|
||||
"config": "{\n \"percentage\": 15\n}",
|
||||
"config": "{\n \"percentage\": 20\n}",
|
||||
"project": "Governance",
|
||||
"delegatePowerSwitch": [],
|
||||
"userDelegates": [],
|
||||
@@ -13268,7 +13508,7 @@
|
||||
{
|
||||
"type": "Delegate Power Switch",
|
||||
"name": "Carl",
|
||||
"config": "{}",
|
||||
"config": "{\n \"percentage\": 10\n}",
|
||||
"project": "Governance",
|
||||
"delegatePowerSwitch": [],
|
||||
"userDelegates": [],
|
||||
|
||||
+4
-6
@@ -3,18 +3,16 @@
|
||||
"pageNumber": "1",
|
||||
"type": "Gov Message - Pull Requests Processed",
|
||||
"definition": {
|
||||
"text": "The pull requests at the main Superalgos repositoryhave been succesfully processed.",
|
||||
"updated": 1611002547907,
|
||||
"translations": [
|
||||
]
|
||||
"text": "The pull requests at the main Superalgos repository have been succesfully processed.",
|
||||
"updated": 1628336677481,
|
||||
"translations": []
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "No further action from you is required. The PRs Processing Rules have been applied and all PRs that could be merged were merged.",
|
||||
"updated": 1611002626154,
|
||||
"translations": [
|
||||
]
|
||||
"translations": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -27,14 +27,16 @@ function newGovernanceReportsCommmandInterface() {
|
||||
if (checkPayCommand() === undefined) { return true }
|
||||
|
||||
function checkPRsCommand() {
|
||||
if (UI.projects.governance.spaces.reportsSpace.commandInterface.command.toLowerCase() === 'gov.help gov.prs') {
|
||||
|
||||
let command = UI.projects.governance.spaces.reportsSpace.commandInterface.command.toLowerCase()
|
||||
if (command === 'gov.help gov.prs') {
|
||||
UI.projects.education.spaces.docsSpace.navigateTo('Governance', 'Topic', 'Gov PRs Command')
|
||||
return
|
||||
}
|
||||
if (UI.projects.governance.spaces.reportsSpace.commandInterface.command.indexOf('Gov.PRs') !== 0 && UI.projects.governance.spaces.reportsSpace.commandInterface.command.indexOf('gov.prs') !== 0) { return 'Not PRs Commands' }
|
||||
if (command.indexOf('gov.prs') !== 0 ) { return 'Not PRs Commands' }
|
||||
|
||||
/* Set up the commit message */
|
||||
let message = UI.projects.governance.spaces.reportsSpace.commandInterface.command.trim().substring(UI.projects.governance.spaces.reportsSpace.commandInterface.command.indexOf(' ') + 1, UI.projects.governance.spaces.reportsSpace.commandInterface.command.length)
|
||||
let message = command.trim().substring(command.indexOf(' ') + 1, command.length)
|
||||
if (message.toLowerCase() === 'gov.prs') {
|
||||
message = 'Automated PR merging process.'
|
||||
}
|
||||
@@ -96,11 +98,13 @@ function newGovernanceReportsCommmandInterface() {
|
||||
}
|
||||
|
||||
function checkPayCommand() {
|
||||
if (UI.projects.governance.spaces.reportsSpace.commandInterface.command.toLowerCase() === 'gov.help gov.pay') {
|
||||
|
||||
let command = UI.projects.governance.spaces.reportsSpace.commandInterface.command.toLowerCase()
|
||||
if (command === 'gov.help gov.pay') {
|
||||
UI.projects.education.spaces.docsSpace.navigateTo('Governance', 'Topic', 'Gov Pay Command')
|
||||
return
|
||||
}
|
||||
if (UI.projects.governance.spaces.reportsSpace.commandInterface.command.indexOf('Gov.Pay') !== 0 && UI.projects.governance.spaces.reportsSpace.commandInterface.command.indexOf('gov.pay') !== 0) { return 'Not Pay Commands' }
|
||||
if (command.indexOf('gov.pay') !== 0) { return 'Not Pay Commands' }
|
||||
|
||||
httpRequest(undefined, 'Gov/Pay/' + UI.projects.education.spaces.docsSpace.currentBranch, onResponse)
|
||||
UI.projects.education.spaces.docsSpace.navigateTo('Governance', 'Topic', 'Gov Message - Paying to Contributors')
|
||||
|
||||
@@ -55,10 +55,10 @@ function newGovernanceReportsFiltersHeader() {
|
||||
if (event.key === "Enter" || event.keyCode === 13) {
|
||||
lastFilters = element.value.trim()
|
||||
UI.projects.governance.spaces.reportsSpace.reportsPage.render(undefined, lastFilters)
|
||||
/*
|
||||
UI.projects.education.spaces.docsSpace.commandInterface.command = element.value.trim()
|
||||
UI.projects.education.spaces.docsSpace.commandInterface.detectCommands()
|
||||
*/
|
||||
|
||||
UI.projects.governance.spaces.reportsSpace.commandInterface.command = element.value.trim()
|
||||
UI.projects.governance.spaces.reportsSpace.commandInterface.detectCommands()
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ function newGobernanceReportsSpace() {
|
||||
positions: undefined,
|
||||
mining: undefined,
|
||||
tablesSortingOrders: undefined,
|
||||
commandInterface: undefined,
|
||||
changeTableSortingOrder,
|
||||
physics: physics,
|
||||
draw: draw,
|
||||
@@ -112,6 +113,9 @@ function newGobernanceReportsSpace() {
|
||||
thisObject.mining.finalize()
|
||||
thisObject.mining = undefined
|
||||
|
||||
thisObject.commandInterface.finalize()
|
||||
thisObject.commandInterface = undefined
|
||||
|
||||
isInitialized = false
|
||||
}
|
||||
|
||||
@@ -129,9 +133,10 @@ function newGobernanceReportsSpace() {
|
||||
thisObject.container.isDraggeable = false
|
||||
thisObject.container.detectMouseOver = true
|
||||
thisObject.container.status = 'hidden'
|
||||
|
||||
|
||||
resize()
|
||||
|
||||
thisObject.commandInterface = newGovernanceReportsCommmandInterface()
|
||||
thisObject.reportsPage = newGovernanceReportsReportsPage()
|
||||
thisObject.footer = newGovernanceReportsFooter()
|
||||
thisObject.filtersHeader = newGovernanceReportsFiltersHeader()
|
||||
@@ -152,6 +157,7 @@ function newGobernanceReportsSpace() {
|
||||
thisObject.positions = newGovernanceReportsPositions()
|
||||
thisObject.mining = newGovernanceReportsMining()
|
||||
|
||||
thisObject.commandInterface.initialize()
|
||||
thisObject.reportsPage.initialize()
|
||||
thisObject.footer.initialize()
|
||||
thisObject.filtersHeader.initialize()
|
||||
@@ -170,7 +176,7 @@ function newGobernanceReportsSpace() {
|
||||
thisObject.assets.initialize()
|
||||
thisObject.features.initialize()
|
||||
thisObject.positions.initialize()
|
||||
thisObject.mining.initialize()
|
||||
thisObject.mining.initialize()
|
||||
|
||||
setupSidePanelTab()
|
||||
|
||||
@@ -225,6 +231,15 @@ function newGobernanceReportsSpace() {
|
||||
'width: ' + thisObject.container.frame.width + 'px;' +
|
||||
'height: ' + thisObject.container.frame.height + 'px'
|
||||
}
|
||||
|
||||
/*
|
||||
Monitor the Docs Space to see if its tab is opened, to close this space tab.
|
||||
*/
|
||||
if (UI.projects.education.spaces.docsSpace.sidePanelTab.isOpen === true &&
|
||||
thisObject.sidePanelTab.isOpen === true
|
||||
) {
|
||||
thisObject.sidePanelTab.close()
|
||||
}
|
||||
}
|
||||
|
||||
function getContainer(point, purpose) {
|
||||
|
||||
@@ -37,7 +37,7 @@ function newGovernanceUserProfileSpace() {
|
||||
If the workspace is not related to governance, then we exit the Intialize Function
|
||||
*/
|
||||
let resultsArary = UI.projects.foundations.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('User Profile')
|
||||
if (resultsArary.length === 0) { return }
|
||||
if (resultsArary.length === 0 || resultsArary.length === 1) { return }
|
||||
|
||||
/* Find the Username and Password */
|
||||
|
||||
@@ -65,8 +65,6 @@ function newGovernanceUserProfileSpace() {
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
|
||||
requestStars()
|
||||
|
||||
function requestStars() {
|
||||
|
||||
Reference in new issue
Block a user