uPortal IRC Logs-2011-03-04

[10:11:24 CST(-0600)] <EricDalquist> hey athena in PortletAdministrationHelper.cleanOptions do you remember what is supposed to be going on?
[10:11:32 CST(-0600)] <EricDalquist> I have a CPD with some hidding channel parameters
[10:11:45 CST(-0600)] <EricDalquist> and they are getting removed because they weren't part of the submitted data
[10:11:49 CST(-0600)] <EricDalquist> er hidden
[10:12:32 CST(-0600)] <athena> i'd have to look, but that's probably the method that goes through and makes sure the portlet data lines up with the CPD
[10:12:43 CST(-0600)] <athena> i think it will remove parameters that aren't declared in the CPD
[10:12:54 CST(-0600)] <athena> unless the portlet allows arbitrary params
[10:13:03 CST(-0600)] <EricDalquist> yeah, it doesn't appear to actually consult the CPD, just what was submitted in the request
[10:13:27 CST(-0600)] <EricDalquist> I'm thinking it should look at the CPD too and not remove things that are also declared there?
[10:16:14 CST(-0600)] <athena> hmm
[10:16:15 CST(-0600)] <athena> yes
[10:16:20 CST(-0600)] <athena> i actually kinda thought it did
[10:17:12 CST(-0600)] <athena> that might be in the save method rather than there, not sure
[10:17:30 CST(-0600)] <EricDalquist> ok
[10:17:34 CST(-0600)] <athena> huh.
[10:17:35 CST(-0600)] <athena> can't find it
[10:18:21 CST(-0600)] <athena> ok
[10:18:25 CST(-0600)] <athena> i think the way this works is this:
[10:18:34 CST(-0600)] <athena> the portlet form is generated based on the CPD
[10:18:53 CST(-0600)] <athena> and that cleanOptions method is responsible for taking request parameters and adding them to the form object
[10:19:06 CST(-0600)] <athena> but it only actually adds them if they match an already-existing parameter name
[10:19:17 CST(-0600)] <athena> that method ummmm, needs some comments
[10:19:34 CST(-0600)] <EricDalquist> I don't see cleanOptions add anything though
[10:19:55 CST(-0600)] <EricDalquist> it just appears to remove things from the form object if they don't exist in the submitted parameters
[10:20:06 CST(-0600)] <athena> huh.
[10:20:08 CST(-0600)] <athena> sigh
[10:20:25 CST(-0600)] <EricDalquist> yeah ... I know digging into code you haven't worked on in a while is a pain
[10:20:34 CST(-0600)] <EricDalquist> ah ok
[10:20:35 CST(-0600)] <athena> no
[10:20:41 CST(-0600)] <EricDalquist> so the flow declares the form as the model
[10:20:42 CST(-0600)] <athena> it's really my fault that this class is such a mess
[10:20:48 CST(-0600)] <athena> more frustrated that i left it in this state
[10:20:51 CST(-0600)] <EricDalquist> so webflow is doing the binding
[10:21:03 CST(-0600)] <EricDalquist> then cleanOptions appears to remove things that weren't part of the submit
[10:21:18 CST(-0600)] <EricDalquist> which makes sense because webflow doesn't nuke the Map before binding the parameters/preferences to it
[10:21:23 CST(-0600)] <EricDalquist> I think there is just a step left out
[10:21:27 CST(-0600)] <athena> quite possible
[10:21:40 CST(-0600)] <EricDalquist> because it shouldn't nuke parameters/preferences from the CPD that are marked hidden
[10:21:45 CST(-0600)] <EricDalquist> since they would never be submitted
[10:22:00 CST(-0600)] <EricDalquist> does that make sense?
[10:22:03 CST(-0600)] <athena> yeah, it does
[10:22:06 CST(-0600)] <athena> i think that works
[10:22:17 CST(-0600)] <EricDalquist> ok
[10:22:21 CST(-0600)] <EricDalquist> that's easy enough for me to fix
[10:23:50 CST(-0600)] <athena> ok
[10:23:51 CST(-0600)] <athena> sorry about that
[10:23:58 CST(-0600)] <athena> i'll write down a task to fix this class up a bit
[10:24:03 CST(-0600)] <EricDalquist> no problem
[10:24:11 CST(-0600)] <athena> the logic in there is really confusing, and it's kind of turned into spagghetti
[10:24:28 CST(-0600)] <EricDalquist> yeah, it happens
[10:24:41 CST(-0600)] <EricDalquist> might be easier just to look at cleanup in trunk
[10:24:46 CST(-0600)] <EricDalquist> since the object model should be a little simpler
[10:25:05 CST(-0600)] <athena> yeah, quite true
[10:25:28 CST(-0600)] <athena> i have a partial fix for the portlet admin portlet in trunk, by the way (the review and setParams pages are broken right now)
[10:25:35 CST(-0600)] <athena> still need to finish fixing it though
[10:25:35 CST(-0600)] <EricDalquist> oh good
[10:26:07 CST(-0600)] <athena> ya
[10:26:14 CST(-0600)] <athena> annoying that that's not working right
[10:26:23 CST(-0600)] <athena> might need to do some more fixing too
[10:26:33 CST(-0600)] <athena> i think i might have accidentally nuked the override stuff for portlet preferences
[10:26:37 CST(-0600)] <athena> which we probably actually do need?
[10:26:45 CST(-0600)] <athena> since we can map that to readOnly
[10:26:55 CST(-0600)] <EricDalquist> oh yeah
[10:27:02 CST(-0600)] <EricDalquist> yeah that is needed
[10:27:06 CST(-0600)] <athena> probably want to rename all that as "readOnly" for clarity's sake
[10:27:07 CST(-0600)] <athena> yeah
[10:27:12 CST(-0600)] <EricDalquist> yup
[10:27:18 CST(-0600)] <EricDalquist> that would be good to be consistent
[10:27:19 CST(-0600)] <athena> maybe i can take a look at that this weekend
[11:18:53 CST(-0600)] <EricDalquist> athena: http://pastebin.com/bbGXsL5f
[11:19:55 CST(-0600)] <EricDalquist> actually here is one with better formatting:
[11:19:56 CST(-0600)] <EricDalquist> http://pastebin.com/K5yt3Wki
[11:36:08 CST(-0600)] <athena> looks way more sane
[11:36:18 CST(-0600)] <athena> like the regex (smile)
[11:38:48 CST(-0600)] <gthompson> athena: Jeff will be here soon once he gets irc setup complete
[11:38:57 CST(-0600)] <athena> cool (smile)
[11:39:00 CST(-0600)] <athena> he find a good client?
[11:39:04 CST(-0600)] <gthompson> we've been discussing the mobile home view over IM
[11:39:22 CST(-0600)] <athena> make some progress?
[11:39:51 CST(-0600)] <gthompson> yes
[11:40:01 CST(-0600)] <gthompson> we decided to go with a complete grid view
[11:40:14 CST(-0600)] <gthompson> icons will be necessary
[11:40:26 CST(-0600)] <gthompson> a default icon will be assigned
[11:40:31 CST(-0600)] <gthompson> unless another is specified
[11:40:44 CST(-0600)] <gthompson> but since the icon is the primary recognition
[11:40:57 CST(-0600)] <gthompson> we'd want to encourage a custom icon
[11:41:13 CST(-0600)] <gthompson> Jeff says he is using Adium
[11:41:34 CST(-0600)] <gthompson> but that the server keeps timing out on him
[11:42:40 CST(-0600)] <gthompson> on the home view
[11:42:44 CST(-0600)] <gthompson> in phase 1
[11:42:57 CST(-0600)] <gthompson> i am sure all of the portlets + apps will fit on one screen
[11:43:04 CST(-0600)] <gthompson> (there's 7 or so)
[11:46:47 CST(-0600)] <gthompson> once the grid has more options than can show on the screen
[11:47:05 CST(-0600)] <gthompson> user would need to swipe/scroll
[11:48:43 CST(-0600)] <athena> huh - i'm actually using adium as well
[11:48:48 CST(-0600)] <athena> can send him some connect info
[11:48:56 CST(-0600)] <athena> that all sounds pretty reasonable
[11:49:06 CST(-0600)] <athena> i think we need to figure out how to display native stuff vs. portlets
[11:49:14 CST(-0600)] <athena> since the native views won't actually be in the user's layout
[11:49:29 CST(-0600)] <EricDalquist> could be firewall
[11:49:39 CST(-0600)] <EricDalquist> where is he working from?
[11:49:40 CST(-0600)] <gthompson> right, but i this case i don't think the distinction matters much
[11:49:41 CST(-0600)] <athena> he's right across the room from me, so probably not (smile)
[11:49:45 CST(-0600)] <EricDalquist> ah lol
[11:50:08 CST(-0600)] <gthompson> we'll be using a hub/spoke model
[11:50:12 CST(-0600)] <gthompson> home is the hub
[11:50:21 CST(-0600)] <gthompson> spoke off to either portlet or app
[11:50:26 CST(-0600)] <gthompson> then return to home
[11:50:31 CST(-0600)] <gthompson> to spoke off to another
[11:50:46 CST(-0600)] <athena> sounds good
[11:50:53 CST(-0600)] <gthompson> whether it's an app or portlet shouldn't really matter
[11:50:56 CST(-0600)] <athena> are we still going to have tabs on the app, or just a single home screen?
[11:51:04 CST(-0600)] <athena> well, was asking more about how we render that grid
[11:51:12 CST(-0600)] <athena> whether we just tack native stuff onto the beginning/end of the list or what
[11:51:53 CST(-0600)] <gthompson> ideally the list would be a mix, ordered alphabetically
[11:52:04 CST(-0600)] <gthompson> but basically, yes
[11:52:06 CST(-0600)] <athena> hmm, ok
[11:52:16 CST(-0600)] <athena> so we actually wouldnt' display portlets in the same order as they are on the user layout
[11:52:21 CST(-0600)] <athena> which i suppose is just fine, really
[11:52:34 CST(-0600)] <gthompson> yay!
[11:52:37 CST(-0600)] <athena> hurray!
[11:52:38 CST(-0600)] * athena cheers
[11:52:45 CST(-0600)] <gthompson> welcome jeffbcross
[11:52:48 CST(-0600)] <jeffbcross> thank you thank you
[11:52:52 CST(-0600)] <athena> jeffbcross is a new uniconer who's working on the mobile stuff with us
[11:53:04 CST(-0600)] <EricDalquist> welcome jeffbcross (smile)
[11:53:11 CST(-0600)] <gthompson> just don't be cross with the rest of us (smile)
[11:53:21 CST(-0600)] <jeffbcross> I'll do my best
[11:54:08 CST(-0600)] <gthompson> jeffbcross i was running the grid idea past Jen (athena)
[11:54:30 CST(-0600)] <gthompson> determining if it matters whether there is a distinction
[11:54:33 CST(-0600)] <gthompson> between app and portlet
[11:54:39 CST(-0600)] <gthompson> in the grid view
[11:54:47 CST(-0600)] <gthompson> i'm thinking no
[11:54:57 CST(-0600)] <athena> yeah i was really only worried about how we'd merge the lists together
[11:55:03 CST(-0600)] <athena> but alphabetizing or whatever sounds fine
[11:55:14 CST(-0600)] <athena> so cool (smile)
[11:55:33 CST(-0600)] <athena> is it just going to be one home screen or are we thinking about using tabs as well?
[11:55:48 CST(-0600)] <jeffbcross> to clarify, we're talking about merging WebViews with Native Activities
[11:55:54 CST(-0600)] <jeffbcross> in the home screen
[11:56:43 CST(-0600)] <jeffbcross> right
[11:56:44 CST(-0600)] <jeffbcross> ?
[11:56:54 CST(-0600)] <gthompson> yes, i believe that is correct
[11:57:00 CST(-0600)] <gthompson> WebViews = portlets
[11:57:09 CST(-0600)] <gthompson> Native Activities = apps
[11:57:10 CST(-0600)] <gthompson> ?
[11:57:12 CST(-0600)] <jeffbcross> I think tabs would be good as a "global nav"
[11:57:44 CST(-0600)] <jeffbcross> Native Activities = native functionality inside the mobile app
[11:57:51 CST(-0600)] <jeffbcross> Map = Native Activity
[11:58:00 CST(-0600)] <jeffbcross> or Nativity for short
[11:58:24 CST(-0600)] <jeffbcross> Android actually calls separate views inside of an App "Activity"
[11:58:35 CST(-0600)] <gthompson> I see
[11:59:23 CST(-0600)] <gthompson> I'm going to have to work on my mobile terms
[11:59:37 CST(-0600)] <gthompson> so yes
[11:59:41 CST(-0600)] <gthompson> i think we are agreeing
[11:59:47 CST(-0600)] <gthompson> portlets are not nativity
[12:00:00 CST(-0600)] <jeffbcross> but the user wouldn't know any difference
[12:00:02 CST(-0600)] <athena> dunno, we might end up wanting to use more generic terms
[12:00:07 CST(-0600)] <athena> since those are all android-specific
[12:00:07 CST(-0600)] <gthompson> correct
[12:00:17 CST(-0600)] <athena> but yes, portlets should be web view
[12:00:41 CST(-0600)] <gthompson> so then what do we see the tabs being?
[12:00:47 CST(-0600)] <jeffbcross> we could call it a "Window" instead of Activity
[12:01:06 CST(-0600)] <jeffbcross> I think settings, home are definitely good for tabs
[12:01:28 CST(-0600)] <athena> "native window" might map more closely to the Ti concepts
[12:01:31 CST(-0600)] <jeffbcross> search, perhaps…although it's superfluous on ANdroid
[12:01:43 CST(-0600)] <athena> yeah
[12:01:48 CST(-0600)] <athena> no buttons on an iphone though
[12:02:02 CST(-0600)] <jeffbcross> yeah, I don't think anyone on Android would complain
[12:02:16 CST(-0600)] <athena> i mean we could suppress the button on android
[12:02:21 CST(-0600)] <athena> but probably not necessary
[12:02:34 CST(-0600)] <athena> right now i don't think we have a whole pile of tab buttons we'd want
[12:02:57 CST(-0600)] <jeffbcross> yeah, nothing wrong with only 2 or 3 buttons
[12:03:24 CST(-0600)] <gthompson> simple is often good
[12:07:34 CST(-0600)] <gthompson> what would go under settings?
[12:09:36 CST(-0600)] <jeffbcross> I'd think account settings for one
[12:09:53 CST(-0600)] <jeffbcross> such as an option to log out
[12:11:39 CST(-0600)] <athena> yeah
[12:11:42 CST(-0600)] <jeffbcross> when the map integration is more defined, there might be some settings around that
[12:11:46 CST(-0600)] <athena> probably want to be able to choose whether to login/logout
[12:11:54 CST(-0600)] <athena> and set credentials for login
[12:12:02 CST(-0600)] <athena> and yes, i agree we might eventually have more settings
[12:13:38 CST(-0600)] <gthompson> do we expect users to logout explicitly?
[12:14:08 CST(-0600)] <gthompson> it seems like most phone apps just run in the background?
[12:14:33 CST(-0600)] <gthompson> i think the answer is yes
[12:14:41 CST(-0600)] <gthompson> but how often do we expect the user to logout?
[12:15:02 CST(-0600)] <gthompson> and is logout something we would expect to find under Settings?
[12:17:36 CST(-0600)] <jeffbcross> We could have a "keep me signed in" checkbox, which the user would have to explicitly check or be logged out after x minutes
[12:17:52 CST(-0600)] <jeffbcross> I'd see this falling under Settings
[12:18:43 CST(-0600)] <gthompson> good idea
[12:21:54 CST(-0600)] <gthompson> for Appcelerator
[12:22:04 CST(-0600)] <gthompson> are we using version 1.6?
[12:23:03 CST(-0600)] <jeffbcross> yes
[12:31:44 CST(-0600)] <athena> gthompson: i think there maybe is a precedent for wanting to delete your credentials from the device and revert to a guest experience
[12:32:07 CST(-0600)] <athena> i wouldn't expect the user to log out for just a session
[12:32:29 CST(-0600)] <athena> especially since we already have time-based session logouts on the portal side
[12:56:49 CST(-0600)] <gthompson> athena: yeah, that's kind of what i was thinking
[12:58:38 CST(-0600)] <athena> aright, i better go to lunch
[14:30:53 CST(-0600)] <EricDalquist> anyone here have a favorite date parsing/formating JS library?
[14:31:38 CST(-0600)] <athena1> hmm, don't think so
[14:31:45 CST(-0600)] <athena1> i've typically done a lot of that stuff on the backend
[14:31:58 CST(-0600)] <EricDalquist> yeah, I don't easily have that option :/
[14:33:17 CST(-0600)] <athena1> yeah (sad)
[14:33:44 CST(-0600)] <athena1> some of the jasig projects now just spit out multiple things for dates on jason objects
[14:33:47 CST(-0600)] <athena1> string representation
[14:33:49 CST(-0600)] <athena1> other stuff
[14:34:09 CST(-0600)] <athena1> seems like doing it on the client side might be harder w/ localization and time zones
[14:34:48 CST(-0600)] <EricDalquist> yeah I just need to do parsing for sorting and some re-formatingg
[14:34:59 CST(-0600)] <EricDalquist> so tz/localizations don't matter
[14:35:08 CST(-0600)] <athena1> ah ok
[14:35:19 CST(-0600)] <athena1> that sounds way easier then (smile)
[14:35:21 CST(-0600)] <EricDalquist> like getting a string 08/2010 and sorting that correctly
[14:36:17 CST(-0600)] <athena1> i guess i'd probably create javascript Date objects and then sort them?
[14:37:26 CST(-0600)] <EricDalquist> yeah
[14:37:36 CST(-0600)] <EricDalquist> I just hate writing custom string parsing code (tongue)
[14:38:19 CST(-0600)] <athena1> yeah
[14:38:30 CST(-0600)] <athena1> there is a parse method for the date object
[14:38:39 CST(-0600)] <EricDalquist> yeah but it doesn't do MM/YYYY
[14:38:41 CST(-0600)] <athena1> but i don't know if it'll work well for your use case or not
[14:38:42 CST(-0600)] <athena1> yeah
[14:38:43 CST(-0600)] <athena1> figured
[14:38:52 CST(-0600)] <athena1> and yes, agree that custom code for that sort of thing sucks (smile)