From a6fa4fb4accd001bc6af5ee534d7191e99cb6282 Mon Sep 17 00:00:00 2001 From: Nick Date: Sun, 11 Aug 2019 23:26:29 -0400 Subject: [PATCH] feat: admin edit user (wip) --- client/components/admin/admin-theme.vue | 20 +- client/components/admin/admin-users-edit.vue | 403 ++++++++++++++++++- server/themes/default/theme.yml | 25 ++ server/themes/default/thumbnail.png | Bin 0 -> 22355 bytes 4 files changed, 428 insertions(+), 20 deletions(-) create mode 100644 server/themes/default/theme.yml create mode 100644 server/themes/default/thumbnail.png diff --git a/client/components/admin/admin-theme.vue b/client/components/admin/admin-theme.vue index 2f3b23f9..39c3a26f 100644 --- a/client/components/admin/admin-theme.vue +++ b/client/components/admin/admin-theme.vue @@ -14,7 +14,7 @@ v-form.pt-3 v-layout(row wrap) v-flex(lg6 xs12) - v-card.wiki-form.animated.fadeInUp + v-card.animated.fadeInUp v-toolbar(color='primary', dark, dense, flat) v-toolbar-title.subtitle-1 {{$t('admin:theme.title')}} v-card-text @@ -51,7 +51,23 @@ :hint='$t(`admin:theme.darkModeHint`)' ) - v-card.wiki-form.mt-3.animated.fadeInUp.wait-p2s + //- v-card.mt-3.animated.fadeInUp.wait-p1s + //- v-toolbar(color='primary', dark, dense, flat) + //- v-toolbar-title.subtitle-1 {{$t(`admin:theme.options`)}} + //- v-spacer + //- v-chip(label, color='white', small).primary--text coming soon + //- v-card-text + //- v-select( + //- :items='iconsets' + //- outlined + //- prepend-icon='mdi-border-vertical' + //- v-model='config.iconset' + //- label='Table of Contents Position' + //- persistent-hint + //- hint='Select whether the table of contents is shown on the left, right or not at all.' + //- ) + + v-card.mt-3.animated.fadeInUp.wait-p2s v-toolbar(color='primary', dark, dense, flat) v-toolbar-title.subtitle-1 {{$t(`admin:theme.codeInjection`)}} v-card-text diff --git a/client/components/admin/admin-users-edit.vue b/client/components/admin/admin-users-edit.vue index 465c7a84..cafd3e31 100644 --- a/client/components/admin/admin-users-edit.vue +++ b/client/components/admin/admin-users-edit.vue @@ -26,7 +26,7 @@ v-btn.ml-3.animated.fadeInDown(color='primary', large, depressed, @click='updateUser') v-icon(left) mdi-check span Update User - v-flex(xs5) + v-flex(xs6) v-card.animated.fadeInUp v-toolbar(color='primary', dense, dark, flat) v-icon.mr-2 mdi-information-variant @@ -39,8 +39,28 @@ v-list-item-title Email v-list-item-subtitle {{ user.email }} v-list-item-action(v-if='!user.isSystem') - v-btn(icon, color='grey', flat, x-small) - v-icon mdi-pencil + v-menu( + v-model='editPop.email' + :close-on-content-click='false' + min-width='350' + left + ) + template(v-slot:activator='{ on }') + v-btn(icon, color='grey', x-small, v-on='on', @click='focusField(`iptEmail`)') + v-icon mdi-pencil + v-card + v-text-field( + ref='iptEmail' + v-model='user.email' + label='Email' + solo + hide-details + append-icon='mdi-check' + @click:append='editPop.email = false' + @keydown.enter='editPop.email = false' + @keydown.esc='editPop.email = false' + ) + v-divider v-list-item v-list-item-avatar(size='32') @@ -49,8 +69,28 @@ v-list-item-title Display Name v-list-item-subtitle {{ user.name }} v-list-item-action - v-btn(icon, color='grey', flat, x-small) - v-icon mdi-pencil + v-menu( + v-model='editPop.name' + :close-on-content-click='false' + min-width='350' + left + ) + template(v-slot:activator='{ on }') + v-btn(icon, color='grey', x-small, v-on='on', @click='focusField(`iptDisplayName`)') + v-icon mdi-pencil + v-card + v-text-field( + ref='iptDisplayName' + v-model='user.name' + label='Display Name' + solo + hide-details + append-icon='mdi-check' + @click:append='editPop.name = false' + @keydown.enter='editPop.name = false' + @keydown.esc='editPop.name = false' + ) + v-card.mt-3.animated.fadeInUp.wait-p2s(v-if='!user.isSystem') v-toolbar(color='primary', dense, dark, flat) v-icon.mr-2 mdi-lock-outline @@ -75,13 +115,13 @@ v-list-item-action v-tooltip(top) template(v-slot:activator='{ on }') - v-btn(icon, color='grey', flat, x-small, v-on='on') + v-btn(icon, color='grey', x-small, v-on='on') v-icon mdi-cached span Change Password v-list-item-action v-tooltip(top) template(v-slot:activator='{ on }') - v-btn(icon, color='grey', flat, x-small, v-on='on') + v-btn(icon, color='grey', x-small, v-on='on') v-icon mdi-email span Send Password Reset Email v-divider @@ -94,7 +134,7 @@ v-list-item-action v-tooltip(top) template(v-slot:activator='{ on }') - v-btn(icon, color='grey', flat, x-small, v-on='on') + v-btn(icon, color='grey', x-small, v-on='on', disabled) v-icon mdi-power span Toggle 2FA template(v-if='user.providerId') @@ -127,7 +167,7 @@ v-btn(color='primary', text) v-icon(left) mdi-clipboard-account span Assign to group - v-flex(xs7) + v-flex(xs6) v-card.animated.fadeInUp.wait-p2s v-toolbar(color='primary', dense, dark, flat) v-icon.mr-2 mdi-account-badge-outline @@ -140,8 +180,27 @@ v-list-item-title Location v-list-item-subtitle {{ user.location }} v-list-item-action - v-btn(icon, color='grey', flat, x-small) - v-icon mdi-pencil + v-menu( + v-model='editPop.location' + :close-on-content-click='false' + min-width='350' + left + ) + template(v-slot:activator='{ on }') + v-btn(icon, color='grey', x-small, v-on='on', @click='focusField(`iptLocation`)') + v-icon mdi-pencil + v-card + v-text-field( + ref='iptLocation' + v-model='user.location' + label='Location' + solo + hide-details + append-icon='mdi-check' + @click:append='editPop.location = false' + @keydown.enter='editPop.location = false' + @keydown.esc='editPop.location = false' + ) v-divider v-list-item v-list-item-avatar(size='32') @@ -150,8 +209,27 @@ v-list-item-title Job Title v-list-item-subtitle {{ user.jobTitle }} v-list-item-action - v-btn(icon, color='grey', flat, x-small) - v-icon mdi-pencil + v-menu( + v-model='editPop.jobTitle' + :close-on-content-click='false' + min-width='350' + left + ) + template(v-slot:activator='{ on }') + v-btn(icon, color='grey', x-small, v-on='on', @click='focusField(`iptJobTitle`)') + v-icon mdi-pencil + v-card + v-text-field( + ref='iptJobTitle' + v-model='user.jobTitle' + label='Job Title' + solo + hide-details + append-icon='mdi-check' + @click:append='editPop.jobTitle = false' + @keydown.enter='editPop.jobTitle = false' + @keydown.esc='editPop.jobTitle = false' + ) v-divider v-list-item v-list-item-avatar(size='32') @@ -160,8 +238,29 @@ v-list-item-title Timezone v-list-item-subtitle {{ user.timezone }} v-list-item-action - v-btn(icon, color='grey', flat, x-small) - v-icon mdi-pencil + v-menu( + v-model='editPop.timezone' + :close-on-content-click='false' + min-width='350' + left + ) + template(v-slot:activator='{ on }') + v-btn(icon, color='grey', x-small, v-on='on', @click='focusField(`iptTimezone`)') + v-icon mdi-pencil + v-card + v-select( + ref='iptTimezone' + :items='timezones' + v-model='user.timezone' + label='Timezone' + solo + dense + hide-details + append-icon='mdi-check' + @click:append='editPop.timezone = false' + @keydown.enter='editPop.timezone = false' + @keydown.esc='editPop.timezone = false' + ) v-card.mt-3.animated.fadeInUp.wait-p4s v-toolbar(color='primary', dense, dark, flat) v-icon.mr-2 mdi-file-document-box-multiple-outline @@ -180,9 +279,270 @@ export default { data() { return { deleteUserDialog: false, + editPop: { + email: false, + name: false, + pwd: false, + location: false, + jobTitle: false, + timezone: false + }, user: { - - } + name: '', + groups: [] + }, + timezones: [ + { text: '(GMT-11:00) Niue', value: 'Pacific/Niue' }, + { text: '(GMT-11:00) Pago Pago', value: 'Pacific/Pago_Pago' }, + { text: '(GMT-10:00) Hawaii Time', value: 'Pacific/Honolulu' }, + { text: '(GMT-10:00) Rarotonga', value: 'Pacific/Rarotonga' }, + { text: '(GMT-10:00) Tahiti', value: 'Pacific/Tahiti' }, + { text: '(GMT-09:30) Marquesas', value: 'Pacific/Marquesas' }, + { text: '(GMT-09:00) Alaska Time', value: 'America/Anchorage' }, + { text: '(GMT-09:00) Gambier', value: 'Pacific/Gambier' }, + { text: '(GMT-08:00) Pacific Time', value: 'America/Los_Angeles' }, + { text: '(GMT-08:00) Pacific Time - Tijuana', value: 'America/Tijuana' }, + { text: '(GMT-08:00) Pacific Time - Vancouver', value: 'America/Vancouver' }, + { text: '(GMT-08:00) Pacific Time - Whitehorse', value: 'America/Whitehorse' }, + { text: '(GMT-08:00) Pitcairn', value: 'Pacific/Pitcairn' }, + { text: '(GMT-07:00) Mountain Time', value: 'America/Denver' }, + { text: '(GMT-07:00) Mountain Time - Arizona', value: 'America/Phoenix' }, + { text: '(GMT-07:00) Mountain Time - Chihuahua, Mazatlan', value: 'America/Mazatlan' }, + { text: '(GMT-07:00) Mountain Time - Dawson Creek', value: 'America/Dawson_Creek' }, + { text: '(GMT-07:00) Mountain Time - Edmonton', value: 'America/Edmonton' }, + { text: '(GMT-07:00) Mountain Time - Hermosillo', value: 'America/Hermosillo' }, + { text: '(GMT-07:00) Mountain Time - Yellowknife', value: 'America/Yellowknife' }, + { text: '(GMT-06:00) Belize', value: 'America/Belize' }, + { text: '(GMT-06:00) Central Time', value: 'America/Chicago' }, + { text: '(GMT-06:00) Central Time - Mexico City', value: 'America/Mexico_City' }, + { text: '(GMT-06:00) Central Time - Regina', value: 'America/Regina' }, + { text: '(GMT-06:00) Central Time - Tegucigalpa', value: 'America/Tegucigalpa' }, + { text: '(GMT-06:00) Central Time - Winnipeg', value: 'America/Winnipeg' }, + { text: '(GMT-06:00) Costa Rica', value: 'America/Costa_Rica' }, + { text: '(GMT-06:00) El Salvador', value: 'America/El_Salvador' }, + { text: '(GMT-06:00) Galapagos', value: 'Pacific/Galapagos' }, + { text: '(GMT-06:00) Guatemala', value: 'America/Guatemala' }, + { text: '(GMT-06:00) Managua', value: 'America/Managua' }, + { text: '(GMT-05:00) America Cancun', value: 'America/Cancun' }, + { text: '(GMT-05:00) Bogota', value: 'America/Bogota' }, + { text: '(GMT-05:00) Easter Island', value: 'Pacific/Easter' }, + { text: '(GMT-05:00) Eastern Time', value: 'America/New_York' }, + { text: '(GMT-05:00) Eastern Time - Iqaluit', value: 'America/Iqaluit' }, + { text: '(GMT-05:00) Eastern Time - Toronto', value: 'America/Toronto' }, + { text: '(GMT-05:00) Guayaquil', value: 'America/Guayaquil' }, + { text: '(GMT-05:00) Havana', value: 'America/Havana' }, + { text: '(GMT-05:00) Jamaica', value: 'America/Jamaica' }, + { text: '(GMT-05:00) Lima', value: 'America/Lima' }, + { text: '(GMT-05:00) Nassau', value: 'America/Nassau' }, + { text: '(GMT-05:00) Panama', value: 'America/Panama' }, + { text: '(GMT-05:00) Port-au-Prince', value: 'America/Port-au-Prince' }, + { text: '(GMT-05:00) Rio Branco', value: 'America/Rio_Branco' }, + { text: '(GMT-04:00) Atlantic Time - Halifax', value: 'America/Halifax' }, + { text: '(GMT-04:00) Barbados', value: 'America/Barbados' }, + { text: '(GMT-04:00) Bermuda', value: 'Atlantic/Bermuda' }, + { text: '(GMT-04:00) Boa Vista', value: 'America/Boa_Vista' }, + { text: '(GMT-04:00) Caracas', value: 'America/Caracas' }, + { text: '(GMT-04:00) Curacao', value: 'America/Curacao' }, + { text: '(GMT-04:00) Grand Turk', value: 'America/Grand_Turk' }, + { text: '(GMT-04:00) Guyana', value: 'America/Guyana' }, + { text: '(GMT-04:00) La Paz', value: 'America/La_Paz' }, + { text: '(GMT-04:00) Manaus', value: 'America/Manaus' }, + { text: '(GMT-04:00) Martinique', value: 'America/Martinique' }, + { text: '(GMT-04:00) Port of Spain', value: 'America/Port_of_Spain' }, + { text: '(GMT-04:00) Porto Velho', value: 'America/Porto_Velho' }, + { text: '(GMT-04:00) Puerto Rico', value: 'America/Puerto_Rico' }, + { text: '(GMT-04:00) Santo Domingo', value: 'America/Santo_Domingo' }, + { text: '(GMT-04:00) Thule', value: 'America/Thule' }, + { text: '(GMT-03:30) Newfoundland Time - St. Johns', value: 'America/St_Johns' }, + { text: '(GMT-03:00) Araguaina', value: 'America/Araguaina' }, + { text: '(GMT-03:00) Asuncion', value: 'America/Asuncion' }, + { text: '(GMT-03:00) Belem', value: 'America/Belem' }, + { text: '(GMT-03:00) Buenos Aires', value: 'America/Argentina/Buenos_Aires' }, + { text: '(GMT-03:00) Campo Grande', value: 'America/Campo_Grande' }, + { text: '(GMT-03:00) Cayenne', value: 'America/Cayenne' }, + { text: '(GMT-03:00) Cuiaba', value: 'America/Cuiaba' }, + { text: '(GMT-03:00) Fortaleza', value: 'America/Fortaleza' }, + { text: '(GMT-03:00) Godthab', value: 'America/Godthab' }, + { text: '(GMT-03:00) Maceio', value: 'America/Maceio' }, + { text: '(GMT-03:00) Miquelon', value: 'America/Miquelon' }, + { text: '(GMT-03:00) Montevideo', value: 'America/Montevideo' }, + { text: '(GMT-03:00) Palmer', value: 'Antarctica/Palmer' }, + { text: '(GMT-03:00) Paramaribo', value: 'America/Paramaribo' }, + { text: '(GMT-03:00) Punta Arenas', value: 'America/Punta_Arenas' }, + { text: '(GMT-03:00) Recife', value: 'America/Recife' }, + { text: '(GMT-03:00) Rothera', value: 'Antarctica/Rothera' }, + { text: '(GMT-03:00) Salvador', value: 'America/Bahia' }, + { text: '(GMT-03:00) Santiago', value: 'America/Santiago' }, + { text: '(GMT-03:00) Stanley', value: 'Atlantic/Stanley' }, + { text: '(GMT-02:00) Noronha', value: 'America/Noronha' }, + { text: '(GMT-02:00) Sao Paulo', value: 'America/Sao_Paulo' }, + { text: '(GMT-02:00) South Georgia', value: 'Atlantic/South_Georgia' }, + { text: '(GMT-01:00) Azores', value: 'Atlantic/Azores' }, + { text: '(GMT-01:00) Cape Verde', value: 'Atlantic/Cape_Verde' }, + { text: '(GMT-01:00) Scoresbysund', value: 'America/Scoresbysund' }, + { text: '(GMT+00:00) Abidjan', value: 'Africa/Abidjan' }, + { text: '(GMT+00:00) Accra', value: 'Africa/Accra' }, + { text: '(GMT+00:00) Bissau', value: 'Africa/Bissau' }, + { text: '(GMT+00:00) Canary Islands', value: 'Atlantic/Canary' }, + { text: '(GMT+00:00) Casablanca', value: 'Africa/Casablanca' }, + { text: '(GMT+00:00) Danmarkshavn', value: 'America/Danmarkshavn' }, + { text: '(GMT+00:00) Dublin', value: 'Europe/Dublin' }, + { text: '(GMT+00:00) El Aaiun', value: 'Africa/El_Aaiun' }, + { text: '(GMT+00:00) Faeroe', value: 'Atlantic/Faroe' }, + { text: '(GMT+00:00) GMT (no daylight saving)', value: 'Etc/GMT' }, + { text: '(GMT+00:00) Lisbon', value: 'Europe/Lisbon' }, + { text: '(GMT+00:00) London', value: 'Europe/London' }, + { text: '(GMT+00:00) Monrovia', value: 'Africa/Monrovia' }, + { text: '(GMT+00:00) Reykjavik', value: 'Atlantic/Reykjavik' }, + { text: '(GMT+01:00) Algiers', value: 'Africa/Algiers' }, + { text: '(GMT+01:00) Amsterdam', value: 'Europe/Amsterdam' }, + { text: '(GMT+01:00) Andorra', value: 'Europe/Andorra' }, + { text: '(GMT+01:00) Berlin', value: 'Europe/Berlin' }, + { text: '(GMT+01:00) Brussels', value: 'Europe/Brussels' }, + { text: '(GMT+01:00) Budapest', value: 'Europe/Budapest' }, + { text: '(GMT+01:00) Central European Time - Belgrade', value: 'Europe/Belgrade' }, + { text: '(GMT+01:00) Central European Time - Prague', value: 'Europe/Prague' }, + { text: '(GMT+01:00) Ceuta', value: 'Africa/Ceuta' }, + { text: '(GMT+01:00) Copenhagen', value: 'Europe/Copenhagen' }, + { text: '(GMT+01:00) Gibraltar', value: 'Europe/Gibraltar' }, + { text: '(GMT+01:00) Lagos', value: 'Africa/Lagos' }, + { text: '(GMT+01:00) Luxembourg', value: 'Europe/Luxembourg' }, + { text: '(GMT+01:00) Madrid', value: 'Europe/Madrid' }, + { text: '(GMT+01:00) Malta', value: 'Europe/Malta' }, + { text: '(GMT+01:00) Monaco', value: 'Europe/Monaco' }, + { text: '(GMT+01:00) Ndjamena', value: 'Africa/Ndjamena' }, + { text: '(GMT+01:00) Oslo', value: 'Europe/Oslo' }, + { text: '(GMT+01:00) Paris', value: 'Europe/Paris' }, + { text: '(GMT+01:00) Rome', value: 'Europe/Rome' }, + { text: '(GMT+01:00) Stockholm', value: 'Europe/Stockholm' }, + { text: '(GMT+01:00) Tirane', value: 'Europe/Tirane' }, + { text: '(GMT+01:00) Tunis', value: 'Africa/Tunis' }, + { text: '(GMT+01:00) Vienna', value: 'Europe/Vienna' }, + { text: '(GMT+01:00) Warsaw', value: 'Europe/Warsaw' }, + { text: '(GMT+01:00) Zurich', value: 'Europe/Zurich' }, + { text: '(GMT+02:00) Amman', value: 'Asia/Amman' }, + { text: '(GMT+02:00) Athens', value: 'Europe/Athens' }, + { text: '(GMT+02:00) Beirut', value: 'Asia/Beirut' }, + { text: '(GMT+02:00) Bucharest', value: 'Europe/Bucharest' }, + { text: '(GMT+02:00) Cairo', value: 'Africa/Cairo' }, + { text: '(GMT+02:00) Chisinau', value: 'Europe/Chisinau' }, + { text: '(GMT+02:00) Damascus', value: 'Asia/Damascus' }, + { text: '(GMT+02:00) Gaza', value: 'Asia/Gaza' }, + { text: '(GMT+02:00) Helsinki', value: 'Europe/Helsinki' }, + { text: '(GMT+02:00) Jerusalem', value: 'Asia/Jerusalem' }, + { text: '(GMT+02:00) Johannesburg', value: 'Africa/Johannesburg' }, + { text: '(GMT+02:00) Khartoum', value: 'Africa/Khartoum' }, + { text: '(GMT+02:00) Kiev', value: 'Europe/Kiev' }, + { text: '(GMT+02:00) Maputo', value: 'Africa/Maputo' }, + { text: '(GMT+02:00) Moscow-01 - Kaliningrad', value: 'Europe/Kaliningrad' }, + { text: '(GMT+02:00) Nicosia', value: 'Asia/Nicosia' }, + { text: '(GMT+02:00) Riga', value: 'Europe/Riga' }, + { text: '(GMT+02:00) Sofia', value: 'Europe/Sofia' }, + { text: '(GMT+02:00) Tallinn', value: 'Europe/Tallinn' }, + { text: '(GMT+02:00) Tripoli', value: 'Africa/Tripoli' }, + { text: '(GMT+02:00) Vilnius', value: 'Europe/Vilnius' }, + { text: '(GMT+02:00) Windhoek', value: 'Africa/Windhoek' }, + { text: '(GMT+03:00) Baghdad', value: 'Asia/Baghdad' }, + { text: '(GMT+03:00) Istanbul', value: 'Europe/Istanbul' }, + { text: '(GMT+03:00) Minsk', value: 'Europe/Minsk' }, + { text: '(GMT+03:00) Moscow+00 - Moscow', value: 'Europe/Moscow' }, + { text: '(GMT+03:00) Nairobi', value: 'Africa/Nairobi' }, + { text: '(GMT+03:00) Qatar', value: 'Asia/Qatar' }, + { text: '(GMT+03:00) Riyadh', value: 'Asia/Riyadh' }, + { text: '(GMT+03:00) Syowa', value: 'Antarctica/Syowa' }, + { text: '(GMT+03:30) Tehran', value: 'Asia/Tehran' }, + { text: '(GMT+04:00) Baku', value: 'Asia/Baku' }, + { text: '(GMT+04:00) Dubai', value: 'Asia/Dubai' }, + { text: '(GMT+04:00) Mahe', value: 'Indian/Mahe' }, + { text: '(GMT+04:00) Mauritius', value: 'Indian/Mauritius' }, + { text: '(GMT+04:00) Moscow+01 - Samara', value: 'Europe/Samara' }, + { text: '(GMT+04:00) Reunion', value: 'Indian/Reunion' }, + { text: '(GMT+04:00) Tbilisi', value: 'Asia/Tbilisi' }, + { text: '(GMT+04:00) Yerevan', value: 'Asia/Yerevan' }, + { text: '(GMT+04:30) Kabul', value: 'Asia/Kabul' }, + { text: '(GMT+05:00) Aqtau', value: 'Asia/Aqtau' }, + { text: '(GMT+05:00) Aqtobe', value: 'Asia/Aqtobe' }, + { text: '(GMT+05:00) Ashgabat', value: 'Asia/Ashgabat' }, + { text: '(GMT+05:00) Dushanbe', value: 'Asia/Dushanbe' }, + { text: '(GMT+05:00) Karachi', value: 'Asia/Karachi' }, + { text: '(GMT+05:00) Kerguelen', value: 'Indian/Kerguelen' }, + { text: '(GMT+05:00) Maldives', value: 'Indian/Maldives' }, + { text: '(GMT+05:00) Mawson', value: 'Antarctica/Mawson' }, + { text: '(GMT+05:00) Moscow+02 - Yekaterinburg', value: 'Asia/Yekaterinburg' }, + { text: '(GMT+05:00) Tashkent', value: 'Asia/Tashkent' }, + { text: '(GMT+05:30) Colombo', value: 'Asia/Colombo' }, + { text: '(GMT+05:30) India Standard Time', value: 'Asia/Kolkata' }, + { text: '(GMT+05:45) Kathmandu', value: 'Asia/Kathmandu' }, + { text: '(GMT+06:00) Almaty', value: 'Asia/Almaty' }, + { text: '(GMT+06:00) Bishkek', value: 'Asia/Bishkek' }, + { text: '(GMT+06:00) Chagos', value: 'Indian/Chagos' }, + { text: '(GMT+06:00) Dhaka', value: 'Asia/Dhaka' }, + { text: '(GMT+06:00) Moscow+03 - Omsk', value: 'Asia/Omsk' }, + { text: '(GMT+06:00) Thimphu', value: 'Asia/Thimphu' }, + { text: '(GMT+06:00) Vostok', value: 'Antarctica/Vostok' }, + { text: '(GMT+06:30) Cocos', value: 'Indian/Cocos' }, + { text: '(GMT+06:30) Rangoon', value: 'Asia/Yangon' }, + { text: '(GMT+07:00) Bangkok', value: 'Asia/Bangkok' }, + { text: '(GMT+07:00) Christmas', value: 'Indian/Christmas' }, + { text: '(GMT+07:00) Davis', value: 'Antarctica/Davis' }, + { text: '(GMT+07:00) Hanoi', value: 'Asia/Saigon' }, + { text: '(GMT+07:00) Hovd', value: 'Asia/Hovd' }, + { text: '(GMT+07:00) Jakarta', value: 'Asia/Jakarta' }, + { text: '(GMT+07:00) Moscow+04 - Krasnoyarsk', value: 'Asia/Krasnoyarsk' }, + { text: '(GMT+08:00) Brunei', value: 'Asia/Brunei' }, + { text: '(GMT+08:00) China Time - Beijing', value: 'Asia/Shanghai' }, + { text: '(GMT+08:00) Choibalsan', value: 'Asia/Choibalsan' }, + { text: '(GMT+08:00) Hong Kong', value: 'Asia/Hong_Kong' }, + { text: '(GMT+08:00) Kuala Lumpur', value: 'Asia/Kuala_Lumpur' }, + { text: '(GMT+08:00) Macau', value: 'Asia/Macau' }, + { text: '(GMT+08:00) Makassar', value: 'Asia/Makassar' }, + { text: '(GMT+08:00) Manila', value: 'Asia/Manila' }, + { text: '(GMT+08:00) Moscow+05 - Irkutsk', value: 'Asia/Irkutsk' }, + { text: '(GMT+08:00) Singapore', value: 'Asia/Singapore' }, + { text: '(GMT+08:00) Taipei', value: 'Asia/Taipei' }, + { text: '(GMT+08:00) Ulaanbaatar', value: 'Asia/Ulaanbaatar' }, + { text: '(GMT+08:00) Western Time - Perth', value: 'Australia/Perth' }, + { text: '(GMT+08:30) Pyongyang', value: 'Asia/Pyongyang' }, + { text: '(GMT+09:00) Dili', value: 'Asia/Dili' }, + { text: '(GMT+09:00) Jayapura', value: 'Asia/Jayapura' }, + { text: '(GMT+09:00) Moscow+06 - Yakutsk', value: 'Asia/Yakutsk' }, + { text: '(GMT+09:00) Palau', value: 'Pacific/Palau' }, + { text: '(GMT+09:00) Seoul', value: 'Asia/Seoul' }, + { text: '(GMT+09:00) Tokyo', value: 'Asia/Tokyo' }, + { text: '(GMT+09:30) Central Time - Darwin', value: 'Australia/Darwin' }, + { text: '(GMT+10:00) Dumont D\'Urville', value: 'Antarctica/DumontDUrville' }, + { text: '(GMT+10:00) Eastern Time - Brisbane', value: 'Australia/Brisbane' }, + { text: '(GMT+10:00) Guam', value: 'Pacific/Guam' }, + { text: '(GMT+10:00) Moscow+07 - Vladivostok', value: 'Asia/Vladivostok' }, + { text: '(GMT+10:00) Port Moresby', value: 'Pacific/Port_Moresby' }, + { text: '(GMT+10:00) Truk', value: 'Pacific/Chuuk' }, + { text: '(GMT+10:30) Central Time - Adelaide', value: 'Australia/Adelaide' }, + { text: '(GMT+11:00) Casey', value: 'Antarctica/Casey' }, + { text: '(GMT+11:00) Eastern Time - Hobart', value: 'Australia/Hobart' }, + { text: '(GMT+11:00) Eastern Time - Melbourne, Sydney', value: 'Australia/Sydney' }, + { text: '(GMT+11:00) Efate', value: 'Pacific/Efate' }, + { text: '(GMT+11:00) Guadalcanal', value: 'Pacific/Guadalcanal' }, + { text: '(GMT+11:00) Kosrae', value: 'Pacific/Kosrae' }, + { text: '(GMT+11:00) Moscow+08 - Magadan', value: 'Asia/Magadan' }, + { text: '(GMT+11:00) Norfolk', value: 'Pacific/Norfolk' }, + { text: '(GMT+11:00) Noumea', value: 'Pacific/Noumea' }, + { text: '(GMT+11:00) Ponape', value: 'Pacific/Pohnpei' }, + { text: '(GMT+12:00) Funafuti', value: 'Pacific/Funafuti' }, + { text: '(GMT+12:00) Kwajalein', value: 'Pacific/Kwajalein' }, + { text: '(GMT+12:00) Majuro', value: 'Pacific/Majuro' }, + { text: '(GMT+12:00) Moscow+09 - Petropavlovsk-Kamchatskiy', value: 'Asia/Kamchatka' }, + { text: '(GMT+12:00) Nauru', value: 'Pacific/Nauru' }, + { text: '(GMT+12:00) Tarawa', value: 'Pacific/Tarawa' }, + { text: '(GMT+12:00) Wake', value: 'Pacific/Wake' }, + { text: '(GMT+12:00) Wallis', value: 'Pacific/Wallis' }, + { text: '(GMT+13:00) Auckland', value: 'Pacific/Auckland' }, + { text: '(GMT+13:00) Enderbury', value: 'Pacific/Enderbury' }, + { text: '(GMT+13:00) Fakaofo', value: 'Pacific/Fakaofo' }, + { text: '(GMT+13:00) Fiji', value: 'Pacific/Fiji' }, + { text: '(GMT+13:00) Tongatapu', value: 'Pacific/Tongatapu' }, + { text: '(GMT+14:00) Apia', value: 'Pacific/Apia' }, + { text: '(GMT+14:00) Kiritimati', value: 'Pacific/Kiritimati' } + ] } }, computed: { @@ -190,7 +550,14 @@ export default { }, methods: { deleteUser() {}, - updateUser() {} + updateUser() {}, + focusField (ipt) { + this.$nextTick(() => { + _.delay(() => { + this.$refs[ipt].focus() + }, 200) + }) + } }, apollo: { user: { diff --git a/server/themes/default/theme.yml b/server/themes/default/theme.yml new file mode 100644 index 00000000..42a9e274 --- /dev/null +++ b/server/themes/default/theme.yml @@ -0,0 +1,25 @@ +name: Default +author: requarks.io +site: https://wiki.requarks.io/ +version: 1.0.0 +requirements: + minimum: '>= 2.0.0' + maximum: '< 3.0.0' +props: + accentColor: + type: String + title: Accent Color + hint: Color used in the sidebar navigation and other elements. + order: 1 + default: blue darken-2 + control: color-material + tocPosition: + type: String + title: Table of Contents Position + hint: Select whether the table of contents is shown on the left, right or not at all. + order: 2 + default: left + enum: + - left + - right + - hidden diff --git a/server/themes/default/thumbnail.png b/server/themes/default/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..489e3f836fc2c8e1313f28f7a94a55b79a1c6f6e GIT binary patch literal 22355 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 literal 0 HcmV?d00001