when exporting to zip, also add images
This commit is contained in:
		
							parent
							
								
									cc231cbacd
								
							
						
					
					
						commit
						2affe457d2
					
				
					 4 changed files with 23 additions and 8 deletions
				
			
		|  | @ -64,7 +64,8 @@ export function createFile(formProps) { | |||
|       dispatch({ | ||||
|         type: ActionTypes.CREATE_FILE, | ||||
|         name: formProps.name, | ||||
|         id: `${maxFileId + 1}` | ||||
|         id: `${maxFileId + 1}`, | ||||
|         url: formProps.url | ||||
|       }); | ||||
|       dispatch({ | ||||
|         type: ActionTypes.HIDE_MODAL | ||||
|  |  | |||
|  | @ -2,8 +2,10 @@ import * as ActionTypes from '../../../constants'; | |||
| import { browserHistory } from 'react-router'; | ||||
| import axios from 'axios'; | ||||
| import JSZip from 'jszip'; | ||||
| import JSZipUtils from 'jszip-utils'; | ||||
| import { saveAs } from 'file-saver'; | ||||
| import { getBlobUrl } from './files'; | ||||
| import async from 'async'; | ||||
| 
 | ||||
| const ROOT_URL = location.href.indexOf('localhost') > 0 ? 'http://localhost:8000/api' : '/api'; | ||||
| 
 | ||||
|  | @ -117,12 +119,22 @@ export function exportProjectAsZip() { | |||
|     console.log('exporting project!'); | ||||
|     const state = getState(); | ||||
|     const zip = new JSZip(); | ||||
|     state.files.forEach(file => { | ||||
|       zip.file(file.name, file.content); | ||||
|     }); | ||||
| 
 | ||||
|     zip.generateAsync({ type: 'blob' }).then((content) => { | ||||
|       saveAs(content, `${state.project.name}.zip`); | ||||
|     async.each(state.files, (file, cb) => { | ||||
|       console.log(file); | ||||
|       if (file.url) { | ||||
|         JSZipUtils.getBinaryContent(file.url, (err, data) => { | ||||
|           zip.file(file.name, data, { binary: true }); | ||||
|           cb(); | ||||
|         }); | ||||
|       } else { | ||||
|         zip.file(file.name, file.content); | ||||
|         cb(); | ||||
|       } | ||||
|     }, err => { | ||||
|       if (err) console.log(err); | ||||
|       zip.generateAsync({ type: 'blob' }).then((content) => { | ||||
|         saveAs(content, `${state.project.name}.zip`); | ||||
|       }); | ||||
|     }); | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -72,7 +72,7 @@ const files = (state = initialState, action) => { | |||
|     case ActionTypes.SET_PROJECT: | ||||
|       return [...action.files]; | ||||
|     case ActionTypes.CREATE_FILE: | ||||
|       return [...state, { name: action.name, id: action.id, content: '' }]; | ||||
|       return [...state, { name: action.name, id: action.id, content: '', url: action.url }]; | ||||
|     default: | ||||
|       return state; | ||||
|   } | ||||
|  |  | |||
|  | @ -56,6 +56,7 @@ | |||
|     "node": ">=4" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "async": "^2.0.0", | ||||
|     "axios": "^0.12.0", | ||||
|     "babel-core": "^6.8.0", | ||||
|     "bcrypt-nodejs": "0.0.3", | ||||
|  | @ -77,6 +78,7 @@ | |||
|     "htmlhint": "^0.9.13", | ||||
|     "jshint": "^2.9.2", | ||||
|     "jszip": "^3.0.0", | ||||
|     "jszip-utils": "0.0.2", | ||||
|     "moment": "^2.14.1", | ||||
|     "mongoose": "^4.4.16", | ||||
|     "node-uuid": "^1.4.7", | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 catarak
						catarak