1 <md-dialog ng-cloak class="gbpDialogWrapper">
2 <form name="endpointForm">
4 <div class="md-toolbar-tools">
7 <md-button ng-click="closeDialog()" class="md-button">Close dialog</md-button>
10 <md-dialog-content style="width:800px;">
11 <md-tabs md-dynamic-height flex>
12 <md-tab label="Endpoint">
13 <div layout="column" class="layout-padding-lr15">
15 <md-input-container flex >
16 <label>Tenant Id</label>
17 <md-select ng-model="endpoint.data.tenant" md-on-close="populateScopeAfterTenantSelected();" aria-label="Tenant select">
18 <md-option ng-repeat="tenant in rootTenants.data" ng-value="tenant.data.id">{{ tenant.data.id }}</md-option>
23 <md-input-container flex>
24 <label>Context Type</label>
25 <md-select name="contextTypeSelect" ng-model="endpoint.data['context-type']"
26 ng-change="filterContextIds(endpoint.data['context-type'])"
27 aria-label="Context type select"
29 <md-option ng-repeat="contextType in ['l2-l3-forwarding:l2-bridge-domain', 'l2-l3-forwarding:l2-flood-domain', 'l2-l3-forwarding:l3-context']"
30 ng-value="contextType">
34 <div ng-messages="endpointForm.contextTypeSelect.$error" ng-show="endpointForm.contextTypeSelect.$touched">
35 <div ng-message="required">Required field</div>
38 <md-input-container flex ng-if="forwardingContexts.length">
39 <label>Context Id</label>
40 <md-select name="contextIdSelect" ng-model="endpoint.data['context-id']"
41 aria-label="Context Id select"
43 <md-option ng-repeat="contextId in forwardingContexts"
44 ng-value="contextId['context-id']">
45 {{ contextId['context-id'] }}
48 <div ng-messages="endpointForm.contextIdSelect.$error" ng-show="endpointForm.contextIdSelect.$touched">
49 <div ng-message="required">Required field</div>
52 <md-input-container flex ng-if="!forwardingContexts.length">
53 <label>Context Id</label>
54 <input ng-model="endpoint.data['context-id']" />
58 <md-input-container flex>
59 <label>Address Type</label>
60 <md-select name="AddressType" ng-model="endpoint.data['address-type']" aria-label="Address Type select" ng-required="true">
61 <md-option ng-repeat="addressType in ['l2-l3-forwarding:mac-address-type', 'l2-l3-forwarding:ip-prefix-type']"
62 ng-value="addressType">
66 <div ng-messages="endpointForm.AddressType.$error" ng-show="endpointForm.AddressType.$touched">
67 <div ng-message="required">Required field</div>
70 <md-input-container flex>
71 <label>Address</label>
72 <input name="address" ng-model="endpoint.data.address" ng-required="true"
73 ng-pattern="(endpoint.data['address-type'] === 'l2-l3-forwarding:mac-address-type' ? regexps['mac-address'] : regexps['ip-prefix'])">
74 <div ng-messages="endpointForm.address.$error" ng-show="endpointForm.address.$touched">
75 <div ng-message="required">Required field</div>
76 <div ng-message="pattern">Expected correct address type format</div>
81 <md-input-container flex ng-if="forwardingNetworkDomainIds.length">
82 <label>Network Containment - Network Domain Id</label>
83 <md-select name="networkDomainIdSelect"
84 ng-model="endpoint.data['network-containment']['network-domain-id']"
85 aria-label="Network Domain Id select">
86 <md-option value="{{undefined}}"></md-option>
87 <md-option ng-repeat="NetworkDomainId in forwardingNetworkDomainIds"
88 ng-value="NetworkDomainId['network-domain-id']"
90 {{ NetworkDomainId['network-domain-id'] }}
94 <md-input-container flex ng-if="!forwardingNetworkDomainIds.length">
95 <label>Network Containment - Network Domain Id</label>
96 <input name="networkDomainIdInput" ng-model="endpoint.data['network-containment']['network-domain-id']"/>
100 <md-input-container flex>
101 <label>Endpoint Group</label>
104 ng-model="endpoint.data['endpoint-group']"
108 md-selected-item="epgsChips.selectedItem"
109 md-search-text="epgsChips.searchText"
110 md-items="epg in searchEpgs(epgsChips.searchText)"
112 placeholder="{{!endpoint.data.tenant ? 'Select Tenant first' : 'Add an item'}}"
113 md-autocomplete-wrap-override
114 md-input-name="epAutocomplete"
116 ng-disabled="!endpoint.data.tenant">
118 <span md-highlight-text="epgsChips.searchText">{{epg}}</span>
125 <span>{{$chip}}</span>
128 </md-input-container>
131 <md-input-container flex>
132 <label>Condition</label>
133 <md-chips ng-model="endpoint.data.condition"
134 placeholder="Add an item">
136 </md-input-container>
140 <md-tab label="Location">
141 <div layout="column" class="layout-padding-lr15">
142 <md-subheader class="md-primary">Absolute location</md-subheader>
144 <md-input-container flex>
145 <label>Internal node</label>
146 <input name="AbsoluteLocationInternalNode" ng-model="endpoint.data['absolute-location']['internal-node']">
147 </md-input-container>
150 <md-input-container flex>
151 <label>Internal node connector</label>
152 <input name="AbsoluteLocationInternalNodeConnector" ng-model="endpoint.data['absolute-location']['internal-node-connector']">
153 </md-input-container>
159 <md-dialog-actions layout="row">
161 <md-button ng-click="closeDialog()" class="md-primary">
164 <md-button ng-click="save()" style="margin-right:20px;" ng-disabled="endpointForm.$invalid" class="md-primary">