This commit is contained in:
syuilo 2018-02-22 01:08:49 +09:00
parent 24142cd5c6
commit a77ac7e651
11 changed files with 47 additions and 22 deletions

View file

@ -12,7 +12,6 @@
@keydown="onSearchResultKeydown(i)" @keydown="onSearchResultKeydown(i)"
@click="navigate(user)" @click="navigate(user)"
tabindex="-1" tabindex="-1"
:key="user.id"
> >
<img class="avatar" :src="`${user.avatar_url}?thumbnail&size=32`" alt=""/> <img class="avatar" :src="`${user.avatar_url}?thumbnail&size=32`" alt=""/>
<span class="name">{{ user.name }}</span> <span class="name">{{ user.name }}</span>
@ -38,7 +37,7 @@
<mk-time :time="message.created_at"/> <mk-time :time="message.created_at"/>
</header> </header>
<div class="body"> <div class="body">
<p class="text"><span class="me" v-if="isMe(message)">%i18n:common.tags.mk-messaging.you%:</span>{{ text }}</p> <p class="text"><span class="me" v-if="isMe(message)">%i18n:common.tags.mk-messaging.you%:</span>{{ message.text }}</p>
</div> </div>
</div> </div>
</a> </a>

View file

@ -1,12 +1,12 @@
<template> <template>
<div class="mk-activity"> <div class="mk-activity" :data-melt="design == 2">
<template v-if="design == 0"> <template v-if="design == 0">
<p class="title">%fa:chart-bar%%i18n:desktop.tags.mk-activity-widget.title%</p> <p class="title">%fa:chart-bar%%i18n:desktop.tags.mk-activity-widget.title%</p>
<button @click="toggle" title="%i18n:desktop.tags.mk-activity-widget.toggle%">%fa:sort%</button> <button @click="toggle" title="%i18n:desktop.tags.mk-activity-widget.toggle%">%fa:sort%</button>
</template> </template>
<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> <p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p>
<template v-else> <template v-else>
<x-calender v-show="view == 0" :data="[].concat(activity)"/> <x-calendar v-show="view == 0" :data="[].concat(activity)"/>
<x-chart v-show="view == 1" :data="[].concat(activity)"/> <x-chart v-show="view == 1" :data="[].concat(activity)"/>
</template> </template>
</div> </div>

View file

@ -1,5 +1,5 @@
<template> <template>
<mk-window ref="window" is-modal width='800px' height='500px' @closed="$destroy"> <mk-window ref="window" is-modal width="800px" height="500px" @closed="$destroy">
<span slot="header"> <span slot="header">
<span v-html="title" :class="$style.title"></span> <span v-html="title" :class="$style.title"></span>
</span> </span>
@ -10,7 +10,7 @@
:multiple="false" :multiple="false"
/> />
<div :class="$style.footer"> <div :class="$style.footer">
<button :class="$style.cancel" @click="close">キャンセル</button> <button :class="$style.cancel" @click="cancel">キャンセル</button>
<button :class="$style.ok" @click="ok">決定</button> <button :class="$style.ok" @click="ok">決定</button>
</div> </div>
</mk-window> </mk-window>

View file

@ -147,7 +147,8 @@ export default Vue.extend({
this.$emit('loaded'); this.$emit('loaded');
}, },
onWidgetContextmenu(widgetId) { onWidgetContextmenu(widgetId) {
(this.$refs[widgetId] as any)[0].func(); const w = (this.$refs[widgetId] as any)[0];
if (w.func) w.func();
}, },
onWidgetSort() { onWidgetSort() {
this.saveHome(); this.saveHome();

View file

@ -37,6 +37,16 @@ import wBroadcast from './widgets/broadcast.vue';
import wTimemachine from './widgets/timemachine.vue'; import wTimemachine from './widgets/timemachine.vue';
import wProfile from './widgets/profile.vue'; import wProfile from './widgets/profile.vue';
import wServer from './widgets/server.vue'; import wServer from './widgets/server.vue';
import wActivity from './widgets/activity.vue';
import wRss from './widgets/rss.vue';
import wTrends from './widgets/trends.vue';
import wVersion from './widgets/version.vue';
import wUsers from './widgets/users.vue';
import wPolls from './widgets/polls.vue';
import wPostForm from './widgets/post-form.vue';
import wMessaging from './widgets/messaging.vue';
import wChannel from './widgets/channel.vue';
import wAccessLog from './widgets/access-log.vue';
Vue.component('mk-ui', ui); Vue.component('mk-ui', ui);
Vue.component('mk-ui-notification', uiNotification); Vue.component('mk-ui-notification', uiNotification);
@ -67,7 +77,7 @@ Vue.component('mk-activity', activity);
Vue.component('mkw-nav', wNav); Vue.component('mkw-nav', wNav);
Vue.component('mkw-calendar', wCalendar); Vue.component('mkw-calendar', wCalendar);
Vue.component('mkw-photo-stream', wPhotoStream); Vue.component('mkw-photo-stream', wPhotoStream);
Vue.component('mkw-slideshoe', wSlideshow); Vue.component('mkw-slideshow', wSlideshow);
Vue.component('mkw-tips', wTips); Vue.component('mkw-tips', wTips);
Vue.component('mkw-donation', wDonation); Vue.component('mkw-donation', wDonation);
Vue.component('mkw-notifications', wNotifications); Vue.component('mkw-notifications', wNotifications);
@ -75,3 +85,13 @@ Vue.component('mkw-broadcast', wBroadcast);
Vue.component('mkw-timemachine', wTimemachine); Vue.component('mkw-timemachine', wTimemachine);
Vue.component('mkw-profile', wProfile); Vue.component('mkw-profile', wProfile);
Vue.component('mkw-server', wServer); Vue.component('mkw-server', wServer);
Vue.component('mkw-activity', wActivity);
Vue.component('mkw-rss', wRss);
Vue.component('mkw-trends', wTrends);
Vue.component('mkw-version', wVersion);
Vue.component('mkw-users', wUsers);
Vue.component('mkw-polls', wPolls);
Vue.component('mkw-post-form', wPostForm);
Vue.component('mkw-messaging', wMessaging);
Vue.component('mkw-channel', wChannel);
Vue.component('mkw-access-log', wAccessLog);

View file

@ -6,7 +6,7 @@
<div ref="log"> <div ref="log">
<p v-for="req in requests"> <p v-for="req in requests">
<span class="ip" :style="`color:${ req.fg }; background:${ req.bg }`">{{ req.ip }}</span> <span class="ip" :style="`color:${ req.fg }; background:${ req.bg }`">{{ req.ip }}</span>
<span>{{ req.method }}</span> <b>{{ req.method }}</b>
<span>{{ req.path }}</span> <span>{{ req.path }}</span>
</p> </p>
</div> </div>
@ -15,7 +15,7 @@
<script lang="ts"> <script lang="ts">
import define from '../../../../common/define-widget'; import define from '../../../../common/define-widget';
import seedrandom from 'seedrandom'; import * as seedrandom from 'seedrandom';
export default define({ export default define({
name: 'broadcast', name: 'broadcast',
@ -101,4 +101,7 @@ export default define({
> .ip > .ip
margin-right 4px margin-right 4px
> b
margin-right 4px
</style> </style>

View file

@ -1,6 +1,6 @@
<template> <template>
<div class="mkw-channel"> <div class="mkw-channel">
<template v-if="!data.compact"> <template v-if="!props.compact">
<p class="title">%fa:tv%{{ channel ? channel.title : '%i18n:desktop.tags.mk-channel-home-widget.title%' }}</p> <p class="title">%fa:tv%{{ channel ? channel.title : '%i18n:desktop.tags.mk-channel-home-widget.title%' }}</p>
<button @click="settings" title="%i18n:desktop.tags.mk-channel-home-widget.settings%">%fa:cog%</button> <button @click="settings" title="%i18n:desktop.tags.mk-channel-home-widget.settings%">%fa:cog%</button>
</template> </template>

View file

@ -7,6 +7,8 @@
<script lang="ts"> <script lang="ts">
import define from '../../../../common/define-widget'; import define from '../../../../common/define-widget';
import MkMessagingRoomWindow from '../messaging-room-window.vue';
export default define({ export default define({
name: 'messaging', name: 'messaging',
props: () => ({ props: () => ({
@ -15,11 +17,11 @@ export default define({
}).extend({ }).extend({
methods: { methods: {
navigate(user) { navigate(user) {
if (this.platform == 'desktop') { document.body.appendChild(new MkMessagingRoomWindow({
this.wapi_openMessagingRoomWindow(user); propsData: {
} else { user: user
// TODO: open room page in new tab
} }
}).$mount().$el);
}, },
func() { func() {
if (this.props.design == 1) { if (this.props.design == 1) {

View file

@ -1,6 +1,6 @@
<template> <template>
<div class="mkw-post-form"> <div class="mkw-post-form">
<template v-if="data.design == 0"> <template v-if="props.design == 0">
<p class="title">%fa:pencil-alt%%i18n:desktop.tags.mk-post-form-home-widget.title%</p> <p class="title">%fa:pencil-alt%%i18n:desktop.tags.mk-post-form-home-widget.title%</p>
</template> </template>
<textarea :disabled="posting" v-model="text" @keydown="onKeydown" placeholder="%i18n:desktop.tags.mk-post-form-home-widget.placeholder%"></textarea> <textarea :disabled="posting" v-model="text" @keydown="onKeydown" placeholder="%i18n:desktop.tags.mk-post-form-home-widget.placeholder%"></textarea>

View file

@ -1,8 +1,8 @@
<template> <template>
<div class="mkw-slideshow"> <div class="mkw-slideshow">
<div @click="choose"> <div @click="choose">
<p v-if="data.folder === undefined">クリックしてフォルダを指定してください</p> <p v-if="props.folder === undefined">クリックしてフォルダを指定してください</p>
<p v-if="data.folder !== undefined && images.length == 0 && !fetching">このフォルダには画像がありません</p> <p v-if="props.folder !== undefined && images.length == 0 && !fetching">このフォルダには画像がありません</p>
<div ref="slideA" class="slide a"></div> <div ref="slideA" class="slide a"></div>
<div ref="slideB" class="slide b"></div> <div ref="slideB" class="slide b"></div>
</div> </div>

View file

@ -1,13 +1,13 @@
<template> <template>
<div class="mkw-trends"> <div class="mkw-trends">
<template v-if="!data.compact"> <template v-if="!props.compact">
<p class="title">%fa:fire%%i18n:desktop.tags.mk-trends-home-widget.title%</p> <p class="title">%fa:fire%%i18n:desktop.tags.mk-trends-home-widget.title%</p>
<button @click="fetch" title="%i18n:desktop.tags.mk-trends-home-widget.refresh%">%fa:sync%</button> <button @click="fetch" title="%i18n:desktop.tags.mk-trends-home-widget.refresh%">%fa:sync%</button>
</template> </template>
<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p> <p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p>
<div class="post" v-else-if="post != null"> <div class="post" v-else-if="post != null">
<p class="text"><a href="/{ post.user.username }/{ post.id }">{ post.text }</a></p> <p class="text"><router-link :to="`/${ post.user.username }/${ post.id }`">{{ post.text }}</router-link></p>
<p class="author"><a href="/{ post.user.username }">@{ post.user.username }</a></p> <p class="author"><router-link :to="`/${ post.user.username }`">@{{ post.user.username }}</router-link></p>
</div> </div>
<p class="empty" v-else>%i18n:desktop.tags.mk-trends-home-widget.nothing%</p> <p class="empty" v-else>%i18n:desktop.tags.mk-trends-home-widget.nothing%</p>
</div> </div>