| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 | 
							- import { BlazeComponent } from 'meteor/peerlibrary:blaze-components';
 
- import { ReactiveVar } from 'meteor/reactive-var';
 
- import { Meteor } from 'meteor/meteor';
 
- import { Template } from 'meteor/templating';
 
- import './originalPositionsView.html';
 
- /**
 
-  * Component to display original positions for all entities on a board
 
-  */
 
- class OriginalPositionsViewComponent extends BlazeComponent {
 
-   onCreated() {
 
-     super.onCreated();
 
-     this.showOriginalPositions = new ReactiveVar(false);
 
-     this.boardHistory = new ReactiveVar([]);
 
-     this.isLoading = new ReactiveVar(false);
 
-     this.filterType = new ReactiveVar('all'); // 'all', 'swimlane', 'list', 'card'
 
-   }
 
-   onRendered() {
 
-     super.onRendered();
 
-     this.loadBoardHistory();
 
-   }
 
-   loadBoardHistory() {
 
-     const boardId = Session.get('currentBoard');
 
-     if (!boardId) return;
 
-     this.isLoading.set(true);
 
-     
 
-     Meteor.call('positionHistory.getBoardHistory', boardId, (error, result) => {
 
-       this.isLoading.set(false);
 
-       if (error) {
 
-         console.error('Error loading board history:', error);
 
-         this.boardHistory.set([]);
 
-       } else {
 
-         this.boardHistory.set(result);
 
-       }
 
-     });
 
-   }
 
-   toggleOriginalPositions() {
 
-     this.showOriginalPositions.set(!this.showOriginalPositions.get());
 
-   }
 
-   isShowingOriginalPositions() {
 
-     return this.showOriginalPositions.get();
 
-   }
 
-   isLoading() {
 
-     return this.isLoading.get();
 
-   }
 
-   getBoardHistory() {
 
-     return this.boardHistory.get();
 
-   }
 
-   getFilteredHistory() {
 
-     const history = this.getBoardHistory();
 
-     const filterType = this.filterType.get();
 
-     
 
-     if (filterType === 'all') {
 
-       return history;
 
-     }
 
-     
 
-     return history.filter(item => item.entityType === filterType);
 
-   }
 
-   getSwimlanesHistory() {
 
-     return this.getBoardHistory().filter(item => item.entityType === 'swimlane');
 
-   }
 
-   getListsHistory() {
 
-     return this.getBoardHistory().filter(item => item.entityType === 'list');
 
-   }
 
-   getCardsHistory() {
 
-     return this.getBoardHistory().filter(item => item.entityType === 'card');
 
-   }
 
-   setFilterType(type) {
 
-     this.filterType.set(type);
 
-   }
 
-   getFilterType() {
 
-     return this.filterType.get();
 
-   }
 
-   getEntityDisplayName(entity) {
 
-     const position = entity.originalPosition || {};
 
-     return position.title || `Entity ${entity.entityId}`;
 
-   }
 
-   getEntityOriginalPositionDescription(entity) {
 
-     const position = entity.originalPosition || {};
 
-     let description = `Position: ${position.sort || 0}`;
 
-     
 
-     if (entity.entityType === 'list' && entity.originalSwimlaneId) {
 
-       description += ` in swimlane ${entity.originalSwimlaneId}`;
 
-     } else if (entity.entityType === 'card') {
 
-       if (entity.originalSwimlaneId) {
 
-         description += ` in swimlane ${entity.originalSwimlaneId}`;
 
-       }
 
-       if (entity.originalListId) {
 
-         description += ` in list ${entity.originalListId}`;
 
-       }
 
-     }
 
-     
 
-     return description;
 
-   }
 
-   getEntityTypeIcon(entityType) {
 
-     switch (entityType) {
 
-       case 'swimlane':
 
-         return 'fa-bars';
 
-       case 'list':
 
-         return 'fa-columns';
 
-       case 'card':
 
-         return 'fa-sticky-note';
 
-       default:
 
-         return 'fa-question';
 
-     }
 
-   }
 
-   getEntityTypeLabel(entityType) {
 
-     switch (entityType) {
 
-       case 'swimlane':
 
-         return 'Swimlane';
 
-       case 'list':
 
-         return 'List';
 
-       case 'card':
 
-         return 'Card';
 
-       default:
 
-         return 'Unknown';
 
-     }
 
-   }
 
-   formatDate(date) {
 
-     return new Date(date).toLocaleString();
 
-   }
 
-   refreshHistory() {
 
-     this.loadBoardHistory();
 
-   }
 
- }
 
- OriginalPositionsViewComponent.register('originalPositionsView');
 
- export default OriginalPositionsViewComponent;
 
 
  |