1
0
Fork 0
mirror of synced 2024-06-26 10:10:57 +12:00

Merge branch 'master' of github.com:appwrite/appwrite into swoole

This commit is contained in:
Eldad Fux 2020-07-01 09:56:06 +03:00
commit f1c0acef3f
15 changed files with 24 additions and 298 deletions

View file

@ -11,13 +11,12 @@
- Added support for Brotli compression (@PedroCisnerosSantana, @Rohitub222)
- New UI micro-interactions and CSS fixes (@AnatoleLucet)
- UI performance & accessibility improvments (#406)
- Updated ClamAV conntainer to version 1.0.9
- New Doctor CLI to debug the Appwrite server ([#415](https://github.com/appwrite/appwrite/issues/415))
- All emails are now sent asynchronously for improved performance (@TorstenDittmann)
- Updated grid for OAuth2 providers list in the console
- Upgraded Redis Resque queue library to version 1.3.6
- Added container names to docker-compose.yml (@drandell)
- Upgraded ClamAV container image to version 1.0.9
- Upgraded ClamAV container image to version 1.0.11 ([#412](https://github.com/appwrite/appwrite/issues/412))
- Optimised function execution by using fully-qualified function calls
- Added support for boolean 'true' and 'false' in query strings alongside 1 and 0
- New and consistent response format for all API object + new response examples in the docs
@ -45,6 +44,7 @@
## Breaking Changes
- **Deprecated** `first` and `last` query params for documents list route in the database API
- **Deprecated** Deprectaed Pubjabi Translations ('pn')
## Security

View file

@ -31,7 +31,6 @@ return [
'no', // Norwegian
'ph', // Filipino
'pl', // Polish
'pn', // Punjabi
'pt-br', // Portuguese - Brazil
'pt-pt', // Portuguese - Portugal
'ro', // Romanian

View file

@ -1,10 +0,0 @@
<?php
return [
'AF' => 'ਅਫਰੀਕਾ',
'AN' => 'ਅੰਤਾਰਕਟੀਕਾ',
'AS' => 'ਏਸੀਆਈ',
'EU' => 'ਯੂਰੋਪਾ',
'NA' => 'ਨੂਰਡ-ਅਮੇਰਿਕਾ',
'OC' => 'ਓਸੀਆਨੀ',
'SA' => 'ਸੂਡ-ਅਮੇਰਿਕਾ',
];

View file

@ -1,197 +0,0 @@
<?php
return [
'AF' => 'ਅਫਗਾਨਿਸਤਾਨ',
'AO' => 'ਅੰਗੋਲਾ',
'AL' => 'ਅਲਬਾਨੀë',
'AD' => 'ਅੰਡੋਰਾ',
'AE' => 'Verenigde ਅਰਬਿਅਨ ਅਮੀਰਾਤ',
'AR' => 'ਅਰਜਨਟੀਨੀë',
'AM' => 'ਅਰਮੀਨੀë',
'AG' => 'ਐਂਟੀਗੁਆ ਐਨ ਬਾਰਬੁਡਾ',
'AU' => 'ਆਸਟਰੇਲੀਆਈ',
'AT' => 'ਓਓਸਟੇਨਰੀਕ',
'AZ' => 'ਅਜ਼ਰਬਾਈਜਾਨ',
'BI' => 'ਬੁਰੂੰਡੀ',
'BE' => 'ਬੈਲਜੀë',
'BJ' => 'ਬੇਨਿਨ',
'BF' => 'ਬੁਰਕੀਨਾ ਫਾਸੋ',
'BD' => 'ਬੰਗਲਾਦੇਸ਼',
'BG' => 'ਬੁਲਗਾਰੀ',
'BH' => 'ਬਹਿਰੀਨ',
'BS' => 'ਬਾਹਾਮਸ',
'BA' => 'ਬੋਸਨੀਅ ਇਨ ਹਰਜ਼ੈਗੋਵਿਨਾ',
'BY' => 'ਬੇਲਾਰੂਸ',
'BZ' => 'ਬੇਲੀਜ਼',
'BO' => 'ਬੋਲੀਵੀਆ',
'BR' => 'ਬ੍ਰਾਸੀਲੀë',
'BB' => 'ਬਾਰਬਾਡੋਸ',
'BN' => 'ਬਰੂਨੇਈ',
'BT' => 'ਭੋਏਤਨ',
'BW' => 'ਬੋਤਸਵਾਨਾ',
'CF' => 'ਮੱਧ ਅਫ਼ਰੀਕੀ ਗਣਰਾਜ',
'CA' => 'ਕਨਡਾ',
'CH' => 'ਸਵਿਟਜ਼ਰਲੈਂਡ',
'CL' => 'ਚਿਲੀ',
'CN' => 'ਸਜੀਨਾ',
'CI' => 'ਇਵੋੋਰਕਸ',
'CM' => 'ਕਾਮਰੋਇਨ',
'CD' => 'ਡੈਮੋਕਰੇਟੀਜ਼ ਰਿਪਬਲਿਕ ਵੈਨ ਡਾਈ ਕੌਂਗੋ',
'CG' => 'ਰਿਪਬਲਿਕ ਵੈਨ ਡਾਈ ਕੌਂਗੋ',
'CO' => 'ਕੋਲੰਬੀਆ',
'KM' => 'ਕੋਮੋਰੋਜ਼',
'CV' => 'ਕਾਪ ਵਰਡੇ',
'CR' => 'ਕੋਸਟਾਰੀਕਾ',
'CU' => 'ਕੁਬਾ',
'CY' => 'ਸਾਈਪ੍ਰਸ',
'CZ' => 'ਸਿਜ਼ੈਗੀ ਰੀਪਬਲਿਕ',
'DE' => 'ਡਿਟਸਲੈਂਡ',
'DJ' => 'ਜਾਇਬੂਤੀ',
'DM' => 'ਡੋਮਿਨਿਕਾ',
'DK' => 'ਡੀਨੇਮਾਰਕ',
'DO' => 'ਡੋਮੀਨੀਕੇਂਸ ਰਿਪਬਲਿਕ',
'DZ' => 'ਅਲਜੀਰੀਆ',
'EC' => 'ਇਕੂਏਟਰ',
'EG' => 'ਐਗਪੇਟ',
'ER' => 'ਏਰੀਟਰੀਆ',
'ES' => 'ਸਪੰਜੇ',
'EE' => 'ਐਸਟਲੈਂਡ',
'ET' => 'ਈਥੀਓਪੀਅ',
'FI' => 'ਫਿਨਲੈਂਡ',
'FJ' => 'ਫਿਦਜੀ',
'FR' => 'ਫ੍ਰੈਂਕ੍ਰੀਕ',
'FM' => 'ਮਿਕਰੋਨੇਸੀ',
'GA' => 'ਗਾਬੋਅਨ',
'GB' => 'Verenigde Koninkryk',
'GE' => 'ਜਾਰਜੀਆ',
'GH' => 'ਘਾਨਾ',
'GN' => 'ਗਿੰਨੀ',
'GM' => 'ਗਾਮੀ',
'GW' => 'ਗਿੰਨੀ-ਬਿਸਾਉ',
'GQ' => 'ਏਕਵੇਟਰਿਆਲ-ਗਿੰਨੀ',
'GR' => 'ਗ੍ਰੀਕਲੈਂਡ',
'GD' => 'ਗ੍ਰੇਨਾਡਾ',
'GT' => 'ਗੁਆਟੇਮਾਲਾ',
'GY' => 'ਗੁਆਨਾ',
'HN' => 'ਹੌਂਡੂਰਸ',
'HR' => 'ਕ੍ਰੋਸੀë',
'HT' => 'ਹੈਤੀ',
'HU' => 'ਹਾਂਗਰੀ',
'ID' => 'ਇੰਡੋਨੇਸ਼ੀਆਈ',
'IN' => 'ਇੰਡੀë',
'IE' => 'ਆਇਰਲੈਂਡ',
'IR' => 'ਇਰਾਨ',
'IQ' => 'ਇਰਕ',
'IS' => 'Ysland',
'IL' => 'ਇਜ਼ਰਾਈਲ',
'IT' => 'ਇਟਾਲੀë',
'JM' => 'ਜਮਾਏਕਾ',
'JO' => 'ਜਾਰਡਨ',
'JP' => 'ਜਪਾਨ',
'KZ' => 'ਕਜ਼ਾਕਸਤਾਨ',
'KE' => 'ਕੀਨੀਆ',
'KG' => 'ਕਿਰਗਿਸਤਾਨ',
'KH' => 'ਕੰਬੋਡਜਾ',
'KI' => 'ਕਿਰੀਬਾਤੀ',
'KN' => 'ਸੇਂਟ ਕਿਟਸ ਐਨ ਨੇਵਿਸ',
'KR' => 'ਸੂਡ-ਕੋਰੀਆ',
'KW' => 'ਕੁਵੈਤ',
'LA' => 'ਲਾਓਸ',
'LB' => 'ਲਿਬਨਾਨ',
'LR' => 'ਲਿਬੇਰੀë',
'LY' => 'ਲੀਬੀë',
'LC' => 'ਸੇਂਟ ਲੂਸੀਆ',
'LI' => 'ਲਿਚਟੇਨਸਟਾਈਨ',
'LK' => 'ਸ਼ਿਰੀਲੰਕਾ',
'LS' => 'ਲੈਸੋਥੋ',
'LT' => 'ਲੀਟਾ',
'LU' => 'ਲਕਸਮਬਰਗ',
'LV' => 'ਲਾਤਵੀਆ',
'MA' => 'ਮਾਰੋਕੋ',
'MC' => 'ਮੋਨੈਕੋ',
'MD' => 'ਮੋਲਦਾਵੀ',
'MG' => 'ਮੈਡਾਗਾਸਕਰ',
'MV' => 'ਮਾਲਦੀਵ',
'MX' => 'ਮੇਕਸਿਕੋ',
'MH' => 'ਮਾਰਸ਼ਲ-ਆਈਲੈਂਡ',
'MK' => 'ਮੈਸੇਡੋਨੀë',
'ML' => 'ਮਾਲੀ',
'MT' => 'ਮਾਲਟਾ',
'MM' => 'ਮਿਆਂਮਾਰ',
'ME' => 'ਮੌਂਟੇਨੇਗਰੋ',
'MN' => 'ਮੰਗੋਲੀë',
'MZ' => 'ਮੋਸਾਮਬੀਕ',
'MR' => 'ਮੌਰੀਟਨੀë',
'MU' => 'ਮਾਰੀਸ਼ਸ',
'MW' => 'ਮਾਲਾਵੀ',
'MY' => 'ਮਲੇਸੀਆਈ',
'NA' => 'ਨਾਮੀਬੀ',
'NE' => 'ਨਾਈਜਰ',
'NG' => 'ਨਾਈਜੀਰੀë',
'NI' => 'ਨਿਕਾਰਾਗੁਆ',
'NL' => 'ਨੀਡਰਲੈਂਡ',
'NO' => 'ਨੂਰਵੇë',
'NP' => 'ਨੇਪਾਲ',
'NR' => 'ਨੌਰੂ',
'NZ' => 'ਨਿie-ਸੀਲੈਂਡ',
'OM' => 'ਓਮਾਨ',
'PK' => 'ਪਾਕਿਸਤਾਨ',
'PA' => 'ਪਨਾਮਾ',
'PE' => 'ਪੇਰੂ',
'PH' => 'ਫਿਲਪੀਨ',
'PW' => 'ਪਲਾਉ',
'PG' => 'ਪਾਪੀਆ-ਨੀਯੂ-ਗਿੰਨੀ',
'PL' => 'ਪੋਲ',
'KP' => 'ਨੂਰਡ-ਕੋਰੀਆ',
'PT' => 'ਪੁਰਤਗਾਲ',
'PY' => 'ਪੈਰਾਗੁਏ',
'QA' => 'ਕਟਾਰ',
'RO' => 'ਰੋਮੇਨੀਅ',
'RU' => 'ਰਸਲੈਂਡ',
'RW' => 'ਰਵਾਂਡਾ',
'SA' => 'ਸਾਓਦੀ-ਅਰਾਬੀ',
'SD' => 'ਸੋਦਾਨ',
'SN' => 'ਸੇਨੇਗਲ',
'SG' => 'ਸਿੰਗਾਪੁਰ',
'SB' => 'ਸਲੋਮੋ-ਆਈਲੈਂਡ',
'SL' => 'ਸੀਅਰਾ ਲਿਓਨ',
'SV' => 'ਐਲ ਸਾਲਵਾਡੋਰ',
'SM' => 'ਸੈਨ ਮਰੀਨੋ',
'SO' => 'ਸੋਮਾਲੀë',
'RS' => 'ਸਰਵੀë',
'SS' => 'ਸੂਇਡ-ਸੋਦਾਨ',
'ST' => 'ਸਾਓ ਤੋਮੇ ਐਨ ਪ੍ਰਿੰਸੀਪੇ',
'SR' => 'ਸੂਰੀਨਾਮ',
'SK' => 'ਸਲੋਕਯੇ',
'SI' => 'ਹੌਲੀ',
'SE' => 'ਸਵੈਡੇ',
'SZ' => 'ਸਵਾਜ਼ੀਲੈਂਡ',
'SC' => 'ਸੇਸ਼ੇਲ',
'SY' => 'ਸਿਰੀ',
'TD' => 'ਚਾਡ',
'TG' => 'ਹੁਣੇ ਜਾਣਾ',
'TH' => 'ਥਾਈਲੈਂਡ',
'TJ' => 'ਤਦਜਿਕਿਸਤਾਨ',
'TM' => 'ਤੁਰਕਮੇਨਿਸਤਾਨ',
'TL' => 'ਓਸ-ਤਿਮੋਰ',
'TO' => 'ਟੋਂਗਾ',
'TT' => 'ਤ੍ਰਿਨੀਦਾਦ ਅਤੇ ਟੋਬੈਗੋ',
'TN' => 'ਟਿisਨੀਸੀਅ',
'TR' => 'ਤੁਰਕੀ',
'TV' => 'ਤੁਵਾਲੁ',
'TZ' => 'ਤਨਜ਼ਾਨੀë',
'UG' => 'ਯੂਗਾਂਡਾ',
'UA' => 'ਓਕ੍ਰਾੱਨ',
'UY' => 'ਉਰੂਗਵੇ',
'US' => 'ਵੇਰੇਨਿਗਡੇ ਸਟੇਟ',
'UZ' => 'ਓਸਬੀਕਕਿਸਤਾਨ',
'VA' => 'ਵਾਟਿਕਾਂਸਟੈਡ',
'VC' => 'ਸਿਨਟ ਵਿਨਸੈਂਟ ਏਨ ਡਾਈ ਗ੍ਰੇਨਾਡਾਈਨਜ਼',
'VE' => 'ਵੈਨਜ਼ੂਏਲਾ',
'VN' => 'ਵਿਯਤਨਮ',
'VU' => 'ਵੈਨੂਆਟੂ',
'WS' => 'ਸਮੋਆ',
'YE' => 'ਜੀਮਨ',
'ZA' => 'ਸੂਡ-ਅਫਰੀਕਾ',
'ZM' => 'ਜ਼ੈਂਬੀਆ',
'ZW' => 'ਜ਼ਿੰਬਾਬਵੇ',
];

View file

@ -1,17 +0,0 @@
<?php
return [
'settings.inspire' => '"I love Typing&coding in punjabi :)."', // This is the line printed in the homepage and console 'view-source'
'settings.locale' => 'pn',
'settings.direction' => 'ltr',
// Service - Users
'account.emails.team' => '%s ਟੀਮ(Priyanka)',
'account.emails.verification.title' => 'ਖਾਤਾ ਪੁਸ਼ਟੀਕਰਣ',
'account.emails.verification.body' => 'app/config/locales/templates/pn.email.auth.confirm.tpl',
'account.emails.recovery.title' => 'ਪਾਸਵਰਡ ਰੀਸੈੱਟ',
'account.emails.recovery.body' => 'app/config/locales/templates/pn.email.auth.recovery.tpl',
'account.emails.invitation.title' => '% S ਟੀਮ% s ਤੇ ਸੱਦਾ',
'account.emails.invitation.body' => 'app/config/locales/templates/pn.email.auth.invitation.tpl',
'locale.country.unknown' => 'India',
'countries' => include 'pn.countries.php',
'continents' => include 'pn.continents.php',
];

View file

@ -1,15 +0,0 @@
<p>
ਹੈਲੋ {{name}},
</p>
<p>
ਆਪਣੇ ਈਮੇਲ ਪਤੇ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਇਸ ਲਿੰਕ ਦਾ ਪਾਲਣ ਕਰੋ:
</p>
{{cta}}
<p>
ਜੇ ਤੁਸੀਂ ਇਸ ਪਤੇ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ ਨਹੀਂ ਕਿਹਾ, ਤਾਂ ਤੁਸੀਂ ਇਸ ਸੁਨੇਹੇ ਨੂੰ ਨਜ਼ਰ ਅੰਦਾਜ਼ ਕਰ ਸਕਦੇ ਹੋ.
</p>
<p>
ਧੰਨਵਾਦ,
<br />
{{project}} ਟੀਮ
</p>

View file

@ -1,18 +0,0 @@
<p>
ਸਤ ਸ੍ਰੀ ਅਕਾਲ,
</p>
<p>
ਇਹ ਮੇਲ ਤੁਹਾਨੂੰ ਇਸ ਲਈ ਭੇਜਿਆ ਗਿਆ ਸੀ ਕਿਉਂਕਿ <b> {{owner}} </ b> ਤੁਹਾਨੂੰ <b> {{team} at </b> {{project}} ' .
</p>
<p>
<b> {{team}} </ b> ਟੀਮ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਣ ਲਈ ਇਸ ਲਿੰਕ ਦਾ ਪਾਲਣ ਕਰੋ:
</p>
{{cta}}
<p>
ਜੇ ਤੁਸੀਂ ਦਿਲਚਸਪੀ ਨਹੀਂ ਰੱਖਦੇ, ਤਾਂ ਤੁਸੀਂ ਇਸ ਸੰਦੇਸ਼ ਨੂੰ ਨਜ਼ਰ ਅੰਦਾਜ਼ ਕਰ ਸਕਦੇ ਹੋ.
</p>
<p>
ਧੰਨਵਾਦ,
<br />
{{project}} ਟੀਮ
</p>

View file

@ -1,15 +0,0 @@
<p>
ਸਤ ਸ੍ਰੀ ਅਕਾਲ {{name}},
</p>
<p>
ਆਪਣੇ {{project}} ਪਾਸਵਰਡ ਨੂੰ ਰੀਸੈਟ ਕਰਨ ਲਈ ਇਸ ਲਿੰਕ ਦਾ ਪਾਲਣ ਕਰੋ.
</p>
{{cta}}
<p>
ਜੇ ਤੁਸੀਂ ਆਪਣਾ ਪਾਸਵਰਡ ਰੀਸੈਟ ਕਰਨ ਲਈ ਨਹੀਂ ਕਿਹਾ, ਤਾਂ ਤੁਸੀਂ ਇਸ ਸੁਨੇਹੇ ਨੂੰ ਨਜ਼ਰ ਅੰਦਾਜ਼ ਕਰ ਸਕਦੇ ਹੋ.
</p>
<p>
ਧੰਨਵਾਦ,
<br />
{{project}} ਟੀਮ
</p>

View file

@ -191,7 +191,6 @@ Locale::setLanguage('nl', include __DIR__.'/config/locales/nl.php');
Locale::setLanguage('no', include __DIR__.'/config/locales/no.php');
Locale::setLanguage('ph', include __DIR__.'/config/locales/ph.php');
Locale::setLanguage('pl', include __DIR__.'/config/locales/pl.php');
Locale::setLanguage('pn', include __DIR__.'/config/locales/pn.php');
Locale::setLanguage('pt-br', include __DIR__.'/config/locales/pt-br.php');
Locale::setLanguage('pt-pt', include __DIR__.'/config/locales/pt-pt.php');
Locale::setLanguage('ro', include __DIR__.'/config/locales/ro.php');

8
composer.lock generated
View file

@ -1942,12 +1942,12 @@
"source": {
"type": "git",
"url": "https://github.com/myclabs/DeepCopy.git",
"reference": "5796d127b0c4ff505b77455148ea9d5269d99758"
"reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/5796d127b0c4ff505b77455148ea9d5269d99758",
"reference": "5796d127b0c4ff505b77455148ea9d5269d99758",
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/969b211f9a51aa1f6c01d1d2aef56d3bd91598e5",
"reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5",
"shasum": ""
},
"require": {
@ -1982,7 +1982,7 @@
"object",
"object graph"
],
"time": "2020-06-28T07:02:41+00:00"
"time": "2020-06-29T13:22:24+00:00"
},
{
"name": "phar-io/manifest",

View file

@ -132,7 +132,7 @@ services:
- appwrite-redis:/data:rw
clamav:
image: appwrite/clamav:1.0.9
image: appwrite/clamav:1.0.12
container_name: appwrite_clamav
restart: unless-stopped
networks:

View file

@ -2630,8 +2630,8 @@ var project=router.params["project"]||'None';ga("set","page",window.location.pat
if(target){target=document.getElementById(target);}
button.addEventListener("click",function(){var clone=document.createElement(element.tagName);if(element.name){clone.name=element.name;}
clone.innerHTML=template;clone.className=element.className;view.render(clone);if(target){target.appendChild(clone);}else{button.parentNode.insertBefore(clone,button);}
clone.querySelector("input").focus();Array.prototype.slice.call(clone.querySelectorAll("[data-remove]")).map(function(obj){obj.addEventListener("click",function(){clone.parentNode.removeChild(clone);obj.scrollIntoView({behavior:"smooth"});});});Array.prototype.slice.call(clone.querySelectorAll("[data-up]")).map(function(obj){obj.addEventListener("click",function(){if(clone.previousElementSibling){clone.parentNode.insertBefore(clone,clone.previousElementSibling);obj.scrollIntoView({behavior:"smooth"});}});});Array.prototype.slice.call(clone.querySelectorAll("[data-down]")).map(function(obj){obj.addEventListener("click",function(){if(clone.nextElementSibling){clone.parentNode.insertBefore(clone.nextElementSibling,clone);obj.scrollIntoView({behavior:"smooth"});}});});});element.parentNode.insertBefore(button,element.nextSibling);element.parentNode.removeChild(element);if(first){button.click();}}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-add",repeat:false,controller:function(element,view,container,document){for(var i=0;i<element.children.length;i++){let button=document.createElement("button");let template=element.children[i].cloneNode(true);let as=element.getAttribute('data-ls-as');let counter=0;button.type="button";button.innerText="Add";button.classList.add("reverse");button.classList.add("margin-end-small");button.addEventListener('click',function(){container.addNamespace(as,'new-'+counter++);console.log(container.namespaces,container.get(as),as);container.set(as,null,true,true);let child=template.cloneNode(true);view.render(child);element.appendChild(child);element.style.visibility='visible';let inputs=child.querySelectorAll('input,textarea');for(let index=0;index<inputs.length;++index){if(inputs[index].type!=='hidden'){inputs[index].focus();break;}}});element.after(button);}}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-code",controller:function(element,alerts){let lang=element.dataset["formsCode"]||"json";let div=document.createElement("div");let pre=document.createElement("pre");let code=document.createElement("code");let copy=document.createElement("i");div.appendChild(pre);div.appendChild(copy);pre.appendChild(code);element.parentNode.appendChild(div);div.className="ide";pre.className="line-numbers";code.className="prism language-"+lang;copy.className="icon-docs copy";copy.title="Copy to Clipboard";copy.addEventListener("click",function(){element.disabled=false;element.focus();element.select();document.execCommand("Copy");if(document.selection){document.selection.empty();}else if(window.getSelection){window.getSelection().removeAllRanges();}
element.disabled=true;alerts.add({text:"Copied to clipboard",class:""},3000);});let check=function(){if(!element.value){return;}
clone.querySelector("input").focus();Array.prototype.slice.call(clone.querySelectorAll("[data-remove]")).map(function(obj){obj.addEventListener("click",function(){clone.parentNode.removeChild(clone);obj.scrollIntoView({behavior:"smooth"});});});Array.prototype.slice.call(clone.querySelectorAll("[data-up]")).map(function(obj){obj.addEventListener("click",function(){if(clone.previousElementSibling){clone.parentNode.insertBefore(clone,clone.previousElementSibling);obj.scrollIntoView({behavior:"smooth"});}});});Array.prototype.slice.call(clone.querySelectorAll("[data-down]")).map(function(obj){obj.addEventListener("click",function(){if(clone.nextElementSibling){clone.parentNode.insertBefore(clone.nextElementSibling,clone);obj.scrollIntoView({behavior:"smooth"});}});});});element.parentNode.insertBefore(button,element.nextSibling);element.parentNode.removeChild(element);if(first){button.click();}}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-add",repeat:false,controller:function(element,view,container,document){for(var i=0;i<element.children.length;i++){let button=document.createElement("button");let template=element.children[i].cloneNode(true);let as=element.getAttribute('data-ls-as');let counter=0;button.type="button";button.innerText="Add";button.classList.add("reverse");button.classList.add("margin-end-small");button.addEventListener('click',function(){container.addNamespace(as,'new-'+counter++);console.log(container.namespaces,container.get(as),as);container.set(as,null,true,true);let child=template.cloneNode(true);view.render(child);element.appendChild(child);element.style.visibility='visible';let inputs=child.querySelectorAll('input,textarea');for(let index=0;index<inputs.length;++index){if(inputs[index].type!=='hidden'){inputs[index].focus();break;}}});element.after(button);}}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-code",controller:function(element,alerts){let lang=element.dataset["formsCode"]||"json";let div=document.createElement("div");let pre=document.createElement("pre");let code=document.createElement("code");let copy=document.createElement("i");div.appendChild(pre);div.appendChild(copy);pre.appendChild(code);element.parentNode.appendChild(div);div.className="ide";pre.className="line-numbers";code.className="prism language-"+lang;copy.className="icon-docs copy";copy.textContent="Click Here to Copy";copy.title="Copy to Clipboard";copy.addEventListener("click",function(){window.getSelection().removeAllRanges();let range=document.createRange();range.selectNode(code);window.getSelection().addRange(range);try{document.execCommand("copy");alerts.add({text:"Copied to clipboard",class:""},3000);}catch(err){alerts.add({text:"Failed to copy text ",class:"error"},3000);}
window.getSelection().removeAllRanges();});let check=function(){if(!element.value){return;}
let value=null;try{value=JSON.stringify(JSON.parse(element.value),null,4);}catch(error){value=element.value;}
code.innerHTML=value;Prism.highlightElement(code);div.scrollTop=0;};element.addEventListener("change",check);check();}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-color",controller:function(element){var preview=document.createElement("div");var picker=document.createElement("input");picker.type="color";preview.className="color-preview";preview.appendChild(picker);picker.addEventListener("change",syncA);picker.addEventListener("input",syncA);element.addEventListener("input",update);element.addEventListener("change",update);function update(){if(element.validity.valid){preview.style.background=element.value;syncB();}}
function syncA(){element.value=picker.value;update();}

View file

@ -316,8 +316,8 @@ var project=router.params["project"]||'None';ga("set","page",window.location.pat
if(target){target=document.getElementById(target);}
button.addEventListener("click",function(){var clone=document.createElement(element.tagName);if(element.name){clone.name=element.name;}
clone.innerHTML=template;clone.className=element.className;view.render(clone);if(target){target.appendChild(clone);}else{button.parentNode.insertBefore(clone,button);}
clone.querySelector("input").focus();Array.prototype.slice.call(clone.querySelectorAll("[data-remove]")).map(function(obj){obj.addEventListener("click",function(){clone.parentNode.removeChild(clone);obj.scrollIntoView({behavior:"smooth"});});});Array.prototype.slice.call(clone.querySelectorAll("[data-up]")).map(function(obj){obj.addEventListener("click",function(){if(clone.previousElementSibling){clone.parentNode.insertBefore(clone,clone.previousElementSibling);obj.scrollIntoView({behavior:"smooth"});}});});Array.prototype.slice.call(clone.querySelectorAll("[data-down]")).map(function(obj){obj.addEventListener("click",function(){if(clone.nextElementSibling){clone.parentNode.insertBefore(clone.nextElementSibling,clone);obj.scrollIntoView({behavior:"smooth"});}});});});element.parentNode.insertBefore(button,element.nextSibling);element.parentNode.removeChild(element);if(first){button.click();}}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-add",repeat:false,controller:function(element,view,container,document){for(var i=0;i<element.children.length;i++){let button=document.createElement("button");let template=element.children[i].cloneNode(true);let as=element.getAttribute('data-ls-as');let counter=0;button.type="button";button.innerText="Add";button.classList.add("reverse");button.classList.add("margin-end-small");button.addEventListener('click',function(){container.addNamespace(as,'new-'+counter++);console.log(container.namespaces,container.get(as),as);container.set(as,null,true,true);let child=template.cloneNode(true);view.render(child);element.appendChild(child);element.style.visibility='visible';let inputs=child.querySelectorAll('input,textarea');for(let index=0;index<inputs.length;++index){if(inputs[index].type!=='hidden'){inputs[index].focus();break;}}});element.after(button);}}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-code",controller:function(element,alerts){let lang=element.dataset["formsCode"]||"json";let div=document.createElement("div");let pre=document.createElement("pre");let code=document.createElement("code");let copy=document.createElement("i");div.appendChild(pre);div.appendChild(copy);pre.appendChild(code);element.parentNode.appendChild(div);div.className="ide";pre.className="line-numbers";code.className="prism language-"+lang;copy.className="icon-docs copy";copy.title="Copy to Clipboard";copy.addEventListener("click",function(){element.disabled=false;element.focus();element.select();document.execCommand("Copy");if(document.selection){document.selection.empty();}else if(window.getSelection){window.getSelection().removeAllRanges();}
element.disabled=true;alerts.add({text:"Copied to clipboard",class:""},3000);});let check=function(){if(!element.value){return;}
clone.querySelector("input").focus();Array.prototype.slice.call(clone.querySelectorAll("[data-remove]")).map(function(obj){obj.addEventListener("click",function(){clone.parentNode.removeChild(clone);obj.scrollIntoView({behavior:"smooth"});});});Array.prototype.slice.call(clone.querySelectorAll("[data-up]")).map(function(obj){obj.addEventListener("click",function(){if(clone.previousElementSibling){clone.parentNode.insertBefore(clone,clone.previousElementSibling);obj.scrollIntoView({behavior:"smooth"});}});});Array.prototype.slice.call(clone.querySelectorAll("[data-down]")).map(function(obj){obj.addEventListener("click",function(){if(clone.nextElementSibling){clone.parentNode.insertBefore(clone.nextElementSibling,clone);obj.scrollIntoView({behavior:"smooth"});}});});});element.parentNode.insertBefore(button,element.nextSibling);element.parentNode.removeChild(element);if(first){button.click();}}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-add",repeat:false,controller:function(element,view,container,document){for(var i=0;i<element.children.length;i++){let button=document.createElement("button");let template=element.children[i].cloneNode(true);let as=element.getAttribute('data-ls-as');let counter=0;button.type="button";button.innerText="Add";button.classList.add("reverse");button.classList.add("margin-end-small");button.addEventListener('click',function(){container.addNamespace(as,'new-'+counter++);console.log(container.namespaces,container.get(as),as);container.set(as,null,true,true);let child=template.cloneNode(true);view.render(child);element.appendChild(child);element.style.visibility='visible';let inputs=child.querySelectorAll('input,textarea');for(let index=0;index<inputs.length;++index){if(inputs[index].type!=='hidden'){inputs[index].focus();break;}}});element.after(button);}}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-code",controller:function(element,alerts){let lang=element.dataset["formsCode"]||"json";let div=document.createElement("div");let pre=document.createElement("pre");let code=document.createElement("code");let copy=document.createElement("i");div.appendChild(pre);div.appendChild(copy);pre.appendChild(code);element.parentNode.appendChild(div);div.className="ide";pre.className="line-numbers";code.className="prism language-"+lang;copy.className="icon-docs copy";copy.textContent="Click Here to Copy";copy.title="Copy to Clipboard";copy.addEventListener("click",function(){window.getSelection().removeAllRanges();let range=document.createRange();range.selectNode(code);window.getSelection().addRange(range);try{document.execCommand("copy");alerts.add({text:"Copied to clipboard",class:""},3000);}catch(err){alerts.add({text:"Failed to copy text ",class:"error"},3000);}
window.getSelection().removeAllRanges();});let check=function(){if(!element.value){return;}
let value=null;try{value=JSON.stringify(JSON.parse(element.value),null,4);}catch(error){value=element.value;}
code.innerHTML=value;Prism.highlightElement(code);div.scrollTop=0;};element.addEventListener("change",check);check();}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-color",controller:function(element){var preview=document.createElement("div");var picker=document.createElement("input");picker.type="color";preview.className="color-preview";preview.appendChild(picker);picker.addEventListener("change",syncA);picker.addEventListener("input",syncA);element.addEventListener("input",update);element.addEventListener("change",update);function update(){if(element.validity.valid){preview.style.background=element.value;syncB();}}
function syncA(){element.value=picker.value;update();}

View file

@ -20,26 +20,26 @@
pre.className = "line-numbers";
code.className = "prism language-" + lang;
copy.className = "icon-docs copy";
copy.textContent = "Click Here to Copy";
copy.title = "Copy to Clipboard";
copy.addEventListener("click", function() {
element.disabled = false;
window.getSelection().removeAllRanges();
element.focus();
element.select();
let range = document.createRange();
document.execCommand("Copy");
range.selectNode(code);
if (document.selection) {
document.selection.empty();
} else if (window.getSelection) {
window.getSelection().removeAllRanges();
window.getSelection().addRange(range);
try {
document.execCommand("copy");
alerts.add({ text: "Copied to clipboard", class: "" }, 3000);
} catch (err) {
alerts.add({ text: "Failed to copy text ", class: "error" }, 3000);
}
element.disabled = true;
alerts.add({ text: "Copied to clipboard", class: "" }, 3000);
window.getSelection().removeAllRanges();
});
let check = function() {

View file

@ -227,7 +227,7 @@ trait LocaleBase
'x-appwrite-project' => $this->getProject()['$id'],
'x-appwrite-locale' => $lang,
]);
foreach ($response['body'] as $i => $code) {
$this->assertArrayHasKey($i, $defaultCountries, $i . ' country should be removed from ' . $lang);
}