Browse Source

UI: basic label list

- create new label
Unknwon 9 years ago
parent
commit
ac95f6d50f

+ 0 - 1
.gitignore

@@ -29,7 +29,6 @@ profile/
 __pycache__
 __pycache__
 *.pem
 *.pem
 output*
 output*
-config.codekit
 .brackets.json
 .brackets.json
 docker/fig.yml
 docker/fig.yml
 docker/docker/Dockerfile
 docker/docker/Dockerfile

+ 3 - 4
cmd/web.go

@@ -80,7 +80,7 @@ func checkVersion() {
 	// Check dependency version.
 	// Check dependency version.
 	checkers := []VerChecker{
 	checkers := []VerChecker{
 		{"github.com/Unknwon/macaron", macaron.Version, "0.5.4"},
 		{"github.com/Unknwon/macaron", macaron.Version, "0.5.4"},
-		{"github.com/macaron-contrib/binding", binding.Version, "0.0.6"},
+		{"github.com/macaron-contrib/binding", binding.Version, "0.1.0"},
 		{"github.com/macaron-contrib/cache", cache.Version, "0.0.7"},
 		{"github.com/macaron-contrib/cache", cache.Version, "0.0.7"},
 		{"github.com/macaron-contrib/csrf", csrf.Version, "0.0.3"},
 		{"github.com/macaron-contrib/csrf", csrf.Version, "0.0.3"},
 		{"github.com/macaron-contrib/i18n", i18n.Version, "0.0.7"},
 		{"github.com/macaron-contrib/i18n", i18n.Version, "0.0.7"},
@@ -442,15 +442,14 @@ func runWeb(ctx *cli.Context) {
 
 
 	m.Group("/:username/:reponame", func() {
 	m.Group("/:username/:reponame", func() {
 		m.Get("/releases", middleware.RepoRef(), repo.Releases)
 		m.Get("/releases", middleware.RepoRef(), repo.Releases)
-		m.Get("/issues", repo.Issues)
+		m.Get("/issues", repo.RetrieveLabels, repo.Issues)
 		m.Get("/issues/:index", repo.ViewIssue)
 		m.Get("/issues/:index", repo.ViewIssue)
+		m.Get("/labels/", repo.RetrieveLabels, repo.Labels)
 		m.Get("/milestones", repo.Milestones)
 		m.Get("/milestones", repo.Milestones)
 		m.Get("/pulls", repo.Pulls)
 		m.Get("/pulls", repo.Pulls)
 		m.Get("/branches", repo.Branches)
 		m.Get("/branches", repo.Branches)
 		m.Get("/archive/*", repo.Download)
 		m.Get("/archive/*", repo.Download)
-		m.Get("/issues2/", repo.Issues2)
 		m.Get("/pulls2/", repo.PullRequest2)
 		m.Get("/pulls2/", repo.PullRequest2)
-		m.Get("/labels2/", repo.Labels2)
 		m.Get("/milestone2/", repo.Milestones2)
 		m.Get("/milestone2/", repo.Milestones2)
 
 
 		m.Group("", func() {
 		m.Group("", func() {

+ 9 - 0
conf/locale/locale_en-US.ini

@@ -159,6 +159,7 @@ AdminEmail = Admin E-mail
 require_error = ` cannot be empty.`
 require_error = ` cannot be empty.`
 alpha_dash_error = ` must be valid alpha or numeric or dash(-_) characters.`
 alpha_dash_error = ` must be valid alpha or numeric or dash(-_) characters.`
 alpha_dash_dot_error = ` must be valid alpha or numeric or dash(-_) or dot characters.`
 alpha_dash_dot_error = ` must be valid alpha or numeric or dash(-_) or dot characters.`
+size_error  = ` must be size %s.`
 min_size_error = ` must contain at least %s characters.`
 min_size_error = ` must contain at least %s characters.`
 max_size_error = ` must contain at most %s characters.`
 max_size_error = ` must contain at most %s characters.`
 email_error = ` is not a valid e-mail address.`
 email_error = ` is not a valid e-mail address.`
@@ -358,6 +359,8 @@ commits.older = Older
 commits.newer = Newer
 commits.newer = Newer
 
 
 issues.new = New Issue
 issues.new = New Issue
+issues.new_label = New Label
+issues.new_label_placeholder = Label name...
 issues.open_tab = %d Open
 issues.open_tab = %d Open
 issues.close_tab = %d Closed
 issues.close_tab = %d Closed
 issues.filter_label = Label
 issues.filter_label = Label
@@ -369,6 +372,12 @@ 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.opened_by = opened %s by <a href="/%[2]s">%[2]s</a>
 issues.opened_by = opened %s by <a href="/%[2]s">%[2]s</a>
+issues.label_title = Label name
+issues.label_color = Label color
+issues.label_count = %d labels
+issues.label_open_issues = %d open issues
+issues.label_edit = Edit
+issues.label_delete = Delete
 issues.previous = Previous Page
 issues.previous = Previous Page
 issues.next = Next Page
 issues.next = Next Page
 
 

+ 1989 - 0
config.codekit

@@ -0,0 +1,1989 @@
+{
+"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",
+"files": {
+	"\/CONTRIBUTING.md": {
+		"criticStyle": 0,
+		"enableFootnotes": 0,
+		"enableLabels": 1,
+		"enableSmartQuotes": 1,
+		"escapeLineBreaks": 0,
+		"fileType": 4096,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/CONTRIBUTING.md",
+		"maskEmailAddresses": 1,
+		"outputAbbreviatedPath": "\/CONTRIBUTING.html",
+		"outputFormat": 0,
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"parseMetadata": 1,
+		"processHTML": 0,
+		"randomFootnoteNumbers": 0,
+		"useCompatibilityMode": 0
+		},
+	"\/docker\/README.md": {
+		"criticStyle": 0,
+		"enableFootnotes": 0,
+		"enableLabels": 1,
+		"enableSmartQuotes": 1,
+		"escapeLineBreaks": 0,
+		"fileType": 4096,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/docker\/README.md",
+		"maskEmailAddresses": 1,
+		"outputAbbreviatedPath": "\/docker\/README.html",
+		"outputFormat": 0,
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"parseMetadata": 1,
+		"processHTML": 0,
+		"randomFootnoteNumbers": 0,
+		"useCompatibilityMode": 0
+		},
+	"\/modules\/auth\/ldap\/README.md": {
+		"criticStyle": 0,
+		"enableFootnotes": 0,
+		"enableLabels": 1,
+		"enableSmartQuotes": 1,
+		"escapeLineBreaks": 0,
+		"fileType": 4096,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/modules\/auth\/ldap\/README.md",
+		"maskEmailAddresses": 1,
+		"outputAbbreviatedPath": "\/modules\/auth\/ldap\/README.html",
+		"outputFormat": 0,
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"parseMetadata": 1,
+		"processHTML": 0,
+		"randomFootnoteNumbers": 0,
+		"useCompatibilityMode": 0
+		},
+	"\/modules\/uuid\/README.md": {
+		"criticStyle": 0,
+		"enableFootnotes": 0,
+		"enableLabels": 1,
+		"enableSmartQuotes": 1,
+		"escapeLineBreaks": 0,
+		"fileType": 4096,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/modules\/uuid\/README.md",
+		"maskEmailAddresses": 1,
+		"outputAbbreviatedPath": "\/modules\/uuid\/README.html",
+		"outputFormat": 0,
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"parseMetadata": 1,
+		"processHTML": 0,
+		"randomFootnoteNumbers": 0,
+		"useCompatibilityMode": 0
+		},
+	"\/public\/css\/bootstrap-colorpicker.min.css": {
+		"fileType": 16,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/css\/bootstrap-colorpicker.min.css",
+		"outputAbbreviatedPath": "No Output Path",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0
+		},
+	"\/public\/css\/bootstrap.min.css": {
+		"fileType": 16,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/css\/bootstrap.min.css",
+		"outputAbbreviatedPath": "No Output Path",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0
+		},
+	"\/public\/css\/datepicker3.css": {
+		"fileType": 16,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/css\/datepicker3.css",
+		"outputAbbreviatedPath": "No Output Path",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0
+		},
+	"\/public\/css\/font-awesome.min.css": {
+		"fileType": 16,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/css\/font-awesome.min.css",
+		"outputAbbreviatedPath": "No Output Path",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0
+		},
+	"\/public\/css\/github.min.css": {
+		"fileType": 16,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/css\/github.min.css",
+		"outputAbbreviatedPath": "No Output Path",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0
+		},
+	"\/public\/css\/gogs.css": {
+		"fileType": 16,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/css\/gogs.css",
+		"outputAbbreviatedPath": "No Output Path",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0
+		},
+	"\/public\/css\/gogs.min.css": {
+		"fileType": 16,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/css\/gogs.min.css",
+		"outputAbbreviatedPath": "No Output Path",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0
+		},
+	"\/public\/css\/jquery.minicolors.css": {
+		"fileType": 16,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/css\/jquery.minicolors.css",
+		"outputAbbreviatedPath": "No Output Path",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0
+		},
+	"\/public\/css\/markdown.css": {
+		"fileType": 16,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/css\/markdown.css",
+		"outputAbbreviatedPath": "No Output Path",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0
+		},
+	"\/public\/css\/semantic.min.css": {
+		"fileType": 16,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/css\/semantic.min.css",
+		"outputAbbreviatedPath": "No Output Path",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0
+		},
+	"\/public\/css\/themes\/default\/assets\/images\/flags.png": {
+		"fileType": 32768,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"initialSize": 28123,
+		"inputAbbreviatedPath": "\/public\/css\/themes\/default\/assets\/images\/flags.png",
+		"outputAbbreviatedPath": "\/public\/css\/themes\/default\/assets\/images\/flags.png",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"processed": 0
+		},
+	"\/public\/css\/todc-bootstrap.min.css": {
+		"fileType": 16,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/css\/todc-bootstrap.min.css",
+		"outputAbbreviatedPath": "No Output Path",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0
+		},
+	"\/public\/img\/404.png": {
+		"fileType": 32768,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"initialSize": 9776,
+		"inputAbbreviatedPath": "\/public\/img\/404.png",
+		"outputAbbreviatedPath": "\/public\/img\/404.png",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"processed": 1
+		},
+	"\/public\/img\/500.png": {
+		"fileType": 32768,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"initialSize": 12087,
+		"inputAbbreviatedPath": "\/public\/img\/500.png",
+		"outputAbbreviatedPath": "\/public\/img\/500.png",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"processed": 1
+		},
+	"\/public\/img\/avatar_default.jpg": {
+		"fileType": 16384,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"initialSize": 6951,
+		"inputAbbreviatedPath": "\/public\/img\/avatar_default.jpg",
+		"outputAbbreviatedPath": "\/public\/img\/avatar_default.jpg",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"processed": 1
+		},
+	"\/public\/img\/bootstrap-colorpicker\/alpha-horizontal.png": {
+		"fileType": 32768,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"initialSize": 3635,
+		"inputAbbreviatedPath": "\/public\/img\/bootstrap-colorpicker\/alpha-horizontal.png",
+		"outputAbbreviatedPath": "\/public\/img\/bootstrap-colorpicker\/alpha-horizontal.png",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"processed": 0
+		},
+	"\/public\/img\/bootstrap-colorpicker\/alpha.png": {
+		"fileType": 32768,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"initialSize": 3271,
+		"inputAbbreviatedPath": "\/public\/img\/bootstrap-colorpicker\/alpha.png",
+		"outputAbbreviatedPath": "\/public\/img\/bootstrap-colorpicker\/alpha.png",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"processed": 0
+		},
+	"\/public\/img\/bootstrap-colorpicker\/hue-horizontal.png": {
+		"fileType": 32768,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"initialSize": 2837,
+		"inputAbbreviatedPath": "\/public\/img\/bootstrap-colorpicker\/hue-horizontal.png",
+		"outputAbbreviatedPath": "\/public\/img\/bootstrap-colorpicker\/hue-horizontal.png",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"processed": 0
+		},
+	"\/public\/img\/bootstrap-colorpicker\/hue.png": {
+		"fileType": 32768,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"initialSize": 2972,
+		"inputAbbreviatedPath": "\/public\/img\/bootstrap-colorpicker\/hue.png",
+		"outputAbbreviatedPath": "\/public\/img\/bootstrap-colorpicker\/hue.png",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"processed": 0
+		},
+	"\/public\/img\/bootstrap-colorpicker\/saturation.png": {
+		"fileType": 32768,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"initialSize": 8817,
+		"inputAbbreviatedPath": "\/public\/img\/bootstrap-colorpicker\/saturation.png",
+		"outputAbbreviatedPath": "\/public\/img\/bootstrap-colorpicker\/saturation.png",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"processed": 0
+		},
+	"\/public\/img\/checkmark.png": {
+		"fileType": 32768,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"initialSize": 169,
+		"inputAbbreviatedPath": "\/public\/img\/checkmark.png",
+		"outputAbbreviatedPath": "\/public\/img\/checkmark.png",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"processed": 1
+		},
+	"\/public\/img\/favicon.png": {
+		"fileType": 32768,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"initialSize": 10889,
+		"inputAbbreviatedPath": "\/public\/img\/favicon.png",
+		"outputAbbreviatedPath": "\/public\/img\/favicon.png",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"processed": 1
+		},
+	"\/public\/img\/gogs-lg.png": {
+		"fileType": 32768,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"initialSize": 97926,
+		"inputAbbreviatedPath": "\/public\/img\/gogs-lg.png",
+		"outputAbbreviatedPath": "\/public\/img\/gogs-lg.png",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"processed": 1
+		},
+	"\/public\/less\/_base.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/less\/_base.less",
+		"outputAbbreviatedPath": "\/public\/css\/_base.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/less\/_form.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/less\/_form.less",
+		"outputAbbreviatedPath": "\/public\/css\/_form.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/less\/_home.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/less\/_home.less",
+		"outputAbbreviatedPath": "\/public\/css\/_home.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/less\/_install.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/less\/_install.less",
+		"outputAbbreviatedPath": "\/public\/css\/_install.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/less\/_octicons.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/less\/_octicons.less",
+		"outputAbbreviatedPath": "\/public\/css\/_octicons.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/less\/_repository.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/less\/_repository.less",
+		"outputAbbreviatedPath": "\/public\/css\/_repository.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/less\/gogs.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/less\/gogs.less",
+		"outputAbbreviatedPath": "\/public\/css\/gogs.min.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 1,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/css\/gogs.css": {
+		"fileType": 16,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/css\/gogs.css",
+		"outputAbbreviatedPath": "No Output Path",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0
+		},
+	"\/public\/ng\/css\/magnific-popup.css": {
+		"fileType": 16,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/css\/magnific-popup.css",
+		"outputAbbreviatedPath": "No Output Path",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0
+		},
+	"\/public\/ng\/css\/tipsy.css": {
+		"fileType": 16,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/css\/tipsy.css",
+		"outputAbbreviatedPath": "No Output Path",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0
+		},
+	"\/public\/ng\/css\/ui.css": {
+		"fileType": 16,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/css\/ui.css",
+		"outputAbbreviatedPath": "No Output Path",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0
+		},
+	"\/public\/ng\/fonts\/octicons.css": {
+		"fileType": 16,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/fonts\/octicons.css",
+		"outputAbbreviatedPath": "No Output Path",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0
+		},
+	"\/public\/ng\/js\/gogs.js": {
+		"fileType": 64,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/js\/gogs.js",
+		"outputAbbreviatedPath": "\/public\/ng\/js\/min\/gogs-min.js",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 1,
+		"syntaxCheckerStyle": 1
+		},
+	"\/public\/ng\/js\/gogs\/issue_label.js": {
+		"fileType": 64,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/js\/gogs\/issue_label.js",
+		"outputAbbreviatedPath": "\/public\/ng\/js\/gogs\/min\/issue_label-min.js",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 1,
+		"syntaxCheckerStyle": 1
+		},
+	"\/public\/ng\/js\/lib\/jquery-1.11.1.min.js": {
+		"fileType": 64,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/js\/lib\/jquery-1.11.1.min.js",
+		"outputAbbreviatedPath": "\/public\/ng\/js\/lib\/min\/jquery-1.11.1.min-min.js",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 1,
+		"syntaxCheckerStyle": 1
+		},
+	"\/public\/ng\/js\/lib\/jquery.magnific-popup.min.js": {
+		"fileType": 64,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/js\/lib\/jquery.magnific-popup.min.js",
+		"outputAbbreviatedPath": "\/public\/ng\/js\/lib\/min\/jquery.magnific-popup.min-min.js",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 1,
+		"syntaxCheckerStyle": 1
+		},
+	"\/public\/ng\/js\/lib\/jquery.tipsy.js": {
+		"fileType": 64,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/js\/lib\/jquery.tipsy.js",
+		"outputAbbreviatedPath": "\/public\/ng\/js\/lib\/min\/jquery.tipsy-min.js",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 1,
+		"syntaxCheckerStyle": 1
+		},
+	"\/public\/ng\/js\/lib\/lib.js": {
+		"fileType": 64,
+		"ignore": 1,
+		"ignoreWasSetByUser": 1,
+		"inputAbbreviatedPath": "\/public\/ng\/js\/lib\/lib.js",
+		"outputAbbreviatedPath": "\/public\/ng\/js\/lib\/min\/lib-min.js",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 1,
+		"syntaxCheckerStyle": 1
+		},
+	"\/public\/ng\/js\/min\/gogs-min.js": {
+		"fileType": 64,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/js\/min\/gogs-min.js",
+		"outputAbbreviatedPath": "\/public\/ng\/js\/min\/min\/gogs-min-min.js",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 1,
+		"syntaxCheckerStyle": 1
+		},
+	"\/public\/ng\/js\/utils\/preview.js": {
+		"fileType": 64,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/js\/utils\/preview.js",
+		"outputAbbreviatedPath": "\/public\/ng\/js\/utils\/min\/preview-min.js",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 1,
+		"syntaxCheckerStyle": 1
+		},
+	"\/public\/ng\/js\/utils\/tabs.js": {
+		"fileType": 64,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/js\/utils\/tabs.js",
+		"outputAbbreviatedPath": "\/public\/ng\/js\/utils\/min\/tabs-min.js",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 1,
+		"syntaxCheckerStyle": 1
+		},
+	"\/public\/ng\/less\/gogs.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/gogs.less",
+		"outputAbbreviatedPath": "\/public\/ng\/css\/gogs.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/gogs\/admin.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/admin.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/admin.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/gogs\/base.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/base.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/base.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/gogs\/dashboard.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/dashboard.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/dashboard.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/gogs\/external.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/external.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/external.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/gogs\/issue.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/issue.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/issue.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/gogs\/markdown.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/markdown.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/markdown.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/gogs\/organization.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/organization.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/organization.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/gogs\/profile.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/profile.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/profile.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/gogs\/repository.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/repository.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/repository.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/gogs\/settings.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/settings.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/settings.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/gogs\/sign.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/gogs\/sign.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/sign.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/ui.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 0,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/ui.less",
+		"outputAbbreviatedPath": "\/public\/ng\/css\/ui.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/ui\/alert.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/ui\/alert.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/alert.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/ui\/bread.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/ui\/bread.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/bread.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/ui\/form.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/ui\/form.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/form.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/ui\/grid.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/ui\/grid.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/grid.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/ui\/label.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/ui\/label.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/label.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/ui\/menu.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/ui\/menu.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/menu.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/ui\/pager.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/ui\/pager.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/pager.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/ui\/panel.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/ui\/panel.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/panel.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/ui\/reset.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/ui\/reset.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/reset.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/ui\/table.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/ui\/table.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/table.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/public\/ng\/less\/ui\/var.less": {
+		"allowInsecureImports": 0,
+		"createSourceMap": 0,
+		"disableJavascript": 0,
+		"fileType": 1,
+		"ieCompatibility": 1,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/public\/ng\/less\/ui\/var.less",
+		"outputAbbreviatedPath": "\/public\/ng\/less\/css\/var.css",
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"relativeURLS": 0,
+		"shouldRunAutoprefixer": 0,
+		"shouldRunBless": 0,
+		"strictImports": 0,
+		"strictMath": 0,
+		"strictUnits": 0
+		},
+	"\/README.md": {
+		"criticStyle": 0,
+		"enableFootnotes": 0,
+		"enableLabels": 1,
+		"enableSmartQuotes": 1,
+		"escapeLineBreaks": 0,
+		"fileType": 4096,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/README.md",
+		"maskEmailAddresses": 1,
+		"outputAbbreviatedPath": "\/README.html",
+		"outputFormat": 0,
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"parseMetadata": 1,
+		"processHTML": 0,
+		"randomFootnoteNumbers": 0,
+		"useCompatibilityMode": 0
+		},
+	"\/README_ZH.md": {
+		"criticStyle": 0,
+		"enableFootnotes": 0,
+		"enableLabels": 1,
+		"enableSmartQuotes": 1,
+		"escapeLineBreaks": 0,
+		"fileType": 4096,
+		"ignore": 1,
+		"ignoreWasSetByUser": 0,
+		"inputAbbreviatedPath": "\/README_ZH.md",
+		"maskEmailAddresses": 1,
+		"outputAbbreviatedPath": "\/README_ZH.html",
+		"outputFormat": 0,
+		"outputPathIsOutsideProject": 0,
+		"outputPathIsSetByUser": 0,
+		"outputStyle": 0,
+		"parseMetadata": 1,
+		"processHTML": 0,
+		"randomFootnoteNumbers": 0,
+		"useCompatibilityMode": 0
+		}
+	},
+"hooks": [
+	],
+"lastSavedByUser": "Jiahua Chen",
+"manualImportLinks": {
+	},
+"projectAttributes": {
+	"bowerAbbreviatedPath": "",
+	"displayValue": "gogs",
+	"displayValueWasSetByUser": 1,
+	"iconImageName": "compass_yellow"
+	},
+"projectSettings": {
+	"alwaysUseExternalServer": 0,
+	"animateCSSInjections": 1,
+	"autoApplyPSLanguageSettingsStyle": 0,
+	"autoprefixerBrowserString": "> 1%, last 2 versions, Firefox ESR, Opera 12.1",
+	"autoSyncProjectSettingsFile": 1,
+	"browserRefreshDelay": 0,
+	"coffeeAutoOutputPathEnabled": 1,
+	"coffeeAutoOutputPathFilenamePattern": "*.js",
+	"coffeeAutoOutputPathRelativePath": "",
+	"coffeeAutoOutputPathReplace1": "",
+	"coffeeAutoOutputPathReplace2": "",
+	"coffeeAutoOutputPathStyle": 0,
+	"coffeeCreateSourceMap": 0,
+	"coffeeLintFlags2": {
+		"arrow_spacing": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"camel_case_classes": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"colon_assignment_spacing": {
+			"active": 0,
+			"flagValue": 1
+			},
+		"cyclomatic_complexity": {
+			"active": 0,
+			"flagValue": 10
+			},
+		"duplicate_key": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"empty_constructor_needs_parens": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"ensure_comprehensions": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"indentation": {
+			"active": 1,
+			"flagValue": 2
+			},
+		"line_endings": {
+			"active": 0,
+			"flagValue": 0
+			},
+		"max_line_length": {
+			"active": 0,
+			"flagValue": 150
+			},
+		"missing_fat_arrows": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"newlines_after_classes": {
+			"active": 0,
+			"flagValue": 3
+			},
+		"no_backticks": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"no_debugger": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"no_empty_functions": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"no_empty_param_list": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"no_implicit_braces": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"no_implicit_parens": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"no_interpolation_in_single_quotes": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"no_plusplus": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"no_stand_alone_at": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"no_tabs": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"no_throwing_strings": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"no_trailing_semicolons": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"no_trailing_whitespace": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"no_unnecessary_double_quotes": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"no_unnecessary_fat_arrows": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"non_empty_constructor_needs_parens": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"prefer_english_operator": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"space_operators": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"spacing_after_comma": {
+			"active": 1,
+			"flagValue": -1
+			}
+		},
+	"coffeeMinifyOutput": 1,
+	"coffeeOutputStyle": 0,
+	"coffeeSyntaxCheckerStyle": 1,
+	"externalServerAddress": "http:\/\/localhost:8888",
+	"externalServerPreviewPathAddition": "",
+	"genericWebpageFileExtensionsString": "html, htm, shtml, shtm, xhtml, php, jsp, asp, aspx, erb, ctp",
+	"hamlAutoOutputPathEnabled": 1,
+	"hamlAutoOutputPathFilenamePattern": "*.html",
+	"hamlAutoOutputPathRelativePath": "",
+	"hamlAutoOutputPathReplace1": "",
+	"hamlAutoOutputPathReplace2": "",
+	"hamlAutoOutputPathStyle": 0,
+	"hamlEscapeHTMLCharacters": 0,
+	"hamlNoEscapeInAttributes": 0,
+	"hamlOutputFormat": 2,
+	"hamlOutputStyle": 0,
+	"hamlUseCDATA": 0,
+	"hamlUseDoubleQuotes": 0,
+	"hamlUseUnixNewlines": 0,
+	"jadeAutoOutputPathEnabled": 1,
+	"jadeAutoOutputPathFilenamePattern": "*.html",
+	"jadeAutoOutputPathRelativePath": "",
+	"jadeAutoOutputPathReplace1": "",
+	"jadeAutoOutputPathReplace2": "",
+	"jadeAutoOutputPathStyle": 0,
+	"jadeCompileDebug": 1,
+	"jadeOutputStyle": 0,
+	"javascriptAutoOutputPathEnabled": 1,
+	"javascriptAutoOutputPathFilenamePattern": "*-min.js",
+	"javascriptAutoOutputPathRelativePath": "\/min",
+	"javascriptAutoOutputPathReplace1": "",
+	"javascriptAutoOutputPathReplace2": "",
+	"javascriptAutoOutputPathStyle": 2,
+	"javascriptCreateSourceMap": 1,
+	"javascriptOutputStyle": 1,
+	"javascriptSyntaxCheckerStyle": 1,
+	"jsCheckerReservedNamesString": "",
+	"jsHintFlags2": {
+		"asi": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"bitwise": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"boss": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"browser": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"browserify": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"camelcase": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"couch": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"curly": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"debug": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"devel": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"dojo": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"elision": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"eqeqeq": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"eqnull": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"es3": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"esnext": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"evil": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"expr": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"forin": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"freeze": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"funcscope": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"futurehostile": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"globalstrict": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"immed": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"indent": {
+			"active": 0,
+			"flagValue": 4
+			},
+		"iterator": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"jasmine": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"jquery": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"lastsemic": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"latedef": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"laxbreak": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"laxcomma": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"loopfunc": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"maxcomplexity": {
+			"active": 0,
+			"flagValue": 10
+			},
+		"maxdepth": {
+			"active": 0,
+			"flagValue": 3
+			},
+		"maxlen": {
+			"active": 0,
+			"flagValue": 150
+			},
+		"maxparams": {
+			"active": 0,
+			"flagValue": 3
+			},
+		"maxstatements": {
+			"active": 0,
+			"flagValue": 4
+			},
+		"mocha": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"mootools": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"moz": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"multistr": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"newcap": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"noarg": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"nocomma": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"node": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"noempty": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"nonbsp": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"nonew": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"nonstandard": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"notypeof": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"noyield": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"onecase": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"phantom": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"plusplus": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"proto": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"prototypejs": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"qunit": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"regexp": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"rhino": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"scripturl": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"shadow": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"shelljs": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"singleGroups": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"strict": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"sub": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"supernew": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"typed": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"undef": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"unused": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"varstmt": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"withstmt": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"worker": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"wsh": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"yui": {
+			"active": 0,
+			"flagValue": -1
+			}
+		},
+	"jsLintFlags2": {
+		"ass": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"bitwise": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"browser": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"closure": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"continue": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"debug": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"devel": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"eqeq": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"evil": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"forin": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"indent": {
+			"active": 0,
+			"flagValue": 4
+			},
+		"maxlen": {
+			"active": 0,
+			"flagValue": 150
+			},
+		"newcap": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"node": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"nomen": {
+			"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,
+			"flagValue": -1
+			},
+		"white": {
+			"active": 0,
+			"flagValue": -1
+			}
+		},
+	"jsonAutoOutputPathEnabled": 0,
+	"jsonAutoOutputPathFilenamePattern": "*-min.json",
+	"jsonAutoOutputPathRelativePath": "",
+	"jsonAutoOutputPathReplace1": "",
+	"jsonAutoOutputPathReplace2": "",
+	"jsonAutoOutputPathStyle": 0,
+	"jsonOrderOutput": 0,
+	"jsonOutputStyle": 1,
+	"kitAutoOutputPathEnabled": 1,
+	"kitAutoOutputPathFilenamePattern": "*.html",
+	"kitAutoOutputPathRelativePath": "",
+	"kitAutoOutputPathReplace1": "",
+	"kitAutoOutputPathReplace2": "",
+	"kitAutoOutputPathStyle": 0,
+	"lessAllowInsecureImports": 0,
+	"lessAutoOutputPathEnabled": 1,
+	"lessAutoOutputPathFilenamePattern": "*.css",
+	"lessAutoOutputPathRelativePath": "..\/css",
+	"lessAutoOutputPathReplace1": "less",
+	"lessAutoOutputPathReplace2": "css",
+	"lessAutoOutputPathStyle": 2,
+	"lessCreateSourceMap": 0,
+	"lessDisableJavascript": 0,
+	"lessIeCompatibility": 1,
+	"lessOutputStyle": 0,
+	"lessRelativeURLS": 0,
+	"lessStrictImports": 0,
+	"lessStrictMath": 0,
+	"lessStrictUnits": 0,
+	"markdownAutoOutputPathEnabled": 0,
+	"markdownAutoOutputPathFilenamePattern": "*.html",
+	"markdownAutoOutputPathRelativePath": "",
+	"markdownAutoOutputPathReplace1": "",
+	"markdownAutoOutputPathReplace2": "",
+	"markdownAutoOutputPathStyle": 0,
+	"markdownCriticStyle": 0,
+	"markdownEnableFootnotes": 0,
+	"markdownEnableLabels": 1,
+	"markdownEnableSmartQuotes": 1,
+	"markdownEscapeLineBreaks": 0,
+	"markdownMaskEmailAddresses": 1,
+	"markdownOutputFormat": 0,
+	"markdownOutputStyle": 0,
+	"markdownParseMetadata": 1,
+	"markdownProcessHTML": 0,
+	"markdownRandomFootnoteNumbers": 0,
+	"markdownUseCompatibilityMode": 0,
+	"reloadFileURLs": 0,
+	"sassAutoOutputPathEnabled": 1,
+	"sassAutoOutputPathFilenamePattern": "*.css",
+	"sassAutoOutputPathRelativePath": "..\/css",
+	"sassAutoOutputPathReplace1": "sass",
+	"sassAutoOutputPathReplace2": "css",
+	"sassAutoOutputPathStyle": 2,
+	"sassCreateSourceMap": 0,
+	"sassDebugStyle": 0,
+	"sassDecimalPrecision": 5,
+	"sassOutputStyle": 0,
+	"sassUseLibsass": 0,
+	"shouldRunAutoprefixer": 0,
+	"shouldRunBless": 0,
+	"skippedItemsString": "_cache, logs, _logs, cache, \/public\/js\/lib, .git, \/public\/js, log, .svn, .hg",
+	"slimAutoOutputPathEnabled": 1,
+	"slimAutoOutputPathFilenamePattern": "*.html",
+	"slimAutoOutputPathRelativePath": "",
+	"slimAutoOutputPathReplace1": "",
+	"slimAutoOutputPathReplace2": "",
+	"slimAutoOutputPathStyle": 0,
+	"slimCompileOnly": 0,
+	"slimLogicless": 0,
+	"slimOutputFormat": 0,
+	"slimOutputStyle": 1,
+	"slimRailsCompatible": 0,
+	"stylusAutoOutputPathEnabled": 1,
+	"stylusAutoOutputPathFilenamePattern": "*.css",
+	"stylusAutoOutputPathRelativePath": "..\/css",
+	"stylusAutoOutputPathReplace1": "stylus",
+	"stylusAutoOutputPathReplace2": "css",
+	"stylusAutoOutputPathStyle": 2,
+	"stylusCreateSourceMap": 0,
+	"stylusDebugStyle": 0,
+	"stylusImportCSS": 0,
+	"stylusOutputStyle": 0,
+	"stylusResolveRelativeURLS": 0,
+	"typescriptAutoOutputPathEnabled": 1,
+	"typescriptAutoOutputPathFilenamePattern": "*.js",
+	"typescriptAutoOutputPathRelativePath": "\/js",
+	"typescriptAutoOutputPathReplace1": "",
+	"typescriptAutoOutputPathReplace2": "",
+	"typescriptAutoOutputPathStyle": 2,
+	"typescriptCreateDeclarationFile": 0,
+	"typescriptCreateSourceMap": 0,
+	"typescriptMinifyOutput": 0,
+	"typescriptModuleType": 0,
+	"typescriptNoImplicitAny": 0,
+	"typescriptPreserveConstEnums": 0,
+	"typescriptRemoveComments": 0,
+	"typescriptSuppressImplicitAnyIndexErrors": 0,
+	"typescriptTargetECMAVersion": 0,
+	"uglifyDefinesString": "",
+	"uglifyFlags2": {
+		"ascii-only": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"bare-returns": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"booleans": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"bracketize": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"cascade": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"comments": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"comparisons": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"compress": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"conditionals": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"dead_code": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"drop_console": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"drop_debugger": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"eval": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"evaluate": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"hoist_funs": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"hoist_vars": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"if_return": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"indent-level": {
+			"active": 0,
+			"flagValue": 4
+			},
+		"indent-start": {
+			"active": 0,
+			"flagValue": 0
+			},
+		"inline-script": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"join_vars": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"keep_fargs": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"keep_fnames": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"loops": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"mangle": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"max-line-len": {
+			"active": 1,
+			"flagValue": 32000
+			},
+		"negate_iife": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"properties": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"pure_getters": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"quote-keys": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"screw-ie8": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"semicolons": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"sequences": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"sort": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"space-colon": {
+			"active": 1,
+			"flagValue": -1
+			},
+		"toplevel": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"unsafe": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"unused": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"warnings": {
+			"active": 0,
+			"flagValue": -1
+			},
+		"width": {
+			"active": 1,
+			"flagValue": 80
+			}
+		},
+	"uglifyReservedNamesString": "$",
+	"websiteRelativeRoot": ""
+	},
+"settingsFileVersion": "2"
+}

+ 1 - 1
gogs.go

@@ -17,7 +17,7 @@ import (
 	"github.com/gogits/gogs/modules/setting"
 	"github.com/gogits/gogs/modules/setting"
 )
 )
 
 
-const APP_VER = "0.6.1.0724 Beta"
+const APP_VER = "0.6.2.0724 Beta"
 
 
 func init() {
 func init() {
 	runtime.GOMAXPROCS(runtime.NumCPU())
 	runtime.GOMAXPROCS(runtime.NumCPU())

+ 5 - 5
models/action.go

@@ -153,7 +153,7 @@ func updateIssuesCommit(userId, repoId int64, repoUserName, repoName string, com
 
 
 			url := fmt.Sprintf("%s/%s/%s/commit/%s", setting.AppSubUrl, repoUserName, repoName, c.Sha1)
 			url := fmt.Sprintf("%s/%s/%s/commit/%s", setting.AppSubUrl, repoUserName, repoName, c.Sha1)
 			message := fmt.Sprintf(`<a href="%s">%s</a>`, url, c.Message)
 			message := fmt.Sprintf(`<a href="%s">%s</a>`, url, c.Message)
-			if _, err = CreateComment(userId, issue.RepoId, issue.Id, 0, 0, COMMENT_TYPE_COMMIT, message, nil); err != nil {
+			if _, err = CreateComment(userId, issue.RepoId, issue.ID, 0, 0, COMMENT_TYPE_COMMIT, message, nil); err != nil {
 				return err
 				return err
 			}
 			}
 		}
 		}
@@ -202,7 +202,7 @@ func updateIssuesCommit(userId, repoId int64, repoUserName, repoName string, com
 
 
 				if err = UpdateIssue(issue); err != nil {
 				if err = UpdateIssue(issue); err != nil {
 					return err
 					return err
-				} else if err = UpdateIssueUserPairsByStatus(issue.Id, issue.IsClosed); err != nil {
+				} else if err = UpdateIssueUserPairsByStatus(issue.ID, issue.IsClosed); err != nil {
 					return err
 					return err
 				}
 				}
 
 
@@ -211,7 +211,7 @@ func updateIssuesCommit(userId, repoId int64, repoUserName, repoName string, com
 				}
 				}
 
 
 				// If commit happened in the referenced repository, it means the issue can be closed.
 				// If commit happened in the referenced repository, it means the issue can be closed.
-				if _, err = CreateComment(userId, repoId, issue.Id, 0, 0, COMMENT_TYPE_CLOSE, "", nil); err != nil {
+				if _, err = CreateComment(userId, repoId, issue.ID, 0, 0, COMMENT_TYPE_CLOSE, "", nil); err != nil {
 					return err
 					return err
 				}
 				}
 			}
 			}
@@ -261,7 +261,7 @@ func updateIssuesCommit(userId, repoId int64, repoUserName, repoName string, com
 
 
 				if err = UpdateIssue(issue); err != nil {
 				if err = UpdateIssue(issue); err != nil {
 					return err
 					return err
-				} else if err = UpdateIssueUserPairsByStatus(issue.Id, issue.IsClosed); err != nil {
+				} else if err = UpdateIssueUserPairsByStatus(issue.ID, issue.IsClosed); err != nil {
 					return err
 					return err
 				}
 				}
 
 
@@ -270,7 +270,7 @@ func updateIssuesCommit(userId, repoId int64, repoUserName, repoName string, com
 				}
 				}
 
 
 				// If commit happened in the referenced repository, it means the issue can be closed.
 				// If commit happened in the referenced repository, it means the issue can be closed.
-				if _, err = CreateComment(userId, repoId, issue.Id, 0, 0, COMMENT_TYPE_REOPEN, "", nil); err != nil {
+				if _, err = CreateComment(userId, repoId, issue.ID, 0, 0, COMMENT_TYPE_REOPEN, "", nil); err != nil {
 					return err
 					return err
 				}
 				}
 			}
 			}

+ 12 - 12
models/issue.go

@@ -32,7 +32,7 @@ var (
 
 
 // Issue represents an issue or pull request of repository.
 // Issue represents an issue or pull request of repository.
 type Issue struct {
 type Issue struct {
-	Id              int64
+	ID              int64 `xorm:"pk autoincr"`
 	RepoId          int64 `xorm:"INDEX"`
 	RepoId          int64 `xorm:"INDEX"`
 	Index           int64 // Index in one repository.
 	Index           int64 // Index in one repository.
 	Name            string
 	Name            string
@@ -100,15 +100,15 @@ func (i *Issue) GetAssignee() (err error) {
 }
 }
 
 
 func (i *Issue) Attachments() []*Attachment {
 func (i *Issue) Attachments() []*Attachment {
-	a, _ := GetAttachmentsForIssue(i.Id)
+	a, _ := GetAttachmentsForIssue(i.ID)
 	return a
 	return a
 }
 }
 
 
 func (i *Issue) AfterDelete() {
 func (i *Issue) AfterDelete() {
-	_, err := DeleteAttachmentsByIssue(i.Id, true)
+	_, err := DeleteAttachmentsByIssue(i.ID, true)
 
 
 	if err != nil {
 	if err != nil {
-		log.Info("Could not delete files for issue #%d: %s", i.Id, err)
+		log.Info("Could not delete files for issue #%d: %s", i.ID, err)
 	}
 	}
 }
 }
 
 
@@ -175,7 +175,7 @@ func GetIssueByIndex(rid, index int64) (*Issue, error) {
 
 
 // GetIssueById returns an issue by ID.
 // GetIssueById returns an issue by ID.
 func GetIssueById(id int64) (*Issue, error) {
 func GetIssueById(id int64) (*Issue, error) {
-	issue := &Issue{Id: id}
+	issue := &Issue{ID: id}
 	has, err := x.Get(issue)
 	has, err := x.Get(issue)
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err
@@ -456,7 +456,7 @@ func GetUserIssueStats(uid int64, filterMode int) *IssueStats {
 
 
 // UpdateIssue updates information of issue.
 // UpdateIssue updates information of issue.
 func UpdateIssue(issue *Issue) error {
 func UpdateIssue(issue *Issue) error {
-	_, err := x.Id(issue.Id).AllCols().Update(issue)
+	_, err := x.Id(issue.ID).AllCols().Update(issue)
 
 
 	if err != nil {
 	if err != nil {
 		return err
 		return err
@@ -526,7 +526,7 @@ func UpdateIssueUserPairsByMentions(uids []int64, iid int64) error {
 
 
 // Label represents a label of repository for issues.
 // Label represents a label of repository for issues.
 type Label struct {
 type Label struct {
-	Id              int64
+	ID              int64 `xorm:"pk autoincr"`
 	RepoId          int64 `xorm:"INDEX"`
 	RepoId          int64 `xorm:"INDEX"`
 	Name            string
 	Name            string
 	Color           string `xorm:"VARCHAR(7)"`
 	Color           string `xorm:"VARCHAR(7)"`
@@ -553,7 +553,7 @@ func GetLabelById(id int64) (*Label, error) {
 		return nil, ErrLabelNotExist
 		return nil, ErrLabelNotExist
 	}
 	}
 
 
-	l := &Label{Id: id}
+	l := &Label{ID: id}
 	has, err := x.Get(l)
 	has, err := x.Get(l)
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err
@@ -572,7 +572,7 @@ func GetLabels(repoId int64) ([]*Label, error) {
 
 
 // UpdateLabel updates label information.
 // UpdateLabel updates label information.
 func UpdateLabel(l *Label) error {
 func UpdateLabel(l *Label) error {
-	_, err := x.Id(l.Id).AllCols().Update(l)
+	_, err := x.Id(l.ID).AllCols().Update(l)
 	return err
 	return err
 }
 }
 
 
@@ -600,7 +600,7 @@ func DeleteLabel(repoId int64, strId string) error {
 
 
 	for _, issue := range issues {
 	for _, issue := range issues {
 		issue.LabelIds = strings.Replace(issue.LabelIds, "$"+strId+"|", "", -1)
 		issue.LabelIds = strings.Replace(issue.LabelIds, "$"+strId+"|", "", -1)
-		if _, err = sess.Id(issue.Id).AllCols().Update(issue); err != nil {
+		if _, err = sess.Id(issue.ID).AllCols().Update(issue); err != nil {
 			sess.Rollback()
 			sess.Rollback()
 			return err
 			return err
 		}
 		}
@@ -788,7 +788,7 @@ func ChangeMilestoneAssign(oldMid, mid int64, issue *Issue) (err error) {
 		}
 		}
 
 
 		rawSql := "UPDATE `issue_user` SET milestone_id = 0 WHERE issue_id = ?"
 		rawSql := "UPDATE `issue_user` SET milestone_id = 0 WHERE issue_id = ?"
-		if _, err = sess.Exec(rawSql, issue.Id); err != nil {
+		if _, err = sess.Exec(rawSql, issue.ID); err != nil {
 			sess.Rollback()
 			sess.Rollback()
 			return err
 			return err
 		}
 		}
@@ -816,7 +816,7 @@ func ChangeMilestoneAssign(oldMid, mid int64, issue *Issue) (err error) {
 		}
 		}
 
 
 		rawSql := "UPDATE `issue_user` SET milestone_id = ? WHERE issue_id = ?"
 		rawSql := "UPDATE `issue_user` SET milestone_id = ? WHERE issue_id = ?"
-		if _, err = sess.Exec(rawSql, m.Id, issue.Id); err != nil {
+		if _, err = sess.Exec(rawSql, m.Id, issue.ID); err != nil {
 			sess.Rollback()
 			sess.Rollback()
 			return err
 			return err
 		}
 		}

+ 1 - 1
models/repo.go

@@ -876,7 +876,7 @@ func DeleteRepository(uid, repoID int64, userName string) error {
 		return err
 		return err
 	}
 	}
 	for i := range issues {
 	for i := range issues {
-		if _, err = sess.Delete(&Comment{IssueId: issues[i].Id}); err != nil {
+		if _, err = sess.Delete(&Comment{IssueId: issues[i].ID}); err != nil {
 			return err
 			return err
 		}
 		}
 	}
 	}

+ 7 - 1
modules/auth/auth.go

@@ -171,12 +171,16 @@ func AssignForm(form interface{}, data map[string]interface{}) {
 func getSize(field reflect.StructField, prefix string) string {
 func getSize(field reflect.StructField, prefix string) string {
 	for _, rule := range strings.Split(field.Tag.Get("binding"), ";") {
 	for _, rule := range strings.Split(field.Tag.Get("binding"), ";") {
 		if strings.HasPrefix(rule, prefix) {
 		if strings.HasPrefix(rule, prefix) {
-			return rule[8 : len(rule)-1]
+			return rule[len(prefix) : len(rule)-1]
 		}
 		}
 	}
 	}
 	return ""
 	return ""
 }
 }
 
 
+func GetSize(field reflect.StructField) string {
+	return getSize(field, "Size(")
+}
+
 func GetMinSize(field reflect.StructField) string {
 func GetMinSize(field reflect.StructField) string {
 	return getSize(field, "MinSize(")
 	return getSize(field, "MinSize(")
 }
 }
@@ -227,6 +231,8 @@ func validate(errs binding.Errors, data map[string]interface{}, f Form, l macaro
 				data["ErrorMsg"] = trName + l.Tr("form.alpha_dash_error")
 				data["ErrorMsg"] = trName + l.Tr("form.alpha_dash_error")
 			case binding.ERR_ALPHA_DASH_DOT:
 			case binding.ERR_ALPHA_DASH_DOT:
 				data["ErrorMsg"] = trName + l.Tr("form.alpha_dash_dot_error")
 				data["ErrorMsg"] = trName + l.Tr("form.alpha_dash_dot_error")
+			case binding.ERR_SIZE:
+				data["ErrorMsg"] = trName + l.Tr("form.size_error", GetSize(field))
 			case binding.ERR_MIN_SIZE:
 			case binding.ERR_MIN_SIZE:
 				data["ErrorMsg"] = trName + l.Tr("form.min_size_error", GetMinSize(field))
 				data["ErrorMsg"] = trName + l.Tr("form.min_size_error", GetMinSize(field))
 			case binding.ERR_MAX_SIZE:
 			case binding.ERR_MAX_SIZE:

+ 2 - 2
modules/auth/repo_form.go

@@ -134,8 +134,8 @@ func (f *CreateMilestoneForm) Validate(ctx *macaron.Context, errs binding.Errors
 //         \/    \/    \/     \/
 //         \/    \/    \/     \/
 
 
 type CreateLabelForm struct {
 type CreateLabelForm struct {
-	Title string `form:"title" binding:"Required;MaxSize(50)"`
-	Color string `form:"color" binding:"Required;Size(7)"`
+	Title string `binding:"Required;MaxSize(50)" locale:"repo.issues.label_name"`
+	Color string `binding:"Required;Size(7)" locale:"repo.issues.label_color"`
 }
 }
 
 
 func (f *CreateLabelForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
 func (f *CreateLabelForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {

File diff suppressed because it is too large
+ 1 - 1
modules/bindata/bindata.go


File diff suppressed because it is too large
+ 0 - 0
public/css/gogs.min.css


File diff suppressed because it is too large
+ 5 - 0
public/css/jquery.minicolors.css


+ 19 - 0
public/js/gogs.js

@@ -32,6 +32,24 @@ function initInstall() {
     });
     });
 };
 };
 
 
+function initRepository(){
+    if ($('.repository').length == 0) {
+        return;
+    }
+
+    if ($('.labels').length == 0) {
+        return;
+    }
+    $('.color-picker').each( function() {
+        $(this).minicolors();
+    });
+    $('.precolors .color').click(function(){
+        var color_hex = $(this).data('color-hex')
+        $('.color-picker').val(color_hex);
+        $('.minicolors-swatch-color').css("background-color", color_hex);
+    });
+};
+
 $(document).ready(function () {
 $(document).ready(function () {
     // Semantic UI modules.
     // Semantic UI modules.
     $('.dropdown').dropdown();
     $('.dropdown').dropdown();
@@ -46,4 +64,5 @@ $(document).ready(function () {
     $('.poping.up').popup();
     $('.poping.up').popup();
 
 
     initInstall();
     initInstall();
+    initRepository();
 });
 });

File diff suppressed because it is too large
+ 10 - 0
public/js/libs/jquery.minicolors.min.js


BIN
public/js/libs/jquery.minicolors.png


+ 0 - 1
public/js/min/gogs-min.js

@@ -1 +0,0 @@
-$(document).ready(function(){$(".dropdown").dropdown({transition:"slide up"})});

+ 59 - 1
public/less/_repository.less

@@ -41,6 +41,42 @@
 	.navbar {
 	.navbar {
 		height: 60px;
 		height: 60px;
 		padding-top: 20px;
 		padding-top: 20px;
+		.ui.secondary.menu .item {
+			margin-left: -10px;
+			margin-top: -7px;
+			&>.input {
+				.new-label-input,
+				.color-picker {
+					background-color: white;
+					border: 1px solid rgba(0,0,0,.15);
+				}
+			}
+			.new-label-input {
+				width: 150px;
+			}
+			.color-picker {
+				height: 35px;
+				width: auto;
+				padding-left: 30px;
+			}
+			.minicolors-swatch.minicolors-sprite {
+				top: 10px;
+				left: 10px;
+				width: 15px;
+				height: 15px;
+			}
+			&.precolors {
+				padding-left: 0;
+				padding-right: 0;
+				margin-right: 10px;
+				width: 120px;
+				.color {
+					float: left;
+					width: 15px;
+					height: 15px;
+				}
+			}
+		}
 	}
 	}
 	.filter.menu .label.color {
 	.filter.menu .label.color {
 		padding: 0 8px;
 		padding: 0 8px;
@@ -50,9 +86,10 @@
   		left: auto!important;
   		left: auto!important;
 	}
 	}
 	.issue.list {
 	.issue.list {
+		clear: both;
 		list-style: none;
 		list-style: none;
 		font-size: 13px;
 		font-size: 13px;
-		padding-top: 45px;
+		padding-top: 15px;
 		.item {
 		.item {
 			padding-top: 15px;
 			padding-top: 15px;
 			padding-bottom: 10px;
 			padding-bottom: 10px;
@@ -79,4 +116,25 @@
 			padding-top: 15px;
 			padding-top: 15px;
 		}
 		}
 	}
 	}
+	.label.list {
+		clear: both;
+		padding-top: 15px;
+		.item {
+			padding-top: 10px;
+			padding-bottom: 10px;
+			border-bottom: 1px dashed #AAA;
+			a {
+				font-size: 15px;
+				padding-top: 5px;
+				padding-right: 10px;
+				color: #666;
+				&:hover {
+					color: #000;
+				}
+				&.open-issues {
+					margin-right: 30px;
+				}
+			}
+		}
+	}
 }
 }

+ 58 - 50
routers/repo/issue.go

@@ -30,6 +30,8 @@ const (
 	ISSUE_CREATE base.TplName = "repo/issue/create"
 	ISSUE_CREATE base.TplName = "repo/issue/create"
 	ISSUE_VIEW   base.TplName = "repo/issue/view"
 	ISSUE_VIEW   base.TplName = "repo/issue/view"
 
 
+	LABELS base.TplName = "repo/issue/labels"
+
 	MILESTONE      base.TplName = "repo/issue/milestone"
 	MILESTONE      base.TplName = "repo/issue/milestone"
 	MILESTONE_NEW  base.TplName = "repo/issue/milestone_new"
 	MILESTONE_NEW  base.TplName = "repo/issue/milestone_new"
 	MILESTONE_EDIT base.TplName = "repo/issue/milestone_edit"
 	MILESTONE_EDIT base.TplName = "repo/issue/milestone_edit"
@@ -40,6 +42,19 @@ var (
 	ErrTooManyFiles      = errors.New("Maximum number of files to upload exceeded")
 	ErrTooManyFiles      = errors.New("Maximum number of files to upload exceeded")
 )
 )
 
 
+func RetrieveLabels(ctx *middleware.Context) {
+	labels, err := models.GetLabels(ctx.Repo.Repository.Id)
+	if err != nil {
+		ctx.Handle(500, "RetrieveLabels.GetLabels: %v", err)
+		return
+	}
+	for _, l := range labels {
+		l.CalOpenIssues()
+	}
+	ctx.Data["Labels"] = labels
+	ctx.Data["NumLabels"] = len(labels)
+}
+
 func Issues(ctx *middleware.Context) {
 func Issues(ctx *middleware.Context) {
 	ctx.Data["Title"] = ctx.Tr("repo.issues")
 	ctx.Data["Title"] = ctx.Tr("repo.issues")
 	ctx.Data["PageIsIssueList"] = true
 	ctx.Data["PageIsIssueList"] = true
@@ -85,17 +100,6 @@ func Issues(ctx *middleware.Context) {
 		mid = mile.Id
 		mid = mile.Id
 	}
 	}
 
 
-	selectLabels := ctx.Query("labels")
-	labels, err := models.GetLabels(repo.Id)
-	if err != nil {
-		ctx.Handle(500, "GetLabels: %v", err)
-		return
-	}
-	for _, l := range labels {
-		l.CalOpenIssues()
-	}
-	ctx.Data["Labels"] = labels
-
 	page := ctx.QueryInt("page")
 	page := ctx.QueryInt("page")
 	if page <= 1 {
 	if page <= 1 {
 		page = 1
 		page = 1
@@ -107,6 +111,8 @@ func Issues(ctx *middleware.Context) {
 		ctx.Data["NextPage"] = page + 1
 		ctx.Data["NextPage"] = page + 1
 	}
 	}
 
 
+	selectLabels := ctx.Query("labels")
+
 	// Get issues.
 	// Get issues.
 	issues, err := models.GetIssues(assigneeId, repo.Id, posterId, mid, page,
 	issues, err := models.GetIssues(assigneeId, repo.Id, posterId, mid, page,
 		isShowClosed, selectLabels, ctx.Query("sortType"))
 		isShowClosed, selectLabels, ctx.Query("sortType"))
@@ -125,24 +131,26 @@ func Issues(ctx *middleware.Context) {
 	// Get posters.
 	// Get posters.
 	for i := range issues {
 	for i := range issues {
 		if err = issues[i].GetLabels(); err != nil {
 		if err = issues[i].GetLabels(); err != nil {
-			ctx.Handle(500, "GetLabels", fmt.Errorf("[#%d]%v", issues[i].Id, err))
+			ctx.Handle(500, "GetLabels", fmt.Errorf("[#%d]%v", issues[i].ID, err))
 			return
 			return
 		}
 		}
 
 
-		idx := models.PairsContains(pairs, issues[i].Id, ctx.User.Id)
+		if ctx.IsSigned {
+			idx := models.PairsContains(pairs, issues[i].ID, ctx.User.Id)
 
 
-		if filterMode == models.FM_MENTION && (idx == -1 || !pairs[idx].IsMentioned) {
-			continue
-		}
+			if filterMode == models.FM_MENTION && (idx == -1 || !pairs[idx].IsMentioned) {
+				continue
+			}
 
 
-		if idx > -1 {
-			issues[i].IsRead = pairs[idx].IsRead
-		} else {
-			issues[i].IsRead = true
+			if idx > -1 {
+				issues[i].IsRead = pairs[idx].IsRead
+			} else {
+				issues[i].IsRead = true
+			}
 		}
 		}
 
 
 		if err = issues[i].GetPoster(); err != nil {
 		if err = issues[i].GetPoster(); err != nil {
-			ctx.Handle(500, "GetPoster", fmt.Errorf("[#%d]%v", issues[i].Id, err))
+			ctx.Handle(500, "GetPoster", fmt.Errorf("[#%d]%v", issues[i].ID, err))
 			return
 			return
 		}
 		}
 	}
 	}
@@ -257,14 +265,14 @@ func CreateIssuePost(ctx *middleware.Context, form auth.CreateIssueForm) {
 	if err := models.NewIssue(issue); err != nil {
 	if err := models.NewIssue(issue); err != nil {
 		send(500, nil, err)
 		send(500, nil, err)
 		return
 		return
-	} else if err := models.NewIssueUserPairs(ctx.Repo.Repository, issue.Id, ctx.Repo.Owner.Id,
+	} else if err := models.NewIssueUserPairs(ctx.Repo.Repository, issue.ID, ctx.Repo.Owner.Id,
 		ctx.User.Id, form.AssigneeId); err != nil {
 		ctx.User.Id, form.AssigneeId); err != nil {
 		send(500, nil, err)
 		send(500, nil, err)
 		return
 		return
 	}
 	}
 
 
 	if setting.AttachmentEnabled {
 	if setting.AttachmentEnabled {
-		uploadFiles(ctx, issue.Id, 0)
+		uploadFiles(ctx, issue.ID, 0)
 	}
 	}
 
 
 	// Update mentions.
 	// Update mentions.
@@ -274,7 +282,7 @@ func CreateIssuePost(ctx *middleware.Context, form auth.CreateIssueForm) {
 			ms[i] = ms[i][1:]
 			ms[i] = ms[i][1:]
 		}
 		}
 
 
-		if err := models.UpdateMentions(ms, issue.Id); err != nil {
+		if err := models.UpdateMentions(ms, issue.ID); err != nil {
 			send(500, nil, err)
 			send(500, nil, err)
 			return
 			return
 		}
 		}
@@ -321,7 +329,7 @@ func CreateIssuePost(ctx *middleware.Context, form auth.CreateIssueForm) {
 			return
 			return
 		}
 		}
 	}
 	}
-	log.Trace("%d Issue created: %d", ctx.Repo.Repository.Id, issue.Id)
+	log.Trace("%d Issue created: %d", ctx.Repo.Repository.Id, issue.ID)
 
 
 	send(200, fmt.Sprintf("%s/%s/%s/issues/%d", setting.AppSubUrl, ctx.Params(":username"), ctx.Params(":reponame"), issue.Index), nil)
 	send(200, fmt.Sprintf("%s/%s/%s/issues/%d", setting.AppSubUrl, ctx.Params(":username"), ctx.Params(":reponame"), issue.Index), nil)
 }
 }
@@ -329,7 +337,7 @@ func CreateIssuePost(ctx *middleware.Context, form auth.CreateIssueForm) {
 func checkLabels(labels, allLabels []*models.Label) {
 func checkLabels(labels, allLabels []*models.Label) {
 	for _, l := range labels {
 	for _, l := range labels {
 		for _, l2 := range allLabels {
 		for _, l2 := range allLabels {
-			if l.Id == l2.Id {
+			if l.ID == l2.ID {
 				l2.IsChecked = true
 				l2.IsChecked = true
 				break
 				break
 			}
 			}
@@ -403,7 +411,7 @@ func ViewIssue(ctx *middleware.Context) {
 
 
 	if ctx.IsSigned {
 	if ctx.IsSigned {
 		// Update issue-user.
 		// Update issue-user.
-		if err = models.UpdateIssueUserPairByRead(ctx.User.Id, issue.Id); err != nil {
+		if err = models.UpdateIssueUserPairByRead(ctx.User.Id, issue.ID); err != nil {
 			ctx.Handle(500, "issue.ViewIssue(UpdateIssueUserPairByRead): %v", err)
 			ctx.Handle(500, "issue.ViewIssue(UpdateIssueUserPairByRead): %v", err)
 			return
 			return
 		}
 		}
@@ -420,7 +428,7 @@ func ViewIssue(ctx *middleware.Context) {
 	issue.RenderedContent = string(base.RenderMarkdown([]byte(issue.Content), ctx.Repo.RepoLink))
 	issue.RenderedContent = string(base.RenderMarkdown([]byte(issue.Content), ctx.Repo.RepoLink))
 
 
 	// Get comments.
 	// Get comments.
-	comments, err := models.GetIssueComments(issue.Id)
+	comments, err := models.GetIssueComments(issue.ID)
 	if err != nil {
 	if err != nil {
 		ctx.Handle(500, "issue.ViewIssue(GetIssueComments): %v", err)
 		ctx.Handle(500, "issue.ViewIssue(GetIssueComments): %v", err)
 		return
 		return
@@ -642,7 +650,7 @@ func UpdateAssignee(ctx *middleware.Context) {
 	aid := com.StrTo(ctx.Query("assigneeid")).MustInt64()
 	aid := com.StrTo(ctx.Query("assigneeid")).MustInt64()
 	// Not check for invalid assignee id and give responsibility to owners.
 	// Not check for invalid assignee id and give responsibility to owners.
 	issue.AssigneeId = aid
 	issue.AssigneeId = aid
-	if err = models.UpdateIssueUserPairByAssignee(aid, issue.Id); err != nil {
+	if err = models.UpdateIssueUserPairByAssignee(aid, issue.ID); err != nil {
 		ctx.Handle(500, "UpdateIssueUserPairByAssignee: %v", err)
 		ctx.Handle(500, "UpdateIssueUserPairByAssignee: %v", err)
 		return
 		return
 	} else if err = models.UpdateIssue(issue); err != nil {
 	} else if err = models.UpdateIssue(issue); err != nil {
@@ -774,7 +782,7 @@ func Comment(ctx *middleware.Context) {
 			if err = models.UpdateIssue(issue); err != nil {
 			if err = models.UpdateIssue(issue); err != nil {
 				send(500, nil, err)
 				send(500, nil, err)
 				return
 				return
-			} else if err = models.UpdateIssueUserPairsByStatus(issue.Id, issue.IsClosed); err != nil {
+			} else if err = models.UpdateIssueUserPairsByStatus(issue.ID, issue.IsClosed); err != nil {
 				send(500, nil, err)
 				send(500, nil, err)
 				return
 				return
 			}
 			}
@@ -809,11 +817,11 @@ func Comment(ctx *middleware.Context) {
 				cmtType = models.COMMENT_TYPE_REOPEN
 				cmtType = models.COMMENT_TYPE_REOPEN
 			}
 			}
 
 
-			if _, err = models.CreateComment(ctx.User.Id, ctx.Repo.Repository.Id, issue.Id, 0, 0, cmtType, "", nil); err != nil {
+			if _, err = models.CreateComment(ctx.User.Id, ctx.Repo.Repository.Id, issue.ID, 0, 0, cmtType, "", nil); err != nil {
 				send(200, nil, err)
 				send(200, nil, err)
 				return
 				return
 			}
 			}
-			log.Trace("%s Issue(%d) status changed: %v", ctx.Req.RequestURI, issue.Id, !issue.IsClosed)
+			log.Trace("%s Issue(%d) status changed: %v", ctx.Req.RequestURI, issue.ID, !issue.IsClosed)
 		}
 		}
 	}
 	}
 
 
@@ -825,7 +833,7 @@ func Comment(ctx *middleware.Context) {
 	if len(content) > 0 || len(ctx.Req.MultipartForm.File["attachments"]) > 0 {
 	if len(content) > 0 || len(ctx.Req.MultipartForm.File["attachments"]) > 0 {
 		switch ctx.Params(":action") {
 		switch ctx.Params(":action") {
 		case "new":
 		case "new":
-			if comment, err = models.CreateComment(ctx.User.Id, ctx.Repo.Repository.Id, issue.Id, 0, 0, models.COMMENT_TYPE_COMMENT, content, nil); err != nil {
+			if comment, err = models.CreateComment(ctx.User.Id, ctx.Repo.Repository.Id, issue.ID, 0, 0, models.COMMENT_TYPE_COMMENT, content, nil); err != nil {
 				send(500, nil, err)
 				send(500, nil, err)
 				return
 				return
 			}
 			}
@@ -837,13 +845,13 @@ func Comment(ctx *middleware.Context) {
 					ms[i] = ms[i][1:]
 					ms[i] = ms[i][1:]
 				}
 				}
 
 
-				if err := models.UpdateMentions(ms, issue.Id); err != nil {
+				if err := models.UpdateMentions(ms, issue.ID); err != nil {
 					send(500, nil, err)
 					send(500, nil, err)
 					return
 					return
 				}
 				}
 			}
 			}
 
 
-			log.Trace("%s Comment created: %d", ctx.Req.RequestURI, issue.Id)
+			log.Trace("%s Comment created: %d", ctx.Req.RequestURI, issue.ID)
 		default:
 		default:
 			ctx.Handle(404, "issue.Comment", err)
 			ctx.Handle(404, "issue.Comment", err)
 			return
 			return
@@ -851,7 +859,7 @@ func Comment(ctx *middleware.Context) {
 	}
 	}
 
 
 	if comment != nil {
 	if comment != nil {
-		uploadFiles(ctx, issue.Id, comment.Id)
+		uploadFiles(ctx, issue.ID, comment.Id)
 	}
 	}
 
 
 	// Notify watchers.
 	// Notify watchers.
@@ -899,9 +907,19 @@ func Comment(ctx *middleware.Context) {
 	send(200, fmt.Sprintf("%s/issues/%d", ctx.Repo.RepoLink, index), nil)
 	send(200, fmt.Sprintf("%s/issues/%d", ctx.Repo.RepoLink, index), nil)
 }
 }
 
 
+func Labels(ctx *middleware.Context) {
+	ctx.Data["Title"] = ctx.Tr("repo.labels")
+	ctx.Data["PageIsLabels"] = true
+	ctx.HTML(200, LABELS)
+}
+
 func NewLabel(ctx *middleware.Context, form auth.CreateLabelForm) {
 func NewLabel(ctx *middleware.Context, form auth.CreateLabelForm) {
+	ctx.Data["Title"] = ctx.Tr("repo.labels")
+	ctx.Data["PageIsLabels"] = true
+
 	if ctx.HasError() {
 	if ctx.HasError() {
-		Issues(ctx)
+		ctx.Flash.Error(ctx.Data["ErrorMsg"].(string))
+		ctx.Redirect(ctx.Repo.RepoLink + "/labels")
 		return
 		return
 	}
 	}
 
 
@@ -911,10 +929,10 @@ func NewLabel(ctx *middleware.Context, form auth.CreateLabelForm) {
 		Color:  form.Color,
 		Color:  form.Color,
 	}
 	}
 	if err := models.NewLabel(l); err != nil {
 	if err := models.NewLabel(l); err != nil {
-		ctx.Handle(500, "issue.NewLabel(NewLabel)", err)
+		ctx.Handle(500, "NewLabel", err)
 		return
 		return
 	}
 	}
-	ctx.Redirect(ctx.Repo.RepoLink + "/issues")
+	ctx.Redirect(ctx.Repo.RepoLink + "/labels")
 }
 }
 
 
 func UpdateLabel(ctx *middleware.Context, form auth.CreateLabelForm) {
 func UpdateLabel(ctx *middleware.Context, form auth.CreateLabelForm) {
@@ -925,7 +943,7 @@ func UpdateLabel(ctx *middleware.Context, form auth.CreateLabelForm) {
 	}
 	}
 
 
 	l := &models.Label{
 	l := &models.Label{
-		Id:    id,
+		ID:    id,
 		Name:  form.Title,
 		Name:  form.Title,
 		Color: form.Color,
 		Color: form.Color,
 	}
 	}
@@ -1151,20 +1169,10 @@ func IssueGetAttachment(ctx *middleware.Context) {
 	ctx.ServeFile(attachment.Path, "\""+attachment.Name+"\"")
 	ctx.ServeFile(attachment.Path, "\""+attachment.Name+"\"")
 }
 }
 
 
-// testing route handler for new issue ui page
-// todo : move to Issue() function
-func Issues2(ctx *middleware.Context) {
-	ctx.HTML(200, "repo/issue2/list")
-}
-
 func PullRequest2(ctx *middleware.Context) {
 func PullRequest2(ctx *middleware.Context) {
 	ctx.HTML(200, "repo/pr2/list")
 	ctx.HTML(200, "repo/pr2/list")
 }
 }
 
 
-func Labels2(ctx *middleware.Context) {
-	ctx.HTML(200, "repo/issue2/labels")
-}
-
 func Milestones2(ctx *middleware.Context) {
 func Milestones2(ctx *middleware.Context) {
 	ctx.HTML(200, "repo/milestone2/list")
 	ctx.HTML(200, "repo/milestone2/list")
 }
 }

+ 1 - 1
templates/.VERSION

@@ -1 +1 @@
-0.6.1.0724 Beta
+0.6.2.0724 Beta

+ 6 - 0
templates/base/head.tmpl

@@ -29,6 +29,12 @@
 	<script src="{{AppSubUrl}}/js/semantic.min.js?v={{AppVer}}"></script>
 	<script src="{{AppSubUrl}}/js/semantic.min.js?v={{AppVer}}"></script>
 	<script src="{{AppSubUrl}}/js/gogs.js?v={{AppVer}}"></script>
 	<script src="{{AppSubUrl}}/js/gogs.js?v={{AppVer}}"></script>
 
 
+	<!-- Third-party libraries -->
+	{{if .PageIsLabels}}
+	<link rel="stylesheet" href="{{AppSubUrl}}/css/jquery.minicolors.css?v={{AppVer}}">
+	<script src="{{AppSubUrl}}/js/libs/jquery.minicolors.min.js?v={{AppVer}}"></script>
+	{{end}}
+
 	<title>{{if .Title}}{{.Title}} - {{end}}{{AppName}}</title>
 	<title>{{if .Title}}{{.Title}} - {{end}}{{AppName}}</title>
 </head>
 </head>
 <body>
 <body>

+ 5 - 0
templates/repo/issue/alert.tmpl

@@ -0,0 +1,5 @@
+{{if .Flash}}
+<div class="sixteen wide center aligned centered column">
+	{{template "base/alert" .}}
+</div>
+{{end}}

+ 64 - 0
templates/repo/issue/labels.tmpl

@@ -0,0 +1,64 @@
+{{template "base/head" .}}
+<div class="repository labels">
+	{{template "repo/header" .}}
+	<div class="ui middle page grid body">
+		<div class="navbar">
+			{{template "repo/issue/navbar" .}}
+			{{if .IsRepositoryAdmin}}
+			<form class="ui right form" action="{{$.RepoLink}}/labels/new" method="post">
+				{{.CsrfTokenHtml}}
+				<div class="ui right floated secondary menu">
+					<div class="item">
+						<div class="ui large input">
+						  <input class="new-label-input" name="title" placeholder="{{.i18n.Tr "repo.issues.new_label_placeholder"}}" required>
+						</div>
+					</div>
+					<div class="item">
+						<div class="ui large input">
+			        <input class="color-picker" name="color" value="#70c24a" required>
+			    	</div>
+					</div>
+					<div class="item precolors">
+						<a class="color" style="background-color:#e11d21" data-color-hex="#e11d21"></a>
+						<a class="color" style="background-color:#eb6420" data-color-hex="#eb6420"></a>
+						<a class="color" style="background-color:#fbca04" data-color-hex="#fbca04"></a>
+						<a class="color" style="background-color:#009800" data-color-hex="#009800"></a>
+						<a class="color" style="background-color:#006b75" data-color-hex="#006b75"></a>
+						<a class="color" style="background-color:#207de5" data-color-hex="#207de5"></a>
+						<a class="color" style="background-color:#0052cc" data-color-hex="#0052cc"></a>
+						<a class="color" style="background-color:#53e917" data-color-hex="#53e917"></a>
+						<a class="color" style="background-color:#f6c6c7" data-color-hex="#f6c6c7"></a>
+						<a class="color" style="background-color:#fad8c7" data-color-hex="#fad8c7"></a>
+						<a class="color" style="background-color:#fef2c0" data-color-hex="#fef2c0"></a>
+						<a class="color" style="background-color:#bfe5bf" data-color-hex="#bfe5bf"></a>
+						<a class="color" style="background-color:#bfdadc" data-color-hex="#bfdadc"></a>
+						<a class="color" style="background-color:#c7def8" data-color-hex="#c7def8"></a>
+						<a class="color" style="background-color:#bfd4f2" data-color-hex="#bfd4f2"></a>
+						<a class="color" style="background-color:#d4c5f9" data-color-hex="#d4c5f9"></a>
+					</div>
+					<button class="ui green button">{{.i18n.Tr "repo.issues.new_label"}}</button>
+				</div>
+			</form>
+			{{end}}
+		</div>
+		<div class="ui divider"></div>
+		{{template "repo/issue/alert" .}}
+		<div class="ui left">
+			<div class="ui black label">{{.i18n.Tr "repo.issues.label_count" .NumLabels}}</div>
+		</div>
+
+		<div class="label list">
+			{{range .Labels}}
+			<li class="item">
+				<div class="ui label" style="background-color: {{.Color}}"><i class="octicon octicon-tag"></i> {{.Name}}</div>
+				{{if $.IsRepositoryAdmin}}
+				<a class="ui right" href="#"><i class="octicon octicon-x"></i> {{$.i18n.Tr "repo.issues.label_delete"}}</a>
+				<a class="ui right" href="#"><i class="octicon octicon-pencil"></i> {{$.i18n.Tr "repo.issues.label_edit"}}</a>
+				{{end}}
+				<a class="ui right open-issues" href="{{$.RepoLink}}/issues?labels={{.ID}}"><i class="octicon octicon-issue-opened"></i> {{$.i18n.Tr "repo.issues.label_open_issues" .NumOpenIssues}}</a>
+			</li>
+			{{end}}
+		</div>
+	</div>
+</div>
+{{template "base/footer" .}}

+ 4 - 2
templates/repo/issue/list.tmpl

@@ -4,9 +4,11 @@
 	<div class="ui middle page grid body">
 	<div class="ui middle page grid body">
 		<div class="navbar">
 		<div class="navbar">
 			{{template "repo/issue/navbar" .}}
 			{{template "repo/issue/navbar" .}}
+			{{if .IsRepositoryAdmin}}
 			<div class="ui right floated secondary menu">
 			<div class="ui right floated secondary menu">
 				<a class="ui green button" href="{{$.RepoLink}}/issues/new">{{.i18n.Tr "repo.issues.new"}}</a>
 				<a class="ui green button" href="{{$.RepoLink}}/issues/new">{{.i18n.Tr "repo.issues.new"}}</a>
 			</div>
 			</div>
+			{{end}}
 		</div>
 		</div>
 		<div class="ui divider"></div>
 		<div class="ui divider"></div>
 		<div class="ui left">
 		<div class="ui left">
@@ -29,7 +31,7 @@
 				</span>
 				</span>
         <div class="menu">
         <div class="menu">
         	{{range .Labels}}
         	{{range .Labels}}
-        	<a class="item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&state={{$.State}}&labels={{.Id}}"><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}</a>
+        	<a class="item" href="{{$.RepoLink}}/issues?type={{$.ViewType}}&state={{$.State}}&labels={{.ID}}"><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}</a>
           {{end}}
           {{end}}
 				</div>
 				</div>
 			</div>
 			</div>
@@ -73,7 +75,7 @@
 			{{range .Issues}}
 			{{range .Issues}}
 			{{ $timeStr:= TimeSince .Created $.Lang }}
 			{{ $timeStr:= TimeSince .Created $.Lang }}
       <li class="item">
       <li class="item">
-      	<div class="ui {{if .IsRead}}black{{else}}green{{end}} label">#{{.Id}}</div>
+      	<div class="ui {{if .IsRead}}black{{else}}green{{end}} label">#{{.Index}}</div>
       	<a class="title" href="{{$.RepoLink}}/issues/{{.Index}}">{{.Name}}</a>
       	<a class="title" href="{{$.RepoLink}}/issues/{{.Index}}">{{.Name}}</a>
       	{{if .NumComments}}<span class="comment ui right"><i class="octicon octicon-comment"></i> {{.NumComments}}</span>{{end}}
       	{{if .NumComments}}<span class="comment ui right"><i class="octicon octicon-comment"></i> {{.NumComments}}</span>{{end}}
         <p class="desc">{{$.i18n.Tr "repo.issues.opened_by" $timeStr .Poster.Name|Str2html}}</p>
         <p class="desc">{{$.i18n.Tr "repo.issues.opened_by" $timeStr .Poster.Name|Str2html}}</p>

+ 1 - 1
templates/repo/issue/navbar.tmpl

@@ -1,7 +1,7 @@
 <div class="ui left">
 <div class="ui left">
 	<div class="ui compact menu">
 	<div class="ui compact menu">
 	  <a class="{{if .PageIsIssueList}}active{{end}} item" href="{{.RepoLink}}/issues">{{.i18n.Tr "repo.issues"}}</a>
 	  <a class="{{if .PageIsIssueList}}active{{end}} item" href="{{.RepoLink}}/issues">{{.i18n.Tr "repo.issues"}}</a>
-	  <a class="item" href="{{.RepoLink}}/labels">{{.i18n.Tr "repo.labels"}}</a>
+	  <a class="{{if .PageIsLabels}}active{{end}} item" href="{{.RepoLink}}/labels">{{.i18n.Tr "repo.labels"}}</a>
 	  <a class="item" href="{{.RepoLink}}/milestones">{{.i18n.Tr "repo.milestones"}}</a>
 	  <a class="item" href="{{.RepoLink}}/milestones">{{.i18n.Tr "repo.milestones"}}</a>
 	</div>
 	</div>
 </div>
 </div>

+ 5 - 5
templates/repo/issue/view.tmpl

@@ -3,15 +3,15 @@
 {{template "repo/nav" .}}
 {{template "repo/nav" .}}
 {{template "repo/toolbar" .}}
 {{template "repo/toolbar" .}}
 <div id="body" class="container">
 <div id="body" class="container">
-    <div id="issue" data-id="{{.Issue.Id}}">
-        <div id="issue-{{.Issue.Id}}" class="issue-whole issue-is-opening">
+    <div id="issue" data-id="{{.Issue.ID}}">
+        <div id="issue-{{.Issue.ID}}" class="issue-whole issue-is-opening">
             <div class="issue-wrap col-md-10">
             <div class="issue-wrap col-md-10">
                 <div class="issue-head clearfix">
                 <div class="issue-head clearfix">
                     <div class="number pull-right">#{{.Issue.Index}}</div>
                     <div class="number pull-right">#{{.Issue.Index}}</div>
                     <a class="author pull-left" href="{{AppSubUrl}}/{{.Issue.Poster.Name}}"><img class="avatar" src="{{.Issue.Poster.AvatarLink}}" alt="" width="30"/></a>
                     <a class="author pull-left" href="{{AppSubUrl}}/{{.Issue.Poster.Name}}"><img class="avatar" src="{{.Issue.Poster.AvatarLink}}" alt="" width="30"/></a>
                     <h1 class="title pull-left">{{.Issue.Name}}</h1>
                     <h1 class="title pull-left">{{.Issue.Name}}</h1>
                     <input id="issue-edit-title" class="form-control input-lg pull-left hidden" type="text" value="{{.Issue.Name}}" data-ajax-rel="issue-edit-save" data-ajax-val="val" data-ajax-field="title"/>
                     <input id="issue-edit-title" class="form-control input-lg pull-left hidden" type="text" value="{{.Issue.Name}}" data-ajax-rel="issue-edit-save" data-ajax-val="val" data-ajax-field="title"/>
-                    <input type="hidden" value="{{.Issue.Id}}" data-ajax-rel="issue-edit-save" data-ajax-val="val" data-ajax-field="issue_id"/>
+                    <input type="hidden" value="{{.Issue.ID}}" data-ajax-rel="issue-edit-save" data-ajax-val="val" data-ajax-field="issue_id"/>
                     <p class="info pull-left">
                     <p class="info pull-left">
                         {{if .IsIssueOwner}}<a class="btn btn-default pull-right issue-edit" href="#" id="issue-edit-btn">Edit</a>
                         {{if .IsIssueOwner}}<a class="btn btn-default pull-right issue-edit" href="#" id="issue-edit-btn">Edit</a>
                         <a class="btn btn-danger pull-right issue-edit-cancel hidden" href="#">Cancel</a>
                         <a class="btn btn-danger pull-right issue-edit-cancel hidden" href="#">Cancel</a>
@@ -178,7 +178,7 @@
                         <div class="dropdown-menu dropdown-menu-right no">
                         <div class="dropdown-menu dropdown-menu-right no">
                             <ul class="list-unstyled">
                             <ul class="list-unstyled">
                                 {{range .Labels}}
                                 {{range .Labels}}
-                                <li class="{{if not .IsChecked}}no-{{end}}checked" data-id="{{.Id}}">
+                                <li class="{{if not .IsChecked}}no-{{end}}checked" data-id="{{.ID}}">
                                     {{if .IsChecked}}<span class="check pull-left"><i class="fa fa-check"></i></span>{{end}}
                                     {{if .IsChecked}}<span class="check pull-left"><i class="fa fa-check"></i></span>{{end}}
                                     <span class="color" style="background-color: {{.Color}}"></span>
                                     <span class="color" style="background-color: {{.Color}}"></span>
                                     <span class="name">{{.Name}}</span>
                                     <span class="name">{{.Name}}</span>
@@ -191,7 +191,7 @@
                     <h4>Labels</h4>
                     <h4>Labels</h4>
                     {{if .Issue.Labels}}
                     {{if .Issue.Labels}}
                     {{range .Issue.Labels}}
                     {{range .Issue.Labels}}
-                    <p id="label-{{.Id}}" class="label-item label-white" style="background-color: {{.Color}}"><strong>{{.Name}}</strong></p>
+                    <p id="label-{{.ID}}" class="label-item label-white" style="background-color: {{.Color}}"><strong>{{.Name}}</strong></p>
                     {{end}}
                     {{end}}
                     {{else}}
                     {{else}}
                     <p>None yet</p>
                     <p>None yet</p>

+ 0 - 74
templates/repo/issue2/labels.tmpl

@@ -1,74 +0,0 @@
-{{template "ng/base/head" .}}
-{{template "ng/base/header" .}}
-<div id="repo-wrapper">
-    {{template "repo/header_old" .}}
-    <div class="issue-main container repo-wide-wrapper">
-        <ul id="issue-list-nav" class="menu menu-line">
-            <li><a href="#">Issue</a></li>
-            <li><a href="#">Pull Request</a></li>
-            <li class="current"><a href="#">Labels</a></li>
-            <li><a href="#">Milestones</a></li>
-            <li class="right" id="label-new"><a href="#"><button id="label-new-btn" class="btn btn-green text-bold">New Label</button></a></li>
-        </ul>
-        <form id="label-add-form" action="#" class="form clear hidden">
-            <input type="text" class="ipt" name="name" placeholder="label name" id="label-add-name"/>
-            <div class="inline down drop label-color-drop">
-                <label for="label-add-color"></label>
-                <input class="ipt" name="color" type="text" placeholder="color" id="label-add-color"/>
-                <div class="drop-down">
-                    <a href="#" class="color" style="background: red"></a>
-                    <a href="#" class="color" style="background: green"></a>
-                </div>
-            </div>
-            <button class="btn btn-gray right" type="button" id="label-cancel-btn">Cancel</button>
-            <button class="btn btn-green right" id="label-add-btn">Create</button>
-        </form>
-        <div id="issue-list-container">
-            <div id="issue-list-menu">
-                <div class="left"><span class="label label-black" id="labels-num">6</span><strong>Labels</strong></div>
-                <div class="clear"></div>
-            </div>
-            <ul id="label-list" class="list-no-style">
-                <li class="item" id="label-id">
-                    <a class="right delete" href="#"><i class="octicon octicon-x"></i>Delete</a>
-                    <a class="right edit" href="#"><i class="octicon octicon-pencil"></i>Edit</a>
-                    <a class="right issue-num" href="#"><i class="octicon octicon-issue-opened"></i><strong class="num">12</strong>Issues</a>
-                    <a class="left label clear" href="#" style="background-color: #0052cc" data-color-hex="#0052cc"><i class="octicon octicon-tag"></i><strong>bug</strong></a>
-                </li>
-                <li class="item" id="label-id">
-                    <a class="right" href="#"><i class="octicon octicon-x"></i>Delete</a>
-                    <a class="right" href="#"><i class="octicon octicon-pencil"></i>Edit</a>
-                    <a class="right issue-num" href="#"><i class="octicon octicon-issue-opened"></i><strong class="num">12</strong>Issues</a>
-                    <a class="left label clear" href="#" style="background-color: red"><i class="octicon octicon-tag"></i><strong>bug</strong></a>
-                </li>
-            </ul>
-        </div>
-    </div>
-</div>
-<div id="label-edit-form-tpl" class="hidden">
-    <li class="item"><form id="label-edit-form" action="#" class="form clear">
-        <input type="text" class="ipt" name="name" placeholder="label name" id="label-edit-name"/>
-        <input type="hidden" name="id" value="id"/>
-        <div class="inline down drop label-color-drop">
-            <label for="label-add-color"></label>
-            <input class="ipt" name="color" type="text" placeholder="color" id="label-edit-color"/>
-            <div class="drop-down">
-                <a href="#" class="color" style="background: red"></a>
-                <a href="#" class="color" style="background: green"></a>
-            </div>
-        </div>
-        <button class="btn btn-gray right" type="button" id="label-edit-cancel-btn">Cancel</button>
-        <button class="btn btn-green right" id="label-edit-btn">Save Changes</button>
-    </form></li>
-</div>
-<div id="label-delete-form-tpl" class="hidden">
-    <li class="item">
-        <form id="label-delete-form" action="#">
-            <input type="hidden" name="id" value="id"/>
-            <span><strong class="text-red">Are you sure?</strong> Deleting a label will remove it from all issues and pull requests.</span>
-            <button class="btn btn-gray right" type="button" id="label-del-cancel-btn">Cancel</button>
-            <button class="btn btn-red right" id="label-del-btn">Delete</button>
-        </form>
-    </li>
-</div>
-{{template "ng/base/footer" .}}

Some files were not shown because too many files changed in this diff