Merge branch 'feat-database-indexing' of https://github.com/appwrite/appwrite into feat-db-refactor-ui-fixes
This commit is contained in:
commit
0fc1812604
1
.github/ISSUE_TEMPLATE/bug.yaml
vendored
1
.github/ISSUE_TEMPLATE/bug.yaml
vendored
|
@ -37,6 +37,7 @@ body:
|
|||
label: "🎲 Appwrite version"
|
||||
description: "What version of Appwrite are you running?"
|
||||
options:
|
||||
- Version 0.11.x
|
||||
- Version 0.10.x
|
||||
- Version 0.9.x
|
||||
- Version 0.8.x
|
||||
|
|
|
@ -102,7 +102,6 @@ Getting started with Appwrite is as easy as creating a new project, choosing you
|
|||
* [Getting Started for Android](https://appwrite.io/docs/getting-started-for-android)
|
||||
* [Getting Started for Server](https://appwrite.io/docs/getting-started-for-server)
|
||||
* [Getting Started for CLI](https://appwrite.io/docs/command-line)
|
||||
* Getting Started for iOS (Coming soon...)
|
||||
|
||||
### Services
|
||||
|
||||
|
@ -139,8 +138,9 @@ Below is a list of currently supported platforms and languages. If you wish to h
|
|||
* ✅ [.NET](https://github.com/appwrite/sdk-for-dotnet) - **Experimental** (Maintained by the Appwrite Team)
|
||||
|
||||
#### Community
|
||||
* ✅ [Appcelerator Titanium](https://github.com/m1ga/ti.appwrite) (Maintained by [Michael Gangolf](https://github.com/m1ga/))
|
||||
|
||||
* ✅ [Appcelerator Titanium](https://github.com/m1ga/ti.appwrite) (Maintained by [Michael Gangolf](https://github.com/m1ga/))
|
||||
* ✅ [Godot Engine](https://github.com/GodotNuts/appwrite-sdk) (Maintained by [fenix-hub @GodotNuts](https://github.com/fenix-hub))
|
||||
|
||||
Looking for more SDKs? - Help us by contributing a pull request to our [SDK Generator](https://github.com/appwrite/sdk-generator)!
|
||||
|
||||
## Contributing
|
||||
|
|
|
@ -1,24 +1,24 @@
|
|||
{
|
||||
"settings.inspire": "\"هنر خردمند بودن، هنر دانستن چیزی است که باید از آن غافل شد.\"",
|
||||
"settings.inspire": "\"هنر خردمند بودن این است که بدانید چه چیزی را نادیده بگیرید.\"",
|
||||
"settings.locale": "fa",
|
||||
"settings.direction": "rtl",
|
||||
"emails.sender": "تیم %s",
|
||||
"emails.verification.subject": "تأیید حساب",
|
||||
"emails.verification.hello": "سلام {{name}}",
|
||||
"emails.verification.body": "برای تأیید حسابتان پیوند زیر را دنبال کنید.",
|
||||
"emails.verification.footer": "اگر شما درخواست تأیید حساب ندادهاید، میتوانید این ایمیل را نادیده بگیرید.",
|
||||
"emails.verification.body": "برای تأیید ایمیلتان پیوند زیر را دنبال کنید.",
|
||||
"emails.verification.footer": "اگر شما درخواست تأیید حساب ندادهاید، میتوانید این پیام را نادیده بگیرید.",
|
||||
"emails.verification.thanks": "سپاس فراوان",
|
||||
"emails.verification.signature": "تیم {{name}}",
|
||||
"emails.magicSession.subject": "ورود به حساب کاربری",
|
||||
"emails.magicSession.hello": "سلام،",
|
||||
"emails.magicSession.body": "برای ورود به حسابتان پیوند زیر را دنبال کنید.",
|
||||
"emails.magicSession.footer": "اگر شما درخواست ورود به حساب کاربری ندادهاید، میتوانید این ایمیل را نادیده بگیرید.",
|
||||
"emails.magicSession.footer": "اگر شما درخواست ورود به حساب کاربری با استفاده از این ایمیل را ندادهاید، میتوانید این پیام را نادیده بگیرید.",
|
||||
"emails.magicSession.thanks": "سپاس فراوان",
|
||||
"emails.magicSession.signature": "تیم {{name}}",
|
||||
"emails.recovery.subject": "بازیابی گذرواژه",
|
||||
"emails.recovery.hello": "سلام {{name}}",
|
||||
"emails.recovery.body": "برای بازیابی گذرواژهتان پیوند زیر را دنبال کنید.",
|
||||
"emails.recovery.footer": "اگر شما درخواست بازیابی گذرواژه ندادهاید، میتوانید این ایمیل را نادیده بگیرید.",
|
||||
"emails.recovery.footer": "اگر شما درخواست بازیابی گذرواژه ندادهاید، میتوانید این پیام را نادیده بگیرید.",
|
||||
"emails.recovery.thanks": "سپاس فراوان",
|
||||
"emails.recovery.signature": "تیم {{name}}",
|
||||
"emails.invitation.subject": "دعوت به تیم %s در %s",
|
||||
|
|
|
@ -28,205 +28,205 @@
|
|||
"emails.invitation.thanks": "Go raibh maith agat",
|
||||
"emails.invitation.signature": "{{project}} foireann",
|
||||
"locale.country.unknown": "Neamhaithnid",
|
||||
"countries.af": "Afghanistan",
|
||||
"countries.ao": "Angola",
|
||||
"countries.al": "Albania",
|
||||
"countries.ad": "Andorra",
|
||||
"countries.ae": "United Arab Emirates",
|
||||
"countries.ar": "Argentina",
|
||||
"countries.am": "Armenia",
|
||||
"countries.ag": "Antigua and Barbuda",
|
||||
"countries.au": "Australia",
|
||||
"countries.at": "Austria",
|
||||
"countries.az": "Azerbaijan",
|
||||
"countries.bi": "Burundi",
|
||||
"countries.be": "Belgium",
|
||||
"countries.bj": "Benin",
|
||||
"countries.bf": "Burkina Faso",
|
||||
"countries.bd": "Bangladesh",
|
||||
"countries.bg": "Bulgaria",
|
||||
"countries.bh": "Bahrain",
|
||||
"countries.bs": "Bahamas",
|
||||
"countries.ba": "Bosnia and Herzegovina",
|
||||
"countries.by": "Belarus",
|
||||
"countries.bz": "Belize",
|
||||
"countries.bo": "Bolivia",
|
||||
"countries.br": "Brazil",
|
||||
"countries.bb": "Barbados",
|
||||
"countries.bn": "Brunei",
|
||||
"countries.bt": "Bhutan",
|
||||
"countries.bw": "Botswana",
|
||||
"countries.cf": "Central African Republic",
|
||||
"countries.ca": "Canada",
|
||||
"countries.ch": "Switzerland",
|
||||
"countries.cl": "Chile",
|
||||
"countries.cn": "China",
|
||||
"countries.ci": "Ivory Coast",
|
||||
"countries.cm": "Cameroon",
|
||||
"countries.cd": "DR Congo",
|
||||
"countries.cg": "Republic of the Congo",
|
||||
"countries.co": "Colombia",
|
||||
"countries.km": "Comoros",
|
||||
"countries.af": "An Afganastáin",
|
||||
"countries.ao": "Angóla",
|
||||
"countries.al": "Albáin",
|
||||
"countries.ad": "Andóra",
|
||||
"countries.ae": "Aontas na nÉimíríochtaí Arabacha",
|
||||
"countries.ar": "Airgintín",
|
||||
"countries.am": "Airméin",
|
||||
"countries.ag": "Antigua agus Barbúda",
|
||||
"countries.au": "Astráil",
|
||||
"countries.at": "Ostair",
|
||||
"countries.az": "Asarbaiseáin",
|
||||
"countries.bi": "An Bhurúin",
|
||||
"countries.be": "An Bheilg",
|
||||
"countries.bj": "Beinin",
|
||||
"countries.bf": "Buircíne Fasó",
|
||||
"countries.bd": "An Bhanglaidéis",
|
||||
"countries.bg": "An Bhulgáir",
|
||||
"countries.bh": "Bairéin",
|
||||
"countries.bs": "Na Bahámaí",
|
||||
"countries.ba": "An Bhoisnia agus an Heirseagaivéin",
|
||||
"countries.by": "An Bhealarúis",
|
||||
"countries.bz": "An Bheilís",
|
||||
"countries.bo": "An Bholaiv",
|
||||
"countries.br": "An Bhrasaíl",
|
||||
"countries.bb": "Barbadós",
|
||||
"countries.bn": "Brúiné",
|
||||
"countries.bt": "An Bhútáin",
|
||||
"countries.bw": "An Bhotsuáin",
|
||||
"countries.cf": "Poblacht na hAfraice Láir",
|
||||
"countries.ca": "Ceanada",
|
||||
"countries.ch": "An Eilvéis",
|
||||
"countries.cl": "An tSile",
|
||||
"countries.cn": "An tSín",
|
||||
"countries.ci": "Poblacht Côte d’Ivoire",
|
||||
"countries.cm": "Camarún",
|
||||
"countries.cd": "Poblacht Dhaonlathach an Chongó",
|
||||
"countries.cg": "Poblacht an Chongó",
|
||||
"countries.co": "An Cholóim",
|
||||
"countries.km": "Oileáin Chomóra",
|
||||
"countries.cv": "Cape Verde",
|
||||
"countries.cr": "Costa Rica",
|
||||
"countries.cu": "Cuba",
|
||||
"countries.cy": "Cyprus",
|
||||
"countries.cz": "Czechia",
|
||||
"countries.de": "Germany",
|
||||
"countries.cr": "Cósta Ríce",
|
||||
"countries.cu": "Cúba",
|
||||
"countries.cy": "An Chipir",
|
||||
"countries.cz": "An tSeicia",
|
||||
"countries.de": "An Ghearmáin",
|
||||
"countries.dj": "Djibouti",
|
||||
"countries.dm": "Dominica",
|
||||
"countries.dk": "Denmark",
|
||||
"countries.do": "Dominican Republic",
|
||||
"countries.dz": "Algeria",
|
||||
"countries.ec": "Ecuador",
|
||||
"countries.eg": "Egypt",
|
||||
"countries.er": "Eritrea",
|
||||
"countries.es": "Spain",
|
||||
"countries.ee": "Estonia",
|
||||
"countries.et": "Ethiopia",
|
||||
"countries.fi": "Finland",
|
||||
"countries.fj": "Fiji",
|
||||
"countries.fr": "France",
|
||||
"countries.fm": "Micronesia",
|
||||
"countries.ga": "Gabon",
|
||||
"countries.gb": "United Kingdom",
|
||||
"countries.ge": "Georgia",
|
||||
"countries.gh": "Ghana",
|
||||
"countries.gn": "Guinea",
|
||||
"countries.gm": "Gambia",
|
||||
"countries.gw": "Guinea-Bissau",
|
||||
"countries.gq": "Equatorial Guinea",
|
||||
"countries.gr": "Greece",
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croatia",
|
||||
"countries.ht": "Haiti",
|
||||
"countries.hu": "Hungary",
|
||||
"countries.id": "Indonesia",
|
||||
"countries.dm": "Doiminice",
|
||||
"countries.dk": "An Danmhairg",
|
||||
"countries.do": "An Phoblacht Dhoiminiceach",
|
||||
"countries.dz": "An Ailgéir",
|
||||
"countries.ec": "Eacuadór",
|
||||
"countries.eg": "An Éigipt",
|
||||
"countries.er": "An Eiritré",
|
||||
"countries.es": "An Spáinn",
|
||||
"countries.ee": "An Eastóin",
|
||||
"countries.et": "An Aetóip",
|
||||
"countries.fi": "An Fhionlainn",
|
||||
"countries.fj": "Fidsí",
|
||||
"countries.fr": "An Fhrainc",
|
||||
"countries.fm": "An Mhicrinéis",
|
||||
"countries.ga": "An Ghabúin",
|
||||
"countries.gb": "An Ríocht Aontaithe",
|
||||
"countries.ge": "An tSeoirsia",
|
||||
"countries.gh": "Gána",
|
||||
"countries.gn": "An Ghuine",
|
||||
"countries.gm": "An Ghaimbia",
|
||||
"countries.gw": "Guine Bissau",
|
||||
"countries.gq": "An Ghuine Mheánchiorclach",
|
||||
"countries.gr": "An Ghréig",
|
||||
"countries.gd": "Greanáda",
|
||||
"countries.gt": "Guatamala",
|
||||
"countries.gy": "An Ghuáin",
|
||||
"countries.hn": "Hondúras",
|
||||
"countries.hr": "An Chróit",
|
||||
"countries.ht": "Háítí",
|
||||
"countries.hu": "An Ungáir",
|
||||
"countries.id": "An Indinéis",
|
||||
"countries.in": "India",
|
||||
"countries.ie": "Ireland",
|
||||
"countries.ir": "Iran",
|
||||
"countries.iq": "Iraq",
|
||||
"countries.is": "Iceland",
|
||||
"countries.il": "Israel",
|
||||
"countries.it": "Italy",
|
||||
"countries.jm": "Jamaica",
|
||||
"countries.jo": "Jordan",
|
||||
"countries.jp": "Japan",
|
||||
"countries.kz": "Kazakhstan",
|
||||
"countries.ke": "Kenya",
|
||||
"countries.kg": "Kyrgyzstan",
|
||||
"countries.kh": "Cambodia",
|
||||
"countries.ki": "Kiribati",
|
||||
"countries.kn": "Saint Kitts and Nevis",
|
||||
"countries.kr": "South Korea",
|
||||
"countries.kw": "Kuwait",
|
||||
"countries.ie": "Éire",
|
||||
"countries.ir": "An Iaráin",
|
||||
"countries.iq": "An Iaráic",
|
||||
"countries.is": "An Íoslainn",
|
||||
"countries.il": "Iosrael",
|
||||
"countries.it": "An Iodáil",
|
||||
"countries.jm": "Iamáice",
|
||||
"countries.jo": "An Iordáin",
|
||||
"countries.jp": "An tSeapáin",
|
||||
"countries.kz": "An Chasacstáin",
|
||||
"countries.ke": "An Chéinia",
|
||||
"countries.kg": "An Chirgeastáin",
|
||||
"countries.kh": "An Chambóid",
|
||||
"countries.ki": "Ciribeas",
|
||||
"countries.kn": "San Críostóir-Nimheas",
|
||||
"countries.kr": "An Chóiré Theas",
|
||||
"countries.kw": "Cuáit",
|
||||
"countries.la": "Laos",
|
||||
"countries.lb": "Lebanon",
|
||||
"countries.lr": "Liberia",
|
||||
"countries.ly": "Libya",
|
||||
"countries.lb": "An Liobáin",
|
||||
"countries.lr": "An Libéir",
|
||||
"countries.ly": "An Libia",
|
||||
"countries.lc": "Saint Lucia",
|
||||
"countries.li": "Liechtenstein",
|
||||
"countries.lk": "Sri Lanka",
|
||||
"countries.ls": "Lesotho",
|
||||
"countries.lt": "Lithuania",
|
||||
"countries.lu": "Luxembourg",
|
||||
"countries.lv": "Latvia",
|
||||
"countries.ma": "Morocco",
|
||||
"countries.mc": "Monaco",
|
||||
"countries.md": "Moldova",
|
||||
"countries.li": "Lichtinstéin",
|
||||
"countries.lk": "Srí Lanca",
|
||||
"countries.ls": "Leosóta",
|
||||
"countries.lt": "An Liotuáin",
|
||||
"countries.lu": "Lucsamburg",
|
||||
"countries.lv": "An Laitvia",
|
||||
"countries.ma": "Maracó",
|
||||
"countries.mc": "Monacó",
|
||||
"countries.md": "An Mholdóiv",
|
||||
"countries.mg": "Madagascar",
|
||||
"countries.mv": "Maldives",
|
||||
"countries.mx": "Mexico",
|
||||
"countries.mh": "Marshall Islands",
|
||||
"countries.mk": "Macedonia",
|
||||
"countries.ml": "Mali",
|
||||
"countries.mt": "Malta",
|
||||
"countries.mm": "Myanmar",
|
||||
"countries.me": "Montenegro",
|
||||
"countries.mn": "Mongolia",
|
||||
"countries.mz": "Mozambique",
|
||||
"countries.mr": "Mauritania",
|
||||
"countries.mu": "Mauritius",
|
||||
"countries.mw": "Malawi",
|
||||
"countries.my": "Malaysia",
|
||||
"countries.na": "Namibia",
|
||||
"countries.mv": "Oileáin Mhaildíve",
|
||||
"countries.mx": "Meicsiceo",
|
||||
"countries.mh": "Oileáin Marshall",
|
||||
"countries.mk": "An Mhacadóin",
|
||||
"countries.ml": "Mailí",
|
||||
"countries.mt": "Málta",
|
||||
"countries.mm": "Maenmar",
|
||||
"countries.me": "Montainéagró",
|
||||
"countries.mn": "An Mhongóil",
|
||||
"countries.mz": "Mósaimbíc",
|
||||
"countries.mr": "An Mháratáin",
|
||||
"countries.mu": "Oileán Mhuirís",
|
||||
"countries.mw": "Malávach",
|
||||
"countries.my": "An Mhalaeisia",
|
||||
"countries.na": "An Namaib",
|
||||
"countries.ne": "Niger",
|
||||
"countries.ng": "Nigeria",
|
||||
"countries.ni": "Nicaragua",
|
||||
"countries.nl": "Netherlands",
|
||||
"countries.no": "Norway",
|
||||
"countries.np": "Nepal",
|
||||
"countries.nr": "Nauru",
|
||||
"countries.nz": "New Zealand",
|
||||
"countries.om": "Oman",
|
||||
"countries.pk": "Pakistan",
|
||||
"countries.ng": "An Nigéir",
|
||||
"countries.ni": "Nicearagua",
|
||||
"countries.nl": "An Ísiltír",
|
||||
"countries.no": "An Iorua",
|
||||
"countries.np": "Neipeal",
|
||||
"countries.nr": "Nárú",
|
||||
"countries.nz": "An Nua-Shéalainn",
|
||||
"countries.om": "Óman",
|
||||
"countries.pk": "An Phacastáin",
|
||||
"countries.pa": "Panama",
|
||||
"countries.pe": "Peru",
|
||||
"countries.ph": "Philippines",
|
||||
"countries.pw": "Palau",
|
||||
"countries.pg": "Papua New Guinea",
|
||||
"countries.pl": "Poland",
|
||||
"countries.kp": "North Korea",
|
||||
"countries.pt": "Portugal",
|
||||
"countries.py": "Paraguay",
|
||||
"countries.qa": "Qatar",
|
||||
"countries.ro": "Romania",
|
||||
"countries.ru": "Russia",
|
||||
"countries.rw": "Rwanda",
|
||||
"countries.sa": "Saudi Arabia",
|
||||
"countries.sd": "Sudan",
|
||||
"countries.sn": "Senegal",
|
||||
"countries.sg": "Singapore",
|
||||
"countries.sb": "Solomon Islands",
|
||||
"countries.sl": "Sierra Leone",
|
||||
"countries.sv": "El Salvador",
|
||||
"countries.sm": "San Marino",
|
||||
"countries.so": "Somalia",
|
||||
"countries.rs": "Serbia",
|
||||
"countries.ss": "South Sudan",
|
||||
"countries.st": "São Tomé and Príncipe",
|
||||
"countries.sr": "Suriname",
|
||||
"countries.sk": "Slovakia",
|
||||
"countries.si": "Slovenia",
|
||||
"countries.se": "Sweden",
|
||||
"countries.sz": "Swaziland",
|
||||
"countries.sc": "Seychelles",
|
||||
"countries.sy": "Syria",
|
||||
"countries.td": "Chad",
|
||||
"countries.tg": "Togo",
|
||||
"countries.th": "Thailand",
|
||||
"countries.tj": "Tajikistan",
|
||||
"countries.tm": "Turkmenistan",
|
||||
"countries.tl": "Timor-Leste",
|
||||
"countries.pe": "Peiriú",
|
||||
"countries.ph": "Na hOileáin Fhilipíneacha",
|
||||
"countries.pw": "Oileáin Palau",
|
||||
"countries.pg": "Nua-Ghuine Phapua",
|
||||
"countries.pl": "An Pholainn",
|
||||
"countries.kp": "An Chóiré Thuaidh",
|
||||
"countries.pt": "An Phortaingéil",
|
||||
"countries.py": "Paragua",
|
||||
"countries.qa": "Catar",
|
||||
"countries.ro": "An Rómáin",
|
||||
"countries.ru": "An Rúis",
|
||||
"countries.rw": "Ruanda",
|
||||
"countries.sa": "An Araib Shádach",
|
||||
"countries.sd": "An tSúdáin",
|
||||
"countries.sn": "An tSeineagáil",
|
||||
"countries.sg": "Singeapór",
|
||||
"countries.sb": "Oileáin Sholaimh",
|
||||
"countries.sl": "Siarra Leon",
|
||||
"countries.sv": "An tSalvadóir",
|
||||
"countries.sm": "San Mairíne",
|
||||
"countries.so": "An tSomáil",
|
||||
"countries.rs": "An tSeirbia",
|
||||
"countries.ss": "An tSúdáin Theas",
|
||||
"countries.st": "São Tomé agus Príncipe",
|
||||
"countries.sr": "Suranam",
|
||||
"countries.sk": "An tSlóvaic",
|
||||
"countries.si": "An tSlóivéin",
|
||||
"countries.se": "An tSualainn",
|
||||
"countries.sz": "An tSuasalainn",
|
||||
"countries.sc": "Na Séiséil",
|
||||
"countries.sy": "An tSiria",
|
||||
"countries.td": "Sead",
|
||||
"countries.tg": "Tóga",
|
||||
"countries.th": "An Téalainn",
|
||||
"countries.tj": "An Táidsíceastáin",
|
||||
"countries.tm": "An Tuircméanastáin",
|
||||
"countries.tl": "Tíomór Thoir",
|
||||
"countries.to": "Tonga",
|
||||
"countries.tt": "Trinidad and Tobago",
|
||||
"countries.tn": "Tunisia",
|
||||
"countries.tr": "Turkey",
|
||||
"countries.tv": "Tuvalu",
|
||||
"countries.tz": "Tanzania",
|
||||
"countries.tt": "Oileán na Tríonóide agus Tobága",
|
||||
"countries.tn": "An Túinéis",
|
||||
"countries.tr": "An Tuirc",
|
||||
"countries.tv": "Túvalú",
|
||||
"countries.tz": "An Tansáin",
|
||||
"countries.ug": "Uganda",
|
||||
"countries.ua": "Ukraine",
|
||||
"countries.uy": "Uruguay",
|
||||
"countries.us": "United States",
|
||||
"countries.uz": "Uzbekistan",
|
||||
"countries.va": "Vatican City",
|
||||
"countries.vc": "Saint Vincent and the Grenadines",
|
||||
"countries.ve": "Venezuela",
|
||||
"countries.vn": "Vietnam",
|
||||
"countries.vu": "Vanuatu",
|
||||
"countries.ws": "Samoa",
|
||||
"countries.ye": "Yemen",
|
||||
"countries.za": "South Africa",
|
||||
"countries.zm": "Zambia",
|
||||
"countries.zw": "Zimbabwe",
|
||||
"continents.af": "Africa",
|
||||
"continents.an": "Antarctica",
|
||||
"continents.as": "Asia",
|
||||
"continents.eu": "Europe",
|
||||
"continents.na": "North America",
|
||||
"continents.oc": "Oceania",
|
||||
"continents.sa": "South America"
|
||||
"countries.ua": "An Úcráin",
|
||||
"countries.uy": "Uragua",
|
||||
"countries.us": "Na Stáit Aontaithe",
|
||||
"countries.uz": "An Úisbéiceastáin",
|
||||
"countries.va": "Cathair na Vatacáine",
|
||||
"countries.vc": "San Uinseann agus na Greanáidíní",
|
||||
"countries.ve": "Veiniséala",
|
||||
"countries.vn": "Vítneam",
|
||||
"countries.vu": "Vanuatú",
|
||||
"countries.ws": "Samó",
|
||||
"countries.ye": "Éimin",
|
||||
"countries.za": "An Afraic Theas",
|
||||
"countries.zm": "An tSaimbia",
|
||||
"countries.zw": "An tSiombáib",
|
||||
"continents.af": "An Afraic",
|
||||
"continents.an": "Antartaice",
|
||||
"continents.as": "An Áise",
|
||||
"continents.eu": "An Eoraip",
|
||||
"continents.na": "Meiriceá Thuaidh",
|
||||
"continents.oc": "An Aigéine",
|
||||
"continents.sa": "Meiriceá Theas"
|
||||
}
|
||||
|
|
|
@ -3,30 +3,30 @@
|
|||
"settings.locale": "jv",
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "Tim %s",
|
||||
"emails.verification.subject": "",
|
||||
"emails.verification.hello": "",
|
||||
"emails.verification.body": "",
|
||||
"emails.verification.footer": "",
|
||||
"emails.verification.thanks": "",
|
||||
"emails.verification.signature": "",
|
||||
"emails.magicSession.subject": "",
|
||||
"emails.magicSession.hello": "",
|
||||
"emails.magicSession.body": "",
|
||||
"emails.magicSession.footer": "",
|
||||
"emails.magicSession.thanks": "",
|
||||
"emails.magicSession.signature": "",
|
||||
"emails.recovery.subject": "",
|
||||
"emails.recovery.hello": "",
|
||||
"emails.recovery.body": "",
|
||||
"emails.recovery.footer": "",
|
||||
"emails.recovery.thanks": "",
|
||||
"emails.recovery.signature": "",
|
||||
"emails.invitation.subject": "",
|
||||
"emails.invitation.hello": "",
|
||||
"emails.invitation.body": "",
|
||||
"emails.invitation.footer": "",
|
||||
"emails.invitation.thanks": "",
|
||||
"emails.invitation.signature": "",
|
||||
"emails.verification.subject": "Verifikasi Akun",
|
||||
"emails.verification.hello": "Hai {{name}}",
|
||||
"emails.verification.body": "Klik link iki kanggo verifikasi alamat email sampeyan.",
|
||||
"emails.verification.footer": "Yen sampeyan ora njaluk verifikasi alamat iki, sampeyan iso nglirwakake pesen iki.",
|
||||
"emails.verification.thanks": "Matur nuwun",
|
||||
"emails.verification.signature": "Tim {{project}}",
|
||||
"emails.magicSession.subject": "Masuk",
|
||||
"emails.magicSession.hello": "Hai,",
|
||||
"emails.magicSession.body": "Klik link iki kanggo masuk.",
|
||||
"emails.magicSession.footer": "Yen sampeyan ora njaluk masuk nggunakake alamat email iki, sampeyan iso nglirwakake pesen iki.",
|
||||
"emails.magicSession.thanks": "Matur nuwun",
|
||||
"emails.magicSession.signature": "Tim {{project}}",
|
||||
"emails.recovery.subject": "Setel ulang sandi",
|
||||
"emails.recovery.hello": "Halo {{name}}",
|
||||
"emails.recovery.body": "Klik link iki kanggo setel ulang sandi {{project}}.",
|
||||
"emails.recovery.footer": "Yen sampeyan ora njaluk setel ulang sandi, sampeyan iso nglirwakake pesen iki.",
|
||||
"emails.recovery.thanks": "Matur nuwun",
|
||||
"emails.recovery.signature": "Tim {{project}}",
|
||||
"emails.invitation.subject": "Undangan ke Tim %s di %s",
|
||||
"emails.invitation.hello": "Halo",
|
||||
"emails.invitation.body": "Email iki dikirim menyang sampeyan amarga {{owner}} pengin ngajak sampeyan dadi anggota tim {{team}} di {{project}}.",
|
||||
"emails.invitation.footer": "Yen sampeyan ora tertarik, sampeyan iso nglirwakake pesen iki.",
|
||||
"emails.invitation.thanks": "Matur nuwun",
|
||||
"emails.invitation.signature": "Tim {{project}}",
|
||||
"locale.country.unknown": "Ora dingerteni",
|
||||
"countries.af": "Afghanistan",
|
||||
"countries.ao": "Angola",
|
||||
|
|
|
@ -3,30 +3,30 @@
|
|||
"settings.locale": "mr",
|
||||
"settings.direction": "ltr",
|
||||
"emails.sender": "%s टीम",
|
||||
"emails.verification.subject": "",
|
||||
"emails.verification.hello": "",
|
||||
"emails.verification.body": "",
|
||||
"emails.verification.footer": "",
|
||||
"emails.verification.thanks": "",
|
||||
"emails.verification.signature": "",
|
||||
"emails.magicSession.subject": "",
|
||||
"emails.magicSession.hello": "",
|
||||
"emails.magicSession.body": "",
|
||||
"emails.magicSession.footer": "",
|
||||
"emails.magicSession.thanks": "",
|
||||
"emails.magicSession.signature": "",
|
||||
"emails.recovery.subject": "",
|
||||
"emails.recovery.hello": "",
|
||||
"emails.recovery.body": "",
|
||||
"emails.recovery.footer": "",
|
||||
"emails.recovery.thanks": "",
|
||||
"emails.recovery.signature": "",
|
||||
"emails.invitation.subject": "",
|
||||
"emails.invitation.hello": "",
|
||||
"emails.invitation.body": "",
|
||||
"emails.invitation.footer": "",
|
||||
"emails.invitation.thanks": "",
|
||||
"emails.invitation.signature": "",
|
||||
"emails.verification.subject": "खाते सत्यापन",
|
||||
"emails.verification.hello": "नमस्कार {{name}}",
|
||||
"emails.verification.body": "आपला ईमेल पत्ता सत्यापित करण्यासाठी या दुव्याचे अनुसरण करा.",
|
||||
"emails.verification.footer": "आपण या पत्त्याची पडताळणी करण्यास सांगितले नसल्यास, आपण या संदेशाकडे दुर्लक्ष करू शकता.",
|
||||
"emails.verification.thanks": "धन्यवाद",
|
||||
"emails.verification.signature": "{{project}} संघ",
|
||||
"emails.magicSession.subject": "लॉगिन करा",
|
||||
"emails.magicSession.hello": "नमस्कार ,",
|
||||
"emails.magicSession.body": "लॉगिन करण्यासाठी या लिंकचे अनुसरण करा.",
|
||||
"emails.magicSession.footer": "आपण या ईमेलचा वापर करून लॉगिन करण्यास सांगितले नसल्यास, आपण या संदेशाकडे दुर्लक्ष करू शकता.",
|
||||
"emails.magicSession.thanks": "धन्यवाद",
|
||||
"emails.magicSession.signature": "{{project}} संघ",
|
||||
"emails.recovery.subject": "पासवर्ड रीसेट",
|
||||
"emails.recovery.hello": "नमस्कार {{name}}",
|
||||
"emails.recovery.body": "आपला {{project}}चे पासवर्ड रीसेट करण्यासाठी या लिंकचे अनुसरण करा",
|
||||
"emails.recovery.footer": "आपण आपला पासवर्ड रीसेट करण्यास सांगितले नसल्यास, आपण या संदेशाकडे दुर्लक्ष करू शकता.",
|
||||
"emails.recovery.thanks": "धन्यवाद",
|
||||
"emails.recovery.signature": "{{project}} संघ",
|
||||
"emails.invitation.subject": "%s संघ %s येथे सामील होण्यासाठी आमंत्रण",
|
||||
"emails.invitation.hello": "नमस्कार",
|
||||
"emails.invitation.body": "हा मेल तुम्हाला पाठवला होता कारण {{owner}} तुम्हाला {{project}} येथे {{team}} टीमचे सदस्य होण्यासाठी आमंत्रित करू इच्छित होते.",
|
||||
"emails.invitation.footer": "आपल्याला स्वारस्य नसल्यास, आपण या संदेशाकडे दुर्लक्ष करू शकता.",
|
||||
"emails.invitation.thanks": "धन्यवाद",
|
||||
"emails.invitation.signature": "{{project}} संघ",
|
||||
"locale.country.unknown": "अज्ञात",
|
||||
"countries.af": "अफगानिस्तान",
|
||||
"countries.ao": "अंगोला",
|
||||
|
|
|
@ -15,7 +15,7 @@ return [
|
|||
[
|
||||
'key' => 'web',
|
||||
'name' => 'Web',
|
||||
'version' => '4.0.4',
|
||||
'version' => '5.0.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-web',
|
||||
'package' => 'https://www.npmjs.com/package/appwrite',
|
||||
'enabled' => true,
|
||||
|
@ -190,7 +190,7 @@ return [
|
|||
[
|
||||
'key' => 'nodejs',
|
||||
'name' => 'Node.js',
|
||||
'version' => '2.5.1',
|
||||
'version' => '3.0.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-node',
|
||||
'package' => 'https://www.npmjs.com/package/node-appwrite',
|
||||
'enabled' => true,
|
||||
|
@ -208,11 +208,11 @@ return [
|
|||
[
|
||||
'key' => 'deno',
|
||||
'name' => 'Deno',
|
||||
'version' => '0.4.1',
|
||||
'version' => '1.0.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-deno',
|
||||
'package' => 'https://deno.land/x/appwrite',
|
||||
'enabled' => true,
|
||||
'beta' => true,
|
||||
'beta' => false,
|
||||
'dev' => false,
|
||||
'hidden' => false,
|
||||
'family' => APP_PLATFORM_SERVER,
|
||||
|
|
|
@ -46,9 +46,20 @@ App::get('/v1/health/db')
|
|||
->action(function ($response, $utopia) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\App $utopia */
|
||||
$utopia->getResource('db');
|
||||
try {
|
||||
$db = $utopia->getResource('db'); /* @var $db PDO */
|
||||
|
||||
$response->json(['status' => 'OK']);
|
||||
// Run a small test to check the connection
|
||||
$statement = $db->prepare("SELECT 1;");
|
||||
|
||||
$statement->closeCursor();
|
||||
|
||||
$statement->execute();
|
||||
} catch (Exception $_e) {
|
||||
throw new Exception('Database is not available', 500);
|
||||
}
|
||||
|
||||
return $response->json(['status' => 'OK']);
|
||||
});
|
||||
|
||||
App::get('/v1/health/cache')
|
||||
|
@ -64,9 +75,14 @@ App::get('/v1/health/cache')
|
|||
->action(function ($response, $utopia) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Utopia\App $utopia */
|
||||
$utopia->getResource('cache');
|
||||
/** @var Redis */
|
||||
$redis = $utopia->getResource('cache');
|
||||
|
||||
$response->json(['status' => 'OK']);
|
||||
if ($redis->ping(true)) {
|
||||
return $response->json(['status' => 'OK']);
|
||||
} else {
|
||||
throw new Exception('Cache is not available', 500);
|
||||
}
|
||||
});
|
||||
|
||||
App::get('/v1/health/time')
|
||||
|
|
|
@ -234,29 +234,74 @@ App::post('/v1/mock/tests/general/upload')
|
|||
->param('z', null, new ArrayList(new Text(256)), 'Sample array param')
|
||||
->param('file', [], new File(), 'Sample file param', false)
|
||||
->inject('request')
|
||||
->action(function ($x, $y, $z, $file, $request) {
|
||||
->inject('response')
|
||||
->action(function ($x, $y, $z, $file, $request, $response) {
|
||||
/** @var Utopia\Swoole\Request $request */
|
||||
/** @var Utopia\Swoole\Response $response */
|
||||
|
||||
$file = $request->getFiles('file');
|
||||
$file['tmp_name'] = (\is_array($file['tmp_name'])) ? $file['tmp_name'] : [$file['tmp_name']];
|
||||
$file['name'] = (\is_array($file['name'])) ? $file['name'] : [$file['name']];
|
||||
$file['size'] = (\is_array($file['size'])) ? $file['size'] : [$file['size']];
|
||||
|
||||
$contentRange = $request->getHeader('content-range');
|
||||
if(!empty($contentRange)) {
|
||||
$start = $request->getContentRangeStart();
|
||||
$end = $request->getContentRangeEnd();
|
||||
$size = $request->getContentRangeSize();
|
||||
$id = $request->getHeader('x-appwrite-id', '');
|
||||
$file['size'] = (\is_array($file['size'])) ? $file['size'] : [$file['size']];
|
||||
|
||||
foreach ($file['name'] as $i => $name) {
|
||||
if ($name !== 'file.png') {
|
||||
throw new Exception('Wrong file name', 400);
|
||||
if(is_null($start) || is_null($end) || is_null($size)) {
|
||||
throw new Exception('Invalid content-range header', 400);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($file['size'] as $i => $size) {
|
||||
if ($size !== 38756) {
|
||||
throw new Exception('Wrong file size', 400);
|
||||
if($start > $end || $end > $size) {
|
||||
throw new Exception('Invalid content-range header', 400);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($file['tmp_name'] as $i => $tmpName) {
|
||||
if (\md5(\file_get_contents($tmpName)) !== 'd80e7e6999a3eb2ae0d631a96fe135a4') {
|
||||
throw new Exception('Wrong file uploaded', 400);
|
||||
if($start === 0 && !empty($id)) {
|
||||
throw new Exception('First chunked request cannot have id header', 400);
|
||||
}
|
||||
|
||||
if($start !== 0 && $id !== 'newfileid') {
|
||||
throw new Exception('All chunked request must have id header (except first)', 400);
|
||||
}
|
||||
|
||||
if($end !== $size && $end-$start+1 !== 5*1024*1024) {
|
||||
throw new Exception('Chunk size must be 5MB (except last chunk)', 400);
|
||||
}
|
||||
|
||||
foreach ($file['size'] as $i => $sz) {
|
||||
if ($end !== $size && $sz !== 5*1024*1024) {
|
||||
throw new Exception('Wrong chunk size', 400);
|
||||
}
|
||||
|
||||
if($sz > 5*1024*1024) {
|
||||
throw new Exception('Chunk size must be 5MB or less', 400);
|
||||
}
|
||||
}
|
||||
if($end !== $size) {
|
||||
$response->json(['$id'=> 'newfileid']);
|
||||
}
|
||||
} else {
|
||||
$file['tmp_name'] = (\is_array($file['tmp_name'])) ? $file['tmp_name'] : [$file['tmp_name']];
|
||||
$file['name'] = (\is_array($file['name'])) ? $file['name'] : [$file['name']];
|
||||
$file['size'] = (\is_array($file['size'])) ? $file['size'] : [$file['size']];
|
||||
|
||||
foreach ($file['name'] as $i => $name) {
|
||||
if ($name !== 'file.png') {
|
||||
throw new Exception('Wrong file name', 400);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($file['size'] as $i => $size) {
|
||||
if ($size !== 38756) {
|
||||
throw new Exception('Wrong file size', 400);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($file['tmp_name'] as $i => $tmpName) {
|
||||
if (\md5(\file_get_contents($tmpName)) !== 'd80e7e6999a3eb2ae0d631a96fe135a4') {
|
||||
throw new Exception('Wrong file uploaded', 400);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
@ -67,7 +67,7 @@
|
|||
},
|
||||
"repositories": [],
|
||||
"require-dev": {
|
||||
"appwrite/sdk-generator": "0.16.0",
|
||||
"appwrite/sdk-generator": "0.16.2",
|
||||
"phpunit/phpunit": "9.5.6",
|
||||
"swoole/ide-helper": "4.6.7",
|
||||
"textalk/websocket": "1.5.2",
|
||||
|
|
14
composer.lock
generated
14
composer.lock
generated
|
@ -4,7 +4,7 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "39575a40b499d30b98e675990889be87",
|
||||
"content-hash": "8427bbf013694d9771cd09341a81562e",
|
||||
"packages": [
|
||||
{
|
||||
"name": "adhocore/jwt",
|
||||
|
@ -3014,16 +3014,16 @@
|
|||
},
|
||||
{
|
||||
"name": "appwrite/sdk-generator",
|
||||
"version": "0.16.0",
|
||||
"version": "0.16.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/appwrite/sdk-generator.git",
|
||||
"reference": "5a57afe89ded393a3eca8d9ba96b8e2c479f2601"
|
||||
"reference": "e3a20c96a745a9c4aa048fd344650fcfbf41cf6f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/5a57afe89ded393a3eca8d9ba96b8e2c479f2601",
|
||||
"reference": "5a57afe89ded393a3eca8d9ba96b8e2c479f2601",
|
||||
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/e3a20c96a745a9c4aa048fd344650fcfbf41cf6f",
|
||||
"reference": "e3a20c96a745a9c4aa048fd344650fcfbf41cf6f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -3057,9 +3057,9 @@
|
|||
"description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms",
|
||||
"support": {
|
||||
"issues": "https://github.com/appwrite/sdk-generator/issues",
|
||||
"source": "https://github.com/appwrite/sdk-generator/tree/0.16.0"
|
||||
"source": "https://github.com/appwrite/sdk-generator/tree/0.16.2"
|
||||
},
|
||||
"time": "2021-10-21T06:49:55+00:00"
|
||||
"time": "2021-11-12T11:09:38+00:00"
|
||||
},
|
||||
{
|
||||
"name": "composer/semver",
|
||||
|
|
|
@ -12,7 +12,6 @@ client
|
|||
.setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
|
||||
.setSelfSigned() // Use only on dev mode with a self-signed SSL cert
|
||||
;
|
||||
|
||||
```
|
||||
|
||||
### Make your first request
|
||||
|
@ -22,13 +21,8 @@ Once your SDK object is set, create any of the Appwrite service objects and choo
|
|||
```typescript
|
||||
let users = new sdk.Users(client);
|
||||
|
||||
let promise = users.create('email@example.com', 'password');
|
||||
|
||||
promise.then(function (response) {
|
||||
console.log(response);
|
||||
}, function (error) {
|
||||
console.log(error);
|
||||
});
|
||||
let response = await users.create('email@example.com', 'password');
|
||||
console.log(response);
|
||||
```
|
||||
|
||||
### Full Example
|
||||
|
@ -45,13 +39,8 @@ client
|
|||
.setSelfSigned() // Use only on dev mode with a self-signed SSL cert
|
||||
;
|
||||
|
||||
let promise = users.create('email@example.com', 'password');
|
||||
|
||||
promise.then(function (response) {
|
||||
console.log(response);
|
||||
}, function (error) {
|
||||
console.log(error);
|
||||
});
|
||||
let response = await users.create('email@example.com', 'password');
|
||||
console.log(response);
|
||||
```
|
||||
|
||||
### Error Handling
|
||||
|
@ -61,7 +50,7 @@ The Appwrite Deno SDK raises `AppwriteException` object with `message`, `code` a
|
|||
let users = new sdk.Users(client);
|
||||
|
||||
try {
|
||||
let res = await users.create('email@example.com', 'password');
|
||||
let response = await users.create('email@example.com', 'password');
|
||||
} catch(e) {
|
||||
console.log(e.message);
|
||||
}
|
||||
|
|
|
@ -58,14 +58,16 @@ For **Windows** add your app <u>name</u> and <u>package name</u>, Your package n
|
|||
|
||||
```dart
|
||||
import 'package:appwrite/appwrite.dart';
|
||||
Client client = Client();
|
||||
|
||||
void main() {
|
||||
Client client = Client();
|
||||
|
||||
client
|
||||
.setEndpoint('https://localhost/v1') // Your Appwrite Endpoint
|
||||
.setProject('5e8cf4f46b5e8') // Your project ID
|
||||
.setSelfSigned() // Use only on dev mode with a self-signed SSL cert
|
||||
;
|
||||
client
|
||||
.setEndpoint('https://localhost/v1') // Your Appwrite Endpoint
|
||||
.setProject('5e8cf4f46b5e8') // Your project ID
|
||||
.setSelfSigned() // Use only on dev mode with a self-signed SSL cert
|
||||
;
|
||||
}
|
||||
```
|
||||
|
||||
Before starting to send any API calls to your new Appwrite instance, make sure your Android or iOS emulators has network access to the Appwrite server hostname or IP address.
|
||||
|
@ -91,25 +93,28 @@ Response user = await account
|
|||
|
||||
```dart
|
||||
import 'package:appwrite/appwrite.dart';
|
||||
Client client = Client();
|
||||
|
||||
void main() {
|
||||
Client client = Client();
|
||||
|
||||
|
||||
client
|
||||
.setEndpoint('https://localhost/v1') // Your Appwrite Endpoint
|
||||
.setProject('5e8cf4f46b5e8') // Your project ID
|
||||
.setSelfSigned() // Use only on dev mode with a self-signed SSL cert
|
||||
;
|
||||
client
|
||||
.setEndpoint('https://localhost/v1') // Your Appwrite Endpoint
|
||||
.setProject('5e8cf4f46b5e8') // Your project ID
|
||||
.setSelfSigned() // Use only on dev mode with a self-signed SSL cert
|
||||
;
|
||||
|
||||
|
||||
// Register User
|
||||
Account account = Account(client);
|
||||
// Register User
|
||||
Account account = Account(client);
|
||||
|
||||
Response user = await account
|
||||
.create(
|
||||
email: 'me@appwrite.io',
|
||||
password: 'password',
|
||||
name: 'My Name'
|
||||
);
|
||||
Response user = await account
|
||||
.create(
|
||||
email: 'me@appwrite.io',
|
||||
password: 'password',
|
||||
name: 'My Name'
|
||||
);
|
||||
}
|
||||
```
|
||||
|
||||
### Error Handling
|
||||
|
|
2477
public/dist/scripts/app-all.js
vendored
2477
public/dist/scripts/app-all.js
vendored
File diff suppressed because it is too large
Load diff
2475
public/dist/scripts/app-dep.js
vendored
2475
public/dist/scripts/app-dep.js
vendored
File diff suppressed because it is too large
Load diff
2
public/dist/scripts/app.js
vendored
2
public/dist/scripts/app.js
vendored
|
@ -376,7 +376,7 @@ clone.innerHTML=template;clone.className=element.className;var input=clone.query
|
|||
if(target){target.appendChild(clone);}else{button.parentNode.insertBefore(clone,button);}
|
||||
if(input){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);button.form.addEventListener('reset',function(event){target.innerHTML='';if(first){button.click();}});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-chart",controller:function(element,container,date,document){let wrapper=document.createElement("div");let child=document.createElement("canvas");let sources=element.getAttribute('data-forms-chart');let width=element.getAttribute('data-width')||500;let height=element.getAttribute('data-height')||175;let showXAxis=element.getAttribute('data-show-x-axis')||false;let showYAxis=element.getAttribute('data-show-y-axis')||false;let colors=(element.getAttribute('data-colors')||'blue,green,orange,red').split(',');let themes={'blue':'#29b5d9','green':'#4eb55b','orange':'#fba233','red':'#dc3232','create':'#00b680','read':'#009cde','update':'#696fd7','delete':'#da5d95',};let range={'24h':'H:i','7d':'d F Y','30d':'d F Y','90d':'d F Y'}
|
||||
element.parentNode.insertBefore(wrapper,element.nextSibling);wrapper.classList.add('content');child.width=width;child.height=height;sources=sources.split(',');wrapper.appendChild(child);let chart=null;let check=function(){let config={type:"line",data:{labels:[],datasets:[]},options:{responsive:true,title:{display:false,text:"Stats"},legend:{display:false},tooltips:{mode:"index",intersect:false,caretPadding:0},hover:{mode:"nearest",intersect:true},scales:{xAxes:[{display:showXAxis}],yAxes:[{display:showYAxis,ticks:{fontColor:"#8f8f8f"}}]}}};for(let i=0;i<sources.length;i++){let label=sources[i].substring(0,sources[i].indexOf('='));let path=sources[i].substring(sources[i].indexOf('=')+1);let usage=container.get('usage');let data=usage[path];let value=JSON.parse(element.value);config.data.labels[i]=label;config.data.datasets[i]={};config.data.datasets[i].label=label;config.data.datasets[i].borderColor=themes[colors[i]];config.data.datasets[i].backgroundColor=themes[colors[i]]+'36';config.data.datasets[i].borderWidth=2;config.data.datasets[i].data=[0,0,0,0,0,0,0];config.data.datasets[i].fill=true;if(!data){return;}
|
||||
element.parentNode.insertBefore(wrapper,element.nextSibling);wrapper.classList.add('content');child.width=width;child.height=height;sources=sources.split(',');wrapper.appendChild(child);let chart=null;let check=function(){let config={type:"line",data:{labels:[],datasets:[]},options:{responsive:true,tooltip:{mode:"index",intersect:false,caretPadding:0},hover:{mode:"nearest",intersect:true},scales:{xAxes:[{display:showXAxis}],yAxes:[{display:showYAxis,ticks:{fontColor:"#8f8f8f"}}]}}};for(let i=0;i<sources.length;i++){let label=sources[i].substring(0,sources[i].indexOf('='));let path=sources[i].substring(sources[i].indexOf('=')+1);let usage=container.get('usage');let data=usage[path];let value=JSON.parse(element.value);config.data.labels[i]=label;config.data.datasets[i]={};config.data.datasets[i].label=label;config.data.datasets[i].borderColor=themes[colors[i]];config.data.datasets[i].backgroundColor=themes[colors[i]]+'36';config.data.datasets[i].borderWidth=2;config.data.datasets[i].data=[0,0,0,0,0,0,0];config.data.datasets[i].fill=true;if(!data){return;}
|
||||
let dateFormat=(value.range&&range[value.range])?range[value.range]:'d F Y';for(let x=0;x<data.length;x++){config.data.datasets[i].data[x]=data[x].value;config.data.labels[x]=date.format(dateFormat,data[x].date);}}
|
||||
if(chart){chart.destroy();}
|
||||
else{}
|
||||
|
|
2
public/dist/styles/default-ltr.css
vendored
2
public/dist/styles/default-ltr.css
vendored
File diff suppressed because one or more lines are too long
2
public/dist/styles/default-rtl.css
vendored
2
public/dist/styles/default-rtl.css
vendored
File diff suppressed because one or more lines are too long
Binary file not shown.
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 86 KiB |
File diff suppressed because it is too large
Load diff
|
@ -38,14 +38,7 @@
|
|||
},
|
||||
options: {
|
||||
responsive: true,
|
||||
title: {
|
||||
display: false,
|
||||
text: "Stats"
|
||||
},
|
||||
legend: {
|
||||
display: false
|
||||
},
|
||||
tooltips: {
|
||||
tooltip: {
|
||||
mode: "index",
|
||||
intersect: false,
|
||||
caretPadding: 0
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
--config-width-large: 700px;
|
||||
--config-width-medium: 550px;
|
||||
--config-width-small: 320px;
|
||||
--config-color-primary: #f02e65;
|
||||
--config-color-link: #1e849e;
|
||||
--config-color-background: #eceff1;
|
||||
--config-color-background-dark: #dfe2e4;
|
||||
|
@ -93,6 +94,7 @@
|
|||
--config-console-nav-switch-arrow: url("data:image/svg+xml;utf8,<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24' height='24' viewBox='0 0 24 24'><path fill='%23868686' d='M7.406 7.828l4.594 4.594 4.594-4.594 1.406 1.406-6 6-6-6z'></path></svg>");
|
||||
|
||||
.theme-dark {
|
||||
--config-color-primary: #f02e65;
|
||||
--config-color-background: #061F2F;
|
||||
--config-color-background-dark: #262d50;
|
||||
--config-color-background-fade: #1c223a;
|
||||
|
|
|
@ -49,7 +49,7 @@ class PDO extends PDONative
|
|||
return $this->pdo->setAttribute($attribute, $value);
|
||||
}
|
||||
|
||||
public function prepare($statement, $driver_options = NULL)
|
||||
public function prepare($statement, $driver_options = null)
|
||||
{
|
||||
return new PDOStatement($this, $this->pdo->prepare($statement, []));
|
||||
}
|
||||
|
@ -107,4 +107,4 @@ class PDO extends PDONative
|
|||
|
||||
return $this->pdo;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -100,10 +100,10 @@ class PDOStatement extends PDOStatementNative
|
|||
|
||||
/**
|
||||
* Fetch All
|
||||
*
|
||||
*
|
||||
* @param int $fetch_style
|
||||
* @param mixed $fetch_args
|
||||
*
|
||||
*
|
||||
* @return array|false
|
||||
*/
|
||||
public function fetchAll(int $fetch_style = PDO::FETCH_BOTH, mixed ...$fetch_args)
|
||||
|
@ -112,4 +112,4 @@ class PDOStatement extends PDOStatementNative
|
|||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ namespace Appwrite\OpenSSL;
|
|||
|
||||
class OpenSSL
|
||||
{
|
||||
const CIPHER_AES_128_GCM = 'aes-128-gcm';
|
||||
public const CIPHER_AES_128_GCM = 'aes-128-gcm';
|
||||
|
||||
/**
|
||||
* @param $data
|
||||
|
|
|
@ -388,7 +388,6 @@ trait AccountBase
|
|||
|
||||
$this->assertEquals($response['body']['logs'][0], $responseLimit['body']['logs'][0]);
|
||||
|
||||
|
||||
$responseOffset = $this->client->call(Client::METHOD_GET, '/account/logs', array_merge([
|
||||
'origin' => 'http://localhost',
|
||||
'content-type' => 'application/json',
|
||||
|
|
Loading…
Reference in a new issue