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">
28 <md-option ng-repeat="contextType in ['l2-l3-forwarding:l2-bridge-domain', 'l2-l3-forwarding:l2-flood-domain', 'l2-l3-forwarding:l3-context']"
29 ng-value="contextType"
35 <md-input-container flex ng-if="forwardingContexts.length">
36 <label>Context Id</label>
37 <md-select name="contextIdSelect" ng-model="endpoint.data['context-id']"
38 aria-label="Context Id select">
39 <md-option ng-repeat="contextId in forwardingContexts"
40 ng-value="contextId['context-id']"
42 {{ contextId['context-id'] }}
46 <md-input-container flex ng-if="!forwardingContexts.length">
47 <label>Context Id</label>
48 <input ng-model="endpoint.data['context-id']" />
52 <md-input-container flex>
53 <label>Address Type</label>
54 <md-select ng-model="endpoint.data['address-type']" aria-label="Address Type select">
55 <md-option ng-repeat="addressType in ['l2-l3-forwarding:mac-address-type', 'l2-l3-forwarding:ip-prefix-type']"
56 ng-value="addressType"
61 <div ng-messages="endpointForm['address-type'].$error">
62 <div ng-message="required">Required field</div>
65 <md-input-container flex>
66 <label>Address</label>
67 <input name="address" ng-model="endpoint.data.address" ng-required="true"
68 ng-pattern="(endpoint.data['address-type'] === 'l2-l3-forwarding:mac-address-type' ? regexps['mac-address'] : regexps['ip-prefix'])">
69 <div ng-messages="endpointForm.address.$error" ng-show="endpointForm.address.$touched">
70 <div ng-message="required">Required field</div>
71 <div ng-message="pattern">Expected correct address type format</div>
76 <md-input-container flex ng-if="forwardingNetworkDomainIds.length">
77 <label>Network Containment - Network Domain Id</label>
78 <md-select name="networkDomainIdSelect"
79 ng-model="endpoint.data['network-containment']['network-domain-id']"
80 aria-label="Network Domain Id select">
81 <md-option value="{{undefined}}"></md-option>
82 <md-option ng-repeat="NetworkDomainId in forwardingNetworkDomainIds"
83 ng-value="NetworkDomainId['network-domain-id']"
85 {{ NetworkDomainId['network-domain-id'] }}
88 <div ng-messages="endpointForm.networkDomainIdSelect.$error">
89 <div ng-message="required">Required field.</div>
92 <md-input-container flex ng-if="!forwardingNetworkDomainIds.length">
93 <label>Network Containment - Network Domain Id</label>
94 <input name="networkDomainIdInput" ng-model="endpoint.data['network-containment']['network-domain-id']"/>
95 <div ng-messages="endpointForm.networkDomainIdInput.$error">
96 <div ng-message="required">Required field.</div>
101 <md-input-container flex>
102 <label>Endpoint Group</label>
105 ng-model="endpoint.data['endpoint-group']"
106 md-require-match = "true"
110 md-selected-item="epgsChips.selectedItem"
111 md-search-text="epgsChips.searchText"
112 md-items="epg in searchEpgs(epgsChips.searchText)"
114 placeholder="{{!endpoint.data.tenant ? 'Select Tenant first' : 'Add an item'}}"
115 md-autocomplete-wrap-override
116 md-input-name="epAutocomplete"
118 ng-disabled="!endpoint.data.tenant">
120 <span md-highlight-text="epgsChips.searchText">{{epg}}</span>
127 <span>{{$chip}}</span>
130 </md-input-container>
133 <md-input-container flex>
134 <label>Condition</label>
135 <md-chips ng-model="endpoint.data.condition"
136 placeholder="Add an item">
138 </md-input-container>
142 <md-tab label="Location">
143 <div layout="column" class="layout-padding-lr15">
144 <md-subheader class="md-primary">Absolute location</md-subheader>
146 <md-input-container flex>
147 <label>Internal node</label>
148 <input name="AbsoluteLocationInternalNode" ng-model="endpoint.data['absolute-location']['internal-node']">
149 </md-input-container>
152 <md-input-container flex>
153 <label>Internal node connector</label>
154 <input name="AbsoluteLocationInternalNodeConnector" ng-model="endpoint.data['absolute-location']['internal-node-connector']">
155 </md-input-container>
161 <md-dialog-actions layout="row">
163 <md-button ng-click="closeDialog()" class="md-primary">
166 <md-button ng-click="save()" style="margin-right:20px;" ng-disabled="endpointForm.$invalid" class="md-primary">