mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-11-03 20:17:59 +00:00 
			
		
		
		
	* move download-button and toolbar-download-button to core addon * add ca model and adapter and show CA on the engine configuration page * add other side of model relationship for kmip ca<->config
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import Component from '@ember/component';
 | 
						|
import { computed } from '@ember/object';
 | 
						|
import hbs from 'htmlbars-inline-precompile';
 | 
						|
 | 
						|
export default Component.extend({
 | 
						|
  layout: hbs`{{#if (has-block)}} {{yield}} {{else}} {{actionText}} {{/if}}`,
 | 
						|
  tagName: 'a',
 | 
						|
  role: 'button',
 | 
						|
  attributeBindings: ['role', 'download', 'href'],
 | 
						|
  download: computed('filename', 'extension', function() {
 | 
						|
    return `${this.get('filename')}-${new Date().toISOString()}.${this.get('extension')}`;
 | 
						|
  }),
 | 
						|
 | 
						|
  fileLike: computed('data', 'mime', 'stringify', 'download', function() {
 | 
						|
    let file;
 | 
						|
    let data = this.get('data');
 | 
						|
    let filename = this.get('download');
 | 
						|
    let mime = this.get('mime');
 | 
						|
    if (this.get('stringify')) {
 | 
						|
      data = JSON.stringify(data, null, 2);
 | 
						|
    }
 | 
						|
    if (window.navigator.msSaveOrOpenBlob) {
 | 
						|
      file = new Blob([data], { type: mime });
 | 
						|
      file.name = filename;
 | 
						|
    } else {
 | 
						|
      file = new File([data], filename, { type: mime });
 | 
						|
    }
 | 
						|
    return file;
 | 
						|
  }),
 | 
						|
 | 
						|
  href: computed('fileLike', function() {
 | 
						|
    return window.URL.createObjectURL(this.get('fileLike'));
 | 
						|
  }),
 | 
						|
 | 
						|
  click(event) {
 | 
						|
    if (!window.navigator.msSaveOrOpenBlob) {
 | 
						|
      return;
 | 
						|
    }
 | 
						|
    event.preventDefault();
 | 
						|
    let file = this.get('fileLike');
 | 
						|
    //lol whyyyy
 | 
						|
    window.navigator.msSaveOrOpenBlob(file, file.name);
 | 
						|
  },
 | 
						|
 | 
						|
  actionText: 'Download',
 | 
						|
  data: null,
 | 
						|
  filename: null,
 | 
						|
  mime: 'text/plain',
 | 
						|
  extension: 'txt',
 | 
						|
  stringify: false,
 | 
						|
});
 |