mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	new org options UI
This commit is contained in:
		@@ -654,9 +654,8 @@ settings.full_name = Full Name
 | 
			
		||||
settings.website = Website
 | 
			
		||||
settings.location = Location
 | 
			
		||||
settings.update_settings = Update Settings
 | 
			
		||||
settings.change_orgname = Organization Name Changed
 | 
			
		||||
settings.change_orgname_desc = Organization name has been changed. This will affect how links relate to the organization. Do you want to continue?
 | 
			
		||||
settings.update_setting_success = Organization settings were successfully updated.
 | 
			
		||||
settings.update_setting_success = Organization settings has been updated successfully.
 | 
			
		||||
settings.change_orgname_prompt = This change will affect how links relate to the organization.
 | 
			
		||||
settings.delete = Delete Organization
 | 
			
		||||
settings.delete_account = Delete This Organization
 | 
			
		||||
settings.delete_prompt = The organization will be permanently removed, and this <strong>CANNOT</strong> be undone!
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								gogs.go
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								gogs.go
									
									
									
									
									
								
							@@ -17,7 +17,7 @@ import (
 | 
			
		||||
	"github.com/gogits/gogs/modules/setting"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const APP_VER = "0.6.9.0905 Beta"
 | 
			
		||||
const APP_VER = "0.6.9.0906 Beta"
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	runtime.GOMAXPROCS(runtime.NumCPU())
 | 
			
		||||
 
 | 
			
		||||
@@ -25,11 +25,11 @@ func (f *CreateOrgForm) Validate(ctx *macaron.Context, errs binding.Errors) bind
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type UpdateOrgSettingForm struct {
 | 
			
		||||
	OrgUserName string `form:"uname" binding:"Required;AlphaDashDot;MaxSize(30)" locale:"org.org_name_holder"`
 | 
			
		||||
	OrgFullName string `form:"fullname" binding:"MaxSize(100)"`
 | 
			
		||||
	Description string `form:"desc" binding:"MaxSize(255)"`
 | 
			
		||||
	Website     string `form:"website" binding:"Url;MaxSize(100)"`
 | 
			
		||||
	Location    string `form:"location" binding:"MaxSize(50)"`
 | 
			
		||||
	Name        string `binding:"Required;AlphaDashDot;MaxSize(30)" locale:"org.org_name_holder"`
 | 
			
		||||
	FullName    string `binding:"MaxSize(100)"`
 | 
			
		||||
	Description string `binding:"MaxSize(255)"`
 | 
			
		||||
	Website     string `binding:"Url;MaxSize(100)"`
 | 
			
		||||
	Location    string `binding:"MaxSize(50)"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (f *UpdateOrgSettingForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors {
 | 
			
		||||
 
 | 
			
		||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										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
											
										
									
								
							@@ -389,6 +389,26 @@ function initRepository() {
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function initOrganization(){
 | 
			
		||||
    if ($('.organization').length == 0) {
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Options
 | 
			
		||||
    if ($('.organization.settings.options').length > 0) {
 | 
			
		||||
        $('#org_name').keyup(function () {
 | 
			
		||||
            var $prompt_span = $('#org-name-change-prompt');
 | 
			
		||||
            if ($(this).val().toString().toLowerCase() != $(this).data('org-name').toString().toLowerCase()) {
 | 
			
		||||
                $prompt_span.show();
 | 
			
		||||
            } else {
 | 
			
		||||
                $prompt_span.hide();
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function initWebhook() {
 | 
			
		||||
    if ($('.new.webhook').length == 0) {
 | 
			
		||||
        return;
 | 
			
		||||
@@ -524,5 +544,6 @@ $(document).ready(function () {
 | 
			
		||||
    initCommentForm();
 | 
			
		||||
    initInstall();
 | 
			
		||||
    initRepository();
 | 
			
		||||
    initOrganization();
 | 
			
		||||
    initWebhook();
 | 
			
		||||
});
 | 
			
		||||
@@ -18,4 +18,11 @@
 | 
			
		||||
	&.new.org {
 | 
			
		||||
		#create-page-form;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	&.options {
 | 
			
		||||
		input {
 | 
			
		||||
			width: 50%!important;
 | 
			
		||||
			min-width: 300px;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -38,29 +38,29 @@ func SettingsPost(ctx *middleware.Context, form auth.UpdateOrgSettingForm) {
 | 
			
		||||
	org := ctx.Org.Organization
 | 
			
		||||
 | 
			
		||||
	// Check if organization name has been changed.
 | 
			
		||||
	if org.Name != form.OrgUserName {
 | 
			
		||||
		isExist, err := models.IsUserExist(org.Id, form.OrgUserName)
 | 
			
		||||
	if org.Name != form.Name {
 | 
			
		||||
		isExist, err := models.IsUserExist(org.Id, form.Name)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			ctx.Handle(500, "IsUserExist", err)
 | 
			
		||||
			return
 | 
			
		||||
		} else if isExist {
 | 
			
		||||
			ctx.Data["Err_UserName"] = true
 | 
			
		||||
			ctx.Data["OrgName"] = true
 | 
			
		||||
			ctx.RenderWithErr(ctx.Tr("form.username_been_taken"), SETTINGS_OPTIONS, &form)
 | 
			
		||||
			return
 | 
			
		||||
		} else if err = models.ChangeUserName(org, form.OrgUserName); err != nil {
 | 
			
		||||
		} else if err = models.ChangeUserName(org, form.Name); err != nil {
 | 
			
		||||
			if err == models.ErrUserNameIllegal {
 | 
			
		||||
				ctx.Data["Err_UserName"] = true
 | 
			
		||||
				ctx.Data["OrgName"] = true
 | 
			
		||||
				ctx.RenderWithErr(ctx.Tr("form.illegal_username"), SETTINGS_OPTIONS, &form)
 | 
			
		||||
			} else {
 | 
			
		||||
				ctx.Handle(500, "ChangeUserName", err)
 | 
			
		||||
			}
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		log.Trace("Organization name changed: %s -> %s", org.Name, form.OrgUserName)
 | 
			
		||||
		org.Name = form.OrgUserName
 | 
			
		||||
		log.Trace("Organization name changed: %s -> %s", org.Name, form.Name)
 | 
			
		||||
		org.Name = form.Name
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	org.FullName = form.OrgFullName
 | 
			
		||||
	org.FullName = form.FullName
 | 
			
		||||
	org.Description = form.Description
 | 
			
		||||
	org.Website = form.Website
 | 
			
		||||
	org.Location = form.Location
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +1 @@
 | 
			
		||||
0.6.9.0905 Beta
 | 
			
		||||
0.6.9.0906 Beta
 | 
			
		||||
@@ -1,56 +1,45 @@
 | 
			
		||||
{{template "ng/base/head" .}}
 | 
			
		||||
{{template "ng/base/header" .}}
 | 
			
		||||
{{template "org/base/header" .}}
 | 
			
		||||
<div id="setting-wrapper" class="main-wrapper">
 | 
			
		||||
  <div id="org-setting" class="container clear">
 | 
			
		||||
    {{template "org/settings/nav" .}}
 | 
			
		||||
    <div class="grid-4-5 left">
 | 
			
		||||
      <div class="setting-content">
 | 
			
		||||
        {{template "ng/base/alert" .}}
 | 
			
		||||
        <div id="setting-content">
 | 
			
		||||
          <div id="user-profile-setting-content" class="panel panel-radius">
 | 
			
		||||
            <div class="panel-header">
 | 
			
		||||
              <strong>{{.i18n.Tr "org.settings.options"}}</strong>
 | 
			
		||||
{{template "base/head" .}}
 | 
			
		||||
<div class="organization settings options">
 | 
			
		||||
  {{template "org/header" .}}
 | 
			
		||||
  <div class="ui container">
 | 
			
		||||
    <div class="ui grid">
 | 
			
		||||
      {{template "org/settings/navbar" .}}
 | 
			
		||||
      <div class="twelve wide column content">
 | 
			
		||||
        {{template "base/alert" .}}
 | 
			
		||||
        <h4 class="ui top attached header">
 | 
			
		||||
          {{.i18n.Tr "org.settings.options"}}
 | 
			
		||||
        </h4>
 | 
			
		||||
        <div class="ui attached segment">
 | 
			
		||||
          <form class="ui form" action="{{.Link}}" method="post">
 | 
			
		||||
            {{.CsrfTokenHtml}}
 | 
			
		||||
            <div class="required field {{if .Err_OrgName}}error{{end}}">
 | 
			
		||||
              <label for="org_name">{{.i18n.Tr "org.org_name_holder"}}<span class="text red hide" id="org-name-change-prompt"> {{.i18n.Tr "org.settings.change_orgname_prompt"}}</span></label>
 | 
			
		||||
              <input id="org_name" name="name" value="{{.Org.Name}}" data-org-name="{{.Org.Name}}" autofocus required>
 | 
			
		||||
            </div>
 | 
			
		||||
            <form class="form form-align panel-body" id="org-setting-form" action="{{AppSubUrl}}/org/{{.Org.LowerName}}/settings" method="post">
 | 
			
		||||
              {{.CsrfTokenHtml}}
 | 
			
		||||
              <input type="hidden" name="action" value="update">
 | 
			
		||||
              <div class="field">
 | 
			
		||||
                <label class="req" for="orgname">{{.i18n.Tr "org.org_name_holder"}}</label>
 | 
			
		||||
                <input class="ipt ipt-large ipt-radius {{if .Err_UserName}}ipt-error{{end}}" id="orgname" name="uname" value="{{.Org.Name}}" data-orgname="{{.Org.Name}}" required />
 | 
			
		||||
              </div>
 | 
			
		||||
              <div class="white-popup-block mfp-hide" id="change-orgname-modal">
 | 
			
		||||
                <h1 class="text-red">{{.i18n.Tr "org.settings.change_orgname"}}</h1>
 | 
			
		||||
                <p>{{.i18n.Tr "org.settings.change_orgname_desc"}}</p>
 | 
			
		||||
                <br>
 | 
			
		||||
                <button class="btn btn-red btn-large btn-radius" id="change-orgname-submit">{{.i18n.Tr "settings.continue"}}</button>
 | 
			
		||||
                <button class="btn btn-large btn-radius popup-modal-dismiss">{{.i18n.Tr "settings.cancel"}}</button>
 | 
			
		||||
              </div>
 | 
			
		||||
              <div class="field">
 | 
			
		||||
                <label for="full-name">{{.i18n.Tr "org.settings.full_name"}}</label>
 | 
			
		||||
                <input class="ipt ipt-large ipt-radius {{if .Err_FullName}}ipt-error{{end}}" id="full-name" name="fullname" value="{{.Org.FullName}}" />
 | 
			
		||||
              </div>
 | 
			
		||||
              <div class="field clear">
 | 
			
		||||
                <label class="left" for="desc">{{.i18n.Tr "org.org_desc"}}</label>
 | 
			
		||||
                <textarea class="ipt ipt-large ipt-radius {{if .Err_Description}}ipt-error{{end}}" id="desc" name="desc">{{.Org.Description}}</textarea>
 | 
			
		||||
              </div>
 | 
			
		||||
              <div class="field">
 | 
			
		||||
                <label for="website">{{.i18n.Tr "org.settings.website"}}</label>
 | 
			
		||||
                <input class="ipt ipt-large ipt-radius {{if .Err_Website}}ipt-error{{end}}" id="website" name="website" type="url" value="{{.Org.Website}}" />
 | 
			
		||||
              </div>
 | 
			
		||||
              <div class="field">
 | 
			
		||||
                <label for="location">{{.i18n.Tr "org.settings.location"}}</label>
 | 
			
		||||
                <input class="ipt ipt-large ipt-radius {{if .Err_Location}}ipt-error{{end}}" id="location" name="location" type="text" value="{{.Org.Location}}" />
 | 
			
		||||
              </div>
 | 
			
		||||
              <div class="field">
 | 
			
		||||
                <span class="form-label"></span>
 | 
			
		||||
                <button class="btn btn-green btn-large btn-radius" id="change-orgname-btn" href="#change-orgname-modal">{{.i18n.Tr "org.settings.update_settings"}}</button>
 | 
			
		||||
              </div>
 | 
			
		||||
            </form>
 | 
			
		||||
          </div>
 | 
			
		||||
            <div class="field {{if .Err_FullName}}error{{end}}">
 | 
			
		||||
              <label for="full_name">{{.i18n.Tr "org.org_name_holder"}}</label>
 | 
			
		||||
              <input id="full_name" name="full_name" value="{{.Org.FullName}}">
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="field {{if .Err_Description}}error{{end}}">
 | 
			
		||||
              <label for="description">{{$.i18n.Tr "org.org_desc"}}</label>
 | 
			
		||||
              <textarea id="description" name="description" rows="2">{{.Org.Description}}</textarea>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="field {{if .Err_Website}}error{{end}}">
 | 
			
		||||
              <label for="website">{{.i18n.Tr "org.settings.website"}}</label>
 | 
			
		||||
              <input id="website" name="website" type="url" value="{{.Org.Website}}">
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="field">
 | 
			
		||||
              <label for="location">{{.i18n.Tr "org.settings.location"}}</label>
 | 
			
		||||
              <input id="location" name="location"  value="{{.Org.Location}}">
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
            <div class="field">
 | 
			
		||||
               <button class="ui green button">{{$.i18n.Tr "org.settings.update_settings"}}</button>
 | 
			
		||||
            </div>
 | 
			
		||||
          </form>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
{{template "ng/base/footer" .}}
 | 
			
		||||
{{template "base/footer" .}}
 | 
			
		||||
		Reference in New Issue
	
	Block a user