wip
This commit is contained in:
		@@ -35,6 +35,7 @@ init(async (launch) => {
 | 
			
		||||
	// Register components
 | 
			
		||||
	require('./views/components');
 | 
			
		||||
 | 
			
		||||
	// Launch the app
 | 
			
		||||
	const [app, os] = launch(os => ({
 | 
			
		||||
		chooseDriveFolder,
 | 
			
		||||
		chooseDriveFile,
 | 
			
		||||
@@ -65,19 +66,15 @@ init(async (launch) => {
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	app.$router.addRoutes([{
 | 
			
		||||
		path: '/', name: 'index', component: MkIndex
 | 
			
		||||
	}, {
 | 
			
		||||
		path: '/i/customize-home', component: MkHomeCustomize
 | 
			
		||||
	}, {
 | 
			
		||||
		path: '/i/drive', component: MkDrive
 | 
			
		||||
	}, {
 | 
			
		||||
		path: '/i/drive/folder/:folder', component: MkDrive
 | 
			
		||||
	}, {
 | 
			
		||||
		path: '/selectdrive', component: MkSelectDrive
 | 
			
		||||
	}, {
 | 
			
		||||
		path: '/:user', component: MkUser
 | 
			
		||||
	}]);
 | 
			
		||||
	// Routing
 | 
			
		||||
	app.$router.addRoutes([
 | 
			
		||||
		{ path: '/', name: 'index', component: MkIndex },
 | 
			
		||||
		{ path: '/i/customize-home', component: MkHomeCustomize },
 | 
			
		||||
		{ path: '/i/drive', component: MkDrive },
 | 
			
		||||
		{ path: '/i/drive/folder/:folder', component: MkDrive },
 | 
			
		||||
		{ path: '/selectdrive', component: MkSelectDrive },
 | 
			
		||||
		{ path: '/:user', component: MkUser }
 | 
			
		||||
	]);
 | 
			
		||||
}, true);
 | 
			
		||||
 | 
			
		||||
function registerNotifications(stream: HomeStreamManager) {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										18
									
								
								src/web/app/mobile/api/choose-drive-file.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								src/web/app/mobile/api/choose-drive-file.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
import Chooser from '../views/components/drive-file-chooser.vue';
 | 
			
		||||
 | 
			
		||||
export default function(opts) {
 | 
			
		||||
	return new Promise((res, rej) => {
 | 
			
		||||
		const o = opts || {};
 | 
			
		||||
		const w = new Chooser({
 | 
			
		||||
			propsData: {
 | 
			
		||||
				title: o.title,
 | 
			
		||||
				multiple: o.multiple,
 | 
			
		||||
				initFolder: o.currentFolder
 | 
			
		||||
			}
 | 
			
		||||
		}).$mount();
 | 
			
		||||
		w.$once('selected', file => {
 | 
			
		||||
			res(file);
 | 
			
		||||
		});
 | 
			
		||||
		document.body.appendChild(w.$el);
 | 
			
		||||
	});
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										17
									
								
								src/web/app/mobile/api/choose-drive-folder.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/web/app/mobile/api/choose-drive-folder.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
import Chooser from '../views/components/drive-folder-chooser.vue';
 | 
			
		||||
 | 
			
		||||
export default function(opts) {
 | 
			
		||||
	return new Promise((res, rej) => {
 | 
			
		||||
		const o = opts || {};
 | 
			
		||||
		const w = new Chooser({
 | 
			
		||||
			propsData: {
 | 
			
		||||
				title: o.title,
 | 
			
		||||
				initFolder: o.currentFolder
 | 
			
		||||
			}
 | 
			
		||||
		}).$mount();
 | 
			
		||||
		w.$once('selected', folder => {
 | 
			
		||||
			res(folder);
 | 
			
		||||
		});
 | 
			
		||||
		document.body.appendChild(w.$el);
 | 
			
		||||
	});
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										5
									
								
								src/web/app/mobile/api/dialog.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								src/web/app/mobile/api/dialog.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
export default function(opts) {
 | 
			
		||||
	return new Promise<string>((res, rej) => {
 | 
			
		||||
		alert('dialog not implemented yet');
 | 
			
		||||
	});
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										5
									
								
								src/web/app/mobile/api/input.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								src/web/app/mobile/api/input.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
export default function(opts) {
 | 
			
		||||
	return new Promise<string>((res, rej) => {
 | 
			
		||||
		alert('input not implemented yet');
 | 
			
		||||
	});
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										14
									
								
								src/web/app/mobile/api/post.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/web/app/mobile/api/post.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
 | 
			
		||||
export default opts => {
 | 
			
		||||
	const app = document.getElementById('app');
 | 
			
		||||
	app.style.display = 'none';
 | 
			
		||||
 | 
			
		||||
	function recover() {
 | 
			
		||||
		app.style.display = 'block';
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	const form = riot.mount(document.body.appendChild(document.createElement('mk-post-form')), opts)[0];
 | 
			
		||||
	form
 | 
			
		||||
		.on('cancel', recover)
 | 
			
		||||
		.on('post', recover);
 | 
			
		||||
};
 | 
			
		||||
@@ -5,9 +5,22 @@
 | 
			
		||||
// Style
 | 
			
		||||
import './style.styl';
 | 
			
		||||
 | 
			
		||||
require('./tags');
 | 
			
		||||
import init from '../init';
 | 
			
		||||
 | 
			
		||||
import chooseDriveFolder from './api/choose-drive-folder';
 | 
			
		||||
import chooseDriveFile from './api/choose-drive-file';
 | 
			
		||||
import dialog from './api/dialog';
 | 
			
		||||
import input from './api/input';
 | 
			
		||||
import post from './api/post';
 | 
			
		||||
import notify from './api/notify';
 | 
			
		||||
import updateAvatar from './api/update-avatar';
 | 
			
		||||
import updateBanner from './api/update-banner';
 | 
			
		||||
 | 
			
		||||
import MkIndex from './views/pages/index.vue';
 | 
			
		||||
import MkUser from './views/pages/user/user.vue';
 | 
			
		||||
import MkSelectDrive from './views/pages/selectdrive.vue';
 | 
			
		||||
import MkDrive from './views/pages/drive.vue';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * init
 | 
			
		||||
 */
 | 
			
		||||
@@ -15,9 +28,30 @@ init((launch) => {
 | 
			
		||||
	// Register directives
 | 
			
		||||
	require('./views/directives');
 | 
			
		||||
 | 
			
		||||
	// Register components
 | 
			
		||||
	require('./views/components');
 | 
			
		||||
 | 
			
		||||
	// http://qiita.com/junya/items/3ff380878f26ca447f85
 | 
			
		||||
	document.body.setAttribute('ontouchstart', '');
 | 
			
		||||
 | 
			
		||||
	// Start routing
 | 
			
		||||
	//route(mios);
 | 
			
		||||
	// Launch the app
 | 
			
		||||
	const [app, os] = launch(os => ({
 | 
			
		||||
		chooseDriveFolder,
 | 
			
		||||
		chooseDriveFile,
 | 
			
		||||
		dialog,
 | 
			
		||||
		input,
 | 
			
		||||
		post,
 | 
			
		||||
		notify,
 | 
			
		||||
		updateAvatar: updateAvatar(os),
 | 
			
		||||
		updateBanner: updateBanner(os)
 | 
			
		||||
	}));
 | 
			
		||||
 | 
			
		||||
	// Routing
 | 
			
		||||
	app.$router.addRoutes([
 | 
			
		||||
		{ path: '/', name: 'index', component: MkIndex },
 | 
			
		||||
		{ path: '/i/drive', component: MkDrive },
 | 
			
		||||
		{ path: '/i/drive/folder/:folder', component: MkDrive },
 | 
			
		||||
		{ path: '/selectdrive', component: MkSelectDrive },
 | 
			
		||||
		{ path: '/:user', component: MkUser }
 | 
			
		||||
	]);
 | 
			
		||||
}, true);
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
		<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>
 | 
			
		||||
			<button class="ok" @click="ok">%fa:check%</button>
 | 
			
		||||
		</header>
 | 
			
		||||
		<mk-drive ref="browser"
 | 
			
		||||
			select-folder
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user