Yangman - requests settings
[dlux.git] / modules / yangman-resources / src / main / resources / yangman / views / rightpanel / request-header.tpl.html
1 <md-content layout="column" layout-wrap class="md-padding" ng-controller="RequestHeaderCtrl as requestHeader">
2     <section layout="row">
3         <!-- Methods selector -->
4         <md-input-container flex="initial">
5             <md-select ng-model="requestHeader.selectedOperation"
6                        md-on-close="requestHeader.setJsonView()"
7                        id="request-selected-operation"
8                        placeholder="{{'YANGMAN_SEL_METHOD' | translate}}">
9
10                 <md-option ng-value="operation" ng-repeat="operation in requestHeader.selectedOperationsList">
11                     {{ operation }}
12                 </md-option>
13             </md-select>
14         </md-input-container>
15
16         <!-- Request url input -->
17         <section flex layout="row" layout-wrap>
18             <md-input-container flex md-no-float ng-if="rightPanelSection === requestHeader.constants.DISPLAY_TYPE_REQ_DATA">
19                 <input type="text"
20                        ng-model="requestHeader.requestUrl"
21                        id="request-url"
22                        placeholder="{{'YANGMAN_REQ_URL' | translate}}"
23                        spellcheck="false">
24             </md-input-container>
25
26             <div ng-repeat="pathElem in selectedSubApi.pathArray track by $index"
27                  flex="nogrow"
28                  id="path-elem-{{$index}}"
29                  layout="row"
30                  ng-init="parentIndex = $index"
31                  ng-if="rightPanelSection === requestHeader.constants.DISPLAY_TYPE_FORM">
32
33                 <md-input-container flex="nogrow" md-no-float class="input-span nrp" >
34                     <span class="md-input" disabled>
35                         {{(pathElem.moduleChanged ? '/' + pathElem.module + ':' : '/') + pathElem.name}}
36                         {{pathElem.hasIdentifier() ? '/' : ''}}
37                     </span>
38                 </md-input-container>
39
40                 <!-- Identifier's inputs -->
41                 <md-input-container flex="nogrow" md-no-float
42                                     ng-repeat="identifier in pathElem.identifiers"
43                                     ng-show="pathElem.hasIdentifier()"
44                                     layout="column"
45                                     class="nrp">
46
47                     <input type="text"
48                            class="input-identifier"
49                            ng-change="requestHeader.fillNodeData(pathElem, identifier)"
50                            ng-model="identifier.value"
51                            id="path-elem-{{parentIndex}}-value"
52                            aria-label="{{identifier.value}}"
53                            ng-class="{'md-has-error': !identifier.value.length}"
54                            spellcheck="false">
55                     <!-- input error message -->
56                     <div ng-show="!identifier.value.length" class="md-custom-error">
57                         {{'YANGMAN_INPUT_REQUIRED' | translate}}
58                     </div>
59                 </md-input-container>
60             </div>
61
62             <md-input-container flex md-no-float
63                                 ng-if="rightPanelSection === requestHeader.constants.DISPLAY_TYPE_FORM"
64                                 class="input-span">
65
66                 <input type="text"
67                        placeholder="{{!selectedSubApi ? ('YANGMAN_REQ_URL' | translate) : ''}}"
68                        ng-disabled="true">
69             </md-input-container>
70         </section>
71
72         <!-- Action buttons -->
73         <md-input-container flex="nogrow" layout="row" layout-align="start start" class="action-buttons">
74             <!-- Execute action button -->
75             <md-button class="md-raised md-primary has-progress"
76                        id="send-request"
77                        ng-click="requestHeader.prepareDataAndExecute(
78                             main.modulesTreeDisplayed() ? main.leftPanelShowModule : null
79                        )">
80                 {{'YANGMAN_SEND' | translate}}
81             </md-button>
82
83             <!-- Save request -->
84             <md-button class="md-raised md-warn" id="save-request" ng-click="requestHeader.saveRequestToCollection($event)">
85                 {{'YANGMAN_SAVE' | translate}}
86             </md-button>
87
88             <!-- Parameters button -->
89             <md-button class="md-raised" id="show-parameters" ng-click="requestHeader.showParamsAdmin($event)">
90                 {{'YANGMAN_PARAMETERS' | translate}}
91             </md-button>
92
93             <!-- sub api custom functionality menu -->
94             <!-- todo: add ids for testing -->
95             <md-menu ng-show="selectedSubApi.custFunct.length || requestHeader.selectedPluginsButtons.length">
96                 <md-button aria-label="Open demo menu" class="md-icon-button" ng-click="$mdOpenMenu($event)">
97                     <md-icon md-font-set="material-icons">more_vert</md-icon>
98                     <md-tooltip md-direction="top">{{ 'YANGMAN_PLUGINS_MENU' | translate}}</md-tooltip>
99                 </md-button>
100
101                 <md-menu-content>
102                     <!-- plugins buttons -->
103                     <md-menu-item ng-repeat="pluginFunctionality in selectedSubApi.custFunct"
104                                   ng-hide="requestHeader.selectedPlugin">
105                         <md-button ng-click="requestHeader.executePluginFunctionality(pluginFunctionality)">
106                             {{ pluginFunctionality.label | translate }}
107                         </md-button>
108                     </md-menu-item>
109
110                     <!-- plugin own buttons -->
111                     <md-menu-item ng-repeat="button in requestHeader.selectedPluginsButtons" ng-show="button.show()">
112                         <md-button ng-click="button.onclick()">
113                             {{ button.label | translate }}
114                         </md-button>
115                     </md-menu-item>
116                 </md-menu-content>
117             </md-menu>
118         </md-input-container>
119     </section>
120
121     <md-divider flex="grow"></md-divider>
122
123     <section layout="row" layout-align="start center" class="status-bar">
124         <!-- Data type switcher - radio button -->
125         <md-radio-group ng-model="requestHeader.selectedShownDataType"
126                         class="type-switcher"
127                         layout="row"
128                         flex="25"
129                         layout-align="start center"
130                         ng-change="requestHeader.changeDataType()">
131             <md-radio-button id="shown-data-type-form" value="form" aria-label="{{'YANGMAN_FORM' | translate}}">
132                 {{'YANGMAN_FORM' | translate}}
133             </md-radio-button>
134
135             <md-radio-button id="shown-data-type-json" value="req-data" aria-label="{{'YANGMAN_JSON' | translate}}">
136                 {{'YANGMAN_JSON' | translate}}
137             </md-radio-button>
138         </md-radio-group>
139
140         <md-checkbox class="mb0" flex layout-align="center end" ng-model="requestHeader.fillFormWithReceivedData" ng-disabled="requestHeader.selectedShownDataType==='req-data'">
141             {{ 'YANGMAN_FILL_FORM_WITH_RECEIVED' | translate }}
142         </md-checkbox>
143
144         <!-- Request info box -->
145         <md-content flex="40"
146                     layout="row"
147                     layout-align="end center"
148                     class="status-text">
149
150             <!-- Status -->
151             <span flex="30">
152                 {{'YANGMAN_STATUS' | translate}}:
153                 <span id="info-request-status" ng-if="requestHeader.statusObj && requestHeader.statusObj.statusText">
154                     {{requestHeader.statusObj.status}} {{requestHeader.statusObj.statusText}}
155                 </span>
156                 <span id="info-request-status" ng-if="!(requestHeader.statusObj && requestHeader.statusObj.statusText)">
157                     ...
158                 </span>
159             </span>
160
161             <!-- Request time -->
162             <span flex="30">
163                 {{'YANGMAN_TIME' | translate}}:
164                 <span id="info-request-execution-time" ng-if="requestHeader.statusObj && requestHeader.statusObj.time">
165                     {{requestHeader.statusObj.time}} ms
166                 </span>
167                 <span id="info-request-execution-time" ng-if="!(requestHeader.statusObj && requestHeader.statusObj.time)">
168                     ...
169                 </span>
170             </span>
171         </md-content>
172     </section>
173 </md-content>
174 <md-progress-linear md-mode="indeterminate" ng-show="main.executingRequestProgress"></md-progress-linear>