Henning Snater has uploaded a new change for review.
https://gerrit.wikimedia.org/r/54680
Change subject: (bug 45673) Removing toolbar node from claimlistview template
......................................................................
(bug 45673) Removing toolbar node from claimlistview template
The toolbar node is generated programmatically by the "add" toolbar widget now.
This change set also gives the claimlist(view) template a proper name.
Change-Id: I7a365522cd4f5f5bc7888dd7dac5c65f7620b0bd
---
M lib/resources/jquery.wikibase/jquery.wikibase.addtoolbar.js
M lib/resources/jquery.wikibase/jquery.wikibase.claimlistview.js
M lib/resources/templates.php
M lib/resources/wikibase.css
M repo/includes/EntityView.php
M selenium/lib/modules/entity_selector_module.rb
M selenium/lib/modules/reference_module.rb
M selenium/lib/modules/statement_module.rb
8 files changed, 21 insertions(+), 24 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/80/54680/1
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.addtoolbar.js
b/lib/resources/jquery.wikibase/jquery.wikibase.addtoolbar.js
index e8592a8..9fc3894 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.addtoolbar.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.addtoolbar.js
@@ -16,8 +16,9 @@
* The widget the toolbar shall interact with has to have implemented
certain methods listed in
* the _requiredMethods attribute.
*
- * @option toolbarParentSelector {string} (REQUIRED) jQuery selector to
find the node the actual
- * toolbar buttons shall be appended to.
+ * @option toolbarParentSelector {string} jQuery selector to find the
node the actual toolbar
+ * buttons shall be appended to. If omitted, the DOM structure
required for the toolbar
+ * will be created and appended to the node the toolbar is
initialized on.
*
* @option interactionWidgetName {string} Name of the widget the
toolbar shall interact with.
* (That widget needs to be initialized on the same DOM node
this toolbar is initialized
@@ -91,11 +92,9 @@
_create: function() {
var self = this;
- if ( !this.options.toolbarParentSelector ) {
- throw new Error( 'jquery.wikibase.addtoolbar:
Missing toolbar parent selector' );
- }
-
- this.$toolbarParent = this.element.find(
this.options.toolbarParentSelector );
+ this.$toolbarParent = (
this.options.toolbarParentSelector )
+ ? this.element.find(
this.options.toolbarParentSelector )
+ : mw.template( 'wb-toolbar', '' ).appendTo(
this.element );
this.toolbar = new wb.ui.Toolbar();
this.toolbar.innerGroup = new wb.ui.Toolbar.Group();
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.claimlistview.js
b/lib/resources/jquery.wikibase/jquery.wikibase.claimlistview.js
index 74c8eab..69e5a1f 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.claimlistview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.claimlistview.js
@@ -43,7 +43,7 @@
* @see jQuery.Widget.options
*/
options: {
- template: 'wb-claims-section',
+ template: 'wb-claimlist',
templateParams: [
'',
''
@@ -460,8 +460,7 @@
prototype: widgetPrototype
},
options: {
- interactionWidgetName: widgetPrototype.widgetName,
- toolbarParentSelector: '.wb-claims-toolbar'
+ interactionWidgetName: widgetPrototype.widgetName
}
} );
diff --git a/lib/resources/templates.php b/lib/resources/templates.php
index e376e07..c123bbe 100644
--- a/lib/resources/templates.php
+++ b/lib/resources/templates.php
@@ -44,14 +44,12 @@
<h2 class="wb-section-heading" dir="auto">$1</h2>
HTML;
- // TODO: rename this to 'wb-claimlist' or 'wb-claims' (in which case
the widget should also be renamed)
- $templates['wb-claims-section'] =
+ $templates['wb-claimlist'] =
<<<HTML
-<div class="wb-claims-section">
+<div class="wb-claimlist">
<div class="wb-claims">
$1 <!-- [0,*] wb-claim-section -->
</div>
- <div class="wb-claims-toolbar">$2</div> <!-- edit section -->
</div>
HTML;
diff --git a/lib/resources/wikibase.css b/lib/resources/wikibase.css
index a5c2cc8..2e2f99b 100644
--- a/lib/resources/wikibase.css
+++ b/lib/resources/wikibase.css
@@ -495,7 +495,10 @@
}
/* General add new claim link */
-div.wb-claims-section div.wb-editsection {
+div.wb-claimlist > span.wb-ui-toolbar {
+ display: block;
+}
+div.wb-claimlist div.wb-editsection {
position: static;
float: right;
}
diff --git a/repo/includes/EntityView.php b/repo/includes/EntityView.php
index f5cd48b..2d0e403 100644
--- a/repo/includes/EntityView.php
+++ b/repo/includes/EntityView.php
@@ -531,10 +531,8 @@
}
- $html = $html . wfTemplate( 'wb-claims-section',
- $claimsHtml,
- $this->getHtmlForEditSection( $entity, $lang, '',
'div', 'add' ) // TODO: add link to SpecialPage
- );
+ // TODO: Add link to SpecialPage that allows adding a new claim.
+ $html = $html . wfTemplate( 'wb-claimlist', $claimsHtml );
wfProfileOut( __METHOD__ );
return $html;
diff --git a/selenium/lib/modules/entity_selector_module.rb
b/selenium/lib/modules/entity_selector_module.rb
index 84376c9..8be78fb 100644
--- a/selenium/lib/modules/entity_selector_module.rb
+++ b/selenium/lib/modules/entity_selector_module.rb
@@ -13,8 +13,8 @@
link(:firstEntitySelectorLink, :xpath => "//ul[contains(@class,
'ui-entityselector-list')]/li/a")
span(:firstEntitySelectorLabel, :xpath => "//ul[contains(@class,
'ui-entityselector-list')]/li/a/span/span[contains(@class,
'ui-entityselector-label')]")
span(:firstEntitySelectorDescription, :xpath => "//ul[contains(@class,
'ui-entityselector-list')]/li/a/span/span[contains(@class,
'ui-entityselector-description')]")
- text_field(:entitySelectorInput, :xpath => "//div[contains(@class,
'wb-claims-section')]//input[contains(@class, 'ui-entityselector-input')]",
:index => 0)
- text_field(:entitySelectorInput2, :xpath => "//div[contains(@class,
'wb-claims-section')]//input[contains(@class, 'ui-entityselector-input')]",
:index => 1)
+ text_field(:entitySelectorInput, :xpath => "//div[contains(@class,
'wb-claimlist')]//input[contains(@class, 'ui-entityselector-input')]", :index
=> 0)
+ text_field(:entitySelectorInput2, :xpath => "//div[contains(@class,
'wb-claimlist')]//input[contains(@class, 'ui-entityselector-input')]", :index
=> 1)
def wait_for_entity_selector_list
wait_until do
diff --git a/selenium/lib/modules/reference_module.rb
b/selenium/lib/modules/reference_module.rb
index f49f141..ce9dccb 100644
--- a/selenium/lib/modules/reference_module.rb
+++ b/selenium/lib/modules/reference_module.rb
@@ -28,8 +28,8 @@
link(:reference1ValueLink2, :xpath => "//div[contains(@class,
'wb-referenceview')][1]/div[contains(@class,
'wb-listview')]/div[contains(@class, 'wb-snakview')][2]/div[contains(@class,
'wb-snak-value-container')]/div[contains(@class, 'wb-snak-value')]/div/div/a")
# TODO: could this lead to problems? for CM & item type properties there is
an additional "a" element around the textbox; this is not the case for string
type properies
#text_area(:referenceValueInput, :xpath => "//div[contains(@class,
'valueview-ineditmode')]/div/a/textarea[contains(@class, 'valueview-input')]")
- text_area(:referenceValueInput, :xpath => "//div[contains(@class,
'wb-claims-section')]//textarea[contains(@class, 'valueview-input')]", :index
=> 0)
- text_area(:referenceValueInput2, :xpath => "//div[contains(@class,
'wb-claims-section')]//textarea[contains(@class, 'valueview-input')]", :index
=> 1)
+ text_area(:referenceValueInput, :xpath => "//div[contains(@class,
'wb-claimlist')]//textarea[contains(@class, 'valueview-input')]", :index => 0)
+ text_area(:referenceValueInput2, :xpath => "//div[contains(@class,
'wb-claimlist')]//textarea[contains(@class, 'valueview-input')]", :index => 1)
link(:saveReference, :xpath => "//div[contains(@class,
'wb-referenceview')]/div[contains(@class,
'wb-snaklistview-heading')]/div/span/span/span[contains(@class,
'wb-ui-toolbar-editgroup-ineditmode')]/span/a[text()='save']")
link(:cancelReference, :xpath => "//div[contains(@class,
'wb-referenceview')]/div[contains(@class,
'wb-snaklistview-heading')]/div/span/span/span[contains(@class,
'wb-ui-toolbar-editgroup-ineditmode')]/span/a[text()='cancel']")
link(:removeReference, :xpath => "//div[contains(@class,
'wb-referenceview')]/div[contains(@class,
'wb-snaklistview-heading')]/div/span/span/span[contains(@class,
'wb-ui-toolbar-editgroup-ineditmode')]/span/a[text()='remove']")
diff --git a/selenium/lib/modules/statement_module.rb
b/selenium/lib/modules/statement_module.rb
index 22752d8..231023f 100644
--- a/selenium/lib/modules/statement_module.rb
+++ b/selenium/lib/modules/statement_module.rb
@@ -11,7 +11,7 @@
include EntitySelectorPage
include ReferencePage
# statements UI elements
- link(:addStatement, :xpath => "//div[contains(@class,
'wb-claims-toolbar')]/div/span/span/a")
+ link(:addStatement, :xpath => "//div[contains(@class,
'wb-claimlist')]/span[contains(@class, 'wb-ui-toolbar')]/div/span/span/a")
link(:addClaimToFirstStatement, :xpath => "//div[contains(@class,
'wb-claim-section')][1]/div[contains(@class,
'wb-claim-add')]/div[contains(@class, 'wb-claim-toolbar')]/div/span/span/a")
link(:editFirstStatement, :xpath => "//div[contains(@class,
'wb-claim-toolbar')]/span/span/span[contains(@class,
'wb-ui-toolbar-editgroup-innoneditmode')]/span/a")
link(:saveStatement, :xpath => "//div[contains(@class,
'wb-claim-toolbar')]/span/span/span[contains(@class,
'wb-ui-toolbar-editgroup-ineditmode')]/span/a[text()='save']")
--
To view, visit https://gerrit.wikimedia.org/r/54680
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I7a365522cd4f5f5bc7888dd7dac5c65f7620b0bd
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Henning Snater <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits