Jforrester has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/370864 )

Change subject: [WIP] VisualDiffs: Describe simple template changes
......................................................................

[WIP] VisualDiffs: Describe simple template changes

Change-Id: I9f478d2b63193e41b2545df29569fb7649403f95
---
M modules/ve-mw/dm/nodes/ve.dm.MWTransclusionNode.js
M modules/ve-mw/i18n/en.json
2 files changed, 51 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor 
refs/changes/64/370864/1

diff --git a/modules/ve-mw/dm/nodes/ve.dm.MWTransclusionNode.js 
b/modules/ve-mw/dm/nodes/ve.dm.MWTransclusionNode.js
index 0d757c3..e18920d 100644
--- a/modules/ve-mw/dm/nodes/ve.dm.MWTransclusionNode.js
+++ b/modules/ve-mw/dm/nodes/ve.dm.MWTransclusionNode.js
@@ -210,8 +210,52 @@
        return els;
 };
 
-ve.dm.MWTransclusionNode.static.describeChanges = function () {
-       // TODO: Provide a more detailed description of template changes
+ve.dm.MWTransclusionNode.static.describeChange = function ( key, change ) {
+       var field, oldFields, newFields, oldValue, newValue, introducedFields,
+               messages = [];
+
+       if (
+               key === 'mw' &&
+               // Skip multi-part transclusions
+               change.from.parts.length === 1 &&
+               change.to.parts.length === 1
+       ) {
+               oldFields = change.from.parts[ 0 ].params.getKeys();
+               newFields = change.to.parts[ 0 ].params.getKeys();
+
+               for ( field in oldFields ) {
+                       if ( !oldFields.hasOwnProperty( field ) ) {
+                               continue;
+                       }
+
+                       if ( newFields.indexOf( field ) === -1 ) {
+                               messages.push( ve.msg( 
'visualeditor-changedesc-mwtransclusion-removedfield', field ) );
+                       } else {
+                               oldValue = change.from.parts[ 0 ].params[ field 
].wt;
+                               newValue = change.to.parts[ 0 ].params[ field 
].wt;
+
+                               if ( oldValue !== newValue ) {
+                                       messages.push( ve.msg( 
'visualeditor-changedesc-mwtransclusion-changedfield', field, oldValue, 
newValue ) );
+                               }
+                       }
+               }
+
+               introducedFields = newFields.filter( function ( item ) { return 
oldFields.indexOf( item ) === -1; } );
+
+               for ( field in introducedFields ) {
+                       if ( !introducedFields.hasOwnProperty( field ) ) {
+                               continue;
+                       }
+
+                       newValue = change.to.parts[ 0 ].params[ field ].wt;
+
+                       messages.push( ve.msg( 
'visualeditor-changedesc-mwtransclusion-newfield', field, newValue ) );
+               }
+
+               return messages;
+       }
+
+       // Fallback if we don't know anything more
        return [ ve.msg( 'visualeditor-changedesc-mwtransclusion' ) ];
 };
 
diff --git a/modules/ve-mw/i18n/en.json b/modules/ve-mw/i18n/en.json
index f6ae9f4..e777314 100644
--- a/modules/ve-mw/i18n/en.json
+++ b/modules/ve-mw/i18n/en.json
@@ -81,7 +81,11 @@
        "visualeditor-ca-ve-edit-section": "VisualEditor",
        "visualeditor-categories-tool": "Categories",
        "visualeditor-changedesc-mwlanguagevariant": "Language variant markup 
changed",
-       "visualeditor-changedesc-mwtransclusion": "Template parameters changed",
+       "visualeditor-changedesc-mwtransclusion": "Template changed",
+       "visualeditor-changedesc-mwtransclusion-changedfield": "Field \"$1\" 
changed value from \"$2\" to \"$3\".",
+       "visualeditor-changedesc-mwtransclusion-newfield": "Field \"$1\" added 
with value \"$2\".",
+       "visualeditor-changedesc-mwtransclusion-removedfield": "Field \"$1\" 
removed.",
+       "visualeditor-changedesc-mwtransclusion-reordered": "Template syntax 
re-ordered.",
        "visualeditor-desc": "Visual editor for MediaWiki",
        "visualeditor-descriptionpagelink": "Project:VisualEditor",
        "visualeditor-dialog-media-alttext-section": "Alternative text",

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9f478d2b63193e41b2545df29569fb7649403f95
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Jforrester <jforres...@wikimedia.org>

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

Reply via email to