diff --git a/app/Http/Controllers/ClosetController.php b/app/Http/Controllers/ClosetController.php index 03f5f953..4450d858 100644 --- a/app/Http/Controllers/ClosetController.php +++ b/app/Http/Controllers/ClosetController.php @@ -14,7 +14,14 @@ class ClosetController extends Controller public function index() { return view('user.closet') - ->with('extra', ['unverified' => option('require_verification') && ! $user->verified]); + ->with('extra', [ + 'unverified' => option('require_verification') && ! $user->verified, + 'rule' => trans('user.player.player-name-rule.'.option('player_name_rule')), + 'length' => trans( + 'user.player.player-name-length', + ['min' => option('player_name_length_min'), 'max' => option('player_name_length_max')] + ), + ]); } public function getClosetData(Request $request) diff --git a/resources/assets/src/components/AddPlayerDialog.vue b/resources/assets/src/components/AddPlayerDialog.vue new file mode 100644 index 00000000..c5ece55b --- /dev/null +++ b/resources/assets/src/components/AddPlayerDialog.vue @@ -0,0 +1,77 @@ + + + diff --git a/resources/assets/src/components/ApplyToPlayerDialog.vue b/resources/assets/src/components/ApplyToPlayerDialog.vue new file mode 100644 index 00000000..dda9c7c8 --- /dev/null +++ b/resources/assets/src/components/ApplyToPlayerDialog.vue @@ -0,0 +1,112 @@ + + + + + diff --git a/resources/assets/src/views/skinlib/Show.vue b/resources/assets/src/views/skinlib/Show.vue index 67208280..59123212 100644 --- a/resources/assets/src/views/skinlib/Show.vue +++ b/resources/assets/src/views/skinlib/Show.vue @@ -11,14 +11,16 @@ {{ $t('skinlib.addToCloset') }} @@ -157,10 +166,12 @@ import setAsAvatar from '../../components/mixins/setAsAvatar' import addClosetItem from '../../components/mixins/addClosetItem' import removeClosetItem from '../../components/mixins/removeClosetItem' +import ApplyToPlayerDialog from '../../components/ApplyToPlayerDialog.vue' export default { name: 'Show', components: { + ApplyToPlayerDialog, Previewer: () => import('../../components/Previewer.vue'), }, mixins: [ @@ -366,6 +377,9 @@ export default { this.$message.warning(msg) } }, + fetchPlayersList() { + this.$refs.useAs.fetchList() + }, }, } diff --git a/resources/assets/src/views/user/Closet.vue b/resources/assets/src/views/user/Closet.vue index 176c909b..86d905c2 100644 --- a/resources/assets/src/views/user/Closet.vue +++ b/resources/assets/src/views/user/Closet.vue @@ -131,7 +131,7 @@ type="primary" data-toggle="modal" data-target="#modal-use-as" - @click="applyTexture" + @click="fetchPlayersList" > {{ $t('user.useAs') }} @@ -142,52 +142,8 @@ - - + + @@ -196,6 +152,8 @@ import Paginate from 'vuejs-paginate' import { debounce, queryString } from '../../scripts/utils' import ClosetItem from '../../components/ClosetItem.vue' import EmailVerification from '../../components/EmailVerification.vue' +import AddPlayerDialog from '../../components/AddPlayerDialog.vue' +import ApplyToPlayerDialog from '../../components/ApplyToPlayerDialog.vue' export default { name: 'Closet', @@ -204,6 +162,8 @@ export default { ClosetItem, Previewer: () => import('../../components/Previewer.vue'), EmailVerification, + AddPlayerDialog, + ApplyToPlayerDialog, }, data: () => ({ category: 'skin', @@ -218,8 +178,6 @@ export default { skinUrl: '', selectedCape: 0, capeUrl: '', - players: [], - selectedPlayer: 0, linkToSkin: `${blessing.base_url}/skinlib?filter=skin`, linkToCape: `${blessing.base_url}/skinlib?filter=cape`, }), @@ -233,7 +191,7 @@ export default { const tid = +queryString('tid', 0) if (tid) { this.selectTexture(tid) - this.applyTexture() + this.fetchPlayersList() $('#modal-use-as').modal() } }, @@ -267,9 +225,6 @@ export default { pageChanged(page) { this.loadCloset(page) }, - avatarUrl(player) { - return `${blessing.base_url}/avatar/35/${player.tid_skin}` - }, async selectTexture(tid) { const { type, hash } = await this.$http.get(`/skinlib/info/${tid}`) if (type === 'cape') { @@ -280,41 +235,15 @@ export default { this.selectedSkin = tid } }, - async applyTexture() { - this.players = await this.$http.get('/user/player/list') - }, - async submitApplyTexture() { - if (!this.selectedPlayer) { - return this.$message.info(this.$t('user.emptySelectedPlayer')) - } - - if (!this.selectedSkin && !this.selectedCape) { - return this.$message.info(this.$t('user.emptySelectedTexture')) - } - - const { errno, msg } = await this.$http.post( - '/user/player/set', - { - pid: this.selectedPlayer, - tid: { - skin: this.selectedSkin || undefined, - cape: this.selectedCape || undefined, - }, - } - ) - if (errno === 0) { - this.$message.success(msg) - $('#modal-use-as').modal('hide') - } else { - this.$message.warning(msg) - } - }, resetSelected() { this.selectedSkin = 0 this.selectedCape = 0 this.skinUrl = '' this.capeUrl = '' }, + fetchPlayersList() { + this.$refs.useAs.fetchList() + }, }, } @@ -345,9 +274,6 @@ export default { a.selected color #3c8dbc -.player-item:not(:nth-child(1)) - margin-top 10px - .breadcrumb a margin-right 10px diff --git a/resources/assets/src/views/user/Players.vue b/resources/assets/src/views/user/Players.vue index b388729a..da68c6cf 100644 --- a/resources/assets/src/views/user/Players.vue +++ b/resources/assets/src/views/user/Players.vue @@ -116,57 +116,7 @@ - +