<section class="content-header">
    <h4 translate class="subheader-title">
        <span class="subheader-icon fal fa-table"></span>&nbsp;Menu Master
    <small> </small>
  </h4>
</section>

<section class="content">
  <div class="box padding-15" style="display: block;">
    <div class="row">
      <div class="col-sm-9">
        <div class="dataTables_length" id="datatable_length">
          <button type="button" *ngIf="add==true" (click)="openMenuModal(menuTemplate,'add')" 
          class="btn btn-outline-primary waves-effect waves-themed btn-sm">
            <span class="fal fa-plus"></span>&nbsp;Add New</button>
            &nbsp; &nbsp; <a href="#/dashboard" class="btn btn-outline-primary waves-effect waves-themed btn-sm">
              <i class="fal fa-chart-area"></i> Go back to dashboard</a>
        </div>
      </div>
           <div class="col-sm-3">
        <div class="input-group">
          <input type="text" class="form-control" placeholder="Menu Name" [(ngModel)]="searchText" aria-label="Search">
          <span class="input-group-append">
              <button class="btn btn-primary waves-effect waves-themed btn-sm" type="button">
                <span class="fal fa-search"></span>
                    </button>
    </span>
        </div>
      </div>
    </div>
    <div class="table-responsive">
      <table class="table jambo_table table-striped table-condensed table-hover">
        <thead>
          <tr class="headings">
            <th style="width:60px">#</th>
            <th *ngIf="(edit==true || delete==true)" style="width:110px;">
              <label style="font-weight:bold;margin-bottom:0px;">Action</label>&nbsp;&nbsp;
              <span *ngIf="showall==false" class="img-showactive" style="cursor:pointer;" (click)="getactiveinactive(false)"
                title="Show all"></span>
              <span *ngIf="showall==true" class="img-showall" style="cursor:pointer;" (click)="getactiveinactive(true)"
                title="Show only active"></span>
            </th>
            <th class="pointer" (click)="sort('menu')">
              Menu
              <i *ngIf="key =='menu'" class="fa {{reverse==true?'fa-caret-up':'fa-caret-down'}}"></i>
            </th>

            <th class="pointer" (click)="sort('tooltip')">
              Tool Tip
              <i *ngIf="key =='tooltip'" class="fa {{reverse==true?'fa-caret-up':'fa-caret-down'}}"></i>
            </th>

            <th class="pointer" (click)="sort('action')">
              URL
              <i *ngIf="key =='action'" class="fa {{reverse==true?'fa-caret-up':'fa-caret-down'}}"></i>
            </th>


            <th class="pointer" (click)="sort('sequenceno')">
              Sequence
              <i *ngIf="key =='sequenceno'" class="fa {{reverse==true?'fa-caret-up':'fa-caret-down'}}"></i>
            </th>

            <th class="pointer" (click)="sort('parentmenuid')">
              Parent Menu
              <i *ngIf="key =='parentmenuid'" class="fa {{reverse==true?'fa-caret-up':'fa-caret-down'}}"></i>
            </th>
            <th class="pointer" (click)="sort('createdbyname')">
              Created By
              <i *ngIf="key =='createdbyname'" class="fa {{reverse==true?'fa-caret-up':'fa-caret-down'}}"></i>
            </th>
            <th class="pointer" (click)="sort('createdon')">
              Created Date
              <i *ngIf="key =='createdon'" class="fa {{reverse==true?'fa-caret-up':'fa-caret-down'}}"></i>
            </th>
            <th class="pointer" (click)="sort('updatedbyname')">
              Last Modified By
              <i *ngIf="key =='updatedbyname'" class="fa {{reverse==true?'fa-caret-up':'fa-caret-down'}}"></i>
            </th>
            <th class="pointer" (click)="sort('updatedon')">
              Last Modified Date
              <i *ngIf="key =='updatedon'" class="fa {{reverse==true?'fa-caret-up':'fa-caret-down'}}"></i>
            </th>
          </tr>
        </thead>
        <tbody>
          <tr *ngFor="let item of menus| orderBy: key : reverse |filter:searchText|paginate: { itemsPerPage: itemsPerPage, currentPage: p};let i = index">
            <td>{{itemsPerPage * (p - 1) + i + 1}}</td>
            <td *ngIf="(edit==true || delete==true)">
              <span class="fal fa-pencil blue" style="cursor:pointer;" (click)="openMenuModal(menuTemplate,'update',item)"
                title="Edit" *ngIf="edit==true"></span>&nbsp;&nbsp;
              <span *ngIf="item.active==1 && delete==true" class="img-active" style="cursor:pointer;" (click)="OpenConfirmTemplate(item)"
                title="Active"></span>
              <span *ngIf="item.active==0 && delete==true" class="img-inactive" style="cursor:pointer;" (click)="OpenConfirmTemplate(item)"
                title="Inactive"></span>
            </td>
            <td>{{item.menu}}</td>
            <td>{{item.tooltip}}</td>
            <td>{{item.action}}</td>
            <td>{{item.sequenceno}}</td>
            <td>{{item.parentname}}</td>
            <td>{{item.createdbyname}}</td>
            <td>{{item.createdon | date:'MM-dd-yyyy'}}</td>
            <td>{{item.updatedbyname}}</td>
            <td>{{item.updatedon | date:'MM-dd-yyyy'}}</td>
          </tr>
          <tr *ngIf="menus.length==0 || (menus |filter:searchText).length === 0">
            <td colspan="11" style="text-align:center;">No Records Found</td>
          </tr>

        </tbody>
      </table>
      <div *ngIf="menus && menus.length!=0" class="pull-right">
        <pagination-controls (pageChange)="p = $event"></pagination-controls>
      </div>
    </div>
  </div>
</section>

    <ng-template #menuTemplate>
      <div class="modal-content" id="mainNgCnt" ngDraggable [handle]="dragHandle">
        <div class="modal-header" style="cursor:move" #dragHandle>
          <h4 class="modal-title pull-left" *ngIf="operation=='add'"><span class="fal fa-plus"></span>&nbsp;Add New Menu</h4>
          <h4 class="modal-title pull-left" *ngIf="operation=='update'"><span class="fal fa-edit"></span>&nbsp;Edit Menu</h4>
          <button type="button" class="close pull-right" aria-label="Close" (click)="menuModalRef.hide()">
            <span aria-hidden="true">&times;</span>
          </button>
        </div>
        <div class="modal-body">

          <form [formGroup]="menuForm" (ngSubmit)="Post(menuForm.value)">
            <input type="hidden" name="menuid" formControlName="menuid" />
            <table class="table">
              <tr>
                <td>
                  <div class="form-group">
                    <label>Menu Name</label><span style="color:red;">*</span><input type="text" trim placeholder="Enter Menu Name"
                      name="menu" formControlName="menu" class="form-control" />
                    <div *ngIf="submitted && g.menu.errors" class="invalid-feedback">
                      <div *ngIf="g.menu.errors.required" class="errormsg">Menu Name is required</div>
                    </div>
                  </div>
                </td>
              </tr>
              <tr>
                <td>
                  <div class="form-group">
                    <label>Tool Tip</label><span style="color:red;">*</span><input type="text" trim placeholder="Enter Tool Tip"
                      name="tooltip" formControlName="tooltip" class="form-control" />
                    <div *ngIf="submitted && g.tooltip.errors" class="invalid-feedback">
                      <div *ngIf="g.tooltip.errors.required" class="errormsg">Tool Tip is required</div>
                    </div>
                  </div>
                </td>
              </tr>
              <tr>
                <td>
                  <div class="form-group">
                    <label>CSS icon</label><input type="text" trim placeholder="Enter CSS icon" name="menuiconpath"
                      formControlName="menuiconpath" class="form-control" />
                  </div>
                </td>
              </tr>
              <tr>
                <td>
                  <div class="form-group">
                    <label>URL</label><input type="text" trim placeholder="Enter URL" name="action" formControlName="action"
                      class="form-control" />
                  </div>
                </td>
              </tr>
              <tr>
                <td>
                  <div class="form-group">
                    <label>Sequence No</label><input type="number" trim placeholder="Enter sequence no" name="sequenceno"
                      formControlName="sequenceno" class="form-control" />
                  </div>
                </td>
              </tr>
              <tr>
                <td>
                  <div class="form-group">
                    <label class="labelfont" for="parentmenuid">Parent Menu</label>
                    <select formControlName="parentmenuid" id="parentmenuid" class="form-control">
                      <option value="0">Select Parent Menu</option>
                      <option *ngFor="let menu of parentmenus; let i = index" [value]="menu.menuid">
                        {{menu.menu}}
                      </option>
                    </select>
                  </div>
                </td>
              </tr>
              <tr *ngIf="operation=='update'">
                <td colspan="2">
                  <div class="form-group">
                    <input type="checkbox" (change)="ChangeActive($event)" name="active" formControlName="active" /><label>Active</label>
                  </div>
                </td>
              </tr>
              <tr>
                <td>
                  <div class="form-group">
                    <button type="button" class="btn btn-sm btn-outline-warning waves-effect waves-themed pull-right" (click)="clearForm();">Cancel</button>
                    <button type="submit" *ngIf="(edit==true || add==true)" 
                    class="btn btn-sm btn-outline-primary waves-effect waves-themed pull-right"
                      [disabled]="menuForm.invalid">
                      <span *ngIf="operation=='add' && add==true">Add</span>
                      <span *ngIf="operation!='add' && edit==true">Update</span>
                    </button>
                  </div>
                </td>
              </tr>
            </table>
          </form>
        </div>
      </div>
    </ng-template>
