This commit is contained in:
syuilo 2018-03-04 09:39:25 +09:00
parent a2246c5e91
commit 075bae834b
8 changed files with 46 additions and 7 deletions

View file

@ -31,6 +31,10 @@ module.exports = (params, user: IUser, app) => new Promise(async (res, rej) => {
const [text, textErr] = $(params.text).optional.string().pipe(isValidText).$;
if (textErr) return rej('invalid text');
// Get 'via_mobile' parameter
const [viaMobile = false, viaMobileErr] = $(params.via_mobile).optional.boolean().$;
if (viaMobileErr) return rej('invalid via_mobile');
// Get 'tags' parameter
const [tags = [], tagsErr] = $(params.tags).optional.array('string').unique().eachQ(t => t.range(1, 32)).$;
if (tagsErr) return rej('invalid tags');
@ -239,6 +243,7 @@ module.exports = (params, user: IUser, app) => new Promise(async (res, rej) => {
tags: tags,
user_id: user._id,
app_id: app ? app._id : null,
via_mobile: viaMobile,
// 以下非正規化データ
_reply: reply ? { user_id: reply.user_id } : undefined,

View file

@ -31,6 +31,7 @@ export type IPost = {
app_id: mongo.ObjectID;
category: string;
is_category_verified: boolean;
via_mobile: boolean;
};
/**

View file

@ -1,5 +1,5 @@
{
"copyright": "Copyright (c) 2014-2018 syuilo",
"themeColor": "#ff4e45",
"themeColor": "#5cbb2d",
"themeColorForeground": "#fff"
}

View file

@ -26,6 +26,7 @@
<span class="username">@{{ p.user.username }}</span>
<div class="info">
<span class="app" v-if="p.app">via <b>{{ p.app.name }}</b></span>
<span class="mobile" v-if="p.via_mobile">%fa:mobile-alt%</span>
<router-link class="created-at" :to="url">
<mk-time :time="p.created_at"/>
</router-link>
@ -399,6 +400,10 @@ export default Vue.extend({
margin-left auto
font-size 0.9em
> .mobile
margin-right 8px
color #ccc
> .app
margin-right 8px
padding-right 8px

View file

@ -26,6 +26,11 @@
<mk-switch v-model="os.i.client_settings.showPostFormOnTopOfTl" @change="onChangeShowPostFormOnTopOfTl" text="タイムライン上部に投稿フォームを表示する"/>
</section>
<section class="web" v-show="page == 'web'">
<h1>モバイル</h1>
<mk-switch v-model="os.i.client_settings.disableViaMobile" @change="onChangeDisableViaMobile" text="モバイルからの投稿とフラグを付けない"/>
</section>
<section class="web" v-show="page == 'web'">
<h1>言語</h1>
<el-select v-model="lang" placeholder="言語を選択">
@ -192,6 +197,12 @@ export default Vue.extend({
value: v
});
},
onChangeDisableViaMobile(v) {
(this as any).api('i/update_client_setting', {
name: 'disableViaMobile',
value: v
});
},
checkForUpdate() {
this.checkingForUpdate = true;
checkForUpdate((this as any).os, true, true).then(newer => {

View file

@ -91,11 +91,13 @@ export default Vue.extend({
},
post() {
this.posting = true;
const viaMobile = (this as any).os.i.client_settings.disableViaMobile !== true;
(this as any).api('posts/create', {
text: this.text == '' ? undefined : this.text,
media_ids: this.files.length > 0 ? this.files.map(f => f.id) : undefined,
reply_id: this.reply ? this.reply.id : undefined,
poll: this.poll ? (this.$refs.poll as any).get() : undefined
poll: this.poll ? (this.$refs.poll as any).get() : undefined,
via_mobile: viaMobile
}).then(data => {
this.$emit('post');
this.$destroy();

View file

@ -24,9 +24,12 @@
<router-link class="name" :to="`/${p.user.username}`">{{ p.user.name }}</router-link>
<span class="is-bot" v-if="p.user.is_bot">bot</span>
<span class="username">@{{ p.user.username }}</span>
<router-link class="created-at" :to="url">
<mk-time :time="p.created_at"/>
</router-link>
<div class="info">
<span class="mobile" v-if="p.via_mobile">%fa:mobile-alt%</span>
<router-link class="created-at" :to="url">
<mk-time :time="p.created_at"/>
</router-link>
</div>
</header>
<div class="body">
<div class="text" ref="text">
@ -336,10 +339,16 @@ export default Vue.extend({
margin 0 0.5em 0 0
color #ccc
> .created-at
> .info
margin-left auto
font-size 0.9em
color #c0c0c0
> .mobile
margin-right 6px
color #c0c0c0
> .created-at
color #c0c0c0
> .body

View file

@ -17,6 +17,12 @@ props:
desc:
ja: "投稿日時"
en: "The posted date of this post"
- name: "via_mobile"
type: "boolean"
optional: true
desc:
ja: "モバイル端末から投稿したか否か(自己申告であることに留意)"
en: "Whether this post sent via a mobile device"
- name: "text"
type: "string"
optional: true