1 <ht-header help-link='sdnr/pnfPerformance/0.4.0/README.md'></ht-header>
2 <div class="owl container">
6 <div class="col-md-2 text-right radio">
7 <span>{{'MWTN_LINK_IDENTIFIER' | translate }}</span>
10 <div class="form-group">
11 <input list="linkIds" class="form-control" ng-model="linkId">
12 <datalist id="linkIds">
13 <option ng-repeat="linkId in linkIds" value="{{linkId}}" >{{linkId}}</option>
20 <div class="col-md-2 text-right radio">
21 <span class="white">{{'MWTN_NETWORKELEMENT' | translate}} A</span>
23 <div class="col-md-4">
24 <div class="form-group">
25 <input list="networkElementsA" class="form-control" ng-model="networkElementA" placeholder="Select network element">
26 <datalist id="networkElementsA">
27 <option ng-repeat="ne in networkElements" value="{{ne.id}}">{{ne.id}}</option>
32 <div class="col-md-2 text-right radio">
33 <span class="white">{{'MWTN_NETWORKELEMENT' | translate}} B</span>
35 <div class="col-md-4">
36 <div class="form-group">
37 <input list="networkElementsB" class="form-control" ng-model="networkElementB" placeholder="Select network element">
38 <datalist id="networkElementsB">
39 <option ng-repeat="ne in networkElements" value="{{ne.id}}">{{ne.id}}</option>
46 <div class="col-md-2 text-right radio">
47 <span class="white">{{'MWTN_AIR_INTERFACE' | translate }} A</span>
49 <div class="col-md-4">
50 <div class="form-group">
51 <select class="form-control" ng-model="selectedLtpIdA">
52 <option ng-repeat="protocol in availableLtpIdsA">{{protocol}}</option>
58 <div class="col-md-2 text-right radio">
59 <span class="white">{{'MWTN_AIR_INTERFACE' | translate }} B</span>
61 <div class="col-md-4">
62 <div class="form-group">
63 <select class="form-control" ng-model="selectedLtpIdB">
64 <option ng-repeat="protocol in availableLtpIdsB">{{protocol}}</option>
71 <div class="col-md-2 text-right radio">
72 <span class="white">{{'MWTN_TIME_PERIOD' | translate}}</span>
74 <div class="col-md-2">
75 <div class="form-group">
76 <select class="form-control" ng-model="timePeriod">
77 <option ng-repeat="time in timePeriods">{{time}}</option>
83 <div class="row" ng-if="networkElementA && networkElementB && selectedLtpIdA !== 'Select LTP' && selectedLtpIdB !== 'Select LTP' ">
84 <uib-accordion close-others="true">
85 <div uib-accordion-group class="panel-primary" is-open="status.receiveLevel">
86 <uib-accordion-heading> <i class="pull-left fa"
87 ng-class="{'fa-chevron-down': status.receiveLevel, 'fa-chevron-right': !status.receiveLevel}"></i>
88 <span>Receive Level</span>
89 <i class="pull-right fa fa-spinner fa-pulse" ng-show="spinner.receiveLevel"></i>
90 </uib-accordion-heading>
92 class="chart chart-line"
93 chart-data="receiveData"
94 chart-series="receiveSeries"
95 chart-options="receiveOptions"
96 chart-dataset-override="receiveDatasetOverride"
97 chart-colors="defaultColors">
99 </div> <!-- canvas bugs with div, please keep in!-->
102 ui-grid="gridOptionsReceiveLevel"
107 ui-grid-resize-columns
108 ui-grid-move-columns class="mwtnLinkGrid">
111 <!-- pagniation controll for grid-->
112 <div class="ht-pagination">
113 <button class="btn btn-default"
114 ng-disabled="gridOptionsReceiveLevel.paginationCurrentPage === 1"
115 ng-click="recvGridApi.pagination.seek(1)"
116 ng-class="{'cancelCursor':gridOptionsReceiveLevel.paginationCurrentPage === 1}"
117 role="menuitem" type="button" title="Page to first" aria-label="Page to first">
118 <i class="fa fa-step-backward "></i>
120 <button class="btn btn-default"
121 ng-disabled="gridOptionsReceiveLevel.paginationCurrentPage === 1"
122 ng-class="{'cancelCursor':gridOptionsReceiveLevel.paginationCurrentPage === 1}"
123 ng-click="recvGridApi.pagination.previousPage()"
124 role="menuitem" type="button" title="Previous Page" aria-label="Previous Page">
125 <i class="fa fa-play fa-rotate-180 "></i>
127 <input class="btn btn-default" style="text-align:right;" border="1"
128 ng-model="gridOptionsReceiveLevel.paginationCurrentPage"
129 ng-change="seekPage(gridOptionsReceiveLevel.paginationCurrentPage,'receiveLevel')"
130 type="number" style="width:20px;"/>
131 <span class="dark"> / {{ recvGridApi.pagination.getTotalPages() }}</span>
132 <button class="btn btn-default" role="menuitem" type="button" title="Next Page" aria-label="Next Page"
133 ng-disabled="gridOptionsReceiveLevel.paginationCurrentPage === recvGridApi.pagination.getTotalPages()"
134 ng-click="recvGridApi.pagination.nextPage()">
135 <i class="fa fa-play "></i>
137 <button class="btn btn-default" ng-disabled="gridOptionsReceiveLevel.paginationCurrentPage === recvGridApi.pagination.getTotalPages()"
138 ng-click="recvGridApi.pagination.seek(recvGridApi.pagination.getTotalPages())"
139 role="menuitem" type="button" title="Page to last" aria-label="Page to last">
140 <i class="fa fa-step-forward "></i>
143 class="btn btn-default" name="repeatSelect" id="repeatSelect"
144 ng-init="gridOptionsReceiveLevel.paginationPageSize = gridOptionsReceiveLevel.paginationPageSizes[0]"
145 ng-model="gridOptionsReceiveLevel.paginationPageSize"
146 ng-options="option for option in gridOptionsReceiveLevel.paginationPageSizes"></select>
147 <span class="dark"> {{ itemsMessage() }}</span>
148 <span class="pull-right dark">{{ paginationStatusMessage('receiveLevel') }}</span>
152 <div uib-accordion-group class="panel-primary" is-open="status.transmissionLevel">
153 <uib-accordion-heading> <i class="pull-left fa"
154 ng-class="{'fa-chevron-down': status.transmissionLevel, 'fa-chevron-right': !status.transmissionLevel}"></i>
155 <span>Transmission Power</span>
156 <i class="pull-right fa fa-spinner fa-pulse" ng-show="spinner.transmissionLevel"></i>
157 </uib-accordion-heading>
159 class="chart chart-line"
160 chart-data="transmissionData"
161 chart-series="transmissionSeries"
162 chart-options="transmissionOptions"
163 chart-dataset-override="transmissionDatasetOverride"
164 chart-colors="defaultColors">
166 </div> <!-- canvas bugs with div, please keep in!-->
168 ui-grid="gridOptionsTransmissionLevel"
173 ui-grid-resize-columns
174 ui-grid-move-columns class="mwtnLinkGrid">
176 <!-- pagniation controll for grid-->
177 <div class="ht-pagination">
178 <button class="btn btn-default"
179 ng-disabled="gridOptionsTransmissionLevel.paginationCurrentPage === 1"
180 ng-click="transmissionGridApi.pagination.seek(1)"
181 ng-class="{'cancelCursor':gridOptionsTransmissionLevel.paginationCurrentPage === 1}"
182 role="menuitem" type="button" title="Page to first" aria-label="Page to first">
183 <i class="fa fa-step-backward "></i>
185 <button class="btn btn-default"
186 ng-disabled="gridOptionsTransmissionLevel.paginationCurrentPage === 1"
187 ng-class="{'cancelCursor':gridOptionsTransmissionLevel.paginationCurrentPage === 1}"
188 ng-click="transmissionGridApi.pagination.previousPage()"
190 role="menuitem" type="button" title="Previous Page" aria-label="Previous Page">
191 <i class="fa fa-play fa-rotate-180 "></i>
193 <input class="btn btn-default" style="text-align:right;" border="1"
194 ng-model="gridOptionsTransmissionLevel.paginationCurrentPage"
195 ng-change="seekPage(gridOptionsTransmissionLevel.paginationCurrentPage,'transmissionLevel')"
196 type="number" style="width:20px;"/>
197 <span class="dark"> / {{ transmissionGridApi.pagination.getTotalPages() }}</span>
199 <button class="btn btn-default" role="menuitem" type="button" title="Next Page" aria-label="Next Page"
200 ng-disabled="gridOptionsTransmissionLevel.paginationCurrentPage === transmissionGridApi.pagination.getTotalPages()"
201 ng-click="transmissionGridApi.pagination.nextPage()">
202 <i class="fa fa-play "></i>
204 <button class="btn btn-default" ng-disabled="gridOptionsTransmissionLevel.paginationCurrentPage === transmissionGridApi.pagination.getTotalPages()"
205 ng-click="transmissionGridApi.pagination.seek(transmissionGridApi.pagination.getTotalPages())"
206 role="menuitem" type="button" title="Page to last" aria-label="Page to last">
207 <i class="fa fa-step-forward "></i>
210 class="btn btn-default" name="repeatSelect"
211 ng-init="gridOptionsTransmissionLevel.paginationPageSize = gridOptionsTransmissionLevel.paginationPageSizes[0]"
212 ng-model="gridOptionsTransmissionLevel.paginationPageSize"
213 ng-options="option for option in gridOptionsTransmissionLevel.paginationPageSizes"></select>
215 <span class="dark"> {{ itemsMessage() }}</span>
216 <span class="pull-right dark">{{ paginationStatusMessage('transmissionLevel') }}</span>
220 <div uib-accordion-group class="panel-primary" is-open="status.modulation">
221 <uib-accordion-heading> <i class="pull-left fa"
222 ng-class="{'fa-chevron-down': status.modulation, 'fa-chevron-right': !status.modulation}"></i>
223 <span>Adaptive Modulation</span>
224 <i class="pull-right fa fa-spinner fa-pulse" ng-show="spinner.modulation"></i>
225 </uib-accordion-heading>
227 class="chart chart-line"
228 chart-data="modulationData"
229 chart-series="modultaionSeries"
230 chart-options="modulationOptions"
231 chart-dataset-override="modulationDatasetOverride">
233 </div> <!-- canvas bugs with div, please keep in!-->
235 ui-grid="gridOptionsModulation"
240 ui-grid-resize-columns
241 ui-grid-move-columns class="mwtnLinkGrid">
243 <!-- pagniation controll for grid-->
244 <div class="ht-pagination">
245 <button class="btn btn-default"
246 ng-disabled="gridOptionsModulation.paginationCurrentPage === 1"
247 ng-click="gridApi.pagination.seek(1)"
248 ng-class="{'cancelCursor':gridOptionsModulation.paginationCurrentPage === 1}"
249 role="menuitem" type="button" title="Page to first" aria-label="Page to first">
250 <i class="fa fa-step-backward "></i>
252 <button class="btn btn-default"
253 ng-disabled="gridOptionsModulation.paginationCurrentPage === 1"
254 ng-class="{'cancelCursor':gridOptionsModulation.paginationCurrentPage === 1}"
255 ng-click="gridApi.pagination.previousPage()"
256 role="menuitem" type="button" title="Previous Page" aria-label="Previous Page">
257 <i class="fa fa-play fa-rotate-180 "></i>
259 <input class="btn btn-default" style="text-align:right;" border="1"
260 ng-model="gridOptionsModulation.paginationCurrentPage"
261 ng-change="seekPage(gridOptionsModulation.paginationCurrentPage,'modulation')"
262 type="number" style="width:20px;"/>
263 <span class="dark"> / {{ gridApi.pagination.getTotalPages() }}</span>
264 <button class="btn btn-default" role="menuitem" type="button" title="Next Page" aria-label="Next Page"
265 ng-disabled="gridOptionsModulation.paginationCurrentPage === gridApi.pagination.getTotalPages()"
266 ng-click="gridApi.pagination.nextPage()">
267 <i class="fa fa-play "></i>
269 <button class="btn btn-default" ng-disabled="gridOptionsModulation.paginationCurrentPage === gridApi.pagination.getTotalPages()"
270 ng-click="gridApi.pagination.seek(gridApi.pagination.getTotalPages())"
271 role="menuitem" type="button" title="Page to last" aria-label="Page to last">
272 <i class="fa fa-step-forward "></i>
275 class="btn btn-default" name="repeatSelect"
276 ng-init="gridOptionsModulation.paginationPageSize = gridOptionsModulation.paginationPageSizes[0]"
277 ng-model="gridOptionsModulation.paginationPageSize"
278 ng-options="option for option in gridOptionsModulation.paginationPageSizes"></select>
279 <span class="dark"> {{ itemsMessage() }}</span>
280 <span class="pull-right dark">{{ paginationStatusMessage('modulation') }}</span>
284 <div uib-accordion-group class="panel-primary" is-open="status.temperature">
285 <uib-accordion-heading> <i class="pull-left fa"
286 ng-class="{'fa-chevron-down': status.temperature, 'fa-chevron-right': !status.temperature}"></i>
287 <span>Temperature</span>
288 <i class="pull-right fa fa-spinner fa-pulse" ng-show="spinner.temperature"></i>
289 </uib-accordion-heading>
291 class="chart chart-line"
292 chart-data="tempData"
293 chart-series="tempSeries"
294 chart-options="tempOptions"
295 chart-dataset-override="tempDatasetOverride"
296 chart-colors="defaultColors">
298 </div> <!-- canvas bugs with div, please keep in!-->
300 ui-grid="gridOptionsTemperature"
305 ui-grid-resize-columns
307 class="mwtnLinkGrid">
309 <!-- pagniation controll for grid-->
310 <div class="ht-pagination">
311 <button class="btn btn-default"
312 ng-disabled="gridOptionsTemperature.paginationCurrentPage === 1"
313 ng-click="gridTemperatureApi.pagination.seek(1)"
314 ng-class="{'cancelCursor':gridOptionsTemperature.paginationCurrentPage === 1}"
315 role="menuitem" type="button" title="Page to first" aria-label="Page to first">
316 <i class="fa fa-step-backward "></i>
318 <button class="btn btn-default"
319 ng-disabled="gridOptionsTemperature.paginationCurrentPage === 1"
320 ng-class="{'cancelCursor':gridOptionsTemperature.paginationCurrentPage === 1}"
321 ng-click="gridTemperatureApi.pagination.previousPage()"
322 role="menuitem" type="button" title="Previous Page" aria-label="Previous Page">
323 <i class="fa fa-play fa-rotate-180 "></i>
325 <input class="btn btn-default" style="text-align:right;" border="1"
326 ng-model="gridOptionsTemperature.paginationCurrentPage"
327 ng-change="seekPage(gridOptionsTemperature.paginationCurrentPage,'temperature')"
328 type="number" style="width:20px;"/>
329 <span class="dark"> / {{ gridTemperatureApi.pagination.getTotalPages() }}</span>
330 <button class="btn btn-default" role="menuitem" type="button" title="Next Page" aria-label="Next Page"
331 ng-disabled="gridOptionsTemperature.paginationCurrentPage === gridTemperatureApi.pagination.getTotalPages()"
332 ng-click="gridTemperatureApi.pagination.nextPage()">
333 <i class="fa fa-play "></i>
335 <button class="btn btn-default" ng-disabled="gridOptionsTemperature.paginationCurrentPage === gridTemperatureApi.pagination.getTotalPages()"
336 ng-click="gridTemperatureApi.pagination.seek(gridTemperatureApi.pagination.getTotalPages())"
337 role="menuitem" type="button" title="Page to last" aria-label="Page to last">
338 <i class="fa fa-step-forward "></i>
341 class="btn btn-default" name="repeatSelect"
342 ng-init="gridOptionsTemperature.paginationPageSize = gridOptionsTemperature.paginationPageSizes[0]"
343 ng-model="gridOptionsTemperature.paginationPageSize"
344 ng-options="option for option in gridOptionsTemperature.paginationPageSizes"></select>
345 <span class="dark"> {{ itemsMessage() }}</span>
346 <span class="pull-right dark">{{ paginationStatusMessage('temperature') }}</span>
350 <div uib-accordion-group class="panel-primary" is-open="status.snir">
351 <uib-accordion-heading> <i class="pull-left fa"
352 ng-class="{'fa-chevron-down': status.snir, 'fa-chevron-right': !status.snir}"></i>
353 <span>{{'MWTN_SINR' | translate}}</span>
354 <i class="pull-right fa fa-spinner fa-pulse" ng-show="spinner.snir"></i>
355 </uib-accordion-heading>
357 class="chart chart-line"
358 chart-data="snirChartData"
359 chart-series="snirSeries"
360 chart-options="snirOptions"
361 chart-dataset-override="snirsetOverride"
362 chart-colors="defaultColors">
364 </div> <!-- canvas bugs with div, please keep in!-->
366 ui-grid="gridOptionsSnir"
371 ui-grid-resize-columns
373 class="mwtnLinkGrid">
375 <!-- pagniation controll for grid-->
376 <div class="ht-pagination">
377 <button class="btn btn-default"
378 ng-disabled="gridOptionsSnir.paginationCurrentPage === 1"
379 ng-click="gridSNIRApi.pagination.seek(1)"
380 ng-class="{'cancelCursor':gridOptionsSnir.paginationCurrentPage === 1}"
381 role="menuitem" type="button" title="Page to first" aria-label="Page to first">
382 <i class="fa fa-step-backward "></i>
384 <button class="btn btn-default"
385 ng-disabled="gridOptionsSnir.paginationCurrentPage === 1"
386 ng-class="{'cancelCursor':gridOptionsSnir.paginationCurrentPage === 1}"
387 ng-click="gridSNIRApi.pagination.previousPage()"
388 role="menuitem" type="button" title="Previous Page" aria-label="Previous Page">
389 <i class="fa fa-play fa-rotate-180 "></i>
391 <input class="btn btn-default" style="text-align:right;" border="1"
392 ng-model="gridOptionsSnir.paginationCurrentPage"
393 ng-change="seekPage(gridOptionsSnir.paginationCurrentPage,'snir')"
394 type="number" style="width:20px;"/>
395 <span class="dark"> / {{ gridSNIRApi.pagination.getTotalPages() }}</span>
396 <button class="btn btn-default" role="menuitem" type="button" title="Next Page" aria-label="Next Page"
397 ng-disabled="gridOptionsSnir.paginationCurrentPage === gridSNIRApi.pagination.getTotalPages()"
398 ng-click="gridSNIRApi.pagination.nextPage()">
399 <i class="fa fa-play "></i>
401 <button class="btn btn-default" ng-disabled="gridOptionsSnir.paginationCurrentPage === gridSNIRApi.pagination.getTotalPages()"
402 ng-click="gridSNIRApi.pagination.seek(gridSNIRApi.pagination.getTotalPages())"
403 role="menuitem" type="button" title="Page to last" aria-label="Page to last">
404 <i class="fa fa-step-forward "></i>
407 class="btn btn-default" name="repeatSelect"
408 ng-init="gridOptionsSnir.paginationPageSize = gridOptionsSnir.paginationPageSizes[0]"
409 ng-model="gridOptionsSnir.paginationPageSize"
410 ng-options="option for option in gridOptionsSnir.paginationPageSizes"></select>
411 <span class="dark"> {{ itemsMessage() }}</span>
412 <span class="pull-right dark">{{ paginationStatusMessage('snir') }}</span>
416 <div uib-accordion-group class="panel-primary" is-open="status.crossPolarDiscrimination">
417 <uib-accordion-heading> <i class="pull-left fa"
418 ng-class="{'fa-chevron-down': status.crossPolarDiscrimination, 'fa-chevron-right': !status.crossPolarDiscrimination}"></i>
419 <span>Cross Polar Discrimination</span>
420 <i class="pull-right fa fa-spinner fa-pulse" ng-show="spinner.crossPolarDiscrimination"></i>
421 </uib-accordion-heading>
423 class="chart chart-line"
424 chart-data="xpdChartData"
425 chart-series="xpdSeries"
426 chart-options="xpdOptions"
427 chart-dataset-override="crossPolarDiscriminationsetOverride"
428 chart-colors="defaultColors">
430 </div> <!-- canvas bugs with div, please keep in!-->
432 ui-grid="gridOptionsCrossPolarDiscrimination"
437 ui-grid-resize-columns
439 class="mwtnLinkGrid">
441 <!-- pagniation controll for grid-->
442 <div class="ht-pagination">
443 <button class="btn btn-default"
444 ng-disabled="gridOptionsCrossPolarDiscrimination.paginationCurrentPage === 1"
445 ng-click="gridXpdApi.pagination.seek(1)"
446 ng-class="{'cancelCursor':gridOptionsCrossPolarDiscrimination.paginationCurrentPage === 1}"
447 role="menuitem" type="button" title="Page to first" aria-label="Page to first">
448 <i class="fa fa-step-backward "></i>
450 <button class="btn btn-default"
451 ng-disabled="gridOptionsCrossPolarDiscrimination.paginationCurrentPage === 1"
452 ng-class="{'cancelCursor':gridOptionsCrossPolarDiscrimination.paginationCurrentPage === 1}"
453 ng-click="gridXpdApi.pagination.previousPage()"
454 role="menuitem" type="button" title="Previous Page" aria-label="Previous Page">
455 <i class="fa fa-play fa-rotate-180 "></i>
457 <input class="btn btn-default" style="text-align:right;" border="1"
458 ng-model="gridOptionsCrossPolarDiscrimination.paginationCurrentPage"
459 ng-change="seekPage(gridOptionsCrossPolarDiscrimination.paginationCurrentPage,'crossPolarDiscrimination')"
460 type="number" style="width:20px;"/>
461 <span class="dark"> / {{ gridXpdApi.pagination.getTotalPages() }}</span>
462 <button class="btn btn-default" role="menuitem" type="button" title="Next Page" aria-label="Next Page"
463 ng-disabled="gridOptionsCrossPolarDiscrimination.paginationCurrentPage === gridXpdApi.pagination.getTotalPages()"
464 ng-click="gridXpdApi.pagination.nextPage()">
465 <i class="fa fa-play "></i>
467 <button class="btn btn-default" ng-disabled="gridOptionsCrossPolarDiscrimination.paginationCurrentPage === gridXpdApi.pagination.getTotalPages()"
468 ng-click="gridXpdApi.pagination.seek(gridXpdApi.pagination.getTotalPages())"
469 role="menuitem" type="button" title="Page to last" aria-label="Page to last">
470 <i class="fa fa-step-forward "></i>
473 class="btn btn-default" name="repeatSelect"
474 ng-init="gridOptionsCrossPolarDiscrimination.paginationPageSize = gridOptionsCrossPolarDiscrimination.paginationPageSizes[0]"
475 ng-model="gridOptionsCrossPolarDiscrimination.paginationPageSize"
476 ng-options="option for option in gridOptionsCrossPolarDiscrimination.paginationPageSizes"></select>
477 <span class="dark"> {{ itemsMessage() }}</span>
478 <span class="pull-right dark">{{ paginationStatusMessage('crossPolarDiscrimination') }}</span>
486 <span class="white">ONAP SDN-R | ONF Wireless for @distversion@ - Build: @buildtime@</span>