Merge branch 'develop' of github.com:gogits/gogs into feature/pull_request2

# Conflicts:
#	modules/bindata/bindata.go
#	public/css/gogs.min.css
This commit is contained in:
Unknwon 2015-08-10 23:01:41 +08:00
commit 887bc1b594
12 changed files with 143 additions and 78 deletions

View file

@ -17,3 +17,9 @@ notifications:
email: email:
- u@gogs.io - u@gogs.io
slack: gophercn:o5pSanyTeNhnfYc3QnG0X7Wx slack: gophercn:o5pSanyTeNhnfYc3QnG0X7Wx
webhooks:
urls:
- https://webhooks.gitter.im/e/b590f8e03882f7aedc3e
on_success: change
on_failure: always
on_start: never

View file

@ -198,6 +198,7 @@ SESSION_LIFE_TIME = 86400
SERVICE = server SERVICE = server
AVATAR_UPLOAD_PATH = data/avatars AVATAR_UPLOAD_PATH = data/avatars
; Chinese users can choose "duoshuo" ; Chinese users can choose "duoshuo"
; or a custom avatar source, like: http://cn.gravatar.com/avatar/
GRAVATAR_SOURCE = gravatar GRAVATAR_SOURCE = gravatar
DISABLE_GRAVATAR = false DISABLE_GRAVATAR = false

View file

@ -14,6 +14,9 @@ version = Version
page = Page page = Page
template = Template template = Template
language = Language language = Language
create_new = Create new...
user_profile_and_more = User profile and more
signed_in_as = Signed in as
username = Username username = Username
email = E-mail email = E-mail
@ -32,6 +35,8 @@ manage_org = Manage Organizations
admin_panel = Admin Panel admin_panel = Admin Panel
account_settings = Account Settings account_settings = Account Settings
settings = Settings settings = Settings
your_profile = Your Profile
your_settings = Your Settings
news_feed = News Feed news_feed = News Feed
pull_requests = Pull Requests pull_requests = Pull Requests

View file

@ -122,15 +122,6 @@
"outputPathIsOutsideProject": 0, "outputPathIsOutsideProject": 0,
"outputPathIsSetByUser": 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.datetimepicker.css": { "\/public\/css\/jquery.datetimepicker.css": {
"fileType": 16, "fileType": 16,
"ignore": 0, "ignore": 0,
@ -308,26 +299,6 @@
"outputPathIsSetByUser": 0, "outputPathIsSetByUser": 0,
"processed": 1 "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": { "\/public\/less\/_form.less": {
"allowInsecureImports": 0, "allowInsecureImports": 0,
"createSourceMap": 0, "createSourceMap": 0,

View file

@ -97,6 +97,9 @@ func Migrate(x *xorm.Engine) error {
} }
v := currentVersion.Version v := currentVersion.Version
if int(v) > len(migrations) {
return nil
}
for i, m := range migrations[v-_MIN_DB_VER:] { for i, m := range migrations[v-_MIN_DB_VER:] {
log.Info("Migration: %s", m.Description()) log.Info("Migration: %s", m.Description())
if err = m.Migrate(x); err != nil { if err = m.Migrate(x); err != nil {

File diff suppressed because one or more lines are too long

View file

@ -15,10 +15,11 @@ import (
"strings" "strings"
"time" "time"
"gopkg.in/ini.v1"
"github.com/Unknwon/com" "github.com/Unknwon/com"
"github.com/macaron-contrib/oauth2" "github.com/macaron-contrib/oauth2"
"github.com/macaron-contrib/session" "github.com/macaron-contrib/session"
"gopkg.in/ini.v1"
"github.com/gogits/gogs/modules/bindata" "github.com/gogits/gogs/modules/bindata"
"github.com/gogits/gogs/modules/log" "github.com/gogits/gogs/modules/log"
@ -345,11 +346,13 @@ func NewConfigContext() {
if !filepath.IsAbs(AvatarUploadPath) { if !filepath.IsAbs(AvatarUploadPath) {
AvatarUploadPath = path.Join(workDir, AvatarUploadPath) AvatarUploadPath = path.Join(workDir, AvatarUploadPath)
} }
switch sec.Key("GRAVATAR_SOURCE").MustString("gravatar") { switch source := sec.Key("GRAVATAR_SOURCE").MustString("gravatar"); source {
case "duoshuo": case "duoshuo":
GravatarSource = "http://gravatar.duoshuo.com/avatar/" GravatarSource = "http://gravatar.duoshuo.com/avatar/"
default: case "gravatar":
GravatarSource = "//1.gravatar.com/avatar/" GravatarSource = "//1.gravatar.com/avatar/"
default:
GravatarSource = source
} }
DisableGravatar = sec.Key("DISABLE_GRAVATAR").MustBool() DisableGravatar = sec.Key("DISABLE_GRAVATAR").MustBool()
if OfflineMode { if OfflineMode {

File diff suppressed because one or more lines are too long

View file

@ -222,7 +222,10 @@ $(document).ready(function () {
// Semantic UI modules. // Semantic UI modules.
$('.dropdown').dropdown(); $('.dropdown').dropdown();
$('.jump.dropdown').dropdown({ $('.jump.dropdown').dropdown({
action: 'hide' action: 'hide',
onShow: function() {
$('.poping.up').popup('hide');
}
}); });
$('.slide.up.dropdown').dropdown({ $('.slide.up.dropdown').dropdown({
transition: 'slide up' transition: 'slide up'
@ -233,6 +236,13 @@ $(document).ready(function () {
showActivity: false showActivity: false
}); });
$('.poping.up').popup(); $('.poping.up').popup();
$('.top.menu .poping.up').popup({
onShow: function() {
if ( $('.top.menu .menu.transition').hasClass('visible') ) {
return false;
}
}
});
// Helpers. // Helpers.

View file

@ -16,7 +16,6 @@ img {
z-index: 900; z-index: 900;
left: 0; left: 0;
width: 100%; width: 100%;
padding: 5px 0;
&.light { &.light {
background-color: white; background-color: white;
border-bottom: 1px solid #DDDDDD; border-bottom: 1px solid #DDDDDD;
@ -25,10 +24,19 @@ img {
.column .menu { .column .menu {
margin-top: 0; margin-top: 0;
} }
.brand { .top.menu a.item.brand {
float: left; padding-left: 0;
margin-top: 5px; }
margin-right: 5px; .brand .ui.mini.image {
width: 30px;
}
.top.menu a.item:hover,
.top.menu .dropdown.item:hover,
.top.menu .dropdown.item.active {
background-color: transparent;
}
.top.menu a.item:hover {
color: rgba(0,0,0,.45);
} }
.head.link.item { .head.link.item {
padding-right: 0!important; padding-right: 0!important;
@ -37,8 +45,8 @@ img {
margin-right: 5px; margin-right: 5px;
} }
} }
.user.avatar { .avatar > .ui.image {
padding: 0; margin-right: 0;
} }
.searchbox { .searchbox {
background-color: rgb(244, 244, 244)!important; background-color: rgb(244, 244, 244)!important;
@ -117,6 +125,10 @@ footer {
.generate-img(@n, (@i + 1)); .generate-img(@n, (@i + 1));
} }
.octicon.icon {
font-family: octicons;
}
// Accessibility // Accessibility
.sr-only { .sr-only {
position: absolute; position: absolute;

View file

@ -44,15 +44,23 @@
<body> <body>
<div class="full height"> <div class="full height">
<noscript>Please enable JavaScript in your browser!</noscript> <noscript>Please enable JavaScript in your browser!</noscript>
{{if not .PageIsInstall}} {{if not .PageIsInstall}}
<div class="following bar light"> <div class="following bar light">
<div class="ui container"> <div class="ui container">
<div class="column"> <div class="column">
<div class="ui secondary menu"> <div class="ui top secondary menu">
<img class="img-15 ui image brand" src="{{AppSubUrl}}/img/favicon.png"> <a class="item brand" href="{{AppSubUrl}}/">
<a class="view-ui item {{if .PageIsHome}}active{{end}}" href="{{AppSubUrl}}/">{{if .IsSigned}}{{.i18n.Tr "dashboard"}}{{else}}{{.i18n.Tr "home"}}{{end}}</a> <img class="ui mini image" src="{{AppSubUrl}}/img/favicon.png">
<a class="view-ui item {{if .PageIsExplore}}active{{end}}" href="{{AppSubUrl}}/explore">{{.i18n.Tr "explore"}}</a> </a>
<a class="view-ui item" target="_blank" href="http://gogs.io/docs">{{.i18n.Tr "help"}}</a>
{{if .IsSigned}}
<a class="item{{if .PageIsDashboard}} active{{end}}" href="{{AppSubUrl}}/">{{.i18n.Tr "dashboard"}}</a>
{{else}}
<a class="item{{if .PageIsHome}} active{{end}}" href="{{AppSubUrl}}/">{{.i18n.Tr "home"}}</a>
{{end}}
<a class="item{{if .PageIsExplore}} active{{end}}" href="{{AppSubUrl}}/explore">{{.i18n.Tr "explore"}}</a>
<!-- <div class="item"> <!-- <div class="item">
<div class="ui icon input"> <div class="ui icon input">
<input class="searchbox" type="text" placeholder="{{.i18n.Tr "search_project"}}"> <input class="searchbox" type="text" placeholder="{{.i18n.Tr "search_project"}}">
@ -61,38 +69,84 @@
</div> --> </div> -->
{{if .IsSigned}} {{if .IsSigned}}
<a class="item{{if .PageIsIssues}} active{{end}}" href="{{AppSubUrl}}/issues">{{.i18n.Tr "issues"}}</a>
<div class="right menu"> <div class="right menu">
<a class="view-ui item user avatar poping up" href="{{AppSubUrl}}/{{.SignedUser.Name}}" data-content="{{.SignedUser.Name}}" data-variation="inverted"> <div class="ui dropdown head link jump item poping up" data-content="{{.i18n.Tr "create_new"}}" data-variation="tiny inverted">
<img class="img-15" src="{{.SignedUser.AvatarLink}}"/>
<span class="sr-only">{{.SignedUser.Name}}</span>
</a>
<div class="ui dropdown head link jump item">
<span class="text"> <span class="text">
<i class="octicon octicon-plus"></i> <i class="octicon octicon-plus"></i>
<i class="dropdown icon"></i> <i class="octicon octicon-triangle-down"></i>
</span> </span>
<div class="menu"> <div class="menu">
<a class="item" href="{{AppSubUrl}}/repo/create"><i class="octicon octicon-repo-create"></i> {{.i18n.Tr "new_repo"}}</a> <a class="item" href="{{AppSubUrl}}/repo/create">
<a class="item" href="{{AppSubUrl}}/repo/migrate"><i class="octicon octicon-repo-clone"></i> {{.i18n.Tr "new_migrate"}}</a> <i class="octicon octicon-repo-create"></i> {{.i18n.Tr "new_repo"}}
<a class="item" href="{{AppSubUrl}}/org/create"><i class="octicon octicon-organization"></i> {{.i18n.Tr "new_org"}}</a> </a>
</div> <a class="item" href="{{AppSubUrl}}/repo/migrate">
<i class="octicon octicon-repo-clone"></i> {{.i18n.Tr "new_migrate"}}
</a>
<a class="item" href="{{AppSubUrl}}/org/create">
<i class="octicon octicon-organization"></i> {{.i18n.Tr "new_org"}}
</a>
</div><!-- end content create new menu -->
</div><!-- end dropdown menu create new -->
<div class="ui dropdown head link jump item poping up" tabindex="-1" data-content="{{.i18n.Tr "user_profile_and_more"}}" data-variation="tiny inverted">
<span class="text avatar">
<img class="ui small rounded image" src="{{.SignedUser.AvatarLink}}">
<i class="octicon octicon-triangle-down" tabindex="-1"></i>
</span>
<div class="menu" tabindex="-1">
<div class="ui header">
{{.i18n.Tr "signed_in_as"}} <strong>{{.SignedUser.Name}}</strong>
</div> </div>
<div class="divider"></div>
<a class="item" href="{{AppSubUrl}}/{{.SignedUser.Name}}">
<i class="octicon icon octicon-person"></i>
{{.i18n.Tr "your_profile"}}<!-- Your profile -->
</a>
<a class="item" href="{{AppSubUrl}}/user/settings">
<i class="octicon icon octicon-settings"></i>
{{.i18n.Tr "your_settings"}}<!-- Your settings -->
</a>
<a class="item" target="_blank" href="http://gogs.io/docs" rel="noreferrer">
<i class="octicon icon octicon-question"></i>
{{.i18n.Tr "help"}}<!-- Help -->
</a>
{{if .IsAdmin}} {{if .IsAdmin}}
<a class="view-ui item poping up {{if .PageIsAdmin}}active{{end}}" href="{{AppSubUrl}}/admin" data-content="{{.i18n.Tr "admin_panel"}}" data-variation="inverted"><i class="octicon icon settings"></i><span class="sr-only">{{.i18n.Tr "admin_panel"}}</span></a> <div class="divider"></div>
<a class="item" href="{{AppSubUrl}}/admin">
<i class="icon settings"></i>
{{.i18n.Tr "admin_panel"}}<!-- Admin Panel -->
</a>
{{end}} {{end}}
<a class="view-ui item poping up {{if .PageIsSettings}}active{{end}}" href="{{AppSubUrl}}/user/settings" data-content="{{.i18n.Tr "account_settings"}}" data-variation="inverted"><i class="octicon octicon-settings"></i><span class="sr-only">{{.i18n.Tr "account_settings"}}</span></a>
<a class="view-ui item poping up" href="{{AppSubUrl}}/user/logout" data-content="{{.i18n.Tr "sign_out"}}" data-variation="inverted"><i class="octicon octicon-sign-out"></i><span class="sr-only">{{.i18n.Tr "sign_out"}}</span></a> <div class="divider"></div>
</div> <a class="item" href="{{AppSubUrl}}/user/logout">
<i class="octicon icon octicon-sign-out"></i>
{{.i18n.Tr "sign_out"}}<!-- Sign Out -->
</a>
</div><!-- end content avatar menu -->
</div><!-- end dropdown avatar menu -->
</div><!-- end signed user right menu -->
{{else}} {{else}}
<div class="ui right floated secondary menu">
<a class="item" target="_blank" href="http://gogs.io/docs" rel="noreferrer">{{.i18n.Tr "help"}}</a>
<div class="right menu">
{{if .ShowRegistrationButton}} {{if .ShowRegistrationButton}}
<a class="view-ui item {{if .PageIsSignUp}}active{{end}}" href="{{AppSubUrl}}/user/sign_up"><i class="octicon octicon-person-add"></i> {{.i18n.Tr "register"}}</a> <a class="item{{if .PageIsSignUp}} active{{end}}" href="{{AppSubUrl}}/user/sign_up">
<i class="octicon octicon-person-add"></i> {{.i18n.Tr "register"}}
</a>
{{end}} {{end}}
<a class="view-ui item {{if .PageIsSignIn}}active{{end}}" href="{{AppSubUrl}}/user/login"><i class="octicon octicon-sign-in"></i> {{.i18n.Tr "sign_in"}}</a> <a class="item{{if .PageIsSignIn}} active{{end}}" href="{{AppSubUrl}}/user/login">
</div> <i class="octicon octicon-sign-in"></i> {{.i18n.Tr "sign_in"}}
</a>
</div><!-- end anonymous right menu -->
{{end}} {{end}}
</div> </div><!-- end top menu -->
</div> </div><!-- end column -->
</div> </div><!-- end container -->
</div> </div><!-- end bar -->
{{end}} {{end}}

View file

@ -4,7 +4,7 @@
<a class="{{if .PageIsSettingsOptions}}active{{end}} item" href="{{.RepoLink}}/settings"> <a class="{{if .PageIsSettingsOptions}}active{{end}} item" href="{{.RepoLink}}/settings">
{{.i18n.Tr "repo.settings.options"}} {{.i18n.Tr "repo.settings.options"}}
</a> </a>
<a class="{{if .PageIsSettingsCollaboration}}active{{end}} item" href="{.RepoLink}}/settings/collaboration"> <a class="{{if .PageIsSettingsCollaboration}}active{{end}} item" href="{{.RepoLink}}/settings/collaboration">
{{.i18n.Tr "repo.settings.collaboration"}} {{.i18n.Tr "repo.settings.collaboration"}}
</a> </a>
<a class="{{if .PageIsSettingsHooks}}active{{end}} item" href="{{.RepoLink}}/settings/hooks"> <a class="{{if .PageIsSettingsHooks}}active{{end}} item" href="{{.RepoLink}}/settings/hooks">