mirror of
				https://github.com/Luzifer/ots.git
				synced 2025-10-30 13:48:54 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			108 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // Generated by CoffeeScript 1.12.4
 | |
| (function() {
 | |
|   var createSecret, dataNotFound, hashLoad, initBinds, newSecret, secretCreated, securePassword, showData, somethingWrong;
 | |
| 
 | |
|   securePassword = null;
 | |
| 
 | |
|   createSecret = function() {
 | |
|     var secret;
 | |
|     secret = $('#formCreateSecret').find('textarea').val();
 | |
|     if ($('#extra').prop('checked')) {
 | |
|       securePassword = Math.random().toString(36).substring(2);
 | |
|       secret = GibberishAES.enc(secret, securePassword);
 | |
|     }
 | |
|     $.ajax('api/create', {
 | |
|       data: {
 | |
|         secret: secret
 | |
|       },
 | |
|       dataType: "json",
 | |
|       statusCode: {
 | |
|         201: secretCreated,
 | |
|         400: somethingWrong,
 | |
|         500: somethingWrong,
 | |
|         404: function() {
 | |
|           return secretCreated({
 | |
|             secret_id: 'foobar'
 | |
|           });
 | |
|         }
 | |
|       }
 | |
|     });
 | |
|     return false;
 | |
|   };
 | |
| 
 | |
|   dataNotFound = function() {
 | |
|     return $('#notfound').show();
 | |
|   };
 | |
| 
 | |
|   hashLoad = function() {
 | |
|     var hash, id, parts;
 | |
|     hash = window.location.hash;
 | |
|     if (hash.length === 0) {
 | |
|       return;
 | |
|     }
 | |
|     hash = decodeURIComponent(hash);
 | |
|     parts = hash.split('|');
 | |
|     if (parts.length === 2) {
 | |
|       hash = parts[0];
 | |
|       securePassword = parts[1];
 | |
|     }
 | |
|     id = hash.substring(1);
 | |
|     return $.ajax("api/get/" + id, {
 | |
|       dataType: "json",
 | |
|       statusCode: {
 | |
|         404: dataNotFound,
 | |
|         200: showData
 | |
|       }
 | |
|     });
 | |
|   };
 | |
| 
 | |
|   initBinds = function() {
 | |
|     $('#formCreateSecret').bind('submit', createSecret);
 | |
|     $('#newSecret, .navbar-brand').bind('click', newSecret);
 | |
|     return $(window).bind('hashchange', hashLoad);
 | |
|   };
 | |
| 
 | |
|   newSecret = function() {
 | |
|     location.href = location.href.split('#')[0];
 | |
|     return false;
 | |
|   };
 | |
| 
 | |
|   secretCreated = function(data) {
 | |
|     var secretHash, url;
 | |
|     secretHash = data.secret_id;
 | |
|     if (securePassword !== null) {
 | |
|       secretHash = secretHash + "|" + securePassword;
 | |
|     }
 | |
|     url = (location.href.split('#')[0]) + "#" + secretHash;
 | |
|     $('#panelNewSecret').hide();
 | |
|     $('#panelSecretURL').show();
 | |
|     $('#panelSecretURL').find('input').val(url);
 | |
|     $('#panelSecretURL').find('input').focus();
 | |
|     $('#panelSecretURL').find('input').select();
 | |
|     return securePassword = null;
 | |
|   };
 | |
| 
 | |
|   showData = function(data) {
 | |
|     var secret;
 | |
|     secret = data.secret;
 | |
|     if (securePassword !== null) {
 | |
|       secret = GibberishAES.dec(secret, securePassword);
 | |
|     }
 | |
|     $('#panelNewSecret').hide();
 | |
|     $('#panelSecretURL').hide();
 | |
|     $('#notfound').hide();
 | |
|     $('#somethingwrong').hide();
 | |
|     $('#panelReadSecret').show();
 | |
|     return $('#panelReadSecret').find('textarea').val(secret);
 | |
|   };
 | |
| 
 | |
|   somethingWrong = function() {
 | |
|     return $('#somethingwrong').show();
 | |
|   };
 | |
| 
 | |
|   $(function() {
 | |
|     initBinds();
 | |
|     return hashLoad();
 | |
|   });
 | |
| 
 | |
| }).call(this);
 | 
