pleroma/priv/static/adminfe/static/js/chunk-3c08.d5b23bce.js.map

1 line
78 KiB
Plaintext

{"version":3,"sources":["webpack:///./src/views/users/components/MultipleUsersMenu.vue?c17d","webpack:///./src/views/users/components/NewAccountDialog.vue?d353","webpack:///./src/views/users/components/UsersFilter.vue?f835","webpack:///./src/views/users/index.vue?e827","webpack:///./src/views/users/index.vue?daf8","webpack:///./src/views/users/components/UsersFilter.vue?6a82","webpack:///src/views/users/components/UsersFilter.vue","webpack:///./src/views/users/components/UsersFilter.vue","webpack:///./src/views/users/components/UsersFilter.vue?3f06","webpack:///./src/views/users/components/MultipleUsersMenu.vue?56ef","webpack:///src/views/users/components/MultipleUsersMenu.vue","webpack:///./src/views/users/components/MultipleUsersMenu.vue","webpack:///./src/views/users/components/MultipleUsersMenu.vue?c209","webpack:///./src/views/users/components/NewAccountDialog.vue?9018","webpack:///src/views/users/components/NewAccountDialog.vue","webpack:///./src/views/users/components/NewAccountDialog.vue","webpack:///./src/views/users/components/NewAccountDialog.vue?ef6c","webpack:///./src/views/users/index.vue?0a29","webpack:///src/views/users/index.vue","webpack:///./src/views/users/index.vue"],"names":["_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_MultipleUsersMenu_vue_vue_type_style_index_0_id_94227b1e_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__","__webpack_require__","n","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_NewAccountDialog_vue_vue_type_style_index_0_rel_stylesheet_2Fscss_lang_scss___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_UsersFilter_vue_vue_type_style_index_0_id_71bc6b38_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_c51cd8ee_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__","components_UsersFiltervue_type_script_lang_js_","data","value","computed","isDesktop","this","$store","state","app","device","methods","removeOppositeFilters","filtersQuantity","Object","keys","users","filters","length","currentFilters","$data","slice","indexOfLocal","indexOf","indexOfExternal","indexOfActive","indexOfDeactivated","filterToRemove","splice","_filterToRemove","toggleFilters","reduce","acc","filter","objectSpread_default","defineProperty_default","dispatch","component","componentNormalizer","_vm","_h","$createElement","_c","_self","staticClass","attrs","clearable","placeholder","$t","multiple","on","change","model","callback","$$v","expression","label","_v","_s","options","__file","UsersFilter","components_MultipleUsersMenuvue_type_script_lang_js_","props","selectedUsers","type","Array","default","showDropdownForMultipleUsers","$props","mappers","_this","grantRight","right","user","local","roles","id","map","revokeRight","activate","deactivated","nickname","deactivate","remove","addTag","tag","tags","includes","removeTag","grantRightToMultipleUsers","confirmMessage","revokeRightFromMultipleUsers","activateMultipleUsers","deactivateMultipleUsers","deleteMultipleUsers","addTagForMultipleUsers","removeTagFromMultipleUsers","message","applyAction","_this2","$confirm","confirmButtonText","cancelButtonText","then","$emit","$message","catch","MultipleUsersMenu_component","size","trigger","placement","_e","slot","nativeOn","click","$event","divided","MultipleUsersMenu","components_NewAccountDialogvue_type_script_lang_js_","name","dialogFormVisible","Boolean","form","email","password","rules","validator","validateUsername","validateEmail","validatePassword","isVisible","get","set","closeDialogWindow","getLabelWidth","resetForm","$nextTick","$refs","resetFields","submitForm","formName","validate","valid","rule","Error","validEmail","validNickname","test","NewAccountDialog_component","visible","show-close","title","custom-class","update:visible","open","ref","label-width","status-icon","prop","autofocus","$set","autocomplete","views_usersvue_type_script_lang_js_","components","NewAccountDialog","search","loading","normalizedUsersCount","numeral_default","totalUsersCount","format","fetchedUsers","usersCount","pageSize","currentPage","isMobile","width","created","handleDebounceSearchInput","lodash_debounce_default","query","page","mounted","activationIcon","status","clearSelection","usersTable","createNewAccount","accountData","getFirstLetter","str","charAt","toUpperCase","handleDeactivation","_ref","handleDeletion","handlePageChange","searchQuery","handleSelectionChange","showAdminAction","_ref2","showDeactivatedButton","toggleTag","toggleUserRight","users_component","input","selected-users","apply-action","dialog-form-visible","closeWindow","directives","rawName","staticStyle","row-key","selection-change","reserve-selection","align","min-width","scopedSlots","_u","key","fn","scope","to","params","row","class","fixed","admin","moderator","active-tag","total","current-page","page-size","background","layout","current-change","__webpack_exports__"],"mappings":"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","file":"static/js/chunk-3c08.d5b23bce.js","sourcesContent":["import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultipleUsersMenu.vue?vue&type=style&index=0&id=94227b1e&rel=stylesheet%2Fscss&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultipleUsersMenu.vue?vue&type=style&index=0&id=94227b1e&rel=stylesheet%2Fscss&lang=scss&scoped=true&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewAccountDialog.vue?vue&type=style&index=0&rel=stylesheet%2Fscss&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewAccountDialog.vue?vue&type=style&index=0&rel=stylesheet%2Fscss&lang=scss&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersFilter.vue?vue&type=style&index=0&id=71bc6b38&rel=stylesheet%2Fscss&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersFilter.vue?vue&type=style&index=0&id=71bc6b38&rel=stylesheet%2Fscss&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--11-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=c51cd8ee&rel=stylesheet%2Fscss&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--11-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=c51cd8ee&rel=stylesheet%2Fscss&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"users-container\"},[_c('h1',[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.users'))+\"\\n \"),_c('span',{staticClass:\"user-count\"},[_vm._v(\"(\"+_vm._s(_vm.normalizedUsersCount)+\")\")])]),_vm._v(\" \"),_c('div',{staticClass:\"filter-container\"},[_c('users-filter'),_vm._v(\" \"),_c('el-input',{staticClass:\"search\",attrs:{\"placeholder\":_vm.$t('users.search')},on:{\"input\":_vm.handleDebounceSearchInput},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"actions-container\"},[_c('el-button',{staticClass:\"actions-button create-account\",on:{\"click\":function($event){_vm.dialogFormVisible = true}}},[_c('span',[_c('i',{staticClass:\"el-icon-plus\"}),_vm._v(\"\\n \"+_vm._s(_vm.$t('users.createAccount'))+\"\\n \")])]),_vm._v(\" \"),_c('multiple-users-menu',{attrs:{\"selected-users\":_vm.selectedUsers},on:{\"apply-action\":_vm.clearSelection}})],1),_vm._v(\" \"),_c('new-account-dialog',{attrs:{\"dialog-form-visible\":_vm.dialogFormVisible},on:{\"createNewAccount\":_vm.createNewAccount,\"closeWindow\":function($event){_vm.dialogFormVisible = false}}}),_vm._v(\" \"),_c('el-table',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],ref:\"usersTable\",staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.users,\"row-key\":\"id\"},on:{\"selection-change\":_vm.handleSelectionChange}},[(_vm.isDesktop)?_c('el-table-column',{attrs:{\"type\":\"selection\",\"reserve-selection\":\"\",\"width\":\"44\",\"align\":\"center\"}}):_vm._e(),_vm._v(\" \"),_c('el-table-column',{attrs:{\"min-width\":_vm.width,\"label\":_vm.$t('users.id'),\"prop\":\"id\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":_vm.$t('users.name'),\"prop\":\"nickname\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('router-link',{attrs:{\"to\":{ name: 'UsersShow', params: { id: scope.row.id }}}},[_vm._v(_vm._s(scope.row.nickname))]),_vm._v(\" \"),(_vm.isDesktop)?_c('el-tag',{attrs:{\"type\":\"info\",\"size\":\"mini\"}},[_c('span',[_vm._v(_vm._s(scope.row.local ? _vm.$t('users.local') : _vm.$t('users.external')))])]):_vm._e()]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"min-width\":_vm.width,\"label\":_vm.$t('users.status')},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-tag',{attrs:{\"type\":scope.row.deactivated ? 'danger' : 'success'}},[(_vm.isDesktop)?_c('span',[_vm._v(_vm._s(scope.row.deactivated ? _vm.$t('users.deactivated') : _vm.$t('users.active')))]):_c('i',{class:_vm.activationIcon(scope.row.deactivated)})]),_vm._v(\" \"),(scope.row.roles.admin)?_c('el-tag',[_c('span',[_vm._v(_vm._s(_vm.isDesktop ? _vm.$t('users.admin') : _vm.getFirstLetter(_vm.$t('users.admin'))))])]):_vm._e(),_vm._v(\" \"),(scope.row.roles.moderator)?_c('el-tag',[_c('span',[_vm._v(_vm._s(_vm.isDesktop ? _vm.$t('users.moderator') : _vm.getFirstLetter(_vm.$t('users.moderator'))))])]):_vm._e()]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":_vm.$t('users.actions'),\"fixed\":\"right\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-dropdown',{attrs:{\"size\":\"small\",\"trigger\":\"click\"}},[_c('span',{staticClass:\"el-dropdown-link\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.moderation'))+\"\\n \"),(_vm.isDesktop)?_c('i',{staticClass:\"el-icon-arrow-down el-icon--right\"}):_vm._e()]),_vm._v(\" \"),_c('el-dropdown-menu',{attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[(_vm.showAdminAction(scope.row))?_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.toggleUserRight(scope.row, 'admin')}}},[_vm._v(\"\\n \"+_vm._s(scope.row.roles.admin ? _vm.$t('users.revokeAdmin') : _vm.$t('users.grantAdmin'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showAdminAction(scope.row))?_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.toggleUserRight(scope.row, 'moderator')}}},[_vm._v(\"\\n \"+_vm._s(scope.row.roles.moderator ? _vm.$t('users.revokeModerator') : _vm.$t('users.grantModerator'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showDeactivatedButton(scope.row.id))?_c('el-dropdown-item',{attrs:{\"divided\":_vm.showAdminAction(scope.row)},nativeOn:{\"click\":function($event){return _vm.handleDeactivation(scope.row)}}},[_vm._v(\"\\n \"+_vm._s(scope.row.deactivated ? _vm.$t('users.activateAccount') : _vm.$t('users.deactivateAccount'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showDeactivatedButton(scope.row.id))?_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.handleDeletion(scope.row)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.deleteAccount'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('el-dropdown-item',{class:{ 'active-tag': scope.row.tags.includes('force_nsfw') },attrs:{\"divided\":_vm.showAdminAction(scope.row)},nativeOn:{\"click\":function($event){return _vm.toggleTag(scope.row, 'force_nsfw')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.forceNsfw'))+\"\\n \"),(scope.row.tags.includes('force_nsfw'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]),_vm._v(\" \"),_c('el-dropdown-item',{class:{ 'active-tag': scope.row.tags.includes('strip_media') },nativeOn:{\"click\":function($event){return _vm.toggleTag(scope.row, 'strip_media')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.stripMedia'))+\"\\n \"),(scope.row.tags.includes('strip_media'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]),_vm._v(\" \"),_c('el-dropdown-item',{class:{ 'active-tag': scope.row.tags.includes('force_unlisted') },nativeOn:{\"click\":function($event){return _vm.toggleTag(scope.row, 'force_unlisted')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.forceUnlisted'))+\"\\n \"),(scope.row.tags.includes('force_unlisted'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]),_vm._v(\" \"),_c('el-dropdown-item',{class:{ 'active-tag': scope.row.tags.includes('sandbox') },nativeOn:{\"click\":function($event){return _vm.toggleTag(scope.row, 'sandbox')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.sandbox'))+\"\\n \"),(scope.row.tags.includes('sandbox'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]),_vm._v(\" \"),(scope.row.local)?_c('el-dropdown-item',{class:{ 'active-tag': scope.row.tags.includes('disable_remote_subscription') },nativeOn:{\"click\":function($event){return _vm.toggleTag(scope.row, 'disable_remote_subscription')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.disableRemoteSubscription'))+\"\\n \"),(scope.row.tags.includes('disable_remote_subscription'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]):_vm._e(),_vm._v(\" \"),(scope.row.local)?_c('el-dropdown-item',{class:{ 'active-tag': scope.row.tags.includes('disable_any_subscription') },nativeOn:{\"click\":function($event){return _vm.toggleTag(scope.row, 'disable_any_subscription')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.disableAnySubscription'))+\"\\n \"),(scope.row.tags.includes('disable_any_subscription'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]):_vm._e()],1)],1)]}}])})],1),_vm._v(\" \"),(_vm.users.length === 0)?_c('div',{staticClass:\"no-users-message\"},[_c('p',[_vm._v(\"There are no users to display\")])]):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('div',{staticClass:\"pagination\"},[_c('el-pagination',{attrs:{\"total\":_vm.usersCount,\"current-page\":_vm.currentPage,\"page-size\":_vm.pageSize,\"background\":\"\",\"layout\":\"prev, pager, next\"},on:{\"current-change\":_vm.handlePageChange}})],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersFilter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsersFilter.vue?vue&type=script&lang=js&\"","<template>\n <el-select\n v-model=\"value\"\n :clearable=\"isDesktop\"\n :placeholder=\"$t('usersFilter.inputPlaceholder')\"\n multiple\n class=\"select-field\"\n @change=\"toggleFilters\">\n <el-option-group :label=\"$t('usersFilter.byUserType')\">\n <el-option value=\"local\">{{ $t('usersFilter.local') }}</el-option>\n <el-option value=\"external\">{{ $t('usersFilter.external') }}</el-option>\n </el-option-group>\n <el-option-group :label=\"$t('usersFilter.byStatus')\">\n <el-option value=\"active\">{{ $t('usersFilter.active') }}</el-option>\n <el-option value=\"deactivated\">{{ $t('usersFilter.deactivated') }}</el-option>\n </el-option-group>\n </el-select>\n</template>\n\n<script>\nexport default {\n data() {\n return {\n value: []\n }\n },\n computed: {\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n }\n },\n methods: {\n removeOppositeFilters() {\n const filtersQuantity = Object.keys(this.$store.state.users.filters).length\n const currentFilters = this.$data.value.slice()\n const indexOfLocal = currentFilters.indexOf('local')\n const indexOfExternal = currentFilters.indexOf('external')\n const indexOfActive = currentFilters.indexOf('active')\n const indexOfDeactivated = currentFilters.indexOf('deactivated')\n if (currentFilters.length === filtersQuantity) {\n return []\n } else if (indexOfLocal > -1 && indexOfExternal > -1) {\n const filterToRemove = indexOfLocal > indexOfExternal ? indexOfExternal : indexOfLocal\n currentFilters.splice(filterToRemove, 1)\n } else if (indexOfActive > -1 && indexOfDeactivated > -1) {\n const filterToRemove = indexOfActive > indexOfDeactivated ? indexOfDeactivated : indexOfActive\n currentFilters.splice(filterToRemove, 1)\n }\n return currentFilters\n },\n toggleFilters() {\n this.$data.value = this.removeOppositeFilters()\n const currentFilters = this.$data.value.reduce((acc, filter) => ({ ...acc, [filter]: true }), {})\n this.$store.dispatch('ToggleUsersFilter', currentFilters)\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss' scoped>\n.select-field {\n width: 350px;\n}\n@media\nonly screen and (max-width: 760px),\n(min-device-width: 768px) and (max-device-width: 1024px) {\n .select-field {\n width: 100%;\n margin-bottom: 5px;\n }\n}\n</style>\n","import { render, staticRenderFns } from \"./UsersFilter.vue?vue&type=template&id=71bc6b38&scoped=true&\"\nimport script from \"./UsersFilter.vue?vue&type=script&lang=js&\"\nexport * from \"./UsersFilter.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UsersFilter.vue?vue&type=style&index=0&id=71bc6b38&rel=stylesheet%2Fscss&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"71bc6b38\",\n null\n \n)\n\ncomponent.options.__file = \"UsersFilter.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-select',{staticClass:\"select-field\",attrs:{\"clearable\":_vm.isDesktop,\"placeholder\":_vm.$t('usersFilter.inputPlaceholder'),\"multiple\":\"\"},on:{\"change\":_vm.toggleFilters},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}},[_c('el-option-group',{attrs:{\"label\":_vm.$t('usersFilter.byUserType')}},[_c('el-option',{attrs:{\"value\":\"local\"}},[_vm._v(_vm._s(_vm.$t('usersFilter.local')))]),_vm._v(\" \"),_c('el-option',{attrs:{\"value\":\"external\"}},[_vm._v(_vm._s(_vm.$t('usersFilter.external')))])],1),_vm._v(\" \"),_c('el-option-group',{attrs:{\"label\":_vm.$t('usersFilter.byStatus')}},[_c('el-option',{attrs:{\"value\":\"active\"}},[_vm._v(_vm._s(_vm.$t('usersFilter.active')))]),_vm._v(\" \"),_c('el-option',{attrs:{\"value\":\"deactivated\"}},[_vm._v(_vm._s(_vm.$t('usersFilter.deactivated')))])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultipleUsersMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultipleUsersMenu.vue?vue&type=script&lang=js&\"","<template>\n <el-dropdown size=\"small\" trigger=\"click\" placement=\"bottom-start\">\n <el-button v-if=\"isDesktop\" class=\"actions-button\">\n <span class=\"actions-button-container\">\n <span>\n <i class=\"el-icon-edit\" />\n {{ $t('users.moderateUsers') }}\n </span>\n <i class=\"el-icon-arrow-down el-icon--right\"/>\n </span>\n </el-button>\n <el-dropdown-menu v-if=\"showDropdownForMultipleUsers\" slot=\"dropdown\">\n <el-dropdown-item\n @click.native=\"grantRightToMultipleUsers('admin')\">\n {{ $t('users.grantAdmin') }}\n </el-dropdown-item>\n <el-dropdown-item\n @click.native=\"revokeRightFromMultipleUsers('admin')\">\n {{ $t('users.revokeAdmin') }}\n </el-dropdown-item>\n <el-dropdown-item\n @click.native=\"grantRightToMultipleUsers('moderator')\">\n {{ $t('users.grantModerator') }}\n </el-dropdown-item>\n <el-dropdown-item\n @click.native=\"revokeRightFromMultipleUsers('moderator')\">\n {{ $t('users.revokeModerator') }}\n </el-dropdown-item>\n <el-dropdown-item\n divided\n @click.native=\"activateMultipleUsers\">\n {{ $t('users.activateAccounts') }}\n </el-dropdown-item>\n <el-dropdown-item\n @click.native=\"deactivateMultipleUsers\">\n {{ $t('users.deactivateAccounts') }}\n </el-dropdown-item>\n <el-dropdown-item\n @click.native=\"deleteMultipleUsers\">\n {{ $t('users.deleteAccounts') }}\n </el-dropdown-item>\n <el-dropdown-item divided class=\"no-hover\">\n <div class=\"tag-container\">\n <span class=\"tag-text\">{{ $t('users.forceNsfw') }}</span>\n <el-button-group class=\"tag-button-group\">\n <el-button size=\"mini\" @click.native=\"addTagForMultipleUsers('force_nsfw')\">\n {{ $t('users.apply') }}\n </el-button>\n <el-button size=\"mini\" @click.native=\"removeTagFromMultipleUsers('force_nsfw')\">\n {{ $t('users.remove') }}\n </el-button>\n </el-button-group>\n </div>\n </el-dropdown-item>\n <el-dropdown-item class=\"no-hover\">\n <div class=\"tag-container\">\n <span class=\"tag-text\">{{ $t('users.stripMedia') }}</span>\n <el-button-group class=\"tag-button-group\">\n <el-button size=\"mini\" @click.native=\"addTagForMultipleUsers('strip_media')\">\n {{ $t('users.apply') }}\n </el-button>\n <el-button size=\"mini\" @click.native=\"removeTagFromMultipleUsers('strip_media')\">\n {{ $t('users.remove') }}\n </el-button>\n </el-button-group>\n </div>\n </el-dropdown-item>\n <el-dropdown-item class=\"no-hover\">\n <div class=\"tag-container\">\n <span class=\"tag-text\">{{ $t('users.forceUnlisted') }}</span>\n <el-button-group class=\"tag-button-group\">\n <el-button size=\"mini\" @click.native=\"addTagForMultipleUsers('force_unlisted')\">\n {{ $t('users.apply') }}\n </el-button>\n <el-button size=\"mini\" @click.native=\"removeTagFromMultipleUsers('force_unlisted')\">\n {{ $t('users.remove') }}\n </el-button>\n </el-button-group>\n </div>\n </el-dropdown-item>\n <el-dropdown-item class=\"no-hover\">\n <div class=\"tag-container\">\n <span class=\"tag-text\">{{ $t('users.sandbox') }}</span>\n <el-button-group class=\"tag-button-group\">\n <el-button size=\"mini\" @click.native=\"addTagForMultipleUsers('sandbox')\">\n {{ $t('users.apply') }}\n </el-button>\n <el-button size=\"mini\" @click.native=\"removeTagFromMultipleUsers('sandbox')\">\n {{ $t('users.remove') }}\n </el-button>\n </el-button-group>\n </div>\n </el-dropdown-item>\n <el-dropdown-item class=\"no-hover\">\n <div class=\"tag-container\">\n <span class=\"tag-text\">{{ $t('users.disableRemoteSubscriptionForMultiple') }}</span>\n <el-button-group class=\"tag-button-group\">\n <el-button size=\"mini\" @click.native=\"addTagForMultipleUsers('disable_remote_subscription')\">\n {{ $t('users.apply') }}\n </el-button>\n <el-button size=\"mini\" @click.native=\"removeTagFromMultipleUsers('disable_remote_subscription')\">\n {{ $t('users.remove') }}\n </el-button>\n </el-button-group>\n </div>\n </el-dropdown-item>\n <el-dropdown-item class=\"no-hover\">\n <div class=\"tag-container\">\n <span class=\"tag-text\">{{ $t('users.disableAnySubscriptionForMultiple') }}</span>\n <el-button-group class=\"tag-button-group\">\n <el-button size=\"mini\" @click.native=\"addTagForMultipleUsers('disable_any_subscription')\">\n {{ $t('users.apply') }}\n </el-button>\n <el-button size=\"mini\" @click.native=\"removeTagFromMultipleUsers('disable_any_subscription')\">\n {{ $t('users.remove') }}\n </el-button>\n </el-button-group>\n </div>\n </el-dropdown-item>\n </el-dropdown-menu>\n <el-dropdown-menu v-else slot=\"dropdown\">\n <el-dropdown-item>\n {{ $t('users.selectUsers') }}\n </el-dropdown-item>\n </el-dropdown-menu>\n </el-dropdown>\n</template>\n\n<script>\nexport default {\n props: {\n selectedUsers: {\n type: Array,\n default: function() {\n return []\n }\n }\n },\n computed: {\n showDropdownForMultipleUsers() {\n return this.$props.selectedUsers.length > 0\n },\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n }\n },\n methods: {\n mappers() {\n return {\n grantRight: (right) => () => this.selectedUsers\n .filter(user => user.local && !user.roles[right] && this.$store.state.user.id !== user.id)\n .map(user => this.$store.dispatch('ToggleRight', { user, right })),\n revokeRight: (right) => () => this.selectedUsers\n .filter(user => user.local && user.roles[right] && this.$store.state.user.id !== user.id)\n .map(user => this.$store.dispatch('ToggleRight', { user, right })),\n activate: () => this.selectedUsers\n .filter(user => user.deactivated && this.$store.state.user.id !== user.id)\n .map(user => this.$store.dispatch('ToggleUserActivation', user.nickname)),\n deactivate: () => this.selectedUsers\n .filter(user => !user.deactivated && this.$store.state.user.id !== user.id)\n .map(user => this.$store.dispatch('ToggleUserActivation', user.nickname)),\n remove: () => this.selectedUsers\n .filter(user => this.$store.state.user.id !== user.id)\n .map(user => this.$store.dispatch('DeleteUser', user)),\n addTag: (tag) => () => {\n const users = this.selectedUsers\n .filter(user => tag === 'disable_remote_subscription' || tag === 'disable_any_subscription'\n ? user.local && !user.tags.includes(tag)\n : !user.tags.includes(tag))\n this.$store.dispatch('AddTag', { users, tag })\n },\n removeTag: (tag) => () => {\n const users = this.selectedUsers\n .filter(user => tag === 'disable_remote_subscription' || tag === 'disable_any_subscription'\n ? user.local && user.tags.includes(tag)\n : user.tags.includes(tag))\n this.$store.dispatch('RemoveTag', { users, tag })\n }\n }\n },\n grantRightToMultipleUsers(right) {\n const { grantRight } = this.mappers()\n this.confirmMessage(\n this.$t('users.grantRightConfirmation', { right }),\n grantRight(right)\n )\n },\n revokeRightFromMultipleUsers(right) {\n const { revokeRight } = this.mappers()\n this.confirmMessage(\n this.$t('users.revokeRightConfirmation', { right }),\n revokeRight(right)\n )\n },\n activateMultipleUsers() {\n const { activate } = this.mappers()\n this.confirmMessage(\n this.$t('users.activateMultipleUsersConfirmation'),\n activate\n )\n },\n deactivateMultipleUsers() {\n const { deactivate } = this.mappers()\n this.confirmMessage(\n this.$t('users.deactivateMultipleUsersConfirmation'),\n deactivate\n )\n },\n deleteMultipleUsers() {\n const { remove } = this.mappers()\n this.confirmMessage(\n this.$t('users.deleteMultipleUsersConfirmation'),\n remove\n )\n },\n addTagForMultipleUsers(tag) {\n const { addTag } = this.mappers()\n this.confirmMessage(\n this.$t('users.addTagForMultipleUsersConfirmation'),\n addTag(tag)\n )\n },\n removeTagFromMultipleUsers(tag) {\n const { removeTag } = this.mappers()\n this.confirmMessage(\n this.$t('users.removeTagFromMultipleUsersConfirmation'),\n removeTag(tag)\n )\n },\n confirmMessage(message, applyAction) {\n this.$confirm(message, {\n confirmButtonText: this.$t('users.ok'),\n cancelButtonText: this.$t('users.cancel'),\n type: 'warning'\n }).then(() => {\n applyAction()\n this.$emit('apply-action')\n this.$message({\n type: 'success',\n message: this.$t('users.completed')\n })\n }).catch(() => {\n this.$message({\n type: 'info',\n message: this.$t('users.canceled')\n })\n })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss' scoped>\n .actions-button {\n text-align: left;\n width: 350px;\n padding: 10px;\n }\n .actions-button-container {\n display: flex;\n justify-content: space-between;\n }\n .el-dropdown {\n float: right;\n }\n .el-icon-edit {\n margin-right: 5px;\n }\n .tag-container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n .tag-text {\n padding-right: 20px;\n }\n .no-hover:hover {\n color: #606266;\n background-color: white;\n cursor: auto;\n }\n</style>\n","import { render, staticRenderFns } from \"./MultipleUsersMenu.vue?vue&type=template&id=94227b1e&scoped=true&\"\nimport script from \"./MultipleUsersMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./MultipleUsersMenu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MultipleUsersMenu.vue?vue&type=style&index=0&id=94227b1e&rel=stylesheet%2Fscss&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"94227b1e\",\n null\n \n)\n\ncomponent.options.__file = \"MultipleUsersMenu.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dropdown',{attrs:{\"size\":\"small\",\"trigger\":\"click\",\"placement\":\"bottom-start\"}},[(_vm.isDesktop)?_c('el-button',{staticClass:\"actions-button\"},[_c('span',{staticClass:\"actions-button-container\"},[_c('span',[_c('i',{staticClass:\"el-icon-edit\"}),_vm._v(\"\\n \"+_vm._s(_vm.$t('users.moderateUsers'))+\"\\n \")]),_vm._v(\" \"),_c('i',{staticClass:\"el-icon-arrow-down el-icon--right\"})])]):_vm._e(),_vm._v(\" \"),(_vm.showDropdownForMultipleUsers)?_c('el-dropdown-menu',{attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.grantRightToMultipleUsers('admin')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.grantAdmin'))+\"\\n \")]),_vm._v(\" \"),_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.revokeRightFromMultipleUsers('admin')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.revokeAdmin'))+\"\\n \")]),_vm._v(\" \"),_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.grantRightToMultipleUsers('moderator')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.grantModerator'))+\"\\n \")]),_vm._v(\" \"),_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.revokeRightFromMultipleUsers('moderator')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.revokeModerator'))+\"\\n \")]),_vm._v(\" \"),_c('el-dropdown-item',{attrs:{\"divided\":\"\"},nativeOn:{\"click\":function($event){return _vm.activateMultipleUsers($event)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.activateAccounts'))+\"\\n \")]),_vm._v(\" \"),_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.deactivateMultipleUsers($event)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.deactivateAccounts'))+\"\\n \")]),_vm._v(\" \"),_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.deleteMultipleUsers($event)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.deleteAccounts'))+\"\\n \")]),_vm._v(\" \"),_c('el-dropdown-item',{staticClass:\"no-hover\",attrs:{\"divided\":\"\"}},[_c('div',{staticClass:\"tag-container\"},[_c('span',{staticClass:\"tag-text\"},[_vm._v(_vm._s(_vm.$t('users.forceNsfw')))]),_vm._v(\" \"),_c('el-button-group',{staticClass:\"tag-button-group\"},[_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.addTagForMultipleUsers('force_nsfw')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.apply'))+\"\\n \")]),_vm._v(\" \"),_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.removeTagFromMultipleUsers('force_nsfw')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.remove'))+\"\\n \")])],1)],1)]),_vm._v(\" \"),_c('el-dropdown-item',{staticClass:\"no-hover\"},[_c('div',{staticClass:\"tag-container\"},[_c('span',{staticClass:\"tag-text\"},[_vm._v(_vm._s(_vm.$t('users.stripMedia')))]),_vm._v(\" \"),_c('el-button-group',{staticClass:\"tag-button-group\"},[_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.addTagForMultipleUsers('strip_media')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.apply'))+\"\\n \")]),_vm._v(\" \"),_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.removeTagFromMultipleUsers('strip_media')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.remove'))+\"\\n \")])],1)],1)]),_vm._v(\" \"),_c('el-dropdown-item',{staticClass:\"no-hover\"},[_c('div',{staticClass:\"tag-container\"},[_c('span',{staticClass:\"tag-text\"},[_vm._v(_vm._s(_vm.$t('users.forceUnlisted')))]),_vm._v(\" \"),_c('el-button-group',{staticClass:\"tag-button-group\"},[_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.addTagForMultipleUsers('force_unlisted')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.apply'))+\"\\n \")]),_vm._v(\" \"),_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.removeTagFromMultipleUsers('force_unlisted')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.remove'))+\"\\n \")])],1)],1)]),_vm._v(\" \"),_c('el-dropdown-item',{staticClass:\"no-hover\"},[_c('div',{staticClass:\"tag-container\"},[_c('span',{staticClass:\"tag-text\"},[_vm._v(_vm._s(_vm.$t('users.sandbox')))]),_vm._v(\" \"),_c('el-button-group',{staticClass:\"tag-button-group\"},[_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.addTagForMultipleUsers('sandbox')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.apply'))+\"\\n \")]),_vm._v(\" \"),_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.removeTagFromMultipleUsers('sandbox')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.remove'))+\"\\n \")])],1)],1)]),_vm._v(\" \"),_c('el-dropdown-item',{staticClass:\"no-hover\"},[_c('div',{staticClass:\"tag-container\"},[_c('span',{staticClass:\"tag-text\"},[_vm._v(_vm._s(_vm.$t('users.disableRemoteSubscriptionForMultiple')))]),_vm._v(\" \"),_c('el-button-group',{staticClass:\"tag-button-group\"},[_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.addTagForMultipleUsers('disable_remote_subscription')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.apply'))+\"\\n \")]),_vm._v(\" \"),_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.removeTagFromMultipleUsers('disable_remote_subscription')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.remove'))+\"\\n \")])],1)],1)]),_vm._v(\" \"),_c('el-dropdown-item',{staticClass:\"no-hover\"},[_c('div',{staticClass:\"tag-container\"},[_c('span',{staticClass:\"tag-text\"},[_vm._v(_vm._s(_vm.$t('users.disableAnySubscriptionForMultiple')))]),_vm._v(\" \"),_c('el-button-group',{staticClass:\"tag-button-group\"},[_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.addTagForMultipleUsers('disable_any_subscription')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.apply'))+\"\\n \")]),_vm._v(\" \"),_c('el-button',{attrs:{\"size\":\"mini\"},nativeOn:{\"click\":function($event){return _vm.removeTagFromMultipleUsers('disable_any_subscription')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.remove'))+\"\\n \")])],1)],1)])],1):_c('el-dropdown-menu',{attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[_c('el-dropdown-item',[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.selectUsers'))+\"\\n \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewAccountDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewAccountDialog.vue?vue&type=script&lang=js&\"","<template>\n <el-dialog\n :visible.sync=\"isVisible\"\n :show-close=\"false\"\n :title=\"$t('users.createAccount')\"\n custom-class=\"create-user-dialog\"\n @open=\"resetForm\">\n <el-form ref=\"form\" :model=\"form\" :rules=\"rules\" :label-width=\"getLabelWidth\" status-icon>\n <el-form-item :label=\"$t('users.username')\" prop=\"nickname\" class=\"create-account-form-item\">\n <el-input v-model=\"form.nickname\" name=\"nickname\" autofocus/>\n </el-form-item>\n <el-form-item :label=\"$t('users.email')\" prop=\"email\" class=\"create-account-form-item\">\n <el-input v-model=\"form.email\" name=\"email\" type=\"email\"/>\n </el-form-item>\n <el-form-item :label=\"$t('users.password')\" prop=\"password\" class=\"create-account-form-item\">\n <el-input v-model=\"form.password\" type=\"password\" name=\"password\" autocomplete=\"off\"/>\n </el-form-item>\n </el-form>\n <span slot=\"footer\">\n <el-button @click=\"closeDialogWindow\">{{ $t('users.cancel') }}</el-button>\n <el-button type=\"primary\" @click=\"submitForm('form')\">{{ $t('users.create') }}</el-button>\n </span>\n </el-dialog>\n</template>\n\n<script>\nexport default {\n name: 'NewAccountDialog',\n props: {\n dialogFormVisible: {\n type: Boolean,\n default: function() {\n return false\n }\n }\n },\n data() {\n return {\n form: {\n nickname: '',\n email: '',\n password: ''\n },\n rules: {\n nickname: [\n { validator: this.validateUsername, trigger: 'blur' }\n ],\n email: [\n { validator: this.validateEmail, trigger: 'blur' }\n ],\n password: [\n { validator: this.validatePassword, trigger: 'blur' }\n ]\n }\n }\n },\n computed: {\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n },\n isVisible: {\n get() {\n return this.$props.dialogFormVisible\n },\n set() {\n this.closeDialogWindow()\n }\n },\n getLabelWidth() {\n return this.isDesktop ? '120px' : '80px'\n }\n },\n methods: {\n closeDialogWindow() {\n this.$emit('closeWindow')\n },\n resetForm() {\n this.$nextTick(() => {\n this.$refs['form'].resetFields()\n })\n },\n submitForm(formName) {\n this.$refs[formName].validate((valid) => {\n if (valid) {\n this.$emit('createNewAccount', this.$data.form)\n this.closeDialogWindow()\n this.$message({\n type: 'success',\n message: this.$t('users.completed')\n })\n } else {\n this.$message({\n type: 'error',\n message: this.$t('users.submitFormError')\n })\n return false\n }\n })\n },\n validateEmail(rule, value, callback) {\n if (value === '') {\n return callback(new Error(this.$t('users.emptyEmailError')))\n } else if (!this.validEmail(value)) {\n return callback(new Error(this.$t('users.invalidEmailError')))\n } else {\n return callback()\n }\n },\n validatePassword(rule, value, callback) {\n if (value === '') {\n return callback(new Error(this.$t('users.emptyPasswordError')))\n } else {\n return callback()\n }\n },\n validateUsername(rule, value, callback) {\n if (value === '') {\n return callback(new Error(this.$t('users.emptyNicknameError')))\n } else if (!this.validNickname(value)) {\n return callback(new Error(this.$t('users.invalidNicknameError')))\n } else {\n return callback()\n }\n },\n validEmail(email) {\n var re = /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/\n return re.test(email)\n },\n validNickname(nickname) {\n var re = /^[a-zA-Z\\d]+$/\n return re.test(nickname)\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@media\nonly screen and (max-width: 760px),\n(min-device-width: 768px) and (max-device-width: 1024px) {\n .create-user-dialog {\n width: 80%\n }\n .create-account-form-item {\n margin-bottom: 30px;\n }\n .el-dialog__body {\n padding: 20px 20px 0 20px\n }\n}\n</style>\n","import { render, staticRenderFns } from \"./NewAccountDialog.vue?vue&type=template&id=7004bda2&\"\nimport script from \"./NewAccountDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./NewAccountDialog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NewAccountDialog.vue?vue&type=style&index=0&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\ncomponent.options.__file = \"NewAccountDialog.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{attrs:{\"visible\":_vm.isVisible,\"show-close\":false,\"title\":_vm.$t('users.createAccount'),\"custom-class\":\"create-user-dialog\"},on:{\"update:visible\":function($event){_vm.isVisible=$event},\"open\":_vm.resetForm}},[_c('el-form',{ref:\"form\",attrs:{\"model\":_vm.form,\"rules\":_vm.rules,\"label-width\":_vm.getLabelWidth,\"status-icon\":\"\"}},[_c('el-form-item',{staticClass:\"create-account-form-item\",attrs:{\"label\":_vm.$t('users.username'),\"prop\":\"nickname\"}},[_c('el-input',{attrs:{\"name\":\"nickname\",\"autofocus\":\"\"},model:{value:(_vm.form.nickname),callback:function ($$v) {_vm.$set(_vm.form, \"nickname\", $$v)},expression:\"form.nickname\"}})],1),_vm._v(\" \"),_c('el-form-item',{staticClass:\"create-account-form-item\",attrs:{\"label\":_vm.$t('users.email'),\"prop\":\"email\"}},[_c('el-input',{attrs:{\"name\":\"email\",\"type\":\"email\"},model:{value:(_vm.form.email),callback:function ($$v) {_vm.$set(_vm.form, \"email\", $$v)},expression:\"form.email\"}})],1),_vm._v(\" \"),_c('el-form-item',{staticClass:\"create-account-form-item\",attrs:{\"label\":_vm.$t('users.password'),\"prop\":\"password\"}},[_c('el-input',{attrs:{\"type\":\"password\",\"name\":\"password\",\"autocomplete\":\"off\"},model:{value:(_vm.form.password),callback:function ($$v) {_vm.$set(_vm.form, \"password\", $$v)},expression:\"form.password\"}})],1)],1),_vm._v(\" \"),_c('span',{attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.closeDialogWindow}},[_vm._v(_vm._s(_vm.$t('users.cancel')))]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.submitForm('form')}}},[_vm._v(_vm._s(_vm.$t('users.create')))])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","<template>\n <div class=\"users-container\">\n <h1>\n {{ $t('users.users') }}\n <span class=\"user-count\">({{ normalizedUsersCount }})</span>\n </h1>\n <div class=\"filter-container\">\n <users-filter/>\n <el-input :placeholder=\"$t('users.search')\" v-model=\"search\" class=\"search\" @input=\"handleDebounceSearchInput\"/>\n </div>\n <div class=\"actions-container\">\n <el-button class=\"actions-button create-account\" @click=\"dialogFormVisible = true\">\n <span>\n <i class=\"el-icon-plus\" />\n {{ $t('users.createAccount') }}\n </span>\n </el-button>\n <multiple-users-menu\n :selected-users=\"selectedUsers\"\n @apply-action=\"clearSelection\"/>\n </div>\n <new-account-dialog\n :dialog-form-visible=\"dialogFormVisible\"\n @createNewAccount=\"createNewAccount\"\n @closeWindow=\"dialogFormVisible = false\"/>\n <el-table\n v-loading=\"loading\"\n ref=\"usersTable\"\n :data=\"users\"\n row-key=\"id\"\n style=\"width: 100%\"\n @selection-change=\"handleSelectionChange\">\n <el-table-column\n v-if=\"isDesktop\"\n type=\"selection\"\n reserve-selection\n width=\"44\"\n align=\"center\"/>\n <el-table-column :min-width=\"width\" :label=\"$t('users.id')\" prop=\"id\" />\n <el-table-column :label=\"$t('users.name')\" prop=\"nickname\">\n <template slot-scope=\"scope\">\n <router-link :to=\"{ name: 'UsersShow', params: { id: scope.row.id }}\">{{ scope.row.nickname }}</router-link>\n <el-tag v-if=\"isDesktop\" type=\"info\" size=\"mini\">\n <span>{{ scope.row.local ? $t('users.local') : $t('users.external') }}</span>\n </el-tag>\n </template>\n </el-table-column>\n <el-table-column :min-width=\"width\" :label=\"$t('users.status')\">\n <template slot-scope=\"scope\">\n <el-tag :type=\"scope.row.deactivated ? 'danger' : 'success'\">\n <span v-if=\"isDesktop\">{{ scope.row.deactivated ? $t('users.deactivated') : $t('users.active') }}</span>\n <i v-else :class=\"activationIcon(scope.row.deactivated)\"/>\n </el-tag>\n <el-tag v-if=\"scope.row.roles.admin\">\n <span>{{ isDesktop ? $t('users.admin') : getFirstLetter($t('users.admin')) }}</span>\n </el-tag>\n <el-tag v-if=\"scope.row.roles.moderator\">\n <span>{{ isDesktop ? $t('users.moderator') : getFirstLetter($t('users.moderator')) }}</span>\n </el-tag>\n </template>\n </el-table-column>\n <el-table-column :label=\"$t('users.actions')\" fixed=\"right\">\n <template slot-scope=\"scope\">\n <el-dropdown size=\"small\" trigger=\"click\">\n <span class=\"el-dropdown-link\">\n {{ $t('users.moderation') }}\n <i v-if=\"isDesktop\" class=\"el-icon-arrow-down el-icon--right\"/>\n </span>\n <el-dropdown-menu slot=\"dropdown\">\n <el-dropdown-item\n v-if=\"showAdminAction(scope.row)\"\n @click.native=\"toggleUserRight(scope.row, 'admin')\">\n {{ scope.row.roles.admin ? $t('users.revokeAdmin') : $t('users.grantAdmin') }}\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"showAdminAction(scope.row)\"\n @click.native=\"toggleUserRight(scope.row, 'moderator')\">\n {{ scope.row.roles.moderator ? $t('users.revokeModerator') : $t('users.grantModerator') }}\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"showDeactivatedButton(scope.row.id)\"\n :divided=\"showAdminAction(scope.row)\"\n @click.native=\"handleDeactivation(scope.row)\">\n {{ scope.row.deactivated ? $t('users.activateAccount') : $t('users.deactivateAccount') }}\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"showDeactivatedButton(scope.row.id)\"\n @click.native=\"handleDeletion(scope.row)\">\n {{ $t('users.deleteAccount') }}\n </el-dropdown-item>\n <el-dropdown-item\n :divided=\"showAdminAction(scope.row)\"\n :class=\"{ 'active-tag': scope.row.tags.includes('force_nsfw') }\"\n @click.native=\"toggleTag(scope.row, 'force_nsfw')\">\n {{ $t('users.forceNsfw') }}\n <i v-if=\"scope.row.tags.includes('force_nsfw')\" class=\"el-icon-check\"/>\n </el-dropdown-item>\n <el-dropdown-item\n :class=\"{ 'active-tag': scope.row.tags.includes('strip_media') }\"\n @click.native=\"toggleTag(scope.row, 'strip_media')\">\n {{ $t('users.stripMedia') }}\n <i v-if=\"scope.row.tags.includes('strip_media')\" class=\"el-icon-check\"/>\n </el-dropdown-item>\n <el-dropdown-item\n :class=\"{ 'active-tag': scope.row.tags.includes('force_unlisted') }\"\n @click.native=\"toggleTag(scope.row, 'force_unlisted')\">\n {{ $t('users.forceUnlisted') }}\n <i v-if=\"scope.row.tags.includes('force_unlisted')\" class=\"el-icon-check\"/>\n </el-dropdown-item>\n <el-dropdown-item\n :class=\"{ 'active-tag': scope.row.tags.includes('sandbox') }\"\n @click.native=\"toggleTag(scope.row, 'sandbox')\">\n {{ $t('users.sandbox') }}\n <i v-if=\"scope.row.tags.includes('sandbox')\" class=\"el-icon-check\"/>\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"scope.row.local\"\n :class=\"{ 'active-tag': scope.row.tags.includes('disable_remote_subscription') }\"\n @click.native=\"toggleTag(scope.row, 'disable_remote_subscription')\">\n {{ $t('users.disableRemoteSubscription') }}\n <i v-if=\"scope.row.tags.includes('disable_remote_subscription')\" class=\"el-icon-check\"/>\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"scope.row.local\"\n :class=\"{ 'active-tag': scope.row.tags.includes('disable_any_subscription') }\"\n @click.native=\"toggleTag(scope.row, 'disable_any_subscription')\">\n {{ $t('users.disableAnySubscription') }}\n <i v-if=\"scope.row.tags.includes('disable_any_subscription')\" class=\"el-icon-check\"/>\n </el-dropdown-item>\n </el-dropdown-menu>\n </el-dropdown>\n </template>\n </el-table-column>\n </el-table>\n <div v-if=\"users.length === 0\" class=\"no-users-message\">\n <p>There are no users to display</p>\n </div>\n <div v-if=\"!loading\" class=\"pagination\">\n <el-pagination\n :total=\"usersCount\"\n :current-page=\"currentPage\"\n :page-size=\"pageSize\"\n background\n layout=\"prev, pager, next\"\n @current-change=\"handlePageChange\"\n />\n </div>\n </div>\n</template>\n\n<script>\nimport debounce from 'lodash.debounce'\nimport numeral from 'numeral'\nimport UsersFilter from './components/UsersFilter'\nimport MultipleUsersMenu from './components/MultipleUsersMenu'\nimport NewAccountDialog from './components/NewAccountDialog'\n\nexport default {\n name: 'Users',\n components: {\n UsersFilter,\n MultipleUsersMenu,\n NewAccountDialog\n },\n data() {\n return {\n search: '',\n selectedUsers: [],\n dialogFormVisible: false\n }\n },\n computed: {\n loading() {\n return this.$store.state.users.loading\n },\n normalizedUsersCount() {\n return numeral(this.$store.state.users.totalUsersCount).format('0a')\n },\n users() {\n return this.$store.state.users.fetchedUsers\n },\n usersCount() {\n return this.$store.state.users.totalUsersCount\n },\n pageSize() {\n return this.$store.state.users.pageSize\n },\n currentPage() {\n return this.$store.state.users.currentPage\n },\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n width() {\n return this.isMobile ? 55 : false\n }\n },\n created() {\n this.handleDebounceSearchInput = debounce((query) => {\n this.$store.dispatch('SearchUsers', { query, page: 1 })\n }, 500)\n },\n mounted: function() {\n this.$store.dispatch('FetchUsers', { page: 1 })\n },\n methods: {\n activationIcon(status) {\n return status ? 'el-icon-error' : 'el-icon-success'\n },\n clearSelection() {\n this.$refs.usersTable.clearSelection()\n },\n createNewAccount(accountData) {\n this.$store.dispatch('CreateNewAccount', accountData)\n },\n getFirstLetter(str) {\n return str.charAt(0).toUpperCase()\n },\n handleDeactivation({ nickname }) {\n this.$store.dispatch('ToggleUserActivation', nickname)\n },\n handleDeletion(user) {\n this.$store.dispatch('DeleteUser', user)\n },\n handlePageChange(page) {\n const searchQuery = this.$store.state.users.searchQuery\n if (searchQuery === '') {\n this.$store.dispatch('FetchUsers', { page })\n } else {\n this.$store.dispatch('SearchUsers', { query: searchQuery, page })\n }\n },\n handleSelectionChange(value) {\n this.$data.selectedUsers = value\n },\n showAdminAction({ local, id }) {\n return local && this.showDeactivatedButton(id)\n },\n showDeactivatedButton(id) {\n return this.$store.state.user.id !== id\n },\n toggleTag(user, tag) {\n user.tags.includes(tag)\n ? this.$store.dispatch('RemoveTag', { users: [user], tag })\n : this.$store.dispatch('AddTag', { users: [user], tag })\n },\n toggleUserRight(user, right) {\n this.$store.dispatch('ToggleRight', { user, right })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss' scoped>\n.actions-button {\n text-align: left;\n width: 350px;\n padding: 10px;\n}\n.actions-container {\n display: flex;\n height: 36px;\n justify-content: space-between;\n align-items: center;\n margin: 0 15px 10px 15px;\n}\n.active-tag {\n color: #409EFF;\n font-weight: 700;\n .el-icon-check {\n color: #409EFF;\n float: right;\n margin: 7px 0 0 15px;\n }\n}\n.el-dropdown-link:hover {\n cursor: pointer;\n color: #409EFF;\n }\n.el-icon-plus {\n margin-right: 5px;\n}\n.users-container {\n h1 {\n margin: 22px 0 0 15px;\n }\n\n .pagination {\n margin: 25px 0;\n text-align: center;\n }\n\n .search {\n width: 350px;\n float: right;\n }\n .filter-container {\n display: flex;\n height: 36px;\n justify-content: space-between;\n align-items: center;\n margin: 22px 15px 15px 15px\n }\n .user-count {\n color: gray;\n font-size: 28px;\n }\n}\n@media\nonly screen and (max-width: 760px),\n(min-device-width: 768px) and (max-device-width: 1024px) {\n .users-container {\n h1 {\n margin: 7px 10px 15px 10px;\n }\n .actions-container {\n display: flex;\n flex-direction: column;\n margin: 0 10px 7px 10px\n }\n .create-account {\n width: 100%;\n }\n .el-icon-arrow-down {\n font-size: 12px;\n }\n .search {\n width: 100%;\n }\n .filter-container {\n display: flex;\n height: 82px;\n flex-direction: column;\n margin: 0 10px\n }\n .el-tag {\n width: 30px;\n display: inline-block;\n margin-bottom: 4px;\n font-weight: bold;\n &.el-tag--success {\n padding-left: 8px;\n }\n &.el-tag--danger {\n padding-left: 8px;\n }\n }\n }\n}\n</style>\n","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=c51cd8ee&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=c51cd8ee&rel=stylesheet%2Fscss&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c51cd8ee\",\n null\n \n)\n\ncomponent.options.__file = \"index.vue\"\nexport default component.exports"],"sourceRoot":""}