Try to merge into develop branch ASAP, then continue minor fixes afterwards.tags/v1.21.12.1
| @@ -508,8 +508,8 @@ func runWeb(ctx *cli.Context) error { | |||
| Post(bindIgnErr(auth.UploadRepoFileForm{}), repo.UploadFilePost) | |||
| m.Post("/_delete/*", bindIgnErr(auth.DeleteRepoFileForm{}), repo.DeleteFilePost) | |||
| m.Post("/branches", bindIgnErr(auth.NewBranchForm{}), repo.NewBranchPost) | |||
| m.Post("/upload-file", repo.UploadFileToServer) | |||
| m.Post("/upload-remove", bindIgnErr(auth.RemoveUploadFileForm{}), repo.RemoveUploadFileFromServer) | |||
| // m.Post("/upload-file", repo.UploadFileToServer) | |||
| // m.Post("/upload-remove", bindIgnErr(auth.RemoveUploadFileForm{}), repo.RemoveUploadFileFromServer) | |||
| }, reqRepoWriter, context.RepoRef(), func(ctx *context.Context) { | |||
| if ctx.Repo.IsViewCommit { | |||
| ctx.Handle(404, "", nil) | |||
| @@ -137,7 +137,7 @@ | |||
| "outputPathIsOutsideProject": 0, | |||
| "outputPathIsSetByUser": 0, | |||
| "outputStyle": 1, | |||
| "syntaxCheckerStyle": 0 | |||
| "syntaxCheckerStyle": 1 | |||
| }, | |||
| "\/js\/jquery-1.11.3.min.js": { | |||
| "fileType": 64, | |||
| @@ -255,9 +255,6 @@ code.wrap { | |||
| .ui.status.buttons .octicon { | |||
| margin-right: 4px; | |||
| } | |||
| .ui.menu .item .octicon { | |||
| margin-right: 4px; | |||
| } | |||
| .ui.inline.delete-button { | |||
| padding: 8px 15px; | |||
| font-weight: normal; | |||
| @@ -1227,6 +1224,14 @@ footer .ui.language .menu { | |||
| .repository.file.list .choose.reference .header .icon { | |||
| font-size: 1.4em; | |||
| } | |||
| .repository.file.list #file-buttons { | |||
| font-weight: normal; | |||
| margin-top: -3px; | |||
| padding-right: 20px; | |||
| } | |||
| .repository.file.list #file-buttons .ui.button { | |||
| padding: 8px 10px; | |||
| } | |||
| .repository.file.list #repo-files-table thead th { | |||
| padding-top: 8px; | |||
| padding-bottom: 5px; | |||
| @@ -1263,63 +1268,93 @@ footer .ui.language .menu { | |||
| font-size: 1em; | |||
| margin-top: -2px; | |||
| } | |||
| .repository.file.list #file-content .header .file-actions { | |||
| padding-left: 20px; | |||
| } | |||
| .repository.file.list #file-content .header .file-actions .btn-octicon { | |||
| display: inline-block; | |||
| padding: 5px; | |||
| margin-left: 5px; | |||
| line-height: 1; | |||
| color: #767676; | |||
| vertical-align: middle; | |||
| background: transparent; | |||
| border: 0; | |||
| outline: none; | |||
| } | |||
| .repository.file.list #file-content .header .file-actions .btn-octicon:hover { | |||
| color: #4078c0; | |||
| } | |||
| .repository.file.list #file-content .header .file-actions .btn-octicon-danger:hover { | |||
| color: #bd2c00; | |||
| } | |||
| .repository.file.list #file-content .header .file-actions .btn-octicon.disabled { | |||
| color: #bbb; | |||
| cursor: default; | |||
| } | |||
| .repository.file.list #file-content .header .file-actions #delete-file-form { | |||
| display: inline-block; | |||
| } | |||
| .repository.file.list #file-content .view-raw { | |||
| padding: 5px; | |||
| } | |||
| .repository.file.list #file-content .view-raw * { | |||
| max-width: 100%; | |||
| } | |||
| .repository.file.list #file-content .view-raw img { | |||
| padding: 5px 5px 0 5px; | |||
| } | |||
| #file-content .code-view * { | |||
| .repository.file.list #file-content .code-view * { | |||
| font-size: 12px; | |||
| font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; | |||
| line-height: 20px; | |||
| } | |||
| #file-content .code-view table { | |||
| .repository.file.list #file-content .code-view table { | |||
| width: 100%; | |||
| } | |||
| #file-content .code-view .lines-num { | |||
| .repository.file.list #file-content .code-view .lines-num { | |||
| vertical-align: top; | |||
| text-align: right; | |||
| color: #999; | |||
| background: #f5f5f5; | |||
| width: 1%; | |||
| } | |||
| #file-content .code-view .lines-num span { | |||
| .repository.file.list #file-content .code-view .lines-num span { | |||
| line-height: 20px; | |||
| padding: 0 10px; | |||
| cursor: pointer; | |||
| display: block; | |||
| } | |||
| #file-content .code-view .lines-num, | |||
| #file-content .code-view .lines-code { | |||
| .repository.file.list #file-content .code-view .lines-num, | |||
| .repository.file.list #file-content .code-view .lines-code { | |||
| padding: 0; | |||
| } | |||
| #file-content .code-view .lines-num pre, | |||
| #file-content .code-view .lines-code pre, | |||
| #file-content .code-view .lines-num ol, | |||
| #file-content .code-view .lines-code ol, | |||
| #file-content .code-view .lines-num .hljs, | |||
| #file-content .code-view .lines-code .hljs { | |||
| .repository.file.list #file-content .code-view .lines-num pre, | |||
| .repository.file.list #file-content .code-view .lines-code pre, | |||
| .repository.file.list #file-content .code-view .lines-num ol, | |||
| .repository.file.list #file-content .code-view .lines-code ol, | |||
| .repository.file.list #file-content .code-view .lines-num .hljs, | |||
| .repository.file.list #file-content .code-view .lines-code .hljs { | |||
| background-color: white; | |||
| margin: 0; | |||
| padding: 0 !important; | |||
| } | |||
| #file-content .code-view .lines-num pre li, | |||
| #file-content .code-view .lines-code pre li, | |||
| #file-content .code-view .lines-num ol li, | |||
| #file-content .code-view .lines-code ol li, | |||
| #file-content .code-view .lines-num .hljs li, | |||
| #file-content .code-view .lines-code .hljs li { | |||
| .repository.file.list #file-content .code-view .lines-num pre li, | |||
| .repository.file.list #file-content .code-view .lines-code pre li, | |||
| .repository.file.list #file-content .code-view .lines-num ol li, | |||
| .repository.file.list #file-content .code-view .lines-code ol li, | |||
| .repository.file.list #file-content .code-view .lines-num .hljs li, | |||
| .repository.file.list #file-content .code-view .lines-code .hljs li { | |||
| padding-left: 5px; | |||
| display: inline-block; | |||
| width: 100%; | |||
| } | |||
| #file-content .code-view .lines-num pre li.active, | |||
| #file-content .code-view .lines-code pre li.active, | |||
| #file-content .code-view .lines-num ol li.active, | |||
| #file-content .code-view .lines-code ol li.active, | |||
| #file-content .code-view .lines-num .hljs li.active, | |||
| #file-content .code-view .lines-code .hljs li.active { | |||
| .repository.file.list #file-content .code-view .lines-num pre li.active, | |||
| .repository.file.list #file-content .code-view .lines-code pre li.active, | |||
| .repository.file.list #file-content .code-view .lines-num ol li.active, | |||
| .repository.file.list #file-content .code-view .lines-code ol li.active, | |||
| .repository.file.list #file-content .code-view .lines-num .hljs li.active, | |||
| .repository.file.list #file-content .code-view .lines-code .hljs li.active { | |||
| background: #ffffdd; | |||
| } | |||
| .repository.file.list .sidebar { | |||
| @@ -1328,6 +1363,85 @@ footer .ui.language .menu { | |||
| .repository.file.list .sidebar .octicon { | |||
| width: 16px; | |||
| } | |||
| .repository.file.editor .treepath { | |||
| width: 100%; | |||
| } | |||
| .repository.file.editor .treepath input { | |||
| vertical-align: middle; | |||
| box-shadow: rgba(0, 0, 0, 0.0745098) 0px 1px 2px inset; | |||
| width: inherit; | |||
| padding: 7px 8px; | |||
| margin-right: 5px; | |||
| } | |||
| .repository.file.editor .tabular.menu .octicon { | |||
| margin-right: 5px; | |||
| } | |||
| .repository.file.editor .CodeMirror.cm-s-default { | |||
| border-radius: 3px; | |||
| padding: 0 !important; | |||
| } | |||
| .repository.file.editor .commit-form-wrapper { | |||
| padding-left: 64px; | |||
| } | |||
| .repository.file.editor .commit-form-wrapper .commit-avatar { | |||
| float: left; | |||
| margin-left: -64px; | |||
| width: 3em; | |||
| height: auto; | |||
| } | |||
| .repository.file.editor .commit-form-wrapper .commit-form { | |||
| position: relative; | |||
| padding: 15px; | |||
| margin-bottom: 10px; | |||
| border: 1px solid #ddd; | |||
| border-radius: 3px; | |||
| } | |||
| .repository.file.editor .commit-form-wrapper .commit-form:before, | |||
| .repository.file.editor .commit-form-wrapper .commit-form:after { | |||
| right: 100%; | |||
| top: 20px; | |||
| border: solid transparent; | |||
| content: " "; | |||
| height: 0; | |||
| width: 0; | |||
| position: absolute; | |||
| pointer-events: none; | |||
| } | |||
| .repository.file.editor .commit-form-wrapper .commit-form:before { | |||
| border-right-color: #D4D4D5; | |||
| border-width: 9px; | |||
| margin-top: -9px; | |||
| } | |||
| .repository.file.editor .commit-form-wrapper .commit-form:after { | |||
| border-right-color: #f7f7f7; | |||
| border-width: 8px; | |||
| margin-top: -8px; | |||
| } | |||
| .repository.file.editor .commit-form-wrapper .commit-form:after { | |||
| border-right-color: #fff; | |||
| } | |||
| .repository.file.editor .commit-form-wrapper .commit-form .quick-pull-choice .branch-name { | |||
| display: inline-block; | |||
| padding: 3px 6px; | |||
| font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace; | |||
| color: rgba(0, 0, 0, 0.65); | |||
| background-color: rgba(209, 227, 237, 0.45); | |||
| border-radius: 3px; | |||
| } | |||
| .repository.file.editor .commit-form-wrapper .commit-form .quick-pull-choice .new-branch-name-input { | |||
| position: relative; | |||
| margin-left: 25px; | |||
| } | |||
| .repository.file.editor .commit-form-wrapper .commit-form .quick-pull-choice .new-branch-name-input input { | |||
| width: 240px !important; | |||
| padding-left: 26px !important; | |||
| } | |||
| .repository.file.editor .commit-form-wrapper .commit-form .quick-pull-choice .octicon-git-branch { | |||
| position: absolute; | |||
| top: 9px; | |||
| left: 10px; | |||
| color: #b0c4ce; | |||
| } | |||
| .repository.options #interval { | |||
| width: 100px!important; | |||
| min-width: 100px; | |||
| @@ -1898,7 +2012,7 @@ footer .ui.language .menu { | |||
| max-width: 100%; | |||
| padding: 5px 5px 0 5px; | |||
| } | |||
| #file-content .code-view { | |||
| .repository .code-view { | |||
| overflow: auto; | |||
| overflow-x: auto; | |||
| overflow-y: hidden; | |||
| @@ -2160,13 +2274,13 @@ footer .ui.language .menu { | |||
| .page.buttons { | |||
| padding-top: 15px; | |||
| } | |||
| .ui.comments .dropzone, .ui.upload .dropzone { | |||
| .ui.comments .dropzone { | |||
| width: 100%; | |||
| margin-bottom: 10px; | |||
| border: 2px dashed #0087F7; | |||
| box-shadow: none!important; | |||
| } | |||
| .ui.comments .dropzone .dz-error-message, .ui.upload .dropzone .dz-error-message { | |||
| .ui.comments .dropzone .dz-error-message { | |||
| top: 140px; | |||
| } | |||
| .settings .content { | |||
| @@ -2800,197 +2914,3 @@ footer .ui.language .menu { | |||
| .ui.user.list .item .description a:hover { | |||
| text-decoration: underline; | |||
| } | |||
| .btn-octicon { | |||
| display: inline-block; | |||
| padding: 5px; | |||
| margin-left: 5px; | |||
| line-height: 1; | |||
| color: #767676; | |||
| vertical-align: middle; | |||
| background: transparent; | |||
| border: 0; | |||
| outline: none; | |||
| } | |||
| .btn-octicon:hover { | |||
| color: #4078c0; | |||
| } | |||
| .btn-octicon-danger:hover { | |||
| color: #bd2c00; | |||
| } | |||
| .btn-octicon.disabled { | |||
| color: #bbb; | |||
| cursor: default; | |||
| } | |||
| .inline-form { | |||
| display: inline-block; | |||
| } | |||
| .ui.form .breadcrumb input { | |||
| min-height: 34px; | |||
| padding: 7px 8px; | |||
| color: #333; | |||
| vertical-align: middle; | |||
| background-color: #fff; | |||
| background-repeat: no-repeat; | |||
| background-position: right 8px center; | |||
| border: 1px solid #ddd; | |||
| border-radius: 3px; | |||
| outline: none; | |||
| box-shadow: inset 0 1px 2px rgba(0,0,0,0.075); | |||
| width: inherit; | |||
| } | |||
| #file-actions { | |||
| padding-left: 20px; | |||
| } | |||
| .CodeMirror.cm-s-default { | |||
| margin-top: 20px; | |||
| margin-bottom: 15px; | |||
| border: 1px solid #ddd; | |||
| border-radius: 3px; | |||
| height: 600px; | |||
| padding: 0 !important; | |||
| } | |||
| .commit-form-wrapper { | |||
| padding-left: 64px; | |||
| } | |||
| .commit-form { | |||
| position: relative; | |||
| padding: 15px; | |||
| margin-bottom: 10px; | |||
| border: 1px solid #ddd; | |||
| border-radius: 3px; | |||
| } | |||
| .commit-form-wrapper .commit-form-avatar { | |||
| float: left; | |||
| margin-left: -64px; | |||
| border-radius: 4px; | |||
| } | |||
| .commit-form::before { | |||
| border-width: 8px; | |||
| border-color: transparent; | |||
| border-right-color: #ddd; | |||
| position: absolute; | |||
| top: 11px; | |||
| right: 100%; | |||
| left: -16px; | |||
| display: block; | |||
| width: 0; | |||
| height: 0; | |||
| pointer-events: none; | |||
| content: " "; | |||
| border-style: solid solid outset; | |||
| } | |||
| .form-checkbox input[type=checkbox], .form-checkbox input[type=radio] { | |||
| float: left; | |||
| margin: 2px 0 0 -20px; | |||
| vertical-align: middle; | |||
| box-sizing: border-box; | |||
| padding: 0; | |||
| } | |||
| .branch-name { | |||
| display: inline-block; | |||
| padding: 2px 6px; | |||
| font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace; | |||
| color: rgba(0,0,0,0.5); | |||
| background-color: rgba(209,227,237,0.5); | |||
| border-radius: 3px; | |||
| } | |||
| .form-control, .form-select { | |||
| min-height: 34px; | |||
| padding: 7px 8px; | |||
| font-size: 13px; | |||
| color: #333; | |||
| vertical-align: middle; | |||
| background-color: #fff; | |||
| background-repeat: no-repeat; | |||
| background-position: right 8px center; | |||
| border: 1px solid #ddd; | |||
| border-radius: 3px; | |||
| outline: none; | |||
| box-shadow: inset 0 1px 2px rgba(0,0,0,0.075); | |||
| } | |||
| .form-control.input-contrast { | |||
| background-color: #fafafa; | |||
| } | |||
| .form-control.mr-2 { | |||
| margin-right: 6px !important; | |||
| } | |||
| .quick-pull-choice .new-branch-name-input input { | |||
| width: 240px !important; | |||
| padding-left: 26px !important; | |||
| font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; | |||
| } | |||
| .quick-pull-choice .new-branch-name-input .quick-pull-new-branch-icon { | |||
| position: absolute; | |||
| top: 9px; | |||
| left: 10px; | |||
| color: #b0c4ce; | |||
| } | |||
| .text-muted, .text-gray { | |||
| color: #767676 !important; | |||
| } | |||
| .quick-pull-choice .new-branch-name-input { | |||
| position: relative; | |||
| margin-top: 5px; | |||
| } | |||
| .quick-pull-choice .quick-pull-branch-name { | |||
| display: none; | |||
| padding-left: 48px; | |||
| margin-top: 5px; | |||
| } | |||
| .quick-pull-choice.will-create-branch .quick-pull-branch-name { | |||
| display: inline-block; | |||
| } | |||
| .nowrap { | |||
| white-space: nowrap; | |||
| } | |||
| #file-buttons { | |||
| padding-right: 15px; | |||
| } | |||
| .repository .ui.container .ui.breadcrumb { | |||
| font-size: 1.5em; | |||
| color: #767676; | |||
| max-width: 600px; | |||
| } | |||
| .repository .ui.container .item:first-child .ui.breadcrumb { | |||
| max-width: none; | |||
| } | |||
| .repository .ui.container .ui.breadcrumb.field { | |||
| margin-bottom: 10px !important; | |||
| } | |||
| .repo-edit-file-cancel { | |||
| padding-left: 10px; | |||
| } | |||
| #new-branch-item { | |||
| display:none; | |||
| margin: 0; | |||
| text-align: left; | |||
| padding: .71428571em 1.14285714em!important; | |||
| background: 0 0!important; | |||
| color: rgba(0,0,0,.87)!important; | |||
| text-transform: none!important; | |||
| box-shadow: none!important; | |||
| -webkit-transition: none!important; | |||
| transition: none!important; | |||
| border-top: none; | |||
| padding-right: calc(1.14285714rem + 17px)!important; | |||
| font-size: 14px; | |||
| font-weight: bold; | |||
| line-height: 1.1; | |||
| } | |||
| #new-branch-item:hover { | |||
| background: rgba(0,0,0,.05)!important; | |||
| color: rgba(0,0,0,.95)!important; | |||
| } | |||
| #new-branch-item .icon { | |||
| float: left; | |||
| margin-left: -15px; | |||
| } | |||
| #new-branch-item .description { | |||
| margin-top: 3px; | |||
| font-size: 12px; | |||
| } | |||
| .repository .ui.container .ui.breadcrumb { | |||
| font-size: 1.5em; | |||
| color: #767676; | |||
| max-width: 600px; | |||
| } | |||
| @@ -735,7 +735,7 @@ function initEditor() { | |||
| $('#tree-name').val(parts.join('/')); | |||
| }).trigger('keyup'); | |||
| editArea = $('.repository.edit textarea#edit_area'); | |||
| editArea = $('.repository.editor textarea#edit_area'); | |||
| if (!editArea.length) | |||
| return; | |||
| @@ -158,6 +158,14 @@ | |||
| font-size: 1.4em; | |||
| } | |||
| } | |||
| #file-buttons { | |||
| font-weight: normal; | |||
| margin-top: -3px; | |||
| padding-right: 20px; | |||
| .ui.button { | |||
| padding: 8px 10px; | |||
| } | |||
| } | |||
| #repo-files-table { | |||
| thead { | |||
| @@ -204,8 +212,36 @@ | |||
| font-size: 1em; | |||
| margin-top: -2px; | |||
| } | |||
| .file-actions { | |||
| padding-left: 20px; | |||
| .btn-octicon { | |||
| display: inline-block; | |||
| padding: 5px; | |||
| margin-left: 5px; | |||
| line-height: 1; | |||
| color: #767676; | |||
| vertical-align: middle; | |||
| background: transparent; | |||
| border: 0; | |||
| outline: none; | |||
| } | |||
| .btn-octicon:hover { | |||
| color: #4078c0; | |||
| } | |||
| .btn-octicon-danger:hover { | |||
| color: #bd2c00; | |||
| } | |||
| .btn-octicon.disabled { | |||
| color: #bbb; | |||
| cursor: default; | |||
| } | |||
| #delete-file-form { | |||
| display: inline-block; | |||
| } | |||
| } | |||
| } | |||
| .view-raw { | |||
| padding: 5px; | |||
| * { | |||
| max-width: 100%; | |||
| } | |||
| @@ -271,6 +307,77 @@ | |||
| } | |||
| } | |||
| &.file.editor { | |||
| .treepath { | |||
| width: 100%; | |||
| input { | |||
| vertical-align: middle; | |||
| box-shadow: rgba(0, 0, 0, 0.0745098) 0px 1px 2px inset; | |||
| width: inherit; | |||
| padding: 7px 8px; | |||
| margin-right: 5px; | |||
| } | |||
| } | |||
| .tabular.menu { | |||
| .octicon { | |||
| margin-right: 5px; | |||
| } | |||
| } | |||
| .CodeMirror.cm-s-default { | |||
| border-radius: 3px; | |||
| padding: 0 !important; | |||
| } | |||
| .commit-form-wrapper { | |||
| padding-left: 64px; | |||
| .commit-avatar { | |||
| float: left; | |||
| margin-left: -64px; | |||
| width: 3em; | |||
| height: auto; | |||
| } | |||
| .commit-form { | |||
| position: relative; | |||
| padding: 15px; | |||
| margin-bottom: 10px; | |||
| border: 1px solid #ddd; | |||
| border-radius: 3px; | |||
| #avatar-arrow; | |||
| &:after { | |||
| border-right-color: #fff; | |||
| } | |||
| .quick-pull-choice { | |||
| .branch-name { | |||
| display: inline-block; | |||
| padding: 3px 6px; | |||
| font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace; | |||
| color: rgba(0,0,0,0.65); | |||
| background-color: rgba(209,227,237,0.45); | |||
| border-radius: 3px; | |||
| } | |||
| .new-branch-name-input { | |||
| position: relative; | |||
| margin-left: 25px; | |||
| input { | |||
| width: 240px !important; | |||
| padding-left: 26px !important; | |||
| } | |||
| } | |||
| .octicon-git-branch { | |||
| position: absolute; | |||
| top: 9px; | |||
| left: 10px; | |||
| color: #b0c4ce; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| &.options { | |||
| #interval { | |||
| width: 100px!important; | |||
| @@ -41,7 +41,6 @@ func Home(ctx *context.Context) { | |||
| ctx.Data["Title"] = title | |||
| ctx.Data["PageIsViewCode"] = true | |||
| ctx.Data["RequireHighlightJS"] = true | |||
| ctx.Data["IsWriter"] = ctx.Repo.IsWriter() | |||
| branchName := ctx.Repo.BranchName | |||
| userName := ctx.Repo.Owner.Name | |||
| @@ -33,19 +33,6 @@ | |||
| {{range .Branches}} | |||
| <div class="item {{if eq $.BranchName .}}selected{{end}}" data-url="{{$.RepoLink}}/{{if $.PageIsCommits}}commits{{else}}src{{end}}/{{EscapePound .}}{{if $.TreeName}}/{{EscapePound $.TreeName}}{{end}}">{{.}}</div> | |||
| {{end}} | |||
| {{if .IsWriter}} | |||
| <a href="javascript:void(0)" id="new-branch-item"> | |||
| <i class="octicon octicon-git-branch"></i> | |||
| {{.i18n.Tr "repo.create_branch"}}: <span id="branch-name-text"></span> | |||
| <br/> | |||
| <span class="description">{{.i18n.Tr "repo.from"}} ‘{{.BranchName}}’</span> | |||
| <form accept-charset="UTF-8" action="{{.RepoLink}}/branches" method="post"> | |||
| {{.CsrfTokenHtml}} | |||
| <input type="hidden" name="old_branch_name" value="{{.BranchName}}"> | |||
| <input type="hidden" name="branch_name" id="branch-name" value=""> | |||
| </form> | |||
| </a> | |||
| {{end}} | |||
| </div> | |||
| <div id="tag-list" class="scrolling menu" {{if not .IsViewTag}}style="display: none"{{end}}> | |||
| {{range .Tags}} | |||
| @@ -55,33 +42,3 @@ | |||
| </div> | |||
| </div> | |||
| </div> | |||
| {{if .IsWriter}} | |||
| <script type="text/javascript"> | |||
| $(document).ready(function(){ | |||
| $('#branch-dropdown #new-branch-item').on('click', function(){ | |||
| $(this).find('form').submit(); | |||
| return true; | |||
| }); | |||
| $('#branch-dropdown input[name=search]').on('keyup', function(){ | |||
| var query = $(this).val().toLowerCase(); | |||
| if(query.length){ | |||
| var unique = true; | |||
| $('#branch-dropdown #branch-list .item').each(function(i, item){ | |||
| if($(item).text().toLowerCase() == query){ | |||
| unique = false; | |||
| } | |||
| }); | |||
| if(unique){ | |||
| $('#new-branch-item #branch-name-text').text(query); | |||
| $('#new-branch-item #branch-name').val(query); | |||
| $('#new-branch-item').css('display', 'block'); | |||
| return; | |||
| } | |||
| } | |||
| $('#new-branch-item').hide(); | |||
| }); | |||
| }); | |||
| </script> | |||
| {{end}} | |||
| @@ -1,5 +1,5 @@ | |||
| {{template "base/head" .}} | |||
| <div class="repository file edit"> | |||
| <div class="repository file editor"> | |||
| {{template "repo/header" .}} | |||
| <div class="ui container"> | |||
| {{template "base/alert" .}} | |||
| @@ -7,30 +7,33 @@ | |||
| {{.CsrfTokenHtml}} | |||
| <input type="hidden" name="last_commit" value="{{.last_commit}}"> | |||
| <div class="ui secondary menu"> | |||
| <div class="item fitted" style="width:100%;"> | |||
| <div class="ui breadcrumb field{{if .Err_Filename}} error{{end}}"> | |||
| <div class="fitted item treepath"> | |||
| <div class="ui breadcrumb field {{if .Err_Filename}}error{{end}}"> | |||
| <a class="section" href="{{EscapePound $.BranchLink}}">{{.Repository.Name}}</a> | |||
| {{ $n := len .TreeNames}} | |||
| {{ $l := Subtract $n 1}} | |||
| {{range $i, $v := .TreeNames}} | |||
| <div class="divider"> / </div> | |||
| {{if eq $i $l}} | |||
| <input type="text" id="file-name" value="{{$v}}" placeholder="{{$.i18n.Tr "repo.name_your_file"}}" required> <span class="octicon octicon-info poping up" data-content="{{$.i18n.Tr "repo.filename_help"}}" data-position="bottom center" data-variation="tiny"></span> | |||
| <input id="file-name" value="{{$v}}" placeholder="{{$.i18n.Tr "repo.name_your_file"}}" required autofocus> | |||
| <span class="octicon octicon-info poping up" data-content="{{$.i18n.Tr "repo.filename_help"}}" data-position="bottom center" data-variation="tiny"></span> | |||
| {{else}} | |||
| <span class="section"><a href="{{EscapePound $.BranchLink}}/{{EscapePound $v}}">{{$v}}</a></span> | |||
| {{end}} | |||
| {{end}} | |||
| <button class="clipboard-tree-name octicon octicon-clippy poping up" type="button" data-content="{{.i18n.Tr "repo.copy_file_path_to_clipboard"}}" data-position="bottom center" data-variation="tiny inverted"></button> | |||
| <span class="repo-edit-file-cancel">{{.i18n.Tr "repo.or"}} <a href="{{EscapePound $.BranchLink}}/{{EscapePound $.TreeName}}">{{.i18n.Tr "repo.cancel_lower"}}</a></span> | |||
| <!-- <button class="clipboard-tree-name octicon octicon-clippy poping up" type="button" data-content="{{.i18n.Tr "repo.copy_file_path_to_clipboard"}}" data-position="bottom center" data-variation="tiny inverted"></button> --> | |||
| <span class="repo-edit-file-cancel">{{.i18n.Tr "repo.or"}} <a href="{{EscapePound $.BranchLink}}{{if not .IsNewFile}}/{{EscapePound $.TreeName}}{{end}}">{{.i18n.Tr "repo.cancel_lower"}}</a></span> | |||
| <input type="hidden" id="tree-name" name="tree_name" value="{{.TreeName}}" required> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="field"> | |||
| <div class="ui top attached tabular menu" data-write="write" data-preview="preview" data-diff="diff"> | |||
| <a class="active item" data-tab="write"><i class="octicon octicon-code"></i> {{.i18n.Tr "repo.edit_file"}}</a> | |||
| <a class="active item" data-tab="write"><i class="octicon octicon-code"></i> {{if .IsNewFile}}{{.i18n.Tr "repo.new_file"}}{{else}}{{.i18n.Tr "repo.edit_file"}}{{end}}</a> | |||
| {{if not .IsNewFile}} | |||
| <a class="item" data-tab="preview" data-url="{{AppSubUrl}}/api/v1/markdown" data-context="{{.RepoLink}}" data-preview-file-modes="{{.PreviewableFileModes}}"><i class="octicon octicon-eye"></i> {{.i18n.Tr "repo.release.preview"}}</a> | |||
| <a class="item" data-tab="diff" data-url="{{.RepoLink}}/_preview/{{.BranchName}}/{{.TreeName}}" data-context="{{.BranchLink}}"><i class="octicon octicon-diff"></i> {{.i18n.Tr "repo.preview_changes"}}</a> | |||
| {{end}} | |||
| </div> | |||
| <div class="ui bottom attached active tab segment" data-tab="write"> | |||
| <textarea id="edit_area" name="content" data-id="repo-{{.Repository.Name}}-{{.TreeName}}" | |||
| @@ -48,37 +51,37 @@ | |||
| </div> | |||
| </div> | |||
| <div class="commit-form-wrapper"> | |||
| <img width="48" height="48" class="ui rounded image commit-form-avatar" src="{{.SignedUser.AvatarLink}}"> | |||
| <img width="48" height="48" class="ui image commit-avatar" src="{{.SignedUser.AvatarLink}}"> | |||
| <div class="commit-form"> | |||
| <h3>{{.i18n.Tr "repo.commit_changes"}}</h3> | |||
| <div class="field"> | |||
| <input name="commit_summary" placeholder="{{if .IsNewFile}}{{.i18n.Tr "repo.add"}} '{{.TreeName}}/<filename>'{{else}}{{.i18n.Tr "repo.update"}} '{{.TreeName}}'{{end}}" value="{{.commit_summary}}"> | |||
| </div> | |||
| <div class="field"> | |||
| <textarea name="commit_message" placeholder="{{.i18n.Tr "repo.default_commit_message"}}">{{.commit_message}}</textarea> | |||
| <textarea name="commit_message" placeholder="{{.i18n.Tr "repo.default_commit_message"}}" rows="5">{{.commit_message}}</textarea> | |||
| </div> | |||
| <div class="quick-pull-choice js-quick-pull-choice"> | |||
| <dl class="form-group"> | |||
| <dd> | |||
| <div class="form-checkbox"> | |||
| <label> | |||
| <input type="radio" class="js-quick-pull-choice-option" name="commit_choice" value="direct"{{if eq .commit_choice "direct"}} checked="checked"{{end}}> | |||
| <i class="octicon octicon-git-commit" height="16" width="14"></i> | |||
| {{.i18n.Tr "repo.editor.commit_directly_to_this_branch" .BranchName | Safe}} | |||
| </label> | |||
| </div> | |||
| <div class="form-checkbox"> | |||
| <label> | |||
| <input type="radio" class="js-quick-pull-choice-option" name="commit_choice" value="commit-to-new-branch"{{if eq .commit_choice "commit-to-new-branch"}} checked="checked"{{end}}> | |||
| <i class="octicon octicon-git-pull-request" height="16" width="12"></i> | |||
| {{.i18n.Tr "repo.editor.create_new_branch" | Safe}} | |||
| </label> | |||
| </div> | |||
| </dd> | |||
| </dl> | |||
| <div class="field"> | |||
| <div class="ui radio checkbox"> | |||
| <input type="radio" class="js-quick-pull-choice-option" name="commit_choice" value="direct" {{if eq .commit_choice "direct"}}checked{{end}}> | |||
| <label> | |||
| <i class="octicon octicon-git-commit" height="16" width="14"></i> | |||
| {{.i18n.Tr "repo.editor.commit_directly_to_this_branch" .BranchName | Safe}} | |||
| </label> | |||
| </div> | |||
| </div> | |||
| <div class="field"> | |||
| <div class="ui radio checkbox"> | |||
| <input type="radio" class="js-quick-pull-choice-option" name="commit_choice" value="commit-to-new-branch" {{if eq .commit_choice "commit-to-new-branch"}}checked{{end}}> | |||
| <label> | |||
| <i class="octicon octicon-git-pull-request" height="16" width="12"></i> | |||
| {{.i18n.Tr "repo.editor.create_new_branch" | Safe}} | |||
| </label> | |||
| </div> | |||
| </div> | |||
| <div class="quick-pull-branch-name"> | |||
| <div class="new-branch-name-input{{if .Err_Branchname}} error{{end}}"> | |||
| <i class="octicon octicon-git-branch quick-pull-new-branch-icon" height="16" width="10"></i> | |||
| <i class="octicon octicon-git-branch" height="16" width="10"></i> | |||
| <input type="text" name="new_branch_name" value="{{.new_branch_name}}" class="form-control input-contrast mr-2 js-quick-pull-new-branch-name" placeholder="New branch name…"> | |||
| <span class="text-muted js-quick-pull-normalization-info"></span> | |||
| </div> | |||
| @@ -15,7 +15,7 @@ | |||
| </div> | |||
| {{end}} | |||
| {{template "repo/branch_dropdown" .}} | |||
| <div class="item fitted"> | |||
| <div class="fitted item"> | |||
| <div class="ui breadcrumb"> | |||
| <a class="section" href="{{.RepoLink}}/src/{{EscapePound .BranchName}}">{{.Repository.Name}}</a> | |||
| {{ $n := len .Treenames}} | |||
| @@ -32,16 +32,16 @@ | |||
| </div> | |||
| </div> | |||
| <div class="right fitted item"> | |||
| <div id="file-buttons" class="ui buttons nowrap"> | |||
| <div id="file-buttons" class="ui tiny buttons"> | |||
| {{if .NewFileLink}} | |||
| <a href="{{EscapePound .NewFileLink}}" class="ui button nowrap"> | |||
| <i class="plus square outline icon"></i> {{.i18n.Tr "repo.new_file"}} | |||
| <a href="{{EscapePound .NewFileLink}}" class="ui button"> | |||
| {{.i18n.Tr "repo.new_file"}} | |||
| </a> | |||
| {{end}} | |||
| {{if .UploadFileLink}} | |||
| <a href="{{EscapePound .UploadFileLink}}" class="ui button nowrap"> | |||
| <!-- <a href="{{EscapePound .UploadFileLink}}" class="ui button nowrap"> | |||
| <i class="upload icon"></i> {{.i18n.Tr "repo.upload_file"}} | |||
| </a> | |||
| </a> --> | |||
| {{end}} | |||
| </div> | |||
| {{if eq $n 0}} | |||