UNPKG

@cgignite/ignite-odata

Version:

Odata Connector CG Ignite

134 lines (127 loc) 5.76 kB
<script type="text/javascript"> var _maxModel = 20; RED.nodes.registerType('edm', { category: 'config', defaults: { namespace: { value: "ignite", required: true }, schema: { required: false }, entities: { type: "entity", required: false }, model1: { required: false }, model2: { required: false }, model3: { required: false }, model4: { required: false }, model5: { required: false }, model6: { required: false }, model7: { required: false }, model8: { required: false }, model9: { required: false }, model10: { required: false }, model11: { required: false }, model12: { required: false }, model13: { required: false }, model14: { required: false }, model15: { required: false }, model16: { required: false }, model17: { required: false }, model18: { required: false }, model19: { required: false }, model20: { required: false }, }, label: function () { return "edm:" + this.namespace; }, oneditprepare: function () { var node = this; var model = []; for (var index = 1; index <= _maxModel; index++) { if (this["model" + index]) { model.push(this["model" + index]); } } this._resize = function () { var rows = $("#node-config-dialog-edit-form>div:not(.node-input-target-list-row)"); var height = $("#node-config-dialog-edit-form").height(); for (var i = 0; i < rows.length; i++) { height -= $(rows[i]).outerHeight(true); } var editorRow = $("#node-config-dialog-edit-form>div.node-input-target-list-row"); editorRow.css("height", height + "px"); }; var dirList = $("#node-input-edm-target-container-div").css({ width: "100%", height: "100%" }) .treeList({ multi: true }).on("treelistitemmouseover", function (e, item) { }).on("treelistitemmouseout", function (e, item) { }); $("#node-config-input-entities").on("change", function (e, item) { var items = []; var nodeItemMap = {}; RED.nodes.eachConfig(function (n) { if (n.type == "entity") { var isChecked = model.indexOf(n.id) !== -1; nodeItemMap[n.id] = { node: n, label: n.name, sublabel: n.type, selected: isChecked }; items.push(nodeItemMap[n.id]); } }); dirList.treeList('data', items); }); }, oneditsave: function () { var model = $("#node-input-edm-target-container-div").treeList('selected').map(function (i) { return i.node.id }); for (var index = 1; index <= _maxModel; index++) { if (index <= model.length) { $("#node-config-input-model" + index).val(model[index - 1]); } else { $("#node-config-input-model" + index).val("_ADD_"); } } $("#node-config-input-entities").val("_ADD_"); }, oneditresize: function (size) { this._resize(); } }); </script> <script type="text/html" data-template-name="edm"> <div class="form-row"> <label for="node-config-input-namespace"><i class="fa fa-bookmark"></i> Namespace</label> <input type="text" id="node-config-input-namespace"> </div> <div class="form-row"> <label for="node-config-input-schema"><i class="fa fa-bookmark"></i> Schema</label> <input type="text" id="node-config-input-schema"> </div> <div class="form-row"> <label for="node-config-input-entities"><i class="fa fa-bookmark"></i> Entity</label> <input type="text" id="node-config-input-entities"> </div> <div class="form-row node-input-target-row node-input-target-list-row" style="min-height: 100px"> <div id="node-input-edm-target-container-div"></div> </div> <div style='display:none;height:0'> <input type="text" id="node-config-input-model1"> <input type="text" id="node-config-input-model2"> <input type="text" id="node-config-input-model3"> <input type="text" id="node-config-input-model4"> <input type="text" id="node-config-input-model5"> <input type="text" id="node-config-input-model6"> <input type="text" id="node-config-input-model7"> <input type="text" id="node-config-input-model8"> <input type="text" id="node-config-input-model9"> <input type="text" id="node-config-input-model10"> <input type="text" id="node-config-input-model11"> <input type="text" id="node-config-input-model12"> <input type="text" id="node-config-input-model13"> <input type="text" id="node-config-input-model14"> <input type="text" id="node-config-input-model15"> <input type="text" id="node-config-input-model16"> <input type="text" id="node-config-input-model17"> <input type="text" id="node-config-input-model18"> <input type="text" id="node-config-input-model19"> <input type="text" id="node-config-input-model20"> </div> </script>