wip
This commit is contained in:
		
							parent
							
								
									a16c23b6f6
								
							
						
					
					
						commit
						aa433c2ac9
					
				|  | @ -1,87 +0,0 @@ | |||
| <mk-selectdrive-page> | ||||
| 	<header> | ||||
| 		<h1>%i18n:mobile.tags.mk-selectdrive-page.select-file%<span class="count" v-if="files.length > 0">({ files.length })</span></h1> | ||||
| 		<button class="upload" @click="upload">%fa:upload%</button> | ||||
| 		<button v-if="multiple" class="ok" @click="ok">%fa:check%</button> | ||||
| 	</header> | ||||
| 	<mk-drive ref="browser" select-file={ true } multiple={ multiple } is-naked={ true } top={ 42 }/> | ||||
| 
 | ||||
| 	<style lang="stylus" scoped> | ||||
| 		:scope | ||||
| 			display block | ||||
| 			width 100% | ||||
| 			height 100% | ||||
| 			background #fff | ||||
| 
 | ||||
| 			> header | ||||
| 				position fixed | ||||
| 				top 0 | ||||
| 				left 0 | ||||
| 				width 100% | ||||
| 				z-index 1000 | ||||
| 				background #fff | ||||
| 				box-shadow 0 1px rgba(0, 0, 0, 0.1) | ||||
| 
 | ||||
| 				> h1 | ||||
| 					margin 0 | ||||
| 					padding 0 | ||||
| 					text-align center | ||||
| 					line-height 42px | ||||
| 					font-size 1em | ||||
| 					font-weight normal | ||||
| 
 | ||||
| 					> .count | ||||
| 						margin-left 4px | ||||
| 						opacity 0.5 | ||||
| 
 | ||||
| 				> .upload | ||||
| 					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 | ||||
| 				top 42px | ||||
| 
 | ||||
| 	</style> | ||||
| 	<script lang="typescript"> | ||||
| 		const q = (new URL(location)).searchParams; | ||||
| 		this.multiple = q.get('multiple') == 'true' ? true : false; | ||||
| 
 | ||||
| 		this.on('mount', () => { | ||||
| 			document.documentElement.style.background = '#fff'; | ||||
| 
 | ||||
| 			this.$refs.browser.on('selected', file => { | ||||
| 				this.files = [file]; | ||||
| 				this.ok(); | ||||
| 			}); | ||||
| 
 | ||||
| 			this.$refs.browser.on('change-selection', files => { | ||||
| 				this.update({ | ||||
| 					files: files | ||||
| 				}); | ||||
| 			}); | ||||
| 		}); | ||||
| 
 | ||||
| 		this.upload = () => { | ||||
| 			this.$refs.browser.selectLocalFile(); | ||||
| 		}; | ||||
| 
 | ||||
| 		this.close = () => { | ||||
| 			window.close(); | ||||
| 		}; | ||||
| 
 | ||||
| 		this.ok = () => { | ||||
| 			window.opener.cb(this.multiple ? this.files : this.files[0]); | ||||
| 			window.close(); | ||||
| 		}; | ||||
| 	</script> | ||||
| </mk-selectdrive-page> | ||||
|  | @ -0,0 +1,96 @@ | |||
| <template> | ||||
| <div class="mk-selectdrive"> | ||||
| 	<header> | ||||
| 		<h1>%i18n:mobile.tags.mk-selectdrive-page.select-file%<span class="count" v-if="files.length > 0">({{ files.length }})</span></h1> | ||||
| 		<button class="upload" @click="upload">%fa:upload%</button> | ||||
| 		<button v-if="multiple" class="ok" @click="ok">%fa:check%</button> | ||||
| 	</header> | ||||
| 	<mk-drive ref="browser" select-file :multiple="multiple" is-naked :top="42"/> | ||||
| </div> | ||||
| </template> | ||||
| 
 | ||||
| <script lang="ts"> | ||||
| import Vue from 'vue'; | ||||
| 
 | ||||
| export default Vue.extend({ | ||||
| 	data() { | ||||
| 		return { | ||||
| 			files: [] | ||||
| 		}; | ||||
| 	}, | ||||
| 	computed: { | ||||
| 		multiple(): boolean { | ||||
| 			const q = (new URL(location.toString())).searchParams; | ||||
| 			return q.get('multiple') == 'true'; | ||||
| 		} | ||||
| 	}, | ||||
| 	mounted() { | ||||
| 		document.title = '%i18n:desktop.tags.mk-selectdrive-page.title%'; | ||||
| 	}, | ||||
| 	methods: { | ||||
| 		onSelected(file) { | ||||
| 			this.files = [file]; | ||||
| 			this.ok(); | ||||
| 		}, | ||||
| 		onChangeSelection(files) { | ||||
| 			this.files = files; | ||||
| 		}, | ||||
| 		upload() { | ||||
| 			(this.$refs.browser as any).selectLocalFile(); | ||||
| 		}, | ||||
| 		close() { | ||||
| 			window.close(); | ||||
| 		}, | ||||
| 		ok() { | ||||
| 			window.opener.cb(this.multiple ? this.files : this.files[0]); | ||||
| 			this.close(); | ||||
| 		} | ||||
| 	} | ||||
| }); | ||||
| </script> | ||||
| 
 | ||||
| <style lang="stylus" scoped> | ||||
| .mk-selectdrive | ||||
| 	width 100% | ||||
| 	height 100% | ||||
| 	background #fff | ||||
| 
 | ||||
| 	> header | ||||
| 		position fixed | ||||
| 		top 0 | ||||
| 		left 0 | ||||
| 		width 100% | ||||
| 		z-index 1000 | ||||
| 		background #fff | ||||
| 		box-shadow 0 1px rgba(0, 0, 0, 0.1) | ||||
| 
 | ||||
| 		> h1 | ||||
| 			margin 0 | ||||
| 			padding 0 | ||||
| 			text-align center | ||||
| 			line-height 42px | ||||
| 			font-size 1em | ||||
| 			font-weight normal | ||||
| 
 | ||||
| 			> .count | ||||
| 				margin-left 4px | ||||
| 				opacity 0.5 | ||||
| 
 | ||||
| 		> .upload | ||||
| 			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 | ||||
| 		top 42px | ||||
| 
 | ||||
| </style> | ||||
		Loading…
	
		Reference in New Issue