User tests: Successful: 2 brianteeman, joomdonation Unsuccessful: 0
Pull Request for Issue #44962.
Remove the "Trashed" option from the "Status" drop-down list in the New article form.
Log in to Joomla! administrator
Toogle Menu -> Content -> Articles
Click on the "New" button
Click on the "Status" Drop down list
You will not see "Trashed" option
The trashed option appears in the status on the new article page
The trashed option doesn't appear in the status on the new article page
Please select:
Documentation link for docs.joomla.org:
No documentation changes for docs.joomla.org needed
Pull Request link for manual.joomla.org:
No documentation changes for manual.joomla.org needed
Status | New | ⇒ | Pending |
Category | ⇒ | Administration com_content |
Title |
|
hi,
the problem with this would be when we actually trash an article, the status would be shown as published (the default) and there would be no option to change the status of the article from the screen of the article. same as @brianteeman asked.
I have tested this item 🔴 unsuccessfully on 69c322d
hi, the problem with this would be when we actually trash an article, the status would be shown as published (the default). same as @brianteeman asked.
Yes you're right thanks for highlighting this, I'll see it again
I have tested this item 🔴 unsuccessfully on 69c322d
This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/45065.
Can you give me more information
@reem-atalah i marked it as unsuccessful as the issue you are fixing is not to offer trashed as an option when creating a NEW article but what you have done is to remove the ability to mark ANY article as trashed.
I have tested this item 🔴 unsuccessfully on 69c322d
With | Without |
---|---|
![]() |
![]() |
Issue #44962 was about new/unsaved articles. Now in saved articles is no Trashed
possible.
Yes I'll handle this now
Appreciated your testing and feedback
Labels |
Added:
PR-5.2-dev
|
@brianteeman @fgsw Hi, I have edited the code and tested it to ensure that all article pages except the new article page have the "Trashed" option.
I appreciate your testing again, thanks in advance.
This is looking more promising.
We do not add scripts inline like this. You should make it a standalone script and then it can also be used in all similar forms not just the admin content form.
I am not the best person to guide you on this but if you read https://manual.joomla.org/docs/general-concepts/javascript/adding-javascript/ it should point you in the right direction
Ok I'll see it, thanks for directing me
I can see that the scripts are set in one place which is Joomla-cms/media/com_content/js (in the case of the articles)
But the Media folder is not part of the Joomla-cms repo, it's a library, I have searched in the composer.json, and found "Joomla/MediaWiki", when I opened this repo I didn't find the Media folders, as seen in the Joomla-cms, so it's not the correct place. It's also not mentioned in the link you gave me before. Any clue to find the right place to update in the Media folder to add my js file?
You can see source code of our JS in media_source folder. However, what you are doing here in this PR is not the right approach.
For adjusting a form, we should modify code of getForm
method to make any adjustment. That would require understand our Form API
For this PR, below are how I would work on:
ListField
class to allow removing an option base on the value. The method should be added after addOption
methodgetForm
method of ArticleModel
which I mentioned earlier, call $form->getField('state')
to get the state field and then call the removeOption method which is added in earlier step to remove the option (in case $id = 0, for new article).@reem-atalah Can you change the title (without the issue-number) because the title is used in the changelog.
Title |
|
@joomdonation Thanks a lot for directing me, I'll consider it. Appreciated
Category | Administration com_content | ⇒ | Administration com_content Libraries |
@joomdonation @brianteeman @fgsw I updated the PR, I hope it's now as expected, and be able to be merged
I can see that SpacerField, ListField, etc. (if there's another) are inherited from FormField, and I think this is the centralized place. Now it works, if there is another case that I can't see please inform me
@reem-atalah Not all FormField has option, so it does not make sense to add that method to FormField class. Please follow instructions below:
/**
* Method to remove an option from list field.
*
* @param string $value The value of the option to remove
*
* @return static For chaining.
*
* @since __DEPLOY_VERSION__
*/
public function removeOption(string $value): static
{
foreach ($this->element->option as $option)
{
if ((string) $option['value'] === $value)
{
$dom = dom_import_simplexml($option);
$dom->parentNode->removeChild($dom);
}
}
return $this;
}
// Remove trashed option from state field for new article form
if ($id == 0)
{
$field = $form->getField('state');
if ($field !== false && $field->type === 'List')
{
$field->removeOption(-2);
}
}
Hope you get the idea. Instead of add method to remove trashed option, the method would allow removing any options with the given value instead. And then in the model, you call $field->removeOption('-2') to remove the trashed option from the field
Ok, I thought this would be needed in all FormField, but yes I got how you want to proceed with the logic. Pretty to have the method more generic with an input, I can think of this after revising the code. Thanks for the clarification.
Updated, I hope now it fits our case
I have tested this item ✅ successfully on e9b313a
does what it says -= thanks
maintainers - should this be added to all other new forms (both site and admin)
Hello @brianteeman thanks for testing, Can I know what's next so my code can be merged?
I have tested this item ✅ successfully on e9b313a
Status | Pending | ⇒ | Ready to Commit |
RTC
@reem-atalah The PR is now RTC. We will just need to wait for maintainer to review and merge it.
@joomdonation Great, thanks for the clarification.
Can you still change an article to be trashed?