mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-26 15:02:16 +00:00
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:
commit
887bc1b594
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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
|
@ -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 {
|
||||||
|
|
2
public/css/gogs.min.css
vendored
2
public/css/gogs.min.css
vendored
File diff suppressed because one or more lines are too long
|
@ -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.
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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">
|
||||||
</div>
|
<i class="octicon octicon-repo-clone"></i> {{.i18n.Tr "new_migrate"}}
|
||||||
{{if .IsAdmin}}
|
</a>
|
||||||
<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>
|
<a class="item" href="{{AppSubUrl}}/org/create">
|
||||||
{{end}}
|
<i class="octicon octicon-organization"></i> {{.i18n.Tr "new_org"}}
|
||||||
<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>
|
||||||
<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><!-- end content create new menu -->
|
||||||
</div>
|
</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 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}}
|
||||||
|
<div class="divider"></div>
|
||||||
|
|
||||||
|
<a class="item" href="{{AppSubUrl}}/admin">
|
||||||
|
<i class="icon settings"></i>
|
||||||
|
{{.i18n.Tr "admin_panel"}}<!-- Admin Panel -->
|
||||||
|
</a>
|
||||||
|
{{end}}
|
||||||
|
|
||||||
|
<div class="divider"></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}}
|
||||||
|
|
|
@ -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">
|
||||||
|
|
Loading…
Reference in a new issue