jasig-cas IRC Logs-2011-10-31
[09:10:59 CDT(-0500)] <foxnesn> anyone know if i can have different looks for cas based on the requested service?
[12:18:39 CDT(-0500)] <jdlich> thought I'd jump on here and start up a discussion on some things related to https://issues.jasig.org/browse/CAS-1061
[12:20:40 CDT(-0500)] <jdlich> the main issue really is to create a skinning system that easily supports multiple themes (that includes the JSP)
[12:23:33 CDT(-0500)] <jdlich> well first does anyone have any ideas of their own on how the skinning could be improved?
[12:24:58 CDT(-0500)] <wgthom> no, but I'd like us to consider the question in light of the maven overlay approach to maintaining CAS deployments
[12:29:47 CDT(-0500)] <jdlich> since I don't have a lot of knowledge of maven or with deploying CAS you'll just have to let me know if anything I propose breaks those things or makes those things more difficult
[12:31:31 CDT(-0500)] <jdlich> I mostly would like to see some of the files reorganized, for example…
[12:32:01 CDT(-0500)] <jdlich> most of the views are in views/jsp/default
[12:32:06 CDT(-0500)] <jdlich> but there are 3 that are not
[12:32:47 CDT(-0500)] <jdlich> in those 3 that are not the path to the include file is hardcoded
[12:33:00 CDT(-0500)] <jdlich> e.g. <jsp:directive.include file="default/ui/includes/bottom.jsp" />
[12:33:15 CDT(-0500)] <wgthom> i'm mostly interested in minimizing the need to overlay/change context that comes out of the core distribution
[12:33:26 CDT(-0500)] <jdlich> this is precisely what makes it tedious to maintain multiple independent themes
[12:33:27 CDT(-0500)] <wgthom> s/context/content/
[12:35:16 CDT(-0500)] <jdlich> does that concern the skin resources like jsp css, etc?
[12:38:14 CDT(-0500)] <jdlich> what is "the need to overlay/change context that comes out of the core distribution" exactly?
[12:39:01 CDT(-0500)] <wgthom> on a recent cas deployment the skinning overlayed these files:
[12:39:12 CDT(-0500)] <wgthom> view
[12:39:12 CDT(-0500)] <wgthom> │  └── jsp
[12:39:12 CDT(-0500)] <wgthom> │  └── default
[12:39:12 CDT(-0500)] <wgthom> │  └── ui
[12:39:12 CDT(-0500)] <wgthom> │  ├── casBlockedView.jsp
[12:39:13 CDT(-0500)] <wgthom> │  ├── casConfirmView.jsp
[12:39:13 CDT(-0500)] <wgthom> │  ├── casGenericSuccess.jsp
[12:39:14 CDT(-0500)] <wgthom> │  ├── casLoginView.jsp
[12:39:14 CDT(-0500)] <wgthom> │  ├── casLogoutView.jsp
[12:39:15 CDT(-0500)] <wgthom> │  ├── includes
[12:39:15 CDT(-0500)] <wgthom> │  │  ├── bottom.jsp
[12:39:16 CDT(-0500)] <wgthom> │  │  └── top.jsp
[12:39:16 CDT(-0500)] <wgthom> │  ├── serviceErrorSsoView.jsp
[12:39:17 CDT(-0500)] <wgthom> │  └── serviceErrorView.jsp
[12:39:54 CDT(-0500)] <jdlich> would it help if there were less files?
[12:39:58 CDT(-0500)] <wgthom> yes
[12:40:01 CDT(-0500)] <jdlich> bingo
[12:40:29 CDT(-0500)] <jdlich> how about 1 file?
[12:40:32 CDT(-0500)] <wgthom> each file incurs a maintence burden, for cas upgrades.
[12:41:22 CDT(-0500)] <jdlich> notice how it is currently set up
[12:42:32 CDT(-0500)] <jdlich> instead of each partial being referenced from within a layout file, the layout (top and bottom) are referenced from within the partials
[12:42:48 CDT(-0500)] <jdlich> it's backwards
[12:43:20 CDT(-0500)] <jdlich> so you have the same hardcoded paths in 10 different files
[12:43:30 CDT(-0500)] <jdlich> <jsp:directive.include file="default/ui/includes/top.jsp" />
[12:43:30 CDT(-0500)] <jdlich> and
[12:43:33 CDT(-0500)] <jdlich> <jsp:directive.include file="default/ui/includes/bottom.jsp" />
[12:43:51 CDT(-0500)] <jdlich> instead of a single path to the partial from within the layout
[12:43:59 CDT(-0500)] <jdlich> <jsp:directive.include file="default/ui/casLoginView.jsp" />
[12:44:47 CDT(-0500)] <jdlich> but the partials are so small that they it's not even necessary to break them out into their own files
[12:45:01 CDT(-0500)] <jdlich> especially if this helps in deployment
[12:45:07 CDT(-0500)] <jdlich> to have less files
[12:45:19 CDT(-0500)] <jdlich> so I think ideally what we need to have is a single layout file with conditionals
[12:45:26 CDT(-0500)] <jdlich> cas.jsp
[12:45:34 CDT(-0500)] <jdlich> if casLoginView
[12:45:43 CDT(-0500)] <jdlich> < cas login view html >
[12:45:44 CDT(-0500)] <jdlich> end
[12:45:47 CDT(-0500)] <jdlich> if errors
[12:45:53 CDT(-0500)] <jdlich> < cas errors html >
[12:45:54 CDT(-0500)] <jdlich> end
[12:45:55 CDT(-0500)] <jdlich> etc
[12:46:18 CDT(-0500)] <jdlich> views/jsp/default/cas.jsp
[12:46:29 CDT(-0500)] <jdlich> views/jsp/custom_theme/cas.jsp
[12:47:34 CDT(-0500)] <jdlich> thoughts?
[12:48:51 CDT(-0500)] <wgthom> all for it, if that makes it simpler and easier to maintain local skins.
[12:49:16 CDT(-0500)] <wgthom> what i really want is for the local skins to completely indepedent of any cas distribution files
[12:49:46 CDT(-0500)] <jdlich> what would that require?
[12:51:24 CDT(-0500)] <jdlich> what is a distribution file versus a skin file? isn't the skin an intrinsic part of the distribution?
[12:56:07 CDT(-0500)] <wgthom> yes. the question is thought, what would it take to totally externalize the skin from the distribution?
[12:56:15 CDT(-0500)] <wgthom> what mechanism?
[12:56:37 CDT(-0500)] <wgthom> maybe not possible?
[12:59:39 CDT(-0500)] <jdlich> well you need a ui obviously and at least a reference to it, but I'm not sure
[13:00:58 CDT(-0500)] <jdlich> the location of the skin is generally dictated by spring isn't it?
[13:03:16 CDT(-0500)] <jdlich> if having less files would help we should start there
[13:03:20 CDT(-0500)] <jdlich> you said "each file incurs a maintence burden, for cas upgrades"
[13:03:58 CDT(-0500)] <jdlich> why exactly? what's the process and how does all of those files make it a burden?
[13:05:17 CDT(-0500)] <jdlich> I need to better understand the problems that exist
[13:18:28 CDT(-0500)] <wgthom> the less files to overlay, the less maintenance, since you don't have to check to see if they've changed in the core dist
[13:19:27 CDT(-0500)] <foxnesn> anyone happen to know how i can append the service ticket a a url i want to forward to inside a jsp that is set as a view in my webflow?
[13:19:43 CDT(-0500)] <wgthom> so I would start with the idea that skins can be independent of the core dist files….but somehow include the what is need by cas to work.
[13:20:39 CDT(-0500)] <jdlich> well I think if we can improve the skin while also easing deployment and maintenance, then we've discovered a high-priority feature
[13:20:58 CDT(-0500)] <foxnesn> oops sorry i see you chating
[13:21:20 CDT(-0500)] <wgthom> jdlich: indeed
[13:21:27 CDT(-0500)] <foxnesn> btw, easy skin implementation and lppe will be dynamite
[13:21:56 CDT(-0500)] <foxnesn> from an end user standpoint i cant think of two better feature to have built into cas
[13:23:30 CDT(-0500)] <jdlich> as far as just how independent the skin can be, I would need somebody who better understands spring to chime in on what is possible there
[13:24:10 CDT(-0500)] <jdlich> if all of the theme's resources were contained in a single directory, would that help?
[13:24:52 CDT(-0500)] <jdlich> like /themes/default/
[13:24:57 CDT(-0500)] <wgthom> seems like it could help with managing/packaging skins
[13:26:13 CDT(-0500)] <jdlich> even that might take some work because I think views are expected to be in /views
[13:26:42 CDT(-0500)] <jdlich> let's start with less jsp files
[13:27:04 CDT(-0500)] <jdlich> I think that needs to happen no matter what
[13:27:31 CDT(-0500)] <jdlich> in fact, a single jsp file
[13:27:45 CDT(-0500)] <wgthom> sounds good. i'd suggest working on it for a bit and bringing your intention and intial ideas to cas-dev and cas-user for feedback and further inspiration
[13:34:12 CDT(-0500)] <jdlich> also, who is bring in the pull requests?
[13:34:12 CDT(-0500)] <jdlich> https://github.com/Jasig/cas/pulls
[13:34:36 CDT(-0500)] <jdlich> just scott?
[13:35:12 CDT(-0500)] <wgthom> any committer. currently that's andrew, scott, marvin, myself
[14:36:31 CDT(-0500)] <foxnesn> hrm, anyone know what the name of the variable that holds the ticket value?
[14:36:38 CDT(-0500)] <foxnesn> woops is
[17:00:00 CDT(-0500)] <apetro_> foxnesn context on what variable you're looking for?