Filter issues by assignee

This commit is contained in:
Unknwon committed 2015-08-15 11:24:41 +08:00
1 parent a24141ec9c
commit 4ce003dc15
7 files changed
+38 -28

No files matched your search

+1
View File
@@ -394,6 +394,7 @@ issues.filter_label_no_select = No selected label
issues.filter_milestone = Milestone issues.filter_milestone = Milestone
issues.filter_milestone_no_select = No selected milestone issues.filter_milestone_no_select = No selected milestone
issues.filter_assignee = Assignee issues.filter_assignee = Assignee
issues.filter_assginee_no_select = No selected Assignee
issues.filter_type = Type issues.filter_type = Type
issues.filter_type.all_issues = All issues 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
+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\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
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: 37880, mode: os.FileMode(420), modTime: time.Unix(1439578402, 0)} info := bindataFileInfo{name: "conf/locale/locale_en-US.ini", size: 37936, mode: os.FileMode(420), modTime: time.Unix(1439608196, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
-3
View File
@@ -72,9 +72,6 @@
overflow-x: auto; overflow-x: auto;
right: 0!important; right: 0!important;
left: auto!important; left: auto!important;
.clickable .name {
padding-left: 15px!important;
}
} }
} }
+10 -2
View File
@@ -92,6 +92,7 @@ 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, isShowClosed, filterMode)
@@ -151,17 +152,24 @@ func Issues(ctx *middleware.Context) {
ctx.Data["Issues"] = issues ctx.Data["Issues"] = issues
// Get milestones. // Get milestones.
miles, err := models.GetAllRepoMilestones(repo.ID) ctx.Data["Milestones"], err = models.GetAllRepoMilestones(repo.ID)
if err != nil { if err != nil {
ctx.Handle(500, "GetAllRepoMilestones: %v", err) ctx.Handle(500, "GetAllRepoMilestones: %v", err)
return return
} }
ctx.Data["Milestones"] = miles
// Get assignees.
ctx.Data["Assignees"], err = repo.GetAssignees()
if err != nil {
ctx.Handle(500, "GetAssignees: %v", err)
return
}
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["MilestoneID"] = milestoneID ctx.Data["MilestoneID"] = milestoneID
ctx.Data["AssigneeID"] = assigneeID
ctx.Data["IsShowClosed"] = isShowClosed ctx.Data["IsShowClosed"] = isShowClosed
if isShowClosed { if isShowClosed {
ctx.Data["State"] = "closed" ctx.Data["State"] = "closed"
+21 -17
View File
@@ -10,61 +10,65 @@
</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}}"> <a class="ui green basic button {{if not .IsShowClosed}}active{{end}}" href="{{.RepoLink}}/issues?type={{$.ViewType}}&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}}"> <a class="ui red basic button {{if .IsShowClosed}}active{{end}}" href="{{.RepoLink}}/issues?type={{.ViewType}}&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>
</div> </div>
<div class="ui right floated secondary filter menu"> <div class="ui right floated secondary filter menu">
<!-- Label -->
<div class="ui {{if not .Labels}}disabled{{end}} dropdown jump item"> <div class="ui {{if not .Labels}}disabled{{end}} dropdown jump item">
<span class="text"> <span class="text">
{{.i18n.Tr "repo.issues.filter_label"}} {{.i18n.Tr "repo.issues.filter_label"}}
<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}}">{{.i18n.Tr "repo.issues.filter_label_no_select"}}</a> <a class="item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&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}}"><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}}&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>
<!-- Milestone -->
<div class="ui {{if not .Milestones}}disabled{{end}} dropdown jump item"> <div class="ui {{if not .Milestones}}disabled{{end}} dropdown jump item">
<span class="text"> <span class="text">
{{.i18n.Tr "repo.issues.filter_milestone"}} {{.i18n.Tr "repo.issues.filter_milestone"}}
<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}}">{{.i18n.Tr "repo.issues.filter_milestone_no_select"}}</a> <a class="item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&state={{$.State}}&labels={{.SelectLabels}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_milestone_no_select"}}</a>
{{range .Milestones}} {{range .Milestones}}
<a class="clickable item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{.ID}}"><span class="octicon {{if eq $.MilestoneID .ID}}octicon-check{{end}}"></span> <span class="name">{{.Name}}</span></a> <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>
{{end}} {{end}}
</div> </div>
</div> </div>
<!-- <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>
{{range .Assignees}} {{range .Assignees}}
<a class="item" href="{{$.RepoLink}}/issues">{{.Name}}</a> <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>
{{end}} {{end}}
</div> </div>
</div> --> </div>
<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}}">{{.i18n.Tr "repo.issues.filter_type.all_issues"}}</a> <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 "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&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}}">{{.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&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}}">{{.i18n.Tr "repo.issues.filter_type.mentioning_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>
</div> </div>
</div> </div>
</div> </div>
@@ -77,7 +81,7 @@
<a class="title" href="{{$.RepoLink}}/issues/{{.Index}}">{{.Name}}</a> <a class="title" href="{{$.RepoLink}}/issues/{{.Index}}">{{.Name}}</a>
{{range .Labels}} {{range .Labels}}
<a class="ui label" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&state={{$.State}}&labels={{.ID}}&milestone={{$.MilestoneID}}" style="background-color: {{.Color}}">{{.Name}}</a> <a class="ui label" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&state={{$.State}}&labels={{.ID}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}" style="background-color: {{.Color}}">{{.Name}}</a>
{{end}} {{end}}
{{if .NumComments}} {{if .NumComments}}
@@ -87,7 +91,7 @@
<p class="desc"> <p class="desc">
{{$.i18n.Tr "repo.issues.opened_by" $timeStr .Poster.Name | Safe}} {{$.i18n.Tr "repo.issues.opened_by" $timeStr .Poster.Name | Safe}}
{{if .Milestone}} {{if .Milestone}}
<a class="milestone" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{.Milestone.ID}}"> <a class="milestone" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{.Milestone.ID}}&assignee={{$.AssigneeID}}">
<span class="octicon octicon-milestone"></span> {{.Milestone.Name}} <span class="octicon octicon-milestone"></span> {{.Milestone.Name}}
</a> </a>
{{end}} {{end}}
@@ -104,17 +108,17 @@
{{if gt .TotalPages 1}} {{if gt .TotalPages 1}}
<div class="center page buttons"> <div class="center page buttons">
<div class="ui borderless pagination menu"> <div class="ui borderless pagination menu">
<a class="{{if not .HasPrevious}}disabled{{end}} item" {{if .HasPrevious}}href="{{$.Link}}?type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{$.MilestoneID}}&page={{.Previous}}"{{end}}> <a class="{{if not .HasPrevious}}disabled{{end}} item" {{if .HasPrevious}}href="{{$.Link}}?type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}&page={{.Previous}}"{{end}}>
<i class="left arrow icon"></i> {{$.i18n.Tr "repo.issues.previous"}} <i class="left arrow icon"></i> {{$.i18n.Tr "repo.issues.previous"}}
</a> </a>
{{range .Pages}} {{range .Pages}}
{{if eq .Num -1}} {{if eq .Num -1}}
<a class="disabled item">...</a> <a class="disabled item">...</a>
{{else}} {{else}}
<a class="{{if .IsCurrent}}active{{end}} item" {{if not .IsCurrent}}href="{{$.Link}}?type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{$.MilestoneID}}&page={{.Num}}"{{end}}>{{.Num}}</a> <a class="{{if .IsCurrent}}active{{end}} item" {{if not .IsCurrent}}href="{{$.Link}}?type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}&page={{.Num}}"{{end}}>{{.Num}}</a>
{{end}} {{end}}
{{end}} {{end}}
<a class="{{if not .HasNext}}disabled{{end}} item" {{if .HasNext}}href="{{$.Link}}?type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{$.MilestoneID}}&page={{.Next}}"{{end}}> <a class="{{if not .HasNext}}disabled{{end}} item" {{if .HasNext}}href="{{$.Link}}?type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}&page={{.Next}}"{{end}}>
{{$.i18n.Tr "repo.issues.next"}} <i class="icon right arrow"></i> {{$.i18n.Tr "repo.issues.next"}} <i class="icon right arrow"></i>
</a> </a>
</div> </div>
+2 -2
View File
@@ -100,7 +100,7 @@
<div class="menu"> <div class="menu">
<div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_assignee"}}</div> <div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_assignee"}}</div>
{{range .Assignees}} {{range .Assignees}}
<div class="item" data-id="{{.Id}}" data-href="{{.HomeLink}}" data-avatar="{{.AvatarLink}}"><img src="{{.AvatarLink}}"> {{.Name}}</div> <div class="item" data-id="{{.Id}}" data-href="{{$.RepoLink}}/issues?assignee={{.Id}}" data-avatar="{{.AvatarLink}}"><img src="{{.AvatarLink}}"> {{.Name}}</div>
{{end}} {{end}}
</div> </div>
</div> </div>
@@ -108,7 +108,7 @@
<span class="no-select item {{if .Assignee}}hide{{end}}">{{.i18n.Tr "repo.issues.new.no_assignee"}}</span> <span class="no-select item {{if .Assignee}}hide{{end}}">{{.i18n.Tr "repo.issues.new.no_assignee"}}</span>
<div class="selected"> <div class="selected">
{{if .Assignee}} {{if .Assignee}}
<a class="item" href="{{.Assignee.HomeLink}}"><img class="ui avatar image" src="{{.Assignee.AvatarLink}}"> {{.Assignee.Name}}</a> <a class="item" href="{{.RepoLink}}/issues?assignee={{.Assignee.Id}}"><img class="ui avatar image" src="{{.Assignee.AvatarLink}}"> {{.Assignee.Name}}</a>
{{end}} {{end}}
</div> </div>
</div> </div>
+2 -2
View File
@@ -228,7 +228,7 @@
<div class="menu" data-action="update" data-update-url="{{$.RepoLink}}/issues/{{$.Issue.Index}}/assignee"> <div class="menu" data-action="update" data-update-url="{{$.RepoLink}}/issues/{{$.Issue.Index}}/assignee">
<div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_assignee"}}</div> <div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_assignee"}}</div>
{{range .Assignees}} {{range .Assignees}}
<div class="item" data-id="{{.Id}}" data-href="{{.HomeLink}}" data-avatar="{{.AvatarLink}}"><img src="{{.AvatarLink}}"> {{.Name}}</div> <div class="item" data-id="{{.Id}}" data-href="{{$.RepoLink}}/issues?assignee={{.Id}}" data-avatar="{{.AvatarLink}}"><img src="{{.AvatarLink}}"> {{.Name}}</div>
{{end}} {{end}}
</div> </div>
</div> </div>
@@ -236,7 +236,7 @@
<span class="no-select item {{if .Issue.Assignee}}hide{{end}}">{{.i18n.Tr "repo.issues.new.no_assignee"}}</span> <span class="no-select item {{if .Issue.Assignee}}hide{{end}}">{{.i18n.Tr "repo.issues.new.no_assignee"}}</span>
<div class="selected"> <div class="selected">
{{if .Issue.Assignee}} {{if .Issue.Assignee}}
<a class="item" href="{{.Issue.Assignee.HomeLink}}"><img class="ui avatar image" src="{{.Issue.Assignee.AvatarLink}}"> {{.Issue.Assignee.Name}}</a> <a class="item" href="{{$.RepoLink}}/issues?assignee={{.Issue.Assignee.Id}}"><img class="ui avatar image" src="{{.Issue.Assignee.AvatarLink}}"> {{.Issue.Assignee.Name}}</a>
{{end}} {{end}}
</div> </div>
</div> </div>