63 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			63 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @file
							 | 
						||
| 
								 | 
							
								 * Taxonomy behaviors.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(function ($, Drupal) {
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Reorder taxonomy terms.
							 | 
						||
| 
								 | 
							
								   *
							 | 
						||
| 
								 | 
							
								   * This behavior is dependent on the tableDrag behavior, since it uses the
							 | 
						||
| 
								 | 
							
								   * objects initialized in that behavior to update the row.
							 | 
						||
| 
								 | 
							
								   *
							 | 
						||
| 
								 | 
							
								   * @type {Drupal~behavior}
							 | 
						||
| 
								 | 
							
								   *
							 | 
						||
| 
								 | 
							
								   * @prop {Drupal~behaviorAttach} attach
							 | 
						||
| 
								 | 
							
								   *   Attaches the drag behavior to an applicable table element.
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  Drupal.behaviors.termDrag = {
							 | 
						||
| 
								 | 
							
								    attach(context, settings) {
							 | 
						||
| 
								 | 
							
								      const backStep = settings.taxonomy.backStep;
							 | 
						||
| 
								 | 
							
								      const forwardStep = settings.taxonomy.forwardStep;
							 | 
						||
| 
								 | 
							
								      // Get the taxonomy tableDrag object.
							 | 
						||
| 
								 | 
							
								      const tableDrag = Drupal.tableDrag.taxonomy;
							 | 
						||
| 
								 | 
							
								      const $table = $('#taxonomy');
							 | 
						||
| 
								 | 
							
								      const rows = $table.find('tr').length;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      // When a row is swapped, keep previous and next page classes set.
							 | 
						||
| 
								 | 
							
								      tableDrag.row.prototype.onSwap = function (swappedRow) {
							 | 
						||
| 
								 | 
							
								        $table
							 | 
						||
| 
								 | 
							
								          .find('tr.taxonomy-term-preview')
							 | 
						||
| 
								 | 
							
								          .removeClass('taxonomy-term-preview');
							 | 
						||
| 
								 | 
							
								        $table
							 | 
						||
| 
								 | 
							
								          .find('tr.taxonomy-term-divider-top')
							 | 
						||
| 
								 | 
							
								          .removeClass('taxonomy-term-divider-top');
							 | 
						||
| 
								 | 
							
								        $table
							 | 
						||
| 
								 | 
							
								          .find('tr.taxonomy-term-divider-bottom')
							 | 
						||
| 
								 | 
							
								          .removeClass('taxonomy-term-divider-bottom');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        const tableBody = $table[0].tBodies[0];
							 | 
						||
| 
								 | 
							
								        if (backStep) {
							 | 
						||
| 
								 | 
							
								          for (let n = 0; n < backStep; n++) {
							 | 
						||
| 
								 | 
							
								            $(tableBody.rows[n]).addClass('taxonomy-term-preview');
							 | 
						||
| 
								 | 
							
								          }
							 | 
						||
| 
								 | 
							
								          $(tableBody.rows[backStep - 1]).addClass('taxonomy-term-divider-top');
							 | 
						||
| 
								 | 
							
								          $(tableBody.rows[backStep]).addClass('taxonomy-term-divider-bottom');
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (forwardStep) {
							 | 
						||
| 
								 | 
							
								          for (let k = rows - forwardStep - 1; k < rows - 1; k++) {
							 | 
						||
| 
								 | 
							
								            $(tableBody.rows[k]).addClass('taxonomy-term-preview');
							 | 
						||
| 
								 | 
							
								          }
							 | 
						||
| 
								 | 
							
								          $(tableBody.rows[rows - forwardStep - 2]).addClass(
							 | 
						||
| 
								 | 
							
								            'taxonomy-term-divider-top',
							 | 
						||
| 
								 | 
							
								          );
							 | 
						||
| 
								 | 
							
								          $(tableBody.rows[rows - forwardStep - 1]).addClass(
							 | 
						||
| 
								 | 
							
								            'taxonomy-term-divider-bottom',
							 | 
						||
| 
								 | 
							
								          );
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								      };
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								})(jQuery, Drupal);
							 |