wip
This commit is contained in:
		
							parent
							
								
									7a8d9e3c2a
								
							
						
					
					
						commit
						a571ebfc82
					
				
					 4 changed files with 178 additions and 157 deletions
				
			
		| 
						 | 
				
			
			@ -1,69 +0,0 @@
 | 
			
		|||
<mk-drive-folder-selector>
 | 
			
		||||
	<div class="body">
 | 
			
		||||
		<header>
 | 
			
		||||
			<h1>%i18n:mobile.tags.mk-drive-folder-selector.select-folder%</h1>
 | 
			
		||||
			<button class="close" @click="cancel">%fa:times%</button>
 | 
			
		||||
			<button class="ok" @click="ok">%fa:check%</button>
 | 
			
		||||
		</header>
 | 
			
		||||
		<mk-drive ref="browser" select-folder={ true }/>
 | 
			
		||||
	</div>
 | 
			
		||||
	<style lang="stylus" scoped>
 | 
			
		||||
		:scope
 | 
			
		||||
			display block
 | 
			
		||||
			position fixed
 | 
			
		||||
			z-index 2048
 | 
			
		||||
			top 0
 | 
			
		||||
			left 0
 | 
			
		||||
			width 100%
 | 
			
		||||
			height 100%
 | 
			
		||||
			padding 8px
 | 
			
		||||
			background rgba(0, 0, 0, 0.2)
 | 
			
		||||
 | 
			
		||||
			> .body
 | 
			
		||||
				width 100%
 | 
			
		||||
				height 100%
 | 
			
		||||
				background #fff
 | 
			
		||||
 | 
			
		||||
				> header
 | 
			
		||||
					border-bottom solid 1px #eee
 | 
			
		||||
 | 
			
		||||
					> h1
 | 
			
		||||
						margin 0
 | 
			
		||||
						padding 0
 | 
			
		||||
						text-align center
 | 
			
		||||
						line-height 42px
 | 
			
		||||
						font-size 1em
 | 
			
		||||
						font-weight normal
 | 
			
		||||
 | 
			
		||||
					> .close
 | 
			
		||||
						position absolute
 | 
			
		||||
						top 0
 | 
			
		||||
						left 0
 | 
			
		||||
						line-height 42px
 | 
			
		||||
						width 42px
 | 
			
		||||
 | 
			
		||||
					> .ok
 | 
			
		||||
						position absolute
 | 
			
		||||
						top 0
 | 
			
		||||
						right 0
 | 
			
		||||
						line-height 42px
 | 
			
		||||
						width 42px
 | 
			
		||||
 | 
			
		||||
				> mk-drive
 | 
			
		||||
					height calc(100% - 42px)
 | 
			
		||||
					overflow scroll
 | 
			
		||||
					-webkit-overflow-scrolling touch
 | 
			
		||||
 | 
			
		||||
	</style>
 | 
			
		||||
	<script lang="typescript">
 | 
			
		||||
		this.cancel = () => {
 | 
			
		||||
			this.$emit('canceled');
 | 
			
		||||
			this.$destroy();
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		this.ok = () => {
 | 
			
		||||
			this.$emit('selected', this.$refs.browser.folder);
 | 
			
		||||
			this.$destroy();
 | 
			
		||||
		};
 | 
			
		||||
	</script>
 | 
			
		||||
</mk-drive-folder-selector>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,88 +0,0 @@
 | 
			
		|||
<mk-drive-selector>
 | 
			
		||||
	<div class="body">
 | 
			
		||||
		<header>
 | 
			
		||||
			<h1>%i18n:mobile.tags.mk-drive-selector.select-file%<span class="count" v-if="files.length > 0">({ files.length })</span></h1>
 | 
			
		||||
			<button class="close" @click="cancel">%fa:times%</button>
 | 
			
		||||
			<button v-if="opts.multiple" class="ok" @click="ok">%fa:check%</button>
 | 
			
		||||
		</header>
 | 
			
		||||
		<mk-drive ref="browser" select-file={ true } multiple={ opts.multiple }/>
 | 
			
		||||
	</div>
 | 
			
		||||
	<style lang="stylus" scoped>
 | 
			
		||||
		:scope
 | 
			
		||||
			display block
 | 
			
		||||
			position fixed
 | 
			
		||||
			z-index 2048
 | 
			
		||||
			top 0
 | 
			
		||||
			left 0
 | 
			
		||||
			width 100%
 | 
			
		||||
			height 100%
 | 
			
		||||
			padding 8px
 | 
			
		||||
			background rgba(0, 0, 0, 0.2)
 | 
			
		||||
 | 
			
		||||
			> .body
 | 
			
		||||
				width 100%
 | 
			
		||||
				height 100%
 | 
			
		||||
				background #fff
 | 
			
		||||
 | 
			
		||||
				> header
 | 
			
		||||
					border-bottom solid 1px #eee
 | 
			
		||||
 | 
			
		||||
					> h1
 | 
			
		||||
						margin 0
 | 
			
		||||
						padding 0
 | 
			
		||||
						text-align center
 | 
			
		||||
						line-height 42px
 | 
			
		||||
						font-size 1em
 | 
			
		||||
						font-weight normal
 | 
			
		||||
 | 
			
		||||
						> .count
 | 
			
		||||
							margin-left 4px
 | 
			
		||||
							opacity 0.5
 | 
			
		||||
 | 
			
		||||
					> .close
 | 
			
		||||
						position absolute
 | 
			
		||||
						top 0
 | 
			
		||||
						left 0
 | 
			
		||||
						line-height 42px
 | 
			
		||||
						width 42px
 | 
			
		||||
 | 
			
		||||
					> .ok
 | 
			
		||||
						position absolute
 | 
			
		||||
						top 0
 | 
			
		||||
						right 0
 | 
			
		||||
						line-height 42px
 | 
			
		||||
						width 42px
 | 
			
		||||
 | 
			
		||||
				> mk-drive
 | 
			
		||||
					height calc(100% - 42px)
 | 
			
		||||
					overflow scroll
 | 
			
		||||
					-webkit-overflow-scrolling touch
 | 
			
		||||
 | 
			
		||||
	</style>
 | 
			
		||||
	<script lang="typescript">
 | 
			
		||||
		this.files = [];
 | 
			
		||||
 | 
			
		||||
		this.on('mount', () => {
 | 
			
		||||
			this.$refs.browser.on('change-selection', files => {
 | 
			
		||||
				this.update({
 | 
			
		||||
					files: files
 | 
			
		||||
				});
 | 
			
		||||
			});
 | 
			
		||||
 | 
			
		||||
			this.$refs.browser.on('selected', file => {
 | 
			
		||||
				this.$emit('selected', file);
 | 
			
		||||
				this.$destroy();
 | 
			
		||||
			});
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		this.cancel = () => {
 | 
			
		||||
			this.$emit('canceled');
 | 
			
		||||
			this.$destroy();
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		this.ok = () => {
 | 
			
		||||
			this.$emit('selected', this.files);
 | 
			
		||||
			this.$destroy();
 | 
			
		||||
		};
 | 
			
		||||
	</script>
 | 
			
		||||
</mk-drive-selector>
 | 
			
		||||
							
								
								
									
										99
									
								
								src/web/app/mobile/views/components/drive-file-chooser.vue
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								src/web/app/mobile/views/components/drive-file-chooser.vue
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,99 @@
 | 
			
		|||
<template>
 | 
			
		||||
<div class="mk-drive-file-chooser">
 | 
			
		||||
	<div class="body">
 | 
			
		||||
		<header>
 | 
			
		||||
			<h1>%i18n:mobile.tags.mk-drive-selector.select-file%<span class="count" v-if="files.length > 0">({{ files.length }})</span></h1>
 | 
			
		||||
			<button class="close" @click="cancel">%fa:times%</button>
 | 
			
		||||
			<button v-if="opts.multiple" class="ok" @click="ok">%fa:check%</button>
 | 
			
		||||
		</header>
 | 
			
		||||
		<mk-drive ref="browser"
 | 
			
		||||
			select-file
 | 
			
		||||
			:multiple="multiple"
 | 
			
		||||
			@change-selection="onChangeSelection"
 | 
			
		||||
			@selected="onSelected"
 | 
			
		||||
		/>
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import Vue from 'vue';
 | 
			
		||||
export default Vue.extend({
 | 
			
		||||
	props: ['multiple'],
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			files: []
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		onChangeSelection(files) {
 | 
			
		||||
			this.files = files;
 | 
			
		||||
		},
 | 
			
		||||
		onSelected(file) {
 | 
			
		||||
			this.$emit('selected', file);
 | 
			
		||||
			this.$destroy();
 | 
			
		||||
		},
 | 
			
		||||
		cancel() {
 | 
			
		||||
			this.$emit('canceled');
 | 
			
		||||
			this.$destroy();
 | 
			
		||||
		},
 | 
			
		||||
		ok() {
 | 
			
		||||
			this.$emit('selected', this.files);
 | 
			
		||||
			this.$destroy();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="stylus" scoped>
 | 
			
		||||
.mk-drive-file-chooser
 | 
			
		||||
	display block
 | 
			
		||||
	position fixed
 | 
			
		||||
	z-index 2048
 | 
			
		||||
	top 0
 | 
			
		||||
	left 0
 | 
			
		||||
	width 100%
 | 
			
		||||
	height 100%
 | 
			
		||||
	padding 8px
 | 
			
		||||
	background rgba(0, 0, 0, 0.2)
 | 
			
		||||
 | 
			
		||||
	> .body
 | 
			
		||||
		width 100%
 | 
			
		||||
		height 100%
 | 
			
		||||
		background #fff
 | 
			
		||||
 | 
			
		||||
		> header
 | 
			
		||||
			border-bottom solid 1px #eee
 | 
			
		||||
 | 
			
		||||
			> h1
 | 
			
		||||
				margin 0
 | 
			
		||||
				padding 0
 | 
			
		||||
				text-align center
 | 
			
		||||
				line-height 42px
 | 
			
		||||
				font-size 1em
 | 
			
		||||
				font-weight normal
 | 
			
		||||
 | 
			
		||||
				> .count
 | 
			
		||||
					margin-left 4px
 | 
			
		||||
					opacity 0.5
 | 
			
		||||
 | 
			
		||||
			> .close
 | 
			
		||||
				position absolute
 | 
			
		||||
				top 0
 | 
			
		||||
				left 0
 | 
			
		||||
				line-height 42px
 | 
			
		||||
				width 42px
 | 
			
		||||
 | 
			
		||||
			> .ok
 | 
			
		||||
				position absolute
 | 
			
		||||
				top 0
 | 
			
		||||
				right 0
 | 
			
		||||
				line-height 42px
 | 
			
		||||
				width 42px
 | 
			
		||||
 | 
			
		||||
		> .mk-drive
 | 
			
		||||
			height calc(100% - 42px)
 | 
			
		||||
			overflow scroll
 | 
			
		||||
			-webkit-overflow-scrolling touch
 | 
			
		||||
 | 
			
		||||
</style>
 | 
			
		||||
							
								
								
									
										79
									
								
								src/web/app/mobile/views/components/drive-folder-chooser.vue
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								src/web/app/mobile/views/components/drive-folder-chooser.vue
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,79 @@
 | 
			
		|||
<template>
 | 
			
		||||
<div class="mk-drive-folder-chooser">
 | 
			
		||||
	<div class="body">
 | 
			
		||||
		<header>
 | 
			
		||||
			<h1>%i18n:mobile.tags.mk-drive-folder-selector.select-folder%</h1>
 | 
			
		||||
			<button class="close" @click="cancel">%fa:times%</button>
 | 
			
		||||
			<button v-if="opts.multiple" class="ok" @click="ok">%fa:check%</button>
 | 
			
		||||
		</header>
 | 
			
		||||
		<mk-drive ref="browser"
 | 
			
		||||
			select-folder
 | 
			
		||||
		/>
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import Vue from 'vue';
 | 
			
		||||
export default Vue.extend({
 | 
			
		||||
	methods: {
 | 
			
		||||
		cancel() {
 | 
			
		||||
			this.$emit('canceled');
 | 
			
		||||
			this.$destroy();
 | 
			
		||||
		},
 | 
			
		||||
		ok() {
 | 
			
		||||
			this.$emit('selected', (this.$refs.browser as any).folder);
 | 
			
		||||
			this.$destroy();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="stylus" scoped>
 | 
			
		||||
.mk-drive-folder-chooser
 | 
			
		||||
	display block
 | 
			
		||||
	position fixed
 | 
			
		||||
	z-index 2048
 | 
			
		||||
	top 0
 | 
			
		||||
	left 0
 | 
			
		||||
	width 100%
 | 
			
		||||
	height 100%
 | 
			
		||||
	padding 8px
 | 
			
		||||
	background rgba(0, 0, 0, 0.2)
 | 
			
		||||
 | 
			
		||||
	> .body
 | 
			
		||||
		width 100%
 | 
			
		||||
		height 100%
 | 
			
		||||
		background #fff
 | 
			
		||||
 | 
			
		||||
		> header
 | 
			
		||||
			border-bottom solid 1px #eee
 | 
			
		||||
 | 
			
		||||
			> h1
 | 
			
		||||
				margin 0
 | 
			
		||||
				padding 0
 | 
			
		||||
				text-align center
 | 
			
		||||
				line-height 42px
 | 
			
		||||
				font-size 1em
 | 
			
		||||
				font-weight normal
 | 
			
		||||
 | 
			
		||||
			> .close
 | 
			
		||||
				position absolute
 | 
			
		||||
				top 0
 | 
			
		||||
				left 0
 | 
			
		||||
				line-height 42px
 | 
			
		||||
				width 42px
 | 
			
		||||
 | 
			
		||||
			> .ok
 | 
			
		||||
				position absolute
 | 
			
		||||
				top 0
 | 
			
		||||
				right 0
 | 
			
		||||
				line-height 42px
 | 
			
		||||
				width 42px
 | 
			
		||||
 | 
			
		||||
		> .mk-drive
 | 
			
		||||
			height calc(100% - 42px)
 | 
			
		||||
			overflow scroll
 | 
			
		||||
			-webkit-overflow-scrolling touch
 | 
			
		||||
 | 
			
		||||
</style>
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue