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
Update to newest Bootstrap 4 #2807
Comments
There is Bootstrap RTL yet it should be temporary until the full transition occurs. @mdsupport might also have some suggestions. |
First item to be addressed is to figure out where bs4 is currently being used so we can ensure we don't break anything bringing in latest bs4 release. |
@zbig01 You may have some comments on this matter. |
We don't current have BS4 in our dependency tree so checking is mute. I'm going to modify header class to allow BS4 include while ensuring BS3 is not included at same time. |
You know you just want to drop BS3 and put BS4 in it's place to see what happens :) |
lol, you know luck has not been my friend lately! I will however give it a try on my test server. |
I just tested 4.3.1 with RTL 4.3.1-6 on my Virtual Machine and it runs fine, you also have to have popper.js installed as well. |
Okay, i'll get the dependencies squared away in header class. Tonights dev demo reset will include. |
We have been using standard bootstrap.bundle.min.js which include Popper but not jQuery. |
The Migration page of BS4 documentation is a must read for anyone considering BS4. The differences between BS3 and BS4 are sometimes subtle - e.g. Based on our expectation of testing efforts involved, it may be prudent to let BS3 and BS4 be selectable - maybe add |
It would be interesting to see what happens on a full conversion (we could set up a Up for Grabs demo to a PR that does this) to give us an overall take on how much things break. If we are lucky, we may get away with this (we've got several months until next release to clean up any bugs). Otherwise we may get stuck in the position where we are indefinitely trying to convert/test all scripts (we may need to do this, but would nice if we didn't need to do this). |
Menus and custom menus have to be touched. Font-sizes and padding seem different and more of course.
Was my initial thought. Problem I see here is we'd need tandem theme and css files until done. However, that's doable where after all scripts are bootstrap 4 we simply delete old BS3 css files.
This would work if we got all hands on deck and freeze development till done. I think before we move to BS4 we need to decide what we gain in doing so. I'm not experienced enough with BS4 to have an opinion accept it is active in development, I believe. |
@sjpadgett I've been coding in Bootstrap 4 for awhile so I think I can help with that |
Also i've just tested Bootstrap 4 without any RTL on it and it seems stable and just needs a few fixes here and there |
Okay @tywrenn , |
Since Bootstrap 4 runs fine without Bootstrap 3 (more testing needed though) we should just update to Bootstrap 4 and then start coding in all the code fixes which in my opinion shouldn't take too long. |
That's fine, if that's the way you want to attack.
This all is configured in our Header config at: openemr/config/config.yaml did an edit if bundle is not use to auto load popper.
|
If one is looking for status quo, good news is that current code with inline styles painfully controls the layouts. Add the overrides in emr stylesheets and existing code essentially insulates you from BS. For the project, suggestion would be to follow BS4 documentation on themes. At the risk of repetition, we have focused efforts on small(ish) devices. That's why BS4 with an
Glad the standard interface is moving to current ui component. p.s. |
@sjpadgett I'll be using the bundled version to make it easy for us. I'll add another commit to fix the config file - let me know if i'm missing anywhere else that needs changing besides the NPM and config file. |
Added to do list to the issue request to show our progress 👍 |
Show me an engineer who isn't! Thanks for the info. Will be handy. |
I was able to get around adding popper JS in this commit. Here are some things I noticed immediately after upgrading:
|
Surely there are more elegant approaches but providing ours if it helps. Since we did not want to touch current code until it was up for refactoring, we let jQ do the work. Here is an example of main frame code that is used by all tabs (just pass their own $):
Header library inserts a standard script that checks and calls a script specific formatter if it exists otherwise it calls
This strips some of inline styles and converts all forms to BS4 as a workaround. As seen from selectors, the php script is using a table for form rows that works well for probably 1024x768 desktop. Responsive design will need form field label linkages and probably a grid layout. Review, design and refactor efforts could be significant compared to few minutes needed for this function. Major saving is the testing time since php script is not affected at this stage. |
After using a linux sed replace method, I found that there were some 500+ lines of code that needed to be changed over to Bootstrap 4. Most of the code I found was using col-xs which isn't supported, so replacing that with the new col tag will fix that area. Another big one was btn-xs, which isn't supported either and needs to be removed entirely due to their being no alternative. @mdsupport I like this approach to fix this issue on a temporary scale, yet it should be something that we can easily toggle on and off so we can figure out where these changes are gonna be needed as we go along with this transition. Perhaps making a hidden toggle switch somewhere? As far as Bootstrap RTL goes @sjpadgett i'd like to know what we currently use it for and if we should keep it or remove it as that's a bit of a gray area for me in terms of my knowledge. I would like us to use the Bootstrap theming standards as much as possible. |
RTL is extremely important to OpenEMR. It is one of our keystones along with internationalization for languages. |
@matrix-amiel |
Regarding sessions, that will be another large project, but is something we'll need to attack at some point in the future, since I am guessing it's only a matter of time until browsers do not allow viewing/modification of the session cookies (this is what OpenEMR does to support multiple browser tabs with different sessions): |
Regarding Full versus Compact tab theme, I've noted a generation gap on this regarding preference :) |
btw, I wholeheartedly agree on goal of optimizing real estate no matter what theme is chosen. |
Updated to-do list. |
- Fixes navbars in the billing area - Flat styles are now fixed temporarily (will be removed once we start creating new themes) - Fixes ccr `use` class order - Cleanup code in the demographics area - Adds core header to `pnotes_full_add.php` - Loads theme defaults into style manila and other styles where its missing - Replaces a few colors (still need community help to determine what colors go best on what
Updated to-do list |
Updated to-do list. I'm hoping to get this issue done by the end of the month. |
Fixed Secure Chat. Header include was out of scope(did someone move the use?) Anyway, after going through portal for BS4, i'm excited about portal again. It is crying out for Telemedicine!!! I know there are vendors that have added and maintain some form of telemedicine to portal. Be a great time to maybe offer to OpenEMR. Or pick up this mission and if so, i'd help get it started. I think Secure Chat is cool as #$*^. Sending photo or video of boo boos for provider feedback in real time sort of gives some telemedicine support. Includes conferencing other care team members to chat or doing message blast to some/all portal users/users where they're notified when they log in. Point is a message can be sent and will persist 'till attended. At one time I had video as a part but abandoned at time due to security. To really secure video, streams should be integral to OpenEMR and use of external video streaming services should be avoided. IMO. (Please let's not argue this here:)) lol point here is angular is not an issue for BS4 project unless someone sees an issue I don't. Also now'd be a good time to speak up concerning current features limitations or functionality while portal has my attention. |
thanks @sjpadgett , been enjoying the diatribe, err dialog :) plan to test out the bootstrap-updates branch to check on the portal |
@sjpadgett dangit you beat me to the exact same conclusion 😂. Don't add it in cuz I found some other issues to it as well. |
Prefer to think of it as gentle nudgings while circling and finally making the main point. Not really meant to be a discourse. :)
like what? i'm fixing rid inline classes and doing restructure of some directives so i'm on this and don't want dup of effort. If you're doing, I have plenty else to do..... |
@sjpadgett When I did this I also got rid of the summernote toolbar that kept popping up and fixed the container so it doesn't look terrible. Also had to replace |
@tywrenn Okay. go ahead and i'll fix the coding standards issues if you haven't already. I had this thing about keeping to one script thus multi classes and namespaces. Thinking also maybe could move styles out and rid no_theme header.... |
um patient documents is weird. Adding patientportal-style to Header will lock up and crash on new document click. Haven't looked but don't think these styles are compiled. Anyway @tywrenn Patient documents styling wasn't your fault....sorry. |
@tywrenn Working on gulp to include compiling patientportal-style. Trying to import from css creates pathing issues. You're not working this are you? |
@sjpadgett As far as I'm aware the patient portal style was working correctly from the start...dunno what happened |
was okay unlit assets/styles was removed to patientportal-style. The oe-sidebar.scss import no longer had a valid path and more, just hurting now and am tired of typing but you'll see on PR. |
Working next on:
Easy list to make. Now what? :) Another todo:
|
@bradymiller @tywrenn I feel we need to allow as much testing time as possible for our international vendors concerning RTL/translations where they would be far more likely to fix if working in master. |
@sjpadgett and @tywrenn , |
@tywrenn Perfect! Finally, Portal Patient Documents has gotten to where I envisioned. Now I can concentrate on adding some new template tags and templates. First up should be a generic intake form that includes history etc. where practice can expand for specialties. Anyway, I know how much effort you put into getting this to where it is and I do very much appreciate. Not an easy thing so, great work! |
Merged with master - closed |
This has been pushed back for 4 years (as the latest revision we are on is from 2015) and it has now come to the time to address it - we should now begin updating to Bootstrap 4. This will take awhile as some frameworks may break during this transition to Bootstrap 4.
New things expected with Bootstrap 4:
col-md-offset-4
while Bootstrap 4 saysoffset-md-4
For some more differences between the two frameworks, check out this article.
If anyone is having any issues with any Bootstrap code contact me.
This issue is being actively sponsored by PEER Technologies PLLC.
To Do List:
pull-left
andpull-right
with newfloat-*
classcol-xs-*
and replaced with newcol-*
classcol-*-offset-*
class format with newoffset-*-*
class formattable-condensed
class withtable-sm
btn-xs
class withbtn-sm
well
class with thejumbotron
class as wells aren't supported anymore (This can also be fluid with jumbotron-fluid)/interface/modules/zend_modules/public
Things I will need help from the OpenEMR community in:
nav-pills
as most of these navigations are using very outdated code that might break if changedvisible-*
classes as they aren't supported anymoreThings that will be in a separate pull request in the future:
/interface/modules/zend_modules/public
The text was updated successfully, but these errors were encountered: