Просмотр исходного кода

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

# Conflicts:
#	modules/bindata/bindata.go
#	public/css/gogs.min.css
Unknwon 9 лет назад
Родитель
Сommit
887bc1b594

+ 6 - 0
.travis.yml

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

+ 2 - 1
conf/app.ini

@@ -198,6 +198,7 @@ SESSION_LIFE_TIME = 86400
 SERVICE = server
 AVATAR_UPLOAD_PATH = data/avatars
 ; Chinese users can choose "duoshuo"
+; or a custom avatar source, like: http://cn.gravatar.com/avatar/
 GRAVATAR_SOURCE = gravatar
 DISABLE_GRAVATAR = false
 
@@ -317,4 +318,4 @@ bg-BG = bg
 it-IT = it
 
 [other]
-SHOW_FOOTER_BRANDING = false
+SHOW_FOOTER_BRANDING = false

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

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

+ 0 - 29
config.codekit

@@ -122,15 +122,6 @@
 		"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.datetimepicker.css": {
 		"fileType": 16,
 		"ignore": 0,
@@ -308,26 +299,6 @@
 		"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,

+ 3 - 0
models/migrations/migrations.go

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

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
modules/bindata/bindata.go


+ 6 - 3
modules/setting/setting.go

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

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
public/css/gogs.min.css


+ 11 - 1
public/js/gogs.js

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

+ 19 - 7
public/less/_base.less

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

+ 84 - 30
templates/base/head.tmpl

@@ -44,15 +44,23 @@
 <body>
 	<div class="full height">
 		<noscript>Please enable JavaScript in your browser!</noscript>
+
 		{{if not .PageIsInstall}}
 		<div class="following bar light">
 		  <div class="ui container">
 		    <div class="column">
-		      <div class="ui secondary menu">
-		      	<img class="img-15 ui image brand" src="{{AppSubUrl}}/img/favicon.png">
-		      	<a class="view-ui item {{if .PageIsHome}}active{{end}}" href="{{AppSubUrl}}/">{{if .IsSigned}}{{.i18n.Tr "dashboard"}}{{else}}{{.i18n.Tr "home"}}{{end}}</a>
-		      	<a class="view-ui item {{if .PageIsExplore}}active{{end}}" href="{{AppSubUrl}}/explore">{{.i18n.Tr "explore"}}</a>
-		      	<a class="view-ui item" target="_blank" href="http://gogs.io/docs">{{.i18n.Tr "help"}}</a>
+		      <div class="ui top secondary menu">
+						<a class="item brand" href="{{AppSubUrl}}/">
+							<img class="ui mini image" src="{{AppSubUrl}}/img/favicon.png">
+						</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="ui icon input">
 		      	    <input class="searchbox" type="text" placeholder="{{.i18n.Tr "search_project"}}">
@@ -61,38 +69,84 @@
 		      	</div> -->
 
   	      	{{if .IsSigned}}
+		      	<a class="item{{if .PageIsIssues}} active{{end}}" href="{{AppSubUrl}}/issues">{{.i18n.Tr "issues"}}</a>
   		      <div class="right menu">
-  		      	<a class="view-ui item user avatar poping up" href="{{AppSubUrl}}/{{.SignedUser.Name}}" data-content="{{.SignedUser.Name}}" data-variation="inverted">
-  		      		<img class="img-15" src="{{.SignedUser.AvatarLink}}"/>
-  		      		<span class="sr-only">{{.SignedUser.Name}}</span>
-  		      	</a>
-  						<div class="ui dropdown head link jump item">
+  						<div class="ui dropdown head link jump item poping up" data-content="{{.i18n.Tr "create_new"}}" data-variation="tiny inverted">
   							<span class="text">
   								<i class="octicon octicon-plus"></i>
-  								<i class="dropdown icon"></i>
+  								<i class="octicon octicon-triangle-down"></i>
   							</span>
   			        <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/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>
-  						</div>
-  						{{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>
-  						{{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>
+  			          <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/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 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}}
-  		      <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}}
-  		      	<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}}
-  		      	<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>
-  		      </div>
+  		      	<a class="item{{if .PageIsSignIn}} active{{end}}" href="{{AppSubUrl}}/user/login">
+								<i class="octicon octicon-sign-in"></i> {{.i18n.Tr "sign_in"}}
+							</a>
+  		      </div><!-- end anonymous right menu -->
+
   		      {{end}}
-		      </div>
-		    </div>
-		  </div>
-		</div>
+		      </div><!-- end top menu -->
+		    </div><!-- end column -->
+		  </div><!-- end container -->
+		</div><!-- end bar -->
 		{{end}}

+ 2 - 2
templates/repo/settings/navbar.tmpl

@@ -4,7 +4,7 @@
 	  <a class="{{if .PageIsSettingsOptions}}active{{end}} item" href="{{.RepoLink}}/settings">
 	    {{.i18n.Tr "repo.settings.options"}}
 	  </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"}}
 	  </a>
 	  <a class="{{if .PageIsSettingsHooks}}active{{end}} item" href="{{.RepoLink}}/settings/hooks">
@@ -17,4 +17,4 @@
 	    {{.i18n.Tr "repo.settings.deploy_keys"}}
 	  </a>
 	</div>
-</div>
+</div>

Некоторые файлы не были показаны из-за большого количества измененных файлов