mirror of
				https://github.com/mail-in-a-box/mailinabox.git
				synced 2025-11-03 19:30:54 +00:00 
			
		
		
		
	Merge pull request #14 from hughsw/fix-rsync-display
fix(backup-display): Fix parsing of rsync target in system-backup.htm…
This commit is contained in:
		
						commit
						4e96509ef1
					
				@ -259,12 +259,11 @@ function show_custom_backup() {
 | 
			
		||||
        } else if (r.target == "off") {
 | 
			
		||||
          $("#backup-target-type").val("off");
 | 
			
		||||
        } else if (r.target.substring(0, 8) == "rsync://") {
 | 
			
		||||
          $("#backup-target-type").val("rsync");
 | 
			
		||||
          var path = r.target.substring(8).split('//');
 | 
			
		||||
          var host_parts = path.shift().split('@');
 | 
			
		||||
          $("#backup-target-rsync-user").val(host_parts[0]);
 | 
			
		||||
          $("#backup-target-rsync-host").val(host_parts[1]);
 | 
			
		||||
          $("#backup-target-rsync-path").val('/'+path[0]);
 | 
			
		||||
          const spec = url_split(r.target);
 | 
			
		||||
          $("#backup-target-type").val(spec.scheme);
 | 
			
		||||
	  $("#backup-target-rsync-user").val(spec.user);
 | 
			
		||||
	  $("#backup-target-rsync-host").val(spec.host);
 | 
			
		||||
	  $("#backup-target-rsync-path").val(spec.path);
 | 
			
		||||
        } else if (r.target.substring(0, 5) == "s3://") {
 | 
			
		||||
          $("#backup-target-type").val("s3");
 | 
			
		||||
          var hostpath = r.target.substring(5).split('/');
 | 
			
		||||
@ -344,4 +343,31 @@ function init_inputs(target_type) {
 | 
			
		||||
    set_host($('#backup-target-s3-host-select').val());
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Return a two-element array of the substring preceding and the substring following
 | 
			
		||||
// the first occurence of separator in string. Return [undefined, string] if the
 | 
			
		||||
// separator does not appear in string.
 | 
			
		||||
const split1_rest = (string, separator) => {
 | 
			
		||||
    const index = string.indexOf(separator);
 | 
			
		||||
    return (index >= 0) ? [string.substring(0, index), string.substring(index + separator.length)] : [undefined, string];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Note: The manifest JS URL class does not work in some security-conscious
 | 
			
		||||
// settings, e.g. Brave browser, so we roll our own that handles only what we need.
 | 
			
		||||
//
 | 
			
		||||
// Use greedy separator parsing to get parts of a MIAB backup target url.
 | 
			
		||||
// Note: path will not include a leading forward slash '/'
 | 
			
		||||
const url_split = url => {
 | 
			
		||||
    const [ scheme, scheme_rest ] = split1_rest(url, '://');
 | 
			
		||||
    const [ user, user_rest ] = split1_rest(scheme_rest, '@');
 | 
			
		||||
    const [ host, path ] = split1_rest(user_rest, '/');
 | 
			
		||||
 | 
			
		||||
    return {
 | 
			
		||||
	scheme,
 | 
			
		||||
	user,
 | 
			
		||||
	host,
 | 
			
		||||
	path,
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
  
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user