diff --git a/Gemfile.lock b/Gemfile.lock index bcbb5bc7..7f8c47bd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -98,7 +98,7 @@ DEPENDENCIES rdiscount sass shotgun - sinatra + sinatra (~> 1.3.0) sinatra-content-for (~> 0.1.0) sinatra_auth_github thin diff --git a/README.md b/README.md index d7d25194..4e55f0d5 100644 --- a/README.md +++ b/README.md @@ -80,9 +80,14 @@ labels **name and color** must match in order to work. Go to https://github.com/settings/applications and register your application to get the application keys needed for OAuth. -- URL: Pow: `http://huboard.dev`, Rack: `http://localhost:9292` -- Callback: Pow: `http://huboard.dev/auth/github/callback`, Rack: - `http://localhost:9292/auth/github/callback` +- URL: + - Pow: `http://huboard.dev` + - Rack: `http://localhost:9292` + - Foreman: `http://localhost:5000` +- Callback: + - Pow: `http://huboard.dev/auth/github/callback` + - Rack: `http://localhost:9292/auth/github/callback` + - Foreman: `http://localhost:5000/auth/github/callback` ## Configure Your App @@ -120,6 +125,13 @@ or `bundle exec rackup config.ru` +### Using Foreman + +`foreman start` + +Now connect to localhost:5000 to use application. + + # Deploy To Heroku **Please use the latest stable tag if you are hosting your own instance of huboard.** diff --git a/public/css/application.v1.min.css b/public/css/application.v1.min.css index a50d79c2..cc0fc184 100644 --- a/public/css/application.v1.min.css +++ b/public/css/application.v1.min.css @@ -1 +1 @@ -.ui-icon{font-size:16px;height:16px;width:16px;font-weight:normal !important}.ui-icon-helper-inline{display:inline-block}.ui-icon-18{font-size:18px;height:18px;width:18px}.ui-icon-24{font-size:24px;height:24px;width:24px}.ui-icon-32{font-size:32px;height:32px;width:32px}.ui-icon-48{font-size:48px;height:48px;width:48px}.ui-icon-64{font-size:64px;height:64px;width:64px}@font-face{font-family:'ui-icon-font-0-1';src:url("../font/ui-icon-font-0-1.eot");src:url("../font/ui-icon-font-0-1.eot?#iefix") format("embedded-opentype"),url("../font/ui-icon-font-0-1.woff") format("woff"),url("../font/ui-icon-font-0-1.ttf") format("truetype"),url("../font/ui-icon-font-0-1.svg#ui-icon-font-0-1") format("svg");font-weight:normal;font-style:normal}[data-icon]:before{font-family:'ui-icon-font-0-1';content:attr(data-icon);speak:none;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased}.ui-icon-x,.ui-icon-x-thin,.ui-icon-minus,.ui-icon-untitled,.ui-icon-plus,.ui-icon-untitled-2,.ui-icon-cancel,.ui-icon-disk-b,.ui-icon-disk,.ui-icon-paintbrush,.ui-icon-roller,.ui-icon-pencil,.ui-icon-cart,.ui-icon-unlock,.ui-icon-lock,.ui-icon-menu,.ui-icon-cloud,.ui-icon-zoom-out,.ui-icon-zoom-in,.ui-icon-star,.ui-icon-flag-b,.ui-icon-flag,.ui-icon-clock,.ui-icon-bookmark,.ui-icon-calculator,.ui-icon-gear,.ui-icon-wrench,.ui-icon-unlink,.ui-icon-link,.ui-icon-tags,.ui-icon-tag,.ui-icon-trash,.ui-icon-person,.ui-icon-suitcase,.ui-icon-extlink,.ui-icon-newwin,.ui-icon-window-close,.ui-icon-window,.ui-icon-arrow-diag-4,.ui-icon-arrow-4,.ui-icon-arrowrefresh-w,.ui-icon-arrowrefresh-s,.ui-icon-arrowrefresh-e,.ui-icon-arrowrefresh-n,.ui-icon-arrowturn-e,.ui-icon-arrowturn-s,.ui-icon-arrowturn-n,.ui-icon-arrowturn-w,.ui-icon-untitled-3,.ui-icon-untitled-4,.ui-icon-untitled-5,.ui-icon-untitled-6,.ui-icon-untitled-7,.ui-icon-untitled-8,.ui-icon-untitled-9,.ui-icon-untitled-10,.ui-icon-untitled-11,.ui-icon-untitled-12,.ui-icon-untitled-13,.ui-icon-untitled-14,.ui-icon-untitled-15,.ui-icon-untitled-16,.ui-icon-untitled-17,.ui-icon-untitled-18,.ui-icon-arrowstop-1-w,.ui-icon-arrowstop-1-s,.ui-icon-arrowstop-1-e,.ui-icon-arrowstop-1-n,.ui-icon-arrow-2-se-nw,.ui-icon-arrow-2-ne-sw,.ui-icon-arrow-1-se,.ui-icon-arrow-1-sw,.ui-icon-arrow-1-nw,.ui-icon-arrow-1-ne,.ui-icon-arrow-2-e-w,.ui-icon-arrow-2-n-s,.ui-icon-arrow-1-e,.ui-icon-arrow-1-w,.ui-icon-arrow-1-s,.ui-icon-arrow-1-n,.ui-icon-carat-2-n-s,.ui-icon-carat-2-ew,.ui-icon-carat-1-ne,.ui-icon-carat-1-nw,.ui-icon-carat-1-sw,.ui-icon-carat-1-se,.ui-icon-carat-1-s,.ui-icon-carat-1-n,.ui-icon-carat-1-w,.ui-icon-carat-1-e,.ui-icon-triangle-2-n-s,.ui-icon-triangle-2-e-w,.ui-icon-triangle-1-ne,.ui-icon-triangle-1-nw,.ui-icon-triangle-1-sw,.ui-icon-triangle-1-se,.ui-icon-triangle-1-n,.ui-icon-triangle-1-w,.ui-icon-triangle-1-e,.ui-icon-triangle-1-s,.ui-icon-branch-new,.ui-icon-branch-merge,.ui-icon-branch,.ui-icon-video,.ui-icon-image,.ui-icon-search,.ui-icon-print,.ui-icon-note,.ui-icon-mail-open,.ui-icon-mail-closed,.ui-icon-location,.ui-icon-home,.ui-icon-headphones,.ui-icon-folder-open,.ui-icon-folder-collapsed,.ui-icon-document-b-landscape,.ui-icon-document-landscape,.ui-icon-document,.ui-icon-document-b,.ui-icon-comment,.ui-icon-comment-b,.ui-icon-code,.ui-icon-videocamera,.ui-icon-camera,.ui-icon-calendar,.ui-icon-battery-charge,.ui-icon-battery-3,.ui-icon-battery-2,.ui-icon-battery-1,.ui-icon-battery-0,.ui-icon-refresh,.ui-icon-transfer-e-w,.ui-icon-transfer-n-s,.ui-icon-filter,.ui-icon-alert,.ui-icon-list{font-family:'ui-icon-font-0-1';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased}.ui-icon-blank:before{content:" "}.ui-icon-x:before{content:"\e006"}.ui-icon-x-thin:before{content:"\e007"}.ui-icon-minus:before{content:"\e008"}.ui-icon-untitled:before{content:"\e009"}.ui-icon-plus:before{content:"\e00a"}.ui-icon-untitled-2:before{content:"\e00b"}.ui-icon-cancel:before{content:"\e00c"}.ui-icon-disk-b:before{content:"\e00d"}.ui-icon-disk:before{content:"\e00e"}.ui-icon-paintbrush:before{content:"\e00f"}.ui-icon-roller:before{content:"\e010"}.ui-icon-pencil:before{content:"\e011"}.ui-icon-cart:before{content:"\e012"}.ui-icon-unlock:before{content:"\e013"}.ui-icon-lock:before{content:"\e014"}.ui-icon-menu:before{content:"\e015"}.ui-icon-cloud:before{content:"\e016"}.ui-icon-zoom-out:before{content:"\e017"}.ui-icon-zoom-in:before{content:"\e018"}.ui-icon-star:before{content:"\e019"}.ui-icon-flag-b:before{content:"\e01a"}.ui-icon-flag:before{content:"\e01b"}.ui-icon-clock:before{content:"\e01c"}.ui-icon-bookmark:before{content:"\e01d"}.ui-icon-calculator:before{content:"\e01e"}.ui-icon-gear:before{content:"\e01f"}.ui-icon-wrench:before{content:"\e020"}.ui-icon-unlink:before{content:"\e021"}.ui-icon-link:before{content:"\e022"}.ui-icon-tags:before{content:"\e023"}.ui-icon-tag:before{content:"\e024"}.ui-icon-trash:before{content:"\e025"}.ui-icon-person:before{content:"\e026"}.ui-icon-suitcase:before{content:"\e027"}.ui-icon-extlink:before{content:"\e028"}.ui-icon-newwin:before{content:"\e029"}.ui-icon-window-close:before{content:"\e02a"}.ui-icon-window:before{content:"\e02b"}.ui-icon-arrow-diag-4:before{content:"\e02c"}.ui-icon-arrow-4:before{content:"\e02d"}.ui-icon-arrowrefresh-w:before{content:"\e02e"}.ui-icon-arrowrefresh-s:before{content:"\e02f"}.ui-icon-arrowrefresh-e:before{content:"\e030"}.ui-icon-arrowrefresh-n:before{content:"\e031"}.ui-icon-arrowturn-e:before{content:"\e032"}.ui-icon-arrowturn-s:before{content:"\e033"}.ui-icon-arrowturn-n:before{content:"\e034"}.ui-icon-arrowturn-w:before{content:"\e035"}.ui-icon-untitled-3:before{content:"\e036"}.ui-icon-untitled-4:before{content:"\e037"}.ui-icon-untitled-5:before{content:"\e038"}.ui-icon-untitled-6:before{content:"\e039"}.ui-icon-untitled-7:before{content:"\e03a"}.ui-icon-untitled-8:before{content:"\e03b"}.ui-icon-untitled-9:before{content:"\e03c"}.ui-icon-untitled-10:before{content:"\e03d"}.ui-icon-untitled-11:before{content:"\e03e"}.ui-icon-untitled-12:before{content:"\e03f"}.ui-icon-untitled-13:before{content:"\e040"}.ui-icon-untitled-14:before{content:"\e041"}.ui-icon-untitled-15:before{content:"\e042"}.ui-icon-untitled-16:before{content:"\e043"}.ui-icon-untitled-17:before{content:"\e044"}.ui-icon-untitled-18:before{content:"\e045"}.ui-icon-arrowstop-1-w:before{content:"\e046"}.ui-icon-arrowstop-1-s:before{content:"\e047"}.ui-icon-arrowstop-1-e:before{content:"\e048"}.ui-icon-arrowstop-1-n:before{content:"\e049"}.ui-icon-arrow-2-se-nw:before{content:"\e04a"}.ui-icon-arrow-2-ne-sw:before{content:"\e04b"}.ui-icon-arrow-1-se:before{content:"\e04c"}.ui-icon-arrow-1-sw:before{content:"\e04d"}.ui-icon-arrow-1-nw:before{content:"\e04e"}.ui-icon-arrow-1-ne:before{content:"\e04f"}.ui-icon-arrow-2-e-w:before{content:"\e050"}.ui-icon-arrow-2-n-s:before{content:"\e051"}.ui-icon-arrow-1-e:before{content:"\e052"}.ui-icon-arrow-1-w:before{content:"\e053"}.ui-icon-arrow-1-s:before{content:"\e054"}.ui-icon-arrow-1-n:before{content:"\e055"}.ui-icon-carat-2-n-s:before{content:"\e056"}.ui-icon-carat-2-ew:before{content:"\e057"}.ui-icon-carat-1-ne:before{content:"\e058"}.ui-icon-carat-1-nw:before{content:"\e059"}.ui-icon-carat-1-sw:before{content:"\e05a"}.ui-icon-carat-1-se:before{content:"\e05b"}.ui-icon-carat-1-s:before{content:"\e05c"}.ui-icon-carat-1-n:before{content:"\e05d"}.ui-icon-carat-1-w:before{content:"\e05e"}.ui-icon-carat-1-e:before{content:"\e05f"}.ui-icon-triangle-2-n-s:before{content:"\e060"}.ui-icon-triangle-2-e-w:before{content:"\e061"}.ui-icon-triangle-1-ne:before{content:"\e062"}.ui-icon-triangle-1-nw:before{content:"\e063"}.ui-icon-triangle-1-sw:before{content:"\e064"}.ui-icon-triangle-1-se:before{content:"\e065"}.ui-icon-triangle-1-n:before{content:"\e066"}.ui-icon-triangle-1-w:before{content:"\e067"}.ui-icon-triangle-1-e:before{content:"\e068"}.ui-icon-triangle-1-s:before{content:"\e069"}.ui-icon-branch-new:before{content:"\e06a"}.ui-icon-branch-merge:before{content:"\e06b"}.ui-icon-branch:before{content:"\e06c"}.ui-icon-video:before{content:"\e06d"}.ui-icon-image:before{content:"\e06e"}.ui-icon-search:before{content:"\e06f"}.ui-icon-print:before{content:"\e073"}.ui-icon-note:before{content:"\e074"}.ui-icon-mail-open:before{content:"\e075"}.ui-icon-mail-closed:before{content:"\e076"}.ui-icon-location:before{content:"\e077"}.ui-icon-home:before{content:"\e078"}.ui-icon-headphones:before{content:"\e079"}.ui-icon-folder-open:before{content:"\e07a"}.ui-icon-folder-collapsed:before{content:"\e07b"}.ui-icon-document-b-landscape:before{content:"\e07c"}.ui-icon-document-landscape:before{content:"\e07d"}.ui-icon-document:before{content:"\e07e"}.ui-icon-document-b:before{content:"\e07f"}.ui-icon-comment:before{content:"\e080"}.ui-icon-comment-b:before{content:"\e081"}.ui-icon-code:before{content:"\e082"}.ui-icon-videocamera:before{content:"\e083"}.ui-icon-camera:before{content:"\e084"}.ui-icon-calendar:before{content:"\e085"}.ui-icon-battery-charge:before{content:"\e087"}.ui-icon-battery-3:before{content:"\e088"}.ui-icon-battery-2:before{content:"\e089"}.ui-icon-battery-1:before{content:"\e08a"}.ui-icon-battery-0:before{content:"\e08b"}.ui-icon-refresh:before{content:"\e005"}.ui-icon-transfer-e-w:before{content:"\e004"}.ui-icon-transfer-n-s:before{content:"\e003"}.ui-icon-filter:before{content:"\e000"}.ui-icon-alert:before{content:"\e001"}.ui-icon-list:before{content:"\e002"}ul.repos,ul.repos li{list-style:none;margin:0}ul.repos li{margin:0 0 8px 0;position:relative;overflow:hidden;border-bottom:1px solid #ccc}ul.repos li:last-child{border:0;margin-bottom:3px}ul.repos li a{float:right;padding-top:30px;position:relative;margin:0 3px}ul.repos li>span a{float:none}ul.repos li a span{color:gray}ul.repos li>span{font-size:1.4em}ul.repos li a strong{font-size:2em;position:absolute;top:3px;left:10%}ul.repos li a.btn{padding-top:7px;margin-top:7px}#workqueue>div{margin:0 0 40px 0}ul.milestones .ui-sortable-placeholder{background:rgba(0,0,0,0.1);list-style:none;padding:20px 5px 15px 5px;margin:10px 0;border-radius:4px}li.ui-state-dragging{border-radius:4px;background:rgba(0,104,215,0.25)}ul.milestones{list-style:none;counter-reset:milestone;margin:0;padding:10px 2px;padding-top:0px}ul.milestones li{margin:0 0 4px 0;position:relative;cursor:move;padding-left:10px}ul.milestones li a{display:block;padding:7px;margin-left:20px}ul.milestones li:before{content:counter(milestone);counter-increment:milestone;background:#CCC;border-radius:20px;height:20px;width:20px;margin:0px;text-align:center;vertical-align:middle;position:absolute;top:7px;box-shadow:0px 1px 2px #333;color:#333;cursor:move}ul.milestones li a:first-letter{text-transform:capitalize}ul.milestones li a em{float:right;font-style:normal;font-weight:normal}ul.milestones li div{position:absolute;top:0;left:30%;width:50%;background:#ccc;border-radius:4px}ul.milestones li div span{display:block;background:rgba(0,0,0,0.3);padding:7px 0;text-indent:-9999em;border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px}.arrow,.board .column h3{margin-right:20px;position:relative;box-sizing:border-box;margin-top:0;color:#555}.arrow:before,.board .column h3:before,.arrow:after,.board .column h3:after{left:100%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-radius:2px}.arrow:after,.board .column h3:after{border-left-color:#f3f3f3;border-width:21px;top:50%;margin-top:-21px}.arrow:before,.board .column h3:before{border-left-color:#e5e5e5;border-width:22px;top:50%;margin-top:-22px}.container-fluid{padding-right:25px;padding-left:25px}.toggle-drawer{position:absolute;z-index:5;margin:0px;padding:10px;border:1px solid #ccc;-webkit-border-radius:20px;-moz-border-radius:20px;border-radius:20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:40px;line-height:20px;background:#fff;background:rgba(255,255,255,0.8);text-align:center;font-family:'ui-icon-font-0-1'}.toggle-drawer.arrow-right{right:-35px;background-color:#0069D6;background-color:rgba(0,105,214,0.6);border-color:#0069D6;border-color:rgba(0,105,214,0.6);color:#fff}.toggle-drawer.arrow-right:before{content:"\e052"}.toggle-drawer.arrow-right:hover{right:-40px;color:#fff}.toggle-drawer.arrow-left{right:-25px}.toggle-drawer.arrow-left:before{content:"\e053"}.toggle-drawer:hover{text-decoration:none}#drawer{position:absolute;width:352px;top:0;left:-640px}#drawer .board,#drawer .backlog,#drawer .filters{background:#fff;border-right:1px solid #ccc}#drawer .column{float:none;padding:0 20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.column{float:left;vertical-align:top;padding:0px 10px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.column:first-child{padding-left:0}.column:last-child{padding-right:0}.backlog{white-space:nowrap;overflow-x:auto}.backlog .column{float:none;display:inline-block}.sidebar .backlog .column{width:209px}.column h3{line-height:20px;margin-bottom:10px;padding:10px;border:1px solid #e5e5e5;background:#f3f3f3;font-size:100%}.column ul{margin:0;padding:0}.backlog .dim{opacity:0.6}.board .dim{opacity:0.6;-webkit-transition:opacity 0.6s,ease-out;-moz-transition:opacity 0.6s,ease-out;-ms-transition:opacity 0.6s,ease-out;-o-transition:opacity 0.6s,ease-out;transition:opacity 0.6s,ease-out;-webkit-transition:filter 0.6s,ease-out;-moz-transition:filter 0.6s,ease-out;-ms-transition:filter 0.6s,ease-out;-o-transition:filter 0.6s,ease-out;transition:filter 0.6s,ease-out;-webkit-filter:grayscale(100%) opacity(80%);-moz-filter:grayscale(100%) opacity(80%);filter:grayscale(100%) opacity(80%);-webkit-box-shadow:inset 0 0px 1px rgba(0,0,0,0.3);box-shadow:inset 0 0px 1px rgba(0,0,0,0.3);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}.column li{list-style:none;padding:5px 5px 34px 5px;margin:10px 0;cursor:move;position:relative;background-color:#fff;border:1px solid #e5e5e5;border-bottom-color:#d8d8d8}.column li.assignee-accept{border-color:#0069D6}.column li .card-labels{position:absolute;bottom:-3px}.column li .card-labels .card-label-wrapper{float:left;margin-right:5px}.column li .card-labels .card-label-wrapper .card-label{z-index:10}.column li .card-labels .card-label-wrapper .card-label.active.small{height:4px;width:40px;display:block}.column li .card-labels .card-label-wrapper .card-label.active.large{position:relative;top:22px;display:none;padding:3px 10px}.column li .card-labels:hover .card-label.active.small{display:none}.column li .card-labels:hover .card-label.active.large{display:block}.column li .card-header{border-bottom:1px solid #ccc;padding:5px 0;color:#444}.column li .title{padding-right:20px;word-wrap:break-word;white-space:normal;text-overflow:clip;overflow:auto}.column li .milestone{color:#999;font-size:11px}.column li img{position:absolute;bottom:5px;left:5px}.column li .number{position:absolute;vertical-align:bottom;bottom:5px;right:5px;font-size:2em}.column li a.close{position:absolute;top:12px;right:6px;width:16px;opacity:0.0}.column li:hover a.close{opacity:0.3}.column li a.close:hover{opacity:0.5}.column li a small{color:#999;padding-right:2px}.column .ui-sortable-placeholder{background:#ccc;list-style:none;padding:80px 5px 10px 5px;margin:10px 0}.column .ui-sortable-hover{background:#efefef}.filters{list-style:none;margin:0;padding:0 20px 0 0}.filters li{margin-bottom:10px;background:#fff;border-radius:4px}.filters li.clear-filters,.filters li.clear-filters a{background:none;color:#666}.filters li.clear-filters{border-radius:0;border-bottom:1px solid #444}.filters li.clear-filters a:hover{color:#666}.filters li a{position:relative;padding:10px;display:block;padding-right:25px;text-decoration:none;border-radius:4px;color:#777}.filters li a strong{position:absolute;top:12px;right:10px}.filter a.active,.filter a.active:hover{background-color:#0069D6;color:#fff}.filter a.dim,.filter a.dim:hover{background-color:#0069D6;background-color:rgba(0,105,214,0.6);color:#fff}.filter .ui-icon{position:absolute;top:13px;right:3px;width:22px;display:none;opacity:0.8}.filter .ui-icon:hover{opacity:1}.filter a:hover{background-color:#efefef}.filter .dim:hover .ui-icon,.filter .active:hover .ui-icon{display:inline}.header{font-size:24px}.header .author{color:#08C;font-weight:normal}.header .repo{color:#08C}.header input{border:0;outline:0;background:#fff;vertical-align:baseline;line-height:40px;margin:0;padding:0;font-size:24px}.assignee:hover img,.assignee.active img{-webkit-transform:scale(1.25);-moz-transform:scale(1.25);-ms-transform:scale(1.25);-o-transform:scale(1.25);transform:scale(1.25);-webkit-transition:all 0.2s ease-in 0.1s;-moz-transition:all 0.2s ease-in 0.1s;-ms-transition:all 0.2s ease-in 0.1s;-o-transition:all 0.2s ease-in 0.1s;transition:all 0.2s ease-in 0.1s}.assignee{list-style:none;line-height:40px;float:left;margin:0 2px;cursor:pointer}.assignee.dim img{opacity:0.6;-webkit-transition:opacity 0.6s,ease-out;-moz-transition:opacity 0.6s,ease-out;-ms-transition:opacity 0.6s,ease-out;-o-transition:opacity 0.6s,ease-out;transition:opacity 0.6s,ease-out;-webkit-transition:filter 0.6s,ease-out;-moz-transition:filter 0.6s,ease-out;-ms-transition:filter 0.6s,ease-out;-o-transition:filter 0.6s,ease-out;transition:filter 0.6s,ease-out;-webkit-filter:grayscale(100%) opacity(80%);-moz-filter:grayscale(100%) opacity(80%);filter:grayscale(100%) opacity(80%);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}.assignee.inactive img{opacity:0.1}.page-header-wrapper ol{margin:0;padding:0;float:right;list-style:none}body,html{height:100%}#wrapper{height:auto !important;height:100%;min-height:100%;margin-bottom:-60px}#footer,#footer-pusher{min-height:60px}#footer{background-color:#f3f3f3;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f3f3f3),color-stop(100%, #f9f9f9));background-image:-webkit-linear-gradient(top, #f3f3f3,#f9f9f9);background-image:-moz-linear-gradient(top, #f3f3f3,#f9f9f9);background-image:-ms-linear-gradient(top, #f3f3f3,#f9f9f9);background-image:-o-linear-gradient(top, #f3f3f3,#f9f9f9);background-image:linear-gradient(top, #f3f3f3,#f9f9f9);border-top:1px solid #e5e5e5}#footer h2{-webkit-mask-image:-webkit-gradient(linear, left top, left bottom, from(#000), to(rgba(0,0,0,0.75)));color:#999;color:rgba(255,255,255,0.3);text-shadow:-1px -1px rgba(0,0,0,0.4)}.fullscreen-overlay{position:fixed;top:0px;left:0px;z-index:10;height:100%;width:100%;overflow-x:hidden;overflow-y:auto;background-color:rgba(243,243,243,0.8);display:none}.fullscreen-open{overflow:hidden}.fullscreen-open .fullscreen-overlay{display:block}.fullscreen-wrapper{margin:0px 60px}.fullscreen-card{position:relative;max-width:960px;background-color:#fff;margin:50px auto;border-radius:2px;border:1px solid rgba(0,0,0,0.3);padding:20px 0px;overflow:hidden}.fullscreen-card h2{margin:0;font-size:20px;line-height:28px}.fullscreen-card h3{margin:0;font-size:18px;line-height:26px}.fullscreen-header{margin:20px 0}.fullscreen-card-preamble .fullscreen-header{margin-top:0}.fullscreen-card-description p{-ms-word-break:break-all;word-break:break-all;word-break:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;hyphens:auto}.fullscreen-card-right{float:right;margin-right:20px;width:160px}.fullscreen-card-left{margin-left:20px;margin-right:200px;padding-right:10px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.fullscreen-card .card-comment{overflow:hidden;margin-bottom:10px}.fullscreen-card .card-comment>a{float:left}.fullscreen-card .comment-body{margin-left:40px}.fullscreen-card .comment-body .email-fragment{margin-bottom:10px}.fullscreen-card .comment-body .email-hidden-toggle{display:none}.labels{list-style:none;margin:0;padding:0}.labels h5{margin-top:0px}.labels li{margin-bottom:10px;border-radius:4px;cursor:pointer}.labels li span{position:relative;padding:10px;display:block;text-decoration:none;border-radius:4px;color:#777}.nav-section{background-color:#f6f6f6;padding:1px;border:1px solid #ccc;border-radius:2px}.nav-section>.widget-header{padding:0px 5px;border-bottom:1px solid #ccc;font-weight:bold}.nav-section>.widget-body{padding:5px;background-color:#fff}.widget-settings{zoom:1}.widget-settings:before,.widget-settings:after{content:"";display:table}.widget-settings:after{clear:both}.widget-settings .widget-action{float:left;width:30px}.widget-settings .widget-body{margin-left:30px}.widget-settings .widget-body>.widget-header{padding:0px 5px;border-bottom:1px solid #ccc;font-weight:bold}.nav-section .widget-header h3{margin-top:0;color:#999}.navbar.navbar-fixed-top .navbar-inner,.navbar.navbar-static-top .navbar-inner{-webkit-box-shadow:none;box-shadow:none}.navbar .navbar-inner{background-color:#f9f9f9;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f9f9f9),color-stop(100%, #f3f3f3));background-image:-webkit-linear-gradient(top, #f9f9f9,#f3f3f3);background-image:-moz-linear-gradient(top, #f9f9f9,#f3f3f3);background-image:-ms-linear-gradient(top, #f9f9f9,#f3f3f3);background-image:-o-linear-gradient(top, #f9f9f9,#f3f3f3);background-image:linear-gradient(top, #f9f9f9,#f3f3f3);border-bottom:1px solid #e5e5e5}.navbar .navbar-inner .nav a{-webkit-mask-image:-webkit-gradient(linear, left top, left bottom, from(#000), to(rgba(0,0,0,0.75)))}.navbar .nav>li>a:hover{border-top:3px solid #DD4B39;padding-top:7px}.navbar .nav>li.active>a,.navbar .nav>li.active>a:hover,.navbar .nav>li.active>.dropdown-toggle,.navbar .nav>li.active>.dropdown-toggle:hover,.navbar .nav>li.dropdown.open>a,.navbar .nav>li.dropdown.open>a:hover,.navbar .nav>li.dropdown.open>.dropdown-toggle,.navbar .nav>li.dropdown.open>.dropdown-toggle:hover{border-top:3px solid #2590D6;padding-top:7px;background:none;-webkit-box-shadow:none;box-shadow:none}.hide{display:none}.breadcrumb{margin:-43px 0 7px 0}#main-stage{margin-bottom:50px}.container-fluid{position:relative}.container-fluid>.sidebar{width:230px;position:absolute;border-right:1px solid #ccc;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.container-fluid>.content{margin-left:250px;position:relative}.drop-shadow{position:relative;padding:1em;background:#fff;border:1px solid #f2f2f2;border-bottom-color:#e5e5e5;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.4);box-shadow:0 1px 2px rgba(0,0,0,0.4)}.instructions{text-align:center;margin-top:60px}.instructions ol{width:30px;text-align:left;margin-left:auto;margin-right:auto} +.ui-icon{font-size:16px;height:16px;width:16px;font-weight:normal !important}.ui-icon-helper-inline{display:inline-block}.ui-icon-18{font-size:18px;height:18px;width:18px}.ui-icon-24{font-size:24px;height:24px;width:24px}.ui-icon-32{font-size:32px;height:32px;width:32px}.ui-icon-48{font-size:48px;height:48px;width:48px}.ui-icon-64{font-size:64px;height:64px;width:64px}@font-face{font-family:'ui-icon-font-0-1';src:url("../font/ui-icon-font-0-1.eot");src:url("../font/ui-icon-font-0-1.eot?#iefix") format("embedded-opentype"),url("../font/ui-icon-font-0-1.woff") format("woff"),url("../font/ui-icon-font-0-1.ttf") format("truetype"),url("../font/ui-icon-font-0-1.svg#ui-icon-font-0-1") format("svg");font-weight:normal;font-style:normal}[data-icon]:before{font-family:'ui-icon-font-0-1';content:attr(data-icon);speak:none;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased}.ui-icon-x,.ui-icon-x-thin,.ui-icon-minus,.ui-icon-untitled,.ui-icon-plus,.ui-icon-untitled-2,.ui-icon-cancel,.ui-icon-disk-b,.ui-icon-disk,.ui-icon-paintbrush,.ui-icon-roller,.ui-icon-pencil,.ui-icon-cart,.ui-icon-unlock,.ui-icon-lock,.ui-icon-menu,.ui-icon-cloud,.ui-icon-zoom-out,.ui-icon-zoom-in,.ui-icon-star,.ui-icon-flag-b,.ui-icon-flag,.ui-icon-clock,.ui-icon-bookmark,.ui-icon-calculator,.ui-icon-gear,.ui-icon-wrench,.ui-icon-unlink,.ui-icon-link,.ui-icon-tags,.ui-icon-tag,.ui-icon-trash,.ui-icon-person,.ui-icon-suitcase,.ui-icon-extlink,.ui-icon-newwin,.ui-icon-window-close,.ui-icon-window,.ui-icon-arrow-diag-4,.ui-icon-arrow-4,.ui-icon-arrowrefresh-w,.ui-icon-arrowrefresh-s,.ui-icon-arrowrefresh-e,.ui-icon-arrowrefresh-n,.ui-icon-arrowturn-e,.ui-icon-arrowturn-s,.ui-icon-arrowturn-n,.ui-icon-arrowturn-w,.ui-icon-untitled-3,.ui-icon-untitled-4,.ui-icon-untitled-5,.ui-icon-untitled-6,.ui-icon-untitled-7,.ui-icon-untitled-8,.ui-icon-untitled-9,.ui-icon-untitled-10,.ui-icon-untitled-11,.ui-icon-untitled-12,.ui-icon-untitled-13,.ui-icon-untitled-14,.ui-icon-untitled-15,.ui-icon-untitled-16,.ui-icon-untitled-17,.ui-icon-untitled-18,.ui-icon-arrowstop-1-w,.ui-icon-arrowstop-1-s,.ui-icon-arrowstop-1-e,.ui-icon-arrowstop-1-n,.ui-icon-arrow-2-se-nw,.ui-icon-arrow-2-ne-sw,.ui-icon-arrow-1-se,.ui-icon-arrow-1-sw,.ui-icon-arrow-1-nw,.ui-icon-arrow-1-ne,.ui-icon-arrow-2-e-w,.ui-icon-arrow-2-n-s,.ui-icon-arrow-1-e,.ui-icon-arrow-1-w,.ui-icon-arrow-1-s,.ui-icon-arrow-1-n,.ui-icon-carat-2-n-s,.ui-icon-carat-2-ew,.ui-icon-carat-1-ne,.ui-icon-carat-1-nw,.ui-icon-carat-1-sw,.ui-icon-carat-1-se,.ui-icon-carat-1-s,.ui-icon-carat-1-n,.ui-icon-carat-1-w,.ui-icon-carat-1-e,.ui-icon-triangle-2-n-s,.ui-icon-triangle-2-e-w,.ui-icon-triangle-1-ne,.ui-icon-triangle-1-nw,.ui-icon-triangle-1-sw,.ui-icon-triangle-1-se,.ui-icon-triangle-1-n,.ui-icon-triangle-1-w,.ui-icon-triangle-1-e,.ui-icon-triangle-1-s,.ui-icon-branch-new,.ui-icon-branch-merge,.ui-icon-branch,.ui-icon-video,.ui-icon-image,.ui-icon-search,.ui-icon-print,.ui-icon-note,.ui-icon-mail-open,.ui-icon-mail-closed,.ui-icon-location,.ui-icon-home,.ui-icon-headphones,.ui-icon-folder-open,.ui-icon-folder-collapsed,.ui-icon-document-b-landscape,.ui-icon-document-landscape,.ui-icon-document,.ui-icon-document-b,.ui-icon-comment,.ui-icon-comment-b,.ui-icon-code,.ui-icon-videocamera,.ui-icon-camera,.ui-icon-calendar,.ui-icon-battery-charge,.ui-icon-battery-3,.ui-icon-battery-2,.ui-icon-battery-1,.ui-icon-battery-0,.ui-icon-refresh,.ui-icon-transfer-e-w,.ui-icon-transfer-n-s,.ui-icon-filter,.ui-icon-alert,.ui-icon-list{font-family:'ui-icon-font-0-1';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased}.ui-icon-blank:before{content:" "}.ui-icon-x:before{content:"\e006"}.ui-icon-x-thin:before{content:"\e007"}.ui-icon-minus:before{content:"\e008"}.ui-icon-untitled:before{content:"\e009"}.ui-icon-plus:before{content:"\e00a"}.ui-icon-untitled-2:before{content:"\e00b"}.ui-icon-cancel:before{content:"\e00c"}.ui-icon-disk-b:before{content:"\e00d"}.ui-icon-disk:before{content:"\e00e"}.ui-icon-paintbrush:before{content:"\e00f"}.ui-icon-roller:before{content:"\e010"}.ui-icon-pencil:before{content:"\e011"}.ui-icon-cart:before{content:"\e012"}.ui-icon-unlock:before{content:"\e013"}.ui-icon-lock:before{content:"\e014"}.ui-icon-menu:before{content:"\e015"}.ui-icon-cloud:before{content:"\e016"}.ui-icon-zoom-out:before{content:"\e017"}.ui-icon-zoom-in:before{content:"\e018"}.ui-icon-star:before{content:"\e019"}.ui-icon-flag-b:before{content:"\e01a"}.ui-icon-flag:before{content:"\e01b"}.ui-icon-clock:before{content:"\e01c"}.ui-icon-bookmark:before{content:"\e01d"}.ui-icon-calculator:before{content:"\e01e"}.ui-icon-gear:before{content:"\e01f"}.ui-icon-wrench:before{content:"\e020"}.ui-icon-unlink:before{content:"\e021"}.ui-icon-link:before{content:"\e022"}.ui-icon-tags:before{content:"\e023"}.ui-icon-tag:before{content:"\e024"}.ui-icon-trash:before{content:"\e025"}.ui-icon-person:before{content:"\e026"}.ui-icon-suitcase:before{content:"\e027"}.ui-icon-extlink:before{content:"\e028"}.ui-icon-newwin:before{content:"\e029"}.ui-icon-window-close:before{content:"\e02a"}.ui-icon-window:before{content:"\e02b"}.ui-icon-arrow-diag-4:before{content:"\e02c"}.ui-icon-arrow-4:before{content:"\e02d"}.ui-icon-arrowrefresh-w:before{content:"\e02e"}.ui-icon-arrowrefresh-s:before{content:"\e02f"}.ui-icon-arrowrefresh-e:before{content:"\e030"}.ui-icon-arrowrefresh-n:before{content:"\e031"}.ui-icon-arrowturn-e:before{content:"\e032"}.ui-icon-arrowturn-s:before{content:"\e033"}.ui-icon-arrowturn-n:before{content:"\e034"}.ui-icon-arrowturn-w:before{content:"\e035"}.ui-icon-untitled-3:before{content:"\e036"}.ui-icon-untitled-4:before{content:"\e037"}.ui-icon-untitled-5:before{content:"\e038"}.ui-icon-untitled-6:before{content:"\e039"}.ui-icon-untitled-7:before{content:"\e03a"}.ui-icon-untitled-8:before{content:"\e03b"}.ui-icon-untitled-9:before{content:"\e03c"}.ui-icon-untitled-10:before{content:"\e03d"}.ui-icon-untitled-11:before{content:"\e03e"}.ui-icon-untitled-12:before{content:"\e03f"}.ui-icon-untitled-13:before{content:"\e040"}.ui-icon-untitled-14:before{content:"\e041"}.ui-icon-untitled-15:before{content:"\e042"}.ui-icon-untitled-16:before{content:"\e043"}.ui-icon-untitled-17:before{content:"\e044"}.ui-icon-untitled-18:before{content:"\e045"}.ui-icon-arrowstop-1-w:before{content:"\e046"}.ui-icon-arrowstop-1-s:before{content:"\e047"}.ui-icon-arrowstop-1-e:before{content:"\e048"}.ui-icon-arrowstop-1-n:before{content:"\e049"}.ui-icon-arrow-2-se-nw:before{content:"\e04a"}.ui-icon-arrow-2-ne-sw:before{content:"\e04b"}.ui-icon-arrow-1-se:before{content:"\e04c"}.ui-icon-arrow-1-sw:before{content:"\e04d"}.ui-icon-arrow-1-nw:before{content:"\e04e"}.ui-icon-arrow-1-ne:before{content:"\e04f"}.ui-icon-arrow-2-e-w:before{content:"\e050"}.ui-icon-arrow-2-n-s:before{content:"\e051"}.ui-icon-arrow-1-e:before{content:"\e052"}.ui-icon-arrow-1-w:before{content:"\e053"}.ui-icon-arrow-1-s:before{content:"\e054"}.ui-icon-arrow-1-n:before{content:"\e055"}.ui-icon-carat-2-n-s:before{content:"\e056"}.ui-icon-carat-2-ew:before{content:"\e057"}.ui-icon-carat-1-ne:before{content:"\e058"}.ui-icon-carat-1-nw:before{content:"\e059"}.ui-icon-carat-1-sw:before{content:"\e05a"}.ui-icon-carat-1-se:before{content:"\e05b"}.ui-icon-carat-1-s:before{content:"\e05c"}.ui-icon-carat-1-n:before{content:"\e05d"}.ui-icon-carat-1-w:before{content:"\e05e"}.ui-icon-carat-1-e:before{content:"\e05f"}.ui-icon-triangle-2-n-s:before{content:"\e060"}.ui-icon-triangle-2-e-w:before{content:"\e061"}.ui-icon-triangle-1-ne:before{content:"\e062"}.ui-icon-triangle-1-nw:before{content:"\e063"}.ui-icon-triangle-1-sw:before{content:"\e064"}.ui-icon-triangle-1-se:before{content:"\e065"}.ui-icon-triangle-1-n:before{content:"\e066"}.ui-icon-triangle-1-w:before{content:"\e067"}.ui-icon-triangle-1-e:before{content:"\e068"}.ui-icon-triangle-1-s:before{content:"\e069"}.ui-icon-branch-new:before{content:"\e06a"}.ui-icon-branch-merge:before{content:"\e06b"}.ui-icon-branch:before{content:"\e06c"}.ui-icon-video:before{content:"\e06d"}.ui-icon-image:before{content:"\e06e"}.ui-icon-search:before{content:"\e06f"}.ui-icon-print:before{content:"\e073"}.ui-icon-note:before{content:"\e074"}.ui-icon-mail-open:before{content:"\e075"}.ui-icon-mail-closed:before{content:"\e076"}.ui-icon-location:before{content:"\e077"}.ui-icon-home:before{content:"\e078"}.ui-icon-headphones:before{content:"\e079"}.ui-icon-folder-open:before{content:"\e07a"}.ui-icon-folder-collapsed:before{content:"\e07b"}.ui-icon-document-b-landscape:before{content:"\e07c"}.ui-icon-document-landscape:before{content:"\e07d"}.ui-icon-document:before{content:"\e07e"}.ui-icon-document-b:before{content:"\e07f"}.ui-icon-comment:before{content:"\e080"}.ui-icon-comment-b:before{content:"\e081"}.ui-icon-code:before{content:"\e082"}.ui-icon-videocamera:before{content:"\e083"}.ui-icon-camera:before{content:"\e084"}.ui-icon-calendar:before{content:"\e085"}.ui-icon-battery-charge:before{content:"\e087"}.ui-icon-battery-3:before{content:"\e088"}.ui-icon-battery-2:before{content:"\e089"}.ui-icon-battery-1:before{content:"\e08a"}.ui-icon-battery-0:before{content:"\e08b"}.ui-icon-refresh:before{content:"\e005"}.ui-icon-transfer-e-w:before{content:"\e004"}.ui-icon-transfer-n-s:before{content:"\e003"}.ui-icon-filter:before{content:"\e000"}.ui-icon-alert:before{content:"\e001"}.ui-icon-list:before{content:"\e002"}ul.repos,ul.repos li{list-style:none;margin:0}ul.repos li{margin:0 0 8px 0;position:relative;overflow:hidden;border-bottom:1px solid #ccc}ul.repos li:last-child{border:0;margin-bottom:3px}ul.repos li a{float:right;padding-top:30px;position:relative;margin:0 3px}ul.repos li>span a{float:none}ul.repos li a span{color:gray}ul.repos li>span{font-size:1.4em}ul.repos li a strong{font-size:2em;position:absolute;top:3px;left:10%}ul.repos li a.btn{padding-top:7px;margin-top:7px}#workqueue>div{margin:0 0 40px 0}ul.milestones .ui-sortable-placeholder{background:rgba(0,0,0,0.1);list-style:none;padding:20px 5px 15px 5px;margin:10px 0;border-radius:4px}li.ui-state-dragging{border-radius:4px;background:rgba(0,104,215,0.25)}ul.milestones{list-style:none;counter-reset:milestone;margin:0;padding:10px 2px;padding-top:0px}ul.milestones li{margin:0 0 4px 0;position:relative;cursor:move;padding-left:10px}ul.milestones li a{display:block;padding:7px;margin-left:20px}ul.milestones li:before{content:counter(milestone);counter-increment:milestone;background:#CCC;border-radius:20px;height:20px;width:20px;margin:0px;text-align:center;vertical-align:middle;position:absolute;top:7px;box-shadow:0px 1px 2px #333;color:#333;cursor:move}ul.milestones li a:first-letter{text-transform:capitalize}ul.milestones li a em{float:right;font-style:normal;font-weight:normal}ul.milestones li div{position:absolute;top:0;left:30%;width:50%;background:#ccc;border-radius:4px}ul.milestones li div span{display:block;background:rgba(0,0,0,0.3);padding:7px 0;text-indent:-9999em;border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px}.arrow,.board .column h3{margin-right:15px;position:relative;box-sizing:border-box;margin-top:0;color:#555}.arrow:before,.board .column h3:before,.arrow:after,.board .column h3:after{left:100%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-radius:2px}.arrow:after,.board .column h3:after{border-left-color:#f3f3f3;border-width:14px;top:50%;margin-top:-14px}.arrow:before,.board .column h3:before{border-left-color:#e5e5e5;border-width:15px;top:50%;margin-top:-15px}.container-fluid{padding-right:25px;padding-left:25px}.toggle-drawer{position:absolute;z-index:5;margin:0px;padding:10px;border:1px solid #ccc;-webkit-border-radius:20px;-moz-border-radius:20px;border-radius:20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:40px;line-height:20px;background:#fff;background:rgba(255,255,255,0.8);text-align:center;font-family:'ui-icon-font-0-1'}.toggle-drawer.arrow-right{right:-35px;background-color:#0069D6;background-color:rgba(0,105,214,0.6);border-color:#0069D6;border-color:rgba(0,105,214,0.6);color:#fff}.toggle-drawer.arrow-right:before{content:"\e052"}.toggle-drawer.arrow-right:hover{right:-40px;color:#fff}.toggle-drawer.arrow-left{right:-25px}.toggle-drawer.arrow-left:before{content:"\e053"}.toggle-drawer:hover{text-decoration:none}#drawer{position:absolute;width:280px;top:0;left:-497px}#drawer .board,#drawer .backlog,#drawer .filters{background:#fff;border-right:1px solid #ccc}#drawer .column{float:none;padding:0 20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.column{float:left;vertical-align:top;padding:0px 10px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.column:first-child{padding-left:0}.column:last-child{padding-right:0}.backlog{white-space:nowrap;overflow-x:auto}.backlog .column{float:none;display:inline-block}.sidebar .backlog .column{width:209px}.column h3{line-height:20px;margin-bottom:10px;padding:3px;padding-left:10px;border:1px solid #e5e5e5;background:#f3f3f3;font-size:100%}.column ul{margin:0;padding:0}.backlog .dim{opacity:0.6}.board .dim{opacity:0.6;-webkit-transition:opacity 0.6s,ease-out;-moz-transition:opacity 0.6s,ease-out;-ms-transition:opacity 0.6s,ease-out;-o-transition:opacity 0.6s,ease-out;transition:opacity 0.6s,ease-out;-webkit-transition:filter 0.6s,ease-out;-moz-transition:filter 0.6s,ease-out;-ms-transition:filter 0.6s,ease-out;-o-transition:filter 0.6s,ease-out;transition:filter 0.6s,ease-out;-webkit-filter:grayscale(100%) opacity(80%);-moz-filter:grayscale(100%) opacity(80%);filter:grayscale(100%) opacity(80%);-webkit-box-shadow:inset 0 0px 1px rgba(0,0,0,0.3);box-shadow:inset 0 0px 1px rgba(0,0,0,0.3);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}.column li{list-style:none;padding:0px 5px 5px 5px;margin:10px 0;cursor:move;position:relative;background-color:#fff;border:1px solid #e5e5e5;border-bottom-color:#d8d8d8;box-shadow:1px 1px 5px rgba(162,162,162,0.36);line-height:1.4em;border-radius:3px}.column li:hover{box-shadow:1px 1px 7px #a2a2a2}.column li.assignee-accept{border-color:#0069D6;box-shadow:1px 1px 5px #0069D6}.column li .card-header{padding-top:5px;color:#444}.column li .title{font-size:14px;word-wrap:break-word;white-space:normal;text-overflow:clip;overflow:auto;text-decoration:none;color:black;display:block;width:100%;padding-right:29px;box-sizing:border-box;border-bottom:1px solid rgba(255,255,255,0)}.column li .title:hover{color:#08C;background-color:#fff;border-bottom:1px solid}.column li .milestone{color:#999;font-size:11px}.column li img{position:absolute;top:0;right:-1px;border-radius:0 3px 0 0}.column li a.close{position:absolute;top:12px;right:6px;width:16px;opacity:0.0}.column li:hover a.close{opacity:0.3}.column li a.close:hover{opacity:0.5}.column li a small{color:#999;padding-right:2px}.column .ui-sortable-placeholder{background:#ccc;list-style:none;padding:80px 5px 10px 5px;margin:10px 0}.column .ui-sortable-hover{background:#efefef}.filters{list-style:none;margin:10px 0 0;padding:0 10px 0 0;line-height:16px}.filters li{margin-bottom:3px;background:#fff;border-radius:4px;line-height:14px}.filters li.clear-filters,.filters li.clear-filters a{background:none;color:#666}.filters li.clear-filters{border-radius:0;border-bottom:1px solid #444}.filters li.clear-filters a:hover{color:#666}.filters li a{position:relative;padding:5px;display:block;padding-right:25px;padding-left:10px;text-decoration:none;border-radius:4px;color:#777}.filters li a strong{position:absolute;top:12px;right:10px}.filter a.active,.filter a.active:hover{background-color:#0069D6;color:#fff}.filter a.dim,.filter a.dim:hover{background-color:#0069D6;background-color:rgba(0,105,214,0.6);color:#fff}.filter .ui-icon{font-size:12px;height:12px;position:absolute;top:7px;right:7px;width:12px;display:none;opacity:0.8}.filter .ui-icon:hover{opacity:1}.filter a:hover{background-color:#efefef}.filter .dim:hover .ui-icon,.filter .active:hover .ui-icon{display:inline}.page-header-wrapper .header{font-size:18px;margin:0;line-height:20px}.page-header-wrapper .header .author{color:#08C;font-weight:normal}.page-header-wrapper .header .repo{color:#08C}.page-header-wrapper .header input{border:0;outline:none;background:#fff;vertical-align:baseline;line-height:20px;margin:4px 10px;padding:0 15px;font-size:16px;border-radius:17px}.assignee:hover img,.assignee.active img{-webkit-transform:scale(1.25);-moz-transform:scale(1.25);-ms-transform:scale(1.25);-o-transform:scale(1.25);transform:scale(1.25);-webkit-transition:all 0.2s ease-in 0.1s;-moz-transition:all 0.2s ease-in 0.1s;-ms-transition:all 0.2s ease-in 0.1s;-o-transition:all 0.2s ease-in 0.1s;transition:all 0.2s ease-in 0.1s}ol.assignees{margin:0}.assignee{list-style:none;line-height:28px;display:inline-block;margin:0 2px;cursor:pointer}.assignee.dim img{opacity:0.6;-webkit-transition:opacity 0.6s,ease-out;-moz-transition:opacity 0.6s,ease-out;-ms-transition:opacity 0.6s,ease-out;-o-transition:opacity 0.6s,ease-out;transition:opacity 0.6s,ease-out;-webkit-transition:filter 0.6s,ease-out;-moz-transition:filter 0.6s,ease-out;-ms-transition:filter 0.6s,ease-out;-o-transition:filter 0.6s,ease-out;transition:filter 0.6s,ease-out;-webkit-filter:grayscale(100%) opacity(80%);-moz-filter:grayscale(100%) opacity(80%);filter:grayscale(100%) opacity(80%);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}.assignee.inactive img{opacity:0.1}.page-header-wrapper ol{margin:0;padding:0;float:left;list-style:none}body,html{height:100%}#wrapper{height:auto !important;height:100%;min-height:100%;margin-bottom:-60px}#footer,#footer-pusher{min-height:60px}#footer{background-color:#f3f3f3;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f3f3f3),color-stop(100%, #f9f9f9));background-image:-webkit-linear-gradient(top, #f3f3f3,#f9f9f9);background-image:-moz-linear-gradient(top, #f3f3f3,#f9f9f9);background-image:-ms-linear-gradient(top, #f3f3f3,#f9f9f9);background-image:-o-linear-gradient(top, #f3f3f3,#f9f9f9);background-image:linear-gradient(top, #f3f3f3,#f9f9f9);border-top:1px solid #e5e5e5}#footer h2{-webkit-mask-image:-webkit-gradient(linear, left top, left bottom, from(#000), to(rgba(0,0,0,0.75)));color:#999;color:rgba(255,255,255,0.3);text-shadow:-1px -1px rgba(0,0,0,0.4)}.fullscreen-overlay{position:fixed;top:0px;left:0px;z-index:10;height:100%;width:100%;overflow-x:hidden;overflow-y:auto;background-color:rgba(243,243,243,0.8);display:none}.fullscreen-open{overflow:hidden}.fullscreen-open .fullscreen-overlay{display:block}.fullscreen-wrapper{margin:0px 60px}.fullscreen-card{position:relative;max-width:960px;background-color:#fff;margin:50px auto;border-radius:2px;border:1px solid rgba(0,0,0,0.3);padding:20px 0px;overflow:hidden}.fullscreen-card h2{margin:0;font-size:20px;line-height:28px}.fullscreen-card h3{margin:0;font-size:18px;line-height:26px}.fullscreen-header{margin:20px 0}.fullscreen-card-preamble .fullscreen-header{margin-top:0}.fullscreen-card-description p{-ms-word-break:break-all;word-break:break-all;word-break:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;hyphens:auto}.fullscreen-card-right{float:right;margin-right:20px;width:160px}.fullscreen-card-left{margin-left:20px;margin-right:200px;padding-right:10px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.fullscreen-card .card-comment{overflow:hidden;margin-bottom:10px}.fullscreen-card .card-comment>a{float:left}.fullscreen-card .comment-body{margin-left:40px}.fullscreen-card .comment-body .email-fragment{margin-bottom:10px}.fullscreen-card .comment-body .email-hidden-toggle{display:none}.labels{list-style:none;margin:0;padding:0}.labels h5{margin-top:0px}.labels li{margin-bottom:10px;border-radius:4px;cursor:pointer}.labels li span{position:relative;padding:10px;display:block;text-decoration:none;border-radius:4px;color:#777}.nav-section{background-color:#f6f6f6;padding:1px;border:1px solid #ccc;border-radius:2px}.nav-section>.widget-header{padding:0px 5px;border-bottom:1px solid #ccc;font-weight:bold}.nav-section>.widget-body{padding:5px;background-color:#fff}.widget-settings{zoom:1}.widget-settings:before,.widget-settings:after{content:"";display:table}.widget-settings:after{clear:both}.widget-settings .widget-action{float:left;width:30px}.widget-settings .widget-body{margin-left:30px}.widget-settings .widget-body>.widget-header{padding:0px 5px;border-bottom:1px solid #ccc;font-weight:bold}.nav-section .widget-header h3{margin-top:0;color:#999}.navbar{box-shadow:0 0 6px rgba(168,168,168,0.5);border-bottom:1px solid #E2E2E2}.navbar.navbar-fixed-top{position:fixed}.navbar.navbar-fixed-top .navbar-inner{padding:0;height:41px;overflow:hidden;-webkit-box-shadow:none;box-shadow:none}.navbar .header{font-size:18px;position:relative;left:0;display:block;float:left}.navbar .header .author{color:#08C;font-weight:normal}.navbar .header .repo{color:#08C;font-weight:bold}.navbar .header input{border:1px solid #e5e5e5;outline:none;background:#fff;vertical-align:baseline;line-height:30px;margin:4px 10px;padding:0 15px;font-size:18px;border-radius:17px}.navbar .navbar-inner{background-color:#f9f9f9;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f9f9f9),color-stop(100%, #f3f3f3));background-image:-webkit-linear-gradient(top, #f9f9f9,#f3f3f3);background-image:-moz-linear-gradient(top, #f9f9f9,#f3f3f3);background-image:-ms-linear-gradient(top, #f9f9f9,#f3f3f3);background-image:-o-linear-gradient(top, #f9f9f9,#f3f3f3);background-image:linear-gradient(top, #f9f9f9,#f3f3f3);border-bottom:1px solid #e5e5e5}.navbar .navbar-inner .nav a{-webkit-mask-image:-webkit-gradient(linear, left top, left bottom, from(#000), to(rgba(0,0,0,0.75)))}.navbar .nav>li>a:hover{border-top:3px solid #DD4B39;padding-top:7px}.navbar .nav>li.active>a,.navbar .nav>li.active>a:hover,.navbar .nav>li.active>.dropdown-toggle,.navbar .nav>li.active>.dropdown-toggle:hover,.navbar .nav>li.dropdown.open>a,.navbar .nav>li.dropdown.open>a:hover,.navbar .nav>li.dropdown.open>.dropdown-toggle,.navbar .nav>li.dropdown.open>.dropdown-toggle:hover{border-top:3px solid #2590D6;padding-top:7px;background:none;-webkit-box-shadow:none;box-shadow:none}.hide{display:none}.breadcrumb{margin:-43px 0 7px 0}#main-stage{margin-bottom:50px;margin-top:55px}#stage{min-width:1200px}.container-fluid{position:relative}.container-fluid>.sidebar{width:165px;position:absolute;border-right:1px solid #ccc;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.container-fluid>.content{margin-left:180px;position:relative}.drop-shadow{position:relative;padding:1em;background:#fff;border:1px solid #f2f2f2;border-bottom-color:#e5e5e5;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.4);box-shadow:0 1px 2px rgba(0,0,0,0.4)}.instructions{text-align:center;margin-top:60px}.instructions ol{width:30px;text-align:left;margin-left:auto;margin-right:auto} diff --git a/public/css/scss/_arrow.scss b/public/css/scss/_arrow.scss index d54b5448..4645eb34 100644 --- a/public/css/scss/_arrow.scss +++ b/public/css/scss/_arrow.scss @@ -1,7 +1,7 @@ .arrow { - margin-right: 20px; + margin-right: 15px; position: relative; box-sizing: border-box; margin-top: 0; @@ -15,19 +15,19 @@ position: absolute; pointer-events: none; border-radius: 2px; - } + } &:after { border-left-color: #f3f3f3; - border-width: 21px; + border-width: 14px; top: 50%; - margin-top: -21px; + margin-top: -14px; } &:before { border-left-color: #e5e5e5; - border-width: 22px; + border-width: 15px; top: 50%; - margin-top: -22px; + margin-top: -15px; } } diff --git a/public/css/scss/_board.scss b/public/css/scss/_board.scss index ebd9326b..8c086d59 100644 --- a/public/css/scss/_board.scss +++ b/public/css/scss/_board.scss @@ -53,9 +53,9 @@ } #drawer { position:absolute; - width:352px; + width:280px; top:0; - left:-640px; + left:-497px; .board, .backlog, .filters { background: #fff; @@ -82,7 +82,7 @@ } -.backlog { +.backlog { white-space: nowrap; overflow-x: auto; .column { @@ -101,7 +101,8 @@ .column h3 { line-height: 20px; margin-bottom: 10px; - padding: 10px; + padding: 3px; + padding-left: 10px; border: 1px solid #e5e5e5; background: #f3f3f3; @@ -139,16 +140,27 @@ .column li { list-style: none; - padding: 5px 5px 34px 5px; + padding: 0px 5px 5px 5px; margin: 10px 0; cursor:move; position:relative; background-color: #fff; border: 1px solid #e5e5e5; - border-bottom-color: darken(#e5e5e5, 5%); + border-bottom-color: darken(#e5e5e5, 5%); + box-shadow: 1px 1px 5px rgba(162, 162, 162, 0.36); + line-height: 1.4em; + border-radius:3px; + &:hover{ + box-shadow: 1px 1px 7px rgb(162,162,162); +} + &.assignee-accept { border-color: #0069D6; + box-shadow: 1px 1px 5px #0069D6; } + .card-labels { + } + /* .card-labels { position: absolute; bottom: -3px; @@ -180,38 +192,47 @@ } } } + */ .card-header { - border-bottom: 1px solid $borderColor; - padding: 5px 0; + /* Commented out until we have body stuff... + border-bottom: 1px solid $borderColor;*/ + padding-top: 5px; color: $darkGrey; } .title { - padding-right: 20px; + font-size: 14px; word-wrap: break-word; white-space: normal; text-overflow: clip; overflow:auto; - } + text-decoration: none; + color: black; + display: block; + width: 100%; + padding-right: 29px; + box-sizing: border-box; + border-bottom: 1px solid rgba(255, 255, 255, 0); + + &:hover { + //text-decoration: underline; + color: #08C; + background-color: lighten(#08C, 70%); + border-bottom:1px solid; + } + } .milestone { color: $lightGrey; font-size:11px; - } + } img { - position: absolute; - bottom:5px; - left: 5px; - } - .number { - position: absolute; - vertical-align: bottom; - bottom:5px; - right: 5px; - font-size:2em; - } + position: absolute; + top: 0; + right: -1px; + border-radius: 0 3px 0 0; + } } - .column li a.close { position: absolute; top: 12px; @@ -240,18 +261,18 @@ background:#efefef; } - - .filters { list-style: none; - margin:0; - padding:0 20px 0 0; + margin:10px 0 0; + padding:0 10px 0 0; +line-height: 16px; } .filters li { - margin-bottom: 10px; + margin-bottom: 3px; background: #fff; border-radius: 4px; + line-height: 14px; } .filters li.clear-filters, .filters li.clear-filters a { background: none; @@ -267,15 +288,16 @@ .filters li a { position:relative; - padding: 10px; + padding: 5px; display:block; padding-right:25px; + padding-left:10px; text-decoration: none; border-radius: 4px; color:#777; } -.filters li a strong { +.filters li a strong { position: absolute; top:12px; right:10px; @@ -294,10 +316,12 @@ .filter { .ui-icon { + font-size: 12px; + height:12px; position: absolute; - top: 13px; - right: 3px; - width: 22px; + top: 7px; + right: 7px; + width: 12px; display:none; opacity: 0.8; &:hover { @@ -309,7 +333,7 @@ background-color:#efefef; } - .dim:hover, .active:hover { + .dim:hover, .active:hover { .ui-icon { display:inline; } diff --git a/public/css/scss/_footer.scss b/public/css/scss/_footer.scss index 17a64398..057e33eb 100644 --- a/public/css/scss/_footer.scss +++ b/public/css/scss/_footer.scss @@ -7,7 +7,6 @@ body, html { height: auto !important; height: 100%; min-height: 100%; - margin-bottom: -$footer-height; } diff --git a/public/css/scss/_header.scss b/public/css/scss/_header.scss index 3a53c01a..4c48e4a0 100644 --- a/public/css/scss/_header.scss +++ b/public/css/scss/_header.scss @@ -1,5 +1,7 @@ -.header { - font-size: 24px; +.page-header-wrapper .header { + font-size: 18px; + margin:0; + line-height:20px; .author{ color: #08C; @@ -9,24 +11,28 @@ color: #08C; } input { - border: 0; - outline: 0; - background: #fff; - vertical-align: baseline; - line-height: 40px; - margin: 0; - padding:0; - font-size: 24px; + border: 0; + outline: none; + background: #fff; + vertical-align: baseline; + line-height: 20px; + margin: 4px 10px; + padding: 0 15px; + font-size: 16px; + border-radius: 17px; } } %grow { @include transform(scale(1.25)); @include transition (all 0.2s ease-in 0.1s); } +ol.assignees{ + margin:0; +} .assignee { list-style: none; - line-height: 40px; - float:left; + line-height: 28px; + display:inline-block; margin:0 2px; cursor:pointer; &:hover, &.active { @@ -49,7 +55,7 @@ ol { margin: 0; padding: 0; - float: right; + float: left; list-style: none; } } diff --git a/public/css/scss/_topbar.scss b/public/css/scss/_topbar.scss index d269f488..8cb6506d 100644 --- a/public/css/scss/_topbar.scss +++ b/public/css/scss/_topbar.scss @@ -1,10 +1,11 @@ - body { font-family: "ProximaNovaRegular", "Helvetica Neue", "HelveticaNeue", Helvetica, Arial, "Lucida Grande", sans-serif; } .navbar { - &.navbar-fixed-top, &.navbar-static-top { + + + &.navbar-fixed-top, &.navbar-static-top { .navbar-inner { @include box-shadow(none); } diff --git a/public/css/scss/application.v1.scss b/public/css/scss/application.v1.scss index 40d2fffb..62842650 100644 --- a/public/css/scss/application.v1.scss +++ b/public/css/scss/application.v1.scss @@ -10,11 +10,46 @@ @import "section"; .navbar { - &.navbar-fixed-top, &.navbar-static-top { + box-shadow: 0 0 6px rgba(168, 168, 168, 0.5); + border-bottom: 1px solid #E2E2E2; + &.navbar-fixed-top{ + position:fixed; .navbar-inner { + padding:0; + height: 41px; + overflow: hidden; @include box-shadow(none); } } + .header { + font-size: 18px; + position: relative; + left: 0; + display: block; + float: left; + + .author{ + color: #08C; + font-weight: normal; + } + .repo { + color: #08C; + font-weight:bold; + } + + input { + border: 1px solid #e5e5e5; + outline: none; + background: #fff; + vertical-align: baseline; + line-height: 30px; + margin: 4px 10px; + padding: 0 15px; + font-size: 18px; + border-radius: 17px; + } + } + .navbar-inner { @include linear-gradient(#F9F9F9, #F3F3F3); border-bottom: 1px solid #e5e5e5; @@ -43,6 +78,7 @@ } } + .hide {display:none;} .breadcrumb { @@ -51,18 +87,22 @@ #main-stage { margin-bottom: 50px; + margin-top: 55px; } +#stage{ + min-width: 1200px; +} .container-fluid { position:relative; > .sidebar { - width: 230px; + width: 165px; position: absolute; border-right: 1px solid #ccc; @include box-sizing(border-box); } > .content { - margin-left: 250px; + margin-left: 180px; position: relative; } } diff --git a/public/scripts/application.min.js b/public/scripts/application.min.js index 6ef9afe3..4c38f377 100644 --- a/public/scripts/application.min.js +++ b/public/scripts/application.min.js @@ -6,4 +6,4 @@ ;(function(a,b){var c="/",d=50,e=0,f=function(){},g=function(){var a;return function(b){var c=!1;return _.isString(b)?(c=b===a,a=b):(c=_.isEqual(b,a),a=_.clone(b)),!c}},h=function(a,b){this.exchange=a,this.topic=b};h.prototype={subscribe:function(a){var b=new i(this.exchange,this.topic,a);return l.configuration.bus.subscribe(b),b},publish:function(a){l.configuration.bus.publish({exchange:this.exchange,topic:this.topic,data:a,timeStamp:new Date})}};var i=function(a,b,c){this.exchange=a,this.topic=b,this.callback=c,this.priority=d,this.constraints=[],this.maxCalls=e,this.onHandled=f,this.context=null};i.prototype={unsubscribe:function(){l.configuration.bus.unsubscribe(this)},defer:function(){var a=this.callback;return this.callback=function(b){setTimeout(a,0,b)},this},disposeAfter:function(a){if(_.isNaN(a)||a<=0)throw"The value provided to disposeAfter (maxCalls) must be a number greater than zero.";var b=this.onHandled,c=_.after(a,_.bind(function(){this.unsubscribe(this)},this));return this.onHandled=function(){b.apply(this.context,arguments),c()},this},ignoreDuplicates:function(){return this.withConstraint(new g),this},whenHandledThenExecute:function(a){if(!_.isFunction(a))throw"Value provided to 'whenHandledThenExecute' must be a function";return this.onHandled=a,this},withConstraint:function(a){if(!_.isFunction(a))throw"Predicate constraint must be a function";return this.constraints.push(a),this},withConstraints:function(a){var b=this;return _.isArray(a)&&_.each(a,function(a){b.withConstraint(a)}),b},withContext:function(a){return this.context=a,this},withDebounce:function(a){if(_.isNaN(a))throw"Milliseconds must be a number";var b=this.callback;return this.callback=_.debounce(b,a),this},withDelay:function(a){if(_.isNaN(a))throw"Milliseconds must be a number";var b=this.callback;return this.callback=function(c){setTimeout(b,a,c)},this},withPriority:function(a){if(_.isNaN(a))throw"Priority must be a number";return this.priority=a,this},withThrottle:function(a){if(_.isNaN(a))throw"Milliseconds must be a number";var b=this.callback;return this.callback=_.throttle(b,a),this}};var j={cache:{},compare:function(a,b){if(this.cache[b]&&this.cache[b][a])return!0;var c=new RegExp("^"+this.regexify(a)+"$"),d=c.test(b);return d&&(this.cache[b]||(this.cache[b]={}),this.cache[b][a]=!0),d},regexify:function(a){return a.replace(/\./g,"\\.").replace(/\*/g,".*").replace(/#/g,"[A-Z,a-z,0-9]*")}},k={subscriptions:{},wireTaps:[],publish:function(a){_.each(this.wireTaps,function(b){b({exchange:a.exchange,topic:a.topic,data:a.data,timeStamp:a.timeStamp})}),_.each(this.subscriptions[a.exchange],function(b){_.each(b,function(b){l.configuration.resolver.compare(b.topic,a.topic)&&_.all(b.constraints,function(b){return b(a.data)})&&typeof b.callback=="function"&&(b.callback.apply(b.context,[a.data]),b.onHandled())})})},subscribe:function(a){var b,c,d;this.subscriptions[a.exchange]||(this.subscriptions[a.exchange]={}),this.subscriptions[a.exchange][a.topic]||(this.subscriptions[a.exchange][a.topic]=[]),b=this.subscriptions[a.exchange][a.topic].length-1;if(!_.any(this.subscriptions[a.exchange][a.topic],function(b){return b===a})){for(;b>=0;b--)if(this.subscriptions[a.exchange][a.topic][b].priority<=a.priority){this.subscriptions[a.exchange][a.topic].splice(b+1,0,a),c=!0;break}c||this.subscriptions[a.exchange][a.topic].unshift(a)}return _.bind(function(){this.unsubscribe(a)},this)},unsubscribe:function(a){if(this.subscriptions[a.exchange][a.topic]){var b=this.subscriptions[a.exchange][a.topic].length,c=0;for(;c').appendTo(document.body),this.options.backdrop!="static"&&this.$backdrop.click(a.proxy(this.hide,this)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),e?this.$backdrop.one(a.support.transition.end,b):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,a.proxy(this.removeBackdrop,this)):this.removeBackdrop()):b&&b()}},a.fn.modal=function(c){return this.each(function(){var d=a(this),e=d.data("modal"),f=a.extend({},a.fn.modal.defaults,d.data(),typeof c=="object"&&c);e||d.data("modal",e=new b(this,f)),typeof c=="string"?e[c]():f.show&&e.show()})},a.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},a.fn.modal.Constructor=b,a(function(){a("body").on("click.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f).one("hide",function(){c.focus()})})})}(window.jQuery),!function(a){function d(){e(a(b)).removeClass("open")}function e(b){var c=b.attr("data-target"),d;return c||(c=b.attr("href"),c=c&&c.replace(/.*(?=#[^\s]*$)/,"")),d=a(c),d.length||(d=b.parent()),d}var b="[data-toggle=dropdown]",c=function(b){var c=a(b).on("click.dropdown.data-api",this.toggle);a("html").on("click.dropdown.data-api",function(){c.parent().removeClass("open")})};c.prototype={constructor:c,toggle:function(b){var c=a(this),f,g;if(c.is(".disabled, :disabled"))return;return f=e(c),g=f.hasClass("open"),d(),g||(f.toggleClass("open"),c.focus()),!1},keydown:function(b){var c,d,f,g,h,i;if(!/(38|40|27)/.test(b.keyCode))return;c=a(this),b.preventDefault(),b.stopPropagation();if(c.is(".disabled, :disabled"))return;g=e(c),h=g.hasClass("open");if(!h||h&&b.keyCode==27)return c.click();d=a("[role=menu] li:not(.divider) a",g);if(!d.length)return;i=d.index(d.filter(":focus")),b.keyCode==38&&i>0&&i--,b.keyCode==40&&i a",this.$body=a("body"),this.refresh(),this.process()}b.prototype={constructor:b,refresh:function(){var b=this,c;this.offsets=a([]),this.targets=a([]),c=this.$body.find(this.selector).map(function(){var b=a(this),c=b.data("target")||b.attr("href"),d=/^#\w/.test(c)&&a(c);return d&&d.length&&[[d.position().top,c]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},process:function(){var a=this.$scrollElement.scrollTop()+this.options.offset,b=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,c=b-this.$scrollElement.height(),d=this.offsets,e=this.targets,f=this.activeTarget,g;if(a>=c)return f!=(g=e.last()[0])&&this.activate(g);for(g=d.length;g--;)f!=e[g]&&a>=d[g]&&(!d[g+1]||a<=d[g+1])&&this.activate(e[g])},activate:function(b){var c,d;this.activeTarget=b,a(this.selector).parent(".active").removeClass("active"),d=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',c=a(d).parent("li").addClass("active"),c.parent(".dropdown-menu").length&&(c=c.closest("li.dropdown").addClass("active")),c.trigger("activate")}},a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("scrollspy"),f=typeof c=="object"&&c;e||d.data("scrollspy",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.defaults={offset:10},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),!function(a){var b=function(b){this.element=a(b)};b.prototype={constructor:b,show:function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target"),e,f,g;d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,""));if(b.parent("li").hasClass("active"))return;e=c.find(".active a").last()[0],g=a.Event("show",{relatedTarget:e}),b.trigger(g);if(g.isDefaultPrevented())return;f=a(d),this.activate(b.parent("li"),c),this.activate(f,f.parent(),function(){b.trigger({type:"shown",relatedTarget:e})})},activate:function(b,c,d){function g(){e.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),f?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var e=c.find("> .active"),f=d&&a.support.transition&&e.hasClass("fade");f?e.one(a.support.transition.end,g):g(),e.removeClass("in")}},a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("tab");e||d.data("tab",e=new b(this)),typeof c=="string"&&e[c]()})},a.fn.tab.Constructor=b,a(function(){a("body").on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})})}(window.jQuery),!function(a){var b=function(a,b){this.init("tooltip",a,b)};b.prototype={constructor:b,init:function(b,c,d){var e,f;this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.enabled=!0,this.options.trigger=="click"?this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this)):this.options.trigger!="manual"&&(e=this.options.trigger=="hover"?"mouseenter":"focus",f=this.options.trigger=="hover"?"mouseleave":"blur",this.$element.on(e+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(f+"."+this.type,this.options.selector,a.proxy(this.leave,this))),this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(b){return b=a.extend({},a.fn[this.type].defaults,b,this.$element.data()),b.delay&&typeof b.delay=="number"&&(b.delay={show:b.delay,hide:b.delay}),b},enter:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);if(!c.options.delay||!c.options.delay.show)return c.show();clearTimeout(this.timeout),c.hoverState="in",this.timeout=setTimeout(function(){c.hoverState=="in"&&c.show()},c.options.delay.show)},leave:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!c.options.delay||!c.options.delay.hide)return c.hide();c.hoverState="out",this.timeout=setTimeout(function(){c.hoverState=="out"&&c.hide()},c.options.delay.hide)},show:function(){var a,b,c,d,e,f,g;if(this.hasContent()&&this.enabled){a=this.tip(),this.setContent(),this.options.animation&&a.addClass("fade"),f=typeof this.options.placement=="function"?this.options.placement.call(this,a[0],this.$element[0]):this.options.placement,b=/in/.test(f),a.remove().css({top:0,left:0,display:"block"}).appendTo(b?this.$element:document.body),c=this.getPosition(b),d=a[0].offsetWidth,e=a[0].offsetHeight;switch(b?f.split(" ")[1]:f){case"bottom":g={top:c.top+c.height,left:c.left+c.width/2-d/2};break;case"top":g={top:c.top-e,left:c.left+c.width/2-d/2};break;case"left":g={top:c.top+c.height/2-e/2,left:c.left-d};break;case"right":g={top:c.top+c.height/2-e/2,left:c.left+c.width}}a.css(g).addClass(f).addClass("in")}},setContent:function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},hide:function(){function d(){var b=setTimeout(function(){c.off(a.support.transition.end).remove()},500);c.one(a.support.transition.end,function(){clearTimeout(b),c.remove()})}var b=this,c=this.tip();return c.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d():c.remove(),this},fixTitle:function(){var a=this.$element;(a.attr("title")||typeof a.attr("data-original-title")!="string")&&a.attr("data-original-title",a.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(b){return a.extend({},b?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||(typeof c.title=="function"?c.title.call(b[0]):c.title),a},tip:function(){return this.$tip=this.$tip||a(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(){this[this.tip().hasClass("in")?"hide":"show"]()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}},a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("tooltip"),f=typeof c=="object"&&c;e||d.data("tooltip",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'
',trigger:"hover",title:"",delay:0,html:!0}}(window.jQuery),!function(a){var b=function(a,b){this.init("popover",a,b)};b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype,{constructor:b,setContent:function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content > *")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-content")||(typeof c.content=="function"?c.content.call(b[0]):c.content),a},tip:function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}}),a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("popover"),f=typeof c=="object"&&c;e||d.data("popover",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.defaults=a.extend({},a.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'

'})}(window.jQuery),!function(a){var b=function(b,c){this.options=a.extend({},a.fn.affix.defaults,c),this.$window=a(window).on("scroll.affix.data-api",a.proxy(this.checkPosition,this)),this.$element=a(b),this.checkPosition()};b.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var b=a(document).height(),c=this.$window.scrollTop(),d=this.$element.offset(),e=this.options.offset,f=e.bottom,g=e.top,h="affix affix-top affix-bottom",i;typeof e!="object"&&(f=g=e),typeof g=="function"&&(g=e.top()),typeof f=="function"&&(f=e.bottom()),i=this.unpin!=null&&c+this.unpin<=d.top?!1:f!=null&&d.top+this.$element.height()>=b-f?"bottom":g!=null&&c<=g?"top":!1;if(this.affixed===i)return;this.affixed=i,this.unpin=i=="bottom"?d.top-c:null,this.$element.removeClass(h).addClass("affix"+(i?"-"+i:""))},a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("affix"),f=typeof c=="object"&&c;e||d.data("affix",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.defaults={offset:0},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery),!function(a){var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function f(){e.trigger("closed").remove()}var c=a(this),d=c.attr("data-target"),e;d||(d=c.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),e=a(d),b&&b.preventDefault(),e.length||(e=c.hasClass("alert")?c:c.parent()),e.trigger(b=a.Event("close"));if(b.isDefaultPrevented())return;e.removeClass("in"),a.support.transition&&e.hasClass("fade")?e.on(a.support.transition.end,f):f()},a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("alert");e||d.data("alert",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.alert.Constructor=c,a(function(){a("body").on("click.alert.data-api",b,c.prototype.close)})}(window.jQuery),!function(a){var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.button.defaults,c)};b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.data(),e=c.is("input")?"val":"html";a+="Text",d.resetText||c.data("resetText",c[e]()),c[e](d[a]||this.options[a]),setTimeout(function(){a=="loadingText"?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.parent('[data-toggle="buttons-radio"]');a&&a.find(".active").removeClass("active"),this.$element.toggleClass("active")},a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("button"),f=typeof c=="object"&&c;e||d.data("button",e=new b(this,f)),c=="toggle"?e.toggle():c&&e.setState(c)})},a.fn.button.defaults={loadingText:"loading..."},a.fn.button.Constructor=b,a(function(){a("body").on("click.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle")})})}(window.jQuery),!function(a){var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.collapse.defaults,c),this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.prototype={constructor:b,dimension:function(){var a=this.$element.hasClass("width");return a?"width":"height"},show:function(){var b,c,d,e;if(this.transitioning)return;b=this.dimension(),c=a.camelCase(["scroll",b].join("-")),d=this.$parent&&this.$parent.find("> .accordion-group > .in");if(d&&d.length){e=d.data("collapse");if(e&&e.transitioning)return;d.collapse("hide"),e||d.data("collapse",null)}this.$element[b](0),this.transition("addClass",a.Event("show"),"shown"),a.support.transition&&this.$element[b](this.$element[0][c])},hide:function(){var b;if(this.transitioning)return;b=this.dimension(),this.reset(this.$element[b]()),this.transition("removeClass",a.Event("hide"),"hidden"),this.$element[b](0)},reset:function(a){var b=this.dimension();return this.$element.removeClass("collapse")[b](a||"auto")[0].offsetWidth,this.$element[a!==null?"addClass":"removeClass"]("collapse"),this},transition:function(b,c,d){var e=this,f=function(){c.type=="show"&&e.reset(),e.transitioning=0,e.$element.trigger(d)};this.$element.trigger(c);if(c.isDefaultPrevented())return;this.transitioning=1,this.$element[b]("in"),a.support.transition&&this.$element.hasClass("collapse")?this.$element.one(a.support.transition.end,f):f()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}},a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("collapse"),f=typeof c=="object"&&c;e||d.data("collapse",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.collapse.defaults={toggle:!0},a.fn.collapse.Constructor=b,a(function(){a("body").on("click.collapse.data-api","[data-toggle=collapse]",function(b){var c=a(this),d,e=c.attr("data-target")||b.preventDefault()||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),f=a(e).data("collapse")?"toggle":c.data();c[a(e).hasClass("in")?"addClass":"removeClass"]("collapsed"),a(e).collapse(f)})})}(window.jQuery),!function(a){var b=function(b,c){this.$element=a(b),this.options=c,this.options.slide&&this.slide(this.options.slide),this.options.pause=="hover"&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.prototype={cycle:function(b){return b||(this.paused=!1),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},to:function(b){var c=this.$element.find(".item.active"),d=c.parent().children(),e=d.index(c),f=this;if(b>d.length-1||b<0)return;return this.sliding?this.$element.one("slid",function(){f.to(b)}):e==b?this.pause().cycle():this.slide(b>e?"next":"prev",a(d[b]))},pause:function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle()),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g=b=="next"?"left":"right",h=b=="next"?"first":"last",i=this,j=a.Event("slide",{relatedTarget:e[0]});this.sliding=!0,f&&this.pause(),e=e.length?e:this.$element.find(".item")[h]();if(e.hasClass("active"))return;if(a.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(j);if(j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),this.$element.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)})}else{this.$element.trigger(j);if(j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}},a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("carousel"),f=a.extend({},a.fn.carousel.defaults,typeof c=="object"&&c),g=typeof c=="string"?c:f.slide;e||d.data("carousel",e=new b(this,f)),typeof c=="number"?e.to(c):g?e[g]():f.interval&&e.cycle()})},a.fn.carousel.defaults={interval:5e3,pause:"hover"},a.fn.carousel.Constructor=b,a(function(){a("body").on("click.carousel.data-api","[data-slide]",function(b){var c=a(this),d,e=a(c.attr("data-target")||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,"")),f=!e.data("modal")&&a.extend({},e.data(),c.data());e.carousel(f),b.preventDefault()})})}(window.jQuery),!function(a){var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.typeahead.defaults,c),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.$menu=a(this.options.menu).appendTo("body"),this.source=this.options.source,this.shown=!1,this.listen()};b.prototype={constructor:b,select:function(){var a=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(a)).change(),this.hide()},updater:function(a){return a},show:function(){var b=a.extend({},this.$element.offset(),{height:this.$element[0].offsetHeight});return this.$menu.css({top:b.top+b.height,left:b.left}),this.$menu.show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(b){var c;return this.query=this.$element.val(),!this.query||this.query.length"+b+""})},render:function(b){var c=this;return b=a(b).map(function(b,d){return b=a(c.options.item).attr("data-value",d),b.find("a").html(c.highlighter(d)),b[0]}),b.first().addClass("active"),this.$menu.html(b),this},next:function(b){var c=this.$menu.find(".active").removeClass("active"),d=c.next();d.length||(d=a(this.$menu.find("li")[0])),d.addClass("active")},prev:function(a){var b=this.$menu.find(".active").removeClass("active"),c=b.prev();c.length||(c=this.$menu.find("li").last()),c.addClass("active")},listen:function(){this.$element.on("blur",a.proxy(this.blur,this)).on("keypress",a.proxy(this.keypress,this)).on("keyup",a.proxy(this.keyup,this)),(a.browser.webkit||a.browser.msie)&&this.$element.on("keydown",a.proxy(this.keydown,this)),this.$menu.on("click",a.proxy(this.click,this)).on("mouseenter","li",a.proxy(this.mouseenter,this))},move:function(a){if(!this.shown)return;switch(a.keyCode){case 9:case 13:case 27:a.preventDefault();break;case 38:a.preventDefault(),this.prev();break;case 40:a.preventDefault(),this.next()}a.stopPropagation()},keydown:function(b){this.suppressKeyPressRepeat=!~a.inArray(b.keyCode,[40,38,9,13,27]),this.move(b)},keypress:function(a){if(this.suppressKeyPressRepeat)return;this.move(a)},keyup:function(a){switch(a.keyCode){case 40:case 38:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}a.stopPropagation(),a.preventDefault()},blur:function(a){var b=this;setTimeout(function(){b.hide()},150)},click:function(a){a.stopPropagation(),a.preventDefault(),this.select()},mouseenter:function(b){this.$menu.find(".active").removeClass("active"),a(b.currentTarget).addClass("active")}},a.fn.typeahead=function(c){return this.each(function(){var d=a(this),e=d.data("typeahead"),f=typeof c=="object"&&c;e||d.data("typeahead",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.typeahead.defaults={source:[],items:8,menu:'',item:'
  • ',minLength:1},a.fn.typeahead.Constructor=b,a(function(){a("body").on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(b){var c=a(this);if(c.data("typeahead"))return;b.preventDefault(),c.typeahead(c.data())})})}(window.jQuery) -;define("marker",{}),define("backlog/collections/issues",[],function(){var e={fetch:function(e,t){var n=this;$.ajax({url:"/api/"+e+"/"+t+"/backlog",dataType:"json",success:function(e){n.trigger("ondatareceived",e)}})}};return _.extend(e,Backbone.Events),e}),function(){var e=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],t=/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,n=/]*>\s*([\s\S]+)\s*<\/body>/im,r=typeof location!="undefined"&&location.href,i=r&&location.protocol&&location.protocol.replace(/\:/,""),s=r&&location.hostname,o=r&&(location.port||undefined),u=[];define("text",[],function(){var a,f,l;return typeof window!="undefined"&&window.navigator&&window.document?f=function(e,t){var n=a.createXhr();n.open("GET",e,!0),n.onreadystatechange=function(e){n.readyState===4&&t(n.responseText)},n.send(null)}:typeof process!="undefined"&&process.versions&&!!process.versions.node?(l=require.nodeRequire("fs"),f=function(e,t){t(l.readFileSync(e,"utf8"))}):typeof Packages!="undefined"&&(f=function(e,t){var n="utf-8",r=new java.io.File(e),i=java.lang.System.getProperty("line.separator"),s=new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(r),n)),o,u,a="";try{o=new java.lang.StringBuffer,u=s.readLine(),u&&u.length()&&u.charAt(0)===65279&&(u=u.substring(1)),o.append(u);while((u=s.readLine())!==null)o.append(i),o.append(u);a=String(o.toString())}finally{s.close()}t(a)}),a={version:"0.27.1",strip:function(e){if(e){e=e.replace(t,"");var r=e.match(n);r&&(e=r[1])}else e="";return e},jsEscape:function(e){return e.replace(/(['\\])/g,"\\$1").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r")},createXhr:function(){var t,n,r;if(typeof XMLHttpRequest!="undefined")return new XMLHttpRequest;for(n=0;n<3;n++){r=e[n];try{t=new ActiveXObject(r)}catch(i){}if(t){e=[r];break}}if(!t)throw new Error("createXhr(): XMLHttpRequest not available");return t},get:f,parseName:function(e){var t=!1,n=e.indexOf("."),r=e.substring(0,n),i=e.substring(n+1,e.length);return n=i.indexOf("!"),n!==-1&&(t=i.substring(n+1,i.length),t=t==="strip",i=i.substring(0,n)),{moduleName:r,ext:i,strip:t}},xdRegExp:/^((\w+)\:)?\/\/([^\/\\]+)/,useXhr:function(e,t,n,r){var i=a.xdRegExp.exec(e),s,o,u;return i?(s=i[2],o=i[3],o=o.split(":"),u=o[1],o=o[0],(!s||s===t)&&(!o||o===n)&&(!u&&!o||u===r)):!0},finishLoad:function(e,t,n,r,i){n=t?a.strip(n):n,i.isBuild&&i.inlineText&&(u[e]=n),r(n)},load:function(e,t,n,u){var f=a.parseName(e),l=f.moduleName+"."+f.ext,c=t.toUrl(l),h=u&&u.text&&u.text.useXhr||a.useXhr;!r||h(c,i,s,o)?a.get(c,function(t){a.finishLoad(e,f.strip,t,n,u)}):t([l],function(e){a.finishLoad(f.moduleName+"."+f.ext,f.strip,e,n,u)})},write:function(e,t,n,r){if(t in u){var i=a.jsEscape(u[t]);n.asModule(e+"!"+t,"define(function () { return '"+i+"';});\n")}},writeFile:function(e,t,n,r,i){var s=a.parseName(t),o=s.moduleName+"."+s.ext,u=n.toUrl(s.moduleName+"."+s.ext)+".js";a.load(o,n,function(t){var n=function(e){return r(u,e)};n.asModule=function(e,t){return r.asModule(e,u,t)},a.write(e,o,n,i)},i)}},a})}(),define("text!backlog/templates/board.html",[],function(){return'
    \n
    \n'}),define("text!backlog/templates/column.html",[],function(){return'

    <%- milestone.title %>

    \n
      \n'}),define("text!backlog/templates/card.html",[],function(){return'\n
      \n
      \n <%- title %>\n
      \n #<%= number %>\n
      \n<% if(assignee) { %>\n \n<% } %>\n\n<% if(milestone) { %>\n
      \n Milestone: <%- milestone.title %>\n
      \n<% } %>\n<% if (pull_request.html_url) { %>Pull request <%}%>\n
      \n<% _(other_labels).each(function(l) { %>\n
      \n
      \n
      \n
      \n <%- l.name %> \n
      \n
      \n\n<% }); %>\n\n
      \n'}),define("common/events/postal",["socket"],function(e){function t(){return((1+Math.random())*65536|0).toString(16).substring(1)}function n(){return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()}var r={},i=n();return{correlationId:i,subscribe:function(e,t){postal.channel(e).subscribe(t)},channel:function(e){return postal.channel(e)},publish:function(e,t){postal.channel(e).publish(t)},socket:function(t,n,s){if(!e)return;var o=postal.channel(t);postal.channel(n).subscribe(s);if(r[t])return;r[t]=t,e.on(t,function(e){e.correlationId!==i&&postal.channel(e.event).publish(e.payload)})}}}),define("backlog/models/card",["../../common/events/postal"],function(e){var t=function(e){this.attributes=e.model,this.user=e.user,this.repo=e.repo};return _.extend(t.prototype,{save:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/assignmilestone",{milestone:t.milestone,issue:this.attributes,correlationId:e.correlationId},function(e){})},close:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/close",{index:t.index,issue:this.attributes,correlationId:e.correlationId},function(e){})},assign:function(t){this.attributes.assignee=t,$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/assigncard",{issue:this.attributes,correlationId:e.correlationId,assignee:t.login},function(e){})},reorder:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/reorderissue",{index:t.order,issue:this.attributes,correlationId:e.correlationId},function(e){})}}),t}),define("backlog/views/cardView",["text!../templates/card.html","../models/card","../../common/events/postal"],function(e,t,n){return Backbone.View.extend({initialize:function(e){this.issue=new t({model:e.issue,user:e.user,repo:e.repo}),_.bind(this,"moved",this.moved),_.bind(this,"reorder",this.drop),n.subscribe("Filter.Simple",$.proxy(this.simpleFilter,this)),n.subscribe("Filter.Complex",$.proxy(this.complexFilter,this)),n.socket(e.user+"/"+e.repo,"Closed."+e.issue.number,$.proxy(this.onClosed,this)),n.socket(e.user+"/"+e.repo,"Assigned."+e.issue.number,$.proxy(this.onAssigned,this)),n.socket(e.user+"/"+e.repo,"Updated."+e.issue.number,$.proxy(this.onUpdated,this)),this.filtersHash={simple:{},complex:{}}},events:{moved:"moved","click .close":"closed",drop:"dropped",reorder:"drop","click .number":"onNumber",click:"fullscreen"},tagName:"li",onMoved:function(e){n.publish("Moved.Socket."+e.index,{card:this})},onNumber:function(e){e.stopPropagation()},onUpdated:function(e){this.issue.attributes=_.extend(this.issue.attributes,e.issue),this.render(),this.transition()},onClosed:function(){this.remove(),n.publish("Closed.Issue",{card:this})},fullscreen:function(e){n.publish("Card.Fullscreen",this.issue)},render:function(){$(this.el).html(_.template(e,this.issue.attributes)).droppable({scope:"assignee",hoverClass:"assignee-accept"}).data("issue",this.issue.attributes);if(this.issue.attributes.repo.color){var t=$.Color("#"+this.issue.attributes.repo.color),n="3px solid "+$.Color(t.alpha(.5)).toRgbaString();$(this.el).css({"border-left":n})}return this},moved:function(e,t){this.issue.save({milestone:t.milestone})},dropped:function(e,t){var n=$(t.draggable).data("assignee");this.issue.assign(n),this.onAssigned({assignee:n})},onAssigned:function(e){this.issue.attributes.assignee=e.assignee,this.render()},closed:function(e,t){e.preventDefault(),this.issue.close({index:t}),this.remove(),n.publish("Closed.Issue",{card:this})},transition:function(){var e=[],t=this;setTimeout(function(){for(var n in t.filtersHash.simple)e.push(t.filtersHash.simple[n]);var r=_.filter(e,function(e){return e.state===1}),i=_.filter(e,function(e){return e.state===2});if(_.any(i,function(e){return!e.condition(t.issue.attributes)})){$(t.el).addClass("hide").removeClass("dim active");return}if(_.any(r,function(e){return!e.condition(t.issue.attributes)})){$(t.el).addClass("dim").removeClass("hide active");return}$(t.el).removeClass("dim hide active"),(r.length||i.length)&&$(t.el).addClass("active")},0)},simpleFilter:function(e){var t=this;this.filtersHash.simple[e.id]=e,this.transition()},drop:function(e,t){this.issue.reorder({order:t})}})}),define("backlog/models/milestone",[],function(){var e=function(e){this.attributes=e.model,this.user=e.user,this.repo=e.repo};return _.extend(e.prototype,{save:function(e){if(!e.order||e.order===0)console.error("something wrong happened index should not be 0"),console.log("falling back to original number",this.attributes.number),e.order=this.attributes.number;$.post("/api/"+this.user+"/"+this.repo+"/reordermilestone",{index:e.order,status:e.status,milestone:this.attributes},function(e){})}}),e}),define("backlog/views/columnView",["text!../templates/column.html","./cardView","../../common/events/postal","../models/milestone"],function(e,t,n,r){var i=Backbone.View.extend({initialize:function(e){this.column=e.column,this.repo=e.repo,this.user=e.user,this.milestone=new r({model:this.column.milestone,user:e.user,repo:e.repo}),_.bind("reordered",this.reordered)},tagName:"div",className:"column",events:{reorder:"reordered"},reordered:function(e,t){this.milestone.save(t)},onOpened:function(e){var r=new t({issue:e,user:this.user,repo:this.repo});$("ul",this.el).append(r.render().el),n.publish("Opened.Issue",e)},onSocket:function(e){var t=$("li",this.el),n=t.index(e.card.el);if(n!==-1)return;$("ul",this.el).append(e.card.el)},render:function(){var n=$(_.template(e,this.column)),r=this,i=_.map(this.column.issues,function(e){var n=new t({issue:e,user:r.user,repo:r.repo});return n.render().el});return $(this.el).append(n).data("milestone",this.column.milestone).find("ul").append(i),$("ul",this.el).sortable({helper:"clone",connectWith:".sortable",placeholder:"ui-sortable-placeholder",receive:$.proxy(this.onReceive,this),remove:$.proxy(this.onRemove,this),over:$.proxy(this.onOver,this),update:$.proxy(this.onStop,this),out:$.proxy(this.onOut,this)}),this},onReceive:function(e,t){$(t.item).trigger("moved",this.column)},onRemove:function(e,t){},onOver:function(e,t){$("ul",this.el).addClass("ui-sortable-hover")},onOut:function(e,t){$("ul",this.el).removeClass("ui-sortable-hover")},onStop:function(e,t){var n=$("li",this.el),r=n.index(t.item);if(r===-1)return;var i=r===0,s=r===n.size()-1,o=$(t.item),u=o.data("issue"),a=n.get(r?r-1:r),f=n.index(a),l=$(a).data("issue"),c=n.get(n.size()-1>r?r+1:r),h=n.index(c),p=$(c).data("issue"),d=u._data.order||u.number,v=l._data.order||l.number,m=p._data.order||p.number;if(i&&s)return;i?(u._data.order=(m||1)/2,o.trigger("reorder",u._data.order).data("issue",u)):s?(u._data.order=v+1,o.trigger("reorder",u._data.order).data("issue",u)):(u._data.order=(m+v||1)/2,o.trigger("reorder",u._data.order).data("issue",u))}});return i}),define("backlog/views/filterView",["../../common/events/postal"],function(e){return jQuery.Color.fn.contrastColor=function(){var e=this._rgba[0],t=this._rgba[1],n=this._rgba[2];return(e*299+t*587+n*144)/1e3>=131.5?"#333":"white"},Backbone.View.extend({tagName:"li",className:"filter",initialize:function(e){this.params=e,this.condition=e.condition,this.name=e.name,this.type=e.type||"Simple",this.state=0,this.states=[0,1,2,0]},events:{click:"clicked",clear:"clearAndPublish","click .ui-icon":"clearAndPublish"},render:function(){return $(this.el).html(""+this.name+"").addClass("-x"+this.params.color.substring(1)).data("filter",this),this},clicked:function(e){e.preventDefault();switch(this.state=this.states[this.state+1]){case 0:this.clear();break;case 1:this.fade();break;case 2:this.solid()}this.publish()},clear:function(){$(this.el).find("a").removeClass("dim").removeClass("active")},publish:function(){e.publish("Filter."+this.type,{id:this.cid,condition:this.condition,state:this.state})},clearAndPublish:function(e){return e.preventDefault(),this.state=0,this.publish(),this.clear(),!1},fade:function(){$(this.el).find("a").addClass("dim").removeClass("active")},solid:function(){$(this.el).find("a").addClass("active").removeClass("dim")}})}),define("backlog/views/sidebarView",["../../common/events/postal","./filterView"],function(e,t){return Backbone.View.extend({tagName:"ul",className:"filters",initialize:function(e){this.login=e.params.login,this.labels=e.data.other_labels},render:function(){var e=$(this.el),n=this.login,r=(new t({color:"#0069D6",name:"Assigned to me",condition:function(e){return e.assignee&&e.assignee.login===n}})).render(),i=(new t({color:"#0069D6",name:"Assigned to others",condition:function(e){return e.assignee&&e.assignee.login!==n}})).render(),s=(new t({color:"#0069D6",name:"Unassigned issues",condition:function(e){return!e.assignee}})).render(),o=$([r.el,i.el,s.el]);e.append(o),o.click(function(e){e.preventDefault();var t=$(this),n=t.data("filter"),r=_(o).filter(function(e){var t=$(e).data("filter");return n.cid!==t.cid&&t.state!==0});_(r).each(function(e){$(e).trigger("clear")})});var u=_.map(this.labels,function(e){return(new t({color:"#"+e.color,name:e.name,condition:function(t){return _.any(t.labels,function(t){return t.name.toLocaleLowerCase()===e.name.toLocaleLowerCase()})}})).render().el});return e.append("
      Labels
      "),e.append(u),this}})}),define("backlog/views/headerView",["../../common/events/postal"],function(e){return Backbone.View.extend({el:$(".page-header-wrapper"),events:{"keyup input":"onkeyup"},initialize:function(t){var n=this;this.publish=_.debounce(function(){var t=$(n.el).find("input").val();e.publish("Filter.Simple",{id:"search",condition:function(e){return e.title.toLocaleLowerCase().indexOf(t.toLocaleLowerCase())!==-1},state:2})},300)},onkeyup:function(e){this.publish()}})}),define("text!common/templates/assignee.html",[],function(){return'
    • \n <%= login %>\n
    • \n'}),define("common/views/assigneeView",["../../common/events/postal","text!../templates/assignee.html"],function(e,t){return Backbone.View.extend({el:$(".page-header-wrapper"),initialize:function(e){var t=this;t.data=e.data,t.state=0,t.classes=[["",""],["dim","active"],["hide","active"]],t.render()},events:{"click li":"filter"},filter:function(t){var n=this,r=$(t.currentTarget),i=r.data("login"),s=n.state;s=(s+1)%3,console.log("assignee state %f",s),e.publish("Filter.Simple",{condition:function(e){return e.assignee&&e.assignee.login===i},state:s}),s===1&&(n.$("li").removeClass("active inactive").addClass("dim"),r.removeClass("dim").addClass("active")),s===2&&(n.$("li").removeClass("active inactive").addClass("inactive"),r.removeClass("dim inactive").addClass("active")),s===0&&n.$("li").removeClass("dim active inactive"),n.state=s},render:function(){var e=$(this.el).find("ol"),n=_(this.data.assignees).chain().map(function(e){return $(_.template(t,e)).data("assignee",e)}).value();return e.append(n),e.find("li").draggable({helper:"clone",scope:"assignee",zIndex:100,appendTo:"body"}),this}})}),define("text!backlog/templates/css.html",[],function(){return'<% \n_(["filter","card-label"]).each(function(name){\n _(other_labels).each(function(l) {\n%>\n .<%= name %>.-x<%= l.color %>.active, .<%= name %>.-x<%= l.color %>.active:hover {\n background-color: #<%= l.color %>;\n background-color: <%= $.Color("#" + l.color).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n\n .<%= name %>.-x<%= l.color %> .active, .<%= name %>.-x<%= l.color %> .active:hover {\n background-color: #<%= l.color %>;\n background-color: <%= $.Color("#" + l.color).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n \n .<%= name %>.-x<%= l.color %>.dim, .<%= name %>.-x<%= l.color %>.dim:hover {\n background-color: <%= $.Color($.Color("#" + l.color).alpha(0.6)).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n\n .<%= name %>.-x<%= l.color %> .dim , .<%= name %>.-x<%= l.color %> .dim:hover {\n background-color: <%= $.Color($.Color("#" + l.color).alpha(0.6)).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n\n <%})});%>\n'}),define("backlog/views/cssView",["../collections/issues","text!../templates/css.html"],function(e,t){e.bind("ondatareceived",function(e){var n=_.template(t,e),r=document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css",i.styleSheet?i.styleSheet.cssText=n:i.appendChild(document.createTextNode(n)),r.appendChild(i)})}),define("backlog/views/board",["../collections/issues","text!../templates/board.html","./columnView","./sidebarView","./headerView","../../common/views/assigneeView","../../common/events/postal","./cssView"],function(e,t,n,r,i,s,o){var u=function(){var e=_($("ul")).chain().map(function(e){return $(e).height()}).reduce(function(e,t){return t>e?t:e}).value();return e},a=function(e){switch(e){case"open":$("#drawer").find(".toggle-drawer").removeClass("arrow-right").addClass("arrow-left").end().animate({left:"+=270px"},300),$("#content").animate({"margin-left":"+=100px"},300);break;case"close":$("#drawer").animate({left:"-=270px"},300,function(){$(this).find(".toggle-drawer").removeClass("arrow-left").addClass("arrow-right").end()}),$("#content").animate({"margin-left":"-=100px"},300)}};return Backbone.View.extend({el:$("#stage"),events:{"click .toggle-drawer":"toggleDrawer"},initialize:function(t){e.bind("ondatareceived",this.onfetch,this),e.fetch(t.user,t.repo),this.user=t.user,this.repo=t.repo,this.params=t,o.subscribe("Opened.Issue",$.proxy(this.onOpened,this)),o.subscribe("Closed.Issue",$.proxy(this.onClosed,this))},onOpened:function(){this.resizeColumns()},onClosed:function(){this.resizeColumns()},onfetch:function(e){var o=$(_.template(t,e)),u=o.clone(),a=e.unassigned,f=new r({data:e,params:this.params}),l=new i,c=new s({data:e,params:this.params}),h=this;$(u).append((new n({column:a,user:this.user,repo:this.repo})).render().el),_.each(e.milestones,function(e){var t=new n({column:e,user:h.user,repo:h.repo}),r=$(t.render().el).css({width:"260px"});$(o).append(r)}),$("#stage").append(o),$(o).sortable({axis:"x",handle:"h3",cursor:"move",stop:$.proxy(this.fullStop,this),start:$.proxy(this.onStart,this),remove:$.proxy(this.onRemove,this),over:$.proxy(this.onOver,this),update:$.proxy(this.onStop,this)}),$("#drawer","#main-stage").append(u).find(".toggle-drawer").show(),$(".sidebar-wrapper").append(f.render().el).show(),$('[rel~="twipsy"]').tooltip({live:!0}),this.resizeColumns()},resizeColumns:function(){var e=u();$("ul","#main-stage").css("min-height",e)},toggleDrawer:function(e){e.preventDefault();var t=$(".toggle-drawer").hasClass("arrow-left");t?a("close"):a("open")},onReceive:function(e,t){},onRemove:function(e,t){},onOver:function(e,t){},onOut:function(e,t){},fullStop:function(e,t){$(t.item).removeClass("ui-state-dragging")},onStart:function(e,t){$(t.item).addClass("ui-state-dragging")},onStop:function(e,t){var n=$(".backlog > div",this.el),r=n.index(t.item);if(r===-1)return;var i=r===0,s=r===n.size()-1,o=$(t.item),u=o.data("milestone"),a=n.get(r?r-1:r),f=n.index(a),l=$(a).data("milestone"),c=n.get(n.size()-1>r?r+1:r),h=n.index(c),p=$(c).data("milestone"),d=u._data.order||u.number,v=l._data.order||l.number,m=p._data.order||p.number;if(i&&s)u._data.order=d;else if(i){var g=m||1;u._data.order=g-1>0?g-1:g/2}else s?u._data.order=v+1:u._data.order=(m+v||1)/2;o.trigger("reorder",{order:u._data.order}).data("milestone",u)}})}),define("backlog/main",["./views/board"],function(e){var t={};return{init:function(n){t.board=new e(n)}}}),define("board/collections/issues",[],function(){var e={fetch:function(e,t){var n=this,r=$.ajax({url:"/api/"+e+"/"+t+"/board",dataType:"json",success:function(e){}}),i=$.ajax({url:"/api/"+e+"/"+t+"/column",dataType:"json"});$.when(r).then(function(r){if(!r.labels.length){window.location.href="/"+e+"/"+t+"/board/create";return}n.trigger("ondatareceived",r),_.each(r.labels,function(e){n.trigger("onissuesreceived."+e.index,e.issues)}),n.trigger("afterreceived"),$.when(i).then(function(e){n.trigger("onissuesreceived."+e.index,e.issues),n.trigger("afterreceived")})})}};return _.extend(e,Backbone.Events),e}),define("text!board/templates/board.html",[],function(){return'
      \n
      \n'}),define("text!board/templates/column.html",[],function(){return'
      \n

      <%- text %>

      \n
        \n
        \n'}),define("text!board/templates/card.html",[],function(){return'\n
        \n
        \n <%- title %>\n
        \n #<%= number %>\n
        \n<% if(assignee) { %>\n \n<% } %>\n\n<% if(milestone) { %>\n
        \n Milestone: <%- milestone.title %>\n
        \n<% } %>\n<% if(pull_request.html_url) { %>\n Pull request\n<% } %>\n
        \n<% _(other_labels).each(function(l) { %>\n
        \n
        \n
        \n
        \n <%- l.name %> \n
        \n
        \n\n<% }); %>\n\n
        \n'}),define("board/models/card",["../../common/events/postal"],function(e){var t=function(e){this.attributes=e.model,this.user=e.user,this.repo=e.repo};return _.extend(t.prototype,{save:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/movecard",{index:t.index,issue:this.attributes,correlationId:e.correlationId},function(e){})},close:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/close",{index:t.index,issue:this.attributes,correlationId:e.correlationId},function(e){})},assign:function(t){this.attributes.assignee=t,$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/assigncard",{issue:this.attributes,correlationId:e.correlationId,assignee:t.login},function(e){})},reorder:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/reorderissue",{index:t.order,issue:this.attributes,correlationId:e.correlationId},function(e){})}}),t}),define("board/views/cardView",["text!../templates/card.html","../models/card","../../common/events/postal"],function(e,t,n){return Backbone.View.extend({initialize:function(e){this.issue=new t({model:e.issue,user:e.user,repo:e.repo}),_.bind(this,"moved",this.moved),_.bind(this,"reorder",this.drop),n.subscribe("Filter.Simple",$.proxy(this.simpleFilter,this)),n.subscribe("Filter.Complex",$.proxy(this.complexFilter,this)),n.socket(e.user+"/"+e.repo,"Moved."+e.issue.number,$.proxy(this.onMoved,this)),n.socket(e.user+"/"+e.repo,"Closed."+e.issue.number,$.proxy(this.onClosed,this)),n.socket(e.user+"/"+e.repo,"Assigned."+e.issue.number,$.proxy(this.onAssigned,this)),n.socket(e.user+"/"+e.repo,"Updated."+e.issue.number,$.proxy(this.onUpdated,this)),this.filtersHash={simple:{},complex:{}}},events:{moved:"moved","click .close":"closed",drop:"dropped",reorder:"drop","click .number":"onNumber",click:"fullscreen"},tagName:"li",onNumber:function(e){e.stopPropagation()},onMoved:function(e){n.publish("Moved.Socket."+e.index,{card:this})},onUpdated:function(e){this.issue.attributes=_.extend(this.issue.attributes,e.issue),this.render(),this.transition()},onClosed:function(){this.remove(),n.publish("Closed.Issue",{card:this})},fullscreen:function(e){n.publish("Card.Fullscreen",this.issue)},render:function(){$(this.el).html(_.template(e,this.issue.attributes)).droppable({scope:"assignee",hoverClass:"assignee-accept"}).data("issue",this.issue.attributes);if(this.issue.attributes.repo.color){var t=$.Color("#"+this.issue.attributes.repo.color),n="3px solid "+$.Color(t.alpha(.5)).toRgbaString();$(this.el).css({"border-left":n})}return this},moved:function(e,t){this.issue.save({index:t})},dropped:function(e,t){var n=$(t.draggable).data("assignee");this.issue.assign(n),this.onAssigned({assignee:n})},onAssigned:function(e){this.issue.attributes.assignee=e.assignee,this.render()},closed:function(e,t){e.preventDefault(),e.stopPropagation(),this.issue.close({index:t}),this.remove(),n.publish("Closed.Issue",{card:this})},transition:function(){var e=[],t=this;setTimeout(function(){for(var n in t.filtersHash.simple)e.push(t.filtersHash.simple[n]);var r=_.filter(e,function(e){return e.state===1}),i=_.filter(e,function(e){return e.state===2});if(_.any(i,function(e){return!e.condition(t.issue.attributes)})){$(t.el).addClass("hide").removeClass("dim active");return}if(_.any(r,function(e){return!e.condition(t.issue.attributes)})){$(t.el).addClass("dim").removeClass("hide active");return}$(t.el).removeClass("dim hide active"),(r.length||i.length)&&$(t.el).addClass("active")},0)},simpleFilter:function(e){var t=this;this.filtersHash.simple[e.id]=e,this.transition()},drop:function(e,t){this.issue.reorder({order:t})}})}),define("board/views/columnView",["../collections/issues","text!../templates/column.html","./cardView","../../common/events/postal"],function(e,t,n,r){var i=Backbone.View.extend({initialize:function(t){this.column=t.column,this.repo=t.repo,this.user=t.user,this.latched=!1,r.subscribe("Moved.Socket."+t.column.index,$.proxy(this.onSocket,this)),r.socket(t.user+"/"+t.repo,"Opened."+t.column.index,$.proxy(this.onOpened,this)),e.bind("onissuesreceived."+t.column.index,this.onfetch,this)},onfetch:function(e){var t=_.map(e,function(e){var t=new n({issue:e,user:self.user,repo:self.repo});return t.render().el});$("ul",this.el).append(t)},onOpened:function(e){var t=new n({issue:e,user:this.user,repo:this.repo});$("ul",this.el).append(t.render().el),r.publish("Opened.Issue",e)},onSocket:function(e){var t=$("li",this.el),n=t.index(e.card.el);if(n!==-1)return;$("ul",this.el).append(e.card.el)},render:function(){var e=$(_.template(t,this.column)),n=this;return this.el=e,$("ul",this.el).sortable({helper:"clone",connectWith:".sortable",placeholder:"ui-sortable-placeholder",receive:$.proxy(this.onReceive,this),remove:$.proxy(this.onRemove,this),over:$.proxy(this.onOver,this),update:$.proxy(this.onStop,this),out:$.proxy(this.onOut,this)}),this},onReceive:function(e,t){$(t.item).trigger("moved",this.column.index)},onRemove:function(e,t){},onOver:function(e,t){$("ul",this.el).addClass("ui-sortable-hover")},onOut:function(e,t){$("ul",this.el).removeClass("ui-sortable-hover")},onStop:function(e,t){var n=$("li",this.el),r=n.index(t.item);if(r===-1)return;var i=r===0,s=r===n.size()-1,o=$(t.item),u=o.data("issue"),a=n.get(r?r-1:r),f=n.index(a),l=$(a).data("issue"),c=n.get(n.size()-1>r?r+1:r),h=n.index(c),p=$(c).data("issue"),d=u._data.order||u.number,v=l._data.order||l.number,m=p._data.order||p.number;if(i&&s)return;i?(u._data.order=(m||1)/2,o.trigger("reorder",u._data.order).data("issue",u)):s?(u._data.order=v+1,o.trigger("reorder",u._data.order).data("issue",u)):(u._data.order=(m+v||1)/2,o.trigger("reorder",u._data.order).data("issue",u))}});return i}),define("board/views/filterView",["../../common/events/postal"],function(e){return jQuery.Color.fn.contrastColor=function(){var e=this._rgba[0],t=this._rgba[1],n=this._rgba[2];return(e*299+t*587+n*144)/1e3>=131.5?"#333":"white"},Backbone.View.extend({tagName:"li",className:"filter",initialize:function(e){this.params=e,this.condition=e.condition,this.name=e.name,this.type=e.type||"Simple",this.state=0,this.states=[0,1,2,0]},events:{click:"clicked",clear:"clearAndPublish","click .ui-icon":"clearAndPublish"},render:function(){return $(this.el).html(""+this.name+"").addClass("-x"+this.params.color.substring(1)).data("filter",this),this},clicked:function(e){e.preventDefault();switch(this.state=this.states[this.state+1]){case 0:this.clear();break;case 1:this.fade();break;case 2:this.solid()}this.publish()},clear:function(){$(this.el).find("a").removeClass("dim").removeClass("active")},publish:function(){e.publish("Filter."+this.type,{id:this.cid,condition:this.condition,state:this.state})},clearAndPublish:function(e){return e.preventDefault(),this.state=0,this.publish(),this.clear(),!1},fade:function(){$(this.el).find("a").addClass("dim").removeClass("active")},solid:function(){$(this.el).find("a").addClass("active").removeClass("dim")}})}),define("board/views/sidebarView",["../../common/events/postal","./filterView"],function(e,t){return Backbone.View.extend({tagName:"ul",className:"filters",initialize:function(e){this.milestones=e.data.milestones,this.login=e.params.login,this.labels=e.data.other_labels},render:function(){var e=$(this.el),n=this.login,r=(new t({color:"#0069D6",name:"Assigned to me",condition:function(e){return e.assignee&&e.assignee.login===n}})).render(),i=(new t({color:"#0069D6",name:"Assigned to others",condition:function(e){return e.assignee&&e.assignee.login!==n}})).render(),s=(new t({color:"#0069D6",name:"Unassigned issues",condition:function(e){return!e.assignee}})).render(),o=$([r.el,i.el,s.el]);e.append(o),o.click(function(e){e.preventDefault();var t=$(this),n=t.data("filter"),r=_(o).filter(function(e){var t=$(e).data("filter");return n.cid!==t.cid&&t.state!==0});_(r).each(function(e){$(e).trigger("clear")})});var u=_.groupBy(this.milestones,function(e){return e._data.status||"backlog"}),a=(u.wip||[]).concat(u.backlog||[]),f=_.map(a,function(e){return(new t({color:"#0069D6",name:e.title,count:e.open_issues,condition:function(t){return t.milestone&&t.milestone.title.toLocaleLowerCase()===e.title.toLocaleLowerCase()}})).render().el}),l=(new t({color:"#0069D6",name:"No milestone assigned",condition:function(e){return!e.milestone}})).render().el;e.append("
        Milestones
        "),e.append(l),e.append(f),$(f.concat(l)).click(function(e){e.preventDefault();var t=$(this),n=t.data("filter"),r=_(f.concat(l)).filter(function(e){var t=$(e).data("filter");return n.cid!==t.cid&&t.state!==0});_(r).each(function(e){$(e).trigger("clear")})});var c=_.map(this.labels,function(e){return(new t({color:"#"+e.color,name:e.name,condition:function(t){return _.any(t.labels,function(t){return t.name.toLocaleLowerCase()===e.name.toLocaleLowerCase()})}})).render().el});return e.append("
        Labels
        "),e.append(c),this}})}),define("board/views/headerView",["../../common/events/postal"],function(e){return Backbone.View.extend({el:$(".page-header-wrapper"),events:{"keyup input":"onkeyup"},initialize:function(t){var n=this;this.publish=_.debounce(function(){var t=$(n.el).find("input").val();e.publish("Filter.Simple",{id:"search",condition:function(e){return e.title.toLocaleLowerCase().indexOf(t.toLocaleLowerCase())!==-1},state:2})},300)},onkeyup:function(e){this.publish()}})}),define("text!board/templates/css.html",[],function(){return'<% \n_(["filter","card-label"]).each(function(name){\n _(other_labels).each(function(l) {\n%>\n .<%= name %>.-x<%= l.color %>.active, .<%= name %>.-x<%= l.color %>.active:hover {\n background-color: #<%= l.color %>;\n background-color: <%= $.Color("#" + l.color).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n\n .<%= name %>.-x<%= l.color %> .active, .<%= name %>.-x<%= l.color %> .active:hover {\n background-color: #<%= l.color %>;\n background-color: <%= $.Color("#" + l.color).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n \n .<%= name %>.-x<%= l.color %>.dim, .<%= name %>.-x<%= l.color %>.dim:hover {\n background-color: <%= $.Color($.Color("#" + l.color).alpha(0.6)).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n\n .<%= name %>.-x<%= l.color %> .dim , .<%= name %>.-x<%= l.color %> .dim:hover {\n background-color: <%= $.Color($.Color("#" + l.color).alpha(0.6)).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n\n <%})});%>\n'}),define("board/views/cssView",["../collections/issues","text!../templates/css.html"],function(e,t){e.bind("ondatareceived",function(e){var n=_.template(t,e),r=document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css",i.styleSheet?i.styleSheet.cssText=n:i.appendChild(document.createTextNode(n)),r.appendChild(i)})}),define("board/views/board",["../collections/issues","text!../templates/board.html","./columnView","./sidebarView","./headerView","../../common/views/assigneeView","../../common/events/postal","./cssView"],function(e,t,n,r,i,s,o){var u=function(){var e=_($("ul")).chain().map(function(e){return $(e).height()}).reduce(function(e,t){return t>e?t:e}).value();return e},a=function(e){switch(e){case"open":$("#drawer").find(".toggle-drawer").removeClass("arrow-right").addClass("arrow-left").end().animate({left:"+=270px"},300),$("#content").animate({"margin-left":"+=100px"},300);break;case"close":$("#drawer").animate({left:"-=270px"},300,function(){$(this).find(".toggle-drawer").removeClass("arrow-left").addClass("arrow-right").end()}),$("#content").animate({"margin-left":"-=100px"},300)}};return Backbone.View.extend({el:$("#stage"),events:{"click .toggle-drawer":"toggleDrawer"},initialize:function(t){e.bind("ondatareceived",this.onfetch,this),e.bind("afterreceived",this.resizeColumns,this),e.fetch(t.user,t.repo),this.user=t.user,this.repo=t.repo,this.params=t,o.subscribe("Opened.Issue",$.proxy(this.onOpened,this)),o.subscribe("Closed.Issue",$.proxy(this.onClosed,this))},onOpened:function(){this.resizeColumns()},onClosed:function(){this.resizeColumns()},onfetch:function(e){var o=$(_.template(t,e)),u=o.clone(),a=_.first(e.labels),f=_.rest(e.labels),l=new r({data:e,params:this.params}),c=new i,h=new s({data:e,params:this.params}),p=this;$(u).append((new n({column:a,user:this.user,repo:this.repo})).render().el);var d=100/f.length;_.each(f,function(e){var t=new n({column:e,user:p.user,repo:p.repo}),r=$(t.render().el).css({width:d+"%"});$(o).append(r)}),$("#stage").append(o),$("#drawer","#main-stage").append(u).find(".toggle-drawer").show(),$(".sidebar-wrapper").append(l.render().el).show(),$('[rel~="twipsy"]').tooltip({live:!0}),this.resizeColumns()},resizeColumns:function(){var e=u();$("ul","#main-stage").css("min-height",e)},toggleDrawer:function(e){e.preventDefault();var t=$(".toggle-drawer").hasClass("arrow-left");t?a("close"):a("open")}})}),define("board/main",["./views/board"],function(e){var t={};return{init:function(n){t.board=new e(n)}}}),define("text!card/templates/card.html",[],function(){return'\n
        \n
        \n
        \n

        <%- title %>

        \n
        \n
        \n
        \n \n \n \n
        \n <%= body_html %>\n
        \n
        \n
        \n'}),define("text!card/templates/feed.html",[],function(){return'\n
        \n
        \n

        Activity

        \n
        \n <% _(issue.comments).each(function(c) { %>\n
        \n \n \n \n
        \n <%= c.body_html %>\n
        \n
        \n <% }); %>\n
        \n'}),define("text!card/templates/actions/labels.html",[],function(){return'\n\n
          \n
          Labels
          \n <% _(available_labels).each(function(l) { %>\n
        • \n <% if(_.find(current_labels, function(x){ return x.name === l.name})) { %>\n <%- l.name %> \n \' checked=\'checked\' />\n <% } else { %>\n <%- l.name %> \n \' />\n <% } %>\n
        • \n <% }); %>\n
        \n'}),define("card/views/actions/labels",["text!../../templates/actions/labels.html"],function(e){var t=Backbone.View.extend({initialize:function(e,t){this.data=e,this.issue=t},events:{"click li":"update"},render:function(){var t=this.issue,n="/api/"+t.attributes.repo.owner.login+"/"+t.attributes.repo.name+"/issues/"+t.attributes.number+"/update_labels";return $(this.el).append("
        ").find("form").html(_.template(e,this.data)),this},update:function(e,t){var n=$(e.currentTarget),r=n.find("span").toggleClass("active"),i=n.find("input");i.prop("checked",!i.prop("checked"));var s=$(this.el).find("form"),o=s.serialize();$.ajax({url:s.attr("action"),data:o,dataType:"json",type:"POST"}).done(function(e){console.log(e)})}});return{create:function(e,n){return new t(e,n)}}}),define("card/views/card",["../../common/events/postal","text!../templates/card.html","text!../templates/feed.html","./actions/labels"],function(e,t,n,r){var i={labels:r};return Backbone.View.extend({tagName:"div",className:"fullscreen-card",initialize:function(t){e.subscribe("Card.Fullscreen",$.proxy(this.open,this))},render:function(e){return $(this.el).html(_.template(t,e)),this},open:function(e){var t=this;this.issue=e,this.render(e.attributes),$.getJSON("/api/"+e.attributes.repo.owner.login+"/"+e.attributes.repo.name+"/issues/"+e.attributes.number+"/feed").done(function(e){$(t.el).find(".fullscreen-card-left").append(_.template(n,e));var r=null;for(r in e.actions)$(t.el).find("."+r+"-placeholder").append(i[r].create(e.actions[r],t.issue).render().el)})}})}),define("card/main",["../common/events/postal","./views/card"],function(e,t){var n={open:function(){$("body").addClass("fullscreen-open")},close:function(){$("body").removeClass("fullscreen-open")},init:function(){$(".fullscreen-wrapper > div").click(function(e){e.stopPropagation()}),$(".fullscreen-overlay").click(n.close),e.subscribe("Card.Fullscreen",$.proxy(this.open,this))}};return{init:function(e){n.card=new t(e),$(this).append(n.card.el),n.init()}}}) +;define("marker",{}),define("backlog/collections/issues",[],function(){var e={fetch:function(e,t){var n=this;$.ajax({url:"/api/"+e+"/"+t+"/backlog",dataType:"json",success:function(e){n.trigger("ondatareceived",e)}})}};return _.extend(e,Backbone.Events),e}),function(){var e=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],t=/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,n=/]*>\s*([\s\S]+)\s*<\/body>/im,r=typeof location!="undefined"&&location.href,i=r&&location.protocol&&location.protocol.replace(/\:/,""),s=r&&location.hostname,o=r&&(location.port||undefined),u=[];define("text",[],function(){var a,f,l;return typeof window!="undefined"&&window.navigator&&window.document?f=function(e,t){var n=a.createXhr();n.open("GET",e,!0),n.onreadystatechange=function(e){n.readyState===4&&t(n.responseText)},n.send(null)}:typeof process!="undefined"&&process.versions&&!!process.versions.node?(l=require.nodeRequire("fs"),f=function(e,t){t(l.readFileSync(e,"utf8"))}):typeof Packages!="undefined"&&(f=function(e,t){var n="utf-8",r=new java.io.File(e),i=java.lang.System.getProperty("line.separator"),s=new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(r),n)),o,u,a="";try{o=new java.lang.StringBuffer,u=s.readLine(),u&&u.length()&&u.charAt(0)===65279&&(u=u.substring(1)),o.append(u);while((u=s.readLine())!==null)o.append(i),o.append(u);a=String(o.toString())}finally{s.close()}t(a)}),a={version:"0.27.1",strip:function(e){if(e){e=e.replace(t,"");var r=e.match(n);r&&(e=r[1])}else e="";return e},jsEscape:function(e){return e.replace(/(['\\])/g,"\\$1").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r")},createXhr:function(){var t,n,r;if(typeof XMLHttpRequest!="undefined")return new XMLHttpRequest;for(n=0;n<3;n++){r=e[n];try{t=new ActiveXObject(r)}catch(i){}if(t){e=[r];break}}if(!t)throw new Error("createXhr(): XMLHttpRequest not available");return t},get:f,parseName:function(e){var t=!1,n=e.indexOf("."),r=e.substring(0,n),i=e.substring(n+1,e.length);return n=i.indexOf("!"),n!==-1&&(t=i.substring(n+1,i.length),t=t==="strip",i=i.substring(0,n)),{moduleName:r,ext:i,strip:t}},xdRegExp:/^((\w+)\:)?\/\/([^\/\\]+)/,useXhr:function(e,t,n,r){var i=a.xdRegExp.exec(e),s,o,u;return i?(s=i[2],o=i[3],o=o.split(":"),u=o[1],o=o[0],(!s||s===t)&&(!o||o===n)&&(!u&&!o||u===r)):!0},finishLoad:function(e,t,n,r,i){n=t?a.strip(n):n,i.isBuild&&i.inlineText&&(u[e]=n),r(n)},load:function(e,t,n,u){var f=a.parseName(e),l=f.moduleName+"."+f.ext,c=t.toUrl(l),h=u&&u.text&&u.text.useXhr||a.useXhr;!r||h(c,i,s,o)?a.get(c,function(t){a.finishLoad(e,f.strip,t,n,u)}):t([l],function(e){a.finishLoad(f.moduleName+"."+f.ext,f.strip,e,n,u)})},write:function(e,t,n,r){if(t in u){var i=a.jsEscape(u[t]);n.asModule(e+"!"+t,"define(function () { return '"+i+"';});\n")}},writeFile:function(e,t,n,r,i){var s=a.parseName(t),o=s.moduleName+"."+s.ext,u=n.toUrl(s.moduleName+"."+s.ext)+".js";a.load(o,n,function(t){var n=function(e){return r(u,e)};n.asModule=function(e,t){return r.asModule(e,u,t)},a.write(e,o,n,i)},i)}},a})}(),define("text!backlog/templates/board.html",[],function(){return'
        \n
        \n'}),define("text!backlog/templates/column.html",[],function(){return'

        <%- milestone.title %>

        \n
          \n'}),define("text!backlog/templates/card.html",[],function(){return'\n
          \n
          \n <%- title %>\n
          \n #<%= number %>\n
          \n<% if(assignee) { %>\n \n<% } %>\n\n<% if(milestone) { %>\n
          \n Milestone: <%- milestone.title %>\n
          \n<% } %>\n<% if (pull_request.html_url) { %>Pull request <%}%>\n
          \n<% _(other_labels).each(function(l) { %>\n
          \n
          \n
          \n
          \n <%- l.name %> \n
          \n
          \n\n<% }); %>\n\n
          \n'}),define("common/events/postal",["socket"],function(e){function t(){return((1+Math.random())*65536|0).toString(16).substring(1)}function n(){return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()}var r={},i=n();return{correlationId:i,subscribe:function(e,t){postal.channel(e).subscribe(t)},channel:function(e){return postal.channel(e)},publish:function(e,t){postal.channel(e).publish(t)},socket:function(t,n,s){if(!e)return;var o=postal.channel(t);postal.channel(n).subscribe(s);if(r[t])return;r[t]=t,e.on(t,function(e){e.correlationId!==i&&postal.channel(e.event).publish(e.payload)})}}}),define("backlog/models/card",["../../common/events/postal"],function(e){var t=function(e){this.attributes=e.model,this.user=e.user,this.repo=e.repo};return _.extend(t.prototype,{save:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/assignmilestone",{milestone:t.milestone,issue:this.attributes,correlationId:e.correlationId},function(e){})},close:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/close",{index:t.index,issue:this.attributes,correlationId:e.correlationId},function(e){})},assign:function(t){this.attributes.assignee=t,$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/assigncard",{issue:this.attributes,correlationId:e.correlationId,assignee:t.login},function(e){})},reorder:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/reorderissue",{index:t.order,issue:this.attributes,correlationId:e.correlationId},function(e){})}}),t}),define("backlog/views/cardView",["text!../templates/card.html","../models/card","../../common/events/postal"],function(e,t,n){return Backbone.View.extend({initialize:function(e){this.issue=new t({model:e.issue,user:e.user,repo:e.repo}),_.bind(this,"moved",this.moved),_.bind(this,"reorder",this.drop),n.subscribe("Filter.Simple",$.proxy(this.simpleFilter,this)),n.subscribe("Filter.Complex",$.proxy(this.complexFilter,this)),n.socket(e.user+"/"+e.repo,"Closed."+e.issue.number,$.proxy(this.onClosed,this)),n.socket(e.user+"/"+e.repo,"Assigned."+e.issue.number,$.proxy(this.onAssigned,this)),n.socket(e.user+"/"+e.repo,"Updated."+e.issue.number,$.proxy(this.onUpdated,this)),this.filtersHash={simple:{},complex:{}}},events:{moved:"moved","click .close":"closed",drop:"dropped",reorder:"drop","click .number":"onNumber",click:"fullscreen"},tagName:"li",onMoved:function(e){n.publish("Moved.Socket."+e.index,{card:this})},onNumber:function(e){e.stopPropagation()},onUpdated:function(e){this.issue.attributes=_.extend(this.issue.attributes,e.issue),this.render(),this.transition()},onClosed:function(){this.remove(),n.publish("Closed.Issue",{card:this})},fullscreen:function(e){n.publish("Card.Fullscreen",this.issue)},render:function(){$(this.el).html(_.template(e,this.issue.attributes)).droppable({scope:"assignee",hoverClass:"assignee-accept"}).data("issue",this.issue.attributes);if(this.issue.attributes.repo.color){var t=$.Color("#"+this.issue.attributes.repo.color),n="3px solid "+$.Color(t.alpha(.5)).toRgbaString();$(this.el).css({"border-left":n})}return this},moved:function(e,t){this.issue.save({milestone:t.milestone})},dropped:function(e,t){var n=$(t.draggable).data("assignee");this.issue.assign(n),this.onAssigned({assignee:n})},onAssigned:function(e){this.issue.attributes.assignee=e.assignee,this.render()},closed:function(e,t){e.preventDefault(),this.issue.close({index:t}),this.remove(),n.publish("Closed.Issue",{card:this})},transition:function(){var e=[],t=this;setTimeout(function(){for(var n in t.filtersHash.simple)e.push(t.filtersHash.simple[n]);var r=_.filter(e,function(e){return e.state===1}),i=_.filter(e,function(e){return e.state===2});if(_.any(i,function(e){return!e.condition(t.issue.attributes)})){$(t.el).addClass("hide").removeClass("dim active");return}if(_.any(r,function(e){return!e.condition(t.issue.attributes)})){$(t.el).addClass("dim").removeClass("hide active");return}$(t.el).removeClass("dim hide active"),(r.length||i.length)&&$(t.el).addClass("active")},0)},simpleFilter:function(e){var t=this;this.filtersHash.simple[e.id]=e,this.transition()},drop:function(e,t){this.issue.reorder({order:t})}})}),define("backlog/models/milestone",[],function(){var e=function(e){this.attributes=e.model,this.user=e.user,this.repo=e.repo};return _.extend(e.prototype,{save:function(e){if(!e.order||e.order===0)console.error("something wrong happened index should not be 0"),console.log("falling back to original number",this.attributes.number),e.order=this.attributes.number;$.post("/api/"+this.user+"/"+this.repo+"/reordermilestone",{index:e.order,status:e.status,milestone:this.attributes},function(e){})}}),e}),define("backlog/views/columnView",["text!../templates/column.html","./cardView","../../common/events/postal","../models/milestone"],function(e,t,n,r){var i=Backbone.View.extend({initialize:function(e){this.column=e.column,this.repo=e.repo,this.user=e.user,this.milestone=new r({model:this.column.milestone,user:e.user,repo:e.repo}),_.bind("reordered",this.reordered)},tagName:"div",className:"column",events:{reorder:"reordered"},reordered:function(e,t){this.milestone.save(t)},onOpened:function(e){var r=new t({issue:e,user:this.user,repo:this.repo});$("ul",this.el).append(r.render().el),n.publish("Opened.Issue",e)},onSocket:function(e){var t=$("li",this.el),n=t.index(e.card.el);if(n!==-1)return;$("ul",this.el).append(e.card.el)},render:function(){var n=$(_.template(e,this.column)),r=this,i=_.map(this.column.issues,function(e){var n=new t({issue:e,user:r.user,repo:r.repo});return n.render().el});return $(this.el).append(n).data("milestone",this.column.milestone).find("ul").append(i),$("ul",this.el).sortable({helper:"clone",connectWith:".sortable",placeholder:"ui-sortable-placeholder",receive:$.proxy(this.onReceive,this),remove:$.proxy(this.onRemove,this),over:$.proxy(this.onOver,this),update:$.proxy(this.onStop,this),out:$.proxy(this.onOut,this)}),this},onReceive:function(e,t){$(t.item).trigger("moved",this.column)},onRemove:function(e,t){},onOver:function(e,t){$("ul",this.el).addClass("ui-sortable-hover")},onOut:function(e,t){$("ul",this.el).removeClass("ui-sortable-hover")},onStop:function(e,t){var n=$("li",this.el),r=n.index(t.item);if(r===-1)return;var i=r===0,s=r===n.size()-1,o=$(t.item),u=o.data("issue"),a=n.get(r?r-1:r),f=n.index(a),l=$(a).data("issue"),c=n.get(n.size()-1>r?r+1:r),h=n.index(c),p=$(c).data("issue"),d=u._data.order||u.number,v=l._data.order||l.number,m=p._data.order||p.number;if(i&&s)return;i?(u._data.order=(m||1)/2,o.trigger("reorder",u._data.order).data("issue",u)):s?(u._data.order=v+1,o.trigger("reorder",u._data.order).data("issue",u)):(u._data.order=(m+v||1)/2,o.trigger("reorder",u._data.order).data("issue",u))}});return i}),define("backlog/views/filterView",["../../common/events/postal"],function(e){return jQuery.Color.fn.contrastColor=function(){var e=this._rgba[0],t=this._rgba[1],n=this._rgba[2];return(e*299+t*587+n*144)/1e3>=131.5?"#333":"white"},Backbone.View.extend({tagName:"li",className:"filter",initialize:function(e){this.params=e,this.condition=e.condition,this.name=e.name,this.type=e.type||"Simple",this.state=0,this.states=[0,1,2,0]},events:{click:"clicked",clear:"clearAndPublish","click .ui-icon":"clearAndPublish"},render:function(){return $(this.el).html(""+this.name+"").addClass("-x"+this.params.color.substring(1)).data("filter",this),this},clicked:function(e){e.preventDefault();switch(this.state=this.states[this.state+1]){case 0:this.clear();break;case 1:this.fade();break;case 2:this.solid()}this.publish()},clear:function(){$(this.el).find("a").removeClass("dim").removeClass("active")},publish:function(){e.publish("Filter."+this.type,{id:this.cid,condition:this.condition,state:this.state})},clearAndPublish:function(e){return e.preventDefault(),this.state=0,this.publish(),this.clear(),!1},fade:function(){$(this.el).find("a").addClass("dim").removeClass("active")},solid:function(){$(this.el).find("a").addClass("active").removeClass("dim")}})}),define("backlog/views/sidebarView",["../../common/events/postal","./filterView"],function(e,t){return Backbone.View.extend({tagName:"ul",className:"filters",initialize:function(e){this.login=e.params.login,this.labels=e.data.other_labels},render:function(){var e=$(this.el),n=this.login,r=(new t({color:"#0069D6",name:"Assigned to me",condition:function(e){return e.assignee&&e.assignee.login===n}})).render(),i=(new t({color:"#0069D6",name:"Assigned to others",condition:function(e){return e.assignee&&e.assignee.login!==n}})).render(),s=(new t({color:"#0069D6",name:"Unassigned issues",condition:function(e){return!e.assignee}})).render(),o=$([r.el,i.el,s.el]);e.append(o),o.click(function(e){e.preventDefault();var t=$(this),n=t.data("filter"),r=_(o).filter(function(e){var t=$(e).data("filter");return n.cid!==t.cid&&t.state!==0});_(r).each(function(e){$(e).trigger("clear")})});var u=_.map(this.labels,function(e){return(new t({color:"#"+e.color,name:e.name,condition:function(t){return _.any(t.labels,function(t){return t.name.toLocaleLowerCase()===e.name.toLocaleLowerCase()})}})).render().el});return e.append("
          Labels
          "),e.append(u),this}})}),define("backlog/views/headerView",["../../common/events/postal"],function(e){return Backbone.View.extend({el:$(".header"),events:{"keyup input":"onkeyup"},initialize:function(t){var n=this;this.publish=_.debounce(function(){var t=$(n.el).find("input").val();e.publish("Filter.Simple",{id:"search",condition:function(e){return e.title.toLocaleLowerCase().indexOf(t.toLocaleLowerCase())!==-1},state:2})},300)},onkeyup:function(e){this.publish()}})}),define("text!common/templates/assignee.html",[],function(){return'
        • \n <%= login %>\n
        • \n'}),define("common/views/assigneeView",["../../common/events/postal","text!../templates/assignee.html"],function(e,t){return Backbone.View.extend({el:$(".header"),initialize:function(e){var t=this;t.data=e.data,t.state=0,t.classes=[["",""],["dim","active"],["hide","active"]],t.render()},events:{"click li":"filter"},filter:function(t){var n=this,r=$(t.currentTarget),i=r.data("login"),s=n.state;s=(s+1)%3,e.publish("Filter.Simple",{condition:function(e){return e.assignee&&e.assignee.login===i},state:s}),s===1&&(n.$("li").removeClass("active inactive").addClass("dim"),r.removeClass("dim").addClass("active")),s===2&&(n.$("li").removeClass("active inactive").addClass("inactive"),r.removeClass("dim inactive").addClass("active")),s===0&&n.$("li").removeClass("dim active inactive"),n.state=s},render:function(){var e=$(this.el).find("ol"),n=_(this.data.assignees).chain().map(function(e){return $(_.template(t,e)).data("assignee",e)}).value();return e.append(n),e.find("li").draggable({helper:"clone",scope:"assignee",zIndex:100,appendTo:"body"}),this}})}),define("text!backlog/templates/css.html",[],function(){return'<% \n_(["filter","card-label"]).each(function(name){\n _(other_labels).each(function(l) {\n%>\n .<%= name %>.-x<%= l.color %>.active, .<%= name %>.-x<%= l.color %>.active:hover {\n background-color: #<%= l.color %>;\n background-color: <%= $.Color("#" + l.color).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n\n .<%= name %>.-x<%= l.color %> .active, .<%= name %>.-x<%= l.color %> .active:hover {\n background-color: #<%= l.color %>;\n background-color: <%= $.Color("#" + l.color).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n \n .<%= name %>.-x<%= l.color %>.dim, .<%= name %>.-x<%= l.color %>.dim:hover {\n background-color: <%= $.Color($.Color("#" + l.color).alpha(0.6)).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n\n .<%= name %>.-x<%= l.color %> .dim , .<%= name %>.-x<%= l.color %> .dim:hover {\n background-color: <%= $.Color($.Color("#" + l.color).alpha(0.6)).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n\n <%})});%>\n'}),define("backlog/views/cssView",["../collections/issues","text!../templates/css.html"],function(e,t){e.bind("ondatareceived",function(e){var n=_.template(t,e),r=document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css",i.styleSheet?i.styleSheet.cssText=n:i.appendChild(document.createTextNode(n)),r.appendChild(i)})}),define("backlog/views/board",["../collections/issues","text!../templates/board.html","./columnView","./sidebarView","./headerView","../../common/views/assigneeView","../../common/events/postal","./cssView"],function(e,t,n,r,i,s,o){var u=function(){var e=_($("ul")).chain().map(function(e){return $(e).height()}).reduce(function(e,t){return t>e?t:e}).value();return e},a=function(e){switch(e){case"open":$("#drawer").find(".toggle-drawer").removeClass("arrow-right").addClass("arrow-left").end().animate({left:"+=270px"},300),$("#content").animate({"margin-left":"+=100px"},300);break;case"close":$("#drawer").animate({left:"-=270px"},300,function(){$(this).find(".toggle-drawer").removeClass("arrow-left").addClass("arrow-right").end()}),$("#content").animate({"margin-left":"-=100px"},300)}};return Backbone.View.extend({el:$("#stage"),events:{"click .toggle-drawer":"toggleDrawer"},initialize:function(t){e.bind("ondatareceived",this.onfetch,this),e.fetch(t.user,t.repo),this.user=t.user,this.repo=t.repo,this.params=t,o.subscribe("Opened.Issue",$.proxy(this.onOpened,this)),o.subscribe("Closed.Issue",$.proxy(this.onClosed,this))},onOpened:function(){this.resizeColumns()},onClosed:function(){this.resizeColumns()},onfetch:function(e){var o=$(_.template(t,e)),u=o.clone(),a=e.unassigned,f=new r({data:e,params:this.params}),l=new i,c=new s({data:e,params:this.params}),h=this;$(u).append((new n({column:a,user:this.user,repo:this.repo})).render().el),_.each(e.milestones,function(e){var t=new n({column:e,user:h.user,repo:h.repo}),r=$(t.render().el).css({width:"260px"});$(o).append(r)}),$("#stage").append(o),$(o).sortable({axis:"x",handle:"h3",cursor:"move",stop:$.proxy(this.fullStop,this),start:$.proxy(this.onStart,this),remove:$.proxy(this.onRemove,this),over:$.proxy(this.onOver,this),update:$.proxy(this.onStop,this)}),$("#drawer","#main-stage").append(u).find(".toggle-drawer").show(),$(".sidebar-wrapper").append(f.render().el).show(),$('[rel~="twipsy"]').tooltip({live:!0}),this.resizeColumns()},resizeColumns:function(){var e=u();$("ul","#main-stage").css("min-height",e)},toggleDrawer:function(e){e.preventDefault();var t=$(".toggle-drawer").hasClass("arrow-left");t?a("close"):a("open")},onReceive:function(e,t){},onRemove:function(e,t){},onOver:function(e,t){},onOut:function(e,t){},fullStop:function(e,t){$(t.item).removeClass("ui-state-dragging")},onStart:function(e,t){$(t.item).addClass("ui-state-dragging")},onStop:function(e,t){var n=$(".backlog > div",this.el),r=n.index(t.item);if(r===-1)return;var i=r===0,s=r===n.size()-1,o=$(t.item),u=o.data("milestone"),a=n.get(r?r-1:r),f=n.index(a),l=$(a).data("milestone"),c=n.get(n.size()-1>r?r+1:r),h=n.index(c),p=$(c).data("milestone"),d=u._data.order||u.number,v=l._data.order||l.number,m=p._data.order||p.number;if(i&&s)u._data.order=d;else if(i){var g=m||1;u._data.order=g-1>0?g-1:g/2}else s?u._data.order=v+1:u._data.order=(m+v||1)/2;o.trigger("reorder",{order:u._data.order}).data("milestone",u)}})}),define("backlog/main",["./views/board"],function(e){var t={};return{init:function(n){t.board=new e(n)}}}),define("text!card/templates/card.html",[],function(){return'\n
          \n
          \n
          \n

          <%- title %>

          \n
          \n
          \n
          \n \n \n \n
          \n <%= body_html %>\n
          \n
          \n
          \n'}),define("text!card/templates/feed.html",[],function(){return'\n
          \n
          \n

          Activity

          \n
          \n <% _(issue.comments).each(function(c) { %>\n
          \n \n \n \n
          \n <%= c.body_html %>\n
          \n
          \n <% }); %>\n
          \n'}),define("text!card/templates/actions/labels.html",[],function(){return'\n\n
            \n
            Labels
            \n <% _(available_labels).each(function(l) { %>\n
          • \n <% if(_.find(current_labels, function(x){ return x.name === l.name})) { %>\n <%- l.name %> \n \' checked=\'checked\' />\n <% } else { %>\n <%- l.name %> \n \' />\n <% } %>\n
          • \n <% }); %>\n
          \n'}),define("card/views/actions/labels",["text!../../templates/actions/labels.html"],function(e){var t=Backbone.View.extend({initialize:function(e,t){this.data=e,this.issue=t},events:{"click li":"update"},render:function(){var t=this.issue,n="/api/"+t.attributes.repo.owner.login+"/"+t.attributes.repo.name+"/issues/"+t.attributes.number+"/update_labels";return $(this.el).append("").find("form").html(_.template(e,this.data)),this},update:function(e,t){var n=$(e.currentTarget),r=n.find("span").toggleClass("active"),i=n.find("input");i.prop("checked",!i.prop("checked"));var s=$(this.el).find("form"),o=s.serialize();$.ajax({url:s.attr("action"),data:o,dataType:"json",type:"POST"}).done(function(e){console.log(e)})}});return{create:function(e,n){return new t(e,n)}}}),define("card/views/card",["../../common/events/postal","text!../templates/card.html","text!../templates/feed.html","./actions/labels"],function(e,t,n,r){var i={labels:r};return Backbone.View.extend({tagName:"div",className:"fullscreen-card",initialize:function(t){e.subscribe("Card.Fullscreen",$.proxy(this.open,this))},render:function(e){return $(this.el).html(_.template(t,e)),this},open:function(e){var t=this;this.issue=e,this.render(e.attributes),$.getJSON("/api/"+e.attributes.repo.owner.login+"/"+e.attributes.repo.name+"/issues/"+e.attributes.number+"/feed").done(function(e){$(t.el).find(".fullscreen-card-left").append(_.template(n,e));var r=null;for(r in e.actions)$(t.el).find("."+r+"-placeholder").append(i[r].create(e.actions[r],t.issue).render().el)})}})}),define("card/main",["../common/events/postal","./views/card"],function(e,t){var n={open:function(){$("body").addClass("fullscreen-open")},close:function(){$("body").removeClass("fullscreen-open")},init:function(){$(".fullscreen-wrapper > div").click(function(e){e.stopPropagation()}),$(".fullscreen-overlay").click(n.close),e.subscribe("Card.Fullscreen",$.proxy(this.open,this))}};return{init:function(e){n.card=new t(e),$(this).append(n.card.el),n.init()}}}),define("board/collections/issues",[],function(){var e={fetch:function(e,t){var n=this,r=$.ajax({url:"/api/"+e+"/"+t+"/board",dataType:"json",success:function(e){}}),i=$.ajax({url:"/api/"+e+"/"+t+"/column",dataType:"json"});$.when(r).then(function(r){if(!r.labels.length){window.location.href="/"+e+"/"+t+"/board/create";return}n.trigger("ondatareceived",r),_.each(r.labels,function(e){n.trigger("onissuesreceived."+e.index,e.issues)}),n.trigger("afterreceived"),$.when(i).then(function(e){n.trigger("onissuesreceived."+e.index,e.issues),n.trigger("afterreceived")})})}};return _.extend(e,Backbone.Events),e}),define("text!board/templates/board.html",[],function(){return'
          \n
          \n'}),define("text!board/templates/column.html",[],function(){return'
          \n

          <%- text %>

          \n
            \n
            \n'}),define("text!board/templates/card.html",[],function(){return'
            \n\n<% if(assignee) { %>\n \n<% } %>\n<%- title %>\n\n<% if(milestone) { %>\n
            \n Milestone: <%- milestone.title %>\n
            \n<% } %>\n
            \n<% if(pull_request.html_url) { %>\n Pull\n<% } %>\n<% _(other_labels).each(function(l) { %>\n<%- l.name %>\n<% }); %>\n
            \n\n
            \n'}),define("board/models/card",["../../common/events/postal"],function(e){var t=function(e){this.attributes=e.model,this.user=e.user,this.repo=e.repo};return _.extend(t.prototype,{save:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/movecard",{index:t.index,issue:this.attributes,correlationId:e.correlationId},function(e){})},close:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/close",{index:t.index,issue:this.attributes,correlationId:e.correlationId},function(e){})},assign:function(t){this.attributes.assignee=t,$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/assigncard",{issue:this.attributes,correlationId:e.correlationId,assignee:t.login},function(e){})},reorder:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/reorderissue",{index:t.order,issue:this.attributes,correlationId:e.correlationId},function(e){})}}),t}),define("board/views/cardView",["text!../templates/card.html","../models/card","../../common/events/postal"],function(e,t,n){return Backbone.View.extend({initialize:function(e){this.issue=new t({model:e.issue,user:e.user,repo:e.repo}),_.bind(this,"moved",this.moved),_.bind(this,"reorder",this.drop),n.subscribe("Filter.Simple",$.proxy(this.simpleFilter,this)),n.subscribe("Filter.Complex",$.proxy(this.complexFilter,this)),n.socket(e.user+"/"+e.repo,"Moved."+e.issue.number,$.proxy(this.onMoved,this)),n.socket(e.user+"/"+e.repo,"Closed."+e.issue.number,$.proxy(this.onClosed,this)),n.socket(e.user+"/"+e.repo,"Assigned."+e.issue.number,$.proxy(this.onAssigned,this)),n.socket(e.user+"/"+e.repo,"Updated."+e.issue.number,$.proxy(this.onUpdated,this)),this.filtersHash={simple:{},complex:{}}},events:{moved:"moved","click .close":"closed",drop:"dropped",reorder:"drop","click .number":"onNumber",click:"fullscreen"},tagName:"li",onNumber:function(e){e.stopPropagation()},onMoved:function(e){n.publish("Moved.Socket."+e.index,{card:this})},onUpdated:function(e){this.issue.attributes=_.extend(this.issue.attributes,e.issue),this.render(),this.transition()},onClosed:function(){this.remove(),n.publish("Closed.Issue",{card:this})},fullscreen:function(e){n.publish("Card.Fullscreen",this.issue)},render:function(){$(this.el).html(_.template(e,this.issue.attributes)).droppable({scope:"assignee",hoverClass:"assignee-accept"}).data("issue",this.issue.attributes);if(this.issue.attributes.repo.color){var t=$.Color("#"+this.issue.attributes.repo.color),n="3px solid "+$.Color(t.alpha(.5)).toRgbaString();$(this.el).css({"border-left":n})}return this},moved:function(e,t){this.issue.save({index:t})},dropped:function(e,t){var n=$(t.draggable).data("assignee");this.issue.assign(n),this.onAssigned({assignee:n})},onAssigned:function(e){this.issue.attributes.assignee=e.assignee,this.render()},closed:function(e,t){e.preventDefault(),e.stopPropagation(),this.issue.close({index:t}),this.remove(),n.publish("Closed.Issue",{card:this})},transition:function(){var e=[],t=this;setTimeout(function(){for(var n in t.filtersHash.simple)e.push(t.filtersHash.simple[n]);var r=_.filter(e,function(e){return e.state===1}),i=_.filter(e,function(e){return e.state===2});if(_.any(i,function(e){return!e.condition(t.issue.attributes)})){$(t.el).addClass("hide").removeClass("dim active");return}if(_.any(r,function(e){return!e.condition(t.issue.attributes)})){$(t.el).addClass("dim").removeClass("hide active");return}$(t.el).removeClass("dim hide active"),(r.length||i.length)&&$(t.el).addClass("active")},0)},simpleFilter:function(e){var t=this;this.filtersHash.simple[e.id]=e,this.transition()},drop:function(e,t){this.issue.reorder({order:t})}})}),define("board/views/columnView",["../collections/issues","text!../templates/column.html","./cardView","../../common/events/postal"],function(e,t,n,r){var i=Backbone.View.extend({initialize:function(t){this.column=t.column,this.repo=t.repo,this.user=t.user,this.latched=!1,r.subscribe("Moved.Socket."+t.column.index,$.proxy(this.onSocket,this)),r.socket(t.user+"/"+t.repo,"Opened."+t.column.index,$.proxy(this.onOpened,this)),e.bind("onissuesreceived."+t.column.index,this.onfetch,this)},onfetch:function(e){var t=_.map(e,function(e){var t=new n({issue:e,user:self.user,repo:self.repo});return t.render().el});$("ul",this.el).append(t)},onOpened:function(e){var t=new n({issue:e,user:this.user,repo:this.repo});$("ul",this.el).append(t.render().el),r.publish("Opened.Issue",e)},onSocket:function(e){var t=$("li",this.el),n=t.index(e.card.el);if(n!==-1)return;$("ul",this.el).append(e.card.el)},render:function(){var e=$(_.template(t,this.column)),n=this;return this.el=e,$("ul",this.el).sortable({helper:"clone",connectWith:".sortable",placeholder:"ui-sortable-placeholder",receive:$.proxy(this.onReceive,this),remove:$.proxy(this.onRemove,this),over:$.proxy(this.onOver,this),update:$.proxy(this.onStop,this),out:$.proxy(this.onOut,this)}),this},onReceive:function(e,t){$(t.item).trigger("moved",this.column.index)},onRemove:function(e,t){},onOver:function(e,t){$("ul",this.el).addClass("ui-sortable-hover")},onOut:function(e,t){$("ul",this.el).removeClass("ui-sortable-hover")},onStop:function(e,t){var n=$("li",this.el),r=n.index(t.item);if(r===-1)return;var i=r===0,s=r===n.size()-1,o=$(t.item),u=o.data("issue"),a=n.get(r?r-1:r),f=n.index(a),l=$(a).data("issue"),c=n.get(n.size()-1>r?r+1:r),h=n.index(c),p=$(c).data("issue"),d=u._data.order||u.number,v=l._data.order||l.number,m=p._data.order||p.number;if(i&&s)return;i?(u._data.order=(m||1)/2,o.trigger("reorder",u._data.order).data("issue",u)):s?(u._data.order=v+1,o.trigger("reorder",u._data.order).data("issue",u)):(u._data.order=(m+v||1)/2,o.trigger("reorder",u._data.order).data("issue",u))}});return i}),define("board/views/filterView",["../../common/events/postal"],function(e){return jQuery.Color.fn.contrastColor=function(){var e=this._rgba[0],t=this._rgba[1],n=this._rgba[2];return(e*299+t*587+n*144)/1e3>=131.5?"#333":"white"},Backbone.View.extend({tagName:"li",className:"filter",initialize:function(e){this.params=e,this.condition=e.condition,this.name=e.name,this.type=e.type||"Simple",this.state=0,this.states=[0,1,2,0]},events:{click:"clicked",clear:"clearAndPublish","click .ui-icon":"clearAndPublish"},render:function(){return $(this.el).html(""+this.name+"").addClass("-x"+this.params.color.substring(1)).data("filter",this),this},clicked:function(e){e.preventDefault();switch(this.state=this.states[this.state+1]){case 0:this.clear();break;case 1:this.fade();break;case 2:this.solid()}this.publish()},clear:function(){$(this.el).find("a").removeClass("dim").removeClass("active")},publish:function(){e.publish("Filter."+this.type,{id:this.cid,condition:this.condition,state:this.state})},clearAndPublish:function(e){return e.preventDefault(),this.state=0,this.publish(),this.clear(),!1},fade:function(){$(this.el).find("a").addClass("dim").removeClass("active")},solid:function(){$(this.el).find("a").addClass("active").removeClass("dim")}})}),define("board/views/sidebarView",["../../common/events/postal","./filterView"],function(e,t){return Backbone.View.extend({tagName:"ul",className:"filters",initialize:function(e){this.milestones=e.data.milestones,this.login=e.params.login,this.labels=e.data.other_labels},render:function(){var e=$(this.el),n=this.login,r=(new t({color:"#0069D6",name:"Assigned to me",condition:function(e){return e.assignee&&e.assignee.login===n}})).render(),i=(new t({color:"#0069D6",name:"Assigned to others",condition:function(e){return e.assignee&&e.assignee.login!==n}})).render(),s=(new t({color:"#0069D6",name:"Unassigned issues",condition:function(e){return!e.assignee}})).render(),o=$([r.el,i.el,s.el]);e.append(o),o.click(function(e){e.preventDefault();var t=$(this),n=t.data("filter"),r=_(o).filter(function(e){var t=$(e).data("filter");return n.cid!==t.cid&&t.state!==0});_(r).each(function(e){$(e).trigger("clear")})});var u=_.groupBy(this.milestones,function(e){return e._data.status||"backlog"}),a=(u.wip||[]).concat(u.backlog||[]),f=_.map(a,function(e){return(new t({color:"#0069D6",name:e.title,count:e.open_issues,condition:function(t){return t.milestone&&t.milestone.title.toLocaleLowerCase()===e.title.toLocaleLowerCase()}})).render().el}),l=(new t({color:"#0069D6",name:"No milestone",condition:function(e){return!e.milestone}})).render().el;e.append("
            Milestones
            "),e.append(l),e.append(f),$(f.concat(l)).click(function(e){e.preventDefault();var t=$(this),n=t.data("filter"),r=_(f.concat(l)).filter(function(e){var t=$(e).data("filter");return n.cid!==t.cid&&t.state!==0});_(r).each(function(e){$(e).trigger("clear")})});var c=_.map(this.labels,function(e){return(new t({color:"#"+e.color,name:e.name,condition:function(t){return _.any(t.labels,function(t){return t.name.toLocaleLowerCase()===e.name.toLocaleLowerCase()})}})).render().el});return e.append("
            Labels
            "),e.append(c),this}})}),define("board/views/headerView",["../../common/events/postal"],function(e){return Backbone.View.extend({el:$(".header"),events:{"keyup input":"onkeyup"},initialize:function(t){var n=this;this.publish=_.debounce(function(){var t=$(n.el).find("input").val();e.publish("Filter.Simple",{id:"search",condition:function(e){return e.title.toLocaleLowerCase().indexOf(t.toLocaleLowerCase())!==-1},state:2})},300)},onkeyup:function(e){this.publish()}})}),define("text!board/templates/css.html",[],function(){return'<% \n_(["filter","card-label"]).each(function(name){\n _(other_labels).each(function(l) {\n%>\n .<%= name %>.-x<%= l.color %>.active, .<%= name %>.-x<%= l.color %>.active:hover {\n background-color: #<%= l.color %>;\n background-color: <%= $.Color("#" + l.color).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n\n .<%= name %>.-x<%= l.color %> .active, .<%= name %>.-x<%= l.color %> .active:hover {\n background-color: #<%= l.color %>;\n background-color: <%= $.Color("#" + l.color).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n \n .<%= name %>.-x<%= l.color %>.dim, .<%= name %>.-x<%= l.color %>.dim:hover {\n background-color: <%= $.Color($.Color("#" + l.color).alpha(0.6)).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n\n .<%= name %>.-x<%= l.color %> .dim , .<%= name %>.-x<%= l.color %> .dim:hover {\n background-color: <%= $.Color($.Color("#" + l.color).alpha(0.6)).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n\n <%})});%>\n'}),define("board/views/cssView",["../collections/issues","text!../templates/css.html"],function(e,t){e.bind("ondatareceived",function(e){var n=_.template(t,e),r=document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css",i.styleSheet?i.styleSheet.cssText=n:i.appendChild(document.createTextNode(n)),r.appendChild(i)})}),define("board/views/board",["../collections/issues","text!../templates/board.html","./columnView","./sidebarView","./headerView","../../common/views/assigneeView","../../common/events/postal","./cssView"],function(e,t,n,r,i,s,o){var u=function(){var e=_($("ul")).chain().map(function(e){return $(e).height()}).reduce(function(e,t){return t>e?t:e}).value();return e},a=function(e){switch(e){case"open":$("#drawer").find(".toggle-drawer").removeClass("arrow-right").addClass("arrow-left").end().animate({left:"+=270px"},300),$("#content").animate({"margin-left":"+=100px"},300);break;case"close":$("#drawer").animate({left:"-=270px"},300,function(){$(this).find(".toggle-drawer").removeClass("arrow-left").addClass("arrow-right").end()}),$("#content").animate({"margin-left":"-=100px"},300)}};return Backbone.View.extend({el:$("#stage"),events:{"click .toggle-drawer":"toggleDrawer"},initialize:function(t){e.bind("ondatareceived",this.onfetch,this),e.bind("afterreceived",this.resizeColumns,this),e.fetch(t.user,t.repo),this.user=t.user,this.repo=t.repo,this.params=t,o.subscribe("Opened.Issue",$.proxy(this.onOpened,this)),o.subscribe("Closed.Issue",$.proxy(this.onClosed,this))},onOpened:function(){this.resizeColumns()},onClosed:function(){this.resizeColumns()},onfetch:function(e){var o=$(_.template(t,e)),u=o.clone(),a=_.first(e.labels),f=_.rest(e.labels),l=new r({data:e,params:this.params}),c=new i,h=new s({data:e,params:this.params}),p=this;$(u).append((new n({column:a,user:this.user,repo:this.repo})).render().el);var d=100/f.length;_.each(f,function(e){var t=new n({column:e,user:p.user,repo:p.repo}),r=$(t.render().el).css({width:d+"%"});$(o).append(r)}),$("#stage").append(o),$("#drawer","#main-stage").append(u).find(".toggle-drawer").show(),$(".sidebar-wrapper").append(l.render().el).show(),$('[rel~="twipsy"]').tooltip({live:!0}),this.resizeColumns()},resizeColumns:function(){var e=u();$("ul","#main-stage").css("min-height",e)},toggleDrawer:function(e){e.preventDefault();var t=$(".toggle-drawer").hasClass("arrow-left");t?a("close"):a("open")}})}),define("board/main",["./views/board"],function(e){var t={};return{init:function(n){t.board=new e(n)}}}) diff --git a/public/scripts/modules/backlog/views/board.js b/public/scripts/modules/backlog/views/board.js index ed731c0c..0f7ce973 100644 --- a/public/scripts/modules/backlog/views/board.js +++ b/public/scripts/modules/backlog/views/board.js @@ -31,17 +31,19 @@ define(["../collections/issues", $("#drawer") .find(".toggle-drawer").removeClass("arrow-right").addClass("arrow-left") .end() - .animate({left: '+=270px'}, 300); + .animate({left: '+=190px'}, 300); $("#content").animate({"margin-left": "+=100px"},300); + console.log("test1"); break; case "close": $("#drawer") - .animate({left: '-=270px'}, 300, function(){ + .animate({left: '-=190px'}, 300, function(){ $(this) .find(".toggle-drawer").removeClass("arrow-left").addClass("arrow-right") .end(); }); $("#content").animate({"margin-left": "-=100px"},300); + console.log("test2"); } }; diff --git a/public/scripts/modules/backlog/views/headerView.js b/public/scripts/modules/backlog/views/headerView.js index b4ab330a..37bbdfa8 100644 --- a/public/scripts/modules/backlog/views/headerView.js +++ b/public/scripts/modules/backlog/views/headerView.js @@ -1,7 +1,7 @@ define(["../../common/events/postal"], function(postal){ return Backbone.View.extend({ - el: $(".page-header-wrapper"), + el: $(".header"), events: { "keyup input" : "onkeyup" }, diff --git a/public/scripts/modules/board/templates/card.html b/public/scripts/modules/board/templates/card.html index 80bb7e92..73f05bff 100644 --- a/public/scripts/modules/board/templates/card.html +++ b/public/scripts/modules/board/templates/card.html @@ -1,32 +1,22 @@ -
            -
            - <%- title %> -
            - #<%= number %> -
            + <% if(assignee) { %> - + <% } %> +<%- title %> <% if(milestone) { %>
            Milestone: <%- milestone.title %>
            <% } %> +
            <% if(pull_request.html_url) { %> - Pull request + Pull <% } %> -
            <% _(other_labels).each(function(l) { %> -
            -
            -
            -
            - <%- l.name %> -
            -
            - +<%- l.name %> <% }); %> +
            diff --git a/public/scripts/modules/board/views/headerView.js b/public/scripts/modules/board/views/headerView.js index b4ab330a..37bbdfa8 100644 --- a/public/scripts/modules/board/views/headerView.js +++ b/public/scripts/modules/board/views/headerView.js @@ -1,7 +1,7 @@ define(["../../common/events/postal"], function(postal){ return Backbone.View.extend({ - el: $(".page-header-wrapper"), + el: $(".header"), events: { "keyup input" : "onkeyup" }, diff --git a/public/scripts/modules/board/views/sidebarView.js b/public/scripts/modules/board/views/sidebarView.js index 107d7f1b..40f6d189 100644 --- a/public/scripts/modules/board/views/sidebarView.js +++ b/public/scripts/modules/board/views/sidebarView.js @@ -43,7 +43,7 @@ define(["../../common/events/postal","./filterView"], function (postal, filterVi return new filterView({color: "#0069D6", name: milestone.title, count: milestone.open_issues, condition: function (issue) { return issue.milestone && issue.milestone.title.toLocaleLowerCase() === milestone.title.toLocaleLowerCase();}}).render().el; }); - var noMilestone = new filterView({color: "#0069D6", name: "No milestone assigned", + var noMilestone = new filterView({color: "#0069D6", name: "No milestone", condition: function (issue) { return !issue.milestone; }}).render().el; $this.append("
            Milestones
            "); diff --git a/public/scripts/modules/common/views/assigneeView.js b/public/scripts/modules/common/views/assigneeView.js index a57b0e3a..83fe0ca9 100644 --- a/public/scripts/modules/common/views/assigneeView.js +++ b/public/scripts/modules/common/views/assigneeView.js @@ -1,7 +1,7 @@ define(["../../common/events/postal", "text!../templates/assignee.html"], function(postal, template) { return Backbone.View.extend({ - el: $(".page-header-wrapper"), + el: $(".sidebar"), initialize: function(options){ var self = this; self.data = options.data; diff --git a/public/scripts/modules/huboard.allmodules.js b/public/scripts/modules/huboard.allmodules.js index fbe2c9fb..ef17ef60 100644 --- a/public/scripts/modules/huboard.allmodules.js +++ b/public/scripts/modules/huboard.allmodules.js @@ -4,4 +4,4 @@ * see: http://github.com/jrburke/requirejs for details */ -define("marker",{}),define("backlog/collections/issues",[],function(){var e={fetch:function(e,t){var n=this;$.ajax({url:"/api/"+e+"/"+t+"/backlog",dataType:"json",success:function(e){n.trigger("ondatareceived",e)}})}};return _.extend(e,Backbone.Events),e}),function(){var e=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],t=/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,n=/]*>\s*([\s\S]+)\s*<\/body>/im,r=typeof location!="undefined"&&location.href,i=r&&location.protocol&&location.protocol.replace(/\:/,""),s=r&&location.hostname,o=r&&(location.port||undefined),u=[];define("text",[],function(){var a,f,l;return typeof window!="undefined"&&window.navigator&&window.document?f=function(e,t){var n=a.createXhr();n.open("GET",e,!0),n.onreadystatechange=function(e){n.readyState===4&&t(n.responseText)},n.send(null)}:typeof process!="undefined"&&process.versions&&!!process.versions.node?(l=require.nodeRequire("fs"),f=function(e,t){t(l.readFileSync(e,"utf8"))}):typeof Packages!="undefined"&&(f=function(e,t){var n="utf-8",r=new java.io.File(e),i=java.lang.System.getProperty("line.separator"),s=new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(r),n)),o,u,a="";try{o=new java.lang.StringBuffer,u=s.readLine(),u&&u.length()&&u.charAt(0)===65279&&(u=u.substring(1)),o.append(u);while((u=s.readLine())!==null)o.append(i),o.append(u);a=String(o.toString())}finally{s.close()}t(a)}),a={version:"0.27.1",strip:function(e){if(e){e=e.replace(t,"");var r=e.match(n);r&&(e=r[1])}else e="";return e},jsEscape:function(e){return e.replace(/(['\\])/g,"\\$1").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r")},createXhr:function(){var t,n,r;if(typeof XMLHttpRequest!="undefined")return new XMLHttpRequest;for(n=0;n<3;n++){r=e[n];try{t=new ActiveXObject(r)}catch(i){}if(t){e=[r];break}}if(!t)throw new Error("createXhr(): XMLHttpRequest not available");return t},get:f,parseName:function(e){var t=!1,n=e.indexOf("."),r=e.substring(0,n),i=e.substring(n+1,e.length);return n=i.indexOf("!"),n!==-1&&(t=i.substring(n+1,i.length),t=t==="strip",i=i.substring(0,n)),{moduleName:r,ext:i,strip:t}},xdRegExp:/^((\w+)\:)?\/\/([^\/\\]+)/,useXhr:function(e,t,n,r){var i=a.xdRegExp.exec(e),s,o,u;return i?(s=i[2],o=i[3],o=o.split(":"),u=o[1],o=o[0],(!s||s===t)&&(!o||o===n)&&(!u&&!o||u===r)):!0},finishLoad:function(e,t,n,r,i){n=t?a.strip(n):n,i.isBuild&&i.inlineText&&(u[e]=n),r(n)},load:function(e,t,n,u){var f=a.parseName(e),l=f.moduleName+"."+f.ext,c=t.toUrl(l),h=u&&u.text&&u.text.useXhr||a.useXhr;!r||h(c,i,s,o)?a.get(c,function(t){a.finishLoad(e,f.strip,t,n,u)}):t([l],function(e){a.finishLoad(f.moduleName+"."+f.ext,f.strip,e,n,u)})},write:function(e,t,n,r){if(t in u){var i=a.jsEscape(u[t]);n.asModule(e+"!"+t,"define(function () { return '"+i+"';});\n")}},writeFile:function(e,t,n,r,i){var s=a.parseName(t),o=s.moduleName+"."+s.ext,u=n.toUrl(s.moduleName+"."+s.ext)+".js";a.load(o,n,function(t){var n=function(e){return r(u,e)};n.asModule=function(e,t){return r.asModule(e,u,t)},a.write(e,o,n,i)},i)}},a})}(),define("text!backlog/templates/board.html",[],function(){return'
            \n
            \n'}),define("text!backlog/templates/column.html",[],function(){return'

            <%- milestone.title %>

            \n
              \n'}),define("text!backlog/templates/card.html",[],function(){return'\n
              \n
              \n <%- title %>\n
              \n #<%= number %>\n
              \n<% if(assignee) { %>\n \n<% } %>\n\n<% if(milestone) { %>\n
              \n Milestone: <%- milestone.title %>\n
              \n<% } %>\n<% if (pull_request.html_url) { %>Pull request <%}%>\n
              \n<% _(other_labels).each(function(l) { %>\n
              \n
              \n
              \n
              \n <%- l.name %> \n
              \n
              \n\n<% }); %>\n\n
              \n'}),define("common/events/postal",["socket"],function(e){function t(){return((1+Math.random())*65536|0).toString(16).substring(1)}function n(){return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()}var r={},i=n();return{correlationId:i,subscribe:function(e,t){postal.channel(e).subscribe(t)},channel:function(e){return postal.channel(e)},publish:function(e,t){postal.channel(e).publish(t)},socket:function(t,n,s){if(!e)return;var o=postal.channel(t);postal.channel(n).subscribe(s);if(r[t])return;r[t]=t,e.on(t,function(e){e.correlationId!==i&&postal.channel(e.event).publish(e.payload)})}}}),define("backlog/models/card",["../../common/events/postal"],function(e){var t=function(e){this.attributes=e.model,this.user=e.user,this.repo=e.repo};return _.extend(t.prototype,{save:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/assignmilestone",{milestone:t.milestone,issue:this.attributes,correlationId:e.correlationId},function(e){})},close:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/close",{index:t.index,issue:this.attributes,correlationId:e.correlationId},function(e){})},assign:function(t){this.attributes.assignee=t,$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/assigncard",{issue:this.attributes,correlationId:e.correlationId,assignee:t.login},function(e){})},reorder:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/reorderissue",{index:t.order,issue:this.attributes,correlationId:e.correlationId},function(e){})}}),t}),define("backlog/views/cardView",["text!../templates/card.html","../models/card","../../common/events/postal"],function(e,t,n){return Backbone.View.extend({initialize:function(e){this.issue=new t({model:e.issue,user:e.user,repo:e.repo}),_.bind(this,"moved",this.moved),_.bind(this,"reorder",this.drop),n.subscribe("Filter.Simple",$.proxy(this.simpleFilter,this)),n.subscribe("Filter.Complex",$.proxy(this.complexFilter,this)),n.socket(e.user+"/"+e.repo,"Closed."+e.issue.number,$.proxy(this.onClosed,this)),n.socket(e.user+"/"+e.repo,"Assigned."+e.issue.number,$.proxy(this.onAssigned,this)),n.socket(e.user+"/"+e.repo,"Updated."+e.issue.number,$.proxy(this.onUpdated,this)),this.filtersHash={simple:{},complex:{}}},events:{moved:"moved","click .close":"closed",drop:"dropped",reorder:"drop","click .number":"onNumber",click:"fullscreen"},tagName:"li",onMoved:function(e){n.publish("Moved.Socket."+e.index,{card:this})},onNumber:function(e){e.stopPropagation()},onUpdated:function(e){this.issue.attributes=_.extend(this.issue.attributes,e.issue),this.render(),this.transition()},onClosed:function(){this.remove(),n.publish("Closed.Issue",{card:this})},fullscreen:function(e){n.publish("Card.Fullscreen",this.issue)},render:function(){$(this.el).html(_.template(e,this.issue.attributes)).droppable({scope:"assignee",hoverClass:"assignee-accept"}).data("issue",this.issue.attributes);if(this.issue.attributes.repo.color){var t=$.Color("#"+this.issue.attributes.repo.color),n="3px solid "+$.Color(t.alpha(.5)).toRgbaString();$(this.el).css({"border-left":n})}return this},moved:function(e,t){this.issue.save({milestone:t.milestone})},dropped:function(e,t){var n=$(t.draggable).data("assignee");this.issue.assign(n),this.onAssigned({assignee:n})},onAssigned:function(e){this.issue.attributes.assignee=e.assignee,this.render()},closed:function(e,t){e.preventDefault(),this.issue.close({index:t}),this.remove(),n.publish("Closed.Issue",{card:this})},transition:function(){var e=[],t=this;setTimeout(function(){for(var n in t.filtersHash.simple)e.push(t.filtersHash.simple[n]);var r=_.filter(e,function(e){return e.state===1}),i=_.filter(e,function(e){return e.state===2});if(_.any(i,function(e){return!e.condition(t.issue.attributes)})){$(t.el).addClass("hide").removeClass("dim active");return}if(_.any(r,function(e){return!e.condition(t.issue.attributes)})){$(t.el).addClass("dim").removeClass("hide active");return}$(t.el).removeClass("dim hide active"),(r.length||i.length)&&$(t.el).addClass("active")},0)},simpleFilter:function(e){var t=this;this.filtersHash.simple[e.id]=e,this.transition()},drop:function(e,t){this.issue.reorder({order:t})}})}),define("backlog/models/milestone",[],function(){var e=function(e){this.attributes=e.model,this.user=e.user,this.repo=e.repo};return _.extend(e.prototype,{save:function(e){if(!e.order||e.order===0)console.error("something wrong happened index should not be 0"),console.log("falling back to original number",this.attributes.number),e.order=this.attributes.number;$.post("/api/"+this.user+"/"+this.repo+"/reordermilestone",{index:e.order,status:e.status,milestone:this.attributes},function(e){})}}),e}),define("backlog/views/columnView",["text!../templates/column.html","./cardView","../../common/events/postal","../models/milestone"],function(e,t,n,r){var i=Backbone.View.extend({initialize:function(e){this.column=e.column,this.repo=e.repo,this.user=e.user,this.milestone=new r({model:this.column.milestone,user:e.user,repo:e.repo}),_.bind("reordered",this.reordered)},tagName:"div",className:"column",events:{reorder:"reordered"},reordered:function(e,t){this.milestone.save(t)},onOpened:function(e){var r=new t({issue:e,user:this.user,repo:this.repo});$("ul",this.el).append(r.render().el),n.publish("Opened.Issue",e)},onSocket:function(e){var t=$("li",this.el),n=t.index(e.card.el);if(n!==-1)return;$("ul",this.el).append(e.card.el)},render:function(){var n=$(_.template(e,this.column)),r=this,i=_.map(this.column.issues,function(e){var n=new t({issue:e,user:r.user,repo:r.repo});return n.render().el});return $(this.el).append(n).data("milestone",this.column.milestone).find("ul").append(i),$("ul",this.el).sortable({helper:"clone",connectWith:".sortable",placeholder:"ui-sortable-placeholder",receive:$.proxy(this.onReceive,this),remove:$.proxy(this.onRemove,this),over:$.proxy(this.onOver,this),update:$.proxy(this.onStop,this),out:$.proxy(this.onOut,this)}),this},onReceive:function(e,t){$(t.item).trigger("moved",this.column)},onRemove:function(e,t){},onOver:function(e,t){$("ul",this.el).addClass("ui-sortable-hover")},onOut:function(e,t){$("ul",this.el).removeClass("ui-sortable-hover")},onStop:function(e,t){var n=$("li",this.el),r=n.index(t.item);if(r===-1)return;var i=r===0,s=r===n.size()-1,o=$(t.item),u=o.data("issue"),a=n.get(r?r-1:r),f=n.index(a),l=$(a).data("issue"),c=n.get(n.size()-1>r?r+1:r),h=n.index(c),p=$(c).data("issue"),d=u._data.order||u.number,v=l._data.order||l.number,m=p._data.order||p.number;if(i&&s)return;i?(u._data.order=(m||1)/2,o.trigger("reorder",u._data.order).data("issue",u)):s?(u._data.order=v+1,o.trigger("reorder",u._data.order).data("issue",u)):(u._data.order=(m+v||1)/2,o.trigger("reorder",u._data.order).data("issue",u))}});return i}),define("backlog/views/filterView",["../../common/events/postal"],function(e){return jQuery.Color.fn.contrastColor=function(){var e=this._rgba[0],t=this._rgba[1],n=this._rgba[2];return(e*299+t*587+n*144)/1e3>=131.5?"#333":"white"},Backbone.View.extend({tagName:"li",className:"filter",initialize:function(e){this.params=e,this.condition=e.condition,this.name=e.name,this.type=e.type||"Simple",this.state=0,this.states=[0,1,2,0]},events:{click:"clicked",clear:"clearAndPublish","click .ui-icon":"clearAndPublish"},render:function(){return $(this.el).html(""+this.name+"").addClass("-x"+this.params.color.substring(1)).data("filter",this),this},clicked:function(e){e.preventDefault();switch(this.state=this.states[this.state+1]){case 0:this.clear();break;case 1:this.fade();break;case 2:this.solid()}this.publish()},clear:function(){$(this.el).find("a").removeClass("dim").removeClass("active")},publish:function(){e.publish("Filter."+this.type,{id:this.cid,condition:this.condition,state:this.state})},clearAndPublish:function(e){return e.preventDefault(),this.state=0,this.publish(),this.clear(),!1},fade:function(){$(this.el).find("a").addClass("dim").removeClass("active")},solid:function(){$(this.el).find("a").addClass("active").removeClass("dim")}})}),define("backlog/views/sidebarView",["../../common/events/postal","./filterView"],function(e,t){return Backbone.View.extend({tagName:"ul",className:"filters",initialize:function(e){this.login=e.params.login,this.labels=e.data.other_labels},render:function(){var e=$(this.el),n=this.login,r=(new t({color:"#0069D6",name:"Assigned to me",condition:function(e){return e.assignee&&e.assignee.login===n}})).render(),i=(new t({color:"#0069D6",name:"Assigned to others",condition:function(e){return e.assignee&&e.assignee.login!==n}})).render(),s=(new t({color:"#0069D6",name:"Unassigned issues",condition:function(e){return!e.assignee}})).render(),o=$([r.el,i.el,s.el]);e.append(o),o.click(function(e){e.preventDefault();var t=$(this),n=t.data("filter"),r=_(o).filter(function(e){var t=$(e).data("filter");return n.cid!==t.cid&&t.state!==0});_(r).each(function(e){$(e).trigger("clear")})});var u=_.map(this.labels,function(e){return(new t({color:"#"+e.color,name:e.name,condition:function(t){return _.any(t.labels,function(t){return t.name.toLocaleLowerCase()===e.name.toLocaleLowerCase()})}})).render().el});return e.append("
              Labels
              "),e.append(u),this}})}),define("backlog/views/headerView",["../../common/events/postal"],function(e){return Backbone.View.extend({el:$(".page-header-wrapper"),events:{"keyup input":"onkeyup"},initialize:function(t){var n=this;this.publish=_.debounce(function(){var t=$(n.el).find("input").val();e.publish("Filter.Simple",{id:"search",condition:function(e){return e.title.toLocaleLowerCase().indexOf(t.toLocaleLowerCase())!==-1},state:2})},300)},onkeyup:function(e){this.publish()}})}),define("text!common/templates/assignee.html",[],function(){return'
            • \n <%= login %>\n
            • \n'}),define("common/views/assigneeView",["../../common/events/postal","text!../templates/assignee.html"],function(e,t){return Backbone.View.extend({el:$(".page-header-wrapper"),initialize:function(e){var t=this;t.data=e.data,t.state=0,t.classes=[["",""],["dim","active"],["hide","active"]],t.render()},events:{"click li":"filter"},filter:function(t){var n=this,r=$(t.currentTarget),i=r.data("login"),s=n.state;s=(s+1)%3,console.log("assignee state %f",s),e.publish("Filter.Simple",{condition:function(e){return e.assignee&&e.assignee.login===i},state:s}),s===1&&(n.$("li").removeClass("active inactive").addClass("dim"),r.removeClass("dim").addClass("active")),s===2&&(n.$("li").removeClass("active inactive").addClass("inactive"),r.removeClass("dim inactive").addClass("active")),s===0&&n.$("li").removeClass("dim active inactive"),n.state=s},render:function(){var e=$(this.el).find("ol"),n=_(this.data.assignees).chain().map(function(e){return $(_.template(t,e)).data("assignee",e)}).value();return e.append(n),e.find("li").draggable({helper:"clone",scope:"assignee",zIndex:100,appendTo:"body"}),this}})}),define("text!backlog/templates/css.html",[],function(){return'<% \n_(["filter","card-label"]).each(function(name){\n _(other_labels).each(function(l) {\n%>\n .<%= name %>.-x<%= l.color %>.active, .<%= name %>.-x<%= l.color %>.active:hover {\n background-color: #<%= l.color %>;\n background-color: <%= $.Color("#" + l.color).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n\n .<%= name %>.-x<%= l.color %> .active, .<%= name %>.-x<%= l.color %> .active:hover {\n background-color: #<%= l.color %>;\n background-color: <%= $.Color("#" + l.color).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n \n .<%= name %>.-x<%= l.color %>.dim, .<%= name %>.-x<%= l.color %>.dim:hover {\n background-color: <%= $.Color($.Color("#" + l.color).alpha(0.6)).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n\n .<%= name %>.-x<%= l.color %> .dim , .<%= name %>.-x<%= l.color %> .dim:hover {\n background-color: <%= $.Color($.Color("#" + l.color).alpha(0.6)).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n\n <%})});%>\n'}),define("backlog/views/cssView",["../collections/issues","text!../templates/css.html"],function(e,t){e.bind("ondatareceived",function(e){var n=_.template(t,e),r=document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css",i.styleSheet?i.styleSheet.cssText=n:i.appendChild(document.createTextNode(n)),r.appendChild(i)})}),define("backlog/views/board",["../collections/issues","text!../templates/board.html","./columnView","./sidebarView","./headerView","../../common/views/assigneeView","../../common/events/postal","./cssView"],function(e,t,n,r,i,s,o){var u=function(){var e=_($("ul")).chain().map(function(e){return $(e).height()}).reduce(function(e,t){return t>e?t:e}).value();return e},a=function(e){switch(e){case"open":$("#drawer").find(".toggle-drawer").removeClass("arrow-right").addClass("arrow-left").end().animate({left:"+=270px"},300),$("#content").animate({"margin-left":"+=100px"},300);break;case"close":$("#drawer").animate({left:"-=270px"},300,function(){$(this).find(".toggle-drawer").removeClass("arrow-left").addClass("arrow-right").end()}),$("#content").animate({"margin-left":"-=100px"},300)}};return Backbone.View.extend({el:$("#stage"),events:{"click .toggle-drawer":"toggleDrawer"},initialize:function(t){e.bind("ondatareceived",this.onfetch,this),e.fetch(t.user,t.repo),this.user=t.user,this.repo=t.repo,this.params=t,o.subscribe("Opened.Issue",$.proxy(this.onOpened,this)),o.subscribe("Closed.Issue",$.proxy(this.onClosed,this))},onOpened:function(){this.resizeColumns()},onClosed:function(){this.resizeColumns()},onfetch:function(e){var o=$(_.template(t,e)),u=o.clone(),a=e.unassigned,f=new r({data:e,params:this.params}),l=new i,c=new s({data:e,params:this.params}),h=this;$(u).append((new n({column:a,user:this.user,repo:this.repo})).render().el),_.each(e.milestones,function(e){var t=new n({column:e,user:h.user,repo:h.repo}),r=$(t.render().el).css({width:"260px"});$(o).append(r)}),$("#stage").append(o),$(o).sortable({axis:"x",handle:"h3",cursor:"move",stop:$.proxy(this.fullStop,this),start:$.proxy(this.onStart,this),remove:$.proxy(this.onRemove,this),over:$.proxy(this.onOver,this),update:$.proxy(this.onStop,this)}),$("#drawer","#main-stage").append(u).find(".toggle-drawer").show(),$(".sidebar-wrapper").append(f.render().el).show(),$('[rel~="twipsy"]').tooltip({live:!0}),this.resizeColumns()},resizeColumns:function(){var e=u();$("ul","#main-stage").css("min-height",e)},toggleDrawer:function(e){e.preventDefault();var t=$(".toggle-drawer").hasClass("arrow-left");t?a("close"):a("open")},onReceive:function(e,t){},onRemove:function(e,t){},onOver:function(e,t){},onOut:function(e,t){},fullStop:function(e,t){$(t.item).removeClass("ui-state-dragging")},onStart:function(e,t){$(t.item).addClass("ui-state-dragging")},onStop:function(e,t){var n=$(".backlog > div",this.el),r=n.index(t.item);if(r===-1)return;var i=r===0,s=r===n.size()-1,o=$(t.item),u=o.data("milestone"),a=n.get(r?r-1:r),f=n.index(a),l=$(a).data("milestone"),c=n.get(n.size()-1>r?r+1:r),h=n.index(c),p=$(c).data("milestone"),d=u._data.order||u.number,v=l._data.order||l.number,m=p._data.order||p.number;if(i&&s)u._data.order=d;else if(i){var g=m||1;u._data.order=g-1>0?g-1:g/2}else s?u._data.order=v+1:u._data.order=(m+v||1)/2;o.trigger("reorder",{order:u._data.order}).data("milestone",u)}})}),define("backlog/main",["./views/board"],function(e){var t={};return{init:function(n){t.board=new e(n)}}}),define("board/collections/issues",[],function(){var e={fetch:function(e,t){var n=this,r=$.ajax({url:"/api/"+e+"/"+t+"/board",dataType:"json",success:function(e){}}),i=$.ajax({url:"/api/"+e+"/"+t+"/column",dataType:"json"});$.when(r).then(function(r){if(!r.labels.length){window.location.href="/"+e+"/"+t+"/board/create";return}n.trigger("ondatareceived",r),_.each(r.labels,function(e){n.trigger("onissuesreceived."+e.index,e.issues)}),n.trigger("afterreceived"),$.when(i).then(function(e){n.trigger("onissuesreceived."+e.index,e.issues),n.trigger("afterreceived")})})}};return _.extend(e,Backbone.Events),e}),define("text!board/templates/board.html",[],function(){return'
              \n
              \n'}),define("text!board/templates/column.html",[],function(){return'
              \n

              <%- text %>

              \n
                \n
                \n'}),define("text!board/templates/card.html",[],function(){return'\n
                \n
                \n <%- title %>\n
                \n #<%= number %>\n
                \n<% if(assignee) { %>\n \n<% } %>\n\n<% if(milestone) { %>\n
                \n Milestone: <%- milestone.title %>\n
                \n<% } %>\n<% if(pull_request.html_url) { %>\n Pull request\n<% } %>\n
                \n<% _(other_labels).each(function(l) { %>\n
                \n
                \n
                \n
                \n <%- l.name %> \n
                \n
                \n\n<% }); %>\n\n
                \n'}),define("board/models/card",["../../common/events/postal"],function(e){var t=function(e){this.attributes=e.model,this.user=e.user,this.repo=e.repo};return _.extend(t.prototype,{save:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/movecard",{index:t.index,issue:this.attributes,correlationId:e.correlationId},function(e){})},close:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/close",{index:t.index,issue:this.attributes,correlationId:e.correlationId},function(e){})},assign:function(t){this.attributes.assignee=t,$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/assigncard",{issue:this.attributes,correlationId:e.correlationId,assignee:t.login},function(e){})},reorder:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/reorderissue",{index:t.order,issue:this.attributes,correlationId:e.correlationId},function(e){})}}),t}),define("board/views/cardView",["text!../templates/card.html","../models/card","../../common/events/postal"],function(e,t,n){return Backbone.View.extend({initialize:function(e){this.issue=new t({model:e.issue,user:e.user,repo:e.repo}),_.bind(this,"moved",this.moved),_.bind(this,"reorder",this.drop),n.subscribe("Filter.Simple",$.proxy(this.simpleFilter,this)),n.subscribe("Filter.Complex",$.proxy(this.complexFilter,this)),n.socket(e.user+"/"+e.repo,"Moved."+e.issue.number,$.proxy(this.onMoved,this)),n.socket(e.user+"/"+e.repo,"Closed."+e.issue.number,$.proxy(this.onClosed,this)),n.socket(e.user+"/"+e.repo,"Assigned."+e.issue.number,$.proxy(this.onAssigned,this)),n.socket(e.user+"/"+e.repo,"Updated."+e.issue.number,$.proxy(this.onUpdated,this)),this.filtersHash={simple:{},complex:{}}},events:{moved:"moved","click .close":"closed",drop:"dropped",reorder:"drop","click .number":"onNumber",click:"fullscreen"},tagName:"li",onNumber:function(e){e.stopPropagation()},onMoved:function(e){n.publish("Moved.Socket."+e.index,{card:this})},onUpdated:function(e){this.issue.attributes=_.extend(this.issue.attributes,e.issue),this.render(),this.transition()},onClosed:function(){this.remove(),n.publish("Closed.Issue",{card:this})},fullscreen:function(e){n.publish("Card.Fullscreen",this.issue)},render:function(){$(this.el).html(_.template(e,this.issue.attributes)).droppable({scope:"assignee",hoverClass:"assignee-accept"}).data("issue",this.issue.attributes);if(this.issue.attributes.repo.color){var t=$.Color("#"+this.issue.attributes.repo.color),n="3px solid "+$.Color(t.alpha(.5)).toRgbaString();$(this.el).css({"border-left":n})}return this},moved:function(e,t){this.issue.save({index:t})},dropped:function(e,t){var n=$(t.draggable).data("assignee");this.issue.assign(n),this.onAssigned({assignee:n})},onAssigned:function(e){this.issue.attributes.assignee=e.assignee,this.render()},closed:function(e,t){e.preventDefault(),e.stopPropagation(),this.issue.close({index:t}),this.remove(),n.publish("Closed.Issue",{card:this})},transition:function(){var e=[],t=this;setTimeout(function(){for(var n in t.filtersHash.simple)e.push(t.filtersHash.simple[n]);var r=_.filter(e,function(e){return e.state===1}),i=_.filter(e,function(e){return e.state===2});if(_.any(i,function(e){return!e.condition(t.issue.attributes)})){$(t.el).addClass("hide").removeClass("dim active");return}if(_.any(r,function(e){return!e.condition(t.issue.attributes)})){$(t.el).addClass("dim").removeClass("hide active");return}$(t.el).removeClass("dim hide active"),(r.length||i.length)&&$(t.el).addClass("active")},0)},simpleFilter:function(e){var t=this;this.filtersHash.simple[e.id]=e,this.transition()},drop:function(e,t){this.issue.reorder({order:t})}})}),define("board/views/columnView",["../collections/issues","text!../templates/column.html","./cardView","../../common/events/postal"],function(e,t,n,r){var i=Backbone.View.extend({initialize:function(t){this.column=t.column,this.repo=t.repo,this.user=t.user,this.latched=!1,r.subscribe("Moved.Socket."+t.column.index,$.proxy(this.onSocket,this)),r.socket(t.user+"/"+t.repo,"Opened."+t.column.index,$.proxy(this.onOpened,this)),e.bind("onissuesreceived."+t.column.index,this.onfetch,this)},onfetch:function(e){var t=_.map(e,function(e){var t=new n({issue:e,user:self.user,repo:self.repo});return t.render().el});$("ul",this.el).append(t)},onOpened:function(e){var t=new n({issue:e,user:this.user,repo:this.repo});$("ul",this.el).append(t.render().el),r.publish("Opened.Issue",e)},onSocket:function(e){var t=$("li",this.el),n=t.index(e.card.el);if(n!==-1)return;$("ul",this.el).append(e.card.el)},render:function(){var e=$(_.template(t,this.column)),n=this;return this.el=e,$("ul",this.el).sortable({helper:"clone",connectWith:".sortable",placeholder:"ui-sortable-placeholder",receive:$.proxy(this.onReceive,this),remove:$.proxy(this.onRemove,this),over:$.proxy(this.onOver,this),update:$.proxy(this.onStop,this),out:$.proxy(this.onOut,this)}),this},onReceive:function(e,t){$(t.item).trigger("moved",this.column.index)},onRemove:function(e,t){},onOver:function(e,t){$("ul",this.el).addClass("ui-sortable-hover")},onOut:function(e,t){$("ul",this.el).removeClass("ui-sortable-hover")},onStop:function(e,t){var n=$("li",this.el),r=n.index(t.item);if(r===-1)return;var i=r===0,s=r===n.size()-1,o=$(t.item),u=o.data("issue"),a=n.get(r?r-1:r),f=n.index(a),l=$(a).data("issue"),c=n.get(n.size()-1>r?r+1:r),h=n.index(c),p=$(c).data("issue"),d=u._data.order||u.number,v=l._data.order||l.number,m=p._data.order||p.number;if(i&&s)return;i?(u._data.order=(m||1)/2,o.trigger("reorder",u._data.order).data("issue",u)):s?(u._data.order=v+1,o.trigger("reorder",u._data.order).data("issue",u)):(u._data.order=(m+v||1)/2,o.trigger("reorder",u._data.order).data("issue",u))}});return i}),define("board/views/filterView",["../../common/events/postal"],function(e){return jQuery.Color.fn.contrastColor=function(){var e=this._rgba[0],t=this._rgba[1],n=this._rgba[2];return(e*299+t*587+n*144)/1e3>=131.5?"#333":"white"},Backbone.View.extend({tagName:"li",className:"filter",initialize:function(e){this.params=e,this.condition=e.condition,this.name=e.name,this.type=e.type||"Simple",this.state=0,this.states=[0,1,2,0]},events:{click:"clicked",clear:"clearAndPublish","click .ui-icon":"clearAndPublish"},render:function(){return $(this.el).html(""+this.name+"").addClass("-x"+this.params.color.substring(1)).data("filter",this),this},clicked:function(e){e.preventDefault();switch(this.state=this.states[this.state+1]){case 0:this.clear();break;case 1:this.fade();break;case 2:this.solid()}this.publish()},clear:function(){$(this.el).find("a").removeClass("dim").removeClass("active")},publish:function(){e.publish("Filter."+this.type,{id:this.cid,condition:this.condition,state:this.state})},clearAndPublish:function(e){return e.preventDefault(),this.state=0,this.publish(),this.clear(),!1},fade:function(){$(this.el).find("a").addClass("dim").removeClass("active")},solid:function(){$(this.el).find("a").addClass("active").removeClass("dim")}})}),define("board/views/sidebarView",["../../common/events/postal","./filterView"],function(e,t){return Backbone.View.extend({tagName:"ul",className:"filters",initialize:function(e){this.milestones=e.data.milestones,this.login=e.params.login,this.labels=e.data.other_labels},render:function(){var e=$(this.el),n=this.login,r=(new t({color:"#0069D6",name:"Assigned to me",condition:function(e){return e.assignee&&e.assignee.login===n}})).render(),i=(new t({color:"#0069D6",name:"Assigned to others",condition:function(e){return e.assignee&&e.assignee.login!==n}})).render(),s=(new t({color:"#0069D6",name:"Unassigned issues",condition:function(e){return!e.assignee}})).render(),o=$([r.el,i.el,s.el]);e.append(o),o.click(function(e){e.preventDefault();var t=$(this),n=t.data("filter"),r=_(o).filter(function(e){var t=$(e).data("filter");return n.cid!==t.cid&&t.state!==0});_(r).each(function(e){$(e).trigger("clear")})});var u=_.groupBy(this.milestones,function(e){return e._data.status||"backlog"}),a=(u.wip||[]).concat(u.backlog||[]),f=_.map(a,function(e){return(new t({color:"#0069D6",name:e.title,count:e.open_issues,condition:function(t){return t.milestone&&t.milestone.title.toLocaleLowerCase()===e.title.toLocaleLowerCase()}})).render().el}),l=(new t({color:"#0069D6",name:"No milestone assigned",condition:function(e){return!e.milestone}})).render().el;e.append("
                Milestones
                "),e.append(l),e.append(f),$(f.concat(l)).click(function(e){e.preventDefault();var t=$(this),n=t.data("filter"),r=_(f.concat(l)).filter(function(e){var t=$(e).data("filter");return n.cid!==t.cid&&t.state!==0});_(r).each(function(e){$(e).trigger("clear")})});var c=_.map(this.labels,function(e){return(new t({color:"#"+e.color,name:e.name,condition:function(t){return _.any(t.labels,function(t){return t.name.toLocaleLowerCase()===e.name.toLocaleLowerCase()})}})).render().el});return e.append("
                Labels
                "),e.append(c),this}})}),define("board/views/headerView",["../../common/events/postal"],function(e){return Backbone.View.extend({el:$(".page-header-wrapper"),events:{"keyup input":"onkeyup"},initialize:function(t){var n=this;this.publish=_.debounce(function(){var t=$(n.el).find("input").val();e.publish("Filter.Simple",{id:"search",condition:function(e){return e.title.toLocaleLowerCase().indexOf(t.toLocaleLowerCase())!==-1},state:2})},300)},onkeyup:function(e){this.publish()}})}),define("text!board/templates/css.html",[],function(){return'<% \n_(["filter","card-label"]).each(function(name){\n _(other_labels).each(function(l) {\n%>\n .<%= name %>.-x<%= l.color %>.active, .<%= name %>.-x<%= l.color %>.active:hover {\n background-color: #<%= l.color %>;\n background-color: <%= $.Color("#" + l.color).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n\n .<%= name %>.-x<%= l.color %> .active, .<%= name %>.-x<%= l.color %> .active:hover {\n background-color: #<%= l.color %>;\n background-color: <%= $.Color("#" + l.color).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n \n .<%= name %>.-x<%= l.color %>.dim, .<%= name %>.-x<%= l.color %>.dim:hover {\n background-color: <%= $.Color($.Color("#" + l.color).alpha(0.6)).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n\n .<%= name %>.-x<%= l.color %> .dim , .<%= name %>.-x<%= l.color %> .dim:hover {\n background-color: <%= $.Color($.Color("#" + l.color).alpha(0.6)).toString() %>;\n color: <%= $.Color("#" + l.color).contrastColor() %>;\n }\n\n <%})});%>\n'}),define("board/views/cssView",["../collections/issues","text!../templates/css.html"],function(e,t){e.bind("ondatareceived",function(e){var n=_.template(t,e),r=document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css",i.styleSheet?i.styleSheet.cssText=n:i.appendChild(document.createTextNode(n)),r.appendChild(i)})}),define("board/views/board",["../collections/issues","text!../templates/board.html","./columnView","./sidebarView","./headerView","../../common/views/assigneeView","../../common/events/postal","./cssView"],function(e,t,n,r,i,s,o){var u=function(){var e=_($("ul")).chain().map(function(e){return $(e).height()}).reduce(function(e,t){return t>e?t:e}).value();return e},a=function(e){switch(e){case"open":$("#drawer").find(".toggle-drawer").removeClass("arrow-right").addClass("arrow-left").end().animate({left:"+=270px"},300),$("#content").animate({"margin-left":"+=100px"},300);break;case"close":$("#drawer").animate({left:"-=270px"},300,function(){$(this).find(".toggle-drawer").removeClass("arrow-left").addClass("arrow-right").end()}),$("#content").animate({"margin-left":"-=100px"},300)}};return Backbone.View.extend({el:$("#stage"),events:{"click .toggle-drawer":"toggleDrawer"},initialize:function(t){e.bind("ondatareceived",this.onfetch,this),e.bind("afterreceived",this.resizeColumns,this),e.fetch(t.user,t.repo),this.user=t.user,this.repo=t.repo,this.params=t,o.subscribe("Opened.Issue",$.proxy(this.onOpened,this)),o.subscribe("Closed.Issue",$.proxy(this.onClosed,this))},onOpened:function(){this.resizeColumns()},onClosed:function(){this.resizeColumns()},onfetch:function(e){var o=$(_.template(t,e)),u=o.clone(),a=_.first(e.labels),f=_.rest(e.labels),l=new r({data:e,params:this.params}),c=new i,h=new s({data:e,params:this.params}),p=this;$(u).append((new n({column:a,user:this.user,repo:this.repo})).render().el);var d=100/f.length;_.each(f,function(e){var t=new n({column:e,user:p.user,repo:p.repo}),r=$(t.render().el).css({width:d+"%"});$(o).append(r)}),$("#stage").append(o),$("#drawer","#main-stage").append(u).find(".toggle-drawer").show(),$(".sidebar-wrapper").append(l.render().el).show(),$('[rel~="twipsy"]').tooltip({live:!0}),this.resizeColumns()},resizeColumns:function(){var e=u();$("ul","#main-stage").css("min-height",e)},toggleDrawer:function(e){e.preventDefault();var t=$(".toggle-drawer").hasClass("arrow-left");t?a("close"):a("open")}})}),define("board/main",["./views/board"],function(e){var t={};return{init:function(n){t.board=new e(n)}}}),define("text!card/templates/card.html",[],function(){return'\n
                \n
                \n
                \n

                <%- title %>

                \n
                \n
                \n
                \n \n \n \n
                \n <%= body_html %>\n
                \n
                \n
                \n'}),define("text!card/templates/feed.html",[],function(){return'\n
                \n
                \n

                Activity

                \n
                \n <% _(issue.comments).each(function(c) { %>\n
                \n \n \n \n
                \n <%= c.body_html %>\n
                \n
                \n <% }); %>\n
                \n'}),define("text!card/templates/actions/labels.html",[],function(){return'\n\n
                  \n
                  Labels
                  \n <% _(available_labels).each(function(l) { %>\n
                • \n <% if(_.find(current_labels, function(x){ return x.name === l.name})) { %>\n <%- l.name %> \n \' checked=\'checked\' />\n <% } else { %>\n <%- l.name %> \n \' />\n <% } %>\n
                • \n <% }); %>\n
                \n'}),define("card/views/actions/labels",["text!../../templates/actions/labels.html"],function(e){var t=Backbone.View.extend({initialize:function(e,t){this.data=e,this.issue=t},events:{"click li":"update"},render:function(){var t=this.issue,n="/api/"+t.attributes.repo.owner.login+"/"+t.attributes.repo.name+"/issues/"+t.attributes.number+"/update_labels";return $(this.el).append("").find("form").html(_.template(e,this.data)),this},update:function(e,t){var n=$(e.currentTarget),r=n.find("span").toggleClass("active"),i=n.find("input");i.prop("checked",!i.prop("checked"));var s=$(this.el).find("form"),o=s.serialize();$.ajax({url:s.attr("action"),data:o,dataType:"json",type:"POST"}).done(function(e){console.log(e)})}});return{create:function(e,n){return new t(e,n)}}}),define("card/views/card",["../../common/events/postal","text!../templates/card.html","text!../templates/feed.html","./actions/labels"],function(e,t,n,r){var i={labels:r};return Backbone.View.extend({tagName:"div",className:"fullscreen-card",initialize:function(t){e.subscribe("Card.Fullscreen",$.proxy(this.open,this))},render:function(e){return $(this.el).html(_.template(t,e)),this},open:function(e){var t=this;this.issue=e,this.render(e.attributes),$.getJSON("/api/"+e.attributes.repo.owner.login+"/"+e.attributes.repo.name+"/issues/"+e.attributes.number+"/feed").done(function(e){$(t.el).find(".fullscreen-card-left").append(_.template(n,e));var r=null;for(r in e.actions)$(t.el).find("."+r+"-placeholder").append(i[r].create(e.actions[r],t.issue).render().el)})}})}),define("card/main",["../common/events/postal","./views/card"],function(e,t){var n={open:function(){$("body").addClass("fullscreen-open")},close:function(){$("body").removeClass("fullscreen-open")},init:function(){$(".fullscreen-wrapper > div").click(function(e){e.stopPropagation()}),$(".fullscreen-overlay").click(n.close),e.subscribe("Card.Fullscreen",$.proxy(this.open,this))}};return{init:function(e){n.card=new t(e),$(this).append(n.card.el),n.init()}}}); \ No newline at end of file +define("marker",{}),define("backlog/collections/issues",[],function(){var e={fetch:function(e,t){var n=this;$.ajax({url:"/api/"+e+"/"+t+"/backlog",dataType:"json",success:function(e){n.trigger("ondatareceived",e)}})}};return _.extend(e,Backbone.Events),e}),function(){var e=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],t=/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,n=/]*>\s*([\s\S]+)\s*<\/body>/im,r=typeof location!="undefined"&&location.href,i=r&&location.protocol&&location.protocol.replace(/\:/,""),s=r&&location.hostname,o=r&&(location.port||undefined),u=[];define("text",[],function(){var a,f,l;return typeof window!="undefined"&&window.navigator&&window.document?f=function(e,t){var n=a.createXhr();n.open("GET",e,!0),n.onreadystatechange=function(e){n.readyState===4&&t(n.responseText)},n.send(null)}:typeof process!="undefined"&&process.versions&&!!process.versions.node?(l=require.nodeRequire("fs"),f=function(e,t){t(l.readFileSync(e,"utf8"))}):typeof Packages!="undefined"&&(f=function(e,t){var n="utf-8",r=new java.io.File(e),i=java.lang.System.getProperty("line.separator"),s=new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(r),n)),o,u,a="";try{o=new java.lang.StringBuffer,u=s.readLine(),u&&u.length()&&u.charAt(0)===65279&&(u=u.substring(1)),o.append(u);while((u=s.readLine())!==null)o.append(i),o.append(u);a=String(o.toString())}finally{s.close()}t(a)}),a={version:"0.27.1",strip:function(e){if(e){e=e.replace(t,"");var r=e.match(n);r&&(e=r[1])}else e="";return e},jsEscape:function(e){return e.replace(/(['\\])/g,"\\$1").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r")},createXhr:function(){var t,n,r;if(typeof XMLHttpRequest!="undefined")return new XMLHttpRequest;for(n=0;n<3;n++){r=e[n];try{t=new ActiveXObject(r)}catch(i){}if(t){e=[r];break}}if(!t)throw new Error("createXhr(): XMLHttpRequest not available");return t},get:f,parseName:function(e){var t=!1,n=e.indexOf("."),r=e.substring(0,n),i=e.substring(n+1,e.length);return n=i.indexOf("!"),n!==-1&&(t=i.substring(n+1,i.length),t=t==="strip",i=i.substring(0,n)),{moduleName:r,ext:i,strip:t}},xdRegExp:/^((\w+)\:)?\/\/([^\/\\]+)/,useXhr:function(e,t,n,r){var i=a.xdRegExp.exec(e),s,o,u;return i?(s=i[2],o=i[3],o=o.split(":"),u=o[1],o=o[0],(!s||s===t)&&(!o||o===n)&&(!u&&!o||u===r)):!0},finishLoad:function(e,t,n,r,i){n=t?a.strip(n):n,i.isBuild&&i.inlineText&&(u[e]=n),r(n)},load:function(e,t,n,u){var f=a.parseName(e),l=f.moduleName+"."+f.ext,c=t.toUrl(l),h=u&&u.text&&u.text.useXhr||a.useXhr;!r||h(c,i,s,o)?a.get(c,function(t){a.finishLoad(e,f.strip,t,n,u)}):t([l],function(e){a.finishLoad(f.moduleName+"."+f.ext,f.strip,e,n,u)})},write:function(e,t,n,r){if(t in u){var i=a.jsEscape(u[t]);n.asModule(e+"!"+t,"define(function () { return '"+i+"';});\n")}},writeFile:function(e,t,n,r,i){var s=a.parseName(t),o=s.moduleName+"."+s.ext,u=n.toUrl(s.moduleName+"."+s.ext)+".js";a.load(o,n,function(t){var n=function(e){return r(u,e)};n.asModule=function(e,t){return r.asModule(e,u,t)},a.write(e,o,n,i)},i)}},a})}(),define("text!backlog/templates/board.html",[],function(){return'
                \r\n
                \r\n'}),define("text!backlog/templates/column.html",[],function(){return'

                <%- milestone.title %>

                \r\n
                  \r\n'}),define("text!backlog/templates/card.html",[],function(){return'\r\n
                  \r\n
                  \r\n <%- title %>\r\n
                  \r\n #<%= number %>\r\n
                  \r\n<% if(assignee) { %>\r\n \r\n<% } %>\r\n\r\n<% if(milestone) { %>\r\n
                  \r\n Milestone: <%- milestone.title %>\r\n
                  \r\n<% } %>\r\n<% if (pull_request.html_url) { %>Pull request <%}%>\r\n
                  \r\n<% _(other_labels).each(function(l) { %>\r\n
                  \r\n
                  \r\n
                  \r\n
                  \r\n <%- l.name %> \r\n
                  \r\n
                  \r\n\r\n<% }); %>\r\n\r\n
                  \r\n'}),define("common/events/postal",["socket"],function(e){function t(){return((1+Math.random())*65536|0).toString(16).substring(1)}function n(){return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()}var r={},i=n();return{correlationId:i,subscribe:function(e,t){postal.channel(e).subscribe(t)},channel:function(e){return postal.channel(e)},publish:function(e,t){postal.channel(e).publish(t)},socket:function(t,n,s){if(!e)return;var o=postal.channel(t);postal.channel(n).subscribe(s);if(r[t])return;r[t]=t,e.on(t,function(e){e.correlationId!==i&&postal.channel(e.event).publish(e.payload)})}}}),define("backlog/models/card",["../../common/events/postal"],function(e){var t=function(e){this.attributes=e.model,this.user=e.user,this.repo=e.repo};return _.extend(t.prototype,{save:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/assignmilestone",{milestone:t.milestone,issue:this.attributes,correlationId:e.correlationId},function(e){})},close:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/close",{index:t.index,issue:this.attributes,correlationId:e.correlationId},function(e){})},assign:function(t){this.attributes.assignee=t,$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/assigncard",{issue:this.attributes,correlationId:e.correlationId,assignee:t.login},function(e){})},reorder:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/reorderissue",{index:t.order,issue:this.attributes,correlationId:e.correlationId},function(e){})}}),t}),define("backlog/views/cardView",["text!../templates/card.html","../models/card","../../common/events/postal"],function(e,t,n){return Backbone.View.extend({initialize:function(e){this.issue=new t({model:e.issue,user:e.user,repo:e.repo}),_.bind(this,"moved",this.moved),_.bind(this,"reorder",this.drop),n.subscribe("Filter.Simple",$.proxy(this.simpleFilter,this)),n.subscribe("Filter.Complex",$.proxy(this.complexFilter,this)),n.socket(e.user+"/"+e.repo,"Closed."+e.issue.number,$.proxy(this.onClosed,this)),n.socket(e.user+"/"+e.repo,"Assigned."+e.issue.number,$.proxy(this.onAssigned,this)),n.socket(e.user+"/"+e.repo,"Updated."+e.issue.number,$.proxy(this.onUpdated,this)),this.filtersHash={simple:{},complex:{}}},events:{moved:"moved","click .close":"closed",drop:"dropped",reorder:"drop","click .number":"onNumber",click:"fullscreen"},tagName:"li",onMoved:function(e){n.publish("Moved.Socket."+e.index,{card:this})},onNumber:function(e){e.stopPropagation()},onUpdated:function(e){this.issue.attributes=_.extend(this.issue.attributes,e.issue),this.render(),this.transition()},onClosed:function(){this.remove(),n.publish("Closed.Issue",{card:this})},fullscreen:function(e){n.publish("Card.Fullscreen",this.issue)},render:function(){$(this.el).html(_.template(e,this.issue.attributes)).droppable({scope:"assignee",hoverClass:"assignee-accept"}).data("issue",this.issue.attributes);if(this.issue.attributes.repo.color){var t=$.Color("#"+this.issue.attributes.repo.color),n="3px solid "+$.Color(t.alpha(.5)).toRgbaString();$(this.el).css({"border-left":n})}return this},moved:function(e,t){this.issue.save({milestone:t.milestone})},dropped:function(e,t){var n=$(t.draggable).data("assignee");this.issue.assign(n),this.onAssigned({assignee:n})},onAssigned:function(e){this.issue.attributes.assignee=e.assignee,this.render()},closed:function(e,t){e.preventDefault(),this.issue.close({index:t}),this.remove(),n.publish("Closed.Issue",{card:this})},transition:function(){var e=[],t=this;setTimeout(function(){for(var n in t.filtersHash.simple)e.push(t.filtersHash.simple[n]);var r=_.filter(e,function(e){return e.state===1}),i=_.filter(e,function(e){return e.state===2});if(_.any(i,function(e){return!e.condition(t.issue.attributes)})){$(t.el).addClass("hide").removeClass("dim active");return}if(_.any(r,function(e){return!e.condition(t.issue.attributes)})){$(t.el).addClass("dim").removeClass("hide active");return}$(t.el).removeClass("dim hide active"),(r.length||i.length)&&$(t.el).addClass("active")},0)},simpleFilter:function(e){var t=this;this.filtersHash.simple[e.id]=e,this.transition()},drop:function(e,t){this.issue.reorder({order:t})}})}),define("backlog/models/milestone",[],function(){var e=function(e){this.attributes=e.model,this.user=e.user,this.repo=e.repo};return _.extend(e.prototype,{save:function(e){if(!e.order||e.order===0)console.error("something wrong happened index should not be 0"),console.log("falling back to original number",this.attributes.number),e.order=this.attributes.number;$.post("/api/"+this.user+"/"+this.repo+"/reordermilestone",{index:e.order,status:e.status,milestone:this.attributes},function(e){})}}),e}),define("backlog/views/columnView",["text!../templates/column.html","./cardView","../../common/events/postal","../models/milestone"],function(e,t,n,r){var i=Backbone.View.extend({initialize:function(e){this.column=e.column,this.repo=e.repo,this.user=e.user,this.milestone=new r({model:this.column.milestone,user:e.user,repo:e.repo}),_.bind("reordered",this.reordered)},tagName:"div",className:"column",events:{reorder:"reordered"},reordered:function(e,t){this.milestone.save(t)},onOpened:function(e){var r=new t({issue:e,user:this.user,repo:this.repo});$("ul",this.el).append(r.render().el),n.publish("Opened.Issue",e)},onSocket:function(e){var t=$("li",this.el),n=t.index(e.card.el);if(n!==-1)return;$("ul",this.el).append(e.card.el)},render:function(){var n=$(_.template(e,this.column)),r=this,i=_.map(this.column.issues,function(e){var n=new t({issue:e,user:r.user,repo:r.repo});return n.render().el});return $(this.el).append(n).data("milestone",this.column.milestone).find("ul").append(i),$("ul",this.el).sortable({helper:"clone",connectWith:".sortable",placeholder:"ui-sortable-placeholder",receive:$.proxy(this.onReceive,this),remove:$.proxy(this.onRemove,this),over:$.proxy(this.onOver,this),update:$.proxy(this.onStop,this),out:$.proxy(this.onOut,this)}),this},onReceive:function(e,t){$(t.item).trigger("moved",this.column)},onRemove:function(e,t){},onOver:function(e,t){$("ul",this.el).addClass("ui-sortable-hover")},onOut:function(e,t){$("ul",this.el).removeClass("ui-sortable-hover")},onStop:function(e,t){var n=$("li",this.el),r=n.index(t.item);if(r===-1)return;var i=r===0,s=r===n.size()-1,o=$(t.item),u=o.data("issue"),a=n.get(r?r-1:r),f=n.index(a),l=$(a).data("issue"),c=n.get(n.size()-1>r?r+1:r),h=n.index(c),p=$(c).data("issue"),d=u._data.order||u.number,v=l._data.order||l.number,m=p._data.order||p.number;if(i&&s)return;i?(u._data.order=(m||1)/2,o.trigger("reorder",u._data.order).data("issue",u)):s?(u._data.order=v+1,o.trigger("reorder",u._data.order).data("issue",u)):(u._data.order=(m+v||1)/2,o.trigger("reorder",u._data.order).data("issue",u))}});return i}),define("backlog/views/filterView",["../../common/events/postal"],function(e){return jQuery.Color.fn.contrastColor=function(){var e=this._rgba[0],t=this._rgba[1],n=this._rgba[2];return(e*299+t*587+n*144)/1e3>=131.5?"#333":"white"},Backbone.View.extend({tagName:"li",className:"filter",initialize:function(e){this.params=e,this.condition=e.condition,this.name=e.name,this.type=e.type||"Simple",this.state=0,this.states=[0,1,2,0]},events:{click:"clicked",clear:"clearAndPublish","click .ui-icon":"clearAndPublish"},render:function(){return $(this.el).html(""+this.name+"").addClass("-x"+this.params.color.substring(1)).data("filter",this),this},clicked:function(e){e.preventDefault();switch(this.state=this.states[this.state+1]){case 0:this.clear();break;case 1:this.fade();break;case 2:this.solid()}this.publish()},clear:function(){$(this.el).find("a").removeClass("dim").removeClass("active")},publish:function(){e.publish("Filter."+this.type,{id:this.cid,condition:this.condition,state:this.state})},clearAndPublish:function(e){return e.preventDefault(),this.state=0,this.publish(),this.clear(),!1},fade:function(){$(this.el).find("a").addClass("dim").removeClass("active")},solid:function(){$(this.el).find("a").addClass("active").removeClass("dim")}})}),define("backlog/views/sidebarView",["../../common/events/postal","./filterView"],function(e,t){return Backbone.View.extend({tagName:"ul",className:"filters",initialize:function(e){this.login=e.params.login,this.labels=e.data.other_labels},render:function(){var e=$(this.el),n=this.login,r=(new t({color:"#0069D6",name:"Assigned to me",condition:function(e){return e.assignee&&e.assignee.login===n}})).render(),i=(new t({color:"#0069D6",name:"Assigned to others",condition:function(e){return e.assignee&&e.assignee.login!==n}})).render(),s=(new t({color:"#0069D6",name:"Unassigned issues",condition:function(e){return!e.assignee}})).render(),o=$([r.el,i.el,s.el]);e.append(o),o.click(function(e){e.preventDefault();var t=$(this),n=t.data("filter"),r=_(o).filter(function(e){var t=$(e).data("filter");return n.cid!==t.cid&&t.state!==0});_(r).each(function(e){$(e).trigger("clear")})});var u=_.map(this.labels,function(e){return(new t({color:"#"+e.color,name:e.name,condition:function(t){return _.any(t.labels,function(t){return t.name.toLocaleLowerCase()===e.name.toLocaleLowerCase()})}})).render().el});return e.append("
                  Labels
                  "),e.append(u),this}})}),define("backlog/views/headerView",["../../common/events/postal"],function(e){return Backbone.View.extend({el:$(".header"),events:{"keyup input":"onkeyup"},initialize:function(t){var n=this;this.publish=_.debounce(function(){var t=$(n.el).find("input").val();e.publish("Filter.Simple",{id:"search",condition:function(e){return e.title.toLocaleLowerCase().indexOf(t.toLocaleLowerCase())!==-1},state:2})},300)},onkeyup:function(e){this.publish()}})}),define("text!common/templates/assignee.html",[],function(){return'
                • \r\n <%= login %>\r\n
                • \r\n'}),define("common/views/assigneeView",["../../common/events/postal","text!../templates/assignee.html"],function(e,t){return Backbone.View.extend({el:$(".sidebar"),initialize:function(e){var t=this;t.data=e.data,t.state=0,t.classes=[["",""],["dim","active"],["hide","active"]],t.render()},events:{"click li":"filter"},filter:function(t){var n=this,r=$(t.currentTarget),i=r.data("login"),s=n.state;s=(s+1)%3,e.publish("Filter.Simple",{condition:function(e){return e.assignee&&e.assignee.login===i},state:s}),s===1&&(n.$("li").removeClass("active inactive").addClass("dim"),r.removeClass("dim").addClass("active")),s===2&&(n.$("li").removeClass("active inactive").addClass("inactive"),r.removeClass("dim inactive").addClass("active")),s===0&&n.$("li").removeClass("dim active inactive"),n.state=s},render:function(){var e=$(this.el).find("ol"),n=_(this.data.assignees).chain().map(function(e){return $(_.template(t,e)).data("assignee",e)}).value();return e.append(n),e.find("li").draggable({helper:"clone",scope:"assignee",zIndex:100,appendTo:"body"}),this}})}),define("text!backlog/templates/css.html",[],function(){return'<% \r\n_(["filter","card-label"]).each(function(name){\r\n _(other_labels).each(function(l) {\r\n%>\r\n .<%= name %>.-x<%= l.color %>.active, .<%= name %>.-x<%= l.color %>.active:hover {\r\n background-color: #<%= l.color %>;\r\n background-color: <%= $.Color("#" + l.color).toString() %>;\r\n color: <%= $.Color("#" + l.color).contrastColor() %>;\r\n }\r\n\r\n .<%= name %>.-x<%= l.color %> .active, .<%= name %>.-x<%= l.color %> .active:hover {\r\n background-color: #<%= l.color %>;\r\n background-color: <%= $.Color("#" + l.color).toString() %>;\r\n color: <%= $.Color("#" + l.color).contrastColor() %>;\r\n }\r\n \r\n .<%= name %>.-x<%= l.color %>.dim, .<%= name %>.-x<%= l.color %>.dim:hover {\r\n background-color: <%= $.Color($.Color("#" + l.color).alpha(0.6)).toString() %>;\r\n color: <%= $.Color("#" + l.color).contrastColor() %>;\r\n }\r\n\r\n .<%= name %>.-x<%= l.color %> .dim , .<%= name %>.-x<%= l.color %> .dim:hover {\r\n background-color: <%= $.Color($.Color("#" + l.color).alpha(0.6)).toString() %>;\r\n color: <%= $.Color("#" + l.color).contrastColor() %>;\r\n }\r\n\r\n <%})});%>\r\n'}),define("backlog/views/cssView",["../collections/issues","text!../templates/css.html"],function(e,t){e.bind("ondatareceived",function(e){var n=_.template(t,e),r=document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css",i.styleSheet?i.styleSheet.cssText=n:i.appendChild(document.createTextNode(n)),r.appendChild(i)})}),define("backlog/views/board",["../collections/issues","text!../templates/board.html","./columnView","./sidebarView","./headerView","../../common/views/assigneeView","../../common/events/postal","./cssView"],function(e,t,n,r,i,s,o){var u=function(){var e=_($("ul")).chain().map(function(e){return $(e).height()}).reduce(function(e,t){return t>e?t:e}).value();return e},a=function(e){switch(e){case"open":$("#drawer").find(".toggle-drawer").removeClass("arrow-right").addClass("arrow-left").end().animate({left:"+=190px"},300),$("#content").animate({"margin-left":"+=100px"},300),console.log("test1");break;case"close":$("#drawer").animate({left:"-=190px"},300,function(){$(this).find(".toggle-drawer").removeClass("arrow-left").addClass("arrow-right").end()}),$("#content").animate({"margin-left":"-=100px"},300),console.log("test2")}};return Backbone.View.extend({el:$("#stage"),events:{"click .toggle-drawer":"toggleDrawer"},initialize:function(t){e.bind("ondatareceived",this.onfetch,this),e.fetch(t.user,t.repo),this.user=t.user,this.repo=t.repo,this.params=t,o.subscribe("Opened.Issue",$.proxy(this.onOpened,this)),o.subscribe("Closed.Issue",$.proxy(this.onClosed,this))},onOpened:function(){this.resizeColumns()},onClosed:function(){this.resizeColumns()},onfetch:function(e){var o=$(_.template(t,e)),u=o.clone(),a=e.unassigned,f=new r({data:e,params:this.params}),l=new i,c=new s({data:e,params:this.params}),h=this;$(u).append((new n({column:a,user:this.user,repo:this.repo})).render().el),_.each(e.milestones,function(e){var t=new n({column:e,user:h.user,repo:h.repo}),r=$(t.render().el).css({width:"260px"});$(o).append(r)}),$("#stage").append(o),$(o).sortable({axis:"x",handle:"h3",cursor:"move",stop:$.proxy(this.fullStop,this),start:$.proxy(this.onStart,this),remove:$.proxy(this.onRemove,this),over:$.proxy(this.onOver,this),update:$.proxy(this.onStop,this)}),$("#drawer","#main-stage").append(u).find(".toggle-drawer").show(),$(".sidebar-wrapper").append(f.render().el).show(),$('[rel~="twipsy"]').tooltip({live:!0}),this.resizeColumns()},resizeColumns:function(){var e=u();$("ul","#main-stage").css("min-height",e)},toggleDrawer:function(e){e.preventDefault();var t=$(".toggle-drawer").hasClass("arrow-left");t?a("close"):a("open")},onReceive:function(e,t){},onRemove:function(e,t){},onOver:function(e,t){},onOut:function(e,t){},fullStop:function(e,t){$(t.item).removeClass("ui-state-dragging")},onStart:function(e,t){$(t.item).addClass("ui-state-dragging")},onStop:function(e,t){var n=$(".backlog > div",this.el),r=n.index(t.item);if(r===-1)return;var i=r===0,s=r===n.size()-1,o=$(t.item),u=o.data("milestone"),a=n.get(r?r-1:r),f=n.index(a),l=$(a).data("milestone"),c=n.get(n.size()-1>r?r+1:r),h=n.index(c),p=$(c).data("milestone"),d=u._data.order||u.number,v=l._data.order||l.number,m=p._data.order||p.number;if(i&&s)u._data.order=d;else if(i){var g=m||1;u._data.order=g-1>0?g-1:g/2}else s?u._data.order=v+1:u._data.order=(m+v||1)/2;o.trigger("reorder",{order:u._data.order}).data("milestone",u)}})}),define("backlog/main",["./views/board"],function(e){var t={};return{init:function(n){t.board=new e(n)}}}),define("board/collections/issues",[],function(){var e={fetch:function(e,t){var n=this,r=$.ajax({url:"/api/"+e+"/"+t+"/board",dataType:"json",success:function(e){}}),i=$.ajax({url:"/api/"+e+"/"+t+"/column",dataType:"json"});$.when(r).then(function(r){if(!r.labels.length){window.location.href="/"+e+"/"+t+"/board/create";return}n.trigger("ondatareceived",r),_.each(r.labels,function(e){n.trigger("onissuesreceived."+e.index,e.issues)}),n.trigger("afterreceived"),$.when(i).then(function(e){n.trigger("onissuesreceived."+e.index,e.issues),n.trigger("afterreceived")})})}};return _.extend(e,Backbone.Events),e}),define("text!board/templates/board.html",[],function(){return'
                  \r\n
                  \r\n'}),define("text!board/templates/column.html",[],function(){return'
                  \r\n

                  <%- text %>

                  \r\n
                    \r\n
                    \r\n'}),define("text!board/templates/card.html",[],function(){return'
                    \r\n\r\n<% if(assignee) { %>\r\n \r\n<% } %>\r\n<%- title %>\r\n\r\n<% if(milestone) { %>\r\n
                    \r\n Milestone: <%- milestone.title %>\r\n
                    \r\n<% } %>\r\n
                    \r\n<% if(pull_request.html_url) { %>\r\n Pull\r\n<% } %>\r\n<% _(other_labels).each(function(l) { %>\r\n<%- l.name %>\r\n<% }); %>\r\n
                    \r\n\r\n
                    \r\n'}),define("board/models/card",["../../common/events/postal"],function(e){var t=function(e){this.attributes=e.model,this.user=e.user,this.repo=e.repo};return _.extend(t.prototype,{save:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/movecard",{index:t.index,issue:this.attributes,correlationId:e.correlationId},function(e){})},close:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/close",{index:t.index,issue:this.attributes,correlationId:e.correlationId},function(e){})},assign:function(t){this.attributes.assignee=t,$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/assigncard",{issue:this.attributes,correlationId:e.correlationId,assignee:t.login},function(e){})},reorder:function(t){$.post("/api/"+this.attributes.repo.owner.login+"/"+this.attributes.repo.name+"/reorderissue",{index:t.order,issue:this.attributes,correlationId:e.correlationId},function(e){})}}),t}),define("board/views/cardView",["text!../templates/card.html","../models/card","../../common/events/postal"],function(e,t,n){return Backbone.View.extend({initialize:function(e){this.issue=new t({model:e.issue,user:e.user,repo:e.repo}),_.bind(this,"moved",this.moved),_.bind(this,"reorder",this.drop),n.subscribe("Filter.Simple",$.proxy(this.simpleFilter,this)),n.subscribe("Filter.Complex",$.proxy(this.complexFilter,this)),n.socket(e.user+"/"+e.repo,"Moved."+e.issue.number,$.proxy(this.onMoved,this)),n.socket(e.user+"/"+e.repo,"Closed."+e.issue.number,$.proxy(this.onClosed,this)),n.socket(e.user+"/"+e.repo,"Assigned."+e.issue.number,$.proxy(this.onAssigned,this)),n.socket(e.user+"/"+e.repo,"Updated."+e.issue.number,$.proxy(this.onUpdated,this)),this.filtersHash={simple:{},complex:{}}},events:{moved:"moved","click .close":"closed",drop:"dropped",reorder:"drop","click .number":"onNumber",click:"fullscreen"},tagName:"li",onNumber:function(e){e.stopPropagation()},onMoved:function(e){n.publish("Moved.Socket."+e.index,{card:this})},onUpdated:function(e){this.issue.attributes=_.extend(this.issue.attributes,e.issue),this.render(),this.transition()},onClosed:function(){this.remove(),n.publish("Closed.Issue",{card:this})},fullscreen:function(e){n.publish("Card.Fullscreen",this.issue)},render:function(){$(this.el).html(_.template(e,this.issue.attributes)).droppable({scope:"assignee",hoverClass:"assignee-accept"}).data("issue",this.issue.attributes);if(this.issue.attributes.repo.color){var t=$.Color("#"+this.issue.attributes.repo.color),n="3px solid "+$.Color(t.alpha(.5)).toRgbaString();$(this.el).css({"border-left":n})}return this},moved:function(e,t){this.issue.save({index:t})},dropped:function(e,t){var n=$(t.draggable).data("assignee");this.issue.assign(n),this.onAssigned({assignee:n})},onAssigned:function(e){this.issue.attributes.assignee=e.assignee,this.render()},closed:function(e,t){e.preventDefault(),e.stopPropagation(),this.issue.close({index:t}),this.remove(),n.publish("Closed.Issue",{card:this})},transition:function(){var e=[],t=this;setTimeout(function(){for(var n in t.filtersHash.simple)e.push(t.filtersHash.simple[n]);var r=_.filter(e,function(e){return e.state===1}),i=_.filter(e,function(e){return e.state===2});if(_.any(i,function(e){return!e.condition(t.issue.attributes)})){$(t.el).addClass("hide").removeClass("dim active");return}if(_.any(r,function(e){return!e.condition(t.issue.attributes)})){$(t.el).addClass("dim").removeClass("hide active");return}$(t.el).removeClass("dim hide active"),(r.length||i.length)&&$(t.el).addClass("active")},0)},simpleFilter:function(e){var t=this;this.filtersHash.simple[e.id]=e,this.transition()},drop:function(e,t){this.issue.reorder({order:t})}})}),define("board/views/columnView",["../collections/issues","text!../templates/column.html","./cardView","../../common/events/postal"],function(e,t,n,r){var i=Backbone.View.extend({initialize:function(t){this.column=t.column,this.repo=t.repo,this.user=t.user,this.latched=!1,r.subscribe("Moved.Socket."+t.column.index,$.proxy(this.onSocket,this)),r.socket(t.user+"/"+t.repo,"Opened."+t.column.index,$.proxy(this.onOpened,this)),e.bind("onissuesreceived."+t.column.index,this.onfetch,this)},onfetch:function(e){var t=_.map(e,function(e){var t=new n({issue:e,user:self.user,repo:self.repo});return t.render().el});$("ul",this.el).append(t)},onOpened:function(e){var t=new n({issue:e,user:this.user,repo:this.repo});$("ul",this.el).append(t.render().el),r.publish("Opened.Issue",e)},onSocket:function(e){var t=$("li",this.el),n=t.index(e.card.el);if(n!==-1)return;$("ul",this.el).append(e.card.el)},render:function(){var e=$(_.template(t,this.column)),n=this;return this.el=e,$("ul",this.el).sortable({helper:"clone",connectWith:".sortable",placeholder:"ui-sortable-placeholder",receive:$.proxy(this.onReceive,this),remove:$.proxy(this.onRemove,this),over:$.proxy(this.onOver,this),update:$.proxy(this.onStop,this),out:$.proxy(this.onOut,this)}),this},onReceive:function(e,t){$(t.item).trigger("moved",this.column.index)},onRemove:function(e,t){},onOver:function(e,t){$("ul",this.el).addClass("ui-sortable-hover")},onOut:function(e,t){$("ul",this.el).removeClass("ui-sortable-hover")},onStop:function(e,t){var n=$("li",this.el),r=n.index(t.item);if(r===-1)return;var i=r===0,s=r===n.size()-1,o=$(t.item),u=o.data("issue"),a=n.get(r?r-1:r),f=n.index(a),l=$(a).data("issue"),c=n.get(n.size()-1>r?r+1:r),h=n.index(c),p=$(c).data("issue"),d=u._data.order||u.number,v=l._data.order||l.number,m=p._data.order||p.number;if(i&&s)return;i?(u._data.order=(m||1)/2,o.trigger("reorder",u._data.order).data("issue",u)):s?(u._data.order=v+1,o.trigger("reorder",u._data.order).data("issue",u)):(u._data.order=(m+v||1)/2,o.trigger("reorder",u._data.order).data("issue",u))}});return i}),define("board/views/filterView",["../../common/events/postal"],function(e){return jQuery.Color.fn.contrastColor=function(){var e=this._rgba[0],t=this._rgba[1],n=this._rgba[2];return(e*299+t*587+n*144)/1e3>=131.5?"#333":"white"},Backbone.View.extend({tagName:"li",className:"filter",initialize:function(e){this.params=e,this.condition=e.condition,this.name=e.name,this.type=e.type||"Simple",this.state=0,this.states=[0,1,2,0]},events:{click:"clicked",clear:"clearAndPublish","click .ui-icon":"clearAndPublish"},render:function(){return $(this.el).html(""+this.name+"").addClass("-x"+this.params.color.substring(1)).data("filter",this),this},clicked:function(e){e.preventDefault();switch(this.state=this.states[this.state+1]){case 0:this.clear();break;case 1:this.fade();break;case 2:this.solid()}this.publish()},clear:function(){$(this.el).find("a").removeClass("dim").removeClass("active")},publish:function(){e.publish("Filter."+this.type,{id:this.cid,condition:this.condition,state:this.state})},clearAndPublish:function(e){return e.preventDefault(),this.state=0,this.publish(),this.clear(),!1},fade:function(){$(this.el).find("a").addClass("dim").removeClass("active")},solid:function(){$(this.el).find("a").addClass("active").removeClass("dim")}})}),define("board/views/sidebarView",["../../common/events/postal","./filterView"],function(e,t){return Backbone.View.extend({tagName:"ul",className:"filters",initialize:function(e){this.milestones=e.data.milestones,this.login=e.params.login,this.labels=e.data.other_labels},render:function(){var e=$(this.el),n=this.login,r=(new t({color:"#0069D6",name:"Assigned to me",condition:function(e){return e.assignee&&e.assignee.login===n}})).render(),i=(new t({color:"#0069D6",name:"Assigned to others",condition:function(e){return e.assignee&&e.assignee.login!==n}})).render(),s=(new t({color:"#0069D6",name:"Unassigned issues",condition:function(e){return!e.assignee}})).render(),o=$([r.el,i.el,s.el]);e.append(o),o.click(function(e){e.preventDefault();var t=$(this),n=t.data("filter"),r=_(o).filter(function(e){var t=$(e).data("filter");return n.cid!==t.cid&&t.state!==0});_(r).each(function(e){$(e).trigger("clear")})});var u=_.groupBy(this.milestones,function(e){return e._data.status||"backlog"}),a=(u.wip||[]).concat(u.backlog||[]),f=_.map(a,function(e){return(new t({color:"#0069D6",name:e.title,count:e.open_issues,condition:function(t){return t.milestone&&t.milestone.title.toLocaleLowerCase()===e.title.toLocaleLowerCase()}})).render().el}),l=(new t({color:"#0069D6",name:"No milestone",condition:function(e){return!e.milestone}})).render().el;e.append("
                    Milestones
                    "),e.append(l),e.append(f),$(f.concat(l)).click(function(e){e.preventDefault();var t=$(this),n=t.data("filter"),r=_(f.concat(l)).filter(function(e){var t=$(e).data("filter");return n.cid!==t.cid&&t.state!==0});_(r).each(function(e){$(e).trigger("clear")})});var c=_.map(this.labels,function(e){return(new t({color:"#"+e.color,name:e.name,condition:function(t){return _.any(t.labels,function(t){return t.name.toLocaleLowerCase()===e.name.toLocaleLowerCase()})}})).render().el});return e.append("
                    Labels
                    "),e.append(c),this}})}),define("board/views/headerView",["../../common/events/postal"],function(e){return Backbone.View.extend({el:$(".header"),events:{"keyup input":"onkeyup"},initialize:function(t){var n=this;this.publish=_.debounce(function(){var t=$(n.el).find("input").val();e.publish("Filter.Simple",{id:"search",condition:function(e){return e.title.toLocaleLowerCase().indexOf(t.toLocaleLowerCase())!==-1},state:2})},300)},onkeyup:function(e){this.publish()}})}),define("text!board/templates/css.html",[],function(){return'<% \r\n_(["filter","card-label"]).each(function(name){\r\n _(other_labels).each(function(l) {\r\n%>\r\n .<%= name %>.-x<%= l.color %>.active, .<%= name %>.-x<%= l.color %>.active:hover {\r\n background-color: #<%= l.color %>;\r\n background-color: <%= $.Color("#" + l.color).toString() %>;\r\n color: <%= $.Color("#" + l.color).contrastColor() %>;\r\n }\r\n\r\n .<%= name %>.-x<%= l.color %> .active, .<%= name %>.-x<%= l.color %> .active:hover {\r\n background-color: #<%= l.color %>;\r\n background-color: <%= $.Color("#" + l.color).toString() %>;\r\n color: <%= $.Color("#" + l.color).contrastColor() %>;\r\n }\r\n \r\n .<%= name %>.-x<%= l.color %>.dim, .<%= name %>.-x<%= l.color %>.dim:hover {\r\n background-color: <%= $.Color($.Color("#" + l.color).alpha(0.6)).toString() %>;\r\n color: <%= $.Color("#" + l.color).contrastColor() %>;\r\n }\r\n\r\n .<%= name %>.-x<%= l.color %> .dim , .<%= name %>.-x<%= l.color %> .dim:hover {\r\n background-color: <%= $.Color($.Color("#" + l.color).alpha(0.6)).toString() %>;\r\n color: <%= $.Color("#" + l.color).contrastColor() %>;\r\n }\r\n\r\n <%})});%>\r\n'}),define("board/views/cssView",["../collections/issues","text!../templates/css.html"],function(e,t){e.bind("ondatareceived",function(e){var n=_.template(t,e),r=document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css",i.styleSheet?i.styleSheet.cssText=n:i.appendChild(document.createTextNode(n)),r.appendChild(i)})}),define("board/views/board",["../collections/issues","text!../templates/board.html","./columnView","./sidebarView","./headerView","../../common/views/assigneeView","../../common/events/postal","./cssView"],function(e,t,n,r,i,s,o){var u=function(){var e=_($("ul")).chain().map(function(e){return $(e).height()}).reduce(function(e,t){return t>e?t:e}).value();return e},a=function(e){switch(e){case"open":$("#drawer").find(".toggle-drawer").removeClass("arrow-right").addClass("arrow-left").end().animate({left:"+=270px"},300),$("#content").animate({"margin-left":"+=100px"},300);break;case"close":$("#drawer").animate({left:"-=270px"},300,function(){$(this).find(".toggle-drawer").removeClass("arrow-left").addClass("arrow-right").end()}),$("#content").animate({"margin-left":"-=100px"},300)}};return Backbone.View.extend({el:$("#stage"),events:{"click .toggle-drawer":"toggleDrawer"},initialize:function(t){e.bind("ondatareceived",this.onfetch,this),e.bind("afterreceived",this.resizeColumns,this),e.fetch(t.user,t.repo),this.user=t.user,this.repo=t.repo,this.params=t,o.subscribe("Opened.Issue",$.proxy(this.onOpened,this)),o.subscribe("Closed.Issue",$.proxy(this.onClosed,this))},onOpened:function(){this.resizeColumns()},onClosed:function(){this.resizeColumns()},onfetch:function(e){var o=$(_.template(t,e)),u=o.clone(),a=_.first(e.labels),f=_.rest(e.labels),l=new r({data:e,params:this.params}),c=new i,h=new s({data:e,params:this.params}),p=this;$(u).append((new n({column:a,user:this.user,repo:this.repo})).render().el);var d=100/f.length;_.each(f,function(e){var t=new n({column:e,user:p.user,repo:p.repo}),r=$(t.render().el).css({width:d+"%"});$(o).append(r)}),$("#stage").append(o),$("#drawer","#main-stage").append(u).find(".toggle-drawer").show(),$(".sidebar-wrapper").append(l.render().el).show(),$('[rel~="twipsy"]').tooltip({live:!0}),this.resizeColumns()},resizeColumns:function(){var e=u();$("ul","#main-stage").css("min-height",e)},toggleDrawer:function(e){e.preventDefault();var t=$(".toggle-drawer").hasClass("arrow-left");t?a("close"):a("open")}})}),define("board/main",["./views/board"],function(e){var t={};return{init:function(n){t.board=new e(n)}}}),define("text!card/templates/card.html",[],function(){return'
                    \r\n

                    ISSUE #<%= number %>

                    \r\n
                    \r\n
                    \r\n
                    \r\n
                    \r\n
                    \r\n

                    <%- title %>

                    \r\n
                    \r\n
                    \r\n
                    \r\n \r\n \r\n \r\n
                    \r\n <%= body_html %>\r\n
                    \r\n
                    \r\n
                    \r\n'}),define("text!card/templates/feed.html",[],function(){return'\r\n
                    \r\n
                    \r\n

                    Activity

                    \r\n
                    \r\n <% _(issue.comments).each(function(c) { %>\r\n
                    \r\n \r\n \r\n \r\n
                    \r\n <%= c.body_html %>\r\n
                    \r\n
                    \r\n <% }); %>\r\n
                    \r\n'}),define("text!card/templates/actions/labels.html",[],function(){return'\r\n\r\n
                      \r\n
                      Labels
                      \r\n <% _(available_labels).each(function(l) { %>\r\n
                    • \r\n <% if(_.find(current_labels, function(x){ return x.name === l.name})) { %>\r\n <%- l.name %> \r\n \' checked=\'checked\' />\r\n <% } else { %>\r\n <%- l.name %> \r\n \' />\r\n <% } %>\r\n
                    • \r\n <% }); %>\r\n
                    \r\n'}),define("card/views/actions/labels",["text!../../templates/actions/labels.html"],function(e){var t=Backbone.View.extend({initialize:function(e,t){this.data=e,this.issue=t},events:{"click li":"update"},render:function(){var t=this.issue,n="/api/"+t.attributes.repo.owner.login+"/"+t.attributes.repo.name+"/issues/"+t.attributes.number+"/update_labels";return $(this.el).append("").find("form").html(_.template(e,this.data)),this},update:function(e,t){var n=$(e.currentTarget),r=n.find("span").toggleClass("active"),i=n.find("input");i.prop("checked",!i.prop("checked"));var s=$(this.el).find("form"),o=s.serialize();$.ajax({url:s.attr("action"),data:o,dataType:"json",type:"POST"}).done(function(e){console.log(e)})}});return{create:function(e,n){return new t(e,n)}}}),define("card/views/card",["../../common/events/postal","text!../templates/card.html","text!../templates/feed.html","./actions/labels"],function(e,t,n,r){var i={labels:r};return Backbone.View.extend({tagName:"div",className:"fullscreen-card",initialize:function(t){e.subscribe("Card.Fullscreen",$.proxy(this.open,this))},render:function(e){return $(this.el).html(_.template(t,e)),this},open:function(e){var t=this;this.issue=e,this.render(e.attributes),$.getJSON("/api/"+e.attributes.repo.owner.login+"/"+e.attributes.repo.name+"/issues/"+e.attributes.number+"/feed").done(function(e){$(t.el).find(".fullscreen-card-left").append(_.template(n,e));var r=null;for(r in e.actions)$(t.el).find("."+r+"-placeholder").append(i[r].create(e.actions[r],t.issue).render().el)})}})}),define("card/main",["../common/events/postal","./views/card"],function(e,t){var n={open:function(){$("body").addClass("fullscreen-open")},close:function(){$("body").removeClass("fullscreen-open")},init:function(){$(".fullscreen-wrapper > div").click(function(e){e.stopPropagation()}),$(".fullscreen-overlay").click(n.close),e.subscribe("Card.Fullscreen",$.proxy(this.open,this))}};return{init:function(e){n.card=new t(e),$(this).append(n.card.el),n.init()}}}); \ No newline at end of file diff --git a/views/board.erb b/views/board.erb index e49adff9..5ecd95fc 100644 --- a/views/board.erb +++ b/views/board.erb @@ -24,20 +24,10 @@ <% end %> -<% content_for :header do %> +<% content_for :sidebar do %>
                    -

                    - <%= h @parameters[:user] %> - / - <%= h @parameters[:repo] %> - -

                    - -<% end %> -<% content_for :sidebar do %> - <% end %> diff --git a/views/layout_fluid.erb b/views/layout_fluid.erb index f7c6765b..bc41e10d 100644 --- a/views/layout_fluid.erb +++ b/views/layout_fluid.erb @@ -45,18 +45,21 @@
                    -