node-red-trexmes-service
Version:
service Nodes for trexMes systems
1,016 lines (938 loc) • 43.1 kB
HTML
<script type="text/html" data-template-name="Business Events">
<div class="form-row">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="common.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]common.label.name">
</div>
<div class="form-row" style="display: flex;align-items: center; gap: 10px;">
<label for="node-input-ishandled" style="width: 70%"><span data-i18n="event-subscribers.label.ishandled"></span></label>
<input type="checkbox" id="node-input-ishandled" style="width: 30%">
</div>
<div class="form-row">
<label for="node-input-event"><i class="fa fa-globe"></i> <span data-i18n="event-subscribers.label.event"></span></label>
<select type="text" id="node-input-event" style="width:70%;"></select>
<script type="text/javascript">
(function() {
var options = [
"OnAuthorizationRequiredStoppageEnding",
"OnCoefficientChangeSaved",
"OnConsumedDcasLotsDeleting",
"OnCounterIncrementViabilityChecked",
"OnCreatedProductionPlanLoading",
"OnCurrentPlanInfoSet",
"OnCurrentSpeedCalculated",
"OnCurrentSpeedCalculating",
"OnCyclePeriodSet",
"OnCyclePeriodSetting",
"OnDcasLotsDeletingOnProductionCompletion",
"OnDefectAmountQuerying",
"OnDefectEntryCreated",
"OnDefectEntryDeleted",
"OnDefectQuantityConverting",
"OnDocumentNotFound",
"OnEditedProductionReceiptSaving",
"OnEditProductionReceiptSaved",
"OnEstimatedCompletionTimeCalculating",
"OnForkliftFetchOrderCreating",
"OnForkliftGetOrderCreating",
"OnForkliftOrderCreated",
"OnForkliftOrdersQuerying",
"OnForkliftOrderUpdated",
"OnFractionalAmountProductionSaved",
"OnJoblessProductionOccured",
"OnJoborderSelecting",
"OnLabelReprinting",
"OnLanguageChanged",
"OnLanguageSelectionChanged",
"OnLotDeleted",
"OnMaintenanceOrderCompleted",
"OnMaintenanceOrderCreated",
"OnMaintenancePlanSetting",
"OnMaintenanceServiceReceiptCreated",
"OnMaintenanceServiceRequestCreated",
"OnMaterialCounterIncreased",
"OnMaterialLotSelectionProcessed",
"OnNoShiftTimeProductionOccuring",
"OnOpcProductionCounterIncreasing",
"OnOperatorAddedNextPlan",
"OnOperatorApprovedProductionSaveAmount",
"OnOperatorApprovingProductionSaveAmount",
"OnOperatorCounterIncreasing",
"OnOperatorCreatingMaintenanceOrder",
"OnOperatorDeletedNextPlan",
"OnOperatorMaintenaceInterventionEnded",
"OnOperatorProductionSaving",
"OnPeriodicalMaintenanceApproved",
"OnPeriodicalMaintenanceConditionChecking",
"OnPidReceiptCreated",
"OnPidReceiptCreating",
"OnPidreceiptMaterialReceiptsCreated",
"OnPidSectionReceiptCreated",
"OnPlanChanged",
"OnPlanLoaded",
"OnPlanLoadViaOpcStockNoFailed",
"OnPlanLotsFromDcasLotsGenerating",
"OnPlanMaterialsQuerying",
"OnPlanSelecting",
"OnPlanSelectionApproved",
"OnPlanSelectViabilityChecking",
"OnPlanStartViabilityChecking",
"OnPokaYokeBarcodeValidating",
"OnProcessDataAnalysisAlertOccured",
"OnProcessDataAnalysisProcessing",
"OnProcycleEntryCreated",
"OnProcycleEntryCreating",
"OnProcycleEntryUndefinedStockDetected",
"OnProcycleEntryUpdating",
"OnProcycleStoppageEntryUpdating",
"OnProductionCompleted",
"OnProductionCompleting",
"OnProductionContinuing",
"OnProductionCounterIncreased",
"OnProductionCounterIncrementCompleted",
"OnProductionFinishStatusChecking",
"OnProductionInfoResetted",
"OnProductionInfoSet",
"OnProductionPlanChanging",
"OnProductionPlanCreated",
"OnProductionPlanJobordersAppending",
"OnProductionQuantityConverting",
"OnProductionReceiptCreated",
"OnProductionReceiptEditQuantityConverting",
"OnProductionReceiptEditReceiptLoading",
"OnProductionReceiptEditSaving",
"OnProductionReceiptIntegrating",
"OnProductionReceiptIntegrationSaving",
"OnProductionReceiptUserDefinedFieldsGetting",
"OnProductionSaveAllowanceChecked",
"OnProductionSaveCompleted",
"OnProductionSaveCompleting",
"OnProductionSaved",
"OnProductionSaveStarted",
"OnProductionSaveViabilityChecking",
"OnProductionSaving",
"OnProductionSummaryUpdated",
"OnProPlanCycleFromStockCycleSetting",
"OnQualityReceiptCreated",
"OnRotationSpeedCalculating",
"OnSelectedJoborderProductionParametersSetting",
"OnSerieDefectCreated",
"OnShiftChanged",
"OnShiftChanging",
"OnShiftDefectsQuerying",
"OnShiftProductivityCalculated",
"OnSignalProductionEnding",
"OnSignalProductionSaved",
"OnSignalProductionSaving",
"OnSpecPortSelected",
"OnStockCoefficientChangeSaving",
"OnStockEquipmentMatchViabilityChecking",
"OnStockProductionCounterIncreased",
"OnStoppageChanging",
"OnStoppageEnded",
"OnStoppageReasonEquipmentSelected",
"OnStoppageSelected",
"OnStoppageSelecting",
"OnStoppageStarted",
"OnSubProductReceiptsCreating",
"OnTeamChanged",
"OnTestModeChanged",
"OnUnapprovedProductionReceiptIntegrating",
"OnUnapprovedProductionReceiptLabelPrinting",
"OnUnapprovedProductionReceiptUsedMaterialSelecting",
"OnUndefinedStoppageChanged",
"OnUndefinedStoppageChanging",
"OnUndefinedStoppagesListing",
"OnUndefinedStoppagesQuerying",
"OnUserDefinedReceiptDataCreated",
"OnWorkStationInfoLoaded",
"OnWorkstationStatesSet",
"OnWorkstationStatusEntryCreating",
"OnWorkstationStatusItemEntryCreating"
];
var select = document.getElementById("node-input-event");
options.forEach(function(option) {
var opt = document.createElement("option");
opt.value = option;
opt.innerHTML = option;
select.appendChild(opt);
});
})();
</script>
</div>
</div>
</script>
<script type="text/html" data-template-name="Application Events">
<div class="form-row">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="common.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]common.label.name">
</div>
<div class="form-row" style="display: flex;align-items: center; gap: 10px;">
<label for="node-input-ishandled" style="width: 70%"><span data-i18n="event-subscribers.label.ishandled"></span></label>
<input type="checkbox" id="node-input-ishandled" style="width: 30%">
</div>
<div class="form-row">
<label for="node-input-event"><i class="fa fa-globe"></i> <span data-i18n="event-subscribers.label.event"></span></label>
<select type="text" id="node-input-event" style="width:70%;">
</select>
<script type="text/javascript">
(function() {
var options = [
"OnAssemblyPictureSignalChanged",
"OnBarcodeScanned",
"OnBarcodeScanning",
"OnCurrentPlanInfoSet",
"OnDcasMessageProcessing",
"OnDigitalInputValueChanged",
"OnDigitalInputValueChanging",
"OnDigitalOutputValueChanged",
"OnDigitalOutputValueChanging",
"OnJoborderStockBarcodeScanned",
"OnJoborderStockBarcodeScanning",
"OnLotBarcodeScanning",
"OnNextProductionPlanLoading",
"OnNgpCommandProcessing",
"OnOpcDataPortInitialized",
"OnOverCapacityCounterIncrementDetected",
"OnOverCapacityPlanLoading",
"OnPeriodicalMaintenanceApproved",
"OnPlanChanged",
"OnPlanDetailsSetting",
"OnPlanEquipmentBarcodeRequesting",
"OnPlannedStoppageEstimatedDurationReached",
"OnPokaYokeCheckRequesting",
"OnPokaYokeResultProcessRequesting",
"OnPortDataChanged",
"OnPortDataChanging",
"OnPortManagerConnected",
"OnPortManagerInitialized",
"OnPortManagerInitializing",
"OnPortParametersLoaded",
"OnProcycleStoppageEstimatedDurationRequesting",
"OnProductionCompleted",
"OnProductionContinuing",
"OnProductionCounterIncreased",
"OnProductionCounterIncreasingWithoutAnyLoadedPlan",
"OnProductionPlanLoadingCompleted",
"OnProductionPlanLoadingStarted",
"OnProductionReceiptBriefRequesting",
"OnProductionReceiptCreated",
"OnProductionSaved",
"OnProductionSaveFailed",
"OnProductionSaveSignalChanged",
"OnProductionSaveSignalInputValuesSetting",
"OnProductionSaving",
"OnRobotModelCounterIncrementRequesting",
"OnRobotModelNotFound",
"OnRobotModelStockNotMatched",
"OnSerialPortBarcodeScanning",
"OnSerieBarcodeScanning",
"OnSocketMessageInterpreted",
"OnStoppageCauseRequesting",
"OnStoppageSignalActivityCheckRequesting",
"OnStoppageSignalChanged",
"OnTeamChanging",
"OnTeamPlanPolyvalenceValidationFailed",
"OnUIButtonConfigurationSet",
"OnWorkstationStatesSet"
];
var select = document.getElementById("node-input-event");
options.forEach(function(option) {
var opt = document.createElement("option");
opt.value = option;
opt.innerHTML = option;
select.appendChild(opt);
});
})();
</script>
</div>
</div>
</script>
<script type="text/html" data-template-name="System Events">
<div class="form-row">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="common.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]common.label.name">
</div>
<div class="form-row" style="display: flex;align-items: center; gap: 10px;">
<label for="node-input-ishandled" style="width: 70%"><span data-i18n="event-subscribers.label.ishandled"></span></label>
<input type="checkbox" id="node-input-ishandled" style="width: 30%">
</div>
<div class="form-row">
<label for="node-input-event"><i class="fa fa-globe"></i> <span data-i18n="event-subscribers.label.event"></span></label>
<select type="text" id="node-input-event" style="width:70%;">
</select>
<script type="text/javascript">
(function() {
var options = [
"OnApplicationClosing",
"OnApplicationStarted",
"OnGlobalTimerTicked"
];
var select = document.getElementById("node-input-event");
options.forEach(function(option) {
var opt = document.createElement("option");
opt.value = option;
opt.innerHTML = option;
select.appendChild(opt);
});
})();
</script>
</div>
</div>
</script>
<script type="text/html" data-template-name="Communication Events">
<div class="form-row">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="common.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]common.label.name">
</div>
<div class="form-row" style="display: flex;align-items: center; gap: 10px;">
<label for="node-input-ishandled" style="width: 70%"><span data-i18n="event-subscribers.label.ishandled"></span></label>
<input type="checkbox" id="node-input-ishandled" style="width: 30%">
</div>
<div class="form-row">
<label for="node-input-event"><i class="fa fa-globe"></i> <span data-i18n="event-subscribers.label.event"></span></label>
<select type="text" id="node-input-event" style="width:70%;">
</select>
<script type="text/javascript">
(function() {
var options = [
"OnAssemblyPictureSignalChanged",
"OnBarcodeScanned",
"OnBarcodeScanning",
"OnDcasMessageProcessing",
"OnDefectEntrySignalChanged",
"OnDigitalInputValueChanged",
"OnDigitalInputValueChanging",
"OnDigitalOutputValueChanged",
"OnDigitalOutputValueChanging",
"OnIOCardDataCoalesced",
"OnJoborderStockBarcodeScanned",
"OnJoborderStockBarcodeScanning",
"OnLotBarcodeScanning",
"OnNgpCommandProcessing",
"OnPortDataChanged",
"OnPortDataChanging",
"OnPortManagerConnected",
"OnPortManagerInitialized",
"OnPortManagerInitializing",
"OnPortParametersLoaded",
"OnProductionSaveSignalChanged",
"OnProductionSaveSignalInputValuesSetting",
"OnSerialPortBarcodeScanning",
"OnSerieBarcodeScanning",
"OnSocketMessageInterpreted",
"OnStoppageSignalChanged"
];
var select = document.getElementById("node-input-event");
options.forEach(function(option) {
var opt = document.createElement("option");
opt.value = option;
opt.innerHTML = option;
select.appendChild(opt);
});
})();
</script>
</div>
</div>
</script>
<script type="text/html" data-template-name="Display Events">
<div class="form-row">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="common.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]common.label.name">
</div>
<div class="form-row" style="display: flex;align-items: center; gap: 10px;">
<label for="node-input-ishandled" style="width: 70%"><span data-i18n="event-subscribers.label.ishandled"></span></label>
<input type="checkbox" id="node-input-ishandled" style="width: 30%">
</div>
<div class="form-row">
<label for="node-input-event"><i class="fa fa-globe"></i> <span data-i18n="event-subscribers.label.event"></span></label>
<select type="text" id="node-input-event" style="width:70%;"></select>
<script type="text/javascript">
(function() {
var options = [
"OnBarcodeTextBoxSetting",
"OnCommandKeyProcessing",
"OnDefectEntryOperatorConfirmationFailed",
"OnDefectSelected",
"OnEventDetailSelectionsListing",
"OnForkliftTakeTransferSelecting",
"OnJobInformationEquipmentCounterTextSetting",
"OnJobLoadColumnCellFormatSetting",
"OnJobOrderSearching",
"OnMainFormCounterTextsSetting",
"OnMainFormNoteTextSetting",
"OnMainUserControlJobOrderPanelClicked",
"OnOperationSpecFormOpening",
"OnOperatorCreatingDefectEntry",
"OnOperatorPlanLoadButtonClicking",
"OnOperatorPlanLoaded",
"OnOtherOperationsFormClosed",
"OnPitchLabelSetting",
"OnPlanContinueQuestionAsking",
"OnPlanSearching",
"OnPlanSelectionDetailClicked",
"OnProductionAmountLeftTextSetting",
"OnProductionApproveFormOpening",
"OnProductionApproveGridSet",
"OnProductionApproveGridSetting",
"OnProductionApproveOperatorDataGridSetting",
"OnScreenSaverShowning",
"OnShiftEventFormOpening",
"OnStoppageDescriptionFormOpening",
"OnUIButtonConfigurationSet",
"OnWorkstationSelected"
];
var select = document.getElementById("node-input-event");
options.forEach(function(option) {
var opt = document.createElement("option");
opt.value = option;
opt.innerHTML = option;
select.appendChild(opt);
});
})();
</script>
</div>
</div>
</script>
<script type="text/html" data-template-name="Form Events">
<div class="form-row">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="common.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]common.label.name">
</div>
<div class="form-row" style="display: flex;align-items: center; gap: 10px;">
<label for="node-input-formainform" style="width: 70%"><span data-i18n="event-subscribers.label.formainform"></span></label>
<input type="checkbox" id="node-input-formainform" style="width: 30%">
</div>
<div class="form-row">
<label for="node-input-formname"><i class="fa fa-windows"></i> <span data-i18n="event-subscribers.label.formname"></span></label>
<select id="node-input-formname"></select>
</div>
<div class="form-row">
<label for="node-input-control"><i class="fa fa-address-card"></i> <span data-i18n="event-subscribers.label.control"></span></label>
<input type="text" id="node-input-control" style="width:70%;"></select>
</div>
<div class="form-row">
<label for="node-input-eventtime"><i class="fa fa-fire"></i><span data-i18n="event-subscribers.label.eventtime"></span></label>
<select id="node-input-eventtime" style="width: 70%;">
<option value="After">After</option>
<option value="Before">Before</option>
</select>
</div>
<div class="form-row">
<label for="node-input-eventname"><i class="fa fa-fire"></i> <span data-i18n="event-subscribers.label.eventname"></span></label>
<select id="node-input-eventname" style="width:70%;">
<script type="text/javascript">
(function() {
var options = [
"Click",
"Changed",
"Load",
"Tick",
"KeyEnter"];
var select = document.getElementById("node-input-eventname");
options.forEach(function(option) {
var opt = document.createElement("option");
opt.value = option;
opt.innerHTML = option;
select.appendChild(opt);
});
})();
</script>
</div>
</div>
</script>
<script type="text/html" data-template-name="Display Methods">
<div class="form-row">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="common.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]common.label.name">
</div>
<label for="node-input-event"><i class="fa fa-globe"></i> <span data-i18n="event-subscribers.label.event"></span></label>
<select type="text" id="node-input-event" style="width:70%;">
</select>
<script type="text/javascript">
(function() {
var options = [
"GetMainUserControl",
"GetUIButtonConfiguration"
];
var select = document.getElementById("node-input-event");
options.forEach(function(option) {
var opt = document.createElement("option");
opt.value = option;
opt.innerHTML = option;
select.appendChild(opt);
});
})();
</script>
</div>
</script>
<script type="text/html" data-template-name="Method Returns">
<div class="form-row">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="common.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]common.label.name">
</div>
<div class="form-row">
<label for="node-input-methodname"><i class="fa fa-windows"></i> <span data-i18n="event-subscribers.label.methodname"></span></label>
<select id="node-input-methodname"></select>
</div>
</div>
</script>
<script type="text/html" data-template-name="Responser">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="common.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]common.label.name">
</div>
</script>
<script type="text/javascript">
(function() {
RED.nodes.registerType('Business Events',{
category: 'trexMes service',
color:"rgb(204, 255, 204)",
defaults: {
name: {value:""},
method: {value:"post",required:true},
event: {value:"", required:true,
label:RED._("node-red:event-subscribers.label.event")},
ishandled: {value:false, required:true}
},
inputs:0,
outputs:1,
icon: "trex.png",
label: function() {
if (this.name) {
return this.name;
} else if (this.event) {
return this.event;
} else {
return "Business Events";
}
},
labelStyle: function() {
return this.name?"node_label_italic":"";
},
oneditprepare: function() {
var root = RED.settings.httpNodeRoot;
if (root.slice(-1) == "/") {
root = root.slice(0,-1);
}
}
});
})();
</script>
<script type="text/javascript">
(function() {
RED.nodes.registerType('Application Events',{
category: 'trexMes service',
color:"rgb(204, 255, 204)",
defaults: {
name: {value:""},
method: {value:"post",required:true},
event: {value:"", required:true,
label:RED._("node-red:event-subscribers.label.event")},
ishandled: {value:false, required:true}
},
inputs:0,
outputs:1,
icon: "trex.png",
label: function() {
if (this.name) {
return this.name;
} else if (this.event) {
return this.event;
} else {
return "Application Events";
}
},
labelStyle: function() {
return this.name?"node_label_italic":"";
},
oneditprepare: function() {
var root = RED.settings.httpNodeRoot;
if (root.slice(-1) == "/") {
root = root.slice(0,-1);
}
}
});
})();
</script>
<script type="text/javascript">
(function() {
RED.nodes.registerType('System Events',{
category: 'trexMes service',
color:"rgb(204, 255, 204)",
defaults: {
name: {value:""},
method: {value:"post",required:true},
event: {value:"", required:true,
label:RED._("node-red:event-subscribers.label.event")},
ishandled: {value:false, required:true}
},
inputs:0,
outputs:1,
icon: "trex.png",
label: function() {
if (this.name) {
return this.name;
} else if (this.event) {
return this.event;
} else {
return "System Events";
}
},
labelStyle: function() {
return this.name?"node_label_italic":"";
},
oneditprepare: function() {
var root = RED.settings.httpNodeRoot;
if (root.slice(-1) == "/") {
root = root.slice(0,-1);
}
}
});
})();
</script>
<script type="text/javascript">
(function() {
RED.nodes.registerType('Communication Events',{
category: 'trexMes service',
color:"rgb(204, 255, 204)",
defaults: {
name: {value:""},
method: {value:"post",required:true},
event: {value:"", required:true,
label:RED._("node-red:event-subscribers.label.event")},
ishandled: {value:false, required:true}
},
inputs:0,
outputs:1,
icon: "trex.png",
label: function() {
if (this.name) {
return this.name;
} else if (this.event) {
return this.event;
} else {
return "Communication Events";
}
},
labelStyle: function() {
return this.name?"node_label_italic":"";
},
oneditprepare: function() {
var root = RED.settings.httpNodeRoot;
if (root.slice(-1) == "/") {
root = root.slice(0,-1);
}
}
});
})();
</script>
<script type="text/javascript">
(function() {
RED.nodes.registerType('Display Events',{
category: 'trexMes service',
color:"rgb(204, 255, 204)",
defaults: {
name: {value:""},
method: {value:"post",required:true},
event: {value:"", required:true,
label:RED._("node-red:event-subscribers.label.event")},
ishandled: {value:false, required:true}
},
inputs:0,
outputs:1,
icon: "trex.png",
label: function() {
if (this.name) {
return this.name;
} else if (this.event) {
return this.event;
} else {
return "Display Events";
}
},
labelStyle: function() {
return this.name?"node_label_italic":"";
},
oneditprepare: function() {
var root = RED.settings.httpNodeRoot;
if (root.slice(-1) == "/") {
root = root.slice(0,-1);
}
}
});
})();
</script>
<script type="text/javascript">
(function() {
RED.nodes.registerType('Form Events',{
category: 'trexMes service',
color:"rgb(204, 255, 204)",
defaults: {
name: {value:""},
method: {value:"post",required:true},
event: {value:""},
formname: {value:"", required:true,
label:RED._("node-red:event-subscribers.label.formname")},
control: {value:"", required:true,
label:RED._("node-red:event-subscribers.label.control")},
eventname: {value:"Click", required:true,
label:RED._("node-red:event-subscribers.label.eventname")},
formainform: {value: false },
eventtime: {value: "After"}
},
inputs:0,
outputs:1,
icon: "trex.png",
label: function() {
if (this.name) {
return this.name;
}
else if(this.formainform === true && this.eventname && this.control) {
return "AppForm " + this.control + " " + this.eventname;
}
else if (this.formname && this.eventname && this.control) {
return this.formname + " " + this.control + " " + this.eventname;
} else {
return "Form Events";
}
},
labelStyle: function() {
return this.name?"node_label_italic":"";
},
oneditprepare: function() {
var root = RED.settings.httpNodeRoot;
if (root.slice(-1) == "/") {
root = root.slice(0,-1);
}
var $combo = $("#node-input-formname");
var currentSelection = this.formname;
$combo.empty();
RED.nodes.eachNode(function (node) {
if (node.type === "Custom Form") {
var option = $("<option></option>")
.attr("value", node.name)
.text(node.name);
if (currentSelection === node.name) {
option.attr("selected", "selected");
}
$combo.append(option);
}
});
function toggleInputVisibility() {
if ($("#node-input-formainform").prop("checked")) {
$("#node-input-formname").parent().hide();
$("#node-input-eventtime").parent().show();
} else {
$("#node-input-formname").parent().show();
$("#node-input-eventtime").parent().hide();
}
}
// Sayfa yüklendiğinde çalıştır
toggleInputVisibility();
// Checkbox değiştiğinde input alanını göster/gizle
$("#node-input-formainform").on("change", function () {
toggleInputVisibility();
});
}
});
})();
</script>
<script type="text/javascript">
(function() {
RED.nodes.registerType('Display Methods',{
category: 'trexMes service',
color:"rgb(204, 255, 204)",
defaults: {
name: {value:""},
method: {value:"post",required:true},
event: {value:"", required:true,
label:RED._("node-red:event-subscribers.label.event")},
},
inputs:0,
outputs:1,
icon: "trex.png",
label: function() {
if (this.name) {
return this.name;
} else if (this.event) {
return this.event;
} else {
return "Display Methods";
}
},
labelStyle: function() {
return this.name?"node_label_italic":"";
},
oneditprepare: function() {
var root = RED.settings.httpNodeRoot;
if (root.slice(-1) == "/") {
root = root.slice(0,-1);
}
var $combo = $("#node-input-formname");
var currentSelection = this.formname;
$combo.empty();
RED.nodes.eachNode(function (node) {
if (node.type === "Custom Form") {
var option = $("<option></option>")
.attr("value", node.name)
.text(node.name);
if (currentSelection === node.name) {
option.attr("selected", "selected");
}
$combo.append(option);
}
});
}
});
})();
</script>
<script type="text/javascript">
(function() {
RED.nodes.registerType('Method Returns',{
category: 'trexMes service',
color:"rgb(204, 255, 204)",
defaults: {
name: {value:""},
methodname: {value:"", required:true }
},
inputs:0,
outputs:1,
icon: "trex.png",
label: function() {
if (this.name) {
return this.name;
}
else if (this.methodname) {
return this.methodname +"_Return"
} else {
return "Method Returns";
}
},
labelStyle: function() {
return this.name?"node_label_italic":"";
},
oneditprepare: function() {
var $combo = $("#node-input-methodname");
var currentSelection = this.methodname;
$combo.empty();
RED.nodes.eachNode(function (node) {
if (node.type === "Method Invoker") {
var option = $("<option></option>")
.attr("value", node.name)
.text(node.name);
if (currentSelection === node.name) {
option.attr("selected", "selected");
}
$combo.append(option);
}
});
}
});
})();
</script>
<script type="text/javascript">
(function() {
RED.nodes.registerType('Responser',{
category: 'trexMes service',
color:"rgb(204, 255, 204)",
defaults: {
name: {value:""},
statusCode: {
value:"",
label: RED._("node-red:event-subscribers.label.status"),
validate: RED.validators.number(true)},
headers: {value:{}}
},
inputs:1,
outputs:0,
align: "right",
icon: "trex.png",
label: function() {
return this.name;
},
labelStyle: function() {
return this.name?"node_label_italic":"";
}
});
})();
</script>
<script type="text/javascript">
let methodInvoke_RenderNodeInfo = function (id, data) {
let $chart = document.getElementById("methodInvoke-chart-" + id);
if ($chart) {
let $text = document.getElementById(`methodInvoke-text-${id}`);
$text.textContent = ''
var
lines = data.split('\n'),
tn,
ts
lines.forEach(function (value, index) {
let countSpace = value.length - value.trim().length
tn = document.createTextNode(value);
ts = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
ts.setAttribute('dy', (index) ? "1.2em" : 0);
ts.setAttribute('x', countSpace * 10);
ts.setAttribute('text-anchor', 'start');
ts.setAttribute('fill', '#555');
//if (allstatus)
// ts.setAttribute('stroke', 'green');
//else
// ts.setAttribute('stroke', 'red');
ts.setAttribute('font-size', `12`)
ts.appendChild(tn);
$text.append(ts);
});
} else {
const $container = document.getElementById(id)
if (!$container) { return }
const text = document.createElementNS("http://www.w3.org/2000/svg", 'text')
text.setAttribute('id', `methodInvoke-text-${id}`)
text.setAttribute('x', `0`)
text.setAttribute('y', `50`)
text.setAttribute('text-anchor', `start`)
$container.insertBefore(text, $container.lastChild.nextSibling);
// Create group
const group = document.createElementNS("http://www.w3.org/2000/svg", 'g');
group.setAttribute('id', `methodInvoke-chart-${id}`);
group.setAttribute('innerHTML', `methodInvoke-chart-${id}`);
$container.insertBefore(group, $container.lastChild.nextSibling);
$chart = $container
let $text = document.getElementById(`methodInvoke-text-${id}`);
$text.textContent = ''
var
lines = data.split('\n'),
tn,
ts
lines.forEach(function (value, index) {
let countSpace = value.length - value.trim().length
tn = document.createTextNode(value);
ts = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
ts.setAttribute('dy', (index) ? "1.2em" : 0);
ts.setAttribute('x', countSpace * 10);
ts.setAttribute('text-anchor', 'start');
ts.setAttribute('fill', '#555');
//if (allstatus)
// ts.setAttribute('stroke', 'green');
//else
// ts.setAttribute('stroke', 'red');
ts.setAttribute('font-size', `12`)
ts.appendChild(tn);
$text.append(ts);
});
}
}
RED.comms.subscribe('methodInvoke-message', function (event, data) {
if (data.hasOwnProperty("message")) {
//console.log("render :"+data.data);
methodInvoke_RenderNodeInfo(data.id, data.message);
}
})
</script>