Ability to set header image for a Page (#6210)

* Ability to set header image for a Page

 - Add header image to Page
 - Show it on Page view
 - Show correctly it on Page list view
 - On the Page list view, pages have a light border
   to make it easier to see an image belongs to a page

* Maybe it looks better

* Use <img> instead if <x-image>

* src -> :src; set width

* Update page.vue

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
This commit is contained in:
Balazs Nadasdi 2020-04-05 10:55:51 +02:00 committed by GitHub
parent f4325b484b
commit decdec2c1d
3 changed files with 9 additions and 7 deletions

View file

@ -35,6 +35,7 @@ export default Vue.extend({
border: solid var(--lineWidth) var(--urlPreviewBorder);
border-radius: 4px;
overflow: hidden;
border: 1px solid var(--divider);
&:hover {
text-decoration: none;
@ -42,9 +43,8 @@ export default Vue.extend({
}
> .thumbnail {
position: absolute;
width: 100px;
height: 100%;
width: 100%;
height: 200px;
background-position: center;
background-size: cover;
display: flex;

View file

@ -102,6 +102,7 @@ import { blockDefs } from '../../scripts/aiscript/index';
import { ASTypeChecker } from '../../scripts/aiscript/type-checker';
import { url } from '../../config';
import { collectPageVars } from '../../scripts/collect-page-vars';
import { selectDriveFile } from '../../scripts/select-drive-file';
export default Vue.extend({
i18n,
@ -405,9 +406,7 @@ export default Vue.extend({
},
setEyeCatchingImage() {
this.$chooseDriveFile({
multiple: false
}).then(file => {
selectDriveFile(this.$root, false).then(file => {
this.eyeCatchingImageId = file.id;
});
},

View file

@ -5,6 +5,7 @@
<div class="_card" v-if="page" :key="page.id">
<div class="_title">{{ page.title }}</div>
<img class="header" :src="page.eyeCatchingImage.url" v-if="page.eyeCatchingImageId" />
<div class="_content">
<x-page :page="page"/>
</div>
@ -115,6 +116,8 @@ export default Vue.extend({
<style lang="scss" scoped>
.xcukqgmh {
> ._card > .header {
max-width: 100%;
}
}
</style>