Repaired sync down
This commit is contained in:
		
							parent
							
								
									6fae74a18e
								
							
						
					
					
						commit
						5becb98e62
					
				
							
								
								
									
										13
									
								
								css/main.css
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								css/main.css
									
									
									
									
									
								
							| @ -25,12 +25,19 @@ div, span, a, ul, li, textarea, input, button { | ||||
|     text-shadow: none !important; | ||||
| } | ||||
| 
 | ||||
| .btn, .navbar-inner, .ui-layout-east, .ui-layout-south, textarea, input, .input-append .add-on { | ||||
| .btn, .navbar-inner, .ui-layout-east, .ui-layout-south, textarea, input, .add-on { | ||||
|     border: none !important; | ||||
| } | ||||
| 
 | ||||
| .border, .dropdown-menu { | ||||
|     border: 1px solid #ddd !important; | ||||
| .dropdown-menu { | ||||
|     border: 1px solid #e2e2e2 !important; | ||||
| } | ||||
| 
 | ||||
| .input-prepend input, | ||||
| .input-prepend .btn, | ||||
| .input-prepend .add-on | ||||
|  { | ||||
|     border: 1px solid #ebebeb !important; | ||||
| } | ||||
| 
 | ||||
| .navbar-inner .btn { | ||||
|  | ||||
							
								
								
									
										59
									
								
								index.html
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								index.html
									
									
									
									
									
								
							| @ -22,15 +22,15 @@ | ||||
| 						<i class="icon-refresh"></i> | ||||
| 					</button></li> | ||||
| 				<li class="btn-group"><button class="btn action-create-file" | ||||
| 						title="New local file"> | ||||
| 						title="New local document"> | ||||
| 						<i class="icon-file"></i> | ||||
| 					</button> | ||||
| 					<button class="btn" title="Delete local file" | ||||
| 					<button class="btn" title="Delete local document" | ||||
| 						data-toggle="modal" data-target="#modal-remove-file-confirm"> | ||||
| 						<i class="icon-trash"></i> | ||||
| 					</button> | ||||
| 					<button class="btn dropdown-toggle" data-toggle="dropdown" | ||||
| 						title="Open local file"> | ||||
| 						title="Open local document"> | ||||
| 						<i class="icon-folder-open"></i> | ||||
| 					</button> | ||||
| 					<ul id="file-selector" class="dropdown-menu"> | ||||
| @ -47,27 +47,27 @@ | ||||
| 						<li class="dropdown-submenu"><a href="#"><i | ||||
| 								class="icon-gdrive"></i> Google Drive</a> | ||||
| 							<ul class="dropdown-menu"> | ||||
|                                 <li><a class="action-upload-gdrive" href="#">Export | ||||
|                                         to Google Drive</a></li> | ||||
| 								<li><a href="#" data-toggle="modal" data-target="#modal-download-gdrive">Import | ||||
| 										from Google Drive</a></li> | ||||
| 								<li><a class="action-upload-gdrive" href="#">Export to | ||||
| 										Google Drive</a></li> | ||||
| 								<li><a href="#" data-toggle="modal" | ||||
| 									data-target="#modal-download-gdrive">Import from Google | ||||
| 										Drive</a></li> | ||||
| 							</ul></li> | ||||
| 						<li class="dropdown-submenu"><a href="#"><i | ||||
| 								class="icon-dropbox"></i> Dropbox</a> | ||||
| 							<ul class="dropdown-menu"> | ||||
| 								<li><a class="action-upload-dropbox" href="#">Export | ||||
| 										to Dropbox</a></li> | ||||
| 								<li><a class="action-upload-dropbox" href="#">Export to | ||||
| 										Dropbox</a></li> | ||||
| 								<li><a class="action-download-dropbox" href="#">Import | ||||
| 										from Dropbox</a></li> | ||||
| 							</ul></li> | ||||
| 						<li><a href="#" | ||||
| 							data-toggle="modal" data-target="#modal-manage-sync"><i | ||||
| 								class="icon-refresh"></i> Manage synchronization</a></li> | ||||
| 						<li><a href="#" data-toggle="modal" | ||||
| 							data-target="#modal-manage-sync"><i class="icon-refresh"></i> | ||||
| 								Manage synchronization</a></li> | ||||
| 						<li class="divider"></li> | ||||
| 						<li><a href="#" | ||||
| 							data-toggle="modal" data-target="#modal-settings" | ||||
| 							class="action-load-settings"><i class="icon-cog"></i> | ||||
| 								Settings</a></li> | ||||
| 						<li><a href="#" data-toggle="modal" | ||||
| 							data-target="#modal-settings" class="action-load-settings"><i | ||||
| 								class="icon-cog"></i> Settings</a></li> | ||||
| 						<li><a href="#" data-toggle="modal" | ||||
| 							data-target="#modal-about"><i class="icon-question-sign"></i> | ||||
| 								About</a></li> | ||||
| @ -76,9 +76,9 @@ | ||||
| 			<ul class="nav pull-right"> | ||||
| 				<li><i class="working-indicator icon-spinner hide"></i></li> | ||||
| 				<li><a class="brand" id="file-title" href="#" | ||||
| 					title="Rename current file"> </a></li> | ||||
| 					title="Rename current document"> </a></li> | ||||
| 				<li class="navbar-form"><input id="file-title-input" | ||||
| 					type="text" class="span3 hide" placeholder="File title" /></li> | ||||
| 					type="text" class="span3 hide" placeholder="Document title" /></li> | ||||
| 			</ul> | ||||
| 		</div> | ||||
| 	</div> | ||||
| @ -111,9 +111,13 @@ | ||||
| 			<h3>Import</h3> | ||||
| 		</div> | ||||
| 		<div class="modal-body"> | ||||
| 			<p>Please provide a Google Drive file ID: | ||||
| 			</p> | ||||
| 			<p><input type="text" class="border span6 gdrive-fileid" placeholder="File ID"></input></p> | ||||
| 			<p>Please provide a Google Drive file ID:</p> | ||||
| 			<div class="input-prepend"> | ||||
| 				<span class="add-on"><i class="icon-gdrive"></i></span><input | ||||
| 					id="gdrive-fileid" type="text" class="span5" placeholder="Google Drive file ID"></input> | ||||
| 			</div> | ||||
|             <p class="muted"><b>NOTE:</b> This will create a local copy of your Google Drive document | ||||
|                 and synchronize it.</p> | ||||
| 		</div> | ||||
| 		<div class="modal-footer"> | ||||
| 			<a href="#" class="btn" data-dismiss="modal">Cancel</a> <a href="#" | ||||
| @ -133,14 +137,20 @@ | ||||
| 					is synchronized with these locations: | ||||
| 				</p> | ||||
| 			</div> | ||||
| 			<br class="msg-sync-list hide" /> | ||||
| 			<p class="msg-sync-list hide muted"><b>NOTE:</b> Removing a | ||||
| 				synchronized location will not delete any file.</p> | ||||
| 			<p class="msg-no-sync hide">"<span class="file-title"></span>" is | ||||
| 				not synchronized. | ||||
| 			</p> | ||||
| 			<p class="msg-no-sync hide muted"><b>NOTE:</b> You can add | ||||
| 				synchronized locations using the top-right menu.</p> | ||||
| 			<p>Add a synchronized location manually:</p> | ||||
| 			<div class="input-prepend input-append"> | ||||
| 				<span class="add-on"><i class="icon-gdrive"></i></span><input | ||||
| 					id="manual-gdrive-fileid" type="text" class="span5" placeholder="Google Drive file ID"></input> | ||||
| 					<a class="btn action-manual-gdrive" data-dismiss="modal"><i class="icon-ok"></i></a> | ||||
| 			</div> | ||||
| 			<p class="muted"><b>NOTE:</b> Adding a synchronized location will | ||||
| 				first upload the local document and overwrite the file on the | ||||
| 				server.</p> | ||||
| 		</div> | ||||
| 		<div class="modal-footer"> | ||||
| 			<a href="#" class="btn btn-primary" data-dismiss="modal">Close</a> | ||||
| @ -241,6 +251,7 @@ | ||||
| 		<div class="modal-footer"> | ||||
| 			<a href="#" class="btn btn-primary" data-dismiss="modal">Close</a> | ||||
| 		</div> | ||||
| 
 | ||||
| 	</div> | ||||
| </body> | ||||
| </html> | ||||
|  | ||||
| @ -77,9 +77,18 @@ define(["jquery", "core", "gdrive", "synchronizer", "async-runner"], function($, | ||||
| 			}); | ||||
| 		$(".action-upload-gdrive").click(uploadGdrive); | ||||
| 		$(".action-download-gdrive").click(function() { | ||||
| 			var fileId = $(".gdrive-fileid").val(); | ||||
| 			 $(".gdrive-fileid").val(""); | ||||
| 			downloadGdrive(fileId); | ||||
| 			var input = $("#gdrive-fileid"); | ||||
| 			var fileId = input.val(); | ||||
| 			input.val(""); | ||||
| 			if(checkGdriveFileId(fileId) === true) { | ||||
| 				gdrive.importFiles([fileId]); | ||||
| 			} | ||||
| 		}); | ||||
| 		$(".action-manual-gdrive").click(function() { | ||||
| 			var input = $("#manual-gdrive-fileid"); | ||||
| 			var fileId = input.val(); | ||||
| 			input.val(""); | ||||
| 			manualGdrive(fileId); | ||||
| 		}); | ||||
| 		$(".action-download-dropbox").click(function() { | ||||
| 			core.showMessage("Sorry, Dropbox synchronization is not yet available."); | ||||
| @ -216,7 +225,6 @@ define(["jquery", "core", "gdrive", "synchronizer", "async-runner"], function($, | ||||
| 			} | ||||
| 			return result; | ||||
| 		} | ||||
| 		synchronizer.useGoogleDrive = useGoogleDrive; | ||||
| 
 | ||||
| 		// Update the file title
 | ||||
| 		var title = localStorage[fileIndex + ".title"]; | ||||
| @ -243,6 +251,7 @@ define(["jquery", "core", "gdrive", "synchronizer", "async-runner"], function($, | ||||
| 			} | ||||
| 			$("#file-selector").append(li); | ||||
| 		} | ||||
| 		synchronizer.useGoogleDrive = useGoogleDrive; | ||||
| 	}; | ||||
| 
 | ||||
| 	// Remove a synchronized location
 | ||||
| @ -280,22 +289,55 @@ define(["jquery", "core", "gdrive", "synchronizer", "async-runner"], function($, | ||||
| 		var content = localStorage[fileIndex + ".content"]; | ||||
| 		var title = localStorage[fileIndex + ".title"]; | ||||
| 		gdrive.createFile(title, content, function(fileSyncIndex) { | ||||
| 			if (fileSyncIndex) { | ||||
| 			if (fileSyncIndex === undefined) { | ||||
| 				return; | ||||
| 			} | ||||
| 			localStorage[fileIndex + ".sync"] += fileSyncIndex + ";"; | ||||
| 			refreshManageSync(); | ||||
| 			fileManager.updateFileTitles(); | ||||
| 			core.showMessage('"' + title | ||||
| 				+ '" will now be synchronized on Google Drive.'); | ||||
| 			} | ||||
| 		}); | ||||
| 	} | ||||
| 	 | ||||
| 	function downloadGdrive(fileId) { | ||||
| 	function checkGdriveFileId(fileId) { | ||||
| 		fileId = fileId.trim(); | ||||
| 		if(fileId.length === 0) { | ||||
| 			return false; | ||||
| 		} | ||||
| 		// Check that file is not synchronized with an other one
 | ||||
| 		var fileSyncIndex = SYNC_PROVIDER_GDRIVE + fileId; | ||||
| 		var fileIndex = fileManager.getFileIndexFromSync(fileSyncIndex); | ||||
| 		if(fileIndex !== undefined) { | ||||
| 			var title = localStorage[fileIndex + ".title"]; | ||||
| 			core.showError('Google Drive file is already synchronized with "' + title + '"'); | ||||
| 			return false; | ||||
| 		} | ||||
| 		return true; | ||||
| 	} | ||||
| 
 | ||||
| 	function manualGdrive(fileId) { | ||||
| 		if(checkGdriveFileId(fileId) === false) { | ||||
| 			return; | ||||
| 		} | ||||
| 		gdrive.importFiles([fileId]); | ||||
| 		var fileIndex = localStorage["file.current"]; | ||||
| 		var title = localStorage[fileIndex + ".title"]; | ||||
| 		gdrive.downloadMetadata([fileId], function(result) { | ||||
| 			if(result === undefined || result.length === 0) { | ||||
| 				return; | ||||
| 			} | ||||
| 			var file = result[0]; | ||||
| 			var fileSyncIndex = SYNC_PROVIDER_GDRIVE + file.id; | ||||
| 			localStorage[fileSyncIndex + ".etag"] = file.etag; | ||||
| 			localStorage[fileIndex + ".sync"] += fileSyncIndex + ";"; | ||||
| 			refreshManageSync(); | ||||
| 			fileManager.updateFileTitles(); | ||||
| 			core.showMessage('"' + title | ||||
| 				+ '" will now be synchronized on Google Drive.'); | ||||
| 			// Force synchronization
 | ||||
| 			synchronizer.addFileForUpload(fileIndex); | ||||
| 			synchronizer.forceSync(); | ||||
| 		}); | ||||
| 	} | ||||
| 	 | ||||
| 	function refreshManageSync() { | ||||
| @ -317,7 +359,7 @@ define(["jquery", "core", "gdrive", "synchronizer", "async-runner"], function($, | ||||
| 						'<i class="icon-gdrive"></i>')); | ||||
| 					line.append($("<input>").prop("type", "text").prop( | ||||
| 						"disabled", true).addClass("span5").val( | ||||
| 						"FileID=" | ||||
| 						"ID=" | ||||
| 							+ fileSyncIndex.substring(SYNC_PROVIDER_GDRIVE.length))); | ||||
| 				} | ||||
| 				line.append($("<a>").addClass("btn").html( | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 benweet
						benweet