From bce6c006b2a7d0add0ce5675d3098c57d32c1207 Mon Sep 17 00:00:00 2001
From: syuilo <syuilotan@yahoo.co.jp>
Date: Mon, 28 Aug 2017 20:23:47 +0900
Subject: [PATCH] Fix bug

---
 src/web/app/mobile/tags/drive-selector.tag |  7 ++++++-
 src/web/app/mobile/tags/drive.tag          | 16 ++++++++++------
 2 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/src/web/app/mobile/tags/drive-selector.tag b/src/web/app/mobile/tags/drive-selector.tag
index 32845432f2..2edae67c1b 100644
--- a/src/web/app/mobile/tags/drive-selector.tag
+++ b/src/web/app/mobile/tags/drive-selector.tag
@@ -3,7 +3,7 @@
 		<header>
 			<h1>%i18n:mobile.tags.mk-drive-selector.select-file%<span class="count" if={ files.length > 0 }>({ files.length })</span></h1>
 			<button class="close" onclick={ cancel }><i class="fa fa-times"></i></button>
-			<button class="ok" onclick={ ok }><i class="fa fa-check"></i></button>
+			<button if={ opts.multiple } class="ok" onclick={ ok }><i class="fa fa-check"></i></button>
 		</header>
 		<mk-drive ref="browser" select-file={ true } multiple={ opts.multiple }/>
 	</div>
@@ -68,6 +68,11 @@
 					files: files
 				});
 			});
+
+			this.refs.browser.on('selected', file => {
+				this.trigger('selected', file);
+				this.unmount();
+			});
 		});
 
 		this.cancel = () => {
diff --git a/src/web/app/mobile/tags/drive.tag b/src/web/app/mobile/tags/drive.tag
index e19325091d..9f3e647735 100644
--- a/src/web/app/mobile/tags/drive.tag
+++ b/src/web/app/mobile/tags/drive.tag
@@ -190,7 +190,7 @@
 		this.file = null;
 
 		this.isFileSelectMode = this.opts.selectFile;
-		this.multiple =this.opts.multiple;
+		this.multiple = this.opts.multiple;
 
 		this.on('mount', () => {
 			this.stream.on('drive_file_created', this.onStreamDriveFileCreated);
@@ -435,13 +435,17 @@
 
 		this.chooseFile = file => {
 			if (this.isFileSelectMode) {
-				if (this.selectedFiles.some(f => f.id == file.id)) {
-					this.selectedFiles = this.selectedFiles.filter(f => f.id != file.id);
+				if (this.multiple) {
+					if (this.selectedFiles.some(f => f.id == file.id)) {
+						this.selectedFiles = this.selectedFiles.filter(f => f.id != file.id);
+					} else {
+						this.selectedFiles.push(file);
+					}
+					this.update();
+					this.trigger('change-selection', this.selectedFiles);
 				} else {
-					this.selectedFiles.push(file);
+					this.trigger('selected', file);
 				}
-				this.update();
-				this.trigger('change-selection', this.selectedFiles);
 			} else {
 				this.cf(file);
 			}