1 <div class="content-editor-wrap">
2 <div class="alert alert-info post-done" v-if="mode == 'posted' && isUpdate">
4 <span v-if="contentType == 'story'"><a href="#" @click="leavePreview">[再編集]</a></span>
6 <div class="alert alert-info post-done" v-else-if="mode == 'posted'">
7 投稿を行いました。URL:<A :href="createdUrl" v-text="createdUrl"></a>
8 <span v-if="contentType == 'story'"><a href="#" @click="leavePreview">[再編集]</a></span>
10 <div class="alert alert-info post-error-message" v-show="message">
11 <div v-if="message == 'duplicated_post'">エラー:すでに同じ内容が投稿されています</div>
12 <div v-else-if="message == 'server_error'">サーバーエラー:投稿に失敗しました</div>
13 <div v-else-if="message == 'no_title'">エラー:タイトルがありません</div>
14 <div v-else-if="message == 'no_content'">エラー:本文かURLを指定してください</div>
15 <div v-else-if="message == 'invalid_email'">エラー:不正なメールアドレスです</div>
16 <div v-else-if="message == 'invalid_url'">エラー:不正なURLです</div>
17 <div v-else v-text="'エラー:' + message"></div>
20 <form class="content-editor" v-if="mode == 'editing'">
23 <input type="text" name="title" v-model="editor.title" placeholder="タイトル" />
27 <div v-if="contentType == 'story'">
30 <input type="datetime-local" name="createtime"
31 v-model="editor.createtime" placeholder="2017/01/01 12:00:00"
32 value="[% date.format(date.now, "%FT%T") %]"/>
37 <select name="author" v-model="editor.author" >
38 [%- FOREACH author IN authors -%]
39 <option value="[% author.nickname %]"
40 [% IF author.uid == user.uid %]selected="selected"[% END %]>[% author.nickname %]</option>
47 <p v-if="contentType == 'story'">
49 <input type="text" name="dept" v-model="editor.dept" placeholder="部門名" />
55 <textarea name="introtext" v-model="editor.intro_text" class="editor"
56 placeholder="本文をここに記述してください" ></textarea>
60 <p v-if="contentType == 'story'">
62 <textarea name="bodytext" v-model="editor.body_text"
63 placeholder="続きの本文をここに記述してください" ></textarea>
67 <p v-if="contentType == 'story'">
69 <textarea name="media" v-model="editor.media"
70 placeholder="埋め込みコンテンツなどをここに記述してください" ></textarea>
74 <p v-if="contentType == 'submission'">
75 <label>URL(本文がない場合は必須):
76 <input type="text" name="url" v-model="editor.url" placeholder="重要なURLを1つ(任意)" />
80 <p v-if="contentType == 'submission'">
81 <label>投稿者のメールアドレス/URL(任意):
82 <input type="text" name="email" v-model="editor.email"
83 placeholder="メールアドレスかURL" />
87 <div class="tag-editor">
88 <label for="tag-single">タグ(空白区切り、任意):
89 <input type="text" name="tag-single" v-model="editor.tags_string">
93 <label>トピックス(タグに応じて自動的に設定されます):</label>
94 <ol class="topic-items">
95 <li v-for="topic in currentTopics">
96 <img :src="topicIconURL(topic)" v-show="topicIconURL(topic)" />
97 <span v-text="topic"></span>
102 </div><!-- .tag-editor -->
104 <div v-if="contentType == 'story'">
106 <div class="related-stories">
107 <ul v-for="rel in item.related">
108 <li v-if="rel.type == 'story'"><a :href="'/story/' + rel.key_id" v-text="rel.title"></a></li>
111 <textarea name="add_related" v-model="editor.related_urls"
112 placeholder="関連ストーリー(1行に1URL)" ></textarea>
116 <div v-if="contentType == 'story'">
119 <input type="text" name="mediaurl" v-model="editor.mediaurl" placeholder="URL" />
124 <select name="mediatype" v-model="editor.mediatype">
125 <option value="youtube">YouTube</option>
131 <div v-if="contentType == 'story' || contentType == 'journal'">
134 <select name="comment_status" v-model="editor.comment_status">
135 <option value="disabled">コメント無効</option>
136 <option value="enabled" selected="selected">コメント有効</option>
137 <option value="friends_fof_only">トモダチとそのトモダチ</option>
138 <option value="friends_only">トモダチのみ</option>
139 <option value="logged_in">ログインユーザのみ</option>
140 <option value="no_foe">テキじゃないみんな</option>
141 <option value="no_foe_eof">テキとトモダチのテキ以外</option>
146 <p class="checkbox" v-if="contentType == 'story'">
148 <input type="checkbox" name="display" v-model="editor.display" value="1" checked="checked"/>
154 <div v-if="contentType == 'journal' && item.formatter == 'legacy'">
157 <select name="posttype" v-model="editor.posttype">
158 <option value="1">テキスト形式(HTML OK!)</option>
159 <option value="2">HTML形式</option>
160 <option value="3">プレーンテキスト(HTML不可)</option>
161 <option value="4">コード(等幅)</option>
167 <p class="checkbox" v-show="!item.id && contentType == 'journal'">
169 <input type="checkbox" name="submissioncopy" v-model="editor.submissioncopy" value="0" />
174 <div class="submit post-preview">
175 <button type="submit" @click.prevent="showPreview">投稿確認</button>
176 <button type="button" v-if="isUpdate"
177 @click.prevent="cancelEdit">キャンセル</button>
181 <form class="submit post-submit" v-if="mode == 'preview'">
183 <button type="submit" @click.prevent="postItem" :disabled="mode == 'posting'">投稿</button>
184 <button type="button" @click="leavePreview" :disabled="mode == 'posting'">戻る</button>
188 <div class="alert alert-info" v-show="message">
189 <div v-if="message == 'duplicated_post'">エラー:すでに同じ内容が投稿されています</div>
190 <div v-else-if="message == 'server_error'">サーバーエラー:投稿に失敗しました</div>
191 <div v-else-if="message == 'no_title'">エラー:タイトルがありません</div>
192 <div v-else-if="message == 'no_content'">エラー:本文かURLを指定してください</div>
193 <div v-else-if="message == 'invalid_email'">エラー:不正なメールアドレスです</div>
194 <div v-else-if="message == 'invalid_url'">エラー:不正なURLです</div>
195 <div v-else v-text="'エラー:' + message"></div>
198 <div class="checkbox" v-if="mode == 'editing'">
200 <input type="checkbox" v-model="enableAutoPreview" :disabled="editor.formatter == 'legacy'"/>
203 <div class="alert alert-info" v-if="editor.formatter != 'modern'">
204 このフォーマットでは自動プレビューを利用できません