JAVASCRIPT   64

Substring.js

Guest on 9th September 2021 02:25:04 AM

  1. /**
  2.  * Pimcore
  3.  *
  4.  * This source file is available under two different licenses:
  5.  * - GNU General Public License version 3 (GPLv3)
  6.  * - Pimcore Enterprise License (PEL)
  7.  * Full copyright and license information is available in
  8.  * LICENSE.md which is distributed with this source code.
  9.  *
  10.  * @category   Pimcore
  11.  * @package    Object
  12.  *
  13.  * @copyright  Copyright (c) Pimcore GmbH (http://www.pimcore.org)
  14.  * @license    http://www.pimcore.org/license     GPLv3 and PEL
  15.  */
  16.  
  17.  
  18. pimcore.registerNS("pimcore.plugin.datahub.queryoperator.substring");
  19.  
  20. pimcore.plugin.datahub.queryoperator.substring = Class.create(pimcore.plugin.datahub.Abstract, {
  21.     operatorGroup: "transformer",
  22.     type: "operator",
  23.     class: "Substring",
  24.     iconCls: "pimcore_icon_operator_substring",
  25.     defaultText: "Substring",
  26.     group: "string",
  27.  
  28.     getConfigTreeNode: function(configAttributes) {
  29.         if(configAttributes) {
  30.             var node = {
  31.                 draggable: true,
  32.                 iconCls: this.iconCls,
  33.                 text: configAttributes.label ? configAttributes.label : this.getDefaultText(),
  34.                 configAttributes: configAttributes,
  35.                 isTarget: true,
  36.                 expanded: true,
  37.                 leaf: false,
  38.                 expandable: false,
  39.                 allowChildren: true,
  40.                 isChildAllowed: this.allowChild
  41.             };
  42.         } else {
  43.  
  44.             //For building up operator list
  45.             var configAttributes = { type: this.type, class: this.class, label: this.getDefaultText()};
  46.  
  47.             var node = {
  48.                 draggable: true,
  49.                 iconCls: this.iconCls,
  50.                 text: this.getDefaultText(),
  51.                 configAttributes: configAttributes,
  52.                 isTarget: true,
  53.                 leaf: true,
  54.                 isChildAllowed: this.allowChild
  55.             };
  56.         }
  57.         node.isOperator = true;
  58.         return node;
  59.     },
  60.  
  61.  
  62.     getCopyNode: function(source) {
  63.         var copy = source.createNode({
  64.             iconCls: this.iconCls,
  65.             text: source.data.text,
  66.             isTarget: true,
  67.             leaf: false,
  68.             expanded: true,
  69.             isOperator: true,
  70.             isChildAllowed: this.allowChild,
  71.             configAttributes: {
  72.                 label: source.data.configAttributes.label,
  73.                 type: this.type,
  74.                 class: this.class
  75.             }
  76.         });
  77.         return copy;
  78.     },
  79.  
  80.  
  81.     getConfigDialog: function(node, params) {
  82.         this.node = node;
  83.  
  84.         this.textField = new Ext.form.TextField({
  85.             fieldLabel: t('plugin_pimcore_datahub_fieldName'),
  86.             length: 255,
  87.             width: 200,
  88.             value: this.node.data.configAttributes.label
  89.         });
  90.  
  91.         this.startField = new Ext.form.NumberField({
  92.             fieldLabel: t('start'),
  93.             length: 255,
  94.             width: 200,
  95.             value: this.node.data.configAttributes.start,
  96.             minValue: 0
  97.         });
  98.  
  99.         this.lengthField = new Ext.form.NumberField({
  100.             fieldLabel: t('length'),
  101.             length: 255,
  102.             width: 200,
  103.             value: this.node.data.configAttributes.length
  104.         });
  105.  
  106.  
  107.         this.ellipsesField = new Ext.form.Checkbox({
  108.             fieldLabel: t('ellipses'),
  109.             length: 255,
  110.             width: 200,
  111.             value: this.node.data.configAttributes.ellipses
  112.         });
  113.  
  114.  
  115.         this.configPanel = new Ext.Panel({
  116.             layout: "form",
  117.             bodyStyle: "padding: 10px;",
  118.             items: [this.textField, this.startField, this.lengthField, this.ellipsesField],
  119.             buttons: [{
  120.                 text: t("apply"),
  121.                 iconCls: "pimcore_icon_apply",
  122.                 handler: function () {
  123.                     this.commitData(params);
  124.                 }.bind(this)
  125.             }]
  126.         });
  127.  
  128.         this.window = new Ext.Window({
  129.             width: 400,
  130.             height: 350,
  131.             modal: true,
  132.             title: t('operator_substring_settings'),
  133.             layout: "fit",
  134.             items: [this.configPanel]
  135.         });
  136.  
  137.         this.window.show();
  138.         return this.window;
  139.     },
  140.  
  141.     commitData: function(params) {
  142.         this.node.set('isOperator', true);
  143.         this.node.data.configAttributes.start = this.startField.getValue();
  144.         this.node.data.configAttributes.length = this.lengthField.getValue();
  145.         this.node.data.configAttributes.ellipses = this.ellipsesField.getValue();
  146.         this.node.data.configAttributes.label = this.textField.getValue().replace(/ /g,"_");
  147.         this.node.set('text', this.textField.getValue());
  148.         this.window.close();
  149.         if (params && params.callback) {
  150.             params.callback();
  151.         }
  152.     },
  153.  
  154.     allowChild: function (targetNode, dropNode) {
  155.         if (targetNode.childNodes.length > 0) {
  156.             return false;
  157.         }
  158.         return true;
  159.     }
  160. });

Raw Paste


Login or Register to edit or fork this paste. It's free.