<!--

    Copyright (C) 2015-2016 Jeeva Kandasamy (jkandasa@gmail.com)

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

            http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->
<div class="container-fluid"> <!-- Container-fluid -->

  <!-- Loading icon disaplay -->
  <div ng-hide="resourceTypes.$resolved">
    <div ng-include src="'partials/common-html/loading.html'"></div>
  </div>

  <div ng-show="resourceTypes.$resolved"> <!-- Main Message -->

    <!-- Page Header -->
    <div ng-include src="'partials/common-html/header-add-update.html'"></div>

    <div><!-- div-main -->
      <form class="form-horizontal" name="mcForm">
        <div class="col-md-6">

          <div class="form-group">
            <label class="col-sm-2 control-label">{{ 'NAME' | translate }}</label>
            <div class="col-sm-10 mc-form-fixer-left">
              <input class="form-control" placeholder="{{ 'TIMER_NAME' | translate }}" ng-model="timer.name" required />
            </div>
          </div>

          <div class="form-group">
            <label class="col-sm-2 control-label">{{ 'ENABLED' | translate }}</label>
            <div class="col-sm-10">
             <input class="bootstrap-switch" id="bootstrap-switch-state" type="checkbox" ng-model="timer.enabled" checked>
            </div>
          </div>

          <legend><small>{{ 'TYPE' | translate }}</small></legend>

          <div class="form-group">
            <label class="col-sm-2 control-label">{{ 'TIMER_TYPE' | translate }}</label>
            <div class="col-sm-3 mc-form-fixer-left">
              <select class="form-control" pf-select ng-change="timer.frequencyType=rpInterval=rpCount=''" ng-options="tt.id as tt.displayName for tt in timerTypes" ng-model="timer.timerType" required >
                <option value="" ng-hide="true"></option>
              </select>
            </div>

            <div class="col-sm-2 mc-form-fixer" ng-if="timer.timerType === 'Normal' || timer.timerType === 'Before sunrise' || timer.timerType === 'After sunrise' || timer.timerType === 'Before sunset' || timer.timerType === 'After sunset'">
              <select class="form-control" pf-select ng-options="tft.displayName as tft.displayName for tft in timerFrequencyTypes" ng-change="updateFrequency()" ng-model="timer.frequencyType" required >
                <option value="" ng-hide="true"></option>
              </select>
            </div>
            <div class="col-sm-5 mc-form-fixer" ng-if="timer.frequencyType === 'Daily'">
              <select class="form-control" pf-select multiple ng-options="twd.displayName as twd.displayName for twd in timerWeekDays" ng-model="$parent.dailyFrequencyData" required >
                <option value="" ng-hide="true"></option>
              </select>
            </div>
            <div class="col-sm-3 mc-form-fixer" ng-if="timer.frequencyType === 'Weekly'">
              <select class="form-control" pf-select ng-options="twd.displayName as twd.displayName for twd in timerWeekDays" ng-model="$parent.weeklyFrequencyData" required >
                <option value="" ng-hide="true"></option>
              </select>
            </div>
            <div class="col-sm-2 mc-form-fixer" ng-if="timer.frequencyType === 'Monthly'">
              <select class="form-control" pf-select ng-options="monthDay for monthDay in monthDays" ng-model="$parent.monthlyFrequencyData" required >
                <option value="" ng-hide="true">{{ 'DAY' | translate }}</option>
              </select>
            </div>

            <div class="col-sm-7 mc-form-fixer" ng-if="timer.timerType === 'Cron'">
              <input class="form-control" placeholder="{{ 'CRON_EXPRESSION' | translate }}" ng-model="$parent.cronFrequencyData" required />
            </div>


            <div ng-if="timer.timerType === 'Simple'">
              <div class="col-sm-4 mc-form-fixer">
                <input class="form-control" placeholder="{{ 'INTERVAL_IN_SECONDS' | translate }}" ng-model="$parent.rpInterval" pf-validation="cs.isNumber(input)" required />
                <span class="help-block">{{ 'VALIDATION_ERROR_NUMBER' | translate }}</span>
              </div>
              <div class="col-sm-3 mc-form-fixer">
                <input class="form-control" placeholder="{{ 'COUNT' | translate }}" ng-model="$parent.rpCount" pf-validation="cs.isNumber(input)" required />
                <span class="help-block">{{ 'VALIDATION_ERROR_NUMBER' | translate }}</span>
              </div>
            </div>

          </div>

          <!-- Time -->
          <div ng-if="timer.timerType === 'Normal'">
            <div class="form-group">
              <label class="col-sm-2 control-label">{{ 'TIME_HH_MM_SS' | translate }}</label>
              <div class="col-sm-2 mc-form-fixer-left" ng-init="setTriggerTime(false)">
                 <uib-timepicker ng-model="$parent.lTriggerTime"  show-seconds="true"  show-spinners="false" second-step="1" ng-change="changed()" hour-step="1" minute-step="1" show-meridian="showMeridian"></uib-timepicker>
              </div>
            </div>
          </div>

          <div ng-if="timer.timerType === 'Before sunrise' || timer.timerType === 'Before sunset' || timer.timerType === 'After sunrise' || timer.timerType === 'After sunset'">
            <div class="form-group">
              <label class="col-sm-2 control-label">{{ 'TIME_OFFSET_HH_MM_SS' | translate }}</label>
              <div class="col-sm-2 mc-form-fixer-left" ng-init="setTriggerTime(true)">
                 <uib-timepicker ng-model="$parent.lTriggerTime"  show-seconds="true"  show-spinners="false" second-step="1" ng-change="changed()" hour-step="1" minute-step="1" show-meridian="false"></uib-timepicker>
              </div>
            </div>
          </div>


          <legend><small>{{ 'VALIDITY' | translate }}</small></legend>
          <!-- Validity -->
          <div class="form-group">
            <label class="col-sm-2 control-label"></label>

            <div class="col-sm-5 mc-form-fixer-left">
              <div>
                <a class="dropdown-toggle" id="datetime1" role="button" data-toggle="dropdown" data-target="#" href="">
                  <div class="input-group">
                    <input type="text" class="form-control mc-show-disabled" data-ng-model="vFromString" ng-readonly="true">
                    <span class="input-group-addon">
                       <i class="fa fa-calendar fa-lg"></i>
                    </span>
                  </div>
                </a>
                <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
                  <datetimepicker data-ng-model="vFromDate" data-on-set-time="vFromString = getDateTimeDisplayFormat(newDate)" data-datetimepicker-config="{ dropdownSelector: '#datetime1', minuteStep:1 }"/>
                </ul>
              </div>
            </div>

            <div class="col-sm-5 mc-form-fixer">
              <div>
                <a class="dropdown-toggle" id="datetime2" role="button" data-toggle="dropdown" data-target="#" href="">
                  <div class="input-group">
                    <input type="text" class="form-control mc-show-disabled" data-ng-model="vToString" ng-readonly="true">
                    <span class="input-group-addon">
                       <i class="fa fa-calendar fa-lg"></i>
                    </span>
                  </div>
                </a>
                <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
                  <datetimepicker data-ng-model="vToDate" data-on-set-time="newDate.setSeconds(newDate.getSeconds() + 59); vToString = getDateTimeDisplayFormat(newDate)"
                    data-datetimepicker-config="{ dropdownSelector: '#datetime2', minuteStep:1 }"/>
                </ul>
              </div>
            </div>
          </div>

          <legend><small>{{ 'OPERATIONS' | translate }}</small></legend>

          <div class="form-group">
            <label class="col-sm-2 control-label"></label>
            <div class="col-sm-10">
              <div class="card-pf card-pf-accented">
                <div class="card-pf-body">
                  <div>
                    <select ng-options="ls.id as ls.displayName for ls in operations" multiple
                      ng-model="timer.operationIds" bs-duallistbox
                      move-on-select="false"
                      filter="true"
                      select-min-height="200"
                      ></select>
                  </div>
                </div>
              </div>
            </div>
          </div>


          <!-- Include save form buttons -->
          <div ng-include src="'partials/common-html/save-form.html'"></div>

        </div>
      </form>
    </div><!-- div-main -->

  </div> <!-- Main Message -->
</div> <!-- container -->
