|
69 | 69 |
|
70 | 70 | async saveNotes()
|
71 | 71 | {
|
72 |
| - if (!this.selectedInterface) { |
| 72 | + if (!this.selectedInterface) |
| 73 | + { |
73 | 74 | return
|
74 | 75 | }
|
75 | 76 |
|
|
83 | 84 | </script>
|
84 | 85 |
|
85 | 86 | <template>
|
86 |
| - <h3 class="mb-2">Interface Information</h3> |
87 |
| - |
88 |
| - <div class="tabnav"> |
89 |
| - <nav class="tabnav-tabs" aria-label="ServerNav"> |
90 |
| - <button class="tabnav-tab ServerNavTab" :aria-current="(selectedTab == 'General') ? true : null" @click="switchTab('General')">General</button> |
91 |
| - <button class="tabnav-tab ServerNavTab" :aria-current="(selectedTab == 'RPC') ? true : null" @click="switchTab('RPC')">RPC</button> |
92 |
| - <button class="tabnav-tab ServerNavTab" :aria-current="(selectedTab == 'Security') ? true : null" @click="switchTab('Security')">Security</button> |
93 |
| - <button class="tabnav-tab ServerNavTab" :aria-current="(selectedTab == 'NDR') ? true : null" @click="switchTab('NDR')">NDR</button> |
94 |
| - <button class="tabnav-tab ServerNavTab" :aria-current="(selectedTab == 'Notes') ? true : null" @click="switchTab('Notes')">Notes</button> |
95 |
| - </nav> |
| 87 | + <div id="InterfaceDetailPane"> |
| 88 | + <h3 class="mb-2">Interface Information</h3> |
| 89 | + |
| 90 | + <div class="tabnav"> |
| 91 | + <nav class="tabnav-tabs" aria-label="ServerNav"> |
| 92 | + <button class="tabnav-tab ServerNavTab" :aria-current="(selectedTab == 'General') ? true : null" @click="switchTab('General')">General</button> |
| 93 | + <button class="tabnav-tab ServerNavTab" :aria-current="(selectedTab == 'RPC') ? true : null" @click="switchTab('RPC')">RPC</button> |
| 94 | + <button class="tabnav-tab ServerNavTab" :aria-current="(selectedTab == 'Security') ? true : null" @click="switchTab('Security')">Security</button> |
| 95 | + <button class="tabnav-tab ServerNavTab" :aria-current="(selectedTab == 'NDR') ? true : null" @click="switchTab('NDR')">NDR</button> |
| 96 | + <button class="tabnav-tab ServerNavTab" :aria-current="(selectedTab == 'Notes') ? true : null" @click="switchTab('Notes')">Notes</button> |
| 97 | + </nav> |
| 98 | + </div> |
| 99 | + |
| 100 | + <table class="ml-1 mt-2 InterfaceDetailedTable" v-if="selectedTab == 'General'"> |
| 101 | + <tr> |
| 102 | + <td>ID</td> |
| 103 | + <td v-if="selectedInterface">{{ selectedInterface.id }}</td> |
| 104 | + </tr> |
| 105 | + <tr> |
| 106 | + <td>Name</td> |
| 107 | + <td v-if="selectedInterface && !editInterfaceName" @dblclick="enableEditing($event, 'InterfaceName', selectedInterface.name)">{{ selectedInterface.name }}</td> |
| 108 | + <td v-if="selectedInterface && editInterfaceName"><input ref="InterfaceName" class="DynamicInput" v-on:keyup.enter="changeInterfaceName($event)" |
| 109 | + v-on:blur="changeInterfaceName($event)"/></td> |
| 110 | + </tr> |
| 111 | + <tr> |
| 112 | + <td>Module</td> |
| 113 | + <td v-if="selectedInterface">{{ selectedInterface.location }}</td> |
| 114 | + </tr> |
| 115 | + <tr> |
| 116 | + <td>Module Base</td> |
| 117 | + <td v-if="selectedInterface">{{ selectedInterface.module_base }}</td> |
| 118 | + </tr> |
| 119 | + <tr> |
| 120 | + <td>Description</td> |
| 121 | + <td v-if="selectedInterface">{{ selectedInterface.description }}</td> |
| 122 | + </tr> |
| 123 | + <tr> |
| 124 | + <td>Method Count</td> |
| 125 | + <td v-if="selectedInterface">{{ selectedInterface.methods.length }}</td> |
| 126 | + </tr> |
| 127 | + </table> |
| 128 | + |
| 129 | + <table class="ml-1 mt-2 InterfaceDetailedTable" v-if="selectedTab == 'RPC'"> |
| 130 | + <tr> |
| 131 | + <td>EP Registered</td> |
| 132 | + <td v-if="selectedInterface">{{ selectedInterface.ep_registered }}</td> |
| 133 | + </tr> |
| 134 | + <tr> |
| 135 | + <td>Base Addr</td> |
| 136 | + <td v-if="selectedInterface">{{ selectedInterface.base }}</td> |
| 137 | + </tr> |
| 138 | + <tr> |
| 139 | + <td>Dispatch Table</td> |
| 140 | + <td v-if="selectedInterface">{{ selectedInterface.dispatch_table_addr }}</td> |
| 141 | + </tr> |
| 142 | + <tr> |
| 143 | + <td>Annotation</td> |
| 144 | + <td v-if="selectedInterface">{{ selectedInterface.annotation }}</td> |
| 145 | + </tr> |
| 146 | + <tr> |
| 147 | + <td>Flags</td> |
| 148 | + </tr> |
| 149 | + <tr v-if="selectedInterface" v-for="flag in selectedInterface.flags"> |
| 150 | + <td></td> |
| 151 | + <td v-if="selectedInterface">{{ flag }}</td> |
| 152 | + </tr> |
| 153 | + </table> |
| 154 | + |
| 155 | + <table class="ml-1 mt-2 InterfaceDetailedTable" v-if="selectedTab == 'Security'"> |
| 156 | + <tr> |
| 157 | + <td>Security Callback</td> |
| 158 | + <td v-if="selectedInterface">{{ selectedInterface.sec_callback.addr }}</td> |
| 159 | + </tr> |
| 160 | + <tr> |
| 161 | + <td>Callback Name</td> |
| 162 | + <td v-if="selectedInterface && !editSecCallback" @dblclick="enableEditing($event, 'SecCallback', selectedInterface.sec_callback.name)">{{ selectedInterface.sec_callback.name }}</td> |
| 163 | + <td v-if="selectedInterface && editSecCallback"><input ref="SecCallback" class="DynamicInput" v-on:keyup.enter="changeCallbackName($event)" |
| 164 | + v-on:blur="changeCallbackName($event)"/></td> |
| 165 | + </tr> |
| 166 | + <tr> |
| 167 | + <td>Module</td> |
| 168 | + <td v-if="selectedInterface">{{ selectedInterface.sec_callback.location }}</td> |
| 169 | + </tr> |
| 170 | + <tr> |
| 171 | + <td>Offset</td> |
| 172 | + <td v-if="selectedInterface">{{ selectedInterface.sec_callback.offset }}</td> |
| 173 | + </tr> |
| 174 | + <tr> |
| 175 | + <td>Description</td> |
| 176 | + <td v-if="selectedInterface">{{ selectedInterface.sec_callback.description }}</td> |
| 177 | + </tr> |
| 178 | + </table> |
| 179 | + |
| 180 | + <table class="ml-1 mt-2 InterfaceDetailedTable" v-if="selectedTab == 'NDR'"> |
| 181 | + <tr> |
| 182 | + <td>Transfer Syntax</td> |
| 183 | + <td v-if="selectedInterface">{{ selectedInterface.ndr_info.syntax }}</td> |
| 184 | + </tr> |
| 185 | + <tr> |
| 186 | + <td>Syntax Name</td> |
| 187 | + <td v-if="selectedInterface">{{ selectedInterface.ndr_info.syntax_name }}</td> |
| 188 | + </tr> |
| 189 | + <tr> |
| 190 | + <td>NDR Version</td> |
| 191 | + <td v-if="selectedInterface">0x{{ selectedInterface.ndr_info.ndr_version.toString(16) }}</td> |
| 192 | + </tr> |
| 193 | + <tr> |
| 194 | + <td>MIDL Version</td> |
| 195 | + <td v-if="selectedInterface">0x{{ selectedInterface.ndr_info.midl_version.toString(16) }}</td> |
| 196 | + </tr> |
| 197 | + <tr> |
| 198 | + <td>Flags</td> |
| 199 | + </tr> |
| 200 | + <tr v-if="selectedInterface" v-for="flag in selectedInterface.ndr_info.flags"> |
| 201 | + <td></td> |
| 202 | + <td v-if="selectedInterface">{{ flag }}</td> |
| 203 | + </tr> |
| 204 | + </table> |
| 205 | + |
| 206 | + <textarea ref="Notes" id="NotesArea" class="ml-1 mt-2" v-if="selectedInterface && selectedTab == 'Notes'" v-on:input="saveNotes()" :value="selectedInterface.notes"></textarea> |
96 | 207 | </div>
|
97 |
| - |
98 |
| - <table class="ml-1 mt-2 InterfaceDetailedTable" v-if="selectedTab == 'General'"> |
99 |
| - <tr> |
100 |
| - <td>ID</td> |
101 |
| - <td v-if="selectedInterface">{{ selectedInterface.id }}</td> |
102 |
| - </tr> |
103 |
| - <tr> |
104 |
| - <td>Name</td> |
105 |
| - <td v-if="selectedInterface && !editInterfaceName" @dblclick="enableEditing($event, 'InterfaceName', selectedInterface.name)">{{ selectedInterface.name }}</td> |
106 |
| - <td v-if="selectedInterface && editInterfaceName"><input ref="InterfaceName" class="DynamicInput" v-on:keyup.enter="changeInterfaceName($event)" |
107 |
| - v-on:blur="changeInterfaceName($event)"/></td> |
108 |
| - </tr> |
109 |
| - <tr> |
110 |
| - <td>Module</td> |
111 |
| - <td v-if="selectedInterface">{{ selectedInterface.location }}</td> |
112 |
| - </tr> |
113 |
| - <tr> |
114 |
| - <td>Module Base</td> |
115 |
| - <td v-if="selectedInterface">{{ selectedInterface.module_base }}</td> |
116 |
| - </tr> |
117 |
| - <tr> |
118 |
| - <td>Description</td> |
119 |
| - <td v-if="selectedInterface">{{ selectedInterface.description }}</td> |
120 |
| - </tr> |
121 |
| - <tr> |
122 |
| - <td>Method Count</td> |
123 |
| - <td v-if="selectedInterface">{{ selectedInterface.methods.length }}</td> |
124 |
| - </tr> |
125 |
| - </table> |
126 |
| - |
127 |
| - <table class="ml-1 mt-2 InterfaceDetailedTable" v-if="selectedTab == 'RPC'"> |
128 |
| - <tr> |
129 |
| - <td>EP Registered</td> |
130 |
| - <td v-if="selectedInterface">{{ selectedInterface.ep_registered }}</td> |
131 |
| - </tr> |
132 |
| - <tr> |
133 |
| - <td>Base Addr</td> |
134 |
| - <td v-if="selectedInterface">{{ selectedInterface.base }}</td> |
135 |
| - </tr> |
136 |
| - <tr> |
137 |
| - <td>Dispatch Table</td> |
138 |
| - <td v-if="selectedInterface">{{ selectedInterface.dispatch_table_addr }}</td> |
139 |
| - </tr> |
140 |
| - <tr> |
141 |
| - <td>Annotation</td> |
142 |
| - <td v-if="selectedInterface">{{ selectedInterface.annotation }}</td> |
143 |
| - </tr> |
144 |
| - <tr> |
145 |
| - <td>Flags</td> |
146 |
| - </tr> |
147 |
| - <tr v-if="selectedInterface" v-for="flag in selectedInterface.flags"> |
148 |
| - <td></td> |
149 |
| - <td v-if="selectedInterface">{{ flag }}</td> |
150 |
| - </tr> |
151 |
| - </table> |
152 |
| - |
153 |
| - <table class="ml-1 mt-2 InterfaceDetailedTable" v-if="selectedTab == 'Security'"> |
154 |
| - <tr> |
155 |
| - <td>Security Callback</td> |
156 |
| - <td v-if="selectedInterface">{{ selectedInterface.sec_callback.addr }}</td> |
157 |
| - </tr> |
158 |
| - <tr> |
159 |
| - <td>Callback Name</td> |
160 |
| - <td v-if="selectedInterface && !editSecCallback" @dblclick="enableEditing($event, 'SecCallback', selectedInterface.sec_callback.name)">{{ selectedInterface.sec_callback.name }}</td> |
161 |
| - <td v-if="selectedInterface && editSecCallback"><input ref="SecCallback" class="DynamicInput" v-on:keyup.enter="changeCallbackName($event)" |
162 |
| - v-on:blur="changeCallbackName($event)"/></td> |
163 |
| - </tr> |
164 |
| - <tr> |
165 |
| - <td>Module</td> |
166 |
| - <td v-if="selectedInterface">{{ selectedInterface.sec_callback.location }}</td> |
167 |
| - </tr> |
168 |
| - <tr> |
169 |
| - <td>Offset</td> |
170 |
| - <td v-if="selectedInterface">{{ selectedInterface.sec_callback.offset }}</td> |
171 |
| - </tr> |
172 |
| - <tr> |
173 |
| - <td>Description</td> |
174 |
| - <td v-if="selectedInterface">{{ selectedInterface.sec_callback.description }}</td> |
175 |
| - </tr> |
176 |
| - </table> |
177 |
| - |
178 |
| - <table class="ml-1 mt-2 InterfaceDetailedTable" v-if="selectedTab == 'NDR'"> |
179 |
| - <tr> |
180 |
| - <td>Transfer Syntax</td> |
181 |
| - <td v-if="selectedInterface">{{ selectedInterface.ndr_info.syntax }}</td> |
182 |
| - </tr> |
183 |
| - <tr> |
184 |
| - <td>NDR Version</td> |
185 |
| - <td v-if="selectedInterface">0x{{ selectedInterface.ndr_info.ndr_version.toString(16) }}</td> |
186 |
| - </tr> |
187 |
| - <tr> |
188 |
| - <td>MIDL Version</td> |
189 |
| - <td v-if="selectedInterface">0x{{ selectedInterface.ndr_info.midl_version.toString(16) }}</td> |
190 |
| - </tr> |
191 |
| - <tr> |
192 |
| - <td>Flags</td> |
193 |
| - </tr> |
194 |
| - <tr v-if="selectedInterface" v-for="flag in selectedInterface.ndr_info.flags"> |
195 |
| - <td></td> |
196 |
| - <td v-if="selectedInterface">{{ flag }}</td> |
197 |
| - </tr> |
198 |
| - </table> |
199 |
| - |
200 |
| - <textarea ref="Notes" id="NotesArea" class="ml-1 mt-2" v-if="selectedInterface && selectedTab == 'Notes'" v-on:keyup.enter="saveNotes()" v-on:blur="saveNotes()">{{selectedInterface.notes}} </textarea> |
201 | 208 | </template>
|
202 | 209 |
|
203 | 210 | <style>
|
|
206 | 213 | height: 70%;
|
207 | 214 | }
|
208 | 215 |
|
| 216 | + #InterfaceDetailPane { |
| 217 | + overflow: auto; |
| 218 | + } |
| 219 | +
|
209 | 220 | .InterfaceDetailedTable {
|
210 |
| - width: 100%; |
| 221 | + width: 99%; |
211 | 222 | text-align: left;
|
212 | 223 | white-space: nowrap;
|
213 | 224 | }
|
|
0 commit comments