If the choosen title cannot be converted to any of the available
models, show an error page instead of an empty and confusing dropdown
field asking for the new content model.
Change-Id: Idc7372a8870f98aa8148592385f3a837f16886f0
],
];
if ( $this->title ) {
],
];
if ( $this->title ) {
+ $options = $this->getOptionsForTitle( $this->title );
+ if ( empty( $options ) ) {
+ throw new ErrorPageError(
+ 'changecontentmodel-emptymodels-title',
+ 'changecontentmodel-emptymodels-text',
+ $this->title->getPrefixedText()
+ );
+ }
$fields['pagetitle']['readonly'] = true;
$fields += [
'model' => [
'type' => 'select',
'name' => 'model',
$fields['pagetitle']['readonly'] = true;
$fields += [
'model' => [
'type' => 'select',
'name' => 'model',
- 'options' => $this->getOptionsForTitle( $this->title ),
'label-message' => 'changecontentmodel-model-label'
],
'reason' => [
'label-message' => 'changecontentmodel-model-label'
],
'reason' => [
"changecontentmodel-success-text": "The content type of [[:$1]] has been changed.",
"changecontentmodel-cannot-convert": "The content on [[:$1]] cannot be converted to a type of $2.",
"changecontentmodel-nodirectediting": "The $1 content model does not support direct editing",
"changecontentmodel-success-text": "The content type of [[:$1]] has been changed.",
"changecontentmodel-cannot-convert": "The content on [[:$1]] cannot be converted to a type of $2.",
"changecontentmodel-nodirectediting": "The $1 content model does not support direct editing",
+ "changecontentmodel-emptymodels-title": "No content models available",
+ "changecontentmodel-emptymodels-text": "The content on [[:$1]] cannot be converted to any type.",
"log-name-contentmodel": "Content model change log",
"log-description-contentmodel": "Events related to the content models of a page",
"logentry-contentmodel-new": "$1 {{GENDER:$2|created}} the page $3 using a non-default content model \"$5\"",
"log-name-contentmodel": "Content model change log",
"log-description-contentmodel": "Events related to the content models of a page",
"logentry-contentmodel-new": "$1 {{GENDER:$2|created}} the page $3 using a non-default content model \"$5\"",
"changecontentmodel-success-text": "Message telling user that their change has been successfully done.\n* $1 - Target page title",
"changecontentmodel-cannot-convert": "Error message shown if the content model cannot be changed to the specified type. $1 is the page title, $2 is the localized content model name.",
"changecontentmodel-nodirectediting": "Error message shown if the content model does not allow for direct editing. $1 is the localized name of the content model.",
"changecontentmodel-success-text": "Message telling user that their change has been successfully done.\n* $1 - Target page title",
"changecontentmodel-cannot-convert": "Error message shown if the content model cannot be changed to the specified type. $1 is the page title, $2 is the localized content model name.",
"changecontentmodel-nodirectediting": "Error message shown if the content model does not allow for direct editing. $1 is the localized name of the content model.",
+ "changecontentmodel-emptymodels-title": "Title of the error page shown if the content model cannot be changed to any of the available types.",
+ "changecontentmodel-emptymodels-text": "Text of the error page shown if the content model cannot be changed to any of the available types. $1 is the page title.",
"log-name-contentmodel": "{{doc-logpage}}\n\nTitle of [[Special:Log/contentmodel]].",
"log-description-contentmodel": "Text in [[Special:Log/contentmodel]].",
"logentry-contentmodel-new": "{{Logentry}}\n$4 is not used.\n$5 is the new content model.",
"log-name-contentmodel": "{{doc-logpage}}\n\nTitle of [[Special:Log/contentmodel]].",
"log-description-contentmodel": "Text in [[Special:Log/contentmodel]].",
"logentry-contentmodel-new": "{{Logentry}}\n$4 is not used.\n$5 is the new content model.",