[virtualcommons-svn] commit/vcweb: alllee: moving static assets into per-app static directories ins
Status: Beta
Brought to you by:
alllee
From: <com...@bi...> - 2013-04-03 08:09:48
|
1 new commit in vcweb: https://bitbucket.org/virtualcommons/vcweb/commits/70ad0836180c/ Changeset: 70ad0836180c User: alllee Date: 2013-04-03 10:09:27 Summary: moving static assets into per-app static directories instead Affected #: 50 files diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/boundaries/static/css/boundaries/style.css --- /dev/null +++ b/vcweb/boundaries/static/css/boundaries/style.css @@ -0,0 +1,28 @@ +.chat-sidebar { + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + padding: 0px 0px 0px 0px; + margin: 0px; +} +.chat-messages { + padding: 5px; +} +#chat-div { + overflow: auto; + height: 820px; +} +#chatMessage { +} +.boundaries-status-dashboard p { + padding-top: 15px; + font-size: 2em; +} +.boundaries-status-dashboard h4 { + border-bottom: 1px solid #ccc; +} +.boundaries-status-dashboard { + height: 100px; + width: 110px; + margin-right: 0px; + padding: 8px 8px 8px 8px; +} diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/css/lighterprints/style.css --- /dev/null +++ b/vcweb/lighterprints/static/css/lighterprints/style.css @@ -0,0 +1,372 @@ +body { + background-color: #F7F7F7; +} +/* navbar css from fervor +.navbar-fixed-top .navbar-inner, .navbar-static-top .navbar-inner { + -webkit-box-shadow: inset 0 1px 0px #87d7f7, inset 0 -1px 0px #0089bb; + -moz-box-shadow: inset 0 1px 0px #87d7f7, inset 0 -1px 0px #0089bb; + box-shadow: inset 0 1px 0px #87d7f7, inset 0 -1px 0px #0089bb; +} +.navbar-fixed-top .navbar-inner, .navbar-fixed-bottom .navbar-inner { + padding-left: 0; + padding-right: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + border-width: 0 0 0px; +} +.navbar-inner { + min-height: 64px; + padding-left: 20px; + padding-right: 20px; + background-color: #009fe1; + background-image: -moz-linear-gradient(top, #29afee, #009fe1); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#29afee), to(#009fe1)); + background-image: -webkit-linear-gradient(top, #29afee, #009fe1); + background-image: -o-linear-gradient(top, #29afee, #009fe1); + background-image: linear-gradient(to bottom, #29afee, #009fe1); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#29afee', endColorstr='#009fe1', GradientType=0); + border-bottom: 1px solid #0089bb; + border-top: 1px solid #87d7f7; +} +.navbar-fixed-top .navbar-inner, .navbar-static-top .navbar-inner { + border-width: 0 0 0px; +} +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; + border: 0; +} +.navbar .nav > li > a { + float: none; + padding: 20px 27px 20px 25px; + color: #ffffff; + text-decoration: none; + -webkit-font-smoothing: antialiased; + border-radius: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-right: 1px solid rgb(5, 150, 204); + box-shadow: 1px 0 0 rgb(24, 193, 255); +} +.navbar .brand { + float: left; + display: block; + padding: 17px 25px 0px !important; + margin-left: -20px; + font-size: 22px; + font-weight: 200; + color: #777777; + text-shadow: 0 1px 1px #0196cd; + border: 0 !important; + box-shadow: none !important; +} +.nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 22px; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; + font-weight: bold; +} +.navbar .nav > li > a:focus, .navbar .nav > li > a:hover { + background-color: transparent; + color: #bee3f3; + text-decoration: none; + cursor: pointer; +} +.navbar .nav > .active > a, .navbar .nav > .active > a:hover, .navbar .nav > .active > a:focus { + color: #b9ed2e; + text-decoration: none; + background-color: #42555e; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + border-radius: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-top: 1px solid #42555e; + border-bottom: 1px solid #42555e; + text-shadow: 0 0 5px rgba(149, 203, 41, 0.25); +} +.nav-tabs > .active > a, .nav-tabs > .active > a:hover, .nav-tabs > .active > a:focus { + color: #555555; + background-color: #ffffff; + border-bottom: 1px solid #42555e; + border-bottom-color: transparent; + cursor: pointer; + border-top: 1px solid #42555e; +} +.navbar .nav li.dropdown.open > .dropdown-toggle, .navbar .nav li.dropdown.active > .dropdown-toggle, .navbar .nav li.dropdown.open.active > .dropdown-toggle { + background-color: #42555e; + color: #ffffff; +} +.navbar .nav li.dropdown.open > .dropdown-toggle .caret, .navbar .nav li.dropdown.active > .dropdown-toggle .caret, .navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:1em;font-size:1.3em}li [class^="icon-"],.nav li [class^="icon-"],li [class*=" icon-"],.nav li [class*=" icon-"]{display:inline-block;width:1.25em;text-align:center} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 16px 10px; + margin: 25px 0 0; + list-style: none; + background-color: #ffffff; + -webkit-box-shadow: 0 0px 5px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0px 5px rgba(0, 0, 0, 0.15); + box-shadow: 0 0px 5px rgba(0, 0, 0, 0.15); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} +.dropdown-menu > li > a { + display: block; + padding: 5px 20px; + clear: both; + font-weight: normal; + line-height: 20px; + color: #333333; + white-space: nowrap; + font-size: 12px; + font-family: 'Lucida Grande'; +} +.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus, .dropdown-submenu:hover > a, .dropdown-submenu:focus > a { + text-decoration: none; + color: #13a6e7; +} +.icon-cog { + background-position: -432px 0; + font-size: 1.5em; + color: #bee3f3; +} +.navbar .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #bee3f3; + border-bottom-color: #bee3f3; +} +.dropdown .caret { + margin-top: 8px; + margin-left: 10px; +} +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-top: 7px solid #000000; + border-right: 5px solid transparent; + border-left: 5px solid transparent; + content: ""; +} +*/ +.challenge-tabs > .nav-tabs > .active > a, .challenge-tabs > .nav-tabs > .active > a:hover { + border-top: 3px solid #DFB03D; + border-bottom: none; +} +.challenge-tabs > .nav-tabs > li > a { + border-top: 1px solid #ddd; + border-left: 1px solid #ddd; + border-right: 1px solid #ddd; + border-bottom: none; + color: #A9A9A9; +} +.challenge-row { + padding: 20px 0 20px 0; + border-bottom: 1px solid #ddd; +} +.challenges { + margin-top: -20px; + background-color: #FFFFFF; + border-left: 1px solid #ddd; + border-right: 1px solid #ddd; +} +..expired-challenge { + color: red; +} +a.upcoming-challenge, a.expired-challenge, a.perform-challenge, a.completed-challenge { + text-transform: uppercase; + color: #FFF !important; + -webkit-font-smoothing: antialiased; + background-repeat: repeat-x; +} +a.upcoming-challenge { + background-color: hsl(0, 0%, 54%) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#f4f4f4", endColorstr="#898989"); + background-image: -khtml-gradient(linear, left top, left bottom, from(#f4f4f4), to(#898989)); + background-image: -moz-linear-gradient(top, #f4f4f4, #898989); + background-image: -ms-linear-gradient(top, #f4f4f4, #898989); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f4f4f4), color-stop(100%, #898989)); + background-image: -webkit-linear-gradient(top, #f4f4f4, #898989); + background-image: -o-linear-gradient(top, #f4f4f4, #898989); + background-image: linear-gradient(#f4f4f4, #898989); + border-color: #898989 #898989 hsl(0, 0%, 43.5%); + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.69); +} +a.expired-challenge { + background-color: hsl(0, 100%, 79%) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffbcbc", endColorstr="#ff9393"); + background-image: -khtml-gradient(linear, left top, left bottom, from(#ffbcbc), to(#ff9393)); + background-image: -moz-linear-gradient(top, #ffbcbc, #ff9393); + background-image: -ms-linear-gradient(top, #ffbcbc, #ff9393); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffbcbc), color-stop(100%, #ff9393)); + background-image: -webkit-linear-gradient(top, #ffbcbc, #ff9393); + background-image: -o-linear-gradient(top, #ffbcbc, #ff9393); + background-image: linear-gradient(#ffbcbc, #ff9393); + border-color: #ff9393 #ff9393 hsl(0, 100%, 77%); + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.13); +} +a.perform-challenge,a.completed-challenge { + background-color: hsl(96, 81%, 42%) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#66dd17", endColorstr="#59c114"); + background-image: -khtml-gradient(linear, left top, left bottom, from(#66dd17), to(#59c114)); + background-image: -moz-linear-gradient(top, #66dd17, #59c114); + background-image: -ms-linear-gradient(top, #66dd17, #59c114); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #66dd17), color-stop(100%, #59c114)); + background-image: -webkit-linear-gradient(top, #66dd17, #59c114); + background-image: -o-linear-gradient(top, #66dd17, #59c114); + background-image: linear-gradient(#66dd17, #59c114); + border-color: #59c114 #59c114 hsl(96, 81%, 40.5%); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.09); +} +h1.header { + font-family:"Open Sans"; + font-size:1.8em; + font-weight: normal; + line-height:133%; + color:rgb(201,205,209); + text-align:left; + padding: 10px 0px 5px 0px; + /* Firefox v4.0+ , Safari v5.1+ , Chrome v10.0+, IE v10+ and by Opera v10.5+ */ + text-shadow:0px 1px 1px rgb(255,255,255); + -ms-filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX = 0,OffY = 1,Color = #ffffffff,Positive = true)";zoom:1; + filter:progid:DXImageTransform.Microsoft.dropshadow(OffX = 0,OffY = 1,Color = #ffffffff,Positive = true); +} +div.lighterprints-scoreboard { + color: #A9A9A9; +} +.lighterprints-scoreboard-large { + font-size: 3em; + font-family: 'TrumpGothicWestW01-Bold', sans-serif; + color: #666666; +} +.lighterprints-scoreboard-xlarge { + font-size: 4.6em; + font-family: 'TrumpGothicWestW01-Bold', sans-serif; + color: #666666; +} +div.lighterprints-scoreboard h1 { + font-size: 5em; + color: #666666; + font-family: 'TrumpGothicWestW01-Bold', sans-serif; +} +div.lighterprints-scoreboard h2 { + font-size: 4em; + color: #666666; + font-family: 'TrumpGothicWestW01-Bold', sans-serif; +} +div.lighterprints-scoreboard h5 { + padding-bottom: 15px; +} +h3.popover-title { + font-weight: bolder; +} +.chart { + margin-top: -25px; +} +.dashboard-content { + margin-top: -3px; +} +.lighterprints-gray { + color: #D0D0D0; +} +.comment:hover, .commented { + color: #13a5e6; + text-decoration: none; +} +.like:hover, .liked { + color: #FF0066; + text-decoration: none; +} +.lighterprints-red { + color: #FF0066; +} +.lighterprints-blue { + color: #13a5e6; +} +.lighterprints-green { + color: #95CB29; +} +.badge-lighterprints-green { + background-color: #95CB29; + color: #FFFFFF; +} +.btn-lighterprints-blue { + background-color: hsl(197, 89%, 37%) !important; + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#39bef3", endColorstr="#0a82b2"); + background-image: -khtml-gradient(linear, left top, left bottom, from(#39bef3), to(#0a82b2)); + background-image: -moz-linear-gradient(top, #39bef3, #0a82b2); + background-image: -ms-linear-gradient(top, #39bef3, #0a82b2); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #39bef3), color-stop(100%, #0a82b2)); + background-image: -webkit-linear-gradient(top, #39bef3, #0a82b2); + background-image: -o-linear-gradient(top, #39bef3, #0a82b2); + background-image: linear-gradient(#39bef3, #0a82b2); + border-color: #0a82b2 #0a82b2 hsl(197, 89%, 31.5%); + color: #fff !important; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.36); + -webkit-font-smoothing: antialiased; +} +.lighterprints-scoreboard-uppercase { + letter-spacing:1pt; + line-height:187%; + color:rgb(65,85,93); + /* Firefox v4.0+ , Safari v5.1+ , Chrome v10.0+, IE v10+ and by Opera v10.5+ */ + text-shadow:0px 1px 1px rgb(255,255,255); + -ms-filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX = 0,OffY = 1,Color = #ffffffff,Positive = true)";zoom:1; + filter:progid:DXImageTransform.Microsoft.dropshadow(OffX = 0,OffY = 1,Color = #ffffffff,Positive = true); + font-size: 1.2em; + font-weight: normal; + padding-bottom: 15px; + text-transform: uppercase; +} +.sidebar { + min-height: 100%; + background-color: #FFFFFF; +} +.lighterprints-sidebar { + padding: 10px 20px 10px 20px; +} +.lighterprints-leaderboard { + font-weight: normal; + color: #41555d; +} +.group-level { + margin-top: -15px; + vertical-align: top; +} +h3.underline { + font-weight: normal; +} +td.group-activity-icon { + padding-right: 2px; +} +td.group-activity { + padding-left: 2px; +} +a { + color:#0088cc; + text-decoration:none; + -webkit-transition: color 180ms ease-in; + -moz-transition: color 180ms ease-in; + transition: color 180ms ease-in; +} diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/images/lighterprints/badges/adjust-thermostat.png Binary file vcweb/lighterprints/static/images/lighterprints/badges/adjust-thermostat.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/images/lighterprints/badges/air-dry-clothes.png Binary file vcweb/lighterprints/static/images/lighterprints/badges/air-dry-clothes.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/images/lighterprints/badges/bike-or-walk.png Binary file vcweb/lighterprints/static/images/lighterprints/badges/bike-or-walk.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/images/lighterprints/badges/cold-water-wash.png Binary file vcweb/lighterprints/static/images/lighterprints/badges/cold-water-wash.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/images/lighterprints/badges/computer-off-night.png Binary file vcweb/lighterprints/static/images/lighterprints/badges/computer-off-night.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/images/lighterprints/badges/eat-green-lunch.png Binary file vcweb/lighterprints/static/images/lighterprints/badges/eat-green-lunch.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/images/lighterprints/badges/eat-local-lunch.png Binary file vcweb/lighterprints/static/images/lighterprints/badges/eat-local-lunch.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/images/lighterprints/badges/enable-sleep-on-computer.png Binary file vcweb/lighterprints/static/images/lighterprints/badges/enable-sleep-on-computer.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/images/lighterprints/badges/lights-off.png Binary file vcweb/lighterprints/static/images/lighterprints/badges/lights-off.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/images/lighterprints/badges/no-beef.png Binary file vcweb/lighterprints/static/images/lighterprints/badges/no-beef.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/images/lighterprints/badges/recycle-materials.png Binary file vcweb/lighterprints/static/images/lighterprints/badges/recycle-materials.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/images/lighterprints/badges/recycle-paper.png Binary file vcweb/lighterprints/static/images/lighterprints/badges/recycle-paper.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/images/lighterprints/badges/share-your-ride.png Binary file vcweb/lighterprints/static/images/lighterprints/badges/share-your-ride.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/images/lighterprints/badges/sprites.png Binary file vcweb/lighterprints/static/images/lighterprints/badges/sprites.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/images/lighterprints/badges/vegan-for-a-day.png Binary file vcweb/lighterprints/static/images/lighterprints/badges/vegan-for-a-day.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/images/lighterprints/badges/water-off-while-brushing-teeth.png Binary file vcweb/lighterprints/static/images/lighterprints/badges/water-off-while-brushing-teeth.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/images/lighterprints/experiment-completed.png Binary file vcweb/lighterprints/static/images/lighterprints/experiment-completed.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/images/lighterprints/logo.png Binary file vcweb/lighterprints/static/images/lighterprints/logo.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/images/lighterprints/rank1.png Binary file vcweb/lighterprints/static/images/lighterprints/rank1.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/images/lighterprints/rank2.png Binary file vcweb/lighterprints/static/images/lighterprints/rank2.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/images/lighterprints/rank3.png Binary file vcweb/lighterprints/static/images/lighterprints/rank3.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/js/lighterprints/mobile/controller.js --- /dev/null +++ b/vcweb/lighterprints/static/js/lighterprints/mobile/controller.js @@ -0,0 +1,262 @@ +var participant_group_id; +var plot1; +var globalViewModel; + +//Model for details of the current activities used in home page and activity detail page +/* +function LighterFootprintsModel(modelJson) { + var self = this; + var model = ko.mapping.fromJS(modelJson); + // FIXME: hacky, figure out if there is a way to pass the observable in directly from the model object we get in + // performActivity + model.lastPerformedActivity = ko.observable(); + model.lastPerformedActivityPoints = ko.observable(); + model.errorMessage = ko.observable(); + model.hasChatMessages = function() { + return model.chatMessages().length > 0; + } + + model.submitChatMessage = function() { + var formData = "participant_group_id="+participant_group_id+"&"; + formData += $('#chat-form').serialize(); + $.post('http://vcweb.asu.edu/lighterprints/api/message', formData, function(data) { + ko.mapping.fromJS(data, model); + $('#groupPageMessageList').listview('refresh'); + }); + $('#chatText').val(''); + return false; + }; + + model.availableActivities = ko.computed(function() { + return ko.utils.arrayFilter(model.activities(), function(activity) { return activity.available_now() }); + }); + + model.availableL1 = ko.computed(function() { + return ko.utils.arrayFilter(model.activities(), function(activity) { + console.log(activity.level()); + if (activity.level() == '1') return true; + }); + }); + + model.availableL2 = ko.computed(function() { + return ko.utils.arrayFilter(model.activities(), function(activity) { + console.log(activity.level()); + if (activity.level() == '2') return true; + }); + }); + + model.availableL3 = ko.computed(function() { + return ko.utils.arrayFilter(model.activities(), function(activity) { + console.log(activity.level()); + if (activity.level() == '3') return true; + }); + }); + + model.hasAvailableActivities = ko.computed(function() { + return model.availableActivities().length > 0; + }); + return model; +} +*/ + +function initHomePageKO() { + var homeUrl = "http://vcweb.asu.edu/lighterprints/api/view-model"; + var activity_id; + var activity_name; + $.ajax({ + type : "GET", + url : homeUrl, + data : { + participant_group_id : participant_group_id + }, + dataType : "json", + cache : false, + success : function(response) { + var viewModelData = $.parseJSON(response.view_model_json); + globalViewModel = new LighterFootprintsModel(viewModelData); + globalViewModel.currentActivity = ko.observable(); + globalViewModel.showActivityDetail = function(activityModel) { + globalViewModel.currentActivity(activityModel); + activity_id = activityModel.pk; + console.log("activity id and name"); + console.log(activity_id); + activity_name = ko.utils.unwrapObservable(activityModel.display_name); + console.log(activity_name); + $.mobile.changePage("#activityDetailsPage"); + }; + globalViewModel.done = function() { + $.ajax({ + type : 'POST', + url : "http://vcweb.asu.edu/lighterprints/api/do-activity", + data : { + participant_group_id : participant_group_id, + activity_id : activity_id, + latitude : "", + longitude : "" + }, + dataType : "json", + success : function(data) { + if (data.success){ + ko.mapping.fromJSON(data.viewModel, globalViewModel); + alert("Success:Performed Acitivity " + activity_name + "!"); + //$.mobile.changePage('#popupDialog', "pop", false, false); + } + else + alert("Could not perform activity"); + //initHomePageKO(); + $.mobile.changePage('#homePage'); + }, + error : function(form, response) { + alert(response.message); + } + }); + }; + + ko.applyBindings(globalViewModel); +// ko.applyBindings(globalViewModel, $('#homePage')[0]); +// ko.applyBindings(globalViewModel, $('#homePage')[0]); +// ko.applyBindings(globalViewModel, $('#homePage')[0]); + + }, + error : function(form, response) { + alert(response.message); + } + }); + +}; + +function buildScorePage() { + var groupScoreURL = "http://vcweb.asu.edu/lighterprints/api/group-score/"+participant_group_id; + function parseResult(result) { + console.debug("invoking parse data for group score"); + console.log(result); + scoreObj = result.scores[0]; + console.log(scoreObj); + var total_points = scoreObj.total_points; + var points_to_next_level = scoreObj.points_to_next_level; + var average_points_per_person = scoreObj.average_points_per_person; + console.log(ko.utils.unwrapObservable(globalViewModel.groupLevel)); + // For horizontal bar charts, x an y values must will be "flipped" + // from their vertical bar counterpart. + plot1 = $.jqplot('scoreChart', [[points_to_next_level,total_points, average_points_per_person]],{ + title:'Group Level: '+ko.utils.unwrapObservable(globalViewModel.groupLevel), + series:[{color:'#357EC7'}], + seriesDefaults: { + renderer:$.jqplot.BarRenderer, + // Show point labels to the right ('e'ast) of each bar. + // edgeTolerance of -15 allows labels flow outside the grid + // up to 15 pixels. If they flow out more than that, they + // will be hidden. + //pointLabels: { show: true, location: 'e', edgeTolerance: -15 }, + pointLabels:{ + show: true, + labels:['Average Needed To Advance', 'Total Group Points', 'Average Points Per Person'], + location: 'e', + edgeTolerance: -100 + }, + // Rotate the bar shadow as if bar is lit from top right + // Here's where we tell the chart it is oriented horizontally. + rendererOptions: { + barWidth: 20.0, + barDirection: 'horizontal' + } + }, + axes: { + xaxis:{max:1000}, + yaxis: { + renderer: $.jqplot.CategoryAxisRenderer + } + } + }); + plot1.replot({clear: true, resetAxes:true}); + } + + $.ajax({ + type : "GET", + url : groupScoreURL, + dataType : "json", + cache : false, + success : function(result) { + $('scoreChart').empty(); + parseResult(result); + }, + error : function(form, response) { + alert(response.message); + } + }); +}; + +$(document).live('pageinit', function(event) { + + $("#submitLogin").click(function(event) { + event.preventDefault(); + + var formData = $("#loginForm").serialize(); + + $.ajax({ + type : "POST", + url : "http://vcweb.asu.edu/lighterprints/api/login", + cache : false, + data : formData, + dataType : "json", + success : function(data) { + if (data.success == false) { + alert("Invalid login!"); + } else if (data.success == true) { + participant_group_id = data.participant_group_id; + $.mobile.changePage($("#homePage")); + } + }, + error : function(form, response) { + alert(response.message); + } + }); + }); + + + $("#loginPage").bind('pageinit', function(event) { + participant_group_id =""; + }); + $("#loginPage").bind('pageshow', function(event) { + participant_group_id =""; + }); + $("#homePage").bind('pageinit', function(event) { + initHomePageKO(); + //initGroupPageKO(); + }); + +// $("#homePage").bind('pageaftershow', function(event) { +// //$("#homePageNoActFlag").listview('refresh'); +// }); + + + $('[data-role=page]').bind('pageshow', function(event) { + if(participant_group_id == null){ + window.location.href="index.html"; + } + }); + + $('[data-role=page]').bind('pageinit', function(event) { + if(participant_group_id == null){ + window.location.href="index.html"; + } + }); + + $("#activityDetailsPage").bind('pagebeforeshow', function(event) { + $('#currActivityInfoList').listview('refresh'); + $('#currActivityDetailsList').listview('refresh'); + //$('#footerList').listview('refresh'); + }); + + $("#messagePage").bind('pagebeforeshow', function(event) { + $('#groupPageMessageList').listview('refresh'); + }); + + $("#scorePage").bind('pageshow', function(event) { + buildScorePage(); + $(window).resize(function() { + plot1.replot( { resetAxes: true } ); + }); + }); + +}); diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/lighterprints/static/js/lighterprints/model.js --- /dev/null +++ b/vcweb/lighterprints/static/js/lighterprints/model.js @@ -0,0 +1,94 @@ +function LighterFootprintsModel(modelJson) { + var self = this; + var model = ko.mapping.fromJS(modelJson); + model.minuteTick = function() { + var hoursLeft = model.hoursLeft(); + var minutesLeft = model.minutesLeft() - 1; + if (minutesLeft < 0) { + minutesLeft = 59; + hoursLeft--; + if (hoursLeft < 0) { + hoursLeft = 23; + } + } + model.hoursLeft(hoursLeft); + var minutes = minutesLeft + ""; + if (minutesLeft.length == 1) { + minutesLeft = "0" + minutesLeft; + } + model.minutesLeft(minutesLeft); + }; + setInterval(model.minuteTick, 1000*60); + // FIXME: hacky, figure out if there is a way to pass the observable in directly from the model object we get in + // performActivity + model.lastPerformedActivity = ko.observable(); + model.errorMessage = ko.observable(); + model.hasGroupActivity = ko.computed(function() { + return model.groupActivity().length > 0; + }); + model.groupActivityTemplate = function(groupActivity) { + return groupActivity.parameter_name(); + }; + model.teamActivity = ko.computed(function() { + return ko.utils.arrayFilter(model.groupActivity(), function(groupActivity) { + return groupActivity.parameter_name().indexOf("chat_message") != 0; + }); + }); + model.chatMessages = ko.computed(function() { + return ko.utils.arrayFilter(model.groupActivity(), function(groupActivity) { return groupActivity.parameter_name().indexOf("chat_message") === 0 }); + }); + model.hasChatMessages = ko.computed(function() { + return model.chatMessages().length > 0; + }); + model.submitChatMessage = function() { + var formData = $('#chat-form').serialize(); + $.post('/lighterprints/api/message', formData, function(response) { + if (response.success) { + console.debug("successful post - updated view model: "); + ko.mapping.fromJS(response.viewModel, model); + } + else { + console.debug("unable to post message to server"); + console.debug(response); + } + }); + $('#chatText').val(''); + return false; + }; + model.lockedChallenges = ko.computed(function() { + return ko.utils.arrayFilter(model.activities(), function(activity) { return activity.locked() }); + }); + model.unlockedChallenges = ko.computed(function() { + return ko.utils.arrayFilter(model.activities(), function(activity) { return ! activity.locked() }); + }); + model.availableActivities = ko.computed(function() { + return ko.utils.arrayFilter(model.activities(), function(activity) { return activity.availableNow() }); + }); + model.hasAvailableActivities = ko.computed(function() { + return model.availableActivities().length > 0; + }); + model.closeCommentPopover = function(targetModel) { + $('.comment-popover').popover('hide'); + }; + return model; +} +ko.bindingHandlers.popover = { + init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) { + var attribute = ko.utils.unwrapObservable(valueAccessor()); + var cssSelectorForPopoverTemplate = attribute.content; + var popOverTemplate = "<div id='"+attribute.id+"-popover'>" + $(cssSelectorForPopoverTemplate).html() + "</div>"; + $(element).popover({ + content: popOverTemplate, + html: true, + trigger: 'manual' + }); + var popoverId = "comment-popover" + attribute.id; + $(element).attr('id', popoverId); + $(element).click(function() { + $(this).popover('toggle'); + var thePopover = document.getElementById(attribute.id+"-popover"); + childBindingContext = bindingContext.createChildContext(viewModel); + ko.applyBindingsToDescendants(childBindingContext, thePopover); + }); + }, +}; diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/css/boundaries/style.css --- a/vcweb/static/css/boundaries/style.css +++ /dev/null @@ -1,28 +0,0 @@ -.chat-sidebar { - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - padding: 0px 0px 0px 0px; - margin: 0px; -} -.chat-messages { - padding: 5px; -} -#chat-div { - overflow: auto; - height: 820px; -} -#chatMessage { -} -.boundaries-status-dashboard p { - padding-top: 15px; - font-size: 2em; -} -.boundaries-status-dashboard h4 { - border-bottom: 1px solid #ccc; -} -.boundaries-status-dashboard { - height: 100px; - width: 110px; - margin-right: 0px; - padding: 8px 8px 8px 8px; -} diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/css/lighterprints/style.css --- a/vcweb/static/css/lighterprints/style.css +++ /dev/null @@ -1,372 +0,0 @@ -body { - background-color: #F7F7F7; -} -/* navbar css from fervor -.navbar-fixed-top .navbar-inner, .navbar-static-top .navbar-inner { - -webkit-box-shadow: inset 0 1px 0px #87d7f7, inset 0 -1px 0px #0089bb; - -moz-box-shadow: inset 0 1px 0px #87d7f7, inset 0 -1px 0px #0089bb; - box-shadow: inset 0 1px 0px #87d7f7, inset 0 -1px 0px #0089bb; -} -.navbar-fixed-top .navbar-inner, .navbar-fixed-bottom .navbar-inner { - padding-left: 0; - padding-right: 0; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; - border-width: 0 0 0px; -} -.navbar-inner { - min-height: 64px; - padding-left: 20px; - padding-right: 20px; - background-color: #009fe1; - background-image: -moz-linear-gradient(top, #29afee, #009fe1); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#29afee), to(#009fe1)); - background-image: -webkit-linear-gradient(top, #29afee, #009fe1); - background-image: -o-linear-gradient(top, #29afee, #009fe1); - background-image: linear-gradient(to bottom, #29afee, #009fe1); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#29afee', endColorstr='#009fe1', GradientType=0); - border-bottom: 1px solid #0089bb; - border-top: 1px solid #87d7f7; -} -.navbar-fixed-top .navbar-inner, .navbar-static-top .navbar-inner { - border-width: 0 0 0px; -} -.navbar .nav { - position: relative; - left: 0; - display: block; - float: left; - margin: 0 10px 0 0; - border: 0; -} -.navbar .nav > li > a { - float: none; - padding: 20px 27px 20px 25px; - color: #ffffff; - text-decoration: none; - -webkit-font-smoothing: antialiased; - border-radius: 0; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-right: 1px solid rgb(5, 150, 204); - box-shadow: 1px 0 0 rgb(24, 193, 255); -} -.navbar .brand { - float: left; - display: block; - padding: 17px 25px 0px !important; - margin-left: -20px; - font-size: 22px; - font-weight: 200; - color: #777777; - text-shadow: 0 1px 1px #0196cd; - border: 0 !important; - box-shadow: none !important; -} -.nav-tabs > li > a { - padding-top: 8px; - padding-bottom: 8px; - line-height: 22px; - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; - font-weight: bold; -} -.navbar .nav > li > a:focus, .navbar .nav > li > a:hover { - background-color: transparent; - color: #bee3f3; - text-decoration: none; - cursor: pointer; -} -.navbar .nav > .active > a, .navbar .nav > .active > a:hover, .navbar .nav > .active > a:focus { - color: #b9ed2e; - text-decoration: none; - background-color: #42555e; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - border-radius: 0; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-top: 1px solid #42555e; - border-bottom: 1px solid #42555e; - text-shadow: 0 0 5px rgba(149, 203, 41, 0.25); -} -.nav-tabs > .active > a, .nav-tabs > .active > a:hover, .nav-tabs > .active > a:focus { - color: #555555; - background-color: #ffffff; - border-bottom: 1px solid #42555e; - border-bottom-color: transparent; - cursor: pointer; - border-top: 1px solid #42555e; -} -.navbar .nav li.dropdown.open > .dropdown-toggle, .navbar .nav li.dropdown.active > .dropdown-toggle, .navbar .nav li.dropdown.open.active > .dropdown-toggle { - background-color: #42555e; - color: #ffffff; -} -.navbar .nav li.dropdown.open > .dropdown-toggle .caret, .navbar .nav li.dropdown.active > .dropdown-toggle .caret, .navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; -} -.nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:1em;font-size:1.3em}li [class^="icon-"],.nav li [class^="icon-"],li [class*=" icon-"],.nav li [class*=" icon-"]{display:inline-block;width:1.25em;text-align:center} -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 16px 10px; - margin: 25px 0 0; - list-style: none; - background-color: #ffffff; - -webkit-box-shadow: 0 0px 5px rgba(0, 0, 0, 0.15); - -moz-box-shadow: 0 0px 5px rgba(0, 0, 0, 0.15); - box-shadow: 0 0px 5px rgba(0, 0, 0, 0.15); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; -} -.dropdown-menu > li > a { - display: block; - padding: 5px 20px; - clear: both; - font-weight: normal; - line-height: 20px; - color: #333333; - white-space: nowrap; - font-size: 12px; - font-family: 'Lucida Grande'; -} -.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus, .dropdown-submenu:hover > a, .dropdown-submenu:focus > a { - text-decoration: none; - color: #13a6e7; -} -.icon-cog { - background-position: -432px 0; - font-size: 1.5em; - color: #bee3f3; -} -.navbar .nav li.dropdown > .dropdown-toggle .caret { - border-top-color: #bee3f3; - border-bottom-color: #bee3f3; -} -.dropdown .caret { - margin-top: 8px; - margin-left: 10px; -} -.caret { - display: inline-block; - width: 0; - height: 0; - vertical-align: top; - border-top: 7px solid #000000; - border-right: 5px solid transparent; - border-left: 5px solid transparent; - content: ""; -} -*/ -.challenge-tabs > .nav-tabs > .active > a, .challenge-tabs > .nav-tabs > .active > a:hover { - border-top: 3px solid #DFB03D; - border-bottom: none; -} -.challenge-tabs > .nav-tabs > li > a { - border-top: 1px solid #ddd; - border-left: 1px solid #ddd; - border-right: 1px solid #ddd; - border-bottom: none; - color: #A9A9A9; -} -.challenge-row { - padding: 20px 0 20px 0; - border-bottom: 1px solid #ddd; -} -.challenges { - margin-top: -20px; - background-color: #FFFFFF; - border-left: 1px solid #ddd; - border-right: 1px solid #ddd; -} -..expired-challenge { - color: red; -} -a.upcoming-challenge, a.expired-challenge, a.perform-challenge, a.completed-challenge { - text-transform: uppercase; - color: #FFF !important; - -webkit-font-smoothing: antialiased; - background-repeat: repeat-x; -} -a.upcoming-challenge { - background-color: hsl(0, 0%, 54%) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#f4f4f4", endColorstr="#898989"); - background-image: -khtml-gradient(linear, left top, left bottom, from(#f4f4f4), to(#898989)); - background-image: -moz-linear-gradient(top, #f4f4f4, #898989); - background-image: -ms-linear-gradient(top, #f4f4f4, #898989); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f4f4f4), color-stop(100%, #898989)); - background-image: -webkit-linear-gradient(top, #f4f4f4, #898989); - background-image: -o-linear-gradient(top, #f4f4f4, #898989); - background-image: linear-gradient(#f4f4f4, #898989); - border-color: #898989 #898989 hsl(0, 0%, 43.5%); - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.69); -} -a.expired-challenge { - background-color: hsl(0, 100%, 79%) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffbcbc", endColorstr="#ff9393"); - background-image: -khtml-gradient(linear, left top, left bottom, from(#ffbcbc), to(#ff9393)); - background-image: -moz-linear-gradient(top, #ffbcbc, #ff9393); - background-image: -ms-linear-gradient(top, #ffbcbc, #ff9393); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffbcbc), color-stop(100%, #ff9393)); - background-image: -webkit-linear-gradient(top, #ffbcbc, #ff9393); - background-image: -o-linear-gradient(top, #ffbcbc, #ff9393); - background-image: linear-gradient(#ffbcbc, #ff9393); - border-color: #ff9393 #ff9393 hsl(0, 100%, 77%); - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.13); -} -a.perform-challenge,a.completed-challenge { - background-color: hsl(96, 81%, 42%) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#66dd17", endColorstr="#59c114"); - background-image: -khtml-gradient(linear, left top, left bottom, from(#66dd17), to(#59c114)); - background-image: -moz-linear-gradient(top, #66dd17, #59c114); - background-image: -ms-linear-gradient(top, #66dd17, #59c114); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #66dd17), color-stop(100%, #59c114)); - background-image: -webkit-linear-gradient(top, #66dd17, #59c114); - background-image: -o-linear-gradient(top, #66dd17, #59c114); - background-image: linear-gradient(#66dd17, #59c114); - border-color: #59c114 #59c114 hsl(96, 81%, 40.5%); - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.09); -} -h1.header { - font-family:"Open Sans"; - font-size:1.8em; - font-weight: normal; - line-height:133%; - color:rgb(201,205,209); - text-align:left; - padding: 10px 0px 5px 0px; - /* Firefox v4.0+ , Safari v5.1+ , Chrome v10.0+, IE v10+ and by Opera v10.5+ */ - text-shadow:0px 1px 1px rgb(255,255,255); - -ms-filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX = 0,OffY = 1,Color = #ffffffff,Positive = true)";zoom:1; - filter:progid:DXImageTransform.Microsoft.dropshadow(OffX = 0,OffY = 1,Color = #ffffffff,Positive = true); -} -div.lighterprints-scoreboard { - color: #A9A9A9; -} -.lighterprints-scoreboard-large { - font-size: 3em; - font-family: 'TrumpGothicWestW01-Bold', sans-serif; - color: #666666; -} -.lighterprints-scoreboard-xlarge { - font-size: 4.6em; - font-family: 'TrumpGothicWestW01-Bold', sans-serif; - color: #666666; -} -div.lighterprints-scoreboard h1 { - font-size: 5em; - color: #666666; - font-family: 'TrumpGothicWestW01-Bold', sans-serif; -} -div.lighterprints-scoreboard h2 { - font-size: 4em; - color: #666666; - font-family: 'TrumpGothicWestW01-Bold', sans-serif; -} -div.lighterprints-scoreboard h5 { - padding-bottom: 15px; -} -h3.popover-title { - font-weight: bolder; -} -.chart { - margin-top: -25px; -} -.dashboard-content { - margin-top: -3px; -} -.lighterprints-gray { - color: #D0D0D0; -} -.comment:hover, .commented { - color: #13a5e6; - text-decoration: none; -} -.like:hover, .liked { - color: #FF0066; - text-decoration: none; -} -.lighterprints-red { - color: #FF0066; -} -.lighterprints-blue { - color: #13a5e6; -} -.lighterprints-green { - color: #95CB29; -} -.badge-lighterprints-green { - background-color: #95CB29; - color: #FFFFFF; -} -.btn-lighterprints-blue { - background-color: hsl(197, 89%, 37%) !important; - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#39bef3", endColorstr="#0a82b2"); - background-image: -khtml-gradient(linear, left top, left bottom, from(#39bef3), to(#0a82b2)); - background-image: -moz-linear-gradient(top, #39bef3, #0a82b2); - background-image: -ms-linear-gradient(top, #39bef3, #0a82b2); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #39bef3), color-stop(100%, #0a82b2)); - background-image: -webkit-linear-gradient(top, #39bef3, #0a82b2); - background-image: -o-linear-gradient(top, #39bef3, #0a82b2); - background-image: linear-gradient(#39bef3, #0a82b2); - border-color: #0a82b2 #0a82b2 hsl(197, 89%, 31.5%); - color: #fff !important; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.36); - -webkit-font-smoothing: antialiased; -} -.lighterprints-scoreboard-uppercase { - letter-spacing:1pt; - line-height:187%; - color:rgb(65,85,93); - /* Firefox v4.0+ , Safari v5.1+ , Chrome v10.0+, IE v10+ and by Opera v10.5+ */ - text-shadow:0px 1px 1px rgb(255,255,255); - -ms-filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX = 0,OffY = 1,Color = #ffffffff,Positive = true)";zoom:1; - filter:progid:DXImageTransform.Microsoft.dropshadow(OffX = 0,OffY = 1,Color = #ffffffff,Positive = true); - font-size: 1.2em; - font-weight: normal; - padding-bottom: 15px; - text-transform: uppercase; -} -.sidebar { - min-height: 100%; - background-color: #FFFFFF; -} -.lighterprints-sidebar { - padding: 10px 20px 10px 20px; -} -.lighterprints-leaderboard { - font-weight: normal; - color: #41555d; -} -.group-level { - margin-top: -15px; - vertical-align: top; -} -h3.underline { - font-weight: normal; -} -td.group-activity-icon { - padding-right: 2px; -} -td.group-activity { - padding-left: 2px; -} -a { - color:#0088cc; - text-decoration:none; - -webkit-transition: color 180ms ease-in; - -moz-transition: color 180ms ease-in; - transition: color 180ms ease-in; -} diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/images/lighterprints/badges/adjust-thermostat.png Binary file vcweb/static/images/lighterprints/badges/adjust-thermostat.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/images/lighterprints/badges/air-dry-clothes.png Binary file vcweb/static/images/lighterprints/badges/air-dry-clothes.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/images/lighterprints/badges/bike-or-walk.png Binary file vcweb/static/images/lighterprints/badges/bike-or-walk.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/images/lighterprints/badges/cold-water-wash.png Binary file vcweb/static/images/lighterprints/badges/cold-water-wash.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/images/lighterprints/badges/computer-off-night.png Binary file vcweb/static/images/lighterprints/badges/computer-off-night.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/images/lighterprints/badges/eat-green-lunch.png Binary file vcweb/static/images/lighterprints/badges/eat-green-lunch.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/images/lighterprints/badges/eat-local-lunch.png Binary file vcweb/static/images/lighterprints/badges/eat-local-lunch.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/images/lighterprints/badges/enable-sleep-on-computer.png Binary file vcweb/static/images/lighterprints/badges/enable-sleep-on-computer.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/images/lighterprints/badges/lights-off.png Binary file vcweb/static/images/lighterprints/badges/lights-off.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/images/lighterprints/badges/no-beef.png Binary file vcweb/static/images/lighterprints/badges/no-beef.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/images/lighterprints/badges/recycle-materials.png Binary file vcweb/static/images/lighterprints/badges/recycle-materials.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/images/lighterprints/badges/recycle-paper.png Binary file vcweb/static/images/lighterprints/badges/recycle-paper.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/images/lighterprints/badges/share-your-ride.png Binary file vcweb/static/images/lighterprints/badges/share-your-ride.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/images/lighterprints/badges/sprites.png Binary file vcweb/static/images/lighterprints/badges/sprites.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/images/lighterprints/badges/vegan-for-a-day.png Binary file vcweb/static/images/lighterprints/badges/vegan-for-a-day.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/images/lighterprints/badges/water-off-while-brushing-teeth.png Binary file vcweb/static/images/lighterprints/badges/water-off-while-brushing-teeth.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/images/lighterprints/experiment-completed.png Binary file vcweb/static/images/lighterprints/experiment-completed.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/images/lighterprints/logo.png Binary file vcweb/static/images/lighterprints/logo.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/images/lighterprints/rank1.png Binary file vcweb/static/images/lighterprints/rank1.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/images/lighterprints/rank2.png Binary file vcweb/static/images/lighterprints/rank2.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/images/lighterprints/rank3.png Binary file vcweb/static/images/lighterprints/rank3.png has changed diff -r f2d2410357c8cc88dafc62143504e8929f8a1bfc -r 70ad0836180c56cb3013e55118bdf8619ce23493 vcweb/static/js/lighterprints/mobile/controller.js --- a/vcweb/static/js/lighterprints/mobile/controller.js +++ /dev/null @@ -1,262 +0,0 @@ -var participant_group_id; -var plot1; -var globalViewModel; - -//Model for details of the current activities used in home page and activity detail page -/* -function LighterFootprintsModel(modelJson) { - var self = this; - var model = ko.mapping.fromJS(modelJson); - // FIXME: hacky, figure out if there is a way to pass the observable in directly from the model object we get in - // performActivity - model.lastPerformedActivity = ko.observable(); - model.lastPerformedActivityPoints = ko.observable(); - model.errorMessage = ko.observable(); - model.hasChatMessages = function() { - return model.chatMessages().length > 0; - } - - model.submitChatMessage = function() { - var formData = "participant_group_id="+participant_group_id+"&"; - formData += $('#chat-form').serialize(); - $.post('http://vcweb.asu.edu/lighterprints/api/message', formData, function(data) { - ko.mapping.fromJS(data, model); - $('#groupPageMessageList').listview('refresh'); - }); - $('#chatText').val(''); - return false; - }; - - model.availableActivities = ko.computed(function() { - return ko.utils.arrayFilter(model.activities(), function(activity) { return activity.available_now() }); - }); - - model.availableL1 = ko.computed(function() { - return ko.utils.arrayFilter(model.activities(), function(activity) { - console.log(activity.level()); - if (activity.level() == '1') return true; - }); - }); - - model.availableL2 = ko.computed(function() { - return ko.utils.arrayFilter(model.activities(), function(activity) { - console.log(activity.level()); - if (activity.level() == '2') return true; - }); - }); - - model.availableL3 = ko.computed(function() { - return ko.utils.arrayFilter(model.activities(), function(activity) { - console.log(activity.level()); - if (activity.level() == '3') return true; - }); - }); - - model.hasAvailableActivities = ko.computed(function() { - return model.availableActivities().length > 0; - }); - return model; -} -*/ - -function initHomePageKO() { - var homeUrl = "http://vcweb.asu.edu/lighterprints/api/view-model"; - var activity_id; - var activity_name; - $.ajax({ - type : "GET", - url : homeUrl, - data : { - participant_group_id : participant_group_id - }, - dataType : "json", - cache : false, - success : function(response) { - var viewModelData = $.parseJSON(response.view_model_json); - globalViewModel = new LighterFootprintsModel(viewModelData); - globalViewModel.currentActivity = ko.observable(); - globalViewModel.showActivityDetail = function(activityModel) { - globalViewModel.currentActivity(activityModel); - activity_id = activityModel.pk; - console.log("activity id and name"); - console.log(activity_id); - activity_name = ko.utils.unwrapObservable(activityModel.display_name); - console.log(activity_name); - $.mobile.changePage("#activityDetailsPage"); - }; - globalViewModel.done = function() { - $.ajax({ - type : 'POST', - url : "http://vcweb.asu.edu/lighterprints/api/do-activity", - data : { - participant_group_id : participant_group_id, - activity_id : activity_id, - latitude : "", - longitude : "" - }, - dataType : "json", - success : function(data) { - if (data.success){ - ko.mapping.fromJSON(data.viewModel, globalViewModel); - alert("Success:Performed Acitivity " + activity_name + "!"); - //$.mobile.changePage('#popupDialog', "pop", false, false); - } - else - alert("Could not perform activity"); - //initHomePageKO(); - $.mobile.changePage('#homePage'); - }, - error : function(form, response) { - alert(response.message); - } - }); - }; - - ko.applyBindings(globalViewModel); -// ko.applyBindings(globalViewModel, $('#homePage')[0]); -// ko.applyBindings(globalViewModel, $('#homePage')[0]); -// ko.applyBindings(globalViewModel, $('#homePage')[0]); - - }, - error : function(form, response) { - alert(response.message); - } - }); - -}; - -function buildScorePage() { - var groupScoreURL = "http://vcweb.asu.edu/lighterprints/api/group-score/"+participant_group_id; - function parseResult(result) { - console.debug("invoking parse data for group score"); - console.log(result); - scoreObj = result.scores[0]; - console.log(scoreObj); - var total_points = scoreObj.total_points; - var points_to_next_level = scoreObj.points_to_next_level; - var average_points_per_person = scoreObj.average_points_per_person; - console.log(ko.utils.unwrapObservable(globalViewModel.groupLevel)); - // For horizontal bar charts, x an y values must will be "flipped" - // from their vertical bar counterpart. - plot1 = $.jqplot('scoreChart', [[points_to_next_level,total_points, average_points_per_person]],{ - title:'Group Level: '+ko.utils.unwrapObservable(globalViewModel.groupLevel), - series:[{color:'#357EC7'}], - seriesDefaults: { - renderer:$.jqplot.BarRenderer, - // Show point labels to the right ('e'ast) of each bar. - // edgeTolerance of -15 allows labels flow outside the grid - // up to 15 pixels. If they flow out more than that, they - // will be hidden. - //pointLabels: { show: true, location: 'e', edgeTolerance: -15 }, - pointLabels:{ - show: true, - labels:['Average Needed To Advance', 'Total Group Points', 'Average Points Per Person'], - location: 'e', - edgeTolerance: -100 - }, - // Rotate the bar shadow as if bar is lit from top right - // Here's where we tell the chart it is oriented horizontally. - rendererOptions: { - barWidth: 20.0, - barDirection: 'horizontal' - } - }, - axes: { - xaxis:{max:1000}, - yaxis: { - renderer: $.jqplot.CategoryAxisRenderer - } - } - }); - plot1.replot({clear: true, resetAxes:true}); - } - - $.ajax({ - type : "GET", - url : groupScoreURL, - dataType : "json", - cache : false, - success : function(result) { - $('scoreChart').empty(); - parseResult(result); - }, - error : function(form, response) { - alert(response.message); - } - }); -}; - -$(document).live('pageinit', function(event) { - - $("#submitLogin").click(function(event) { - event.preventDefault(); - - var formData = $("#loginForm").serialize(); - - $.ajax({ - type : "POST", - url : "http://vcweb.asu.edu/lighterprints/api/login", - cache : false, - data : formData, - dataType : "json", - success : function(data) { - if (data.success == false) { - alert("Invalid login!"); - } else if (data.success == true) { - participant_group_id = data.participant_group_id; - $.mobile.changePage($("#homePage")); - } - }, - error : function(form, response) { - alert(response.message); - } - }); - }); - - - $("#loginPage").bind('pageinit', function(event) { - participant_group_id =""; - }); - $("#loginPage").bind('pageshow', function(event) { - participant_group_id =""; - }); - $("#homePage").bind('pageinit', function(event) { - initHomePageKO(); - //initGroupPageKO(); - }); - -// $("#homePage").bind('pageaftershow', function(event) { -// //$("#homePageNoActFlag").listview('refresh'); -// }); - - - $('[data-role=page]').bind('pageshow', function(event) { - if(participant_group_id == null){ - window.location.href="index.html"; - } - }); - - $('[data-role=page]').bind('pageinit', function(event) { - if(participant_group_id == null){ - window.location.href="index.html"; - } - }); - - $("#activityDetailsPage").bind('pagebeforeshow', function(event) { - $('#currActivityInfoList').listview('refresh'); - $('#currActivityDetailsList').listview('refresh'); - //$('#footerList').listview('refresh'); - }); - - $("#messagePage").bind('pagebeforeshow', function(event) { - $('#groupPageMessageList').listview('refresh'); - }); - - $("#scorePage").bind('p... [truncated message content] |