From 6ef91daa9f2e12e5e137ec82f9185e7749ed82d7 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 27 十二月 2023 18:26:59 +0800
Subject: [PATCH] 2023-12-27

---
 src/menu/components/chart/antv-bar/chartcompile/index.jsx      |   52 +++++++-
 src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx |  297 +++++++++++++++++++++++++++---------------------
 src/tabviews/zshare/actionList/newpagebutton/index.jsx         |    9 +
 3 files changed, 217 insertions(+), 141 deletions(-)

diff --git a/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx b/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx
index 6195549..3b9d0e8 100644
--- a/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx
+++ b/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx
@@ -224,28 +224,41 @@
 export function getOptionForm (card, columns) {
   let appType = sessionStorage.getItem('appType')
   let shapes = []
+  let shape = card.shape
 
   if (card.chartType === 'line') {
     shapes = [
-      { field: 'smooth', label: 'smooth锛堝钩婊戠嚎锛�' },
-      { field: 'line', label: 'line锛堢洿绾匡級' },
-      { field: 'dot', label: 'dot锛堢偣鐘剁嚎锛�' },
-      { field: 'dash', label: 'dash锛堣櫄绾匡級' },
-      { field: 'hv', label: 'hv锛堟按骞�-鍨傜洿绾匡級' },
-      { field: 'vh', label: 'vh锛堝瀭鐩�-姘村钩绾匡級' },
-      { field: 'hvh', label: 'hvh锛堟按骞�-鍨傜洿-姘村钩绾匡級' },
-      { field: 'vhv', label: 'vhv锛堝瀭鐩�-姘村钩-鍨傜洿绾匡級' }
+      { field: 'smooth', label: '骞虫粦绾�' },
+      { field: 'line', label: '鐩寸嚎' },
+      { field: 'dot', label: '鐐圭姸绾�' },
+      { field: 'dash', label: '铏氱嚎' },
+      { field: 'hv', label: '姘村钩-鍨傜洿绾�' },
+      { field: 'vh', label: '鍨傜洿-姘村钩绾�' },
+      { field: 'hvh', label: '姘村钩-鍨傜洿-姘村钩绾�' },
+      { field: 'vhv', label: '鍨傜洿-姘村钩-鍨傜洿绾�' }
     ]
   } else if (card.chartType === 'bar') {
     shapes = [
-      { field: 'rect', label: 'rect锛堢煩褰級' },
-      { field: 'hollow-rect', label: 'hollow-rect锛堢┖蹇冪煩褰級' },
+      { field: 'rect', label: '鐭╁舰' },
+      { field: 'hollow-rect', label: '绌哄績鐭╁舰' },
       // { field: 'hollow', label: 'hollow锛堢┖蹇冪煩褰級' },
       // { field: 'line', label: 'line锛堢嚎鏉★級' },
       // { field: 'tick', label: 'tick锛堟尝鍔級' },
       // { field: 'funnel', label: 'funnel锛堟紡鏂楀浘锛�' },
-      { field: 'pyramid', label: 'pyramid锛堥噾瀛楀锛�' }
+      { field: 'pyramid', label: '閲戝瓧濉�' },
+      { field: 'barChart', label: '鏉″舰鍥�' },
+      { field: 'roseChart', label: '鐜懓鍥�' },
     ]
+
+    if (card.transpose === 'true') {
+      shape = 'barChart'
+    } else if (card.coordinate === 'polar') {
+      shape = 'roseChart'
+    }
+  }
+
+  if (!shape) {
+    shape = shapes[0].field
   }
 
   let xfields = columns.filter(item => /^Nvarchar/ig.test(item.datatype))
@@ -294,24 +307,36 @@
   if (card.y_label !== 'hidden') {
     tickVals.push('y_label')
   }
+  
+  let datatype = card.datatype || 'query'
+  if (card.enabled === 'true') {
+    datatype = 'custom'
+  }
 
   return [
     {
       type: 'radio',
       field: 'datatype',
-      label: '鏁版嵁绫诲瀷',
-      initval: card.datatype || 'query',
+      label: '鍥惧舰绫诲瀷',
+      initval: datatype,
       tooltip: '缁熻鍥捐〃閫傜敤浜庡睍绀烘暟鎹被鍨嬩负鍔ㄦ�佸�笺��',
       required: false,
       $trans: true,
       options: [
-        { value: 'query', label: '鏌ヨ' },
+        { value: 'query', label: card.chartType !== 'line' ? '鏌辩姸鍥�' : '鎶樼嚎鍥�' },
+        { value: 'custom', label: '鑷畾涔夊浘褰�' },
         { value: 'statistics', label: '缁熻' }
       ],
       controlFields: [
         {field: 'InfoType', values: ['statistics']},
         {field: 'InfoValue', values: ['statistics']},
-        {field: 'Yaxis', values: ['query']},
+        {field: 'Yaxis', values: ['query', 'custom']},
+        {field: 'adjust', values: ['query', 'statistics']},
+        {field: 'area', values: ['query', 'statistics']},
+        {field: 'show', values: ['query', 'statistics']},
+        {field: 'selectColor', values: ['query']},
+        {field: 'barSize', values: card.chartType !== 'line' ? ['query', 'custom', 'statistics'] : ['custom']},
+        {field: 'mutilBar', values: ['custom']},
       ]
     }, {
       type: 'select',
@@ -336,6 +361,20 @@
       options: yfields
     }, {
       type: 'select',
+      field: 'shape',
+      label: '褰㈢姸',
+      initval: shape,
+      required: false,
+      options: shapes
+    }, {
+      type: 'multiselect',
+      field: 'Yaxis',
+      label: 'Y-杞�',
+      initval: card.Yaxis || [],
+      required: true,
+      options: yfields
+    }, {
+      type: 'select',
       field: 'legend',
       label: '鍥句緥浣嶇疆',
       initval: card.legend || 'bottom',
@@ -356,20 +395,6 @@
         { field: 'hidden', label: '闅愯棌' }
       ]
     }, {
-      type: 'multiselect',
-      field: 'Yaxis',
-      label: 'Y-杞�',
-      initval: card.Yaxis || [],
-      required: true,
-      options: yfields
-    }, {
-      type: 'select',
-      field: 'shape',
-      label: '褰㈢姸',
-      initval: card.shape || (shapes[0] && shapes[0].field),
-      required: false,
-      options: shapes
-    }, {
       type: 'radio',
       field: 'tooltip',
       label: '鎮诞鎻愮ず',
@@ -382,41 +407,27 @@
         value: 'false',
         label: '闅愯棌'
       }]
-    }, {
-      type: 'radio',
-      field: 'point',
-      label: '鐐瑰浘',
-      initval: card.point || 'false',
-      required: false,
-      forbid: !['line'].includes(card.chartType),
-      options: [{
-        value: 'true',
-        label: '鏄剧ず'
-      }, {
-        value: 'false',
-        label: '闅愯棌'
-      }]
-    }, {
-      type: 'radio',
-      field: 'transpose',
-      label: '鍙樻崲',
-      initval: card.transpose || 'false',
-      tooltip: '妯旱鍧愭爣杞翠氦鎹�',
-      forbid: card.chartType === 'line',
-      required: false,
-      options: [{
-        value: 'true',
-        label: '鏄�'
-      }, {
-        value: 'false',
-        label: '鍚�'
-      }]
+    // }, {
+    //   type: 'radio',
+    //   field: 'transpose',
+    //   label: '鍙樻崲',
+    //   initval: card.transpose || 'false',
+    //   tooltip: '妯旱鍧愭爣杞翠氦鎹�',
+    //   forbid: card.chartType === 'line',
+    //   required: false,
+    //   options: [{
+    //     value: 'true',
+    //     label: '鏄�'
+    //   }, {
+    //     value: 'false',
+    //     label: '鍚�'
+    //   }]
     }, {
       type: 'radio',
       field: 'show',
       label: '鏄剧ず',
       initval: card.show || 'value',
-      tooltip: '褰撲娇鐢ㄨ嚜瀹氫箟璁剧疆鏃讹紝鍙湪鏄剧ず锛堝��/%锛夊鍗曠嫭璁剧疆鏄剧ず绫诲瀷銆傛敞锛氳嚜瀹氫箟涓虹┖鏃朵娇鐢ㄦ澶勮缃��',
+      // tooltip: '褰撲娇鐢ㄨ嚜瀹氫箟璁剧疆鏃讹紝鍙湪鏄剧ず锛堝��/%锛夊鍗曠嫭璁剧疆鏄剧ず绫诲瀷銆傛敞锛氳嚜瀹氫箟涓虹┖鏃朵娇鐢ㄦ澶勮缃��',
       required: false,
       options: [{
         value: 'value',
@@ -439,20 +450,20 @@
       controlFields: [
         {field: 'labelColor', values: ['true']}
       ]
-    }, {
-      type: 'radio',
-      field: 'labelColor',
-      label: '鏍囨敞棰滆壊',
-      initval: card.labelColor || 'system',
-      tooltip: '浣跨敤绯荤粺鑹叉椂锛屼娇鐢ㄨ壊绯婚�夐」璁剧疆鐨勭郴缁熼鑹诧紝浣跨敤鑷畾涔変负棰滆壊璁剧疆涓畾涔夌殑鍥惧舰棰滆壊銆�',
-      required: false,
-      options: [{
-        value: 'system',
-        label: '绯荤粺'
-      }, {
-        value: 'custom',
-        label: '鑷畾涔�'
-      }]
+    // }, {
+    //   type: 'radio',
+    //   field: 'labelColor',
+    //   label: '鏍囨敞棰滆壊',
+    //   initval: card.labelColor || 'system',
+    //   tooltip: '浣跨敤绯荤粺鑹叉椂锛屼娇鐢ㄨ壊绯婚�夐」璁剧疆鐨勭郴缁熼鑹诧紝浣跨敤鑷畾涔変负棰滆壊璁剧疆涓畾涔夌殑鍥惧舰棰滆壊銆�',
+    //   required: false,
+    //   options: [{
+    //     value: 'system',
+    //     label: '绯荤粺'
+    //   }, {
+    //     value: 'custom',
+    //     label: '鑷畾涔�'
+    //   }]
     // }, {
     //   type: 'radio',
     //   field: 'labelValue',
@@ -483,11 +494,38 @@
       }]
     }, {
       type: 'radio',
+      field: 'mutilBar',
+      label: '澶氭煴鎺掑垪',
+      initval: card.mutilBar || 'dodge',
+      required: false,
+      options: [{
+        value: 'dodge',
+        label: '鍒嗙粍'
+      }, {
+        value: 'stack',
+        label: '鍫嗗彔'
+      }]
+    }, {
+      type: 'radio',
+      field: 'point',
+      label: '鐐瑰浘',
+      initval: card.point || 'false',
+      required: false,
+      forbid: card.chartType === 'bar',
+      options: [{
+        value: 'true',
+        label: '鏄剧ず'
+      }, {
+        value: 'false',
+        label: '闅愯棌'
+      }]
+    }, {
+      type: 'radio',
       field: 'area',
       label: '闈㈢Н鍥�',
       initval: card.area || 'false',
       required: false,
-      forbid: ['bar'].includes(card.chartType),
+      forbid: card.chartType === 'bar',
       options: [{
         value: 'true',
         label: '鏄剧ず'
@@ -495,20 +533,20 @@
         value: 'false',
         label: '涓嶆樉绀�'
       }]
-    }, {
-      type: 'radio',
-      field: 'coordinate',
-      label: '鍧愭爣',
-      initval: card.coordinate || 'angle',
-      required: false,
-      forbid: card.chartType === 'line',
-      options: [{
-        value: 'angle',
-        label: '浜岀淮鍧愭爣'
-      }, {
-        value: 'polar',
-        label: '鏋佸潗鏍�'
-      }]
+    // }, {
+    //   type: 'radio',
+    //   field: 'coordinate',
+    //   label: '鍧愭爣',
+    //   initval: card.coordinate || 'angle',
+    //   required: false,
+    //   forbid: card.chartType === 'line',
+    //   options: [{
+    //     value: 'angle',
+    //     label: '浜岀淮鍧愭爣'
+    //   }, {
+    //     value: 'polar',
+    //     label: '鏋佸潗鏍�'
+    //   }]
     }, {
       type: 'checkbox',
       field: 'axis',
@@ -574,20 +612,20 @@
     //     value: 'hidden',
     //     label: '闅愯棌'
     //   }]
-    }, {
-      type: 'radio',
-      field: 'download',
-      label: '瀵煎嚭鍥剧墖',
-      initval: card.download || 'forbid',
-      required: false,
-      forbid: appType === 'mob',
-      options: [{
-        value: 'forbid',
-        label: '绂佺敤'
-      }, {
-        value: 'enable',
-        label: '鍚敤'
-      }]
+    // }, {
+    //   type: 'radio',
+    //   field: 'download',
+    //   label: '瀵煎嚭鍥剧墖',
+    //   initval: card.download || 'forbid',
+    //   required: false,
+    //   forbid: appType === 'mob',
+    //   options: [{
+    //     value: 'forbid',
+    //     label: '绂佺敤'
+    //   }, {
+    //     value: 'enable',
+    //     label: '鍚敤'
+    //   }]
     }, {
       type: 'radio',
       field: 'empty',
@@ -608,7 +646,6 @@
       max: 200,
       precision: 0,
       initval: card.barSize,
-      forbid: !['bar'].includes(card.chartType),
       required: false
     }, {
       type: 'number',
@@ -619,7 +656,7 @@
       max: 200,
       precision: 0,
       initval: card.barRadius || 0,
-      forbid: !['bar'].includes(card.chartType),
+      forbid: card.chartType === 'line',
       required: false
     }, {
       type: 'number',
@@ -670,37 +707,37 @@
       initval: card.rotate,
       forbid: appType !== 'mob',
       required: false
-    }, {
-      type: 'multiselect',
-      field: 'interaction',
-      label: '浜や簰鏁堟灉',
-      initval: card.interaction || [],
-      required: false,
-      forbid: appType === 'mob',
-      options: [
-        { value: 'element-active', label: '鍏冪礌鑱氱劍' },
-        { value: 'element-selected', label: '鍏冪礌閫変腑锛堝閫夛級' },
-        { value: 'element-single-selected', label: '鍏冪礌閫変腑锛堝崟閫夛級' },
-        { value: 'active-region', label: '鑳屾櫙妗�' },
-        { value: 'view-zoom', label: '瑙嗗浘缂╂斁' },
-        { value: 'element-highlight', label: '鍏冪礌楂樹寒' },
-        { value: 'element-highlight-by-color', label: '鍚岃壊鍏冪礌楂樹寒' },
-        { value: 'element-highlight-by-x', label: '鍚孹杞村厓绱犻珮浜�' },
-        { value: 'legend-filter', label: '鍥句緥杩囨护' },
-        { value: 'legend-active', label: '鍥句緥鑱氱劍' },
-        { value: 'legend-highlight', label: '鍥句緥楂樹寒' },
-        { value: 'brush', label: '閫夋杩囨护' },
-      ],
-      controlFields: [
-        {field: 'selectColor', values: ['element-selected', 'element-single-selected']},
-      ]
+    // }, {
+    //   type: 'multiselect',
+    //   field: 'interaction',
+    //   label: '浜や簰鏁堟灉',
+    //   initval: card.interaction || [],
+    //   required: false,
+    //   forbid: appType === 'mob',
+    //   options: [
+    //     { value: 'element-active', label: '鍏冪礌鑱氱劍' },
+    //     { value: 'element-selected', label: '鍏冪礌閫変腑锛堝閫夛級' },
+    //     { value: 'element-single-selected', label: '鍏冪礌閫変腑锛堝崟閫夛級' },
+    //     { value: 'active-region', label: '鑳屾櫙妗�' },
+    //     { value: 'view-zoom', label: '瑙嗗浘缂╂斁' },
+    //     { value: 'element-highlight', label: '鍏冪礌楂樹寒' },
+    //     { value: 'element-highlight-by-color', label: '鍚岃壊鍏冪礌楂樹寒' },
+    //     { value: 'element-highlight-by-x', label: '鍚孹杞村厓绱犻珮浜�' },
+    //     { value: 'legend-filter', label: '鍥句緥杩囨护' },
+    //     { value: 'legend-active', label: '鍥句緥鑱氱劍' },
+    //     { value: 'legend-highlight', label: '鍥句緥楂樹寒' },
+    //     { value: 'brush', label: '閫夋杩囨护' },
+    //   ],
+    //   controlFields: [
+    //     {field: 'selectColor', values: ['element-selected', 'element-single-selected']},
+    //   ]
     }, {
       type: 'color',
       field: 'selectColor',
       label: '閫変腑棰滆壊',
       initval: card.selectColor || '',
-      tooltip: '閫変腑鏌卞舰鍥剧殑棰滆壊锛屽惎鐢ㄨ嚜瀹氫箟璁剧疆鏃舵棤鏁堛��',
-      forbid: !['bar'].includes(card.chartType),
+      tooltip: '閫変腑鏌卞舰鍥剧殑棰滆壊銆�',
+      forbid: card.chartType === 'line',
       allowClear: true,
       required: false
     }
diff --git a/src/menu/components/chart/antv-bar/chartcompile/index.jsx b/src/menu/components/chart/antv-bar/chartcompile/index.jsx
index 8b6a146..ca696d2 100644
--- a/src/menu/components/chart/antv-bar/chartcompile/index.jsx
+++ b/src/menu/components/chart/antv-bar/chartcompile/index.jsx
@@ -181,10 +181,15 @@
 
     plot.zoomYaxis = plot.zoomYaxis || 'default'
 
+    let datatype = plot.datatype || 'query'
+    if (plot.enabled === 'true') {
+      datatype = 'custom'
+    }
+
     this.setState({
       visible: true,
       view: 'base',
-      datatype: plot.datatype || 'query',
+      datatype: datatype,
       fieldName: fieldName,
       plot: plot,
       baseFormlist: getBaseForm(plot, config.columns),
@@ -299,6 +304,7 @@
           { value: 'false', text: '闅愯棌'}
         ],
         render: (text, record) => {
+          if (record.axis !== 'true') return ''
           let trans = {'true': '鏄剧ず', 'false': '闅愯棌'}
           return trans[text] || ''
         }
@@ -317,7 +323,7 @@
         ],
         render: (text, record) => {
           let trans = {value: '鏁板��', percent: '鐧惧垎姣�', thdSeparator: '鍗冨垎浣�'}
-          return trans[text] || ''
+          return trans[text] || '鏁板��'
         }
       },
       {
@@ -359,9 +365,18 @@
       this.normalRef.handleConfirm().then(values => {
         let _plot = {...plot, ...values}
 
+        if (_plot.datatype === 'custom') {
+          _plot.datatype = 'query'
+          _plot.enabled = 'true'
+          _plot.show = 'value'
+        } else {
+          _plot.enabled = 'false'
+        }
+
         if (_plot.datatype !== plot.datatype) {
           _plot.colors = null
         }
+
         this.resetPlot(_plot)
 
         this.setState({
@@ -398,6 +413,14 @@
     if (view === 'normal') {
       this.normalRef.handleConfirm().then(values => {
         let _plot = {...plot, ...values}
+
+        if (_plot.datatype === 'custom') {
+          _plot.datatype = 'query'
+          _plot.enabled = 'true'
+          _plot.show = 'value'
+        } else {
+          _plot.enabled = 'false'
+        }
 
         if (_plot.datatype !== plot.datatype) {
           _plot.colors = null
@@ -482,6 +505,14 @@
   resetPlot = (_plot) => {
     const { config } = this.props
 
+    if (_plot.chartType === 'bar') {
+      _plot.transpose = _plot.shape === 'barChart' ? 'true' : 'false'
+      _plot.coordinate = _plot.shape === 'roseChart' ? 'polar' : 'angle'
+      if (_plot.shape === 'barChart' || _plot.shape === 'roseChart') {
+        _plot.shape = 'rect'
+      }
+    }
+
     if (_plot.axis) {
       _plot.grid = _plot.axis.includes('grid') ? 'show' : 'hidden'
       _plot.x_line = _plot.axis.includes('x_line') ? 'show' : 'hidden'
@@ -531,7 +562,8 @@
             name: labels[item] || item,
             axis: i === 0 ? 'true' : 'false',
             label: _plot.label === 'false' ? 'false' : true,
-            title: 'true',
+            show: 'value',
+            title: 'false',
             shape: _plot.chartType === 'bar' && i === 0 ? ['bar', 'rect'] : ['line', 'smooth']
           }
         })
@@ -668,15 +700,15 @@
                 {datatype === 'statistics' ? <Button className="color-add mk-green" onClick={this.addColor}>娣诲姞</Button> : null}
                 {datatype === 'statistics' ? <EditTable actions={['edit', 'move', 'del']} data={plot.colors || []} columns={plot.ramp ==='true' ? rampStatColorColumns : statColorColumns} onChange={this.changeColor}/> : null}
                 {datatype !== 'statistics' ? <EditTable actions={['edit']} data={plot.colors || []} columns={plot.ramp ==='true' ? rampColorColumns : colorColumns} onChange={this.changeColor}/> : null}
-                {plot.chartType === 'bar' && plot.datatype === 'query' ? <div className="mk-bar-colors">
-                  <p>鏌卞舰棰滆壊锛氬彲鏍规嵁鏌卞浘搴忓彿璁剧疆棰滆壊銆傛敞锛氫娇鐢ㄨ嚜瀹氫箟鍥惧舰璁剧疆鎴栧鏍规煴鍥炬椂鏃犳晥銆�</p>
+                {plot.chartType === 'bar' && datatype === 'query' ? <div className="mk-bar-colors">
+                  <p>鏌卞舰棰滆壊锛氬彲鏍规嵁鏌卞浘搴忓彿璁剧疆棰滆壊銆傛敞锛氬鏍规煴鍥炬椂鏃犳晥銆�</p>
                   <div className="bar-color-add"><PlusOutlined onClick={this.addbarColor}/></div>
                   <EditTable actions={['edit', 'move', 'del']} data={plot.barcolors || []} columns={barColorColumns} onChange={this.changebarColor}/>
                 </div> : null}
               </div>
             </TabPane> : null}
-            {plot ? <TabPane tab="鑷畾涔夊浘褰㈣缃�" disabled={datatype === 'statistics'} key="custom">
-              <Col span={8}>
+            {plot ? <TabPane tab="鑷畾涔夊浘褰㈣缃�" disabled={datatype !== 'custom'} key="custom">
+              {/* <Col span={8}>
                 <Form {...formItemLayout}>
                   <Form.Item label="鏄惁鍚敤" style={{marginBottom: 10}}>
                     <Radio.Group value={plot.enabled || 'false'} onChange={(e) => this.optionChange(e.target.value, 'enabled')}>
@@ -685,8 +717,8 @@
                     </Radio.Group>
                   </Form.Item>
                 </Form>
-              </Col>
-              <Col span={8}>
+              </Col> */}
+              {/* <Col span={8}>
                 <Form {...formItemLayout}>
                   <Form.Item label="澶氭煴鎺掑垪" style={{marginBottom: 10}}>
                     <Radio.Group value={plot.mutilBar || 'dodge'} onChange={(e) => this.optionChange(e.target.value, 'mutilBar')}>
@@ -696,7 +728,7 @@
                     </Radio.Group>
                   </Form.Item>
                 </Form>
-              </Col>
+              </Col> */}
               <Col span={8}>
                 <Form {...formItemLayout}>
                   <Form.Item label="Y杞村尯闂�" style={{marginBottom: 10}}>
diff --git a/src/tabviews/zshare/actionList/newpagebutton/index.jsx b/src/tabviews/zshare/actionList/newpagebutton/index.jsx
index ef0be08..a3fafce 100644
--- a/src/tabviews/zshare/actionList/newpagebutton/index.jsx
+++ b/src/tabviews/zshare/actionList/newpagebutton/index.jsx
@@ -128,6 +128,13 @@
         duration: 5
       })
       return
+    } else if (btn.pageTemplate === 'custom' && window.GLOB.systemType === 'production' && !btn.proUrl) {
+      notification.warning({
+        top: 92,
+        message: '灏氭湭璁剧疆姝e紡绯荤粺閾炬帴鍦板潃锛�',
+        duration: 5
+      })
+      return
     } else if (!btn.pageTemplate) {
       notification.warning({
         top: 92,
@@ -195,7 +202,7 @@
       window.open(url)
     } else if (btn.pageTemplate === 'custom') {
       let url = btn.url
-      if (window.GLOB.systemType === 'production' && btn.proUrl) {
+      if (window.GLOB.systemType === 'production') {
         url = btn.proUrl
       }
 

--
Gitblit v1.8.0