|
27 | 27 | /**
|
28 | 28 | * @author R. Picard
|
29 | 29 | * @date 2011/05/11
|
30 |
| -* |
| 30 | +* |
31 | 31 | *****************************************************************************/
|
32 | 32 |
|
| 33 | +FileSaver = function() { |
| 34 | +} |
| 35 | + |
| 36 | +FileSaver.prototype.setData = function(data) { |
| 37 | + var json = JSON.stringify(data); |
| 38 | + var blob = new Blob([json], {type: "application/json"}); |
| 39 | + var url = URL.createObjectURL(blob); |
| 40 | + $('#edkit_file_save').attr("href", url); |
| 41 | +} |
| 42 | + |
| 43 | +var FileSaverSingleton = (function() { |
| 44 | + var instance; |
| 45 | + |
| 46 | + return { |
| 47 | + getInstance: function () { |
| 48 | + if (!instance) { |
| 49 | + instance = new FileSaver(); |
| 50 | + } |
| 51 | + return instance; |
| 52 | + } |
| 53 | + }; |
| 54 | +})(); |
33 | 55 |
|
34 | 56 | $(document).ready( function()
|
35 | 57 | {
|
36 | 58 | var menu_item = '<div class="menu-item">';
|
37 | 59 | menu_item += '<h4>Load file</h4>';
|
38 | 60 | menu_item += '<div class="menu-content" >';
|
39 |
| - menu_item += '<input type="file" id="edkit_file"'; |
40 |
| - menu_item += 'name="edkit_file" />'; |
| 61 | + menu_item += '<span id="edkit_file_span">'; |
| 62 | + menu_item += '<input type="file" id="edkit_file_load" name="edkit_file_load"/>'; |
| 63 | + menu_item += '<input type="image" id="edkit_file_load_img" src="style/upload.png" alt="load"/>'; |
| 64 | + menu_item += '<a id="edkit_file_save" name="edkit_file_save" download="edleak.json" alt="save" />'; |
| 65 | + menu_item += '</span>'; |
| 66 | + |
41 | 67 | menu_item += '</div></div>';
|
42 | 68 | $('#menu-bar').append(menu_item);
|
43 | 69 |
|
44 |
| - $('#edkit_file').change( function(evt) |
| 70 | + $('#edkit_file_load_img').click( function() { |
| 71 | + $('#edkit_file_load').click(); |
| 72 | + }); |
| 73 | + |
| 74 | + $('#edkit_file_save_img').click( function() { |
| 75 | + $('#edkit_file_save').click(); |
| 76 | + }); |
| 77 | + |
| 78 | + |
| 79 | + $('#edkit_file_load').change( function(evt) |
45 | 80 | {
|
46 | 81 | var file = evt.target.files[0];
|
47 | 82 | var reader = new FileReader();
|
48 | 83 |
|
49 |
| - reader.onload = (function(theFile) |
| 84 | + reader.onload = (function(theFile) |
50 | 85 | {
|
51 |
| - return function(e) |
| 86 | + return function(e) |
52 | 87 | {
|
53 | 88 | data = JSON.parse(e.target.result);
|
54 | 89 | vis_display();
|
| 90 | + FileSaverSingleton.getInstance().setData(data); |
55 | 91 | };
|
56 | 92 | })(file);
|
57 | 93 |
|
|
0 commit comments