1 line
No EOL
114 KiB
Text
1 line
No EOL
114 KiB
Text
{"version":3,"sources":["webpack:///./src/views/users/components/ModerationDropdown.vue?e3f0","webpack:///./src/views/users/index.vue?1afe","webpack:///./node_modules/lodash.debounce/index.js","webpack:///./src/views/users/components/NewAccountDialog.vue?d353","webpack:///./src/views/users/components/MultipleUsersMenu.vue?64bc","webpack:///./src/views/users/index.vue?1d86","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?01ea","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?43a7","webpack:///./src/views/users/index.vue?0a29","webpack:///src/views/users/index.vue","webpack:///./src/views/users/index.vue","webpack:///./src/views/users/components/MultipleUsersMenu.vue?25e9","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/ModerationDropdown.vue?8341","webpack:///./src/views/users/components/ModerationDropdown.vue?676e","webpack:///src/views/users/components/ModerationDropdown.vue","webpack:///./src/views/users/components/ModerationDropdown.vue","webpack:///./src/views/users/components/UsersFilter.vue?8a62"],"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_ModerationDropdown_vue_vue_type_style_index_0_rel_stylesheet_2Fscss_lang_scss___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_index_vue_vue_type_style_index_0_rel_stylesheet_2Fscss_lang_scss___WEBPACK_IMPORTED_MODULE_0__","global","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","Object","freeSelf","self","root","Function","objectToString","prototype","toString","nativeMax","Math","max","nativeMin","min","now","Date","isObject","value","type","toNumber","isObjectLike","call","isSymbol","other","valueOf","replace","isBinary","test","slice","module","exports","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","apply","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","remainingWait","debounced","isInvoking","arguments","this","leadingEdge","cancel","clearTimeout","flush","_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_MultipleUsersMenu_vue_vue_type_style_index_0_id_3850612b_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__","components_UsersFiltervue_type_script_lang_js_","data","computed","isDesktop","$store","state","app","device","methods","removeOppositeFilters","filtersQuantity","keys","users","filters","length","currentFilters","$data","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","__file","UsersFilter","components_NewAccountDialogvue_type_script_lang_js_","name","props","dialogFormVisible","Boolean","default","newUserForm","nickname","email","password","rules","validator","validateUsername","trigger","validateEmail","validatePassword","isVisible","get","$props","set","closeDialogWindow","getLabelWidth","$emit","resetForm","_this","$nextTick","$refs","resetFields","submitForm","formName","_this2","validate","valid","$message","message","rule","Error","validEmail","validNickname","NewAccountDialog_component","visible","show-close","title","custom-class","update:visible","$event","open","ref","label-width","status-icon","prop","autofocus","$set","autocomplete","slot","click","views_usersvue_type_script_lang_js_","components","NewAccountDialog","ModerationDropdown","MultipleUsersMenu","search","selectedUsers","createAccountDialogOpen","resetPasswordDialogOpen","loading","normalizedUsersCount","numeral_default","totalUsersCount","format","fetchedUsers","usersCount","pageSize","passwordResetLink","passwordResetToken","link","token","currentPage","isMobile","width","created","handleDebounceSearchInput","lodash_debounce_default","query","page","mounted","activationIcon","status","clearSelection","usersTable","closeResetPasswordDialog","createNewAccount","_createNewAccount","asyncToGenerator_default","regenerator_default","a","mark","_callee","accountData","wrap","_context","prev","next","stop","_x","getFirstLetter","str","charAt","toUpperCase","handlePageChange","searchQuery","handleSelectionChange","openResetPasswordDialog","showDeactivatedButton","id","user","users_component","input","selected-users","apply-action","dialog-form-visible","closeWindow","directives","rawName","staticStyle","row-key","selection-change","reserve-selection","align","_e","min-width","scopedSlots","_u","key","fn","scope","to","params","row","size","local","deactivated","class","roles","content","effect","fixed","open-reset-token-dialog","close","href","target","total","current-page","page-size","background","layout","current-change","__webpack_exports__","components_MultipleUsersMenuvue_type_script_lang_js_","Array","showDropdownForMultipleUsers","mappers","applyAction","_ref","dispatchAction","_x2","grantRight","right","addRightFn","_ref2","_callee2","_context2","abrupt","sent","_x3","filtered","revokeRight","deleteRightFn","_ref3","_callee3","_context3","_x4","activate","_ref4","_callee4","_context4","_x5","deactivate","_ref5","_callee5","_context5","_x6","remove","_ref6","_callee6","_context6","_x7","addTag","tag","tags","includes","_ref7","_callee7","_context7","_x8","removeTag","_callee9","_context9","_ref9","_callee8","_context8","_x9","requirePasswordReset","_ref10","_callee10","_context10","_x10","confirmAccounts","confirmation_pending","_ref11","_callee11","_context11","_x11","resendConfirmation","_ref12","_callee12","_context12","_x12","grantRightToMultipleUsers","confirmMessage","revokeRightFromMultipleUsers","activateMultipleUsers","deactivateMultipleUsers","deleteMultipleUsers","nodeInfo","metadata","mailerEnabled","$alert","addTagForMultipleUsers","removeTagFromMultipleUsers","confirmAccountsForMultipleUsers","resendConfirmationForMultipleUsers","$confirm","confirmButtonText","cancelButtonText","then","catch","placement","nativeOn","divided","components_ModerationDropdownvue_type_script_lang_js_","String","getPasswordResetToken","handleConfirmationResend","handleDeletion","_userId","handleEmailConfirmation","showAdminAction","toggleActivation","toggleTag","toggleUserRight","hide-on-click","admin","moderator","active-tag","_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_29abde8c_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__"],"mappings":"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","file":"static/js/chunk-0d8f.6d50ff86.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!./ModerationDropdown.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!./ModerationDropdown.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!./index.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!./index.vue?vue&type=style&index=0&rel=stylesheet%2Fscss&lang=scss&\"","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","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!./MultipleUsersMenu.vue?vue&type=style&index=0&id=3850612b&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=3850612b&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\",on:{\"click\":function($event){_vm.createAccountDialogOpen = true}}},[_c('span',{staticClass:\"create-account\"},[_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.createAccountDialogOpen},on:{\"createNewAccount\":_vm.createNewAccount,\"closeWindow\":function($event){_vm.createAccountDialogOpen = 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-tooltip',{attrs:{\"content\":_vm.$t('users.unconfirmedEmail'),\"effect\":\"dark\"}},[(scope.row.confirmation_pending)?_c('el-tag',{attrs:{\"type\":\"info\"}},[_vm._v(\"\\n \"+_vm._s(_vm.isDesktop ? _vm.$t('users.unconfirmed') : _vm.getFirstLetter(_vm.$t('users.unconfirmed')))+\"\\n \")]):_vm._e()],1)]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":_vm.$t('users.actions'),\"fixed\":\"right\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('moderation-dropdown',{attrs:{\"user\":scope.row,\"page\":'users'},on:{\"open-reset-token-dialog\":_vm.openResetPasswordDialog}})]}}])})],1),_vm._v(\" \"),_c('el-dialog',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],attrs:{\"visible\":_vm.resetPasswordDialogOpen,\"title\":_vm.$t('users.passwordResetTokenCreated'),\"custom-class\":\"password-reset-token-dialog\"},on:{\"update:visible\":function($event){_vm.resetPasswordDialogOpen=$event},\"close\":_vm.closeResetPasswordDialog}},[_c('div',[_c('p',{staticClass:\"password-reset-token\"},[_vm._v(\"Password reset token was generated: \"+_vm._s(_vm.passwordResetToken))]),_vm._v(\" \"),_c('p',[_vm._v(\"You can also use this link to reset password:\\n \"),_c('a',{staticClass:\"reset-password-link\",attrs:{\"href\":_vm.passwordResetLink,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.passwordResetLink))])])])]),_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\n@media only screen and (max-width:480px) {\n .select-field {\n width: 100%;\n margin-bottom: 5px;\n }\n}\n\n@media only screen and (max-width:801px) and (min-width: 481px) {\n .select-field {\n width: 50%;\n }\n}\n</style>\n","import { render, staticRenderFns } from \"./UsersFilter.vue?vue&type=template&id=29abde8c&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=29abde8c&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 \"29abde8c\",\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!./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=\"newUserForm\" :model=\"newUserForm\" :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=\"newUserForm.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=\"newUserForm.email\" name=\"email\" type=\"email\"/>\n </el-form-item>\n <el-form-item :label=\"$t('users.password')\" prop=\"password\" class=\"create-account-form-item-without-margin\">\n <el-input v-model=\"newUserForm.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('newUserForm')\">{{ $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 newUserForm: {\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' : '85px'\n }\n },\n methods: {\n closeDialogWindow() {\n this.$emit('closeWindow')\n },\n resetForm() {\n this.$nextTick(() => {\n this.$refs['newUserForm'].resetFields()\n })\n },\n submitForm(formName) {\n this.$refs[formName].validate((valid) => {\n if (valid) {\n this.$emit('createNewAccount', this.$data.newUserForm)\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.el-dialog__body {\n padding: 20px 20px 20px 20px\n}\n.create-account-form-item {\n margin-bottom: 20px;\n}\n.create-account-form-item-without-margin {\n margin-bottom: 0px;\n}\n\n@media only screen and (max-width:480px) {\n .create-user-dialog {\n width: 85%\n }\n .create-account-form-item {\n margin-bottom: 20px;\n }\n .el-dialog__body {\n padding: 20px 20px 20px 20px\n }\n}\n</style>\n","import { render, staticRenderFns } from \"./NewAccountDialog.vue?vue&type=template&id=c89e4c22&\"\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:\"newUserForm\",attrs:{\"model\":_vm.newUserForm,\"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.newUserForm.nickname),callback:function ($$v) {_vm.$set(_vm.newUserForm, \"nickname\", $$v)},expression:\"newUserForm.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.newUserForm.email),callback:function ($$v) {_vm.$set(_vm.newUserForm, \"email\", $$v)},expression:\"newUserForm.email\"}})],1),_vm._v(\" \"),_c('el-form-item',{staticClass:\"create-account-form-item-without-margin\",attrs:{\"label\":_vm.$t('users.password'),\"prop\":\"password\"}},[_c('el-input',{attrs:{\"type\":\"password\",\"name\":\"password\",\"autocomplete\":\"off\"},model:{value:(_vm.newUserForm.password),callback:function ($$v) {_vm.$set(_vm.newUserForm, \"password\", $$v)},expression:\"newUserForm.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('newUserForm')}}},[_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\" @click=\"createAccountDialogOpen = true\">\n <span class=\"create-account\">\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=\"createAccountDialogOpen\"\n @createNewAccount=\"createNewAccount\"\n @closeWindow=\"createAccountDialogOpen = 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 <el-tooltip :content=\"$t('users.unconfirmedEmail')\" effect=\"dark\">\n <el-tag v-if=\"scope.row.confirmation_pending\" type=\"info\">\n {{ isDesktop ? $t('users.unconfirmed') : getFirstLetter($t('users.unconfirmed')) }}\n </el-tag>\n </el-tooltip>\n </template>\n </el-table-column>\n <el-table-column :label=\"$t('users.actions')\" fixed=\"right\">\n <template slot-scope=\"scope\">\n <moderation-dropdown\n :user=\"scope.row\"\n :page=\"'users'\"\n @open-reset-token-dialog=\"openResetPasswordDialog\"/>\n </template>\n </el-table-column>\n </el-table>\n <el-dialog\n v-loading=\"loading\"\n :visible.sync=\"resetPasswordDialogOpen\"\n :title=\"$t('users.passwordResetTokenCreated')\"\n custom-class=\"password-reset-token-dialog\"\n @close=\"closeResetPasswordDialog\">\n <div>\n <p class=\"password-reset-token\">Password reset token was generated: {{ passwordResetToken }}</p>\n <p>You can also use this link to reset password:\n <a :href=\"passwordResetLink\" target=\"_blank\" class=\"reset-password-link\">{{ passwordResetLink }}</a>\n </p>\n </div>\n </el-dialog>\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'\nimport ModerationDropdown from './components/ModerationDropdown'\n\nexport default {\n name: 'Users',\n components: {\n NewAccountDialog,\n ModerationDropdown,\n MultipleUsersMenu,\n UsersFilter\n },\n data() {\n return {\n search: '',\n selectedUsers: [],\n createAccountDialogOpen: false,\n resetPasswordDialogOpen: 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 passwordResetLink() {\n return this.$store.state.users.passwordResetToken.link\n },\n passwordResetToken() {\n return this.$store.state.users.passwordResetToken.token\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 closeResetPasswordDialog() {\n this.resetPasswordDialogOpen = false\n this.$store.dispatch('RemovePasswordToken')\n },\n async createNewAccount(accountData) {\n await this.$store.dispatch('CreateNewAccount', accountData)\n this.createAccountDialogOpen = false\n },\n getFirstLetter(str) {\n return str.charAt(0).toUpperCase()\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 openResetPasswordDialog() {\n this.resetPasswordDialogOpen = true\n },\n showDeactivatedButton(id) {\n return this.$store.state.user.id !== id\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\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.create-account > .el-icon-plus {\n margin-right: 5px;\n}\n.password-reset-token {\n margin: 0 0 14px 0;\n}\n.password-reset-token-dialog {\n width: 50%\n}\n.reset-password-link {\n text-decoration: underline;\n}\n.users-container {\n h1 {\n margin: 10px 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\n@media only screen and (max-width:480px) {\n .password-reset-token-dialog {\n width: 85%\n }\n .users-container {\n h1 {\n margin: 7px 10px 15px 10px;\n }\n .actions-button {\n width: 100%;\n }\n .actions-container {\n display: flex;\n flex-direction: column;\n margin: 0 10px 7px 10px\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=21ae7d7e&\"\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&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 = \"index.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.confirmAccountsForMultipleUsers($event)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.confirmAccounts'))+\"\\n \")]),_vm._v(\" \"),_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.resendConfirmationForMultipleUsers($event)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.resendConfirmation'))+\"\\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',{nativeOn:{\"click\":function($event){return _vm.requirePasswordReset($event)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.requirePasswordReset'))+\"\\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!./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=\"confirmAccountsForMultipleUsers\">\n {{ $t('users.confirmAccounts') }}\n </el-dropdown-item>\n <el-dropdown-item\n @click.native=\"resendConfirmationForMultipleUsers\">\n {{ $t('users.resendConfirmation') }}\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\n @click.native=\"requirePasswordReset\">\n {{ $t('users.requirePasswordReset') }}\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 const applyAction = async(users, dispatchAction) => {\n await dispatchAction(users)\n this.$emit('apply-action')\n }\n return {\n grantRight: (right) => () => {\n const filterUsersFn = user => user.local && !user.roles[right] && this.$store.state.user.id !== user.id\n const addRightFn = async(users) => await this.$store.dispatch('AddRight', { users, right })\n const filtered = this.selectedUsers.filter(filterUsersFn)\n\n applyAction(filtered, addRightFn)\n },\n revokeRight: (right) => () => {\n const filterUsersFn = user => user.local && user.roles[right] && this.$store.state.user.id !== user.id\n const deleteRightFn = async(users) => await this.$store.dispatch('DeleteRight', { users, right })\n const filtered = this.selectedUsers.filter(filterUsersFn)\n\n applyAction(filtered, deleteRightFn)\n },\n activate: () => {\n const filtered = this.selectedUsers.filter(user => user.deactivated && this.$store.state.user.id !== user.id)\n const activateUsersFn = async(users) => await this.$store.dispatch('ActivateUsers', { users })\n\n applyAction(filtered, activateUsersFn)\n },\n deactivate: () => {\n const filtered = this.selectedUsers.filter(user => !user.deactivated && this.$store.state.user.id !== user.id)\n const deactivateUsersFn = async(users) => await this.$store.dispatch('DeactivateUsers', { users })\n\n applyAction(filtered, deactivateUsersFn)\n },\n remove: () => {\n const filtered = this.selectedUsers.filter(user => this.$store.state.user.id !== user.id)\n const deleteAccountFn = async(users) => await this.$store.dispatch('DeleteUsers', { users })\n\n applyAction(filtered, deleteAccountFn)\n },\n addTag: (tag) => () => {\n const filtered = this.selectedUsers.filter(user =>\n tag === 'disable_remote_subscription' || tag === 'disable_any_subscription'\n ? user.local && !user.tags.includes(tag)\n : !user.tags.includes(tag))\n const addTagFn = async(users) => await this.$store.dispatch('AddTag', { users, tag })\n applyAction(filtered, addTagFn)\n },\n removeTag: (tag) => async() => {\n const filtered = this.selectedUsers.filter(user =>\n tag === 'disable_remote_subscription' || tag === 'disable_any_subscription'\n ? user.local && user.tags.includes(tag)\n : user.tags.includes(tag))\n const removeTagFn = async(users) => await this.$store.dispatch('RemoveTag', { users, tag })\n\n applyAction(filtered, removeTagFn)\n },\n requirePasswordReset: () => {\n const filtered = this.selectedUsers.filter(user => user.local)\n const requirePasswordResetFn = async(users) => await this.$store.dispatch('RequirePasswordReset', users)\n\n applyAction(filtered, requirePasswordResetFn)\n },\n confirmAccounts: () => {\n const filtered = this.selectedUsers.filter(user => user.local && user.confirmation_pending)\n const confirmAccountFn = async(users) => await this.$store.dispatch('ConfirmUsersEmail', { users })\n\n applyAction(filtered, confirmAccountFn)\n },\n resendConfirmation: () => {\n const filtered = this.selectedUsers.filter(user => user.local && user.confirmation_pending)\n const resendConfirmationFn = async(users) => await this.$store.dispatch('ResendConfirmationEmail', users)\n\n applyAction(filtered, resendConfirmationFn)\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 requirePasswordReset() {\n const mailerEnabled = this.$store.state.user.nodeInfo.metadata.mailerEnabled\n\n if (!mailerEnabled) {\n this.$alert(this.$t('users.mailerMustBeEnabled'), 'Error', { type: 'error' })\n\n return\n }\n\n const { requirePasswordReset } = this.mappers()\n this.confirmMessage(\n this.$t('users.requirePasswordResetConfirmation'),\n requirePasswordReset\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 confirmAccountsForMultipleUsers() {\n const { confirmAccounts } = this.mappers()\n this.confirmMessage(\n this.$t('users.confirmAccountsConfirmation'),\n confirmAccounts\n )\n },\n resendConfirmationForMultipleUsers() {\n const { resendConfirmation } = this.mappers()\n this.confirmMessage(\n this.$t('users.resendEmailConfirmation'),\n resendConfirmation\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 }).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=3850612b&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=3850612b&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 \"3850612b\",\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:{\"hide-on-click\":false,\"size\":\"small\",\"trigger\":\"click\"}},[_c('div',[(_vm.page === 'users')?_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._e(),_vm._v(\" \"),(_vm.page === 'userPage')?_c('el-button',{staticClass:\"moderate-user-button\"},[_c('span',{staticClass:\"moderate-user-button-container\"},[_c('span',[_c('i',{staticClass:\"el-icon-edit\"}),_vm._v(\"\\n \"+_vm._s(_vm.$t('users.moderateUser'))+\"\\n \")]),_vm._v(\" \"),_c('i',{staticClass:\"el-icon-arrow-down el-icon--right\"})])]):_vm._e()],1),_vm._v(\" \"),_c('el-dropdown-menu',{attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[(_vm.showAdminAction(_vm.user))?_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.toggleUserRight(_vm.user, 'admin')}}},[_vm._v(\"\\n \"+_vm._s(_vm.user.roles.admin ? _vm.$t('users.revokeAdmin') : _vm.$t('users.grantAdmin'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showAdminAction(_vm.user))?_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.toggleUserRight(_vm.user, 'moderator')}}},[_vm._v(\"\\n \"+_vm._s(_vm.user.roles.moderator ? _vm.$t('users.revokeModerator') : _vm.$t('users.grantModerator'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showDeactivatedButton(_vm.user.id))?_c('el-dropdown-item',{attrs:{\"divided\":_vm.showAdminAction(_vm.user)},nativeOn:{\"click\":function($event){return _vm.toggleActivation(_vm.user)}}},[_vm._v(\"\\n \"+_vm._s(_vm.user.deactivated ? _vm.$t('users.activateAccount') : _vm.$t('users.deactivateAccount'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showDeactivatedButton(_vm.user.id))?_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.handleDeletion(_vm.user)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.deleteAccount'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.user.local && _vm.user.confirmation_pending)?_c('el-dropdown-item',{attrs:{\"divided\":\"\"},nativeOn:{\"click\":function($event){return _vm.handleEmailConfirmation(_vm.user)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.confirmAccount'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.user.local && _vm.user.confirmation_pending)?_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.handleConfirmationResend(_vm.user)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.resendConfirmation'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('el-dropdown-item',{class:{ 'active-tag': _vm.user.tags.includes('force_nsfw') },attrs:{\"divided\":_vm.showAdminAction(_vm.user)},nativeOn:{\"click\":function($event){return _vm.toggleTag(_vm.user, 'force_nsfw')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.forceNsfw'))+\"\\n \"),(_vm.user.tags.includes('force_nsfw'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]),_vm._v(\" \"),_c('el-dropdown-item',{class:{ 'active-tag': _vm.user.tags.includes('strip_media') },nativeOn:{\"click\":function($event){return _vm.toggleTag(_vm.user, 'strip_media')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.stripMedia'))+\"\\n \"),(_vm.user.tags.includes('strip_media'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]),_vm._v(\" \"),_c('el-dropdown-item',{class:{ 'active-tag': _vm.user.tags.includes('force_unlisted') },nativeOn:{\"click\":function($event){return _vm.toggleTag(_vm.user, 'force_unlisted')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.forceUnlisted'))+\"\\n \"),(_vm.user.tags.includes('force_unlisted'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]),_vm._v(\" \"),_c('el-dropdown-item',{class:{ 'active-tag': _vm.user.tags.includes('sandbox') },nativeOn:{\"click\":function($event){return _vm.toggleTag(_vm.user, 'sandbox')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.sandbox'))+\"\\n \"),(_vm.user.tags.includes('sandbox'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]),_vm._v(\" \"),(_vm.user.local)?_c('el-dropdown-item',{class:{ 'active-tag': _vm.user.tags.includes('disable_remote_subscription') },nativeOn:{\"click\":function($event){return _vm.toggleTag(_vm.user, 'disable_remote_subscription')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.disableRemoteSubscription'))+\"\\n \"),(_vm.user.tags.includes('disable_remote_subscription'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.user.local)?_c('el-dropdown-item',{class:{ 'active-tag': _vm.user.tags.includes('disable_any_subscription') },nativeOn:{\"click\":function($event){return _vm.toggleTag(_vm.user, 'disable_any_subscription')}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.disableAnySubscription'))+\"\\n \"),(_vm.user.tags.includes('disable_any_subscription'))?_c('i',{staticClass:\"el-icon-check\"}):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.user.local)?_c('el-dropdown-item',{attrs:{\"divided\":\"\"},nativeOn:{\"click\":function($event){return _vm.getPasswordResetToken(_vm.user.nickname)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.getPasswordResetToken'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.user.local)?_c('el-dropdown-item',{nativeOn:{\"click\":function($event){return _vm.requirePasswordReset(_vm.user)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.requirePasswordReset'))+\"\\n \")]):_vm._e()],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!./ModerationDropdown.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!./ModerationDropdown.vue?vue&type=script&lang=js&\"","<template>\n <el-dropdown :hide-on-click=\"false\" size=\"small\" trigger=\"click\">\n <div>\n <span v-if=\"page === 'users'\" 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-button v-if=\"page === 'userPage'\" class=\"moderate-user-button\">\n <span class=\"moderate-user-button-container\">\n <span>\n <i class=\"el-icon-edit\" />\n {{ $t('users.moderateUser') }}\n </span>\n <i class=\"el-icon-arrow-down el-icon--right\"/>\n </span>\n </el-button>\n </div>\n <el-dropdown-menu slot=\"dropdown\">\n <el-dropdown-item\n v-if=\"showAdminAction(user)\"\n @click.native=\"toggleUserRight(user, 'admin')\">\n {{ user.roles.admin ? $t('users.revokeAdmin') : $t('users.grantAdmin') }}\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"showAdminAction(user)\"\n @click.native=\"toggleUserRight(user, 'moderator')\">\n {{ user.roles.moderator ? $t('users.revokeModerator') : $t('users.grantModerator') }}\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"showDeactivatedButton(user.id)\"\n :divided=\"showAdminAction(user)\"\n @click.native=\"toggleActivation(user)\">\n {{ user.deactivated ? $t('users.activateAccount') : $t('users.deactivateAccount') }}\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"showDeactivatedButton(user.id)\"\n @click.native=\"handleDeletion(user)\">\n {{ $t('users.deleteAccount') }}\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"user.local && user.confirmation_pending\"\n divided\n @click.native=\"handleEmailConfirmation(user)\">\n {{ $t('users.confirmAccount') }}\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"user.local && user.confirmation_pending\"\n @click.native=\"handleConfirmationResend(user)\">\n {{ $t('users.resendConfirmation') }}\n </el-dropdown-item>\n <el-dropdown-item\n :divided=\"showAdminAction(user)\"\n :class=\"{ 'active-tag': user.tags.includes('force_nsfw') }\"\n @click.native=\"toggleTag(user, 'force_nsfw')\">\n {{ $t('users.forceNsfw') }}\n <i v-if=\"user.tags.includes('force_nsfw')\" class=\"el-icon-check\"/>\n </el-dropdown-item>\n <el-dropdown-item\n :class=\"{ 'active-tag': user.tags.includes('strip_media') }\"\n @click.native=\"toggleTag(user, 'strip_media')\">\n {{ $t('users.stripMedia') }}\n <i v-if=\"user.tags.includes('strip_media')\" class=\"el-icon-check\"/>\n </el-dropdown-item>\n <el-dropdown-item\n :class=\"{ 'active-tag': user.tags.includes('force_unlisted') }\"\n @click.native=\"toggleTag(user, 'force_unlisted')\">\n {{ $t('users.forceUnlisted') }}\n <i v-if=\"user.tags.includes('force_unlisted')\" class=\"el-icon-check\"/>\n </el-dropdown-item>\n <el-dropdown-item\n :class=\"{ 'active-tag': user.tags.includes('sandbox') }\"\n @click.native=\"toggleTag(user, 'sandbox')\">\n {{ $t('users.sandbox') }}\n <i v-if=\"user.tags.includes('sandbox')\" class=\"el-icon-check\"/>\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"user.local\"\n :class=\"{ 'active-tag': user.tags.includes('disable_remote_subscription') }\"\n @click.native=\"toggleTag(user, 'disable_remote_subscription')\">\n {{ $t('users.disableRemoteSubscription') }}\n <i v-if=\"user.tags.includes('disable_remote_subscription')\" class=\"el-icon-check\"/>\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"user.local\"\n :class=\"{ 'active-tag': user.tags.includes('disable_any_subscription') }\"\n @click.native=\"toggleTag(user, 'disable_any_subscription')\">\n {{ $t('users.disableAnySubscription') }}\n <i v-if=\"user.tags.includes('disable_any_subscription')\" class=\"el-icon-check\"/>\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"user.local\"\n divided\n @click.native=\"getPasswordResetToken(user.nickname)\">\n {{ $t('users.getPasswordResetToken') }}\n </el-dropdown-item>\n <el-dropdown-item\n v-if=\"user.local\"\n @click.native=\"requirePasswordReset(user)\">\n {{ $t('users.requirePasswordReset') }}\n </el-dropdown-item>\n </el-dropdown-menu>\n </el-dropdown>\n</template>\n\n<script>\nexport default {\n name: 'ModerationDropdown',\n props: {\n user: {\n type: Object,\n default: function() {\n return {}\n }\n },\n page: {\n type: String,\n default: 'users'\n }\n },\n computed: {\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n }\n },\n methods: {\n getPasswordResetToken(nickname) {\n this.$emit('open-reset-token-dialog')\n this.$store.dispatch('GetPasswordResetToken', nickname)\n },\n handleConfirmationResend(user) {\n this.$store.dispatch('ResendConfirmationEmail', [user])\n },\n handleDeletion(user) {\n this.$store.dispatch('DeleteUsers', { users: [user], _userId: user.id })\n },\n handleEmailConfirmation(user) {\n this.$store.dispatch('ConfirmUsersEmail', { users: [user], _userId: user.id })\n },\n requirePasswordReset(user) {\n const mailerEnabled = this.$store.state.user.nodeInfo.metadata.mailerEnabled\n if (!mailerEnabled) {\n this.$alert(this.$t('users.mailerMustBeEnabled'), 'Error', { type: 'error' })\n return\n }\n this.$store.dispatch('RequirePasswordReset', [user])\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 toggleActivation(user) {\n user.deactivated\n ? this.$store.dispatch('ActivateUsers', { users: [user], _userId: user.id })\n : this.$store.dispatch('DeactivateUsers', { users: [user], _userId: user.id })\n },\n toggleTag(user, tag) {\n user.tags.includes(tag)\n ? this.$store.dispatch('RemoveTag', { users: [user], tag, _userId: user.id })\n : this.$store.dispatch('AddTag', { users: [user], tag, _userId: user.id })\n },\n toggleUserRight(user, right) {\n user.roles[right]\n ? this.$store.dispatch('DeleteRight', { users: [user], right, _userId: user.id })\n : this.$store.dispatch('AddRight', { users: [user], right, _userId: user.id })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n .moderate-user-button {\n text-align: left;\n width: 200px;\n padding: 10px;\n }\n .moderate-user-button-container {\n display: flex;\n justify-content: space-between;\n }\n</style>\n","import { render, staticRenderFns } from \"./ModerationDropdown.vue?vue&type=template&id=9cf4b242&\"\nimport script from \"./ModerationDropdown.vue?vue&type=script&lang=js&\"\nexport * from \"./ModerationDropdown.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ModerationDropdown.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 = \"ModerationDropdown.vue\"\nexport default component.exports","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=29abde8c&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=29abde8c&rel=stylesheet%2Fscss&lang=scss&scoped=true&\""],"sourceRoot":""} |