Ferdbold has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/228984

Change subject: [WIP] Added padding support
......................................................................

[WIP] Added padding support

Change-Id: I9007883e847c13edaced1c2beb62515def091cc3
---
M Graph.hooks.php
M i18n/en.json
M i18n/qqq.json
M modules/ve-graph/ve.ui.MWGraphDialog.js
M modules/ve-graph/widgets/TableWidget.js
5 files changed, 85 insertions(+), 17 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Graph 
refs/changes/84/228984/1

diff --git a/Graph.hooks.php b/Graph.hooks.php
index d353aff..f508e0e 100644
--- a/Graph.hooks.php
+++ b/Graph.hooks.php
@@ -50,6 +50,12 @@
                                        'graph-ve-dialog-edit-field-graph-type',
                                        'graph-ve-dialog-edit-field-raw-json',
                                        'graph-ve-dialog-edit-json-invalid',
+                                       'graph-ve-dialog-edit-padding-fieldset',
+                                       
'graph-ve-dialog-edit-padding-table-bottom',
+                                       
'graph-ve-dialog-edit-padding-table-left',
+                                       
'graph-ve-dialog-edit-padding-table-right',
+                                       
'graph-ve-dialog-edit-padding-table-top',
+                                       
'graph-ve-dialog-edit-padding-table-unit',
                                        'graph-ve-dialog-edit-page-data',
                                        'graph-ve-dialog-edit-page-general',
                                        'graph-ve-dialog-edit-page-raw',
diff --git a/i18n/en.json b/i18n/en.json
index 5dc095f..c1d3d21 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -12,6 +12,12 @@
        "graph-ve-dialog-edit-field-graph-type": "Graph type",
        "graph-ve-dialog-edit-field-raw-json": "Raw JSON specification",
        "graph-ve-dialog-edit-json-invalid": "Invalid JSON string",
+       "graph-ve-dialog-edit-padding-fieldset": "Padding",
+       "graph-ve-dialog-edit-padding-table-bottom": "Bottom",
+       "graph-ve-dialog-edit-padding-table-left": "Left",
+       "graph-ve-dialog-edit-padding-table-right": "Right",
+       "graph-ve-dialog-edit-padding-table-top": "Top",
+       "graph-ve-dialog-edit-padding-table-unit": "Pixels",
        "graph-ve-dialog-edit-page-data": "Data",
        "graph-ve-dialog-edit-page-general": "General",
        "graph-ve-dialog-edit-page-raw": "Raw data",
diff --git a/i18n/qqq.json b/i18n/qqq.json
index 310f046..16de6d1 100644
--- a/i18n/qqq.json
+++ b/i18n/qqq.json
@@ -12,6 +12,12 @@
        "graph-ve-dialog-edit-field-graph-type": "Label for graph type",
        "graph-ve-dialog-edit-field-raw-json": "Label for the raw JSON 
specification in the graph editing dialog",
        "graph-ve-dialog-edit-json-invalid": "Validation label for the JSON 
specification string",
+       "graph-ve-dialog-edit-padding-fieldset": "Label for padding fieldset in 
graph edition dialog",
+       "graph-ve-dialog-edit-padding-table-bottom": "Label for bottom padding 
user config in graph editing tool",
+       "graph-ve-dialog-edit-padding-table-left": "Label for left padding user 
config in graph editing tool",
+       "graph-ve-dialog-edit-padding-table-right": "Label for right padding 
user config in graph editing tool",
+       "graph-ve-dialog-edit-padding-table-top": "Label for top padding user 
config in graph editing tool",
+       "graph-ve-dialog-edit-padding-table-unit": "Label for padding measuring 
unit in graph editing tool",
        "graph-ve-dialog-edit-page-data": "Label for the graph dialog data 
entry page",
        "graph-ve-dialog-edit-page-general": "Label for the general page in the 
graph edit dialog",
        "graph-ve-dialog-edit-page-raw": "Label for the raw data page in the 
graph edit dialog",
diff --git a/modules/ve-graph/ve.ui.MWGraphDialog.js 
b/modules/ve-graph/ve.ui.MWGraphDialog.js
index fd03a52..bb552b0 100644
--- a/modules/ve-graph/ve.ui.MWGraphDialog.js
+++ b/modules/ve-graph/ve.ui.MWGraphDialog.js
@@ -67,7 +67,8 @@
  * @inheritdoc
  */
 ve.ui.MWGraphDialog.prototype.initialize = function () {
-       var graphTypeField, jsonTextField;
+       var graphTypeField, paddingFieldset,
+               jsonTextField;
 
        // Parent method
        ve.ui.MWGraphDialog.super.prototype.initialize.call( this );
@@ -86,7 +87,7 @@
                this.generalPage, this.dataPage, this.rawPage
        ] );
 
-       /* Graph type page */
+       /* General page */
        this.generalPage.getOutlineItem()
                .setIcon( 'parameter' )
                .setLabel( ve.msg( 'graph-ve-dialog-edit-page-general' ) );
@@ -112,8 +113,43 @@
                label: ve.msg( 'graph-ve-dialog-edit-field-graph-type' )
        } );
 
+       this.paddingTable = new OO.ui.TableWidget( [ ve.msg( 
'graph-ve-dialog-edit-padding-table-unit' ) ], {
+               items: ( function ( labels ) {
+                               var rows = [],
+                                       row, i;
+
+                               for ( i = 0; i < labels.length; i++ ) {
+                                       row = new OO.ui.RowWidget( {
+                                               label: labels[i],
+                                               deletable: false
+                                       } );
+
+                                       row.addItems( [
+                                               new OO.ui.TextInputWidget()
+                                       ] );
+
+                                       rows.push( row );
+                               }
+
+                               return rows;
+                       }( [
+                               ve.msg( 
'graph-ve-dialog-edit-padding-table-top' ),
+                               ve.msg( 
'graph-ve-dialog-edit-padding-table-right' ),
+                               ve.msg( 
'graph-ve-dialog-edit-padding-table-bottom' ),
+                               ve.msg( 
'graph-ve-dialog-edit-padding-table-left' )
+                       ] ) ),
+               disableInsertion: true
+       } );
+
+       paddingFieldset = new OO.ui.FieldsetLayout( {
+               label: ve.msg( 'graph-ve-dialog-edit-padding-fieldset' )
+       } );
+
+       paddingFieldset.addItems( [ this.paddingTable ] );
+
        this.generalPage.$element
-               .append( graphTypeField.$element );
+               .append( graphTypeField.$element )
+               .append( paddingFieldset.$element );
 
        /* Data page */
        this.dataPage.getOutlineItem()
diff --git a/modules/ve-graph/widgets/TableWidget.js 
b/modules/ve-graph/widgets/TableWidget.js
index 1cf3a4f..719b84e 100644
--- a/modules/ve-graph/widgets/TableWidget.js
+++ b/modules/ve-graph/widgets/TableWidget.js
@@ -11,6 +11,7 @@
  * @param {Object} [config] Configuration options
  * @cfg {OO.ui.RowWidget[]} [items] Rows to add
  * @cfg {boolean} [hideRowLabels] Whether or not to hide row labels. Defaults 
to false.
+ * @cfg {boolean} [disableInsertion] Whether or not to disable row insertion. 
Defaults to false.
  */
 
 OO.ui.TableWidget = function OoUiTableWidget ( fields, config ) {
@@ -31,6 +32,7 @@
        this.fields = fields;
        this.listeningToInsertionRowChanges = true;
        this.hideRowLabels = config.hideRowLabels || false;
+       this.disableInsertion = config.disableInsertion || false;
 
        // Set up group element
        groupElement = $('<div/>', {
@@ -44,11 +46,13 @@
                label: null
        } );
 
-       this.insertionRow = new OO.ui.RowWidget( {
-               classes: 'oo-ui-rowWidget-insertionRow',
-               deletable: false,
-               label: null
-       } );
+       if ( !this.disableInsertion ) {
+               this.insertionRow = new OO.ui.RowWidget( {
+                       classes: 'oo-ui-rowWidget-insertionRow',
+                       deletable: false,
+                       label: null
+               } );
+       }
 
        for( i = 0; i < fields.length; i++ ) {
                headerRowItems.push( new OO.ui.TextInputWidget( {
@@ -57,13 +61,17 @@
                        disabled: true
                } ) );
 
-               insertionRowItems.push( new OO.ui.TextInputWidget( {
-                       data: fields[i]
-               } ) );
+               if ( !this.disableInsertion ) {
+                       insertionRowItems.push( new OO.ui.TextInputWidget( {
+                               data: fields[i]
+                       } ) );
+               }
        }
 
        this.headerRow.addItems( headerRowItems );
-       this.insertionRow.addItems( insertionRowItems );
+       if ( !this.disableInsertion ) {
+               this.insertionRow.addItems( insertionRowItems );
+       }
 
        // Events
        this.aggregate( {
@@ -76,17 +84,23 @@
                rowDelete: 'onRowDelete'
        } );
 
-       this.insertionRow.connect( this, {
-               change: 'onInsertionRowChange'
-       } );
+       if ( !this.disableInsertion ) {
+               this.insertionRow.connect( this, {
+                       change: 'onInsertionRowChange'
+               } );
+       }
 
        // Initialization
        this.$element.addClass( 'oo-ui-tableWidget' );
 
        this.$element
                .append( this.headerRow.$element )
-               .append( groupElement )
-               .append( this.insertionRow.$element );
+               .append( groupElement );
+
+       if ( !this.disableInsertion ) {
+               this.$element
+                       .append( this.insertionRow.$element );
+       }
 
        if ( Array.isArray( config.items ) ) {
                this.addItems( config.items );

-- 
To view, visit https://gerrit.wikimedia.org/r/228984
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9007883e847c13edaced1c2beb62515def091cc3
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Graph
Gerrit-Branch: master
Gerrit-Owner: Ferdbold <bolducfrede...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to