You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by "Adrian Crum (JIRA)" <ji...@apache.org> on 2007/01/26 21:54:49 UTC

[jira] Commented: (OFBIZ-268) User selectable UI themes

    [ https://issues.apache.org/jira/browse/OFBIZ-268?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12467911 ] 

Adrian Crum commented on OFBIZ-268:
-----------------------------------

This issue can be closed. It was a "sandbox" issue that Si and I used.

> User selectable UI themes
> -------------------------
>
>                 Key: OFBIZ-268
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-268
>             Project: OFBiz (The Open for Business Project)
>          Issue Type: New Feature
>    Affects Versions: SVN trunk
>            Reporter: Marco Risaliti
>            Priority: Minor
>         Attachments: DEFAULT.JPG, envsetup.bsh, header.ftl, SectionMap.java, southwest.css, STHWEST.JPG, ThemeServices.java, UiThemes.xml, UserServices.java, USERSET.JPG, viewMain.ftl
>
>
> It's a copy of the old-jira issue http://jira.undersunconsulting.com/browse/OFBIZ-880 from Adrian Crum.
> =========================================
> From the Dev mailing list, implementation overview for user-selected UI themes. 
> [Text from mailing] 
> I modified header.ftl to support alternative style sheets. If an alternative 
> style sheet is in the environment, then the maincss.css is disabled and the 
> alternative is used. 
> I copied and modified the maincss.css file to create different themes. One css 
> file for each theme. 
> I set up a "Workspace Manager" web page where the user can select from a list of 
> themes. The web page stores their selection in the user setting entity. 
> I modified the GlobalDecorator so that it calls an action that gets the user's 
> current theme from the user setting entity and puts it in the environment. 
> Some of this was submitted in Jira 174. That Jira issue is kinda outdated now, 
> but the changes I made to header.ftl will still work. 
> [End text] 
> I have submitted some files that can be consulted for ideas. They will NOT work "out of the box" because they rely on other components we use internally. I'm sure they will contain enough information so that someone can flesh it out on their own. 
> Comment by Adrian Crum [10/May/06 05:12 PM] [ Permlink ] 
> Modified header.ftl - enables alternate style sheets. 
> Comment by Adrian Crum [10/May/06 05:14 PM] [ Permlink ] 
> An example alternative style sheet. 
> Comment by Adrian Crum [10/May/06 05:15 PM] [ Permlink ] 
> XML file used to specify available themes. Used by workspace web page. 
> Comment by Adrian Crum [10/May/06 05:16 PM] [ Permlink ] 
> Java file for theme services. 
> Comment by Adrian Crum [10/May/06 05:16 PM] [ Permlink ] 
> FTL file for the Workspace web page. 
> Comment by Charles Johnson [11/May/06 05:03 PM] [ Permlink ] 
> That sounds great Adrian. I wonder if we could have some screenshots? 
> Comment by Adrian Crum [11/May/06 05:16 PM] [ Permlink ] 
> Default.jpg - screen shot of Workspace Manager using OFBiz's default maincss.css 
> Comment by Adrian Crum [11/May/06 05:17 PM] [ Permlink ] 
> sthwest.jpg - screenshot of workspace manager using the southwest.css 
> Comment by Adrian Crum [11/May/06 06:29 PM] [ Permlink ] 
> UserServices.java - the services used to apply the user-selected theme. I just found this. Sorry, it's been over a year since I've seen this code. 
> Comment by Adrian Crum [11/May/06 06:30 PM] [ Permlink ] 
> SectionMap.java - used by UserServices. Seems to be a little garbled, looks like the cr/lf pairs were changed or something. 
> Comment by Si Chen [11/May/06 07:14 PM] [ Permlink ] 
> Adrian, 
> So how does this work? How are you detecting alternate CSS styles? It seems that there's a new entity and an XML for setting this? If so, what is the new entity and how is the XML setting done? 
> Si 
> Comment by Adrian Crum [11/May/06 07:22 PM] [ Permlink ] 
> Si, 
> That part of the code is missing because it's mixed in with a bunch of other custom stuff we do here. Basically, there is an action in the GlobalDecorator that looks up the theme the user selected (ThemeServices.THEMES_SETTING_NAME) in the UserSettings entity, retrieves the theme's settings from the XML file, then puts those settings in the environment. 
> It's really quite simple. There are no new entities involved. Just the code I submitted plus a simple entity lookup. 
> Comment by Si Chen [11/May/06 07:30 PM] [ Permlink ] 
> What does the UserSettings entity look like? 
> And, just curious, why the separate XML file and entity model? Why not put it all into user settings? 
> Comment by Adrian Crum [11/May/06 07:36 PM] [ Permlink ] 
> UserSet.jpg - screenshot of UserSettings entity data. I hope this helps Si. 
> Comment by Adrian Crum [11/May/06 07:44 PM] [ Permlink ] 
> The separate XML file is there for flexibility. If an integrator or administrator wanted to add more themes, all they have to do is drop the new css files in a folder and then add entries in the XML file to point to them. 
> The XML file is what makes adding skins so easy. 
> Comment by Si Chen [11/May/06 07:53 PM] [ Permlink ] 
> Sorry to ask, one last question: how is a UserLogin associated with a UserSetting? Another entity like UserLoginSetting? 
> Comment by Adrian Crum [11/May/06 08:00 PM] [ Permlink ] 
> If you look at the UserSetting screen shot, you'll see the user's login name appended to the setting name. I was trying to implement this feature with a minimum of intrusion into existing code - that's why I didn't set up a separate entity. 
> My "OfbizEx" component contains all of the code I've submitted. It "sits outside" the SVN code. Whenever I download an SVN update, I only need to modify the GlobalDecorator to make this work. 
> Getting back to the XML file question - I used an XML file because David prefers to keep configuration stuff out of the DB. I was trying to follow his advice. The only info kept in the DB is the user's current selection. 
> Comment by Adrian Crum [11/May/06 08:11 PM] [ Permlink ] 
> If something like this was made a part of the project, then the workspace manager application could be expanded to include the capability to create new themes. A user with sufficient priviledges would be presented with another tab that allows them to create/edit themes. Probably could use content manager services to upload css files, logos, etc. 
> Comment by Adrian Crum [17/May/06 11:38 AM] [ Permlink ] 
> envsetup.bsh - the script that is run from the Global Decorator. It simply gets the user's UI preferences and puts them in the layoutSettings map. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.