--- /dev/null
+/* users-manager.js */
+const usersManager = {vm: {}};
+
+usersManager.run = function run (params) {
+ const data = {
+ message: '',
+ userName: "",
+ user: {
+ uid: "",
+ nickname: "",
+ realemail: "",
+ homepage: "",
+ sig: "",
+ seclev: 0,
+ author: 0
+ },
+ urls: {
+ get: '/api/v1/user',
+ },
+ showProfile: false,
+ };
+ const computed = {
+ isAuthor: function () {return this.user.author == 1;},
+ };
+
+ const methods = {
+ getUserInfo: getUserInfo,
+ };
+
+ function getUserInfo() {
+ var url;
+ if (/^\d+$/.test(this.userName)) {
+ url = this.urls.get + "?uid=" + this.userName;
+ } else {
+ url = this.urls.get + "?nickname=" + this.userName;
+ }
+ this.$http.get(url).then(
+ (resp) => { // success
+ this.user = resp.body.item || {};
+ },
+ (resp) => { // fail
+ this.message = resp.body.message || "failed to get items";
+ }
+ );
+ }
+
+ function created() {
+ if (params.uid) {
+ this.userName = params.uid;
+ this.getUserInfo();
+ } else if (params.nickname) {
+ this.userName = params.nickname;
+ this.getUserInfo();
+ }
+ }
+
+ this.vm = new Vue({el: params.el,
+ data: data,
+ computed: computed,
+ methods: methods,
+ created: created,
+ });
+};
--- /dev/null
+[% WRAPPER common/layout %]
+
+<div class="app-frame" id="users-manager">
+ <h2>Users Manager</h2>
+
+ <form class="users-search form-horizontal">
+ <div class="form-group">
+ <label for="user-name" class="col-sm-2 control-label">User Search:</label>
+ <div class="col-sm-8">
+ <input type="input" class="form-control" id="user-name" placeholder="nickname, uid"
+ v-model="userName" v-on:keyup.enter="getUserInfo">
+ </div>
+ <div class="col-sm-2">
+ <button type="submit" class="btn btn-default" v-on:click.prevent="getUserInfo">Search</button>
+ </div>
+ </div>
+ </form>
+
+ <div class="basic-info" v-show="user.uid">
+ <h3>
+ Basic informations:
+ </h3>
+ <dl>
+ <dt>uid:</dt>
+ <dd v-text="user.uid"></dd>
+ <dt>nickname:</dt>
+ <dd v-text="user.nickname"></dd>
+ <dt>seclev:</dt>
+ <dd v-text="user.seclev"></dd>
+ <dt>author:</dt>
+ <dd v-if="isAuthor">true</dd>
+ <dd v-else>false</dd>
+ </dl>
+ </div>
+
+ <div class="basic-info" v-show="user.uid">
+ <h3 v-on:click="showProfile=!showProfile">
+ <span class="glyphicon glyphicon-triangle-bottom" aria-hidden="true" v-if="showProfile"></span>
+ <span class="glyphicon glyphicon-triangle-right" aria-hidden="true" v-else></span>
+ Basic profile:
+ </h3>
+ <form class="user-info form-horizontal" v-show="showProfile">
+ <div class="item form-group">
+ <label class="col-sm-2 control-label" for="realemail">email:</label>
+ <div class="col-sm-10">
+ <input type="email" id="realemail" class="form-control" v-model="user.realemail"></input>
+ </div>
+ </div>
+
+ <div class="item form-group">
+ <label class="col-sm-2 control-label" for="homepage">homgepage:</label>
+ <div class="col-sm-10">
+ <input type="input" id="homgepage" class="form-control" v-model="user.homepage"></input>
+ </div>
+ </div>
+
+ <div class="item form-group">
+ <label class="col-sm-2 control-label" for="sig">sig:</label>
+ <div class="col-sm-10">
+ <textarea id="sig" class="form-control" v-model="user.sig"></textarea>
+ </div>
+ </div>
+
+ </form>
+ </div><!-- .basic-info -->
+
+
+</div>
+
+</div>
+
+<script src="/js/users-manager.js" ></script>
+<script>
+ usersManager.run({ el: '#users-manager',
+ [%- IF uid %] uid: [% uid %],[% END -%]
+ [%- IF nickname %] nickname: "[% nickname %]",[% END -%]
+ });
+</script>
+
+[% END %]