Allow disabling uploads
This commit is contained in:
		
							parent
							
								
									9df99681fb
								
							
						
					
					
						commit
						4d702eb345
					
				
					 5 changed files with 23 additions and 1 deletions
				
			
		|  | @ -181,6 +181,8 @@ SERVICE = server | |||
| DISABLE_GRAVATAR = false | ||||
| 
 | ||||
| [attachment] | ||||
| ; Whether attachments are enabled. Defaults to `true` | ||||
| ENABLE = | ||||
| ; Path for attachments. Defaults to files/attachments | ||||
| PATH =  | ||||
| ; One or more allowed types, e.g. image/jpeg|image/png | ||||
|  |  | |||
|  | @ -76,6 +76,7 @@ var ( | |||
| 	AttachmentAllowedTypes string | ||||
| 	AttachmentMaxSize      int64 | ||||
| 	AttachmentMaxFiles     int | ||||
| 	AttachmentEnabled      bool | ||||
| 
 | ||||
| 	// Cache settings.
 | ||||
| 	Cache        cache.Cache | ||||
|  | @ -176,6 +177,7 @@ func NewConfigContext() { | |||
| 	AttachmentAllowedTypes = Cfg.MustValue("attachment", "ALLOWED_TYPES", "*/*") | ||||
| 	AttachmentMaxSize = Cfg.MustInt64("attachment", "MAX_SIZE", 32) | ||||
| 	AttachmentMaxFiles = Cfg.MustInt("attachment", "MAX_FILES", 10) | ||||
| 	AttachmentEnabled = Cfg.MustBool("attachment", "ENABLE", true) | ||||
| 
 | ||||
| 	if err = os.MkdirAll(AttachmentPath, os.ModePerm); err != nil { | ||||
| 		log.Fatal("Could not create directory %s: %s", AttachmentPath, err) | ||||
|  |  | |||
|  | @ -160,6 +160,7 @@ func CreateIssue(ctx *middleware.Context, params martini.Params) { | |||
| 	ctx.Data["Title"] = "Create issue" | ||||
| 	ctx.Data["IsRepoToolbarIssues"] = true | ||||
| 	ctx.Data["IsRepoToolbarIssuesList"] = false | ||||
| 	ctx.Data["AttachmentsEnabled"] = setting.AttachmentEnabled | ||||
| 
 | ||||
| 	var err error | ||||
| 	// Get all milestones.
 | ||||
|  | @ -190,6 +191,7 @@ func CreateIssuePost(ctx *middleware.Context, params martini.Params, form auth.C | |||
| 	ctx.Data["Title"] = "Create issue" | ||||
| 	ctx.Data["IsRepoToolbarIssues"] = true | ||||
| 	ctx.Data["IsRepoToolbarIssuesList"] = false | ||||
| 	ctx.Data["AttachmentsEnabled"] = setting.AttachmentEnabled | ||||
| 
 | ||||
| 	var err error | ||||
| 	// Get all milestones.
 | ||||
|  | @ -239,7 +241,9 @@ func CreateIssuePost(ctx *middleware.Context, params martini.Params, form auth.C | |||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	if setting.AttachmentEnabled { | ||||
| 		uploadFiles(ctx, issue.Id, 0) | ||||
| 	} | ||||
| 
 | ||||
| 	// Update mentions.
 | ||||
| 	ms := base.MentionPattern.FindAllString(issue.Content, -1) | ||||
|  | @ -313,6 +317,8 @@ func checkLabels(labels, allLabels []*models.Label) { | |||
| } | ||||
| 
 | ||||
| func ViewIssue(ctx *middleware.Context, params martini.Params) { | ||||
| 	ctx.Data["AttachmentsEnabled"] = setting.AttachmentEnabled | ||||
| 
 | ||||
| 	idx, _ := base.StrTo(params["index"]).Int64() | ||||
| 	if idx == 0 { | ||||
| 		ctx.Handle(404, "issue.ViewIssue", nil) | ||||
|  | @ -628,6 +634,10 @@ func UpdateAssignee(ctx *middleware.Context) { | |||
| } | ||||
| 
 | ||||
| func uploadFiles(ctx *middleware.Context, issueId, commentId int64) { | ||||
| 	if !setting.AttachmentEnabled { | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	allowedTypes := strings.Split(setting.AttachmentAllowedTypes, "|") | ||||
| 	attachments := ctx.Req.MultipartForm.File["attachments"] | ||||
| 
 | ||||
|  |  | |||
|  | @ -101,13 +101,17 @@ | |||
|                         <div class="tab-pane issue-preview-content" id="issue-preview">loading...</div> | ||||
|                     </div> | ||||
|                 </div> | ||||
|                 {{if .AttachmentsEnabled}} | ||||
|                 <div id="attached"> | ||||
|                     <div id="attached-list"></div> | ||||
|                 </div> | ||||
|                 {{end}} | ||||
|                 <div class="text-right panel-body"> | ||||
|                     <div class="form-group"> | ||||
|                         {{if .AttachmentsEnabled}} | ||||
|                         <input type="file" accept="{{.AllowedTypes}}" style="display: none;" id="attachments-input" name="attachments" multiple /> | ||||
|                         <button class="btn-default btn attachment-add" id="attachments-button">Select Attachments...</button> | ||||
|                         {{end}} | ||||
|                         <input type="hidden" value="id" name="repo-id"/> | ||||
|                         <button class="btn-success btn">Create new issue</button> | ||||
|                     </div> | ||||
|  |  | |||
|  | @ -137,13 +137,17 @@ | |||
|                                     <div class="tab-pane issue-preview-content" id="issue-preview">Loading...</div> | ||||
|                                 </div> | ||||
|                             </div> | ||||
|                             {{if .AttachmentsEnabled}} | ||||
|                             <div id="attached"> | ||||
|                                 <div id="attached-list"></div> | ||||
|                             </div> | ||||
|                             {{end}} | ||||
|                             <div class="text-right"> | ||||
|                                 <div class="form-group"> | ||||
|                                     {{if .AttachmentsEnabled}} | ||||
|                                     <input type="file" accept="{{.AllowedTypes}}" style="display: none;" id="attachments-input" name="attachments" multiple /> | ||||
|                                     <button class="btn-default btn attachment-add" id="attachments-button">Select Attachments...</button> | ||||
|                                     {{end}} | ||||
|                                     {{if .IsIssueOwner}}{{if .Issue.IsClosed}} | ||||
|                                     <input type="submit" class="btn-default btn issue-open" id="issue-open-btn" data-origin="Reopen" data-text="Reopen & Comment" name="change_status" value="Reopen"/>{{else}} | ||||
|                                     <input type="submit" class="btn-default btn issue-close" id="issue-close-btn" data-origin="Close" data-text="Close & Comment" name="change_status" value="Close"/>{{end}}{{end}}   | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue