--- app/assets/stylesheets/less/_page.less
+++ app/assets/stylesheets/less/_page.less
... | ... | @@ -7015,7 +7015,7 @@ |
7015 | 7015 |
.right-menu{ |
7016 | 7016 |
margin-top: 10px; |
7017 | 7017 |
margin-left: 10px; |
7018 |
- width: 400px; |
|
7018 |
+ width: 350px; |
|
7019 | 7019 |
} |
7020 | 7020 |
|
7021 | 7021 |
.auth-provider-logo { |
--- app/assets/stylesheets/less/_usermenu.less
+++ app/assets/stylesheets/less/_usermenu.less
... | ... | @@ -55,6 +55,49 @@ |
55 | 55 |
} |
56 | 56 |
} |
57 | 57 |
|
58 |
+.sidenav { |
|
59 |
+ color: black; |
|
60 |
+} |
|
61 |
+ |
|
62 |
+.sidebar { |
|
63 |
+ color: white; |
|
64 |
+ |
|
65 |
+ .user-ul { |
|
66 |
+ -ms-overflow-style: -ms-autohiding-scrollbar; |
|
67 |
+ overflow-y: scroll; |
|
68 |
+ height: 100vh; |
|
69 |
+ |
|
70 |
+ &::-webkit-scrollbar { |
|
71 |
+ height: 10px; |
|
72 |
+ width: 5px; |
|
73 |
+ background: lightgray; |
|
74 |
+ } |
|
75 |
+ |
|
76 |
+ &::-webkit-scrollbar-thumb { |
|
77 |
+ background: #2788ba; |
|
78 |
+ } |
|
79 |
+ } |
|
80 |
+ |
|
81 |
+ .user-project-list { |
|
82 |
+ .project-list { |
|
83 |
+ &:hover { |
|
84 |
+ background-color: rgba(255, 255, 255, 0.15); |
|
85 |
+ } |
|
86 |
+ } |
|
87 |
+ |
|
88 |
+ .org-list { |
|
89 |
+ &:hover { |
|
90 |
+ background-color: rgba(255, 255, 255, 0.15); |
|
91 |
+ } |
|
92 |
+ } |
|
93 |
+ } |
|
94 |
+ |
|
95 |
+ .search-input { |
|
96 |
+ background-color: black; |
|
97 |
+ color: white; |
|
98 |
+ } |
|
99 |
+} |
|
100 |
+ |
|
58 | 101 |
.user-project-list { |
59 | 102 |
ul.nav-subtab > li { |
60 | 103 |
border: none; |
... | ... | @@ -83,22 +126,16 @@ |
83 | 126 |
list-style-type: none; |
84 | 127 |
overflow-x: visible; |
85 | 128 |
overflow-y: auto; |
86 |
- height: 100vh; |
|
87 |
- |
|
88 |
- -ms-overflow-style: -ms-autohiding-scrollbar; |
|
129 |
+ max-height: 80vh; |
|
89 | 130 |
|
90 | 131 |
&::-webkit-scrollbar { |
91 | 132 |
height: 10px; |
92 |
- width: 7px; |
|
133 |
+ width: 5px; |
|
93 | 134 |
background: lightgray; |
94 | 135 |
} |
95 | 136 |
|
96 | 137 |
&::-webkit-scrollbar-thumb { |
97 | 138 |
background: #2788ba; |
98 |
- } |
|
99 |
- |
|
100 |
- .favored { |
|
101 |
- border-bottom: 1px dashed gray; |
|
102 | 139 |
} |
103 | 140 |
} |
104 | 141 |
|
... | ... | @@ -189,14 +226,12 @@ |
189 | 226 |
|
190 | 227 |
.search-input { |
191 | 228 |
font-size:13px; |
192 |
- padding: 8px 10px; |
|
193 | 229 |
display:block; |
194 | 230 |
border:none; |
195 | 231 |
width: 99%; |
196 | 232 |
margin-bottom: 0; |
197 |
- background-color: black; |
|
198 |
- color: white; |
|
199 | 233 |
border-radius: unset; |
234 |
+ height: 30px; |
|
200 | 235 |
} |
201 | 236 |
|
202 | 237 |
.search-input:focus { |
... | ... | @@ -225,7 +260,7 @@ |
225 | 260 |
width:0; |
226 | 261 |
bottom:1px; |
227 | 262 |
position:absolute; |
228 |
- background: white; |
|
263 |
+ background: #e91e63; |
|
229 | 264 |
transition:0.2s ease all; |
230 | 265 |
} |
231 | 266 |
.bar:before { |
... | ... | @@ -337,13 +372,17 @@ |
337 | 372 |
} |
338 | 373 |
|
339 | 374 |
.starred { |
340 |
- color: rgba(255, 255, 255, 0.85); |
|
375 |
+ color: #e91e63; |
|
376 |
+ |
|
377 |
+ &:hover { |
|
378 |
+ color: #8a123b; |
|
379 |
+ } |
|
341 | 380 |
} |
342 | 381 |
|
343 | 382 |
.star-project, .star-org { |
344 | 383 |
width: 29px; |
345 |
- min-height: 24px; |
|
346 | 384 |
flex-shrink: 0; |
385 |
+ color: #eee; |
|
347 | 386 |
|
348 | 387 |
&:hover { |
349 | 388 |
color: #e91e63; |
... | ... | @@ -479,7 +518,6 @@ |
479 | 518 |
font-size: 14px; |
480 | 519 |
font-weight: 400; |
481 | 520 |
overflow: hidden; |
482 |
- color: rgba( 255, 255, 255, 0.85 ); |
|
483 | 521 |
|
484 | 522 |
.slash { |
485 | 523 |
padding: 5px; |
... | ... | @@ -617,11 +655,11 @@ |
617 | 655 |
} |
618 | 656 |
|
619 | 657 |
.project-list { |
620 |
- padding: 1px 0; |
|
658 |
+ padding: 5px 0; |
|
621 | 659 |
|
622 | 660 |
&:hover { |
623 | 661 |
cursor: pointer; |
624 |
- background-color: rgba(255, 255, 255, 0.15); |
|
662 |
+ background-color: #f1f1f1; |
|
625 | 663 |
} |
626 | 664 |
} |
627 | 665 |
|
... | ... | @@ -630,7 +668,7 @@ |
630 | 668 |
|
631 | 669 |
&:hover { |
632 | 670 |
cursor: pointer; |
633 |
- background-color: rgba(255, 255, 255, 0.15); |
|
671 |
+ background-color: #f1f1f1; |
|
634 | 672 |
} |
635 | 673 |
} |
636 | 674 |
|
... | ... | @@ -791,7 +829,6 @@ |
791 | 829 |
background-color: white; |
792 | 830 |
overflow-x: hidden; /* Disable horizontal scroll */ |
793 | 831 |
overflow-y: auto; |
794 |
- padding-top: 10px; |
|
795 | 832 |
|
796 | 833 |
&::-webkit-scrollbar { |
797 | 834 |
height: 10px; |
--- app/views/common/usermenu.scala.html
+++ app/views/common/usermenu.scala.html
... | ... | @@ -37,6 +37,44 @@ |
37 | 37 |
} |
38 | 38 |
} |
39 | 39 |
|
40 |
+<div id="mySidenav" class="sidenav"> |
|
41 |
+ <div class="span5 right-menu span-hard-wrap"> |
|
42 |
+ <div class="row-fluid user-menu-wrap"> |
|
43 |
+ <span class="user-menu"><a href="@routes.UserApp.userInfo(currentUser.loginId)">@Messages("userinfo.profile")</a></span> |
|
44 |
+ <span class="user-menu"><a href="@routes.UserApp.editUserInfoForm()">@Messages("userinfo.accountSetting")</a></span> |
|
45 |
+ @currentAuth() { auth => |
|
46 |
+ @if(auth != null) { |
|
47 |
+ <a href="@routes.Application.oAuthLogout"><span class="user-menu logout label">@Messages("title.logout")</span></a> |
|
48 |
+ } else { |
|
49 |
+ <a href="@routes.UserApp.logout()"><span class="user-menu logout label">@Messages("title.logout")</span></a> |
|
50 |
+ } |
|
51 |
+ } |
|
52 |
+ </div> |
|
53 |
+ <ul class="nav nav-tabs nm"> |
|
54 |
+ <li class="myOrganizationList active"> |
|
55 |
+ <a href="#myOrganizationList" data-toggle="tab"> |
|
56 |
+ @Messages("title.favorite") |
|
57 |
+ </a> |
|
58 |
+ </li> |
|
59 |
+ <li class="myProjectList"> |
|
60 |
+ <a href="#myProjectList" data-toggle="tab"> |
|
61 |
+ @Messages("title.project") |
|
62 |
+ </a> |
|
63 |
+ </li> |
|
64 |
+ <li class="allProjectList"> |
|
65 |
+ <a href="#allProjectList" data-toggle="tab"> |
|
66 |
+ @Messages("common.order.all") |
|
67 |
+ </a> |
|
68 |
+ </li> |
|
69 |
+ </ul> |
|
70 |
+ <div class="tab-content tab-box"> |
|
71 |
+ <div id="usermenu-tab-content-list" class="tab-content"> |
|
72 |
+ Loading... |
|
73 |
+ </div> |
|
74 |
+ </div> |
|
75 |
+ </div> |
|
76 |
+</div> |
|
77 |
+ |
|
40 | 78 |
<ul class="gnb-usermenu"> |
41 | 79 |
@if( !currentUser.isAnonymous()) { |
42 | 80 |
@if(!StringUtils.isBlank(Application.NAVBAR_CUSTOM_LINK_NAME)) { |
... | ... | @@ -56,6 +94,14 @@ |
56 | 94 |
</li> |
57 | 95 |
<li class="divider"></li> |
58 | 96 |
} |
97 |
+ <li class="gnb-usermenu-dropdown sidebar-open-btn" id="sidebar-open-btn"> |
|
98 |
+ <a href="javascript:void(0);" class="gnb-dropdown-toggle" data-toggle="tooltip" data-placement="bottom" title="@Messages("user.menu"), @Messages("title.shortcut") (F)"> |
|
99 |
+ <span class="avatar-wrap smaller"> |
|
100 |
+ <img src="@currentUser.avatarUrl(32)" /> |
|
101 |
+ </span> |
|
102 |
+ <span class="caret"></span> |
|
103 |
+ </a> |
|
104 |
+ </li> |
|
59 | 105 |
<li class="gnb-usermenu-dropdown"> |
60 | 106 |
<a href="javascript:void(0);" class="gnb-dropdown-toggle dropdwon-box-btn" data-toggle="dropdown"> |
61 | 107 |
<i class="yobicon-plus"></i> |
--- app/views/error/notfound_default.scala.html
+++ app/views/error/notfound_default.scala.html
... | ... | @@ -35,6 +35,7 @@ |
35 | 35 |
<a href="https://github.com/nforge/yobi/issues?state=open" target="_blank">@Messages("title.yobi.feedback")</a> |
36 | 36 |
</li> |
37 | 37 |
</ul> |
38 |
+ @common.usermenu() |
|
38 | 39 |
</div> |
39 | 40 |
</header> |
40 | 41 |
<div class="page-wrap-outer"> |
--- app/views/index/notifications.scala.html
+++ app/views/index/notifications.scala.html
... | ... | @@ -116,22 +116,6 @@ |
116 | 116 |
} |
117 | 117 |
}); |
118 | 118 |
|
119 |
- // Show side bar menu default and focus to search box |
|
120 |
- // Also, see layout.scala.html for normal user menu click !! |
|
121 |
- var requiredLoggedIn = $("#required-logged-in").length === 1; |
|
122 |
- if(!requiredLoggedIn){ |
|
123 |
- var viewSize = $(window).width(); |
|
124 |
- if( viewSize > 720) { |
|
125 |
- $("#mySidenav").width("420px").css("border", "1px solid #ccc"); |
|
126 |
- setTimeout(function () { |
|
127 |
- $("#main").off("click"); |
|
128 |
- }, 1000); |
|
129 |
- $(".search-input").focus(); |
|
130 |
- } else { |
|
131 |
- $("#mySidenav").width("100vw").css("border", "1px solid #ccc"); |
|
132 |
- } |
|
133 |
- } |
|
134 |
- |
|
135 | 119 |
if ($(".admin-logged-in-affix").length === 1) { |
136 | 120 |
$(".sidenav").css("top", "84px"); |
137 | 121 |
} |
--- app/views/layout.scala.html
+++ app/views/layout.scala.html
... | ... | @@ -104,9 +104,7 @@ |
104 | 104 |
if (btn.length < 1) { |
105 | 105 |
$("div.pin > i.yobicon-arrow-left").removeClass("yobicon-arrow-left").addClass("yobicon-arrow-right"); |
106 | 106 |
} |
107 |
- if(window.parent.$(".sidebar").text().trim().length < 1) { |
|
108 |
- window.parent.location.reload(); |
|
109 |
- } |
|
107 |
+ window.parent.location = window.location.href; |
|
110 | 108 |
} |
111 | 109 |
}); |
112 | 110 |
|
--- app/views/layout_framed.scala.html
+++ app/views/layout_framed.scala.html
... | ... | @@ -52,7 +52,7 @@ |
52 | 52 |
</head> |
53 | 53 |
|
54 | 54 |
<body class="@theme" id="html-body"> |
55 |
- <div id="sidebar" class="sidebar"> |
|
55 |
+ <div id="sidebar" class="sidebar hide-in-mobile"> |
|
56 | 56 |
@if(!currentUser.isAnonymous){ |
57 | 57 |
@sidebar() |
58 | 58 |
} |
--- public/javascripts/common/yona.Usermenu.js
+++ public/javascripts/common/yona.Usermenu.js
... | ... | @@ -1,51 +1,54 @@ |
1 |
-$(function() { |
|
1 |
+$(function () { |
|
2 |
+ /* Set side navigation */ |
|
3 |
+ // Also, see index.scala.html for home page menu sliding actions !! |
|
4 |
+ var $sidebar = $("#mySidenav"); |
|
5 |
+ var viewSize = window.parent === window ? $(window).width() : $(window.parent).width(); |
|
6 |
+ var PIXEL_CRITERIA_FOR_SMALL_DEVICE = 720; // Criteria to distinguish small devices |
|
7 |
+ var SIDE_BAR_DEFAULT_WIDTH = "360px"; |
|
8 |
+ |
|
9 |
+ if ($(".gnb-usermenu-dropdown").length !== 0) { |
|
10 |
+ $.get(UsermenuUrl) |
|
11 |
+ .done(function (data) { |
|
12 |
+ $("#usermenu-tab-content-list").html(data); |
|
13 |
+ iniNaviUserMenu(); |
|
14 |
+ afterUsermenuLoaded(); |
|
15 |
+ }) |
|
16 |
+ .fail(function (data) { |
|
17 |
+ console.log("Usermenu loading failed: " + data); |
|
18 |
+ }); |
|
19 |
+ } |
|
20 |
+ |
|
2 | 21 |
afterUsermenuLoaded(); |
3 | 22 |
|
4 |
- function afterUsermenuLoaded(){ |
|
5 |
- /* Set side navigation */ |
|
6 |
- // Also, see index.scala.html for home page menu sliding actions !! |
|
7 |
- var $sidebar = $("#mySidenav"); |
|
8 |
- var viewSize = $(window).width(); |
|
9 |
- var PIXEL_CRITERIA_FOR_SMALL_DEVICE = 720; // Criteria to distinguish small devices |
|
10 |
- var SIDE_BAR_DEFAULT_WIDTH = "420px"; |
|
23 |
+ function iniNaviUserMenu() { |
|
24 |
+ $(document).on("keypress.openFavorite", function openFavoriteMenuWithShortcutKey(event) { |
|
25 |
+ if (isShortcutKeyPressed(event)) { |
|
26 |
+ event.preventDefault(); |
|
27 |
+ openSidebar($sidebar); |
|
28 |
+ updateStar(); |
|
29 |
+ } |
|
30 |
+ }); |
|
11 | 31 |
|
12 |
- $(document).on("keypress", function openFavoriteMenuWithShortcutKey(event) { |
|
13 |
- if (isShortcutKeyPressed(event)) { |
|
14 |
- event.preventDefault(); |
|
15 |
- openSidebar($sidebar); |
|
16 |
- updateStar(); |
|
17 |
- } |
|
18 |
- }); |
|
19 |
- |
|
20 |
- function isShortcutKeyPressed(event) { |
|
21 |
- return (!event.metaKey && (event.which === 102 || event.which === 12601)) // keycode => 102: f, 12623: ㄹ |
|
22 |
- && $(':focus').length === 0; // avoid already somewhere focused state |
|
23 |
- } |
|
24 |
- |
|
25 |
- $("#main").on("click", function(event){ |
|
26 |
- if( $sidebar.width() !== 0 && $(event.target).parents("#mySidenav").length == 0) { |
|
32 |
+ $("#main").on("click.main", function (event) { |
|
33 |
+ if ($sidebar.width() !== 0 && $(event.target).parents("#mySidenav").length == 0) { |
|
27 | 34 |
closeSidebar($sidebar); |
28 | 35 |
} |
29 | 36 |
}); |
30 | 37 |
|
31 |
- function closeSidebar($sidebar) { |
|
32 |
- $sidebar.width("0").css("border", "none"); |
|
33 |
- $(".main-stream").removeClass("span8").addClass("span12"); |
|
34 |
- } |
|
35 |
- |
|
36 |
- function openSidebar($sidebar) { |
|
37 |
- // 720px is a criteria to distinguish small devices |
|
38 |
- if (viewSize > PIXEL_CRITERIA_FOR_SMALL_DEVICE) { |
|
39 |
- $sidebar.width(SIDE_BAR_DEFAULT_WIDTH).css("border", "1px solid #ccc"); |
|
40 |
- $(".search-input").focus(); |
|
38 |
+ $("#sidebar-open-btn").on("click.usermenu", function (event) { |
|
39 |
+ event.stopPropagation(); |
|
40 |
+ if ($sidebar.width() !== 0) { |
|
41 |
+ closeSidebar($sidebar); |
|
41 | 42 |
} else { |
42 |
- $sidebar.width("100vw").css("border", "1px solid #ccc"); |
|
43 |
+ openSidebar($sidebar); |
|
44 |
+ updateStar(); |
|
43 | 45 |
} |
44 |
- $(".main-stream").removeClass("span12").addClass("span8"); |
|
45 |
- } |
|
46 |
+ }); |
|
47 |
+ } |
|
46 | 48 |
|
49 |
+ function afterUsermenuLoaded() { |
|
47 | 50 |
// used for new project list ui |
48 |
- $(".right-menu").on('click', ".myProjectList, a[href='#recentlyVisited'], a[href='#createdByMe'], a[href='#watching'], a[href='#joinmember']", function() { |
|
51 |
+ $(".right-menu").on("click.tab", ".myProjectList, a[href='#recentlyVisited'], a[href='#createdByMe'], a[href='#watching'], a[href='#joinmember']", function () { |
|
49 | 52 |
updateStar(); |
50 | 53 |
setTimeout(function focusToProjectSearchInput() { |
51 | 54 |
var $projectSearch = $('.project-search'); |
... | ... | @@ -53,7 +56,7 @@ |
53 | 56 |
if (viewSize > PIXEL_CRITERIA_FOR_SMALL_DEVICE) { |
54 | 57 |
$projectSearch.focus(); |
55 | 58 |
} |
56 |
- if(!$projectSearch.val()){ |
|
59 |
+ if (!$projectSearch.val()) { |
|
57 | 60 |
$projectSearch.val($orgSearch.val()); |
58 | 61 |
} |
59 | 62 |
$orgSearch.val(""); |
... | ... | @@ -61,7 +64,7 @@ |
61 | 64 |
|
62 | 65 |
}); |
63 | 66 |
|
64 |
- $('.myOrganizationList').on('click', function focusToOrgSearchInput(){ |
|
67 |
+ $('.myOrganizationList').on("click.orgList", function focusToOrgSearchInput() { |
|
65 | 68 |
setTimeout(function () { |
66 | 69 |
var $projectSearch = $('.project-search'); |
67 | 70 |
var $orgSearch = $('.org-search'); |
... | ... | @@ -74,115 +77,108 @@ |
74 | 77 |
}); |
75 | 78 |
|
76 | 79 |
// search by keyword |
77 |
- $(".search-input").on("keyup", function(event) { |
|
80 |
+ $(".search-input") |
|
81 |
+ .on("keyup.search", function (event) { |
|
78 | 82 |
var value = $(this).val().toLowerCase().trim(); |
79 | 83 |
|
80 |
- if ( value !== "" || event.which === 8) { // 8: backspace |
|
81 |
- $(".user-li").each(function() { |
|
84 |
+ if (value !== "" || event.which === 8) { // 8: backspace |
|
85 |
+ $(".user-li").each(function () { |
|
82 | 86 |
$(this).toggle($(this).text().toLowerCase().indexOf(value) !== -1); |
83 | 87 |
}); |
84 |
- $(".org-li").each(function() { |
|
88 |
+ $(".org-li").each(function () { |
|
85 | 89 |
$(this).toggle($(this).text().toLowerCase().indexOf(value) !== -1); |
86 | 90 |
}); |
87 | 91 |
} |
88 |
- }).on("keydown.moveCursorFromInputform", function(e) { |
|
89 |
- switch (e.keyCode) { |
|
90 |
- case 27: // ESC |
|
91 |
- $('.project-search').blur(); |
|
92 |
- closeSidebar($sidebar); |
|
93 |
- break; |
|
94 |
- default: |
|
95 |
- break; |
|
96 |
- } |
|
97 |
- }); |
|
92 |
+ }) |
|
93 |
+ .on("keydown.moveCursorFromInputform", function (e) { |
|
94 |
+ switch (e.keyCode) { |
|
95 |
+ case 27: // ESC |
|
96 |
+ $('.project-search').blur(); |
|
97 |
+ closeSidebar($sidebar); |
|
98 |
+ break; |
|
99 |
+ default: |
|
100 |
+ break; |
|
101 |
+ } |
|
102 |
+ }); |
|
98 | 103 |
|
99 |
- $(".project-list > .star-project, .project-breadcrumb > .user-project-list").on("click", function toggleProjectFavorite(e) { |
|
100 |
- e.stopPropagation(); |
|
101 |
- var that = $(this); |
|
102 |
- $.post(UsermenuToggleFavoriteProjectUrl + that.data("projectId")) |
|
103 |
- .done(function (data) { |
|
104 |
- if(data.favored){ |
|
105 |
- that.find('i').addClass("starred"); |
|
106 |
- } else { |
|
107 |
- that.find('i').removeClass("starred"); |
|
108 |
- } |
|
109 |
- }) |
|
110 |
- .fail(function (data) { |
|
111 |
- $yobi.alert("Update failed: " + JSON.parse(data.responseText).reason); |
|
112 |
- }); |
|
113 |
- }); |
|
114 |
- |
|
115 |
- $(".board-header > .title > .favorite-issue").on("click", function toggleProjectFavorite(e) { |
|
116 |
- e.stopPropagation(); |
|
117 |
- var that = $(this); |
|
118 |
- $.post(UsermenuToggleFavoriteIssueUrl + that.data("issueId")) |
|
119 |
- .done(function (data) { |
|
120 |
- if(data.favored){ |
|
121 |
- that.find('i').addClass("starred"); |
|
122 |
- } else { |
|
123 |
- that.find('i').removeClass("starred"); |
|
124 |
- } |
|
125 |
- $yobi.notify(Messages(data.message), 3000); |
|
126 |
- }) |
|
127 |
- .fail(function (data) { |
|
128 |
- $yobi.alert("Update failed: " + JSON.parse(data.responseText).reason); |
|
129 |
- }); |
|
130 |
- |
|
131 |
- }); |
|
132 |
- |
|
133 |
- $(".user-ul > .user-li, .project-ul > .user-li").on("click", function (e) { |
|
134 |
- e.preventDefault(); |
|
135 |
- e.stopPropagation(); |
|
136 |
- |
|
137 |
- // for smoothly loading effect |
|
138 |
- $('.mainFrame').hide(); |
|
139 |
- $('#mainFrame').addClass("loading-gif"); |
|
140 |
- |
|
141 |
- var location = $(this).data('location'); |
|
142 |
- if(e.metaKey || e.ctrlKey || e.shiftKey) { |
|
143 |
- window.location = location; |
|
144 |
- } else { |
|
145 |
- window.open(location, 'mainFrame'); |
|
146 |
- } |
|
147 |
- |
|
148 |
- $(".user-ul > .user-li, .project-ul > .user-li").removeClass("selected"); |
|
149 |
- $(this).addClass("selected"); |
|
150 |
- }); |
|
151 |
- |
|
152 |
- $(".org-list > .star-org").on("click", function toggleOrgFavorite(e) { |
|
153 |
- e.stopPropagation(); |
|
154 |
- var that = $(this); |
|
155 |
- $.post(UsermenuToggleFoveriteOrganizationUrl + that.data("organizationId")) |
|
156 |
- .done(function (data) { |
|
157 |
- if(data.favored){ |
|
158 |
- that.find('i').addClass("starred"); |
|
159 |
- } else { |
|
160 |
- that.find('i').removeClass("starred"); |
|
161 |
- } |
|
162 |
- }) |
|
163 |
- .fail(function (data) { |
|
164 |
- $yobi.alert("Update failed: " + JSON.parse(data.responseText).reason); |
|
165 |
- }); |
|
166 |
- }); |
|
167 |
- |
|
168 |
- // This method intended to sync sub tab list of projects |
|
169 |
- function updateStar(){ |
|
170 |
- $.get(UsermenuGetFoveriteProjectsUrl) |
|
171 |
- .done(function(data){ |
|
172 |
- $(".star-project").each(function () { |
|
173 |
- var $this = $(this); |
|
174 |
- if (data.projectIds.indexOf($this.data("projectId")) !== -1) { |
|
175 |
- $this.find("i").addClass("starred"); |
|
104 |
+ $(".project-list > .star-project, .project-breadcrumb > .user-project-list") |
|
105 |
+ .on("click.toggleProjectFavorite", function toggleProjectFavorite(e) { |
|
106 |
+ e.stopPropagation(); |
|
107 |
+ var that = $(this); |
|
108 |
+ $.post(UsermenuToggleFavoriteProjectUrl + that.data("projectId")) |
|
109 |
+ .done(function (data) { |
|
110 |
+ if (data.favored) { |
|
111 |
+ that.find('i').addClass("starred"); |
|
176 | 112 |
} else { |
177 |
- $this.find("i").removeClass("starred"); |
|
113 |
+ that.find('i').removeClass("starred"); |
|
178 | 114 |
} |
115 |
+ }) |
|
116 |
+ .fail(function (data) { |
|
117 |
+ $yobi.alert("Update failed: " + JSON.parse(data.responseText).reason); |
|
179 | 118 |
}); |
180 |
- }); |
|
181 |
- } |
|
119 |
+ }); |
|
182 | 120 |
|
183 |
- $(".all-orgs").on("click", function () { |
|
184 |
- var $li = $(this).closest("li").find(".hide").toggle("fast"); |
|
185 |
- }); |
|
121 |
+ $(".board-header > .title > .favorite-issue") |
|
122 |
+ .on("click.toggleProjectFavorite", function toggleProjectFavorite(e) { |
|
123 |
+ e.stopPropagation(); |
|
124 |
+ var that = $(this); |
|
125 |
+ $.post(UsermenuToggleFavoriteIssueUrl + that.data("issueId")) |
|
126 |
+ .done(function (data) { |
|
127 |
+ if (data.favored) { |
|
128 |
+ that.find('i').addClass("starred"); |
|
129 |
+ } else { |
|
130 |
+ that.find('i').removeClass("starred"); |
|
131 |
+ } |
|
132 |
+ $yobi.notify(Messages(data.message), 3000); |
|
133 |
+ }) |
|
134 |
+ .fail(function (data) { |
|
135 |
+ $yobi.alert("Update failed: " + JSON.parse(data.responseText).reason); |
|
136 |
+ }); |
|
137 |
+ |
|
138 |
+ }); |
|
139 |
+ |
|
140 |
+ $(".user-ul > .user-li, .project-ul > .user-li") |
|
141 |
+ .on("click.project", function (e) { |
|
142 |
+ e.preventDefault(); |
|
143 |
+ e.stopPropagation(); |
|
144 |
+ |
|
145 |
+ // for smoothly loading effect |
|
146 |
+ $('.mainFrame').hide(); |
|
147 |
+ $('#mainFrame').addClass("loading-gif"); |
|
148 |
+ |
|
149 |
+ var location = $(this).data('location'); |
|
150 |
+ if (e.metaKey || e.ctrlKey || e.shiftKey) { |
|
151 |
+ window.location = location; |
|
152 |
+ } else { |
|
153 |
+ window.open(location, 'mainFrame'); |
|
154 |
+ } |
|
155 |
+ |
|
156 |
+ $(".user-ul > .user-li, .project-ul > .user-li").removeClass("selected"); |
|
157 |
+ $(this).addClass("selected"); |
|
158 |
+ }); |
|
159 |
+ |
|
160 |
+ $(".org-list > .star-org") |
|
161 |
+ .on("click.org", function toggleOrgFavorite(e) { |
|
162 |
+ e.stopPropagation(); |
|
163 |
+ var that = $(this); |
|
164 |
+ $.post(UsermenuToggleFoveriteOrganizationUrl + that.data("organizationId")) |
|
165 |
+ .done(function (data) { |
|
166 |
+ if (data.favored) { |
|
167 |
+ that.find('i').addClass("starred"); |
|
168 |
+ } else { |
|
169 |
+ that.find('i').removeClass("starred"); |
|
170 |
+ } |
|
171 |
+ }) |
|
172 |
+ .fail(function (data) { |
|
173 |
+ $yobi.alert("Update failed: " + JSON.parse(data.responseText).reason); |
|
174 |
+ }); |
|
175 |
+ }); |
|
176 |
+ |
|
177 |
+ |
|
178 |
+ $(".all-orgs") |
|
179 |
+ .on("click.allOrgs", function () { |
|
180 |
+ var $li = $(this).closest("li").find(".hide").toggle("fast"); |
|
181 |
+ }); |
|
186 | 182 |
|
187 | 183 |
$(".sub-project-counter").each(function (item) { |
188 | 184 |
var $this = $(this); |
... | ... | @@ -191,4 +187,41 @@ |
191 | 187 |
$this.text(counter); |
192 | 188 |
}); |
193 | 189 |
} |
190 |
+ |
|
191 |
+ function isShortcutKeyPressed(event) { |
|
192 |
+ return (!event.metaKey && (event.which === 102 || event.which === 12601)) // keycode => 102: f, 12623: ㄹ |
|
193 |
+ && $(':focus').length === 0; // avoid already somewhere focused state |
|
194 |
+ } |
|
195 |
+ |
|
196 |
+ function closeSidebar($sidebar) { |
|
197 |
+ $sidebar.width("0").css("border", "none"); |
|
198 |
+ $(".main-stream").removeClass("span8").addClass("span12"); |
|
199 |
+ } |
|
200 |
+ |
|
201 |
+ function openSidebar($sidebar) { |
|
202 |
+ // 720px is a criteria to distinguish small devices |
|
203 |
+ if (viewSize > PIXEL_CRITERIA_FOR_SMALL_DEVICE) { |
|
204 |
+ $sidebar.width(SIDE_BAR_DEFAULT_WIDTH).css("border", "1px solid #ccc"); |
|
205 |
+ $(".search-input").focus(); |
|
206 |
+ } else { |
|
207 |
+ $sidebar.width("100vw").css("border", "1px solid #ccc"); |
|
208 |
+ } |
|
209 |
+ $(".main-stream").removeClass("span12").addClass("span8"); |
|
210 |
+ } |
|
211 |
+ |
|
212 |
+ // This method intended to sync sub tab list of projects |
|
213 |
+ function updateStar() { |
|
214 |
+ $.get(UsermenuGetFoveriteProjectsUrl) |
|
215 |
+ .done(function (data) { |
|
216 |
+ $(".star-project").each(function () { |
|
217 |
+ var $this = $(this); |
|
218 |
+ if (data.projectIds.indexOf($this.data("projectId")) !== -1) { |
|
219 |
+ $this.find("i").addClass("starred"); |
|
220 |
+ } else { |
|
221 |
+ $this.find("i").removeClass("starred"); |
|
222 |
+ } |
|
223 |
+ }); |
|
224 |
+ }); |
|
225 |
+ } |
|
226 |
+ |
|
194 | 227 |
}); |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?