Closed (duplicate)
Project:
Drupal core
Version:
8.0.x-dev
Component:
system.module
Priority:
Normal
Category:
Task
Assigned:
Unassigned
Reporter:
Created:
10 Mar 2013 at 19:32 UTC
Updated:
25 Sep 2015 at 09:29 UTC
Jump to comment: Most recent, Most recent file
Comments
Comment #1
duellj commentedInitial pass at converting system theme tables. This doesn't include theme_status_report, since that table requires column attributes, which aren't supported by table form #types.
Comment #2
duellj commentedSince theme_status_report isn't a form, it doesn't need to be converted to a table #type.
Comment #3
duellj commented#1: 1938930-1-system-tables.patch queued for re-testing.
Comment #4
c4rl commentedIs it applicable to include theme_system_modules_details? Seems like this could be refactored to be a single table as well.UPDATE: I've added theme_system_modules_details to the list.
Comment #4.0
c4rl commentedRemoves theme_status_report
Comment #5
jibranAs per #4
Comment #6
duellj commentedConverted theme_system_modules_details(). Moved most of the logic to _system_modules_build_row(). Also rerolled initial patch to apply to HEAD again.
Comment #8
andypost#6: 1938930-6-system-table.patch queued for re-testing.
Comment #10
andypost@duellj suppose better to convert some of callbacks to use render arrays!
The related issue #2009674: Replace theme() with drupal_render() in system module
Comment #11
andypostFor theme_system_report() should be filed separate issue
Also related #2010982: Replace theme() with drupal_render() in system module for system_status()
Comment #12
andypostFiled #2013258: Simplify render for theme_status_report()
Comment #12.0
andypostAdding theme_system_modules_details
Comment #13
jibran#6: 1938930-6-system-table.patch queued for re-testing.
Comment #15
ramlev commentedIm on it
Comment #16
ramlev commentedComment #17
hydra commentedWorking on this
Comment #18
hydra commentedRerolled the patch
Some notes:
Unfortunately this is not injected to the right place. I remember there was an issue about that, can't find it right now. This problem still belongs in the patch, so the order should be taken care of at some point.
Removed this, thats a nice feature but I don't think that has to do something with the conversion
Comment #19
hydra commentedIgnore first patch.
Comment #21
joelpittetRe-roll of #19
Comment #23
joelpittetFix the @todo for id.
Comment #25
joelpittetanother go.
Comment #27
joelpittetand another, these errors will get beaten down no matter how tricky type=>table is. *Read masochist*
Comment #28.0
(not verified) commentedUpdated issue summary.
Comment #29
joelpittetI believe this is blocked by #1876718: Allow modules to inject columns into tables more easily
field_system_info_alter is trying to inject another column on the modules table and that is at least part of why this conversion is failing.
This patch may pass BUT may cause others... See screenshot. Maybe someone has a work around for the missing header column?
Comment #31
joelpittet29: 1938930-29-type-table-system.patch queued for re-testing.
Comment #32
star-szrtheme_system_date_format_localize_form() was removed in #2127941: Remove two (out of 3) bogus and duplicate date languages UIs.
Comment #33
joelpittet@sun maybe you can point me in the right direction for column injection?
Comment #34
martin107 commentedI just spent time looking at https://drupal.org/node/2151113 ( recently closed )
and will I understand the issues involved I try and merge to efforts into one patch.
Simple steps first ... the patch on this issue no longer applies... so I am about to reroll
Comment #35
martin107 commented1) I have resolved the insertion of extra column in the 'admin/moduiles' page
The problem was with the ModulesListForm.php buildRow function and variable $row['links']
It was being using to compute row['description] and was left in the render array and so appeared twice in the render array
To avoid confusion this $row['links'] was moved close to where it was used and renamed to be just $links
2) have merged in code from the closed duplicate issue - now /modules/uninstall has been converted to #type table
I am expecting this to blow up because the WebTests are expecting a particular type of html which has changed... but when bot come back I will investigate in the morning
Comment #37
joelpittet@martin107 can you do a re-roll then post your changes and interdiff in a separate patch? That way it's easier for others to see what you did at a glance.
I feel like my patch was so close except that column injection bit and passes the tests.
Anyways thank you for giving this a try! I appreciate any help I can get here.
Comment #38
joelpittetHere's the re-roll of #29
Comment #39
joelpittetCan you try to apply your interdiff to #38? And maybe not do the variable renaming if you can help it?
$linkEntrydoesn't really help. Try to do the least amount of changes, it will be more evident where things are failing.Comment #40
martin107 commentedI have the answer as to why so many exceptions
The Tests that fail are all of the form
$edit['uninstall[' . $module . ']'] = TRUE;
$this->drupalPostForm('admin/modules/uninstall', $edit, t('Uninstall'));
that is they require html element to have a specific name, for example the color module
and the failing patch changes the "name" property... so instead of updating many webtests, in this next patch I am
overriding the checkbox attributes :-
This is messy and should not be done in core.. but I am just proving my theory
I welcome advice on a cleaner way forward... lets see what tetsbot says
Sorry about the interdiff issue .. I will revert to the minimum change and try a better name as part of the next patch.
Unfortunately that local data structure /variable I called $linkEntry should not be included in the returned $row ( from the function buildRow )
Comment #42
martin107 commentedThis grep identifies all the places where the tests are tightly coupled to the form structure.
core/modules/comment/lib/Drupal/comment/Tests/CommentFieldsTest.php: $this->drupalPostForm('admin/modules/uninstall', $edit, t('Uninstall'));
core/modules/locale/lib/Drupal/locale/Tests/LocaleConfigTranslationTest.php: $this->drupalPostForm('admin/modules/uninstall', array('uninstall[image]' => "image"), t('Uninstall'));
core/modules/locale/lib/Drupal/locale/Tests/LocaleUpdateTest.php: $this->drupalPostForm('admin/modules/uninstall', $edit, t('Uninstall'));
core/modules/node/lib/Drupal/node/Tests/NodeTypePersistenceTest.php: $this->drupalPostForm('admin/modules/uninstall', $edit, t('Uninstall'));
core/modules/system/lib/Drupal/system/Tests/Module/DependencyTest.php: $this->drupalPostForm('admin/modules/uninstall', $edit, t('Uninstall'));
core/modules/system/lib/Drupal/system/Tests/Module/DependencyTest.php: $this->drupalPostForm('admin/modules/uninstall', $edit, t('Uninstall'));
core/modules/system/lib/Drupal/system/Tests/Module/InstallUninstallTest.php: $this->drupalPostForm('admin/modules/uninstall', $edit, t('Uninstall'));
core/modules/system/lib/Drupal/system/Tests/System/MainContentFallbackTest.php: $this->drupalPostForm('admin/modules/uninstall', $edit, t('Uninstall'));
core/modules/toolbar/lib/Drupal/toolbar/Tests/ToolbarAdminMenuTest.php: $this->drupalPostForm('admin/modules/uninstall', $edit, t('Uninstall'));
I am going to abandon the attribute bodge ... and just update the tests... preferably with a function call that abstract the changes to $edit into one place.
Comment #43
martin107 commentedReturning to comment #38 which provided a reroll of #29
Unfortunately this patch no longer applies, so working from there and just applying minimal bug fixes.
The only file I had to touch was ModulesUninstallForm.php ( so no interdiff )
This works without any of the hackery of the WebTests.
I have a simple fix for the admin/modules layout issues but will apply if this come back green
Comment #44
martin107 commentedSo this patch is the minimal changes that solve the issue on the '/module/install' page, where the table appears shifted to the right as identified in #29
see ModulesListForm.php
the row returned from buildRow() had a stray key which should have remained as a local variable
$row['links'] becomes $rwoLinks
For once I can supply an interdiff.txt :)
Comment #45
joelpittetYay interdiff and green, thanks @martin107
Comment #46
martin107 commentedIn terms of review, this could be better, concatenating string $links and $description is old school. I will fix if community thinks it is worth it.
Comment #47
joelpittetsorry, cross post issue.
Comment #48
joelpittetAwesome work @martin107! This is looking in some cases better and more features than before the patch. See my screenshots for a review of the display and markup that changed. Any questions please ask. This is very very close to RTBC:)
Comment #49
joelpittetCan you use the injected t method? $this->t()?
For the concatenation, if you can remove the drupal_render() calls too I'd say go for it!
Comment #50
joelpittetSee what @sun did for the label stuff here: https://drupal.org/node/1938926#comment-8434777 for reference if that helps. May not be a good idea to duplicate but something to keep in mind. The label was removed from the hidden one and using a new #type=>label to associate it with the checkboxes.
Comment #51
martin107 commentedCompiling a todo list generate from #48 and #49 just so none of the issues slip throughout the cracks
page '/modules/install'
A) Reintroduce id in the link contained in the descriptions pull down
B) Extra class checkbox class inserted to
C) Reintroduce the classes descriptions and expand
page 'modules/uninstall'
D) Bold tags missing from column 'name'
E) label tags missing from column 'name'
F) column description has missing class 'description'
G) column 'name' text has become mangled "Uninstall text Editor Module" has become "Update Text Editor"
H) checkbox value property was '1' now string ( e.g. "editor" )
I will start posting fixes soon
Comment #52
joelpittetYou likely already know but if you want a class on the cell use
['#wrapper_attributes'] => array('class' => array('description'));Comment #53
joelpittetChecking in, @martin107 are you still on these changes in #51 or should we unassign?
Comment #54
martin107 commentedAh became snowed under with other things ... will find time to write a summary of what I know tomorrow
Comment #55
joelpittetGood to see you're still around! People drop in and out so fast sometimes I just wanted to ping and see if someone else can tackle in your absence. Though you're doing a great job so rather see you plow this through:)
Comment #56
martin107 commentedPatch no longer applies ... reroll ( so I can supply interdiff in the next comment )
Comment #57
martin107 commentedThis is a trivial patch ... it replaces $t() with $this->t() see comment #49. and deals with issue A.
The list now looks :-
page '/modules/install'
A) Reintroduce id in the link contained in the descriptions pull down see example "edit-modules-core-color-links-help"B) Extra class checkbox class inserted to wrapping the auto-inserted table column containing the checkbox
C) Reintroduce the classes descriptions and expand
page 'modules/uninstall'
D) Bold tags missing from column 'name'
E) label tags missing from column 'name'
F) column description has missing class 'description'
G) column 'name' text has become mangled "Uninstall text Editor Module" has become "Update Text Editor"
H) checkbox value property was '1' now string ( e.g. "editor" )
Comment #58
martin107 commentedFixed C and F
list now reads
page '/modules/install'
A) Reintroduce id in the link contained in the descriptions pull down see example "edit-modules-core-color-links-help"B) Extra class checkbox class inserted to wrapping the auto-inserted table column containing the checkbox
C) Reintroduce the classes descriptions and expandpage 'modules/uninstall'
D) Strong tags missing from column 'name'
E) label tags missing from column 'name'
F) column description has missing class 'description'G) column 'name' text has become mangled "Uninstall text Editor Module" has become "Update Text Editor"
H) checkbox value property was '1' now string ( e.g. "editor" )
Comment #59
martin107 commentedHere is a questionable fix for issue B .. or at least an explanation for where the bug is inserted.
in ModuleListForm.php here is the interdiff
$row['enable'] += array(
- '#wrapper_attributes' => array(
- 'class' => array('checkbox'),
- ),
'#id' => $id,
'#parents' => array('modules', $module->info['package'], $module->name, 'enable'),
);
[ Note the overriding of the checkboxes place in the render array using #parents.]
So the #wrapper_attributes exposes a bug deeper within drupal8...
The #wrapper_attributes is erroneously causing the class 'checkbox' to be added to its direct parent ( a div ) and its parents parent
( ie the 'td' element ) only the td element is required....
So the patch removes both the wanted and the stray class, making a one-to-one comparison between "patch" and "before patch" impossible.
The effect of making td.checkbox is to apply text-align:center; to an element without text..
This change removes a non-functional class attribute which I suggest is acceptable.
Comment #60
martin107 commentedReroll simple changes due to "detail" changes from the following issue.
https://drupal.org/node/1892182 "#type details: Rename #collapsed to #open"
Comment #61
martin107 commentedfixed issues E,D,G
replaced another instance of $t() with $this->t() for better dependency injection.
removed some non-functional lines of code such as "<<< HEAD" which came in from a flawed reroll ( #60 )
and #tableselect => TRUE in the wrong place.
Comment #64
joelpittetRegarding the label, check out the recently committed patch for simpletest #type table. @sun made it more accessible with #type=>label instead of those hidden labels. #1938926: Convert simpletest theme tables to table #type
Comment #65
martin107 commentedJoelpittet's suggestion results in much simpler PHP code and much more standard HTML.
A consequence of this is that it abandons many of the tasks in #58 for example :-
(E) Replicating the existing non standard double implementation of "label" elements
In this light I have also removed the "strong" tags in column 2 as they make no sense.
One striking difference between 'before patch' and 'post patch' [ /admin/modules/uninstall ] is the loss of the "Uninstall" title from the checkbox column.
Using the new solution. and inspecting form.inc ( form_process_table() ) I see no way of restoring this!
Visually post patch looks better to me... but I will defer to consensus from the community on this point.
Manually installing and uninstalling 'book' now works so I expect the testbot to come back green.
Comment #66
martin107 commentedComment #67
joelpittetAfter testbot comes back green I call dibs;)
Comment #68
martin107 commented@joelpittet Ok thank for all the prompt advice.
Comment #69
martin107 commentedRunning admin/modules/uninstall through the html validator at validator.w3.org results in the following errors
<th specifier="name" \>and
<th specifier="description"\>attribute specifier not allowed at this point!!!!
Can I suggest trivial removal of the lines from ModulesUninstallForm.php
Comment #70
joelpittet@martin107 of course you can remove those, they weren't in there before, the table wasn't sortable before. We can try to keep the improvements/features to a minimum unless they make the patch easier too.
Comment #71
martin107 commented#69 + #70 enough said
Comment #72
joelpittetI'm a bit tired but tried to give you a few things still to tackle. Mostly coding standards, which you can compare against here: https://drupal.org/coding-standards
We don't camelcase these variable names. I think I know why you changed the name but do you need to? Could you explain. If you do need to just change it to $row_links.
once too many indents, missing ending commas on array last item. spaces around the concatenation period, only one space after the =>, and the ending parenthesis can go on the next line down.
Just coding standards stuff.
Just add
'#wrapper_attributes' => array('class' => array('checkbox')),And do we need to remove the #title?
Just more coding standards with the parenthesis indentation and the array in the t() should be inline without the comma.
This #empty string got dropped by accident.
Comment #73
martin107 commented1.
Could you explain ? .. my first explanation was in #35
explanation:
This odd change is the fix for #29 the strange indentation issue.
It should be reinterpreted as - Why is an extra table column definitions being inserted into the render array.
Looking at buildRow()
$row[‘links’] its only valid use is to define $links, which is used to assemble $row[‘description’].
Leaving it as a key in the output variable $row is what is bleeding this spurious data into the
final render array.
end of explanation
Anyway $rowLinks has become $row_links
2. Fixed
3.
Am I interpreting you correctly... Are you saying there is a better way to add the checkbox class
and replace with
That makes no sense to me as it would destroy the indentation... the first "th" element needs a checkbox class before it will behave
and adding #title here will add a fake install title to every row! not the column itself.
Maybe the bigger issue discovered here is that #wrapper_attributes here will not add the appropriate class to the "th" element.
Or maybe did you not see the other change I made to include a #wrapper_attribute at your suggestion?
5.
has not been dropped. Its function is performed by the #empty below
has it just been mangled into a form you object to ?
Comment #74
martin107 commentedJust rereading #72 point 3
And do we need to remove the #title?
I now see that now as a nudge to sort out the column title
So from #65
One striking difference between 'before patch' and 'post patch' [ /admin/modules/uninstall ] is the loss of the "Uninstall" title from the checkbox column.
Using the new solution. and inspecting form.inc ( form_process_table() ) I see no way of restoring this!
I still have no idea how best to proceed.
Comment #75
joelpittet1) don't worry about it, I understand enough and thanks for fixing naming.
3) Hold off on the #title add back in, i'm actually not sure what it's used for yet. But the wrapper_attributes for checkbox class on the td makes the column center it's contents. The checkbox class is for the TD, the TH has it already and it's empty so doesn't matter. @see screenshot
5) The wording changed that's why it looks dropped, and there is no disabling of modules in D8. But thanks for pointing where it went to. I just saw it removed, and searched the diff for part of the string and came up #empty (pun intended);)
Comment #76
martin107 commentedwrapper's delight!
Comment #77
joelpittetLooks like this needs a re-roll already. Thanks for the wrapper @martin107:)
http://www.youtube.com/watch?v=tUqvPJ3cbUQ
Comment #78
martin107 commentedComment #79
sutharsan commentedRemoving 'Needs reroll' tag.
Comment #80
joelpittetThis can be one line or the last one needs a command a linebreak after -help'
This should have a comma at the end.
I noticed that awesome check all feature you added to the uninstall in #44 is gone:(
Maybe this removed that feature?
Comment #81
martin107 commented1. Perhaps I am confused, as I only see this as a repeat of the question, asked, answered and acknowledged in #72.5, #73.5 and #75.5 respectively.
2. Fixed.
3. Lines 185 to 188 don't look like that - nor can I find anything like it in the files. It is not clear what you mean.
4. Toggling '#js_select' certainly has the effect you describe. Looking at the interdiff it was not added in #44.
It comes from a period before I started looking at this issue. It was taken, by me out as part of the process of simplifying the table to identify what was going
on with the crazy indentation problems. It no longer causes indentation problems I suspect because of #76.
A - I question the usefulness of such as destructive checkbox? ... I read its purpose as delete everything that does not depend on other modules in the system and cannot see when it would be a benefit to select it.
B - Is that a feature request and out of scope of this issue?
Comment #83
martin107 commentedfailing test :-
A) Does not appear to be related to the page altered
B) It only a cosmetic change.
Broken HEAD or random tesbot fail... retesting
Comment #84
martin107 commented81: 1938930-80-type-table-system.patch queued for re-testing.
Comment #86
joelpittetRegarding #81.1: My screenshot is after uninstalling all modules. That message does not exist with your patch. Have a go at it and see for yourself. That screenshot will show an empty screen with a title and no table or message.
#81.2 thank you:)
#81.3:
Maybe I need more context lines to see where.
#81.4: it's a nice feature, it is out of scope of this issue but you are removing the words "uninstall" in that header anyways. I can't see a downside to this feature at all, but maybe you can and it's only one less line of code to have it work. Though if you don't feel comfortable putting that in I can open up a follow-up for it and we can add the column header text back in?
Comment #87
joelpittet81: 1938930-80-type-table-system.patch queued for re-testing.
Comment #88
martin107 commented#81.3 fixed.
So uninstalling all modules.. When I uninstall with all modules bad things happen..
Firstly php bums out after exceeding 30s and it destroys the site... So I cannot
repeat what you report ...
However hacking the code and inserting the following unset code in an attempt to repeat what you report was unsettling
A) I have removed the reference to the now defunct 'disable' in the empty text.
B) The fix was to move down the logic associated the comment.
// Only build the rest of the form if there are any modules available to
// uninstall;
Anyway please repeat whatever you were doing and confirm the #empty function now functions
Comment #89
akalata commentedComment #90
akalata commentedReasons for re-roll:
PSR-4 file locations #2083547: PSR-4: Putting it all together
module->getName #2210197: Remove public access to Extension::$type, ::$name, ::$filename
format_plural replaced by translation system #2149195: Replace format_plural with \Drupal::translation()->formatPlural()
Comment #92
akalata commentedUpdating patch to remove forgotten "profile" reference; Will still need work with getting tests to pass.
Comment #93
akalata commentedComment #96
martin107 commentedJust providing an interdiff, as I follow along. Sometimes just seeing it is better than a description.
Comment #97
tim.plunkettComment #98
amitgoyal commentedReroll of #92.
Comment #100
joelpittetThis a quick drive by but the $name variable shouldn't be removed as it's used further down. There is likely a bunch of things that need checking but the least we need to change the better for re-rolls and reviewers.
Comment #101
amitgoyal commented@joelpittet - I believe $name variable has been removed in #92.
I think $name variable can be removed from this line as it's been set in line #128 before getting used in line #130.
$name = isset($modules[$dependent]->info['name']) ? $modules[$dependent]->info['name'] : $dependent;Comment #102
joelpittetThis is where I saw it getting used again further down in the same loop but nested one more loop deep.
Comment #103
chandeepkhosa commentedassigning to self
Comment #104
chandeepkhosa commentedComment #105
akalata commentedI really botched my reroll in #90, so it's no wonder the tests blew up so badly. :)
@joelpittet, removing the earlier $name is fine, in the loop you've identified, $name is defined two lines before it's added to the $required_modules array.
Comment #106
akalata commentedComment #107
joelpittetThank you it's been a while and you're likely right. We can see how the testbot takes this and if it passes I'll do a manual test.
One thing I saw that was a bit puzzling in dreditor:
Maybe I'm missing something or will this always be false?
$rowdoesn't seem to be defined before those two lines in buildRow() so I'd have to assume that.Comment #108
akalata commentedWas reviewing the full issue to see if I missed anything else in my reroll. Noticed that the removal of theme_system_modules_details() in #6 got left behind at some point, so I've re-removed that, and fixed a few more instances of the $module->getName() update in ModulesListForm.
I've also noticed HTML tags showing up on admin/modules, so we know buildRow() needs another pass at any rate.
Comment #111
akalata commentedSet $row['#requires'] and $row['#required_by'] to empty arrays based on @joelpittet's feedback.
Pass $description through t() to render rather than print HTML within the description -- I'm not sure this is the right thing to do, but it is what's currently being done in core; for instance
$row['#requires'][$dependency] = $this->t('@module (<span class="admin-missing">incompatible with</span> version @version)', array(Comment #112
akalata commentedComment #114
akalata commentedNot sure what I did to generate the last patch, manually checked this one to be sure. Compared to 108, same notes as 111.
Comment #115
mgiffordComment #118
akalata commentedPosting reroll.
Comment #119
mgiffordThis patch removes the semantic relationship between the checkbox & label. Now this could be resolved (as we discussed earlier today #1938920: Convert node_search_admin theme tables to table #type) but ultimately the checkboxes at a minimum need a relationship to a label (old school html or ARIA).
It looks fine visually, but looking at /admin/modules it is easy to see the changes to the semantics.
Sample diff is:
Comment #120
mgiffordComment #121
akalata commentedHere's an update adding the
<label for="">syntax.Comment #122
mgiffordBetter for sure. There are some inconsistencies in the second TD too. I'm not worried about the classes, maybe they matter, but it looks fine to me.
<span class="summary"></span>got introduced.<div class="requirements"><div class="admin-requirements">aria-describedby="edit-modules-web-services-table-basic-auth-description--description"but what is it pointing to? I couldn't find an id that it referenced.Comment #123
akalata commentedMinor changes included:
<span class="summary">, which was coming from how $description being added to the $row.I think the
<div class="requirements"><div class="admin-requirements">isn't redundant, because "requirements" can wrap multiple "admin-requirements".The
aria-describedbyis being added by doBuildForm() in FormBuilder. Agree it doesn't make sense, not yet sure how to fix.Comment #124
joelpittetCoding standards needs space between if and parenthesis.
if(toif (Could probably short tag this too.
getClass is a strange call for an $id.
Remove space from starting of string.
Indent needs to be unindented.
Comment #125
akalata commentedChanges based on @joelpittet's feedback.
Comment #127
akalata commentedConverting getClass to cleanCssIdentifier resulted in mixed-case ids, where testing assumes lowercase. Wrapped the cleanCssIdentifier in Unicode::strtolower, not sure if there's a better solution?
Comment #128
akalata commentedComment #129
idebr commented@akalata that use case has been added in Html:getClass. This should get you the same string:
More info on Html:getClass: https://api.drupal.org/api/drupal/core!lib!Drupal!Component!Utility!Html...
Comment #130
akalata commentedThanks @idebr!
Rerolling and switching to Html::getClass.
Comment #132
akalata commentedNot sure what happened here, and I'm not in the right headspace to reroll this right now.
Comment #133
prajaankit commentedComment #134
prajaankit commentedComment #136
lokapujyaComment #138
lokapujyaDone for a while if anyone wants to try fixing the remaining bug.
Comment #140
lokapujyaHere is a fix. $module vs. $module->getName(), the case is different.
This validation_reasons piece and its test could use some improvement.
Comment #141
lokapujyaComment #146
star-szrYay green! Nice work @lokapujya.
Comment #147
lokapujyashould this be "prevent"?
Could someone look at the markup being output for the "validate reasons" messages? It was a tough reroll, and I just made it work but didn't test it.
should we really have all the text in the assert()?
Comment #148
mgiffordThe check all box at the top of the table is part of this now, right? "Select all rows in this table". It seems to work fine, although I should mark a follow-up accessibility issue with it. There's no table header any more, would be nice if there was an invisible one for screen readers.
1. Agreed that it should be "The following reason prevents @module" & "The following reasons prevent @module". I've found examples as it is now, but think that it would be better.
2. There's a duplication with the validation. Is the class validation_reasons supposed to come with some style?
3. I'm not sure if there is a standard for assertText() length.
Comment #149
idebr commentedI did a manual test to check for any regressions. I found two regressions on the 'Uninstall' list for modules:
.admin-requirementshas been lost for some modulesHere is an annotated screenshot:
Comment #150
lokapujyaComment #151
lokapujya#148.1 Done.
#148.2 Fixed the duplication. Added a style. Changed underscore to hyphen. Looks like the class was added in this issue.
#149.1 Not seeing that.
Comment #154
lokapujyaReroll.
Comment #157
mgiffordComment #158
rpayanmComment #159
akalata commentedComment #160
akalata commentedComment #161
rpayanmComment #162
rpayanmIgnore the #161 patch.
Comment #163
mgiffordThis patch still applies. I assume the best place to test it is still /admin/modules
In my quick review this patch looks good. Glad to see that the table headers are there again.
Comment #164
marcingy commentedI agree patch looks good
Comment #165
lokapujyaUpdated IS to show which theme functions we removed. Not sure what else is needed in IS.
Comment #168
lauriiiThis should be separated on multiple lines because its more than 80 characters long
Is the whitespace on the beginning necessary?
We could use the new array syntax here
We could use the new array syntax here
Comment #169
a_thakur commentedComment #170
akalata commentedComment #171
joelpittetRe-rolled and removed the test change that remove the translation inside the assertText() method.
Comment #172
joelpittetFixes form #168 and a fix from the re-roll.
Comment #175
joelpittetBecause we have such a big hunk being removed I guess we have to review changes that are happening within it on those re-rolls.
I'm thinking splitting this up into two issues. One for instsall and one for uninstall page. Then it's easier to review.
Comment #176
joelpittetOk splitting the uninstall theme function off to it's own issue here #2507243: Convert theme_system_modules_uninstall() tables to table #type
Comment #177
joelpittetHere's the split.
Comment #178
jmolivas commented@joelpittet: I will try changing some code here and test again
Comment #179
jmolivas commentedjoelpittet:
- I fixed some syntax here only on new code.
- On the next patch I will inject the
rendererservice, to remove the deprecateddrupal_renderfunction introduced on previous patch at line 458.Comment #180
jmolivas commentedInjecting the
rendererservice, toModulesListFormclass to remove the deprecateddrupal_renderfunction introduced on previous patch at #177.Comment #181
joelpittetAwesome thanks @jmolivas. Tagging with needs manual testing.
See if the markup is as close to identical as possible and that we didn't break anything.
Comment #182
jmolivas commentedNot sure against what compare the markup.
Comment #183
joelpittetI could be wrong but I think this is just the modules page and it would be before and after the patch. Turning twig.debug to true can help see if the twig template is being rendered and drush cr to make sure.
Comment #184
akalata commentedThis is adding a 'checkbox' class that does not exist in HEAD.
The
<label>that is being specified here is not rendering, causing not only visual regression but the inability to click the label to operate the checkbox..This span is missing (though I'm not sure it's necessary?)
There are IDs and data-drupal-selectors present on these links in HEAD that are missing here.
<tr>that has changed (fromedit-modules-core-nodetoedit-modules-core-table-node, though I couldn't figure out where in the patch this happened.Comment #185
akalata commentedReported 184-6 at #2513626: [Regression] Module permission links missing from module list page.
Comment #186
jmolivas commentedWorking on @akalata recommendations at #185
Comment #187
jmolivas commentedFixing #184.1 Removing checkbox class
Comment #188
lauriiiComment #190
lauriiiComment #191
rpayanmPlease review.
Comment #192
jmolivas commentedComment #193
jmolivas commentedRelated to #184.2
Seems like
inline_templateis not rendering the label tagI also tried to use
markupinstead, with no luckSame output label tag is removed
Comment #194
jmolivas commentedUpdating
inline_templatewithlabelto render label element:Comment #195
joelpittetExtra id and data selector on table and missing checkbox class on cell.
Before:
<table class="responsive-enabled" data-striping="1">After:
<table data-drupal-selector="edit-modules-core-table" id="edit-modules-core-table" class="responsive-enabled" data-striping="1">Before
After
Comment #196
lauriiiCottser has closed #2151113: Convert theme_system_modules_uninstall() to Twig as a duplicate for this. This is also blocker for #2544156: Deprecate drupal_render_children() which is children of critical meta #2280965: [meta] Remove every SafeMarkup::set() call
Comment #197
joelpittetNot a duplicate, I split them up because they were getting bugs in one and not the other. Easier to review and test separate because they are two different pages
Check out the child issue
Comment #198
joelpittetNeeds a reroll since the safemarkup went in. Also title revert @lauriii?
Comment #199
star-szrJust a heads up: #2568935: Convert theme_system_modules_details() to a template
If that gets momentum we could postpone this.
Comment #200
akalata commentedSame as #200, since that one was marked as a dupe: #2151109: Convert theme_system_modules_details() to Twig
Comment #201
akalata commentedClosing as duplicate of #2151109: Convert theme_system_modules_details() to Twig since that issue has had some good work on it.