-
-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[5.2] remove trashed status from new article page #45065
base: 5.2-dev
Are you sure you want to change the base?
[5.2] remove trashed status from new article page #45065
Conversation
Can you still change an article to be trashed? |
hi, |
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. |
Yes you're right thanks for highlighting this, I'll see it again |
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
Issue #44962 was about new/unsaved articles. Now in saved articles is no This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/45065. |
Yes I'll handle this now |
@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. |
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) |
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 For this PR, below are how I would work on:
|
@reem-atalah Can you change the title (without the issue-number) because the title is used in the changelog. |
@joomdonation Thanks a lot for directing me, I'll consider it. Appreciated |
@joomdonation @brianteeman @fgsw I updated the PR, I hope it's now as expected, and be able to be merged |
* | ||
* @return ListField For chaining. | ||
* | ||
* @since 3.7.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be the current release. But we have some magic here so you dont have to keep changing the value if the merge is delayed etc
* @since 3.7.0 | |
* @since __DEPLOY_VERSION__ |
@@ -231,6 +231,27 @@ public function addOption($text, $attributes = []) | |||
return $this; | |||
} | |||
|
|||
/** | |||
* Method to remove the trashed option from the list field. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Method to remove the trashed option from the list field. | |
* Method to remove the trashed option from new items in the list field. |
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 maintainers - should this be added to all other new forms (both site and admin) This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/45065. |
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 This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/45065. |
RTC This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/45065. |
@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. |
Pull Request for Issue #44962.
Summary of Changes
Remove the "Trashed" option from the "Status" drop-down list in the New article form.
Testing Instructions
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
Actual result BEFORE applying this Pull Request
The trashed option appears in the status on the new article page

Expected result AFTER applying this Pull Request
The trashed option doesn't appear in the status on the new article page

Link to documentations
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