patternfly/angular-patternfly

View on GitHub
src/canvas-view/canvas-editor/canvas-editor.html

Summary

Maintainability
Test Coverage
<div class="canvas-editor-container">

    <div class="canvas-editor-toolbar">
        <button id="toggleToolbox" class="btn btn-primary" ng-class="{'disabled': $ctrl.chartViewModel.inConnectingMode || $ctrl.readOnly}" type="button"
                ng-click="$ctrl.toggleToolbox()"
                tooltip-placement="bottom-left" uib-tooltip="{{'Add Item To Canvas'}}">Add Item
          <span class="fa" ng-class="{'fa-angle-double-up': $ctrl.toolboxVisible, 'fa-angle-double-down': !$ctrl.toolboxVisible}"></span>
        </button>

        <!-- user defined more actions -->
        <span ng-transclude></span>

        <span class="right-aligned-controls">
          <input ng-class="{'disabled': $ctrl.chartViewModel.inConnectingMode}"
                 ng-model="$ctrl.hideConnectors"
                 ng-change="$ctrl.toggleshowHideConnectors()"
                 type="checkbox"
                 ng-checked="$ctrl.hideConnectors"/>
          <span class="show-hide-connectors-label">Hide Connectors</span>
          <a id="zoomOut" ng-click="$ctrl.zoomOut()" ng-class="{'disabled': $ctrl.minZoom()}">
            <span class="pficon fa fa-minus"
                  tooltip-append-to-body="true" tooltip-placement="bottom"
                  uib-tooltip="{{'Zoom Out'}}">
            </span>
          </a>
          <a id="zoomIn" ng-click="$ctrl.zoomIn()" ng-class="{'disabled': $ctrl.maxZoom()}">
            <span class="pficon fa fa-plus"
                  tooltip-append-to-body="true" tooltip-placement="bottom-right"
                  uib-tooltip="{{'Zoom In'}}">
            </span>
          </a>
        </span>
    </div>

    <div class="canvas-editor-toolbox-container">

        <div class="canvas-editor-toolbox" id="toolbox" ng-if="$ctrl.toolboxVisible">

          <a ng-click="$ctrl.toolboxVisible = false" class="close-toolbox"><span class="pficon pficon-close"></span></a>

          <div class="toolbox-filter">
            <input ng-model="$ctrl.searchText" id="filterFld" class="search-text"
                   placeholder="{{'Filter by name'}}"/>
            <a ng-click="$ctrl.searchText = ''"><span class="pficon pficon-close clear-search-text"></span></a>
          </div>

          <uib-tabset>
            <uib-tab ng-repeat="tab in $ctrl.toolboxTabs" heading="" active="tab.active">
              <uib-tab-heading ng-click="$ctrl.tabClicked()">
                <div class="tab-pre-title">{{tab.preTitle}}</div>
                <div class="tab-title" ng-class="{'tab-single-line':tab.preTitle == null}">{{tab.title}}</div>
              </uib-tab-heading>

              <uib-tabset class="subtabs" ng-if="tab.subtabs">
                <uib-tab ng-repeat="subtab in tab.subtabs" heading="{{subtab.title}}" active="subtab.active" ng-click="$ctrl.tabClicked()">

                  <uib-tabset class="subtabs" ng-if="subtab.subtabs">
                    <uib-tab ng-repeat="subsubtab in subtab.subtabs" heading="{{subsubtab.title}}" active="subsubtab.active" ng-click="$ctrl.tabClicked()">
                      <toolbox-items items="subsubtab.items"
                                     start-drag-callback="$ctrl.startCallback"
                                     click-callback="$ctrl.addNodeByClick"
                                     search-text="$ctrl.searchText"/>
                    </uib-tab>
                  </uib-tabset>

                  <!-- SubTabs without Sub-Sub Tabs -->
                  <toolbox-items ng-if="!subtab.subtabs"
                                 items="subtab.items"
                                 start-drag-callback="$ctrl.startCallback"
                                 click-callback="$ctrl.addNodeByClick"
                                 search-text="$ctrl.searchText"/>
                </uib-tab>
              </uib-tabset>

              <!-- Primary Tabs without SubTabs -->
              <toolbox-items ng-if="!tab.subtabs" items="tab.items"
                             start-drag-callback="$ctrl.startCallback"
                             click-callback="$ctrl.addNodeByClick"
                             search-text="$ctrl.searchText"/>
            </uib-tab>
          </uib-tabset>
        </div>

        <div class="canvas-container" data-drop="true" data-jqyoui-options jqyoui-droppable="{onDrop:'$ctrl.dropCallback'}">
          <pf-canvas chart-data-model="$ctrl.chartDataModel"
                     chart-view-model="$ctrl.chartViewModel"
                     read-only="$ctrl.readOnly"
                     hide-connectors="$ctrl.hideConnectors">
          </pf-canvas>
        </div>
    </div>
</div>