Advertisement
Guest User

Untitled

a guest
Feb 18th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     import { Store, ICabinViewModel, IFormState, ACTIONS } from '../services/Store';
  2.  
  3.     const template = `
  4.     <div class="form-group">
  5.  
  6.         <label class="col-xs-12 col-is-4 col-sm-4 col-lg-3 control-label" data-ng-bind="'cruiseData.cabintype' | translate"></label>
  7.  
  8.         <div class="col-xs-12 col-is-8 col-sm-8 col-lg-9">
  9.             <span data-ng-show="ctrl.isLoading" class="loadingIndicator"></span>
  10.             <select class="form-control"
  11.                     id="cabinSelect"
  12.                     data-ng-disabled="ctrl.isLoading"
  13.                     data-ng-if="ctrl.cabintypeSelect.length && !ctrl.showPerNightPrice"
  14.                     data-ng-model="ctrl.selectedCabin"
  15.                     data-ng-change="ctrl.onChange(ctrl.selectedCabin)"
  16.                     data-ng-options="cabintype as cabintype.title group by (cabintype.kindName | translate) for cabintype in ctrl.cabintypeSelect track by cabintype.id">
  17.             </select>
  18.             <select class="form-control"
  19.                     id="cabinSelect"
  20.                     data-ng-disabled="ctrl.isLoading"
  21.                     data-ng-if="ctrl.cabintypeSelect.length && ctrl.showPerNightPrice"
  22.                     data-ng-model="ctrl.selectedCabin"
  23.                     data-ng-change="ctrl.onChange(ctrl.selectedCabin)"
  24.                     data-ng-options="cabintype as cabintype.perNightTitle group by (cabintype.kindName | translate) for cabintype in ctrl.cabintypeSelect track by cabintype.id">
  25.             </select>
  26.             <img data-ng-show="ctrl.isLoading"
  27.                 src="/wp-content/themes/dreamlines/assets/images/icons/loading.gif"
  28.                 class="loadingIndicator text-center"
  29.                 alt="loading ...">
  30.         </div>
  31.     </div>`;
  32.  
  33.     class Controller implements ng.IComponentController {
  34.  
  35.         isLoading:boolean;
  36.         selectedCabinId:string;
  37.         selectedCabin: ICabinViewModel;
  38.         cabintypeSelect:ICabinViewModel[];
  39.         showPerNightPrice: boolean;
  40.  
  41.         /**
  42.          * function for view that will dispatch the action at the store
  43.          * @param payload
  44.          */
  45.         onChange = (payload:ICabinViewModel) => {
  46.             this.store
  47.                 .dispatchState({
  48.                     type: ACTIONS.SET_CABIN_TYPE,
  49.                     payload: payload.id,
  50.                 }, 'dlSelectCabin');
  51.             console.log('payload', payload);
  52.         };
  53.  
  54.         public static $inject = [
  55.             'store'
  56.         ];
  57.  
  58.         constructor(private store:Store) {
  59.             this.isLoading = store.getIsLoading();
  60.             store.isLoading.subscribe(e => (this.isLoading = e));
  61.  
  62.             store.getLastState().then(this.assign);
  63.             store.subscribe(this.assign);
  64.         }
  65.  
  66.         assign = ({ selectedCabinId, selectedCabin, cabintypeSelect, configuration }:IFormState) => {
  67.             this.selectedCabinId = selectedCabinId;
  68.             this.selectedCabin = selectedCabin;
  69.             this.cabintypeSelect = cabintypeSelect;
  70.         };
  71.  
  72.     }
  73.  
  74.     const dlSelectCabin:ng.IComponentOptions = {
  75.         template: template,
  76.         controller: Controller,
  77.         controllerAs: 'ctrl',
  78.         bindings: {
  79.             showPerNightPrice: '<'
  80.         }
  81.  
  82.     };
  83.  
  84.     export { dlSelectCabin };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement