변수 보기 수정

This commit is contained in:
현성필
2024-01-20 17:57:16 +09:00
parent c70d14e2e2
commit a4c75411c2
3 changed files with 67 additions and 30 deletions
+39 -26
View File
@@ -115,21 +115,8 @@ class APITester {
</div> </div>
<div class="tab-pane fade request_header_tab" role="tabpanel" id="requestHeaderTab_${apiRequest.id}" <div class="tab-pane fade request_header_tab" role="tabpanel" id="requestHeaderTab_${apiRequest.id}"
aria-labelledby="requestHeader-tab"> aria-labelledby="requestHeader-tab">
<table class="table"> <div class="request_headers">
<thead> </div>
<tr>
<th scope="col">#</th>
<th scope="col">이름</th>
<th scope="col">값</th>
<th scope="col">
<button type="button" class="btn btn-secondary btn-sm btn_add_header">추가</button>
</th>
</tr>
</thead>
<tbody class="request_headers">
${this.renderHeaders(apiRequest.headers)}
</tbody>
</table>
</div> </div>
<div class="tab-pane fade request_body_tab" role="tabpanel" id="requestBodyTab_${apiRequest.id}" <div class="tab-pane fade request_body_tab" role="tabpanel" id="requestBodyTab_${apiRequest.id}"
aria-labelledby="requestBody-tab"> aria-labelledby="requestBody-tab">
@@ -301,8 +288,7 @@ class APITester {
{selector: '.delete_api_request', action: this.showDeleteApiRequestModal.bind(this)}, {selector: '.delete_api_request', action: this.showDeleteApiRequestModal.bind(this)},
{selector: '.open_api_request', action: this.openApiRequest.bind(this)}, {selector: '.open_api_request', action: this.openApiRequest.bind(this)},
{selector: '.confirm_delete_api', action: this.deleteApiRequest.bind(this)}, {selector: '.confirm_delete_api', action: this.deleteApiRequest.bind(this)},
{selector: '.close_tab', action: this.closeTab.bind(this)} {selector: '.close_tab', action: this.closeTab.bind(this)},
]; ];
for (let event of events) { for (let event of events) {
@@ -502,9 +488,14 @@ class APITester {
} }
} }
showPopper(element) { showPopper(element, text) {
const variable = text.replace(/{{|}}/g, '');
this.popperContent.style.display = 'block'; this.popperContent.style.display = 'block';
this.popperInstance = createPopper(element, popperContent, {
const innerDiv = this.popperContent.querySelector('.variable_popper');
innerDiv.textContent = '{{' + variable + '}} = ' + (window.globals[variable] === undefined ? '' : window.globals[variable]);
this.popperInstance = createPopper(element, this.popperContent, {
placement: 'bottom', // Popper below the element placement: 'bottom', // Popper below the element
modifiers: [ modifiers: [
{ {
@@ -526,6 +517,7 @@ class APITester {
} }
renderTabContent(index) { renderTabContent(index) {
console.log('renderTabContent');
var me = this; var me = this;
let apiRequestTabContent = $(this.apiTabContentTarget); let apiRequestTabContent = $(this.apiTabContentTarget);
let model = this.apiRequests[index]; let model = this.apiRequests[index];
@@ -537,11 +529,17 @@ class APITester {
value: model.path, value: model.path,
}); });
let propertyTable = new PropertyTable({ let queryParamTable = new PropertyTable({
propertyName: 'queryParams', propertyName: 'queryParams',
properties: model.queryParams properties: model.queryParams
}); });
propertyTable.init(apiRequestTabContent.find('.query_params')[0], (properties) => {
let headerTable = new PropertyTable({
propertyName: 'headers',
properties: model.headers
});
queryParamTable.init(apiRequestTabContent.find(`#api_request_${model.id}`).find('.query_params')[0], (properties) => {
model.queryParams = properties; model.queryParams = properties;
console.log(model.queryParams); console.log(model.queryParams);
this.buildPath(model); this.buildPath(model);
@@ -549,7 +547,19 @@ class APITester {
$('span.variable').off('mouseover'); $('span.variable').off('mouseover');
$('span.variable').off('mouseout'); $('span.variable').off('mouseout');
document.querySelectorAll('span.variable').forEach(element => { document.querySelectorAll('span.variable').forEach(element => {
element.addEventListener('mouseover', () => me.showPopper(element)); let text = element.innerText;
element.addEventListener('mouseover', () => me.showPopper(element, text));
element.addEventListener('mouseout', () => me.hidePopper(element));
});
});
headerTable.init(apiRequestTabContent.find(`#api_request_${model.id}`).find('.request_headers')[0], (properties) => {
model.headers = properties;
$('span.variable').off('mouseover');
$('span.variable').off('mouseout');
document.querySelectorAll('span.variable').forEach(element => {
let text = element.innerText;
element.addEventListener('mouseover', () => me.showPopper(element, text));
element.addEventListener('mouseout', () => me.hidePopper(element)); element.addEventListener('mouseout', () => me.hidePopper(element));
}); });
}); });
@@ -559,11 +569,12 @@ class APITester {
editableInput.init(this, (value) => { editableInput.init(this, (value) => {
model.path = value; model.path = value;
model.queryParams = me.parseParam(model.path); model.queryParams = me.parseParam(model.path);
propertyTable.setProperties(model.queryParams); queryParamTable.setProperties(model.queryParams);
$('span.variable').off('mouseover'); $('span.variable').off('mouseover');
$('span.variable').off('mouseout'); $('span.variable').off('mouseout');
document.querySelectorAll('span.variable').forEach(element => { document.querySelectorAll('span.variable').forEach(element => {
element.addEventListener('mouseover', () => me.showPopper(element)); let text = element.innerText;
element.addEventListener('mouseover', () => me.showPopper(element, text));
element.addEventListener('mouseout', () => me.hidePopper(element)); element.addEventListener('mouseout', () => me.hidePopper(element));
}); });
}); });
@@ -577,7 +588,9 @@ class APITester {
}); });
document.querySelectorAll('.variable').forEach(element => { document.querySelectorAll('.variable').forEach(element => {
element.addEventListener('mouseover', () => me.showPopper(element));
let text = element.innerText;
element.addEventListener('mouseover', () => me.showPopper(element, text));
element.addEventListener('mouseout', () => me.hidePopper(element)); element.addEventListener('mouseout', () => me.hidePopper(element));
}); });
@@ -598,7 +611,7 @@ class APITester {
let lineContent = model.getLineContent(position.lineNumber); let lineContent = model.getLineContent(position.lineNumber);
if (word) { if (word) {
if (lineContent.indexOf('{{' + word.word + '}}') > -1) { if (lineContent.indexOf('{{' + word.word + '}}') > -1) {
me.showPopper(e.target.element); me.showPopper(e.target.element, word.word);
} }
} else { } else {
me.hidePopper(e.target.element); me.hidePopper(e.target.element);
+27 -3
View File
@@ -1971,21 +1971,45 @@ footer div.foot_info span {
/* Property Table*/ /* Property Table*/
.prop-table { .prop-table {
display: flex; /*display: flex;*/
flex-direction: column; /*flex-direction: column;*/
/*width: 100%;*/
display: table;
width: 100%; width: 100%;
table-layout: fixed;
} }
.prop-table-row { .prop-table-row {
display: flex; display: table-row;
} }
.prop-table-cell { .prop-table-cell {
/*padding: 10px;*/
/*border: 1px solid #ddd;*/
display: table-cell;
padding: 10px; padding: 10px;
border: 1px solid #ddd; border: 1px solid #ddd;
overflow: hidden; /* Hide overflow */
text-overflow: ellipsis; /* Show ellipsis for overflow */
white-space: nowrap;
} }
.prop-table-header { .prop-table-header {
background-color: #f4f4f4; background-color: #f4f4f4;
font-weight: bold; font-weight: bold;
} }
.variable_popper {
min-width: 100px;
max-width: 300px;
background: white;
border: 1px solid #ddd;
border-radius: 2px;
margin: 5px;
padding: 5px;
overflow: hidden;
}
.query_params .prop-table {
width: calc(100vw - 240px);
}
File diff suppressed because one or more lines are too long