able sort issues

This commit is contained in:
Unknwon committed 2015-08-15 12:07:08 +08:00
1 parent 4ce003dc15
commit a52324a5f9
8 files changed
+66 -95

No files matched your search

+7
View File
@@ -400,6 +400,13 @@ issues.filter_type.all_issues = All issues
issues.filter_type.assigned_to_you = Assigned to you issues.filter_type.assigned_to_you = Assigned to you
issues.filter_type.created_by_you = Created by you issues.filter_type.created_by_you = Created by you
issues.filter_type.mentioning_you = Mentioning you issues.filter_type.mentioning_you = Mentioning you
issues.filter_sort = Sort
issues.filter_sort.latest = Latest
issues.filter_sort.oldest = Oldest
issues.filter_sort.recentupdate = Recent updated
issues.filter_sort.leastupdate = Least updated
issues.filter_sort.mostcomment = Most comments
issues.filter_sort.leastcomment = Least comments
issues.opened_by = opened %[1]s by <a href="/%[2]s">%[2]s</a> issues.opened_by = opened %[1]s by <a href="/%[2]s">%[2]s</a>
issues.opened_by_fake = opened %[1]s by %[2]s issues.opened_by_fake = opened %[1]s by %[2]s
issues.previous = Previous issues.previous = Previous
+7 -67
View File
@@ -1,6 +1,6 @@
{ {
"CodeKitInfo": "This is a CodeKit 2.x project configuration file. It is designed to sync project settings across multiple machines. MODIFYING THE CONTENTS OF THIS FILE IS A POOR LIFE DECISION. If you do so, you will likely cause CodeKit to crash. This file is not useful unless accompanied by the project that created it in CodeKit 2. This file is not backwards-compatible with CodeKit 1.x. For more information, see: http:\/\/incident57.com\/codekit", "CodeKitInfo": "This is a CodeKit 2.x project configuration file. It is designed to sync project settings across multiple machines. MODIFYING THE CONTENTS OF THIS FILE IS A POOR LIFE DECISION. If you do so, you will likely cause CodeKit to crash. This file is not useful unless accompanied by the project that created it in CodeKit 2. This file is not backwards-compatible with CodeKit 1.x. For more information, see: http:\/\/incident57.com\/codekit",
"creatorBuild": "19033", "creatorBuild": "19051",
"files": { "files": {
"\/CONTRIBUTING.md": { "\/CONTRIBUTING.md": {
"criticStyle": 0, "criticStyle": 0,
@@ -1635,10 +1635,6 @@
} }
}, },
"jsLintFlags2": { "jsLintFlags2": {
"ass": {
"active": 0,
"flagValue": -1
},
"bitwise": { "bitwise": {
"active": 0, "active": 0,
"flagValue": -1 "flagValue": -1
@@ -1647,15 +1643,7 @@
"active": 1, "active": 1,
"flagValue": -1 "flagValue": -1
}, },
"closure": { "couch": {
"active": 0,
"flagValue": -1
},
"continue": {
"active": 0,
"flagValue": -1
},
"debug": {
"active": 0, "active": 0,
"flagValue": -1 "flagValue": -1
}, },
@@ -1663,75 +1651,27 @@
"active": 0, "active": 0,
"flagValue": -1 "flagValue": -1
}, },
"eqeq": { "es6": {
"active": 0, "active": 0,
"flagValue": -1 "flagValue": -1
}, },
"evil": { "eval": {
"active": 1,
"flagValue": -1
},
"forin": {
"active": 0, "active": 0,
"flagValue": -1 "flagValue": -1
}, },
"indent": { "for": {
"active": 0, "active": 0,
"flagValue": 4 "flagValue": -1
}, },
"maxlen": { "maxlen": {
"active": 0, "active": 0,
"flagValue": 150 "flagValue": 150
}, },
"newcap": {
"active": 0,
"flagValue": -1
},
"node": { "node": {
"active": 0, "active": 0,
"flagValue": -1 "flagValue": -1
}, },
"nomen": { "this": {
"active": 0,
"flagValue": -1
},
"plusplus": {
"active": 0,
"flagValue": -1
},
"properties": {
"active": 0,
"flagValue": -1
},
"regexp": {
"active": 0,
"flagValue": -1
},
"rhino": {
"active": 0,
"flagValue": -1
},
"sloppy": {
"active": 0,
"flagValue": -1
},
"stupid": {
"active": 0,
"flagValue": -1
},
"sub": {
"active": 0,
"flagValue": -1
},
"todo": {
"active": 0,
"flagValue": -1
},
"unparam": {
"active": 0,
"flagValue": -1
},
"vars": {
"active": 0, "active": 0,
"flagValue": -1 "flagValue": -1
}, },
+5 -9
View File
@@ -639,7 +639,7 @@ func parseCountResult(results []map[string][]byte) int64 {
} }
// GetIssueStats returns issue statistic information by given conditions. // GetIssueStats returns issue statistic information by given conditions.
func GetIssueStats(repoID, uid, labelID, milestoneID int64, isShowClosed bool, filterMode int) *IssueStats { func GetIssueStats(repoID, uid, labelID, milestoneID, assigneeID int64, isShowClosed bool, filterMode int) *IssueStats {
stats := &IssueStats{} stats := &IssueStats{}
// issue := new(Issue) // issue := new(Issue)
@@ -652,20 +652,16 @@ func GetIssueStats(repoID, uid, labelID, milestoneID int64, isShowClosed bool, f
if milestoneID > 0 { if milestoneID > 0 {
baseCond += " AND issue.milestone_id=" + com.ToStr(milestoneID) baseCond += " AND issue.milestone_id=" + com.ToStr(milestoneID)
} }
if assigneeID > 0 {
baseCond += " AND assignee_id=" + com.ToStr(assigneeID)
}
switch filterMode { switch filterMode {
case FM_ALL: case FM_ALL, FM_ASSIGN:
resutls, _ := x.Query(queryStr+baseCond, repoID, false) resutls, _ := x.Query(queryStr+baseCond, repoID, false)
stats.OpenCount = parseCountResult(resutls) stats.OpenCount = parseCountResult(resutls)
resutls, _ = x.Query(queryStr+baseCond, repoID, true) resutls, _ = x.Query(queryStr+baseCond, repoID, true)
stats.ClosedCount = parseCountResult(resutls) stats.ClosedCount = parseCountResult(resutls)
case FM_ASSIGN:
baseCond += " AND assignee_id=?"
resutls, _ := x.Query(queryStr+baseCond, repoID, false, uid)
stats.OpenCount = parseCountResult(resutls)
resutls, _ = x.Query(queryStr+baseCond, repoID, true, uid)
stats.ClosedCount = parseCountResult(resutls)
case FM_CREATE: case FM_CREATE:
baseCond += " AND poster_id=?" baseCond += " AND poster_id=?"
resutls, _ := x.Query(queryStr+baseCond, repoID, false, uid) resutls, _ := x.Query(queryStr+baseCond, repoID, false, uid)
+2 -2
View File
@@ -772,7 +772,7 @@ func confLocaleLocale_deDeIni() (*asset, error) {
return a, nil return a, nil
} }
var _confLocaleLocale_enUsIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x7d\x7b\x73\xdb\x48\x92\xe7\xff\xf8\x14\x68\x6f\xf8\xec\x8e\x90\xe9\xe8\x9e\xb8\x47\x74\xd8\xee\x53\x4b\xed\xc7\xac\x65\x69\x2d\xb9\xe7\xe6\x1c\x0e\x36\x48\x40\x24\x46\x24\xc0\xc6\x43\xb4\x66\x63\x23\xee\x6b\xdc\xd7\xbb\x4f\x72\x99\xbf\xcc\xac\x07\x00\xca\xf6\xec\xc6\xdd\x3f\x64\xa1\x2a\xeb\x95\x95\x95\x95\x99\x95\x55\x95\xed\x76\xf3\xbc\x68\x97\xe9\xf3\xf4\x38\xdd\x65\x65\xb5\x29\xda\x36\x6d\x8b\xcd\xf5\x93\x75\xdd\x76\x45\x9e\xbe\x2a\x3b\xfa\x6e\x6e\xcb\x65\x91\x24\xeb\x7a\x5b\x10\xe8\x6b\xfa\x4b\xf2\xac\x5d\x2f\xea\xac\xc9\x29\xe2\xd4\xc2\x49\xf1\x79\xb7\xa9\x1b\x06\xfa\x55\x42\xc9\xba\xd8\xec\x38\x0f\xfd\x25\x6d\xb9\xaa\xe6\x65\x45\x9f\x97\x14\x4a\xdf\x54\x49\x5b\x2f\xcb\x6c\x33\x0f\x12\x10\x61\xe9\x3f\xa5\x3f\x56\x79\x7a\xd9\x15\xbb\xf4\x59\xbb\xcd\x36\x9b\x17\x59\x8b\x2c\x5d\x91\x66\xcb\x65\xdd\x57\xdd\xb3\xa7\x92\x20\x85\xd7\x7d\x67\xa5\x9f\xf7\x9d\xc4\xf5\x3b\x8b\xfa\xb0\x4b\x9a\x62\x55\x52\xc7\x1a\x8a\x7a\xaf\xc1\x64\x5f\x2c\xda\xb2\xe3\x46\xff\x45\x42\xc9\x6d\xd1\xb4\x65\xcd\xed\xf9\x4d\x42\xc9\x2e\x5b\x31\xc0\x05\xfd\x25\x5d\xb1\xdd\x6d\x32\x64\xb8\xd2\x60\xb2\xc9\xaa\x55\x2f\x30\x6f\x35\x98\x2c\x9b\x82\x92\xe6\x55\xb1\xa7\xd8\x13\x7c\xa4\xf4\x31\x9b\xcd\x92\x9e\x70\x3a\xdf\x35\xf5\x75\xb9\x29\xe6\x59\x95\xcf\xb7\x82\xb5\x0f\x14\x9f\x6a\x7c\x4a\xf1\x29\xc7\xa3\x1b\x45\x4e\x08\x9a\x67\xad\xf6\x85\x86\x86\xf0\x95\xb5\x09\x8a\xaa\xb2\xad\xe5\xe6\x60\x52\x6c\xb3\x72\xc3\x83\xf0\x84\x03\xd4\xf8\xb6\xdd\xd7\x18\xaa\x0b\x0d\x12\x22\xe6\xdd\xdd\xae\x00\x1e\x9e\x5c\x51\x28\x59\x66\xbb\x6e\xb9\xce\xb8\xad\x12\x4a\x08\x68\x57\x13\x42\xea\xe6\x0e\x70\xf6\x91\xd4\xcd\x2a\xab\xca\xbf\x67\x9d\x20\xe9\x3c\xf8\x4c\xb6\x65\xd3\xd4\x8c\xdf\x33\x04\x12\xea\xf1\x9c\xcb\xa1\x98\x77\x84\x89\xa0\x14\x4e\xd9\x96\xab\x46\x50\xc9\x89\x67\xf8\xe2\x52\x38\xed\xba\x6e\x6e\x34\xe1\x25\x07\x07\x59\xa9\x11\x9a\x1a\xd7\x9f\x55\x84\x7c\x4d\x3d\xc3\x47\x04\xd0\x26\x59\xbe\x25\x54\xee\xb2\xaa\x60\x1c\x1d\xf3\x17\xe1\x85\xbe\x12\xa5\xa9\x79\x5b\x74\x5d\x59\xad\x18\xd9\xc7\x12\x95\x5e\x6a\x54\x12\xa4\xb9\xb8\xbb\xba\x77\xc3\x49\xf1\x7f\xa5\xcf\xf4\x42\x3e\x25\x2d\xc8\x84\x44\x97\x93\x7b\xd2\xce\xaf\x8b\x22\x97\xbe\xb4\xe9\x4b\x0a\x27\xbb\x7e\xb3\x21\xac\xfd\xd1\x17\x6d\xc7\x99\x2e\xe8\x9b\xfa\x2f\xdf\x49\xd9\xb6\x14\xa0\xe8\x37\x08\x24\x34\x74\xd5\x12\x9d\x39\x41\x20\x49\x3e\xb6\x45\xd6\x2c\xd7\x9f\x12\xf9\x47\x5b\x39\xc0\xb4\x77\x68\x50\x99\x90\x94\x88\xa4\x06\xab\x20\x59\xd6\x39\x7f\x9c\xd0\x1f\x15\x5d\x56\x6d\x47\x33\xee\x53\xa2\x01\x06\x93\x90\x0c\x40\x57\x76\xc0\x82\x46\x62\xfa\xb6\x3c\x82\xe9\xcb\xb2\x69\xbb\x27\x5d\x49\xc4\xfa\xbe\xaf\x12\xee\x1f\xcd\xb6\x79\xbe\x30\x26\xf4\xaa\x26\x14\x21\xba\xa1\xfe\x9d\xdd\x5d\xfe\xcb\xdb\xa3\xf4\x82\x38\xd1\xaa\x29\x28\x9c\x52\x19\xf4\x47\x79\xfe\x34\x4b\x28\x97\xd5\x74\x9a\x75\xd9\x22\x6b\x0b\x8f\x56\x4e\x14\xea\x76\x69\xa0\x71\xe6\x6a\xe0\x60\x6d\x17\xf5\x77\x6a\x86\x50\x19\x3a\xaf\x5c\x19\xef\x78\x72\x51\x3c\x33\x35\x64\xbe\xd8\x14\x1c\x4f\x45\xa5\x6f\xde\xbd\x3b\x3f\xfd\x25\x2d\xaa\x55\x59\x15\xe9\xbe\xec\xd6\x69\xdf\x5d\xff\xb7\xf9\xaa\xa8\x8a\x86\x78\xdc\xb2\x4c\x69\x4e\x35\x44\x09\x29\x11\xb6\x74\x6e\x96\xb4\xed\x86\xe6\x3e\xd0\x7b\x79\xf9\x36\x3d\x63\x14\xef\xb2\x6e\x8d\x86\x74\xeb\xa4\xfd\x63\xc3\x28\x72\x15\x5e\xad\x8b\x14\x54\x06\xa0\xfa\xda\xf0\x91\xe6\xda\xc6\x59\x52\x34\xcd\x9c\xd8\x52\x77\x37\xd7\xcc\x5a\xde\x10\x52\x8a\x20\xd2\xa9\xea\x2e\x5d\x14\x29\xf2\xcc\x92\xc4\x1a\x6c\xd8\x3d\xde\xed\x36\xe5\x52\xe6\xfa\x2b\x49\xf3\x88\xe6\x15\x44\xb1\x14\xc2\x01\x51\x96\x16\xa0\x8b\xd8\x33\xcf\x87\x34\x62\x20\xc8\xbf\x2e\x88\x01\xae\xfb\x95\xb0\xbd\x4d\xdd\xe7\xdf\x81\x52\xad\xf5\x9e\x50\xd3\xf7\x35\x35\x18\xd8\x71\x00\xbe\x8a\x63\xa2\x38\x5e\xb4\x9a\x62\x5b\x13\x5f\x71\xc4\x5e\x12\x41\xed\x4b\x4a\xa4\x9e\xb6\xd9\x2d\xcd\xb7\xae\x4e\xbb\x75\xd9\xa6\x39\x11\xdb\x92\x0b\xa6\xa9\xd1\xd3\x72\x21\x64\x41\x04\x2a\xa4\x61\x71\xf1\x18\x00\x6a\xdb\x13\x35\xad\xa9\x30\x5e\x8c\x78\xe5\xa4\x22\xa7\xda\x89\x2e\x51\x39\xa0\x6f\xa2\xdc\x9a\xb8\x32\xf3\xcd\x53\x04\xf4\x3b\x2c\x9f\x5a\x95\x5d\x5f\x53\xab\x5a\xa2\x8a\xd7\xe9\x72\x53\x13\x49\x7d\x78\xff\x96\x32\xaf\xbb\x6e\x37\xdf\xd5\x0d\xc8\xf8\xea\xea\x82\xa6\x47\xd3\xf9\xd8\x00\xd7\x0c\x53\xf5\xdb\x05\x7d\xed\xd7\x25\x31\x81\x2c\x18\x20\xa0\x62\xc3\xeb\x5f\x95\xd6\xd5\x0c\x63\xd5\x37\x9b\xc1\x30\x52\x95\x96\x72\xa0\x79\xdc\x84\xa7\xfc\x73\xe9\x5b\x89\xee\xb6\x24\x24\xec\x31\xa8\xd4\xd5\x02\xeb\x10\xd1\x56\xbd\xe3\x72\x03\xe2\x3a\xd7\x08\x4f\x51\x58\xbb\x5c\xba\xac\x60\x94\x0a\x11\x24\xe0\xc2\x5b\xea\xb0\xce\xe6\xcb\x33\x42\x03\xa6\x34\x62\xaf\x9b\x7a\x4b\xb1\x2f\xe9\xcf\x47\xf8\xe6\x9f\x71\x79\x80\xc9\xf2\x9c\xd8\x4c\x7b\x94\xbe\x7f\x79\x92\xfe\xe7\x3f\xfd\xf8\xe3\x2c\x7d\xd3\xf1\x84\x60\x1a\xf9\x1b\x8f\x2d\x05\x65\x29\x75\xa0\x34\x73\x3b\x1a\xfe\x07\x4c\xe0\x0f\xd2\x67\x48\xfd\xef\xc5\xe7\x8c\xc4\x80\x62\xb6\xac\xb7\x2f\x78\x72\x6f\xb3\x6e\x96\x70\x0a\x51\x8d\x92\xd3\x65\x51\xe5\x14\xd0\x05\x59\xd3\x02\xae\xa3\xe9\xc1\xf2\x2c\xc2\xc9\x7c\x59\x57\xd7\x65\xc3\x1d\xfLine truncated var _confLocaleLocale_enUsIni = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x7d\x7b\x93\xdb\x48\x8e\xe7\xff\xfc\x14\x6c\x6f\xf8\xec\x8e\x28\xcb\xd1\x3d\x71\x8f\xe8\xb0\xdd\x57\x5d\xd5\x7e\xcc\xba\x1e\xeb\x2a\xf7\xdc\x9c\xc3\xa1\xa6\x44\x96\xc4\xb1\x44\xaa\xf9\x28\xb9\x66\x63\x23\xee\x6b\xdc\xd7\xbb\x4f\x72\xc0\x0f\x40\x3e\x48\xaa\x6c\xcf\x6e\xdc\xfd\x23\x25\x33\x91\x2f\x24\x12\x09\x20\x91\x99\xd9\x6e\x37\xcf\x8b\x76\x99\x3e\x4f\x8f\xd3\x5d\x56\x56\x9b\xa2\x6d\xd3\xb6\xd8\xdc\x3c\x59\xd7\x6d\x57\xe4\xe9\xab\xb2\xa3\xef\xe6\xb6\x5c\x16\x49\xb2\xae\xb7\x05\x81\xbe\xa6\xbf\x24\xcf\xda\xf5\xa2\xce\x9a\x9c\x22\x4e\x2d\x9c\x14\x9f\x77\x9b\xba\x61\xa0\x5f\x25\x94\xac\x8b\xcd\x8e\xf3\xd0\x5f\xd2\x96\xab\x6a\x5e\x56\xf4\x79\x45\xa1\xf4\x4d\x95\xb4\xf5\xb2\xcc\x36\xf3\x20\x01\x11\x96\xfe\x53\xfa\x63\x95\xa7\x57\x5d\xb1\x4b\x9f\xb5\xdb\x6c\xb3\x79\x91\xb5\xc8\xd2\x15\x69\xb6\x5c\xd6\x7d\xd5\x3d\x7b\x2a\x09\x52\x78\xdd\x77\x56\xfa\x45\xdf\x49\x5c\xbf\xb3\xa8\xf7\xbb\xa4\x29\x56\x25\x75\xac\xa1\xa8\x77\x1a\x4c\xf6\xc5\xa2\x2d\x3b\x6e\xf4\x5f\x24\x94\xdc\x16\x4d\x5b\xd6\xdc\x9e\xdf\x24\x94\xec\xb2\x15\x03\x5c\xd2\x5f\xd2\x15\xdb\xdd\x26\x43\x86\x6b\x0d\x26\x9b\xac\x5a\xf5\x02\xf3\x56\x83\xc9\xb2\x29\x28\x69\x5e\x15\x7b\x8a\x3d\xc1\x47\x4a\x1f\xb3\xd9\x2c\xe9\x09\xa7\xf3\x5d\x53\xdf\x94\x9b\x62\x9e\x55\xf9\x7c\x2b\x58\x7b\x4f\xf1\xa9\xc6\xa7\x14\x9f\x72\x3c\xba\x51\xe4\x84\xa0\x79\xd6\x6a\x5f\x68\x68\x08\x5f\x59\x9b\xa0\xa8\x2a\xdb\x5a\x6e\x0e\x26\xc5\x36\x2b\x37\x3c\x08\x4f\x38\x40\x8d\x6f\xdb\x7d\x8d\xa1\xba\xd4\x20\x21\x62\xde\xdd\xed\x0a\xe0\xe1\xc9\x35\x85\x92\x65\xb6\xeb\x96\xeb\x8c\xdb\x2a\xa1\x84\x80\x76\x35\x21\xa4\x6e\xee\x00\x67\x1f\x49\xdd\xac\xb2\xaa\xfc\x7b\xd6\x09\x92\x2e\x82\xcf\x64\x5b\x36\x4d\xcd\xf8\x3d\x43\x20\xa1\x1e\xcf\xb9\x1c\x8a\x39\x27\x4c\x04\xa5\x70\xca\xb6\x5c\x35\x82\x4a\x4e\x3c\xc3\x17\x97\xc2\x69\x37\x75\xf3\x49\x13\x5e\x72\x70\x90\x95\x1a\xa1\xa9\x71\xfd\x59\x45\xc8\xd7\xd4\x33\x7c\x44\x00\x6d\x92\xe5\x5b\x42\xe5\x2e\xab\x0a\xc6\xd1\x31\x7f\x11\x5e\xe8\x2b\x51\x9a\x9a\xb7\x45\xd7\x95\xd5\x8a\x91\x7d\x2c\x51\xe9\x95\x46\x25\x41\x9a\x8b\xbb\xab\x7b\x37\x9c\x14\xff\x57\xfa\x4c\x2f\xe5\x53\xd2\x82\x4c\x48\x74\x39\xb9\x27\xed\xfc\xa6\x28\x72\xe9\x4b\x9b\xbe\xa4\x70\xb2\xeb\x37\x1b\xc2\xda\x1f\x7d\xd1\x76\x9c\xe9\x92\xbe\xa9\xff\xf2\x9d\x94\x6d\x4b\x01\x8a\x7e\x83\x40\x42\x43\x57\x2d\xd1\x99\x13\x04\x92\xe4\x43\x5b\x64\xcd\x72\xfd\x31\x91\x7f\xb4\x95\x03\x4c\x7b\x87\x06\x95\x09\x49\x89\x48\x6a\xb0\x0a\x92\x65\x9d\xf3\xc7\x09\xfd\x51\xd1\x65\xd5\x76\x34\xe3\x3e\x26\x1a\x60\x30\x09\xc9\x00\x74\x65\x07\x2c\x68\x24\xa6\x6f\xcb\x23\x98\xbe\x2c\x9b\xb6\x7b\xd2\x95\x44\xac\xef\xfa\x2a\xe1\xfe\xd1\x6c\x9b\xe7\x0b\x63\x42\xaf\x6a\x42\x11\xa2\x1b\xea\xdf\xd9\xdd\xd5\xbf\xbc\x3d\x4a\x2f\x89\x13\xad\x9a\x82\xc2\x29\x95\x41\x7f\x94\xe7\x4f\xb3\x84\x72\x59\x4d\xa7\x59\x97\x2d\xb2\xb6\xf0\x68\xe5\x44\xa1\x6e\x97\x06\x1a\x67\xae\x06\x0e\xd6\x76\x51\x7f\xa7\x66\x08\x95\xa1\xf3\xca\x95\x71\xce\x93\x8b\xe2\x99\xa9\x21\xf3\xe5\xa6\xe0\x78\x2a\x2a\x7d\x73\x7e\x7e\x71\xfa\x4b\x5a\x54\xab\xb2\x2a\xd2\x7d\xd9\xad\xd3\xbe\xbb\xf9\x6f\xf3\x55\x51\x15\x0d\xf1\xb8\x65\x99\xd2\x9c\x6a\x88\x12\x52\x22\x6c\xe9\xdc\x2c\x69\xdb\x0d\xcd\x7d\xa0\xf7\xea\xea\x6d\x7a\xc6\x28\xde\x65\xdd\x1a\x0d\xe9\xd6\x49\xfb\xc7\x86\x51\xe4\x2a\xbc\x5e\x17\x29\xa8\x0c\x40\xf5\x8d\xe1\x23\xcd\xb5\x8d\xb3\xa4\x68\x9a\x39\xb1\xa5\xee\x6e\xae\x99\xb5\xbc\x21\xa4\x14\x41\xa4\x53\xd5\x5d\xba\x28\x52\xe4\x99\x25\x89\x35\xd8\xb0\x7b\xbc\xdb\x6d\xca\xa5\xcc\xf5\x57\x92\xe6\x11\xcd\x2b\x88\x62\x29\x84\x03\xa2\x2c\x2d\x40\x17\xb1\x67\x9e\x0f\x69\xc4\x40\x90\x7f\x5d\x10\x03\x5c\xf7\x2b\x61\x7b\x9b\xba\xcf\xbf\x03\xa5\x5a\xeb\x3d\xa1\xa6\xef\x6a\x6a\x30\xb0\xe3\x00\x7c\x15\xc7\x44\x71\xbc\x68\x35\xc5\xb6\x26\xbe\xe2\x88\xbd\x24\x82\xda\x97\x94\x48\x3d\x6d\xb3\x5b\x9a\x6f\x5d\x9d\x76\xeb\xb2\x4d\x73\x22\xb6\x25\x17\x4c\x53\xa3\xa7\xe5\x42\xc8\x82\x08\x54\x48\xc3\xe2\xe2\x31\x00\xd4\xb6\x27\x6a\x5a\x53\x61\xbc\x18\xf1\xca\x49\x45\x4e\xb5\x13\x5d\xa2\x72\x40\xdf\x44\xb9\x35\x71\x65\xe6\x9b\xa7\x08\xe8\x77\x58\x3e\xb5\x2a\xbb\xb9\xa1\x56\xb5\x44\x15\xaf\xd3\xe5\xa6\x26\x92\x7a\xff\xee\x2d\x65\x5e\x77\xdd\x6e\xbe\xab\x1b\x90\xf1\xf5\xf5\x25\x4d\x8f\xa6\xf3\xb1\x01\xae\x19\xa6\xea\xb7\x0b\xfa\xda\xaf\x4b\x62\x02\x59\x30\x40\x40\xc5\x86\xd7\xbf\x2a\xad\xab\x19\xc6\xaa\x6f\x36\x83\x61\xa4\x2a\x2d\xe5\x40\xf3\xb8\x09\x4f\xf9\xe7\xca\xb7\x12\xdd\x6d\x49\x48\xd8\x63\x50\xa9\xab\x05\xd6\x21\xa2\xad\x7a\xc7\xe5\x06\xc4\x75\xa1\x11\x9e\xa2\xb0\x76\xb9\x74\x59\xc1\x28\x15\x22\x48\xc0\x85\xb7\xd4\x61\x9d\xcd\x57\x67\x84\x06\x4c\x69\xc4\xde\x34\xf5\x96\x62\x5f\xd2\x9f\x8f\xf0\xcd\x3f\xe3\xf2\x00\x93\xe5\x39\xb1\x99\xf6\x28\x7d\xf7\xf2\x24\xfd\xcf\x7f\xfa\xf1\xc7\x59\xfa\xa6\xe3\x09\xc1\x34\xf2\x37\x1e\x5b\x0a\xca\x52\xea\x40\x69\xe6\x76\x34\xfc\x0f\x98\xc0\x1f\xa4\xcf\x90\xfa\xdf\x8b\xcf\x19\x89\x01\xc5\x6c\x59\x6f\x5f\xf0\xe4\xde\x66\xdd\x2c\xe1\x14\xa2\x1a\x25\xa7\xab\xa2\xca\x29\xa0\x0b\xb2\xa6\x05\x5c\x47\xd3\x83\xe5\x59\x84\x93\xf9\xb2\xae\x6e\xca\x86\x3b\xf4\x6Line truncated
func confLocaleLocale_enUsIniBytes() ([]byte, error) { func confLocaleLocale_enUsIniBytes() ([]byte, error) {
return bindataRead( return bindataRead(
@@ -787,7 +787,7 @@ func confLocaleLocale_enUsIni() (*asset, error) {
return nil, err return nil, err
} }
info := bindataFileInfo{name: "conf/locale/locale_en-US.ini", size: 37936, mode: os.FileMode(420), modTime: time.Unix(1439608196, 0)} info := bindataFileInfo{name: "conf/locale/locale_en-US.ini", size: 38224, mode: os.FileMode(420), modTime: time.Unix(1439611459, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
+1 -1
View File
@@ -1 +1 @@
@font-face{font-family:octicons;src:url(../fonts/octicons.eot?#iefix&v=345f8bad9c5003db196d08f05e7f030fd2a32ff6)format('embedded-opentype'),url(../fonts/octicons.woff?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6)format('woff'),url(../fonts/octicons.ttf?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6)format('truetype'),url(../fonts/octicons.svg?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6#octicons)format('svg');font-weight:400;font-style:normal}.mega-octicon,.octicon{font:normal normal normal 16px/1 octicons;display:inline-block;text-decoration:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mega-octicon{font-size:32px}.octicon-alert:before{content:'\f02d'}.octicon-alignment-align:before{content:'\f08a'}.octicon-alignment-aligned-to:before{content:'\f08e'}.octicon-alignment-unalign:before{content:'\f08b'}.octicon-arrow-down:before{content:'\f03f'}.octicon-arrow-left:before{content:'\f040'}.octicon-arrow-right:before{content:'\f03e'}.octicon-arrow-small-down:before{content:'\f0a0'}.octicon-arrow-small-left:before{content:'\f0a1'}.octicon-arrow-small-right:before{content:'\f071'}.octicon-arrow-small-up:before{content:'\f09f'}.octicon-arrow-up:before{content:'\f03d'}.octicon-beer:before{content:'\f069'}.octicon-book:before{content:'\f007'}.octicon-bookmark:before{content:'\f07b'}.octicon-briefcase:before{content:'\f0d3'}.octicon-broadcast:before{content:'\f048'}.octicon-browser:before{content:'\f0c5'}.octicon-bug:before{content:'\f091'}.octicon-calendar:before{content:'\f068'}.octicon-check:before{content:'\f03a'}.octicon-checklist:before{content:'\f076'}.octicon-chevron-down:before{content:'\f0a3'}.octicon-chevron-left:before{content:'\f0a4'}.octicon-chevron-right:before{content:'\f078'}.octicon-chevron-up:before{content:'\f0a2'}.octicon-circle-slash:before{content:'\f084'}.octicon-circuit-board:before{content:'\f0d6'}.octicon-clippy:before{content:'\f035'}.octicon-clock:before{content:'\f046'}.octicon-cloud-download:before{content:'\f00b'}.octicon-cloud-upload:before{content:'\f00c'}.octicon-code:before{content:'\f05f'}.octicon-color-mode:before{content:'\f065'}.octicon-comment-add:before,.octicon-comment:before{content:'\f02b'}.octicon-comment-discussion:before{content:'\f04f'}.octicon-credit-card:before{content:'\f045'}.octicon-dash:before{content:'\f0ca'}.octicon-dashboard:before{content:'\f07d'}.octicon-database:before{content:'\f096'}.octicon-device-camera:before{content:'\f056'}.octicon-device-camera-video:before{content:'\f057'}.octicon-device-desktop:before{content:'\f27c'}.octicon-device-mobile:before{content:'\f038'}.octicon-diff:before{content:'\f04d'}.octicon-diff-added:before{content:'\f06b'}.octicon-diff-ignored:before{content:'\f099'}.octicon-diff-modified:before{content:'\f06d'}.octicon-diff-removed:before{content:'\f06c'}.octicon-diff-renamed:before{content:'\f06e'}.octicon-ellipsis:before{content:'\f09a'}.octicon-eye-unwatch:before,.octicon-eye-watch:before,.octicon-eye:before{content:'\f04e'}.octicon-file-binary:before{content:'\f094'}.octicon-file-code:before{content:'\f010'}.octicon-file-directory:before{content:'\f016'}.octicon-file-media:before{content:'\f012'}.octicon-file-pdf:before{content:'\f014'}.octicon-file-submodule:before{content:'\f017'}.octicon-file-symlink-directory:before{content:'\f0b1'}.octicon-file-symlink-file:before{content:'\f0b0'}.octicon-file-text:before{content:'\f011'}.octicon-file-zip:before{content:'\f013'}.octicon-flame:before{content:'\f0d2'}.octicon-fold:before{content:'\f0cc'}.octicon-gear:before{content:'\f02f'}.octicon-gift:before{content:'\f042'}.octicon-gist:before{content:'\f00e'}.octicon-gist-secret:before{content:'\f08c'}.octicon-git-branch-create:before,.octicon-git-branch-delete:before,.octicon-git-branch:before{content:'\f020'}.octicon-git-commit:before{content:'\f01f'}.octicon-git-compare:before{content:'\f0ac'}.octicon-git-merge:before{content:'\f023'}.octicon-git-pull-request-abandoned:before,.octicon-git-pull-request:before{content:'\f009'}.octicon-globe:before{content:'\f0b6'}.octicon-graph:before{content:'\f043'}.octicon-heart:before{content:'\2665'}.octicon-history:before{content:'\f07e'}.octicon-home:before{content:'\f08d'}.octicon-horizontal-rule:before{content:'\f070'}.octicon-hourglass:before{content:'\f09e'}.octicon-hubot:before{content:'\f09d'}.octicon-inbox:before{content:'\f0cf'}.octicon-info:before{content:'\f059'}.octicon-issue-closed:before{content:'\f028'}.octicon-issue-opened:before{content:'\f026'}.octicon-issue-reopened:before{content:'\f027'}.octicon-jersey:before{content:'\f019'}.octicon-jump-down:before{content:'\f072'}.octicon-jump-left:before{content:'\f0a5'}.octicon-jump-right:before{content:'\f0a6'}.octicon-jump-up:before{content:'\f073'}.octicon-key:before{content:'\f049'}.octicon-keyboard:before{content:'\f00d'}.octicon-law:before{content:'\f0d8'}.octicon-light-bulb:before{content:'\f000'}.octicoLine truncated @font-face{font-family:octicons;src:url(../fonts/octicons.eot?#iefix&v=345f8bad9c5003db196d08f05e7f030fd2a32ff6) format('embedded-opentype'),url(../fonts/octicons.woff?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6) format('woff'),url(../fonts/octicons.ttf?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6) format('truetype'),url(../fonts/octicons.svg?v=345f8bad9c5003db196d08f05e7f030fd2a32ff6#octicons) format('svg');font-weight:400;font-style:normal}.mega-octicon,.octicon{font:normal normal normal 16px/1 octicons;display:inline-block;text-decoration:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mega-octicon{font-size:32px}.octicon-alert:before{content:'\f02d'}.octicon-alignment-align:before{content:'\f08a'}.octicon-alignment-aligned-to:before{content:'\f08e'}.octicon-alignment-unalign:before{content:'\f08b'}.octicon-arrow-down:before{content:'\f03f'}.octicon-arrow-left:before{content:'\f040'}.octicon-arrow-right:before{content:'\f03e'}.octicon-arrow-small-down:before{content:'\f0a0'}.octicon-arrow-small-left:before{content:'\f0a1'}.octicon-arrow-small-right:before{content:'\f071'}.octicon-arrow-small-up:before{content:'\f09f'}.octicon-arrow-up:before{content:'\f03d'}.octicon-beer:before{content:'\f069'}.octicon-book:before{content:'\f007'}.octicon-bookmark:before{content:'\f07b'}.octicon-briefcase:before{content:'\f0d3'}.octicon-broadcast:before{content:'\f048'}.octicon-browser:before{content:'\f0c5'}.octicon-bug:before{content:'\f091'}.octicon-calendar:before{content:'\f068'}.octicon-check:before{content:'\f03a'}.octicon-checklist:before{content:'\f076'}.octicon-chevron-down:before{content:'\f0a3'}.octicon-chevron-left:before{content:'\f0a4'}.octicon-chevron-right:before{content:'\f078'}.octicon-chevron-up:before{content:'\f0a2'}.octicon-circle-slash:before{content:'\f084'}.octicon-circuit-board:before{content:'\f0d6'}.octicon-clippy:before{content:'\f035'}.octicon-clock:before{content:'\f046'}.octicon-cloud-download:before{content:'\f00b'}.octicon-cloud-upload:before{content:'\f00c'}.octicon-code:before{content:'\f05f'}.octicon-color-mode:before{content:'\f065'}.octicon-comment-add:before,.octicon-comment:before{content:'\f02b'}.octicon-comment-discussion:before{content:'\f04f'}.octicon-credit-card:before{content:'\f045'}.octicon-dash:before{content:'\f0ca'}.octicon-dashboard:before{content:'\f07d'}.octicon-database:before{content:'\f096'}.octicon-device-camera:before{content:'\f056'}.octicon-device-camera-video:before{content:'\f057'}.octicon-device-desktop:before{content:'\f27c'}.octicon-device-mobile:before{content:'\f038'}.octicon-diff:before{content:'\f04d'}.octicon-diff-added:before{content:'\f06b'}.octicon-diff-ignored:before{content:'\f099'}.octicon-diff-modified:before{content:'\f06d'}.octicon-diff-removed:before{content:'\f06c'}.octicon-diff-renamed:before{content:'\f06e'}.octicon-ellipsis:before{content:'\f09a'}.octicon-eye-unwatch:before,.octicon-eye-watch:before,.octicon-eye:before{content:'\f04e'}.octicon-file-binary:before{content:'\f094'}.octicon-file-code:before{content:'\f010'}.octicon-file-directory:before{content:'\f016'}.octicon-file-media:before{content:'\f012'}.octicon-file-pdf:before{content:'\f014'}.octicon-file-submodule:before{content:'\f017'}.octicon-file-symlink-directory:before{content:'\f0b1'}.octicon-file-symlink-file:before{content:'\f0b0'}.octicon-file-text:before{content:'\f011'}.octicon-file-zip:before{content:'\f013'}.octicon-flame:before{content:'\f0d2'}.octicon-fold:before{content:'\f0cc'}.octicon-gear:before{content:'\f02f'}.octicon-gift:before{content:'\f042'}.octicon-gist:before{content:'\f00e'}.octicon-gist-secret:before{content:'\f08c'}.octicon-git-branch-create:before,.octicon-git-branch-delete:before,.octicon-git-branch:before{content:'\f020'}.octicon-git-commit:before{content:'\f01f'}.octicon-git-compare:before{content:'\f0ac'}.octicon-git-merge:before{content:'\f023'}.octicon-git-pull-request-abandoned:before,.octicon-git-pull-request:before{content:'\f009'}.octicon-globe:before{content:'\f0b6'}.octicon-graph:before{content:'\f043'}.octicon-heart:before{content:'\2665'}.octicon-history:before{content:'\f07e'}.octicon-home:before{content:'\f08d'}.octicon-horizontal-rule:before{content:'\f070'}.octicon-hourglass:before{content:'\f09e'}.octicon-hubot:before{content:'\f09d'}.octicon-inbox:before{content:'\f0cf'}.octicon-info:before{content:'\f059'}.octicon-issue-closed:before{content:'\f028'}.octicon-issue-opened:before{content:'\f026'}.octicon-issue-reopened:before{content:'\f027'}.octicon-jersey:before{content:'\f019'}.octicon-jump-down:before{content:'\f072'}.octicon-jump-left:before{content:'\f0a5'}.octicon-jump-right:before{content:'\f0a6'}.octicon-jump-up:before{content:'\f073'}.octicon-key:before{content:'\f049'}.octicon-keyboard:before{content:'\f00d'}.octicon-law:before{content:'\f0d8'}.octicon-light-bulb:before{content:'\f000'}.ocLine truncated
+4
View File
@@ -73,6 +73,10 @@
right: 0!important; right: 0!important;
left: auto!important; left: auto!important;
} }
.dropdown.item {
margin: 1px;
padding-right: 0;
}
} }
.page.buttons { .page.buttons {
+8 -4
View File
@@ -59,6 +59,7 @@ func Issues(ctx *middleware.Context) {
ctx.Data["PageIsIssueList"] = true ctx.Data["PageIsIssueList"] = true
viewType := ctx.Query("type") viewType := ctx.Query("type")
sortType := ctx.Query("sort")
types := []string{"assigned", "created_by", "mentioned"} types := []string{"assigned", "created_by", "mentioned"}
if !com.IsSliceContainsStr(types, viewType) { if !com.IsSliceContainsStr(types, viewType) {
viewType = "all" viewType = "all"
@@ -71,7 +72,10 @@ func Issues(ctx *middleware.Context) {
return return
} }
var assigneeID, posterID int64 var (
assigneeID = ctx.QueryInt64("assignee")
posterID int64
)
filterMode := models.FM_ALL filterMode := models.FM_ALL
switch viewType { switch viewType {
case "assigned": case "assigned":
@@ -92,9 +96,8 @@ func Issues(ctx *middleware.Context) {
repo := ctx.Repo.Repository repo := ctx.Repo.Repository
selectLabels := ctx.Query("labels") selectLabels := ctx.Query("labels")
milestoneID := ctx.QueryInt64("milestone") milestoneID := ctx.QueryInt64("milestone")
assigneeID = ctx.QueryInt64("assignee")
isShowClosed := ctx.Query("state") == "closed" isShowClosed := ctx.Query("state") == "closed"
issueStats := models.GetIssueStats(repo.ID, uid, com.StrTo(selectLabels).MustInt64(), milestoneID, isShowClosed, filterMode) issueStats := models.GetIssueStats(repo.ID, uid, com.StrTo(selectLabels).MustInt64(), milestoneID, assigneeID, isShowClosed, filterMode)
page := ctx.QueryInt("page") page := ctx.QueryInt("page")
if page <= 1 { if page <= 1 {
@@ -111,7 +114,7 @@ func Issues(ctx *middleware.Context) {
// Get issues. // Get issues.
issues, err := models.Issues(uid, assigneeID, repo.ID, posterID, milestoneID, issues, err := models.Issues(uid, assigneeID, repo.ID, posterID, milestoneID,
page, isShowClosed, filterMode == models.FM_MENTION, selectLabels, ctx.Query("sortType")) page, isShowClosed, filterMode == models.FM_MENTION, selectLabels, sortType)
if err != nil { if err != nil {
ctx.Handle(500, "Issues: %v", err) ctx.Handle(500, "Issues: %v", err)
return return
@@ -168,6 +171,7 @@ func Issues(ctx *middleware.Context) {
ctx.Data["IssueStats"] = issueStats ctx.Data["IssueStats"] = issueStats
ctx.Data["SelectLabels"] = com.StrTo(selectLabels).MustInt64() ctx.Data["SelectLabels"] = com.StrTo(selectLabels).MustInt64()
ctx.Data["ViewType"] = viewType ctx.Data["ViewType"] = viewType
ctx.Data["SortType"] = sortType
ctx.Data["MilestoneID"] = milestoneID ctx.Data["MilestoneID"] = milestoneID
ctx.Data["AssigneeID"] = assigneeID ctx.Data["AssigneeID"] = assigneeID
ctx.Data["IsShowClosed"] = isShowClosed ctx.Data["IsShowClosed"] = isShowClosed
+32 -12
View File
@@ -10,11 +10,11 @@
</div> </div>
<div class="ui divider"></div> <div class="ui divider"></div>
<div class="ui tiny buttons"> <div class="ui tiny buttons">
<a class="ui green basic button {{if not .IsShowClosed}}active{{end}}" href="{{.RepoLink}}/issues?type={{$.ViewType}}&state=open&labels={{.SelectLabels}}&milestone={{.MilestoneID}}&assignee={{.AssigneeID}}"> <a class="ui green basic button {{if not .IsShowClosed}}active{{end}}" href="{{.RepoLink}}/issues?type={{$.ViewType}}&sort={{$.SortType}}&state=open&labels={{.SelectLabels}}&milestone={{.MilestoneID}}&assignee={{.AssigneeID}}">
<i class="octicon octicon-issue-opened"></i> <i class="octicon octicon-issue-opened"></i>
{{.i18n.Tr "repo.issues.open_tab" .IssueStats.OpenCount}} {{.i18n.Tr "repo.issues.open_tab" .IssueStats.OpenCount}}
</a> </a>
<a class="ui red basic button {{if .IsShowClosed}}active{{end}}" href="{{.RepoLink}}/issues?type={{.ViewType}}&state=closed&labels={{.SelectLabels}}&milestone={{.MilestoneID}}&assignee={{.AssigneeID}}"> <a class="ui red basic button {{if .IsShowClosed}}active{{end}}" href="{{.RepoLink}}/issues?type={{.ViewType}}&sort={{$.SortType}}&state=closed&labels={{.SelectLabels}}&milestone={{.MilestoneID}}&assignee={{.AssigneeID}}">
<i class="octicon octicon-issue-closed"></i> <i class="octicon octicon-issue-closed"></i>
{{.i18n.Tr "repo.issues.close_tab" .IssueStats.ClosedCount}} {{.i18n.Tr "repo.issues.close_tab" .IssueStats.ClosedCount}}
</a> </a>
@@ -27,9 +27,9 @@
<i class="dropdown icon"></i> <i class="dropdown icon"></i>
</span> </span>
<div class="menu"> <div class="menu">
<a class="item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&state={{$.State}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_label_no_select"}}</a> <a class="item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_label_no_select"}}</a>
{{range .Labels}} {{range .Labels}}
<a class="item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&state={{$.State}}&labels={{.ID}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}"><span class="octicon {{if eq $.SelectLabels .ID}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}</a> <a class="item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.ID}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}"><span class="octicon {{if eq $.SelectLabels .ID}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}</a>
{{end}} {{end}}
</div> </div>
</div> </div>
@@ -41,34 +41,54 @@
<i class="dropdown icon"></i> <i class="dropdown icon"></i>
</span> </span>
<div class="menu"> <div class="menu">
<a class="item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&state={{$.State}}&labels={{.SelectLabels}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_milestone_no_select"}}</a> <a class="item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.SelectLabels}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_milestone_no_select"}}</a>
{{range .Milestones}} {{range .Milestones}}
<a class="{{if eq $.MilestoneID .ID}}active selected{{end}} item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{.ID}}&assignee={{$.AssigneeID}}">{{.Name}}</a> <a class="{{if eq $.MilestoneID .ID}}active selected{{end}} item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{.ID}}&assignee={{$.AssigneeID}}">{{.Name}}</a>
{{end}} {{end}}
</div> </div>
</div> </div>
<!-- Assignee -->
<div class="ui {{if not .Assignees}}disabled{{end}} dropdown jump item"> <div class="ui {{if not .Assignees}}disabled{{end}} dropdown jump item">
<span class="text"> <span class="text">
{{.i18n.Tr "repo.issues.filter_assignee"}} {{.i18n.Tr "repo.issues.filter_assignee"}}
<i class="dropdown icon"></i> <i class="dropdown icon"></i>
</span> </span>
<div class="menu"> <div class="menu">
<a class="item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&state={{$.State}}&labels={{.SelectLabels}}&milestone={{$.MilestoneID}}">{{.i18n.Tr "repo.issues.filter_assginee_no_select"}}</a> <a class="item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.SelectLabels}}&milestone={{$.MilestoneID}}">{{.i18n.Tr "repo.issues.filter_assginee_no_select"}}</a>
{{range .Assignees}} {{range .Assignees}}
<a class="{{if eq $.AssigneeID .Id}}active selected{{end}} item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{$.MilestoneID}}&assignee={{.Id}}"><img src="{{.AvatarLink}}"> {{.Name}}</a> <a class="{{if eq $.AssigneeID .Id}}active selected{{end}} item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{$.MilestoneID}}&assignee={{.Id}}"><img src="{{.AvatarLink}}"> {{.Name}}</a>
{{end}} {{end}}
</div> </div>
</div> </div>
<!-- Type -->
<div class="ui dropdown type jump item"> <div class="ui dropdown type jump item">
<span class="text"> <span class="text">
{{.i18n.Tr "repo.issues.filter_type"}} {{.i18n.Tr "repo.issues.filter_type"}}
<i class="dropdown icon"></i> <i class="dropdown icon"></i>
</span> </span>
<div class="menu"> <div class="menu">
<a class="{{if eq .ViewType "all"}}active{{end}} item" href="{{$.RepoLink}}/issues?type=all&state={{$.State}}&labels={{.SelectLabels}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_type.all_issues"}}</a> <a class="{{if eq .ViewType "all"}}active{{end}} item" href="{{$.RepoLink}}/issues?type=all&sort={{$.SortType}}&state={{$.State}}&labels={{.SelectLabels}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_type.all_issues"}}</a>
<a class="{{if eq .ViewType "assigned"}}active{{end}} item" href="{{$.RepoLink}}/issues?type=assigned&state={{$.State}}&labels={{.SelectLabels}}&milestone={{$.MilestoneID}}">{{.i18n.Tr "repo.issues.filter_type.assigned_to_you"}}</a> <a class="{{if eq .ViewType "assigned"}}active{{end}} item" href="{{$.RepoLink}}/issues?type=assigned&sort={{$.SortType}}&state={{$.State}}&labels={{.SelectLabels}}&milestone={{$.MilestoneID}}">{{.i18n.Tr "repo.issues.filter_type.assigned_to_you"}}</a>
<a class="{{if eq .ViewType "created_by"}}active{{end}} item" href="{{$.RepoLink}}/issues?type=created_by&state={{$.State}}&labels={{.SelectLabels}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_type.created_by_you"}}</a> <a class="{{if eq .ViewType "created_by"}}active{{end}} item" href="{{$.RepoLink}}/issues?type=created_by&sort={{$.SortType}}&state={{$.State}}&labels={{.SelectLabels}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_type.created_by_you"}}</a>
<a class="{{if eq .ViewType "mentioned"}}active{{end}} item" href="{{$.RepoLink}}/issues?type=mentioned&state={{$.State}}&labels={{.SelectLabels}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_type.mentioning_you"}}</a> <a class="{{if eq .ViewType "mentioned"}}active{{end}} item" href="{{$.RepoLink}}/issues?type=mentioned&sort={{$.SortType}}&state={{$.State}}&labels={{.SelectLabels}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_type.mentioning_you"}}</a>
</div>
</div>
<!-- Sort -->
<div class="ui dropdown type jump item">
<span class="text">
{{.i18n.Tr "repo.issues.filter_sort"}}
<i class="dropdown icon"></i>
</span>
<div class="menu">
<a class="{{if or (eq .SortType "latest") (not .SortType)}}active{{end}} item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&sort=latest&state={{$.State}}&labels={{.SelectLabels}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_sort.latest"}}</a>
<a class="{{if eq .SortType "oldest"}}active{{end}} item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&sort=oldest&state={{$.State}}&labels={{.SelectLabels}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_sort.oldest"}}</a>
<a class="{{if eq .SortType "recentupdate"}}active{{end}} item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&sort=recentupdate&state={{$.State}}&labels={{.SelectLabels}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_sort.recentupdate"}}</a>
<a class="{{if eq .SortType "leastupdate"}}active{{end}} item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&sort=leastupdate&state={{$.State}}&labels={{.SelectLabels}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_sort.leastupdate"}}</a>
<a class="{{if eq .SortType "mostcomment"}}active{{end}} item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&sort=mostcomment&state={{$.State}}&labels={{.SelectLabels}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_sort.mostcomment"}}</a>
<a class="{{if eq .SortType "leastcomment"}}active{{end}} item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&sort=leastcomment&state={{$.State}}&labels={{.SelectLabels}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_sort.leastcomment"}}</a>
</div> </div>
</div> </div>
</div> </div>