diff --git a/.gitignore b/.gitignore index 425f227c1..eab518bb5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ + + gogs *.exe *.exe~ @@ -9,4 +11,27 @@ data/ .vendor/ .idea/ *.iml -public/img/avatar/ \ No newline at end of file +public/img/avatar/ + +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe \ No newline at end of file diff --git a/LICENSE b/LICENSE index 7cecc2485..3af16b072 100644 --- a/LICENSE +++ b/LICENSE @@ -1,19 +1,27 @@ -Copyright (c) 2011 Dmitriy Zaporozhets +Copyright (c) 2014 +All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the {organization} nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/conf/app.ini b/conf/app.ini index 4c2398dd6..1a96ebeab 100644 --- a/conf/app.ini +++ b/conf/app.ini @@ -1,7 +1,7 @@ ; App name that shows on every page title APP_NAME = Gogs: Go Git Service APP_LOGO = img/favicon.png -; Check it if you run locally +; Change it if you run locally RUN_USER = git ; Either "dev", "prod" or "test", default is "dev" RUN_MODE = dev @@ -164,4 +164,4 @@ RECEIVERS = [log.database] LEVEL = Driver = -CONN = \ No newline at end of file +CONN = diff --git a/modules/avatar/avatar.go b/modules/avatar/avatar.go index 0ba20294a..3b423a6d1 100644 --- a/modules/avatar/avatar.go +++ b/modules/avatar/avatar.go @@ -251,8 +251,8 @@ var client = &http.Client{} func (this *thunderTask) fetch() error { req, _ := http.NewRequest("GET", this.Url, nil) - req.Header.Set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8") - req.Header.Set("Accept-Encoding", "gzip,deflate,sdch") + req.Header.Set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/jpeg,image/png,*/*;q=0.8") + req.Header.Set("Accept-Encoding", "deflate,sdch") req.Header.Set("Accept-Language", "zh-CN,zh;q=0.8") req.Header.Set("Cache-Control", "no-cache") req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36") diff --git a/modules/base/conf.go b/modules/base/conf.go index c692ddc23..d0f8ae2cc 100644 --- a/modules/base/conf.go +++ b/modules/base/conf.go @@ -243,7 +243,7 @@ func newNotifyMailService() { } func NewConfigContext() { - var err error + //var err error workDir, err := exeDir() if err != nil { fmt.Printf("Fail to get work directory: %s\n", err) diff --git a/public/css/gogs.css b/public/css/gogs.css index 8b031d6ed..c8c5d87b8 100755 --- a/public/css/gogs.css +++ b/public/css/gogs.css @@ -52,14 +52,14 @@ html, body { } /* gogits nav header */ -.gogs-masthead { +.masthead { background-color: #428bca; box-shadow: inset 0 -2px 5px rgba(0, 0, 0, .1); margin: 0; } /* gogits nav item link */ -.gogs-nav-item { +.nav-item { position: relative; display: inline-block; padding: 10px; @@ -69,39 +69,39 @@ html, body { height: 46px; } -#gogs-nav-logo { +#nav-logo { padding-left: 0; padding-right: 0; margin-right: 10px; } -.gogs-nav-item:hover, -.gogs-nav-item:focus { +.nav-item:hover, +.nav-item:focus { color: #fff; text-decoration: none; } -.gogs-nav-item.navbar-right { +.nav-item.navbar-right { margin-top: 3px; } -.gogs-nav-item.navbar-btn { +.nav-item.navbar-btn { cursor: pointer; margin-top: 8px; padding: 5px 15px; height: 30px; } -.gogs-nav-item.navbar-right .fa { +.nav-item.navbar-right .fa { margin: 0; } /* gogits nav item active status */ -.gogs-nav .active { +.nav .active { color: #fff; } -.gogs-nav .active:after { +.nav .active:after { position: absolute; bottom: -1px; left: 50%; @@ -115,29 +115,29 @@ html, body { border-left: 5px solid transparent; } -#gogs-nav-logo:after { +#nav-logo:after { bottom: -4px !important; } -#gogs-nav-avatar:after { +#nav-avatar:after { bottom: -4px !important; } -.gogs-nav .tooltip { +.nav .tooltip { border: none; } /* gogits logo */ -#gogs-nav-avatar { +#nav-avatar { margin-top: 0; } -#gogs-logo, #gogs-nav-avatar img { +#logo, #nav-avatar img { width: 28px; height: 28px; } -#gogs-nav-out { +#nav-out { margin-top: 10px; padding: 5px 0; margin-left: 10px; @@ -145,56 +145,56 @@ html, body { float: right; } -#gogs-nav-signin, #gogs-nav-signup { +#nav-signin, #nav-signup { float: right; margin-left: 1em; } -#gogs-nav-out .fa { +#nav-out .fa { vertical-align: -10%; margin: 0 .5em; } /* gogits body */ -#gogs-body { +#body { padding-bottom: 60px; margin-top: 30px; } -#gogs-body .btn-default { +#body .btn-default { background-color: #FFF; background-image: linear-gradient(to bottom, #FFF 0, #FAFAFA 100%); } -#gogs-body-nav { +#body-nav { background-color: #FFF; border-bottom: 1px solid #DDD; height: 66px } -#gogs-body-nav .nav { +#body-nav .nav { font-size: 14px; margin-top: 12px; } -#gogs-body-nav .nav-pills li a { +#body-nav .nav-pills li a { color: #444; } -#gogs-body-nav .nav-pills li.active a { +#body-nav .nav-pills li.active a { font-weight: bold; border-bottom: 2px solid #d26911; background-color: transparent; color: #444; } -#gogs-body-nav .nav-pills li:hover a { +#body-nav .nav-pills li:hover a { background-color: transparent; text-decoration: underline; } /* gogits login card */ -.gogs-card { +.card { margin: auto; padding: 30px; background: #fff; @@ -203,78 +203,87 @@ html, body { box-sizing: border-box; } -.gogs-card h3 { +.card h3 { margin-top: 0; margin-bottom: 30px; padding-bottom: 20px; border-bottom: 1px solid #ccc; } -#gogs-login-card { +#login-card { width: 600px; } -#gogs-login-card .form-control { +#login-card .form-control { padding: 6px 12px; box-sizing: content-box; } -#gogs-login-card .control-label { +#login-card .control-label { height: 44px; line-height: 30px; } -.gogs-card .btn { +#install-card { + width: 800px; +} + +#install-card .form-group { + margin-left: 0; + margin-right: 0; +} + +.card .btn { cursor: pointer; margin-right: 1.2em; } -#gogs-social-login { +#social-login { margin-top: 30px; padding-top: 20px; border-top: 1px solid #ccc; } -#gogs-social-login .btn { +#social-login .btn { float: none; margin: auto; } /* gogs-user-profile */ -#gogs-user-avatar { +#user-avatar { width: 200px; height: 200px; border-radius: 6px; } -#gogs-user-avatar-commit { +#user-avatar-commit { width: 16px; height: 16px; border-radius: 2px; } -#gogs-user-name { +#user-name { margin-top: 20px; font-size: 1.6em; font-weight: bold; margin-bottom: 20px; } -#gogs-user-profile .profile-info .list-group-item { +#user-profile .profile-info .list-group-item { background-color: transparent; padding-top: 18px; color: #666; } -#gogs-user-profile .profile-info .list-group-item a { +#user-profile .profile-info .list-group-item a { margin: 0; padding: 0; display: inline; color: #0093c4; } -#gogs-user-profile .profile-info .list-group { +#user-profile .profile-info .list-group { border-top: 1px solid #ccc; padding-bottom: 18px; border-bottom: 1px solid #ccc; @@ -282,50 +291,50 @@ html, body { padding-right: 18px; } -#gogs-user-activity .tab-pane { +#user-activity .tab-pane { padding: 20px; } -#gogs-user-act-tabs li.active a { +#user-act-tabs li.active a { border-bottom-color: #ddd; } /* gogits repo create */ -#gogs-repo-create { +#repo-create { width: 800px; } -#gogs-repo-create textarea[name=desc] { +#repo-create textarea[name=desc] { height: 8em; } /* gogits user setting */ -#gogs-user-setting-nav > h4, #gogs-user-setting-container > h4, #gogs-user-setting-container > div > h4, -#gogs-ssh-keys > h4, #gogs-user-delete > h4, #gogs-repo-setting-container .tab-pane > h4 { +#user-setting-nav > h4, #user-setting-container > h4, #user-setting-container > div > h4, +#ssh-keys > h4, #user-delete > h4, #repo-setting-container .tab-pane > h4 { padding-bottom: 18px; margin-bottom: 18px; border-bottom: 1px solid #CCC; } -#gogs-user-setting-nav .list-group .list-group-item a { +#user-setting-nav .list-group .list-group-item a { margin-left: 0; padding: .6em; font-size: 14px; color: #3B73AF; } -#gogs-user-setting-nav .list-group .list-group-item { +#user-setting-nav .list-group .list-group-item { background-color: transparent; } -#gogs-user-setting-nav .list-group .list-group-item-success a { +#user-setting-nav .list-group .list-group-item-success a { font-weight: bold; color: #444; } -.gogs-admin-nav { +.admin-nav { background-color: #FFF; padding-top: 10px; padding-left: 0; @@ -333,49 +342,49 @@ html, body { border: 1px solid #D8D8D8; } -.gogs-admin-nav li { +.admin-nav li { margin-bottom: 8px; border-left: 4px solid transparent; } -.gogs-admin-nav li:hover { +.admin-nav li:hover { border-left-color: #EEE; } -.gogs-admin-nav li.active:hover { +.admin-nav li.active:hover { border-left: 4px solid #DD4B39; } -#gogs-repo-setting-container .form-horizontal label { +#repo-setting-container .form-horizontal label { line-height: 30px; } /* gogits user ssh keys */ -#gogs-ssh-keys .list-group-item { +#ssh-keys .list-group-item { padding: 15px 0; border-bottom: 1px solid #DDD; } -#gogs-ssh-keys .list-group-item .delete { +#ssh-keys .list-group-item .delete { margin: -5px 50px 0; } -#gogs-ssh-keys .list-group-item:after { +#ssh-keys .list-group-item:after { clear: both; } -#gogs-ssh-keys .name { +#ssh-keys .name { font-size: 14px; font-weight: bold; } -#gogs-ssh-keys .print { +#ssh-keys .print { padding-left: 1em; color: #888; } -#gogs-ssh-add { +#ssh-add { display: inline-block; color: white; cursor: pointer; @@ -383,25 +392,25 @@ html, body { border-radius: 3px; } -#gogs-ssh-form textarea { +#ssh-form textarea { height: 16em; } -/* #gogs-feed */ +/* #feed */ -#gogs-feed-right .repo-panel .panel-heading .btn { +#feed-right .repo-panel .panel-heading .btn { margin-top: -4px; } -#gogs-feed-right .repo-panel .panel-body { +#feed-right .repo-panel .panel-body { padding: 0; } -#gogs-feed-right .repo-panel .list-group { +#feed-right .repo-panel .list-group { margin-bottom: 0; } -#gogs-feed-right .repo-panel .list-group-item a { +#feed-right .repo-panel .list-group-item a { display: block; margin-left: 0; background-color: transparent; @@ -409,11 +418,11 @@ html, body { font-weight: bold; } -#gogs-feed-right .repo-panel .list-group-item .fa { +#feed-right .repo-panel .list-group-item .fa { color: #666; } -#gogs-feed-right .repo-panel .list-group-item { +#feed-right .repo-panel .list-group-item { font-size: 14px; line-height: 32px; border-bottom: 1px solid #DDD; @@ -421,97 +430,101 @@ html, body { clear: both; } -#gogs-feed-right .repo-panel .list-group-item:last-child { +#feed-right .repo-panel .list-group-item:last-child { border-bottom: none; } -#gogs-feed-right .repo-panel .list-group-item:hover { +#feed-right .repo-panel .list-group-item:hover { background-color: #eafffd; background-color: rgba(65, 131, 196, 0.1); } -#gogs-feed-right .repo-panel span.stars { +#feed-right .repo-panel span.stars { color: #666; margin-right: 1em; } /* gogits repo single page */ -#gogs-body-nav.gogs-repo-nav { +#body-nav.repo-nav { padding-top: 16px; padding-bottom: 30px; height: auto; } -.gogs-repo-nav .name { +.repo-nav .name { margin-top: 15px; } -.gogs-repo-nav .desc { +.repo-nav .desc { color: #888; margin-bottom: 0; } -.gogs-repo-nav h3 .fa { +.repo-nav h3 .fa { color: #BBB; margin-left: 0; } -.gogs-repo-nav .actions { +.repo-nav .actions { padding-top: 20px; } -.gogs-repo-nav .btn-default { +.repo-nav .btn-default { font-family: Tahoma, Arial, sans-serif; } -#gogs-repo-watching .dropdown-menu { +#repo-watching .dropdown-menu { width: 280px; padding: 0; } -#gogs-repo-watching .dropdown-menu .dropdown-item:hover .dropdown-header, #gogs-repo-watching .dropdown-item .dropdown-header.text-primary { +#repo-watching .dropdown-menu .dropdown-item:hover .dropdown-header, #repo-watching .dropdown-item .dropdown-header.text-primary { color: rgb(65, 131, 196); cursor: pointer; } -#gogs-repo-watching .dropdown-menu .description { +#repo-watching .dropdown-menu .description { padding: 0 20px; color: #888; } -#gogs-repo-watching .dropdown-menu .dropdown-header { +#repo-watching .dropdown-menu .dropdown-header { color: #444; font-weight: bold; font-size: 14px; margin-bottom: 4px; } -#gogs-repo-toolbar { +#repo-toolbar { border-bottom: 1px solid #DDD; background-color: #FFF; height: 40px; font-size: 14px; } -#gogs-repo-toolbar .navbar-default { +#repo-toolbar .navbar-default { border: none; height: 39px; } -#gogs-repo-toolbar .nav > li > a { +#repo-toolbar .nav > li > a { height: 39px; } -#gogs-repo-toolbar .navbar-toolbar.navbar-default .navbar-nav > .active > a:after { +#repo-toolbar .nav .active { + color: #F6F6F6; +} + +#repo-toolbar .nav > .active > a:after { border-bottom-color: #999; } -#gogs-repo-toolbar .navbar.nav-toolbar { +#repo-toolbar .navbar.nav-toolbar { margin-bottom: 0; } -#gogs-repo-toolbar .navbar-collapse { +#repo-toolbar .navbar-collapse { padding: 0; } @@ -579,29 +592,29 @@ html, body { min-width: 200px; } -#gogs-repo-clone .dropdown-menu { +#repo-clone .dropdown-menu { width: 400px; padding: 20px; } -#gogs-repo-clone .input-group { +#repo-clone .input-group { margin-bottom: 15px; } -/* #gogs-source */ -#gogs-source { +/* #source */ +#source { margin-top: -20px; } -#gogs-source .source-toolbar:after { +#source .source-toolbar:after { clear: both; } -#gogs-source .source-toolbar .branch-switch { +#source .source-toolbar .branch-switch { display: inline-block; } -#gogs-source .source-toolbar .breadcrumb { +#source .source-toolbar .breadcrumb { margin: 0 .5em; padding: 6px 15px; font-size: 16px; @@ -610,9 +623,9 @@ html, body { background-color: transparent; } -#gogs-source .source-toolbar, -#gogs-source .info-box, -#gogs-source .file-content { +#source .source-toolbar, +#source .info-box, +#source .file-content { margin: 0 0 10px; } @@ -676,7 +689,7 @@ html, body { margin: 0 .5em 0 0; } -.file-content .file-head .file-size{ +.file-content .file-head .file-size { font-size: 13px; color: #888; margin-left: 1em; @@ -932,7 +945,7 @@ html, body { color: #888; } -#gogs-source .file-content.diff-file-box { +#source .file-content.diff-file-box { margin-bottom: 20px; } diff --git a/public/js/app.js b/public/js/app.js index f98fd03f8..0973398a5 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -243,7 +243,7 @@ function initCore() { function initRegister() { $.getScript("/js/jquery.validate.min.js", function () { - Gogits.validateForm("#gogs-login-card", { + Gogits.validateForm("#login-card", { rules: { "username": { required: true, @@ -268,7 +268,7 @@ function initRegister() { } function initUserSetting() { - $('#gogs-ssh-keys .delete').confirmation({ + $('#ssh-keys .delete').confirmation({ singleton: true, onConfirm: function (e, $this) { Gogits.ajaxDelete("", {"id": $this.data("del")}, function (json) { @@ -303,7 +303,7 @@ function initRepository() { // watching script (function () { - var $watch = $('#gogs-repo-watching'), + var $watch = $('#repo-watching'), watchLink = $watch.data("watch"), unwatchLink = $watch.data("unwatch"); $watch.on('click', '.to-watch',function () { @@ -354,14 +354,14 @@ function initRepository() { (function ($) { $(function () { initCore(); - var body = $("#gogs-body"); + var body = $("#body"); if (body.data("page") == "user-signup") { initRegister(); } if (body.data("page") == "user") { initUserSetting(); } - if ($('.gogs-repo-nav').length) { + if ($('.repo-nav').length) { initRepository(); } }); diff --git a/routers/install.go b/routers/install.go new file mode 100644 index 000000000..d7d5159ef --- /dev/null +++ b/routers/install.go @@ -0,0 +1,13 @@ +// Copyright 2014 The Gogs Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package routers + +import "github.com/gogits/gogs/modules/middleware" + +func Install(ctx *middleware.Context){ + ctx.Data["PageIsInstall"] = true + ctx.Data["Title"] = "Install" + ctx.HTML(200,"install") +} diff --git a/routers/repo/issue.go b/routers/repo/issue.go index e03f115e2..d54582a2a 100644 --- a/routers/repo/issue.go +++ b/routers/repo/issue.go @@ -45,6 +45,7 @@ func CreateIssue(ctx *middleware.Context, params martini.Params, form auth.Creat } ctx.Data["Title"] = "Create issue" + ctx.Data["IsRepoToolbarIssues"] = true if ctx.Req.Method == "GET" { ctx.HTML(200, "issue/create") diff --git a/serve.go b/serve.go index c3eb233c7..acdcb877f 100644 --- a/serve.go +++ b/serve.go @@ -13,6 +13,7 @@ import ( "os/exec" "strconv" "strings" + "time" "github.com/codegangsta/cli" "github.com/gogits/gogs/modules/log" @@ -45,8 +46,10 @@ gogs serv provide access auth for repositories`, } func init() { + level := "0" os.MkdirAll("log", os.ModePerm) - log.NewLogger(10000, "file", fmt.Sprintf(`{"filename":"%s"}`, "log/serv.log")) + log.NewLogger(10000, "file", fmt.Sprintf(`{"level":%s,"filename":"%s"}`, level, "log/serv.log")) + log.Info("start logging...") } func parseCmd(cmd string) (string, string) { @@ -109,25 +112,32 @@ func runServ(k *cli.Context) { repoName = repoName[:len(repoName)-4] } + isWrite := In(verb, COMMANDS_WRITE) + isRead := In(verb, COMMANDS_READONLY) + repo, err := models.GetRepositoryByName(user.Id, repoName) var isExist bool = true if err != nil { if err == models.ErrRepoNotExist { isExist = false + if isRead { + println("Repository", user.Name+"/"+repoName, "is not exist") + return + } } else { - println("Unavilable repository", err) + println("Get repository error:", err) + log.Error(err.Error()) return } } - isWrite := In(verb, COMMANDS_WRITE) - isRead := In(verb, COMMANDS_READONLY) - + // access check switch { case isWrite: has, err := models.HasAccess(user.Name, repoName, models.AU_WRITABLE) if err != nil { println("Inernel error:", err) + log.Error(err.Error()) return } if !has { @@ -138,12 +148,14 @@ func runServ(k *cli.Context) { has, err := models.HasAccess(user.Name, repoName, models.AU_READABLE) if err != nil { println("Inernel error") + log.Error(err.Error()) return } if !has { has, err = models.HasAccess(user.Name, repoName, models.AU_WRITABLE) if err != nil { println("Inernel error") + log.Error(err.Error()) return } } @@ -156,28 +168,30 @@ func runServ(k *cli.Context) { return } + var rep *git.Repository + repoPath := models.RepoPath(user.Name, repoName) if !isExist { - if isRead { - println("Repository", user.Name+"/"+repoName, "is not exist") - return - } else if isWrite { - _, err := models.CreateRepository(user, repoName, "", "", "", false, true) + if isWrite { + _, err = models.CreateRepository(user, repoName, "", "", "", false, true) if err != nil { println("Create repository failed") + log.Error(err.Error()) return } } } - rep, err := git.OpenRepository(models.RepoPath(user.Name, repoName)) - if err != nil { - println(err.Error()) - return - } + rep, err = git.OpenRepository(repoPath) + if err != nil { + println("OpenRepository failed:", err.Error()) + log.Error(err.Error()) + return + } refs, err := rep.AllReferencesMap() if err != nil { - println(err.Error()) + println("Get All References failed:", err.Error()) + log.Error(err.Error()) return } @@ -194,17 +208,17 @@ func runServ(k *cli.Context) { if err = gitcmd.Run(); err != nil { println("execute command error:", err.Error()) - } - - if !strings.HasPrefix(cmd, "git-receive-pack") { + log.Error(err.Error()) return } - // update - //w, _ := os.Create("serve.log") - //defer w.Close() - //log.SetOutput(w) + if isRead { + return + } + time.Sleep(time.Second) + + // find push reference name var t = "ok refs/heads/" var i int var refname string @@ -220,24 +234,31 @@ func runServ(k *cli.Context) { refname = l[idx+len(t):] } } + if refname == "" { + println("No find any reference name:", b.String()) + return + } + var ref *git.Reference var ok bool - var l *list.List //log.Info("----", refname, "-----") if ref, ok = refs[refname]; !ok { + // for new branch refs, err = rep.AllReferencesMap() if err != nil { - println(err.Error()) + println("Get All References failed:", err.Error()) + log.Error(err.Error()) return } if ref, ok = refs[refname]; !ok { - log.Trace("unknow reference name -", refname, "-", b.String()) + log.Error("unknow reference name -", refname, "-", b.String()) return } l, err = ref.AllCommits() if err != nil { - println(err.Error()) + println("Get All Commits failed:", err.Error()) + log.Error(err.Error()) return } } else { @@ -246,20 +267,23 @@ func runServ(k *cli.Context) { //log.Info("00000", ref.Oid.String()) last, err = ref.LastCommit() if err != nil { - println(err.Error()) + println("Get last commit failed:", err.Error()) + log.Error(err.Error()) return } ref2, err := rep.LookupReference(ref.Name) if err != nil { - println(err.Error()) + println("look up reference failed:", err.Error()) + log.Error(err.Error()) return } //log.Info("11111", ref2.Oid.String()) before, err := ref2.LastCommit() if err != nil { - println(err.Error()) + println("Get last commit failed:", err.Error()) + log.Error(err.Error()) return } //log.Info("----", before.Id(), "-----", last.Id()) @@ -280,13 +304,8 @@ func runServ(k *cli.Context) { repo.Id, repoName, refname, &base.PushCommits{l.Len(), commits}); err != nil { log.Error("runUpdate.models.CommitRepoAction: %v", err, commits) } else { - //log.Info("refname", refname) - //log.Info("Listen: %v", cmd) - //fmt.Println("...", cmd) - - //runUpdate(k) c := exec.Command("git", "update-server-info") - c.Dir = models.RepoPath(user.Name, repoName) + c.Dir = repoPath err := c.Run() if err != nil { log.Error("update-server-info: %v", err) diff --git a/templates/admin/config.tmpl b/templates/admin/config.tmpl index 1e2630460..39895aa31 100644 --- a/templates/admin/config.tmpl +++ b/templates/admin/config.tmpl @@ -1,8 +1,8 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body" class="container" data-page="admin"> +<div id="body" class="container" data-page="admin"> {{template "admin/nav" .}} - <div id="gogs-admin-container" class="col-md-9"> + <div id="admin-container" class="col-md-9"> <div class="panel panel-default"> <div class="panel-heading"> Server Configuration diff --git a/templates/admin/dashboard.tmpl b/templates/admin/dashboard.tmpl index 2a5a161e0..e0b31817a 100644 --- a/templates/admin/dashboard.tmpl +++ b/templates/admin/dashboard.tmpl @@ -1,8 +1,8 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body" class="container" data-page="admin"> +<div id="body" class="container" data-page="admin"> {{template "admin/nav" .}} - <div id="gogs-admin-container" class="col-md-9"> + <div id="admin-container" class="col-md-9"> <div class="panel panel-default"> <div class="panel-heading"> Statistic diff --git a/templates/admin/nav.tmpl b/templates/admin/nav.tmpl index 72f008acc..8c2e33888 100644 --- a/templates/admin/nav.tmpl +++ b/templates/admin/nav.tmpl @@ -1,4 +1,4 @@ -<div id="gogs-user-setting-nav" class="col-md-3 gogs-admin-nav"> +<div id="user-setting-nav" class="col-md-3 admin-nav"> <ul class="list-group" data-init="tabs"> <li class="list-group-item{{if .PageIsDashboard}} active{{end}}"><a href="/admin"><i class="fa fa-tachometer fa-lg"></i> Dashboard</a></li> <li class="list-group-item{{if .PageIsUsers}} active{{end}}"><a href="/admin/users"><i class="fa fa-users fa-lg"></i> Users</a></li> diff --git a/templates/admin/repos.tmpl b/templates/admin/repos.tmpl index 2c91ccc09..8cc424db6 100644 --- a/templates/admin/repos.tmpl +++ b/templates/admin/repos.tmpl @@ -1,8 +1,8 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body" class="container" data-page="admin"> +<div id="body" class="container" data-page="admin"> {{template "admin/nav" .}} - <div id="gogs-admin-container" class="col-md-9"> + <div id="admin-container" class="col-md-9"> <div class="panel panel-default"> <div class="panel-heading"> Repository Management diff --git a/templates/admin/users.tmpl b/templates/admin/users.tmpl index dec5c1895..63da45174 100644 --- a/templates/admin/users.tmpl +++ b/templates/admin/users.tmpl @@ -1,8 +1,8 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body" class="container" data-page="admin"> +<div id="body" class="container" data-page="admin"> {{template "admin/nav" .}} - <div id="gogs-admin-container" class="col-md-9"> + <div id="admin-container" class="col-md-9"> <div class="panel panel-default"> <div class="panel-heading"> User Management diff --git a/templates/admin/users/edit.tmpl b/templates/admin/users/edit.tmpl index 08f11fcb1..5db2c7a95 100644 --- a/templates/admin/users/edit.tmpl +++ b/templates/admin/users/edit.tmpl @@ -1,8 +1,8 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body" class="container" data-page="admin"> +<div id="body" class="container" data-page="admin"> {{template "admin/nav" .}} - <div id="gogs-admin-container" class="col-md-9"> + <div id="admin-container" class="col-md-9"> <div class="panel panel-default"> <div class="panel-heading"> Edit Account diff --git a/templates/admin/users/new.tmpl b/templates/admin/users/new.tmpl index 7b41ae43a..7f441f32b 100644 --- a/templates/admin/users/new.tmpl +++ b/templates/admin/users/new.tmpl @@ -1,8 +1,8 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body" class="container" data-page="admin"> +<div id="body" class="container" data-page="admin"> {{template "admin/nav" .}} - <div id="gogs-admin-container" class="col-md-9"> + <div id="admin-container" class="col-md-9"> <div class="panel panel-default"> <div class="panel-heading"> New Account diff --git a/templates/base/navbar.tmpl b/templates/base/navbar.tmpl index 90e90f296..829ecba62 100644 --- a/templates/base/navbar.tmpl +++ b/templates/base/navbar.tmpl @@ -1,25 +1,25 @@ -<div class="gogs-masthead navbar" id="masthead"> +<div class="masthead navbar" id="masthead"> <div class="container"> - <nav class="gogs-nav"> - <a id="gogs-nav-logo" class="gogs-nav-item{{if .PageIsHome}} active{{end}}" href="/"><img src="/img/favicon.png" alt="Gogs Logo" id="gogs-logo"></a> - <a class="gogs-nav-item{{if .PageIsUserDashboard}} active{{end}}" href="/">Dashboard</a> - <a class="gogs-nav-item{{if .PageIsHelp}} active{{end}}" href="/help">Help</a>{{if .IsSigned}} - <a id="gogs-nav-out" class="gogs-nav-item navbar-right navbar-btn btn btn-danger" href="/user/logout/"><i class="fa fa-power-off fa-lg"></i></a> - <a id="gogs-nav-avatar" class="gogs-nav-item navbar-right{{if .PageIsUserProfile}} active{{end}}" href="{{.SignedUser.HomeLink}}" data-toggle="tooltip" data-placement="bottom" title="{{.SignedUserName}}"> + <nav class="nav"> + <a id="nav-logo" class="nav-item{{if .PageIsHome}} active{{end}}" href="/"><img src="/img/favicon.png" alt="Gogs Logo" id="logo"></a> + <a class="nav-item{{if .PageIsUserDashboard}} active{{end}}" href="/">Dashboard</a> + <a class="nav-item{{if .PageIsHelp}} active{{end}}" href="/help">Help</a>{{if .IsSigned}} + <a id="nav-out" class="nav-item navbar-right navbar-btn btn btn-danger" href="/user/logout/"><i class="fa fa-power-off fa-lg"></i></a> + <a id="nav-avatar" class="nav-item navbar-right{{if .PageIsUserProfile}} active{{end}}" href="{{.SignedUser.HomeLink}}" data-toggle="tooltip" data-placement="bottom" title="{{.SignedUserName}}"> <img src="{{.SignedUser.AvatarLink}}?s=28" alt="user-avatar" title="username"/> </a> - <a class="navbar-right gogs-nav-item{{if .PageIsNewRepo}} active{{end}}" href="/repo/create" data-toggle="tooltip" data-placement="bottom" title="New Repository"><i class="fa fa-plus fa-lg"></i></a> - <a class="navbar-right gogs-nav-item{{if .PageIsUserSetting}} active{{end}}" href="/user/setting" data-toggle="tooltip" data-placement="bottom" title="Setting"><i class="fa fa-cogs fa-lg"></i></a> - {{if .IsAdmin}}<a class="navbar-right gogs-nav-item{{if .PageIsAdmin}} active{{end}}" href="/admin" data-toggle="tooltip" data-placement="bottom" title="Admin"><i class="fa fa-gear fa-lg"></i></a>{{end}} - {{else}}<a id="gogs-nav-signin" class="gogs-nav-item navbar-right navbar-btn btn btn-danger" href="/user/login/">Sign In</a> - <a id="gogs-nav-signup" class="gogs-nav-item navbar-right" href="/user/sign_up/">Sign Up</a>{{end}} + <a class="navbar-right nav-item{{if .PageIsNewRepo}} active{{end}}" href="/repo/create" data-toggle="tooltip" data-placement="bottom" title="New Repository"><i class="fa fa-plus fa-lg"></i></a> + <a class="navbar-right nav-item{{if .PageIsUserSetting}} active{{end}}" href="/user/setting" data-toggle="tooltip" data-placement="bottom" title="Setting"><i class="fa fa-cogs fa-lg"></i></a> + {{if .IsAdmin}}<a class="navbar-right nav-item{{if .PageIsAdmin}} active{{end}}" href="/admin" data-toggle="tooltip" data-placement="bottom" title="Admin"><i class="fa fa-gear fa-lg"></i></a>{{end}} + {{else}}<a id="nav-signin" class="nav-item navbar-right navbar-btn btn btn-danger" href="/user/login/">Sign In</a> + <a id="nav-signup" class="nav-item navbar-right" href="/user/sign_up/">Sign Up</a>{{end}} </nav> </div> </div> <!--<nav class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> - <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#gogs-navbar-collapse"> + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse"> <i class="fa fa-bars"></i> </button> <a class="navbar-brand" href="/"><img src="/img/favicon.png" alt="Gogs Logo"></a> diff --git a/templates/help.tmpl b/templates/help.tmpl index b4d5d2a97..e835c2981 100644 --- a/templates/help.tmpl +++ b/templates/help.tmpl @@ -1,11 +1,11 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body-nav"> +<div id="body-nav"> <div class="container"> <h3>Help</h3> </div> </div> -<div id="gogs-body" class="container" data-page="user"> +<div id="body" class="container" data-page="user"> {{if .HasInfo}}<div class="alert alert-info">{{.InfoMsg}}</div>{{end}} </div> {{template "base/footer" .}} \ No newline at end of file diff --git a/templates/home.tmpl b/templates/home.tmpl index e07762432..381b6f1e8 100644 --- a/templates/home.tmpl +++ b/templates/home.tmpl @@ -1,6 +1,6 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body" class="container"> +<div id="body" class="container"> Welcome to the land of Gogs! There will be some indroduction! </div> {{template "base/footer" .}} \ No newline at end of file diff --git a/templates/install.tmpl b/templates/install.tmpl new file mode 100644 index 000000000..849491f89 --- /dev/null +++ b/templates/install.tmpl @@ -0,0 +1,70 @@ +{{template "base/head" .}} +<div id="body" class="container"> + <form action="/install" method="post" class="form-horizontal card" id="install-card"> + {{.CsrfTokenHtml}} + <h3>Install Steps</h3> + <div class="alert alert-danger form-error{{if .HasError}}{{else}} hidden{{end}}">{{.ErrorMsg}}</div> + <p class="help-block text-center">GoGits need MySQL or PostgreSQL server</p> + <div class="form-group {{if .Err_User}}has-error has-feedback{{end}}"> + <label class="col-md-3 control-label"><strong>MySQL </strong>Host: </label> + <div class="col-md-8"> + <input name="host" class="form-control" placeholder="Type mysql server ip or domain" value="localhost" required="required"> + </div> + </div> + <div class="form-group {{if .Err_User}}has-error has-feedback{{end}}"> + <label class="col-md-3 control-label">Port: </label> + <div class="col-md-8"> + <input name="port" class="form-control" placeholder="Type mysql server port" value="3306" required="required"> + </div> + </div> + <div class="form-group {{if .Err_User}}has-error has-feedback{{end}}"> + <label class="col-md-3 control-label">User: </label> + <div class="col-md-8"> + <input name="user" class="form-control" placeholder="Type mysql username" required="required"> + </div> + </div> + <div class="form-group {{if .Err_Password}}has-error has-feedback{{end}}"> + <label class="col-md-3 control-label">Password: </label> + <div class="col-md-8"> + <input name="passwd" type="password" class="form-control" placeholder="Type mysql password" required="required"> + </div> + </div> + <div class="form-group {{if .Err_Password}}has-error has-feedback{{end}}"> + <label class="col-md-3 control-label">Database: </label> + <div class="col-md-8"> + <input name="database" type="text" class="form-control" placeholder="Type mysql database name" value="gogs" required="required"> + <p class="help-block">Recommend use INNODB engine with utf8_general_ci charset.</p> + </div> + </div> + + <div class="form-group"> + <div class="col-md-8 col-md-offset-3"> + <button class="btn btn-sm btn-info">Test Connection</button> + </div> + </div> + + <hr/> + + <p class="help-block text-center">General settings for GoGits</p> + + <div class="form-group {{if .Err_Password}}has-error has-feedback{{end}}"> + <label class="col-md-3 control-label">Repository Path: </label> + <div class="col-md-8"> + <input name="repo-path" type="text" class="form-control" placeholder="Type your repository directory" value="/var/gogs/repostiory" required="required"> + <p class="help-block">The git copy of each repository is saved in this directory.</p> + </div> + </div> + <div class="form-group {{if .Err_Password}}has-error has-feedback{{end}}"> + <label class="col-md-3 control-label">System User: </label> + <div class="col-md-8"> + <input name="system-user" type="text" class="form-control" placeholder="Type mysql password" value="root" required="required"> + <p class="help-block">The user has access to visit and run GoGits.</p> + </div> + </div> + <hr/> + <div class="form-group text-center"> + <a class="btn btn-danger btn-lg">Install GoGits</a> + </div> + </form> +</div> +{{template "base/footer" .}} \ No newline at end of file diff --git a/templates/issue/create.tmpl b/templates/issue/create.tmpl new file mode 100644 index 000000000..2fb29d1b8 --- /dev/null +++ b/templates/issue/create.tmpl @@ -0,0 +1,10 @@ +{{template "base/head" .}} +{{template "base/navbar" .}} +{{template "repo/nav" .}} +{{template "repo/toolbar" .}} +<div id="body" class="container"> + <div id="source"> + new-issues + </div> +</div> +{{template "base/footer" .}} \ No newline at end of file diff --git a/templates/repo/branches.tmpl b/templates/repo/branches.tmpl index 63e77ab92..8d2d59d7f 100644 --- a/templates/repo/branches.tmpl +++ b/templates/repo/branches.tmpl @@ -2,8 +2,8 @@ {{template "base/navbar" .}} {{template "repo/nav" .}} {{template "repo/toolbar" .}} -<div id="gogs-body" class="container"> - <div id="gogs-source"> +<div id="body" class="container"> + <div id="source"> <div class="panel panel-default branch-box info-box"> <div class="panel-heading info-head"> <h4>Branches</h4> diff --git a/templates/repo/commits.tmpl b/templates/repo/commits.tmpl index 2e67a1200..2f308a108 100644 --- a/templates/repo/commits.tmpl +++ b/templates/repo/commits.tmpl @@ -2,8 +2,8 @@ {{template "base/navbar" .}} {{template "repo/nav" .}} {{template "repo/toolbar" .}} -<div id="gogs-body" class="container"> - <div id="gogs-commits"> +<div id="body" class="container"> + <div id="commits"> <div class="panel panel-default commit-box info-box"> <div class="panel-heading info-head"> <div class="search pull-right form"> diff --git a/templates/repo/create.tmpl b/templates/repo/create.tmpl index a43f51048..dc509fc1c 100644 --- a/templates/repo/create.tmpl +++ b/templates/repo/create.tmpl @@ -1,7 +1,7 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div class="container" id="gogs-body"> - <form action="/repo/create" method="post" class="form-horizontal gogs-card" id="gogs-repo-create"> +<div class="container" id="body"> + <form action="/repo/create" method="post" class="form-horizontal card" id="repo-create"> {{.CsrfTokenHtml}} <h3>Create New Repository</h3> <div class="alert alert-danger form-error{{if .HasError}}{{else}} hidden{{end}}">{{.ErrorMsg}}</div> diff --git a/templates/repo/diff.tmpl b/templates/repo/diff.tmpl index b0836127f..6a3c5fb30 100644 --- a/templates/repo/diff.tmpl +++ b/templates/repo/diff.tmpl @@ -2,8 +2,8 @@ {{template "base/navbar" .}} {{template "repo/nav" .}} {{template "repo/toolbar" .}} -<div id="gogs-body" class="container" data-page="repo"> - <div id="gogs-source"> +<div id="body" class="container" data-page="repo"> + <div id="source"> <div class="panel panel-info diff-box diff-head-box"> <div class="panel-heading"> <a class="pull-right btn btn-primary btn-sm" href="#commit-source">Browse Source</a> diff --git a/templates/repo/issues.tmpl b/templates/repo/issues.tmpl index daacc089c..df53197c3 100644 --- a/templates/repo/issues.tmpl +++ b/templates/repo/issues.tmpl @@ -2,8 +2,9 @@ {{template "base/navbar" .}} {{template "repo/nav" .}} {{template "repo/toolbar" .}} -<div id="gogs-body" class="container"> - <div id="gogs-source"> +<div id="body" class="container"> + <div id="source"> + issues </div> </div> {{template "base/footer" .}} \ No newline at end of file diff --git a/templates/repo/list.tmpl b/templates/repo/list.tmpl index 2c5432a17..403c62d62 100644 --- a/templates/repo/list.tmpl +++ b/templates/repo/list.tmpl @@ -1,6 +1,6 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div class="container" id="gogs-body"> +<div class="container" id="body"> <ul> {{range .Repos}} <li>{{.Name}} stars: {{.NumStars}} forks: {{.NumForks}} watches:{{.NumWatchs}}</li> diff --git a/templates/repo/nav.tmpl b/templates/repo/nav.tmpl index 2770328cb..e1b22b1c9 100644 --- a/templates/repo/nav.tmpl +++ b/templates/repo/nav.tmpl @@ -1,4 +1,4 @@ -<div id="gogs-body-nav" class="gogs-repo-nav"> +<div id="body-nav" class="repo-nav"> <div class="container"> <div class="row"> <div class="col-md-7"> @@ -7,13 +7,13 @@ </div> <div class="col-md-5 actions text-right clone-group-btn"> {{if not .IsBareRepo}} - <!--<div class="btn-group" id="gogs-repo-clone"> + <!--<div class="btn-group" id="repo-clone"> <button type="button" class="btn btn-default"><i class="fa fa-download fa-lg fa-m"></i></button> <button type="button" class="btn btn-default dropdown-toggle" data-container="body" data-toggle="popover" data-placement="bottom" data-content="<label>SSH:</label><div class='input-group'><input type='text' class='form-control' value='{{.CloneLink.SSH}}'></div>" data-html="1"> <span class="caret"></span> </button> </div>--> - <div class="btn-group" id="gogs-repo-clone"> + <div class="btn-group" id="repo-clone"> <button type="button" class="btn btn-default"><i class="fa fa-download fa-lg fa-m"></i></button> <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"> <span class="caret"></span> @@ -36,7 +36,7 @@ </div> </div> </div> - <div class="btn-group {{if .IsRepositoryWatching}}watching{{else}}no-watching{{end}}" id="gogs-repo-watching" data-watch="/{{.Owner.Name}}/{{.Repository.Name}}/action/watch" data-unwatch="/{{.Owner.Name}}/{{.Repository.Name}}/action/unwatch"> + <div class="btn-group {{if .IsRepositoryWatching}}watching{{else}}no-watching{{end}}" id="repo-watching" data-watch="/{{.Owner.Name}}/{{.Repository.Name}}/action/watch" data-unwatch="/{{.Owner.Name}}/{{.Repository.Name}}/action/unwatch"> {{if .IsRepositoryWatching}} <button type="button" class="btn btn-default"><i class="fa fa-eye fa-lg fa-m"></i></button> {{else}} diff --git a/templates/repo/pulls.tmpl b/templates/repo/pulls.tmpl index daacc089c..8c5d9376c 100644 --- a/templates/repo/pulls.tmpl +++ b/templates/repo/pulls.tmpl @@ -2,8 +2,8 @@ {{template "base/navbar" .}} {{template "repo/nav" .}} {{template "repo/toolbar" .}} -<div id="gogs-body" class="container"> - <div id="gogs-source"> +<div id="body" class="container"> + <div id="source"> </div> </div> {{template "base/footer" .}} \ No newline at end of file diff --git a/templates/repo/setting.tmpl b/templates/repo/setting.tmpl index c826e55a7..d527dac3b 100644 --- a/templates/repo/setting.tmpl +++ b/templates/repo/setting.tmpl @@ -2,8 +2,8 @@ {{template "base/navbar" .}} {{template "repo/nav" .}} {{template "repo/toolbar" .}} -<div id="gogs-body" class="container"> - <div id="gogs-user-setting-nav" class="col-md-3"> +<div id="body" class="container"> + <div id="user-setting-nav" class="col-md-3"> <ul class="list-group" data-init="tabs"> <li class="list-group-item active"><a href="/{{.Owner.Name}}/{{.Repository.Name}}/settings">Options</a></li> <!--<li class="list-group-item"><a href="#">Collaborators</a></li> @@ -11,7 +11,7 @@ </ul> </div> - <div id="gogs-repo-setting-container" class="col-md-9"> + <div id="repo-setting-container" class="col-md-9"> {{if .IsSuccess}}<p class="alert alert-success">Repository option has been successfully updated.</p>{{else if .HasError}}<p class="alert alert-danger form-error">{{.ErrorMsg}}</p>{{end}} <div class="panel panel-default"> <div class="panel-heading"> diff --git a/templates/repo/single.tmpl b/templates/repo/single.tmpl index 56e6746c7..ed04be077 100644 --- a/templates/repo/single.tmpl +++ b/templates/repo/single.tmpl @@ -2,8 +2,8 @@ {{template "base/navbar" .}} {{template "repo/nav" .}} {{template "repo/toolbar" .}} -<div id="gogs-body" class="container"> - <div id="gogs-source"> +<div id="body" class="container"> + <div id="source"> {{if .IsBareRepo}} {{template "repo/single_bare" .}} {{else}} diff --git a/templates/repo/toolbar.tmpl b/templates/repo/toolbar.tmpl index 415023d17..1f8a70984 100644 --- a/templates/repo/toolbar.tmpl +++ b/templates/repo/toolbar.tmpl @@ -1,4 +1,4 @@ -<div id="gogs-repo-toolbar"> +<div id="repo-toolbar"> <div class="container"> <nav class="navbar navbar-toolbar navbar-default" role="navigation"> <div class="collapse navbar-collapse"> diff --git a/templates/status/200.tmpl b/templates/status/200.tmpl index 8f6449420..0846ad795 100644 --- a/templates/status/200.tmpl +++ b/templates/status/200.tmpl @@ -1,6 +1,6 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body" class="container"> +<div id="body" class="container"> <p>An error is occurred : {{.ErrorMsg}}</p> <p>Application Version: {{AppVer}}</p> </div> diff --git a/templates/status/404.tmpl b/templates/status/404.tmpl index b971f279a..f68676fe2 100644 --- a/templates/status/404.tmpl +++ b/templates/status/404.tmpl @@ -1,6 +1,6 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body" class="container text-center"> +<div id="body" class="container text-center"> <p style="margin-top: 80px"><img src="/img/404.png" alt="404"/></p> <hr/> <p>Application Version: {{AppVer}}</p> diff --git a/templates/status/500.tmpl b/templates/status/500.tmpl index f3cd24d69..dd7358115 100644 --- a/templates/status/500.tmpl +++ b/templates/status/500.tmpl @@ -1,6 +1,6 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body" class="container text-center"> +<div id="body" class="container text-center"> <p style="margin-top: 80px"><img src="/img/500.png" alt="404"/></p> <hr/> <p>An error is occurred : {{.ErrorMsg}}</p> diff --git a/templates/user/active.tmpl b/templates/user/active.tmpl index 0df116cb4..9cac069dc 100644 --- a/templates/user/active.tmpl +++ b/templates/user/active.tmpl @@ -1,7 +1,7 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body" class="container"> - <form action="/user/activate" method="post" class="form-horizontal gogs-card" id="gogs-login-card"> +<div id="body" class="container"> + <form action="/user/activate" method="post" class="form-horizontal card" id="login-card"> {{.CsrfTokenHtml}} <h3>Activate Your Account</h3> {{if .IsActivatePage}} diff --git a/templates/user/dashboard.tmpl b/templates/user/dashboard.tmpl index ca5fecf26..bc0853fb0 100644 --- a/templates/user/dashboard.tmpl +++ b/templates/user/dashboard.tmpl @@ -1,6 +1,6 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body-nav"> +<div id="body-nav"> <div class="container"> <ul class="nav nav-pills pull-right"> <li class="active"><a href="/">Feed</a></li> @@ -11,9 +11,9 @@ <h3>News Feed</h3> </div> </div> -<div id="gogs-body" class="container" data-page="user"> +<div id="body" class="container" data-page="user"> {{if .HasInfo}}<div class="alert alert-info">{{.InfoMsg}}</div>{{end}} - <div id="gogs-feed-left" class="col-md-8"> + <div id="feed-left" class="col-md-8"> <ul class="list-unstyled activity-list"> {{range .Feeds}} <li> @@ -26,7 +26,7 @@ {{end}} </ul> </div> - <div id="gogs-feed-right" class="col-md-4"> + <div id="feed-right" class="col-md-4"> <div class="panel panel-default repo-panel"> <div class="panel-heading">Your Repositories <a class="btn btn-success pull-right btn-sm" href="/repo/create"><i class="fa fa-plus-square"></i>New Repo</a> diff --git a/templates/user/delete.tmpl b/templates/user/delete.tmpl index 04c713eb6..17c9ea892 100644 --- a/templates/user/delete.tmpl +++ b/templates/user/delete.tmpl @@ -1,7 +1,7 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body" class="container" data-page="user"> - <div id="gogs-user-setting-nav" class="col-md-3"> +<div id="body" class="container" data-page="user"> + <div id="user-setting-nav" class="col-md-3"> <h4>Account Setting</h4> <ul class="list-group"> <li class="list-group-item"><a href="/user/setting">Account Profile</a></li> @@ -12,16 +12,16 @@ <li class="list-group-item list-group-item-success"><a href="/user/delete">Delete Account</a></li> </ul> </div> - <div id="gogs-user-setting-container" class="col-md-9"> + <div id="user-setting-container" class="col-md-9"> <h4>Delete Account</h4> <p class="alert alert-danger">{{if not .HasError}}The operation will delete your account permanently. Sorry to see you go, but we know you'll back soon.{{else}}{{.ErrorMsg}}{{end}}</p> <div class="form-group"> - <button type="submit" class="btn btn-danger btn-lg" href="#delete-account-modal" id="gogs-delete-account" data-toggle="modal">Delete Account</button> + <button type="submit" class="btn btn-danger btn-lg" href="#delete-account-modal" id="delete-account" data-toggle="modal">Delete Account</button> </div> </div> <div class="modal fade" id="delete-account-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> - <form action="/user/delete" method="post" class="modal-content" id="gogs-user-delete"> + <form action="/user/delete" method="post" class="modal-content" id="user-delete"> {{.CsrfTokenHtml}} <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> diff --git a/templates/user/issues.tmpl b/templates/user/issues.tmpl index e28af5bec..dd17b667d 100644 --- a/templates/user/issues.tmpl +++ b/templates/user/issues.tmpl @@ -1,6 +1,6 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body-nav"> +<div id="body-nav"> <div class="container"> <ul class="nav nav-pills pull-right"> <li><a href="/">Feed</a></li> @@ -11,7 +11,7 @@ <h3>Issues</h3> </div> </div> -<div id="gogs-body" class="container" data-page="user"> +<div id="body" class="container" data-page="user"> {{if .HasInfo}}<div class="alert alert-info">{{.InfoMsg}}</div>{{end}} </div> {{template "base/footer" .}} \ No newline at end of file diff --git a/templates/user/notification.tmpl b/templates/user/notification.tmpl index 7911c0fd5..7c2e8425d 100644 --- a/templates/user/notification.tmpl +++ b/templates/user/notification.tmpl @@ -1,8 +1,8 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body" class="container" data-page="user"> +<div id="body" class="container" data-page="user"> {{template "user/setting_nav" .}} - <div id="gogs-user-setting-container" class="col-md-9"> + <div id="user-setting-container" class="col-md-9"> <h4>Notification</h4> </div> </div> diff --git a/templates/user/password.tmpl b/templates/user/password.tmpl index 936ec4b12..b2cdc72d9 100644 --- a/templates/user/password.tmpl +++ b/templates/user/password.tmpl @@ -1,11 +1,11 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body" class="container" data-page="user"> +<div id="body" class="container" data-page="user"> {{template "user/setting_nav" .}} - <div id="gogs-user-setting-container" class="col-md-9"> - <div id="gogs-setting-pwd"> + <div id="user-setting-container" class="col-md-9"> + <div id="setting-pwd"> <h4>Password</h4> - <form class="form-horizontal" id="gogs-password-form" method="post" action="/user/setting/password"> + <form class="form-horizontal" id="password-form" method="post" action="/user/setting/password"> {{.CsrfTokenHtml}} {{if .IsSuccess}} <p class="alert alert-success">Password is changed successfully. You can now sign in via new password.</p>{{else if .HasError}}<p class="alert alert-danger form-error">{{.ErrorMsg}}</p>{{end}} diff --git a/templates/user/profile.tmpl b/templates/user/profile.tmpl index 342236147..7762ad2c6 100644 --- a/templates/user/profile.tmpl +++ b/templates/user/profile.tmpl @@ -1,12 +1,12 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body" class="container" data-page="user"> - <div id="gogs-user-profile" class="col-md-3"> +<div id="body" class="container" data-page="user"> + <div id="user-profile" class="col-md-3"> <div class="profile-avatar text-center"> <a href="http://gravatar.com/emails/" class="center-block" data-toggle="tooltip" data-placement="bottom" title="Change your avatar at gravatar.com"> - <img id="gogs-user-avatar" src="{{.Owner.AvatarLink}}?s=200" alt="user-avatar" title="{{.Owner.Name}}"/> + <img id="user-avatar" src="{{.Owner.AvatarLink}}?s=200" alt="user-avatar" title="{{.Owner.Name}}"/> </a> - <span id="gogs-user-name" class="center-block">{{.Owner.Name}}</span> + <span id="user-name" class="center-block">{{.Owner.Name}}</span> </div> <div class="profile-info"> <ul class="list-group"> @@ -23,8 +23,8 @@ </ul> </div> </div> - <div id="gogs-user-activity" class="col-md-9"> - <ul class="nav nav-tabs" id="gogs-user-act-tabs" data-init="tabs"> + <div id="user-activity" class="col-md-9"> + <ul class="nav nav-tabs" id="user-act-tabs" data-init="tabs"> <li{{if not .TabName}} class="active"{{end}}><a href="{{.Owner.HomeLink}}"><i class="fa fa-gittip"></i>Repositories</a></li> <li{{if eq .TabName "activity"}} class="active"{{end}}><a href="{{.Owner.HomeLink}}?tab=activity"><i class="fa fa-rss"></i>Public Activity</a></li> </ul> diff --git a/templates/user/publickey.tmpl b/templates/user/publickey.tmpl index e645e1a84..ecdeb035d 100644 --- a/templates/user/publickey.tmpl +++ b/templates/user/publickey.tmpl @@ -1,12 +1,12 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body" class="container" data-page="user"> +<div id="body" class="container" data-page="user"> {{template "user/setting_nav" .}} - <div id="gogs-user-setting-container" class="col-md-9"> - <div id="gogs-ssh-keys"> + <div id="user-setting-container" class="col-md-9"> + <div id="ssh-keys"> <h4>SSH Keys</h4>{{if .AddSSHKeySuccess}} <p class="alert alert-success">New SSH Key has been added !</p>{{else if .HasError}}<p class="alert alert-danger">{{.ErrorMsg}}</p>{{end}} - <ul id="gogs-ssh-keys-list" class="list-group"> + <ul id="ssh-keys-list" class="list-group"> <li class="list-group-item"><span class="name">SSH Key's name</span></li> {{range .Keys}} <li class="list-group-item"> @@ -16,12 +16,12 @@ </li> {{end}} <li class="list-group-item"> - <a class="btn btn-link btn-primary" href="#ssh-add-modal" id="gogs-ssh-add" data-toggle="modal">Add SSH Key</a> + <a class="btn btn-link btn-primary" href="#ssh-add-modal" id="ssh-add" data-toggle="modal">Add SSH Key</a> </li> </ul> <div class="modal fade" id="ssh-add-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> - <form class="modal-content form-horizontal" id="gogs-ssh-form" method="post" action="/user/setting/ssh/"> + <form class="modal-content form-horizontal" id="ssh-form" method="post" action="/user/setting/ssh/"> {{.CsrfTokenHtml}} <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> diff --git a/templates/user/pulls.tmpl b/templates/user/pulls.tmpl index 0891f5e85..47462a9be 100644 --- a/templates/user/pulls.tmpl +++ b/templates/user/pulls.tmpl @@ -1,6 +1,6 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body-nav"> +<div id="body-nav"> <div class="container"> <ul class="nav nav-pills pull-right"> <li><a href="/">Feed</a></li> @@ -11,7 +11,7 @@ <h3>Pull Requests</h3> </div> </div> -<div id="gogs-body" class="container" data-page="user"> +<div id="body" class="container" data-page="user"> {{if .HasInfo}}<div class="alert alert-info">{{.InfoMsg}}</div>{{end}} </div> {{template "base/footer" .}} \ No newline at end of file diff --git a/templates/user/security.tmpl b/templates/user/security.tmpl index a7506b508..7de41ebd3 100644 --- a/templates/user/security.tmpl +++ b/templates/user/security.tmpl @@ -1,8 +1,8 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body" class="container" data-page="user"> +<div id="body" class="container" data-page="user"> {{template "user/setting_nav" .}} - <div id="gogs-user-setting-container" class="col-md-9"> + <div id="user-setting-container" class="col-md-9"> <h4>Security</h4> </div> </div> diff --git a/templates/user/setting.tmpl b/templates/user/setting.tmpl index 30c9529b1..283a8df8b 100644 --- a/templates/user/setting.tmpl +++ b/templates/user/setting.tmpl @@ -1,11 +1,11 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body" class="container" data-page="user"> +<div id="body" class="container" data-page="user"> {{template "user/setting_nav" .}} - <div id="gogs-user-setting-container" class="col-md-9"> - <div id="gogs-setting-pwd"> + <div id="user-setting-container" class="col-md-9"> + <div id="setting-pwd"> <h4>Account Profile</h4> - <form class="form-horizontal" id="gogs-password-form" method="post" action="/user/setting"> + <form class="form-horizontal" id="password-form" method="post" action="/user/setting"> {{.CsrfTokenHtml}} {{if .IsSuccess}}<p class="alert alert-success">Your profile has been successfully updated.</p>{{else if .HasError}}<p class="alert alert-danger form-error">{{.ErrorMsg}}</p>{{end}} <p>Your Email will be public and used for Account related notifications and any web based operations made via the web.</p> diff --git a/templates/user/setting_nav.tmpl b/templates/user/setting_nav.tmpl index 2905f2825..c0f2ae03d 100644 --- a/templates/user/setting_nav.tmpl +++ b/templates/user/setting_nav.tmpl @@ -1,4 +1,4 @@ -<div id="gogs-user-setting-nav" class="col-md-3"> +<div id="user-setting-nav" class="col-md-3"> <h4>Account Setting</h4> <ul class="list-group"> <li class="list-group-item{{if .IsUserPageSetting}} list-group-item-success{{end}}"><a href="/user/setting">Account Profile</a></li> diff --git a/templates/user/signin.tmpl b/templates/user/signin.tmpl index 1cd3275cc..49a226263 100644 --- a/templates/user/signin.tmpl +++ b/templates/user/signin.tmpl @@ -1,7 +1,7 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div class="container" id="gogs-body" data-page="user-signin"> - <form action="/user/login" method="post" class="form-horizontal gogs-card" id="gogs-login-card"> +<div class="container" id="body" data-page="user-signin"> + <form action="/user/login" method="post" class="form-horizontal card" id="login-card"> {{.CsrfTokenHtml}} <h3>Log in</h3> <div class="alert alert-danger form-error{{if .HasError}}{{else}} hidden{{end}}">{{.ErrorMsg}}</div> @@ -43,7 +43,7 @@ </div> </div> - <div class="form-group text-center" id="gogs-social-login"> + <div class="form-group text-center" id="social-login"> <a class="btn btn-danger btn-lg">Register new account</a> </div> </form> diff --git a/templates/user/signup.tmpl b/templates/user/signup.tmpl index fbfc4cadc..6ed595a35 100644 --- a/templates/user/signup.tmpl +++ b/templates/user/signup.tmpl @@ -1,7 +1,7 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div class="container" id="gogs-body" data-page="user-signup"> - <form action="/user/sign_up" method="post" class="form-horizontal gogs-card" id="gogs-login-card"> +<div class="container" id="body" data-page="user-signup"> + <form action="/user/sign_up" method="post" class="form-horizontal card" id="login-card"> {{.CsrfTokenHtml}} {{if .DisenableRegisteration}} Sorry, registeration has been disenabled, you can only get account from administrator. diff --git a/templates/user/stars.tmpl b/templates/user/stars.tmpl index 4e6f0c92f..253efd6ee 100644 --- a/templates/user/stars.tmpl +++ b/templates/user/stars.tmpl @@ -1,6 +1,6 @@ {{template "base/head" .}} {{template "base/navbar" .}} -<div id="gogs-body-nav"> +<div id="body-nav"> <div class="container"> <ul class="nav nav-pills pull-right"> <li><a href="/">Feed</a></li> @@ -11,7 +11,7 @@ <h3>Stars</h3> </div> </div> -<div id="gogs-body" class="container" data-page="user"> +<div id="body" class="container" data-page="user"> {{if .HasInfo}}<div class="alert alert-info">{{.InfoMsg}}</div>{{end}} </div> {{template "base/footer" .}} \ No newline at end of file diff --git a/web.go b/web.go index 0747f224b..6538c61f1 100644 --- a/web.go +++ b/web.go @@ -90,6 +90,7 @@ func runWeb(*cli.Context) { // Routers. m.Get("/", ignSignIn, routers.Home) + m.Get("/install",routers.Install) m.Get("/issues", reqSignIn, user.Issues) m.Get("/pulls", reqSignIn, user.Pulls) m.Get("/stars", reqSignIn, user.Stars)