Merge branch '0.16.x' into feat-variables-api

This commit is contained in:
Bradley Schofield 2022-08-12 13:35:01 +01:00
commit 8a2f8ed6ee
18 changed files with 6372 additions and 6050 deletions

View file

@ -123,7 +123,7 @@
data-analytics-category="console/navigation" data-analytics-category="console/navigation"
data-analytics-label="Users Link"> data-analytics-label="Users Link">
<i class="icon-users"></i> <i class="icon-users"></i>
Users Authentication
</a> </a>
</li> </li>
<li> <li>

View file

@ -583,6 +583,11 @@ $logs = $this->getParam('logs', null);
<input id="id" type="text" autocomplete="off" placeholder="" data-ls-bind="{{project-collection.$id}}" disabled data-forms-copy class="margin-bottom-no" /> <input id="id" type="text" autocomplete="off" placeholder="" data-ls-bind="{{project-collection.$id}}" disabled data-forms-copy class="margin-bottom-no" />
</div> </div>
<label>Database ID</label>
<div class="input-copy margin-bottom">
<input type="text" autocomplete="off" placeholder="" data-ls-bind="{{router.params.databaseId}}" disabled data-forms-copy class="margin-bottom-no" />
</div>
<ul class="margin-bottom-large text-fade text-size-small"> <ul class="margin-bottom-large text-fade text-size-small">
<li class="margin-bottom-small"><i class="icon-angle-circled-right margin-start-tiny margin-end-tiny"></i> <li class="margin-bottom-small"><i class="icon-angle-circled-right margin-start-tiny margin-end-tiny"></i>
<button data-ls-ui-trigger="open-json" <button data-ls-ui-trigger="open-json"

View file

@ -348,6 +348,11 @@ $logs = $this->getParam('logs', null);
<input type="text" autocomplete="off" placeholder="" data-ls-bind="{{router.params.collection}}" disabled data-forms-copy class="margin-bottom-no" /> <input type="text" autocomplete="off" placeholder="" data-ls-bind="{{router.params.collection}}" disabled data-forms-copy class="margin-bottom-no" />
</div> </div>
<label>Database ID</label>
<div class="input-copy margin-bottom">
<input type="text" autocomplete="off" placeholder="" data-ls-bind="{{router.params.databaseId}}" disabled data-forms-copy class="margin-bottom-no" />
</div>
<ul class="margin-bottom-large text-fade text-size-small" data-ls-if="({{project-document.$id}})"> <ul class="margin-bottom-large text-fade text-size-small" data-ls-if="({{project-document.$id}})">
<li class="margin-bottom-small"><i class="icon-angle-circled-right margin-start-tiny margin-end-tiny"></i> <li class="margin-bottom-small"><i class="icon-angle-circled-right margin-start-tiny margin-end-tiny"></i>
<button data-ls-ui-trigger="open-json" <button data-ls-ui-trigger="open-json"

View file

@ -11,7 +11,7 @@ $smtpEnabled = $this->getParam('smtpEnabled', false);
<a data-ls-attrs="href=/console/home?project={{router.params.project}}" class="back text-size-small link-return-animation--start"><i class="icon-left-open"></i> Home</a> <a data-ls-attrs="href=/console/home?project={{router.params.project}}" class="back text-size-small link-return-animation--start"><i class="icon-left-open"></i> Home</a>
<br /> <br />
<span>Users</span> <span>Authentication</span>
</h1> </h1>
</div> </div>

View file

@ -18,8 +18,8 @@
data-scope="console" data-scope="console"
data-event="submit" data-event="submit"
data-success="alert,redirect" data-success="alert,redirect"
data-success-param-alert="Password Reset Completed" data-success-param-alert-text="Password Reset Completed"
data-success-param-url="/auth/signin" data-success-param-redirect-url="/auth/signin"
data-failure="alert" data-failure="alert"
data-failure-param-alert-text="Password Reset Failed" data-failure-param-alert-text="Password Reset Failed"
data-failure-param-alert-classname="error"> data-failure-param-alert-classname="error">

View file

@ -76,7 +76,7 @@
} }
], ],
"require-dev": { "require-dev": {
"appwrite/sdk-generator": "0.18.8", "appwrite/sdk-generator": "0.20.0",
"phpunit/phpunit": "9.5.20", "phpunit/phpunit": "9.5.20",
"squizlabs/php_codesniffer": "^3.6", "squizlabs/php_codesniffer": "^3.6",
"swoole/ide-helper": "4.8.9", "swoole/ide-helper": "4.8.9",

63
package-lock.json generated
View file

@ -9,8 +9,8 @@
"version": "0.1.0", "version": "0.1.0",
"license": "BSD-3-Clause", "license": "BSD-3-Clause",
"dependencies": { "dependencies": {
"chart.js": "^3.8.0", "chart.js": "^3.8.2",
"markdown-it": "^12.3.2", "markdown-it": "^13.0.1",
"pell": "^1.0.6", "pell": "^1.0.6",
"prismjs": "^1.28.0", "prismjs": "^1.28.0",
"turndown": "^7.1.1" "turndown": "^7.1.1"
@ -549,9 +549,9 @@
} }
}, },
"node_modules/chart.js": { "node_modules/chart.js": {
"version": "3.8.0", "version": "3.8.2",
"resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.8.0.tgz", "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.8.2.tgz",
"integrity": "sha512-cr8xhrXjLIXVLOBZPkBZVF6NDeiVIrPLHcMhnON7UufudL+CNeRrD+wpYanswlm8NpudMdrt3CHoLMQMxJhHRg==" "integrity": "sha512-7rqSlHWMUKFyBDOJvmFGW2lxULtcwaPLegDjX/Nu5j6QybY+GCiQkEY+6cqHw62S5tcwXMD8Y+H5OBGoR7d+ZQ=="
}, },
"node_modules/chokidar": { "node_modules/chokidar": {
"version": "2.1.8", "version": "2.1.8",
@ -1067,9 +1067,12 @@
} }
}, },
"node_modules/entities": { "node_modules/entities": {
"version": "2.1.0", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
"integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
"engines": {
"node": ">=0.12"
},
"funding": { "funding": {
"url": "https://github.com/fb55/entities?sponsor=1" "url": "https://github.com/fb55/entities?sponsor=1"
} }
@ -2606,9 +2609,9 @@
} }
}, },
"node_modules/linkify-it": { "node_modules/linkify-it": {
"version": "3.0.3", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz",
"integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==",
"dependencies": { "dependencies": {
"uc.micro": "^1.0.1" "uc.micro": "^1.0.1"
} }
@ -2862,13 +2865,13 @@
} }
}, },
"node_modules/markdown-it": { "node_modules/markdown-it": {
"version": "12.3.2", "version": "13.0.1",
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz",
"integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==",
"dependencies": { "dependencies": {
"argparse": "^2.0.1", "argparse": "^2.0.1",
"entities": "~2.1.0", "entities": "~3.0.1",
"linkify-it": "^3.0.1", "linkify-it": "^4.0.1",
"mdurl": "^1.0.1", "mdurl": "^1.0.1",
"uc.micro": "^1.0.5" "uc.micro": "^1.0.5"
}, },
@ -5484,9 +5487,9 @@
"dev": true "dev": true
}, },
"chart.js": { "chart.js": {
"version": "3.8.0", "version": "3.8.2",
"resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.8.0.tgz", "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.8.2.tgz",
"integrity": "sha512-cr8xhrXjLIXVLOBZPkBZVF6NDeiVIrPLHcMhnON7UufudL+CNeRrD+wpYanswlm8NpudMdrt3CHoLMQMxJhHRg==" "integrity": "sha512-7rqSlHWMUKFyBDOJvmFGW2lxULtcwaPLegDjX/Nu5j6QybY+GCiQkEY+6cqHw62S5tcwXMD8Y+H5OBGoR7d+ZQ=="
}, },
"chokidar": { "chokidar": {
"version": "2.1.8", "version": "2.1.8",
@ -5924,9 +5927,9 @@
} }
}, },
"entities": { "entities": {
"version": "2.1.0", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
"integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==" "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q=="
}, },
"errno": { "errno": {
"version": "0.1.8", "version": "0.1.8",
@ -7178,9 +7181,9 @@
} }
}, },
"linkify-it": { "linkify-it": {
"version": "3.0.3", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz",
"integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==",
"requires": { "requires": {
"uc.micro": "^1.0.1" "uc.micro": "^1.0.1"
} }
@ -7413,13 +7416,13 @@
} }
}, },
"markdown-it": { "markdown-it": {
"version": "12.3.2", "version": "13.0.1",
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz",
"integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==",
"requires": { "requires": {
"argparse": "^2.0.1", "argparse": "^2.0.1",
"entities": "~2.1.0", "entities": "~3.0.1",
"linkify-it": "^3.0.1", "linkify-it": "^4.0.1",
"mdurl": "^1.0.1", "mdurl": "^1.0.1",
"uc.micro": "^1.0.5" "uc.micro": "^1.0.5"
} }

View file

@ -17,8 +17,8 @@
"gulp-less": "^5.0.0" "gulp-less": "^5.0.0"
}, },
"dependencies": { "dependencies": {
"chart.js": "^3.8.0", "chart.js": "^3.8.2",
"markdown-it": "^12.3.2", "markdown-it": "^13.0.1",
"pell": "^1.0.6", "pell": "^1.0.6",
"prismjs": "^1.28.0", "prismjs": "^1.28.0",
"turndown": "^7.1.1" "turndown": "^7.1.1"

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

View file

@ -57,7 +57,7 @@ window.addEventListener("load", async () => {
const realtime = window.ls.container.get('realtime'); const realtime = window.ls.container.get('realtime');
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
let current = {}; let current = {};
window.ls.container.get('console').subscribe(['project', 'console'], response => { window.ls.container.get('console').client.subscribe(['project', 'console'], response => {
if (response.events.includes('stats.connections')) { if (response.events.includes('stats.connections')) {
for (let project in response.payload) { for (let project in response.payload) {
current[project] = response.payload[project] ?? 0; current[project] = response.payload[project] ?? 0;

View file

@ -2,16 +2,28 @@
"use strict"; "use strict";
window.ls.container.set('console', function (window) { window.ls.container.set('console', function (window) {
var sdk = new window.Appwrite(); var client = new Appwrite.Client();
var endpoint = window.location.origin + '/v1'; var endpoint = window.location.origin + '/v1';
sdk client
.setEndpoint(endpoint) .setEndpoint(endpoint)
.setProject('console') .setProject('console')
.setLocale(APP_ENV.LOCALE) .setLocale(APP_ENV.LOCALE)
; ;
return sdk; return {
client: client,
account: new Appwrite.Account(client),
avatars: new Appwrite.Avatars(client),
databases: new Appwrite.Databases(client),
functions: new Appwrite.Functions(client),
health: new Appwrite.Health(client),
locale: new Appwrite.Locale(client),
projects: new Appwrite.Projects(client),
storage: new Appwrite.Storage(client),
teams: new Appwrite.Teams(client),
users: new Appwrite.Users(client)
}
}, true); }, true);
})(window); })(window);

View file

@ -2,17 +2,28 @@
"use strict"; "use strict";
window.ls.container.set('sdk', function (window, router) { window.ls.container.set('sdk', function (window, router) {
var sdk = new window.Appwrite(); var client = new Appwrite.Client();
var endpoint = window.location.origin + '/v1'; var endpoint = window.location.origin + '/v1';
sdk client
.setEndpoint(endpoint) .setEndpoint(endpoint)
.setProject(router.params.project || '') .setProject(router.params.project || '')
.setLocale(APP_ENV.LOCALE) .setLocale(APP_ENV.LOCALE)
.setMode('admin') .setMode('admin')
; ;
return sdk; return {
client: client,
account: new Appwrite.Account(client),
avatars: new Appwrite.Avatars(client),
databases: new Appwrite.Databases(client),
functions: new Appwrite.Functions(client),
health: new Appwrite.Health(client),
locale: new Appwrite.Locale(client),
storage: new Appwrite.Storage(client),
teams: new Appwrite.Teams(client),
users: new Appwrite.Users(client)
}
}, false); }, false);
})(window); })(window);

View file

@ -203,6 +203,12 @@
let params = []; let params = [];
let match; let match;
let indexOfArguments = functionAsString.indexOf('(');
if (indexOfArguments !== -1) {
functionAsString = functionAsString.slice(indexOfArguments, -1);
}
functionAsString = functionAsString.replaceAll('={}', ""); functionAsString = functionAsString.replaceAll('={}', "");
functionAsString = functionAsString.replaceAll('=[]', ""); functionAsString = functionAsString.replaceAll('=[]', "");
functionAsString = functionAsString.replace(REGEX_COMMENTS, ""); functionAsString = functionAsString.replace(REGEX_COMMENTS, "");
@ -259,7 +265,7 @@
let args = getParams(target); let args = getParams(target);
return target.apply( return target.apply(
target, container.get(scope),
args.map(function(value) { args.map(function(value) {
let result = getValue(value, prefix, data); let result = getValue(value, prefix, data);

View file

@ -27,8 +27,8 @@ class AttributeEmail extends Attribute
->addRule('format', [ ->addRule('format', [
'type' => self::TYPE_STRING, 'type' => self::TYPE_STRING,
'description' => 'String format.', 'description' => 'String format.',
'default' => APP_DATABASE_ATTRIBUTE_EMAIL, 'default' => 'email',
'example' => APP_DATABASE_ATTRIBUTE_EMAIL, 'example' => 'email',
'array' => false, 'array' => false,
'require' => true, 'require' => true,
]) ])

View file

@ -35,8 +35,8 @@ class AttributeEnum extends Attribute
->addRule('format', [ ->addRule('format', [
'type' => self::TYPE_STRING, 'type' => self::TYPE_STRING,
'description' => 'String format.', 'description' => 'String format.',
'default' => APP_DATABASE_ATTRIBUTE_ENUM, 'default' => 'enum',
'example' => APP_DATABASE_ATTRIBUTE_ENUM, 'example' => 'enum',
'array' => false, 'array' => false,
'require' => true, 'require' => true,
]) ])

View file

@ -27,8 +27,8 @@ class AttributeIP extends Attribute
->addRule('format', [ ->addRule('format', [
'type' => self::TYPE_STRING, 'type' => self::TYPE_STRING,
'description' => 'String format.', 'description' => 'String format.',
'default' => APP_DATABASE_ATTRIBUTE_IP, 'default' => 'ip',
'example' => APP_DATABASE_ATTRIBUTE_IP, 'example' => 'ip',
'array' => false, 'array' => false,
'require' => true, 'require' => true,
]) ])

View file

@ -27,8 +27,8 @@ class AttributeURL extends Attribute
->addRule('format', [ ->addRule('format', [
'type' => self::TYPE_STRING, 'type' => self::TYPE_STRING,
'description' => 'String format.', 'description' => 'String format.',
'default' => APP_DATABASE_ATTRIBUTE_URL, 'default' => 'url',
'example' => APP_DATABASE_ATTRIBUTE_URL, 'example' => 'url',
'array' => false, 'array' => false,
'required' => true, 'required' => true,
]) ])