mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-11-04 04:28:08 +00:00 
			
		
		
		
	* add no-jquery rule and move event listeners to ember-concurrency tasks * remove unnecessary onchange and handleKeyDown actions * add element.closest polyfill and convert linked-block to use native dom apis * update pretender, fetch, page-object, add optional-features, remove ember/jquery * turn off jquery inclusion * remove jQuery.isPlainObject usage * violatedDirective isn't always formatted the same * use fetch and the ember-fetch adapter mixin * move to fetch and lowercase headers for pretender * display non-ember-data errors * use new async fn test style and lowercase headers in auth service test * setContext is not necessary with the new style tests and ember-cli-page-object - it actually triggers jquery usage * update ember-fetch, ember-cli-pretender * wait for permissions check * lowercase header name in auth test * refactor transit tests to one test per key type * simplify pollCluster helper * stop flakey tests by prefering the native fetch * avoid uncaught TransitionAborted error by navigating directly to unseal * unset model on controller after unloading it because controllers are singletons * update yarn.lock
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import { inject as service } from '@ember/service';
 | 
						|
import Component from '@ember/component';
 | 
						|
import hbs from 'htmlbars-inline-precompile';
 | 
						|
import { encodePath } from 'vault/utils/path-encoding-helpers';
 | 
						|
 | 
						|
let LinkedBlockComponent = Component.extend({
 | 
						|
  router: service(),
 | 
						|
 | 
						|
  layout: hbs`{{yield}}`,
 | 
						|
 | 
						|
  classNames: 'linked-block',
 | 
						|
 | 
						|
  queryParams: null,
 | 
						|
 | 
						|
  encode: false,
 | 
						|
 | 
						|
  click(event) {
 | 
						|
    const $target = event.target;
 | 
						|
    const isAnchorOrButton =
 | 
						|
      $target.tagName === 'A' ||
 | 
						|
      $target.tagName === 'BUTTON' ||
 | 
						|
      $target.closest('button') ||
 | 
						|
      $target.closest('a');
 | 
						|
    if (!isAnchorOrButton) {
 | 
						|
      let params = this.get('params');
 | 
						|
      if (this.encode) {
 | 
						|
        params = params.map((param, index) => {
 | 
						|
          if (index === 0 || typeof param !== 'string') {
 | 
						|
            return param;
 | 
						|
          }
 | 
						|
          return encodePath(param);
 | 
						|
        });
 | 
						|
      }
 | 
						|
      const queryParams = this.get('queryParams');
 | 
						|
      if (queryParams) {
 | 
						|
        params.push({ queryParams });
 | 
						|
      }
 | 
						|
      this.get('router').transitionTo(...params);
 | 
						|
    }
 | 
						|
  },
 | 
						|
});
 | 
						|
 | 
						|
LinkedBlockComponent.reopenClass({
 | 
						|
  positionalParams: 'params',
 | 
						|
});
 | 
						|
 | 
						|
export default LinkedBlockComponent;
 |