Browse Source

new quick start page

pull/1735/head
Unknwon 9 years ago
parent
commit
4465c58f4b
  1. 4
      .bra.toml
  2. 2
      README.md
  3. 4
      conf/locale/locale_en-US.ini
  4. 2
      gogs.go
  5. 4
      modules/bindata/bindata.go
  6. 13
      modules/middleware/repo.go
  7. 17
      public/config.codekit
  8. 3658
      public/css/gogs.css
  9. 34
      public/js/gogs.js
  10. 1
      public/js/libs/clipboard-1.3.1.min.js
  11. 21
      public/less/_repository.less
  12. 2
      templates/.VERSION
  13. 1
      templates/base/footer.tmpl
  14. 2
      templates/base/head.tmpl
  15. 86
      templates/repo/bare.tmpl

4
.bra.toml

@ -13,7 +13,7 @@ watch_dirs = [
watch_exts = [".go"] watch_exts = [".go"]
build_delay = 1500 build_delay = 1500
cmds = [ cmds = [
["go", "install", "-tags", "sqlite tidb"],# redis memcache cert pam ["go", "install", "-tags", "sqlite"],# redis memcache cert pam tidb
["go", "build", "-tags", "sqlite tidb"], ["go", "build", "-tags", "sqlite"],
["./gogs", "web"] ["./gogs", "web"]
] ]

2
README.md

@ -5,7 +5,7 @@ Gogs - Go Git Service [![Build Status](https://travis-ci.org/gogits/gogs.svg?bra
![](public/img/gogs-large-resize.png) ![](public/img/gogs-large-resize.png)
##### Current version: 0.6.15 Beta ##### Current version: 0.6.16 Beta
<table> <table>
<tr> <tr>

4
conf/locale/locale_en-US.ini

@ -364,6 +364,8 @@ migrate.invalid_local_path = Invalid local path, it does not exist or not a dire
forked_from = forked from forked_from = forked from
fork_from_self = You cannot fork repository you already owned! fork_from_self = You cannot fork repository you already owned!
copy_link = Copy copy_link = Copy
copy_link_success = Copied!
copy_link_error = Press ⌘-C or Ctrl-C to copy
click_to_copy = Copy to clipboard click_to_copy = Copy to clipboard
copied = Copied OK copied = Copied OK
clone_helper = Need help cloning? Visit <a target="_blank" href="%s">Help</a>! clone_helper = Need help cloning? Visit <a target="_blank" href="%s">Help</a>!
@ -378,6 +380,8 @@ quick_guide = Quick Guide
clone_this_repo = Clone this repository clone_this_repo = Clone this repository
create_new_repo_command = Create a new repository on the command line create_new_repo_command = Create a new repository on the command line
push_exist_repo = Push an existing repository from the command line push_exist_repo = Push an existing repository from the command line
repo_is_empty = This repository is empty, please come back later!
branch = Branch branch = Branch
tree = Tree tree = Tree

2
gogs.go

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

4
modules/bindata/bindata.go

File diff suppressed because one or more lines are too long

13
modules/middleware/repo.go

@ -350,22 +350,25 @@ func RepoAssignment(redirect bool, args ...bool) macaron.Handler {
ctx.Data["GoGetImport"] = fmt.Sprintf("%s/%s/%s", setting.Domain, u.Name, repo.Name) ctx.Data["GoGetImport"] = fmt.Sprintf("%s/%s/%s", setting.Domain, u.Name, repo.Name)
} }
if ctx.IsSigned {
ctx.Data["IsWatchingRepo"] = models.IsWatching(ctx.User.Id, repo.ID)
ctx.Data["IsStaringRepo"] = models.IsStaring(ctx.User.Id, repo.ID)
}
// repo is bare and display enable // repo is bare and display enable
if ctx.Repo.Repository.IsBare { if ctx.Repo.Repository.IsBare {
log.Debug("Bare repository: %s", ctx.Repo.RepoLink) log.Debug("Bare repository: %s", ctx.Repo.RepoLink)
// NOTE: to prevent templating error // NOTE: to prevent templating error
ctx.Data["BranchName"] = "" ctx.Data["BranchName"] = ""
if displayBare { if displayBare {
if !ctx.Repo.IsAdmin() {
ctx.Flash.Info(ctx.Tr("repo.repo_is_empty"), true)
}
ctx.HTML(200, "repo/bare") ctx.HTML(200, "repo/bare")
} }
return return
} }
if ctx.IsSigned {
ctx.Data["IsWatchingRepo"] = models.IsWatching(ctx.User.Id, repo.ID)
ctx.Data["IsStaringRepo"] = models.IsStaring(ctx.User.Id, repo.ID)
}
ctx.Data["TagName"] = ctx.Repo.TagName ctx.Data["TagName"] = ctx.Repo.TagName
brs, err := ctx.Repo.GitRepo.GetBranches() brs, err := ctx.Repo.GitRepo.GetBranches()
if err != nil { if err != nil {

17
public/config.codekit

@ -204,6 +204,17 @@
"outputStyle": 1, "outputStyle": 1,
"syntaxCheckerStyle": 1 "syntaxCheckerStyle": 1
}, },
"\/js\/libs\/clipboard-1.3.1.min.js": {
"fileType": 64,
"ignore": 0,
"ignoreWasSetByUser": 0,
"inputAbbreviatedPath": "\/js\/libs\/clipboard-1.3.1.min.js",
"outputAbbreviatedPath": "\/js\/libs\/min\/clipboard-1.3.1.min-min.js",
"outputPathIsOutsideProject": 0,
"outputPathIsSetByUser": 0,
"outputStyle": 1,
"syntaxCheckerStyle": 1
},
"\/js\/libs\/dropzone-4.0.1.js": { "\/js\/libs\/dropzone-4.0.1.js": {
"fileType": 64, "fileType": 64,
"ignore": 0, "ignore": 0,
@ -548,12 +559,12 @@
"fileType": 1, "fileType": 1,
"ieCompatibility": 1, "ieCompatibility": 1,
"ignore": 0, "ignore": 0,
"ignoreWasSetByUser": 0, "ignoreWasSetByUser": 1,
"inputAbbreviatedPath": "\/less\/gogs.less", "inputAbbreviatedPath": "\/less\/gogs.less",
"outputAbbreviatedPath": "\/css\/gogs.min.css", "outputAbbreviatedPath": "\/css\/gogs.css",
"outputPathIsOutsideProject": 0, "outputPathIsOutsideProject": 0,
"outputPathIsSetByUser": 1, "outputPathIsSetByUser": 1,
"outputStyle": 1, "outputStyle": 0,
"relativeURLS": 0, "relativeURLS": 0,
"shouldRunAutoprefixer": 0, "shouldRunAutoprefixer": 0,
"shouldRunBless": 0, "shouldRunBless": 0,

3658
public/css/gogs.css

File diff suppressed because it is too large Load Diff

34
public/js/gogs.js

@ -396,6 +396,22 @@ function initRepository() {
}); });
} }
// Quick start
if ($('.repository.quickstart').length > 0) {
$('#repo-clone-ssh').click(function () {
$('.clone-url').text($(this).data('link'));
$('#repo-clone-url').val($(this).data('link'));
$(this).addClass('blue');
$('#repo-clone-https').removeClass('blue');
});
$('#repo-clone-https').click(function () {
$('.clone-url').text($(this).data('link'));
$('#repo-clone-url').val($(this).data('link'));
$(this).addClass('blue');
$('#repo-clone-ssh').removeClass('blue');
});
}
// Pull request // Pull request
if ($('.repository.compare.pull').length > 0) { if ($('.repository.compare.pull').length > 0) {
var $branch_dropdown = $('.choose.branch .dropdown'); var $branch_dropdown = $('.choose.branch .dropdown');
@ -608,6 +624,24 @@ $(document).ready(function () {
emojify.run($(this)[0]); emojify.run($(this)[0]);
}); });
// Clipboard JS
var clipboard = new Clipboard('.clipboard');
clipboard.on('success', function (e) {
e.clearSelection();
$('#' + e.trigger.getAttribute('id')).popup('destroy');
e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-success'))
$('#' + e.trigger.getAttribute('id')).popup('show');
e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-original'))
});
clipboard.on('error', function (e) {
$('#' + e.trigger.getAttribute('id')).popup('destroy');
e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-error'))
$('#' + e.trigger.getAttribute('id')).popup('show');
e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-original'))
});
// Helpers. // Helpers.
$('.delete-button').click(function () { $('.delete-button').click(function () {
var $this = $(this); var $this = $(this);

1
public/js/libs/clipboard-1.3.1.min.js vendored

File diff suppressed because one or more lines are too long

21
public/less/_repository.less

@ -591,7 +591,28 @@
overflow-x: auto; overflow-x: auto;
overflow-y: hidden; overflow-y: hidden;
} }
&.quickstart {
.guide {
.item {
padding: 1em;
small {
font-weight: normal;
}
}
.clone.button:first-child {
border-radius: .28571429rem 0 0 .28571429rem;
}
#repo-clone-url {
border-radius: 0;
width: 100%;
padding: 5px 10px;
font-size: 1.2em;
}
}
}
} }
// End of .repository
.issue.list { .issue.list {
list-style: none; list-style: none;

2
templates/.VERSION

@ -1 +1 @@
0.6.15.0926 Beta 0.6.16.1002 Beta

1
templates/base/footer.tmpl

@ -44,5 +44,6 @@
<script src="{{AppSubUrl}}/js/libs/dropzone-4.0.1.js"></script> <script src="{{AppSubUrl}}/js/libs/dropzone-4.0.1.js"></script>
{{end}} {{end}}
<script src="{{AppSubUrl}}/js/libs/emojify-1.1.0.min.js"></script> <script src="{{AppSubUrl}}/js/libs/emojify-1.1.0.min.js"></script>
<script src="{{AppSubUrl}}/js/libs/clipboard-1.3.1.min.js"></script>
</html> </html>

2
templates/base/head.tmpl

@ -20,7 +20,7 @@
<!-- Stylesheet --> <!-- Stylesheet -->
<link rel="stylesheet" href="{{AppSubUrl}}/css/semantic-2.1.3.min.css"> <link rel="stylesheet" href="{{AppSubUrl}}/css/semantic-2.1.3.min.css">
<link rel="stylesheet" href="{{AppSubUrl}}/css/gogs.min.css?v={{AppVer}}"> <link rel="stylesheet" href="{{AppSubUrl}}/css/gogs.css?v={{AppVer}}">
<!-- JavaScript --> <!-- JavaScript -->
<script src="{{AppSubUrl}}/js/semantic-2.1.3.min.js"></script> <script src="{{AppSubUrl}}/js/semantic-2.1.3.min.js"></script>

86
templates/repo/bare.tmpl

@ -1,55 +1,61 @@
{{template "ng/base/head" .}} {{template "base/head" .}}
{{template "ng/base/header" .}} <div class="repository quickstart">
<div id="repo-wrapper" class="repo-bare"> {{template "repo/header" .}}
<div id="repo-header" class="clear"> <div class="ui container">
<div class="container clear"> <div class="ui grid">
<h1 id="repo-header-name" class="left public"> <div class="sixteen wide column content">
<i class="mega-octicon octicon-{{if .Repository.IsPrivate}}lock{{else}}repo{{end}}"></i> {{template "base/alert" .}}
<a class="author" href="{{AppSubUrl}}/{{.Repository.Owner.Name}}">{{.Repository.Owner.Name}}</a> {{if .IsRepositoryAdmin}}
<span class="divider">/</span> <h4 class="ui top attached header">
<a class="repo text-bold" href="{{.RepoLink}}">{{.Repository.Name}}</a> {{.i18n.Tr "repo.quick_guide"}}
</h1> <div class="ui right">
</div> <a class="ui black tiny button" href="{{.RepoLink}}/settings">{{.i18n.Tr "repo.settings"}}</a>
</div> </div>
<div id="repo-content" class="clear container"> </h4>
<div id="repo-bare"> <div class="ui attached guide table segment">
<div id="repo-bare-start" class="panel panel-radius"> <div class="item">
<div class="panel-header"> <h3>{{.i18n.Tr "repo.clone_this_repo"}} <small>{{.i18n.Tr "repo.clone_helper" "http://git-scm.com/book/en/Git-Basics-Getting-a-Git-Repository" | Str2html}}</small></h3>
<a class="btn btn-small btn-black btn-header btn-radius right" href="{{.RepoLink}}/settings">{{.i18n.Tr "repo.settings"}}</a> <div class="ui action small input">
<strong>{{.i18n.Tr "repo.quick_guide"}}</strong>
</div>
<div class="panel-content">
<div id="repo-clone" class="clear text-center">
<h2>{{.i18n.Tr "repo.clone_this_repo"}}</h2>
{{if not $.DisableSSH}} {{if not $.DisableSSH}}
<button class="btn btn-blue btn-first current left btn-left-radius" id="repo-clone-ssh" data-link="{{.CloneLink.SSH}}">SSH</button> <button class="ui blue basic clone button" id="repo-clone-ssh" data-link="{{.CloneLink.SSH}}">
SSH
</button>
{{end}} {{end}}
<button class="btn {{if $.DisableSSH}}btn-first btn-blue current{{else}}btn-gray{{end}} left" id="repo-clone-https" data-link="{{.CloneLink.HTTPS}}">HTTPS</button> <button class="ui {{if $.DisableSSH}}blue{{end}} basic clone button" id="repo-clone-https" data-link="{{.CloneLink.HTTPS}}">
<input id="repo-clone-url" type="text" class="ipt ipt-disabled left" value="{{if $.DisableSSH}}{{$.CloneLink.HTTPS}}{{else}}{{$.CloneLink.SSH}}{{end}}" onclick="this.select()" readonly /> HTTPS
<button class="btn btn-black left btn-right-radius" id="repo-clone-copy" data-copy-val="val" data-copy-from="#repo-clone-url">{{.i18n.Tr "repo.copy_link"}}</button> </button>
<p class="text-center" id="repo-clone-help">{{.i18n.Tr "repo.clone_helper" "http://git-scm.com/book/en/Git-Basics-Getting-a-Git-Repository" | Str2html}}</p> <input id="repo-clone-url" value="{{if $.DisableSSH}}{{$.CloneLink.HTTPS}}{{else}}{{$.CloneLink.SSH}}{{end}}" readonly>
<hr/> <button class="ui basic button poping up clipboard" id="clipboard-btn" data-original="{{.i18n.Tr "repo.copy_link"}}" data-success="{{.i18n.Tr "repo.copy_link_success"}}" data-error="{{.i18n.Tr "repo.copy_link_error"}}" data-content="{{.i18n.Tr "repo.copy_link"}}" data-variation="inverted tiny" data-clipboard-target="#repo-clone-url">
</div> <i class="octicon octicon-clippy"></i>
<div id="repo-bare-cmd" class="text-center"> </button>
<h2>{{.i18n.Tr "repo.create_new_repo_command"}}</h2> </div>
<pre class="text-left radius"><code>touch README.md </div>
<div class="ui divider"></div>
<div class="item">
<h3>{{.i18n.Tr "repo.create_new_repo_command"}}</h3>
<div class="markdown">
<pre><code>touch README.md
git init git init
git add README.md git add README.md
git commit -m "first commit" git commit -m "first commit"
git remote add origin <span class="clone-url">{{if $.DisableSSH}}{{$.CloneLink.HTTPS}}{{else}}{{$.CloneLink.SSH}}{{end}}</span> git remote add origin <span class="clone-url">{{if $.DisableSSH}}{{$.CloneLink.HTTPS}}{{else}}{{$.CloneLink.SSH}}{{end}}</span>
git push -u origin master</code></pre> git push -u origin master</code></pre>
<br/>
<hr/>
</div> </div>
<div id="repo-bare-remote" class="text-center"> </div>
<h2>{{.i18n.Tr "repo.push_exist_repo"}}</h2> <div class="ui divider"></div>
<pre class="text-left radius"><code>git remote add origin <span class="clone-url">{{if $.DisableSSH}}{{$.CloneLink.HTTPS}}{{else}}{{$.CloneLink.SSH}}{{end}}</span>
<div class="item">
<h3>{{.i18n.Tr "repo.push_exist_repo"}}</h3>
<div class="markdown">
<pre><code>git remote add origin <span class="clone-url">{{if $.DisableSSH}}{{$.CloneLink.HTTPS}}{{else}}{{$.CloneLink.SSH}}{{end}}</span>
git push -u origin master</code></pre> git push -u origin master</code></pre>
<br/>
</div> </div>
</div> </div>
{{end}}
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
{{template "ng/base/footer" .}} {{template "base/footer" .}}

Loading…
Cancel
Save