'type',
'min',
'max',
- 'pattern',
- 'title',
'step',
- 'list',
+ 'title',
'maxlength',
'tabindex',
'disabled',
'required',
'autofocus',
- 'multiple',
'readonly',
'autocomplete',
+ // Only used in HTML mode:
+ 'pattern',
+ 'list',
+ 'multiple',
];
$attribs += $this->getAttributes( $allowedParams );
# @todo Enforce pattern, step, required, readonly on the server side as
# well
$allowedParams = [
+ 'type',
+ 'min',
+ 'max',
+ 'step',
+ 'title',
+ 'maxlength',
+ 'tabindex',
+ 'disabled',
+ 'required',
'autofocus',
+ 'readonly',
+ 'autocomplete',
+ // Only used in OOUI mode:
'autosize',
- 'disabled',
'flags',
'indicator',
- 'maxlength',
- 'readonly',
- 'required',
- 'tabindex',
- 'type',
- 'autocomplete',
];
$attribs += OOUI\Element::configFromHtmlAttributes(
true
);
$this->addOption( 'populate-only', 'Do not update change_tag_def table' );
+ $this->addOption( 'set-user-tags-only', 'Only update ctd_user_defined from valid_tag table' );
}
public function execute() {
__METHOD__
)
) {
+ if ( $this->hasOption( 'set-user-tags-only' ) ) {
+ $this->setUserDefinedTags();
+ return true;
+ }
if ( !$this->hasOption( 'populate-only' ) ) {
$this->updateCountTag();
}
$this->backpopulateChangeTagId();
+ $this->setUserDefinedTags();
} else {
$this->updateCountTagId();
}
return true;
}
+ private function setUserDefinedTags() {
+ $dbr = $this->lbFactory->getMainLB()->getConnection( DB_REPLICA );
+
+ $userTags = $dbr->selectFieldValues(
+ 'valid_tag',
+ 'vt_tag',
+ [],
+ __METHOD__
+ );
+
+ if ( empty( $userTags ) ) {
+ $this->output( "No user defined tags to set, moving on...\n" );
+ return;
+ }
+
+ if ( $this->hasOption( 'dry-run' ) ) {
+ $this->output(
+ 'These tags will have ctd_user_defined=1 : ' . implode( ', ', $userTags ) . "\n"
+ );
+ return;
+ }
+
+ $dbw = $this->lbFactory->getMainLB()->getConnection( DB_MASTER );
+
+ $dbw->update(
+ 'change_tag_def',
+ [ 'ctd_user_defined' => 1 ],
+ [ 'ctd_name' => $userTags ],
+ __METHOD__
+ );
+ $this->lbFactory->waitForReplication();
+ $this->output( "Finished setting user defined tags in change_tag_def table\n" );
+ }
+
private function updateCountTagId() {
$dbr = $this->lbFactory->getMainLB()->getConnection( DB_REPLICA );