| @@ -185,6 +185,7 @@ func runWeb(*cli.Context) { | |||||
| r.Post("/issues/new", bindIgnErr(auth.CreateIssueForm{}), repo.CreateIssuePost) | r.Post("/issues/new", bindIgnErr(auth.CreateIssueForm{}), repo.CreateIssuePost) | ||||
| r.Post("/issues/:index", bindIgnErr(auth.CreateIssueForm{}), repo.UpdateIssue) | r.Post("/issues/:index", bindIgnErr(auth.CreateIssueForm{}), repo.UpdateIssue) | ||||
| r.Get("/issues/milestones", repo.Milestones) | r.Get("/issues/milestones", repo.Milestones) | ||||
| r.Get("/issues/milestones/new", repo.NewMilestones) | |||||
| r.Post("/comment/:action", repo.Comment) | r.Post("/comment/:action", repo.Comment) | ||||
| r.Get("/releases/new", repo.ReleasesNew) | r.Get("/releases/new", repo.ReleasesNew) | ||||
| }, reqSignIn, middleware.RepoAssignment(true)) | }, reqSignIn, middleware.RepoAssignment(true)) | ||||
| @@ -7,6 +7,7 @@ package models | |||||
| import ( | import ( | ||||
| "encoding/json" | "encoding/json" | ||||
| "errors" | "errors" | ||||
| "strings" | |||||
| "time" | "time" | ||||
| "github.com/go-xorm/core" | "github.com/go-xorm/core" | ||||
| @@ -17,7 +18,8 @@ import ( | |||||
| // Login types. | // Login types. | ||||
| const ( | const ( | ||||
| LT_PLAIN = iota + 1 | |||||
| LT_NOTYPE = iota | |||||
| LT_PLAIN | |||||
| LT_LDAP | LT_LDAP | ||||
| LT_SMTP | LT_SMTP | ||||
| ) | ) | ||||
| @@ -49,13 +51,14 @@ func (cfg *LDAPConfig) ToDB() ([]byte, error) { | |||||
| } | } | ||||
| type LoginSource struct { | type LoginSource struct { | ||||
| Id int64 | |||||
| Type int | |||||
| Name string `xorm:"unique"` | |||||
| IsActived bool `xorm:"not null default false"` | |||||
| Cfg core.Conversion `xorm:"TEXT"` | |||||
| Created time.Time `xorm:"created"` | |||||
| Updated time.Time `xorm:"updated"` | |||||
| Id int64 | |||||
| Type int | |||||
| Name string `xorm:"unique"` | |||||
| IsActived bool `xorm:"not null default false"` | |||||
| Cfg core.Conversion `xorm:"TEXT"` | |||||
| Created time.Time `xorm:"created"` | |||||
| Updated time.Time `xorm:"updated"` | |||||
| AllowAutoRegisted bool `xorm:"not null default false"` | |||||
| } | } | ||||
| func (source *LoginSource) TypeString() string { | func (source *LoginSource) TypeString() string { | ||||
| @@ -120,3 +123,112 @@ func DelLoginSource(source *LoginSource) error { | |||||
| _, err = orm.Id(source.Id).Delete(&LoginSource{}) | _, err = orm.Id(source.Id).Delete(&LoginSource{}) | ||||
| return err | return err | ||||
| } | } | ||||
| // login a user | |||||
| func LoginUser(uname, passwd string) (*User, error) { | |||||
| var u *User | |||||
| var emailLogin bool | |||||
| if strings.Contains(uname, "@") { | |||||
| u = &User{Email: uname} | |||||
| emailLogin = true | |||||
| } else { | |||||
| u = &User{LowerName: strings.ToLower(uname)} | |||||
| } | |||||
| has, err := orm.Get(u) | |||||
| if err != nil { | |||||
| return nil, err | |||||
| } | |||||
| // if email login, then we cannot auto register | |||||
| if emailLogin { | |||||
| if !has { | |||||
| return nil, ErrUserNotExist | |||||
| } | |||||
| } | |||||
| if u.LoginType == LT_NOTYPE { | |||||
| u.LoginType = LT_PLAIN | |||||
| } | |||||
| // for plain login, user must have existed. | |||||
| if u.LoginType == LT_PLAIN { | |||||
| if !has { | |||||
| return nil, ErrUserNotExist | |||||
| } | |||||
| newUser := &User{Passwd: passwd, Salt: u.Salt} | |||||
| newUser.EncodePasswd() | |||||
| if u.Passwd != newUser.Passwd { | |||||
| return nil, ErrUserNotExist | |||||
| } | |||||
| return u, nil | |||||
| } else { | |||||
| if !has { | |||||
| var sources []LoginSource | |||||
| cond := &LoginSource{IsActived: true, AllowAutoRegisted: true} | |||||
| err = orm.UseBool().Find(&sources, cond) | |||||
| if err != nil { | |||||
| return nil, err | |||||
| } | |||||
| for _, source := range sources { | |||||
| u, err := LoginUserLdapSource(nil, u.LoginName, passwd, | |||||
| source.Id, source.Cfg.(*LDAPConfig), true) | |||||
| if err == nil { | |||||
| return u, err | |||||
| } | |||||
| } | |||||
| return nil, ErrUserNotExist | |||||
| } | |||||
| var source LoginSource | |||||
| hasSource, err := orm.Id(u.LoginSource).Get(&source) | |||||
| if err != nil { | |||||
| return nil, err | |||||
| } | |||||
| if !hasSource { | |||||
| return nil, ErrLoginSourceNotExist | |||||
| } | |||||
| if !source.IsActived { | |||||
| return nil, ErrLoginSourceNotActived | |||||
| } | |||||
| switch u.LoginType { | |||||
| case LT_LDAP: | |||||
| return LoginUserLdapSource(u, u.LoginName, passwd, | |||||
| source.Id, source.Cfg.(*LDAPConfig), false) | |||||
| case LT_SMTP: | |||||
| } | |||||
| return nil, ErrUnsupportedLoginType | |||||
| } | |||||
| } | |||||
| // Query if name/passwd can login against the LDAP direcotry pool | |||||
| // Create a local user if success | |||||
| // Return the same LoginUserPlain semantic | |||||
| func LoginUserLdapSource(user *User, name, passwd string, sourceId int64, cfg *LDAPConfig, autoRegister bool) (*User, error) { | |||||
| mail, logged := cfg.Ldapsource.SearchEntry(name, passwd) | |||||
| if !logged { | |||||
| // user not in LDAP, do nothing | |||||
| return nil, ErrUserNotExist | |||||
| } | |||||
| if !autoRegister { | |||||
| return user, nil | |||||
| } | |||||
| // fake a local user creation | |||||
| user = &User{ | |||||
| LowerName: strings.ToLower(name), | |||||
| Name: strings.ToLower(name), | |||||
| LoginType: LT_LDAP, | |||||
| LoginSource: sourceId, | |||||
| LoginName: name, | |||||
| IsActive: true, | |||||
| Passwd: passwd, | |||||
| Email: mail, | |||||
| } | |||||
| return RegisterUser(user) | |||||
| } | |||||
| @@ -50,7 +50,7 @@ func IsReleaseExist(repoId int64, tagName string) (bool, error) { | |||||
| } | } | ||||
| // CreateRelease creates a new release of repository. | // CreateRelease creates a new release of repository. | ||||
| func CreateRelease(repoPath string, rel *Release, gitRepo *git.Repository) error { | |||||
| func CreateRelease(gitRepo *git.Repository, rel *Release) error { | |||||
| isExist, err := IsReleaseExist(rel.RepoId, rel.TagName) | isExist, err := IsReleaseExist(rel.RepoId, rel.TagName) | ||||
| if err != nil { | if err != nil { | ||||
| return err | return err | ||||
| @@ -59,7 +59,7 @@ func CreateRelease(repoPath string, rel *Release, gitRepo *git.Repository) error | |||||
| } | } | ||||
| if !gitRepo.IsTagExist(rel.TagName) { | if !gitRepo.IsTagExist(rel.TagName) { | ||||
| _, stderr, err := com.ExecCmdDir(repoPath, "git", "tag", rel.TagName, "-m", rel.Title) | |||||
| _, stderr, err := com.ExecCmdDir(gitRepo.Path, "git", "tag", rel.TagName, "-m", rel.Title) | |||||
| if err != nil { | if err != nil { | ||||
| return err | return err | ||||
| } else if strings.Contains(stderr, "fatal:") { | } else if strings.Contains(stderr, "fatal:") { | ||||
| @@ -27,11 +27,14 @@ const ( | |||||
| ) | ) | ||||
| var ( | var ( | ||||
| ErrUserOwnRepos = errors.New("User still have ownership of repositories") | |||||
| ErrUserAlreadyExist = errors.New("User already exist") | |||||
| ErrUserNotExist = errors.New("User does not exist") | |||||
| ErrEmailAlreadyUsed = errors.New("E-mail already used") | |||||
| ErrUserNameIllegal = errors.New("User name contains illegal characters") | |||||
| ErrUserOwnRepos = errors.New("User still have ownership of repositories") | |||||
| ErrUserAlreadyExist = errors.New("User already exist") | |||||
| ErrUserNotExist = errors.New("User does not exist") | |||||
| ErrEmailAlreadyUsed = errors.New("E-mail already used") | |||||
| ErrUserNameIllegal = errors.New("User name contains illegal characters") | |||||
| ErrLoginSourceNotExist = errors.New("Login source does not exist") | |||||
| ErrLoginSourceNotActived = errors.New("Login source is not actived") | |||||
| ErrUnsupportedLoginType = errors.New("Login source is unknow") | |||||
| ) | ) | ||||
| // User represents the object of individual and member of organization. | // User represents the object of individual and member of organization. | ||||
| @@ -440,30 +443,6 @@ func SearchUserByName(key string, limit int) (us []*User, err error) { | |||||
| return us, err | return us, err | ||||
| } | } | ||||
| // LoginUserPlain validates user by raw user name and password. | |||||
| func LoginUserPlain(uname, passwd string) (*User, error) { | |||||
| var u *User | |||||
| if strings.Contains(uname, "@") { | |||||
| u = &User{Email: uname} | |||||
| } else { | |||||
| u = &User{LowerName: strings.ToLower(uname)} | |||||
| } | |||||
| has, err := orm.Get(u) | |||||
| if err != nil { | |||||
| return nil, err | |||||
| } else if !has { | |||||
| return nil, ErrUserNotExist | |||||
| } | |||||
| newUser := &User{Passwd: passwd, Salt: u.Salt} | |||||
| newUser.EncodePasswd() | |||||
| if u.Passwd != newUser.Passwd { | |||||
| return nil, ErrUserNotExist | |||||
| } | |||||
| return u, nil | |||||
| } | |||||
| // Follow is connection request for receiving user notifycation. | // Follow is connection request for receiving user notifycation. | ||||
| type Follow struct { | type Follow struct { | ||||
| Id int64 | Id int64 | ||||
| @@ -27,6 +27,7 @@ type RegisterForm struct { | |||||
| Password string `form:"passwd" binding:"Required;MinSize(6);MaxSize(30)"` | Password string `form:"passwd" binding:"Required;MinSize(6);MaxSize(30)"` | ||||
| RetypePasswd string `form:"retypepasswd"` | RetypePasswd string `form:"retypepasswd"` | ||||
| LoginType string `form:"logintype"` | LoginType string `form:"logintype"` | ||||
| LoginName string `form:"loginname"` | |||||
| } | } | ||||
| func (f *RegisterForm) Name(field string) string { | func (f *RegisterForm) Name(field string) string { | ||||
| @@ -42,7 +42,7 @@ func AddSource(name string, host string, port int, basedn string, attributes str | |||||
| func LoginUser(name, passwd string) (a string, r bool) { | func LoginUser(name, passwd string) (a string, r bool) { | ||||
| r = false | r = false | ||||
| for _, ls := range Authensource { | for _, ls := range Authensource { | ||||
| a, r = ls.searchEntry(name, passwd) | |||||
| a, r = ls.SearchEntry(name, passwd) | |||||
| if r { | if r { | ||||
| return | return | ||||
| } | } | ||||
| @@ -51,7 +51,7 @@ func LoginUser(name, passwd string) (a string, r bool) { | |||||
| } | } | ||||
| // searchEntry : search an LDAP source if an entry (name, passwd) is valide and in the specific filter | // searchEntry : search an LDAP source if an entry (name, passwd) is valide and in the specific filter | ||||
| func (ls Ldapsource) searchEntry(name, passwd string) (string, bool) { | |||||
| func (ls Ldapsource) SearchEntry(name, passwd string) (string, bool) { | |||||
| l, err := goldap.Dial("tcp", fmt.Sprintf("%s:%d", ls.Host, ls.Port)) | l, err := goldap.Dial("tcp", fmt.Sprintf("%s:%d", ls.Host, ls.Port)) | ||||
| if err != nil { | if err != nil { | ||||
| log.Debug("LDAP Connect error, disabled source %s", ls.Host) | log.Debug("LDAP Connect error, disabled source %s", ls.Host) | ||||
| @@ -0,0 +1,790 @@ | |||||
| /*! | |||||
| * Datepicker for Bootstrap | |||||
| * | |||||
| * Copyright 2012 Stefan Petre | |||||
| * Improvements by Andrew Rowls | |||||
| * Licensed under the Apache License v2.0 | |||||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||||
| * | |||||
| */ | |||||
| .datepicker { | |||||
| padding: 4px; | |||||
| border-radius: 4px; | |||||
| direction: ltr; | |||||
| /*.dow { | |||||
| border-top: 1px solid #ddd !important; | |||||
| }*/ | |||||
| } | |||||
| .datepicker-inline { | |||||
| width: 220px; | |||||
| } | |||||
| .datepicker.datepicker-rtl { | |||||
| direction: rtl; | |||||
| } | |||||
| .datepicker.datepicker-rtl table tr td span { | |||||
| float: right; | |||||
| } | |||||
| .datepicker-dropdown { | |||||
| top: 0; | |||||
| left: 0; | |||||
| } | |||||
| .datepicker-dropdown:before { | |||||
| content: ''; | |||||
| display: inline-block; | |||||
| border-left: 7px solid transparent; | |||||
| border-right: 7px solid transparent; | |||||
| border-bottom: 7px solid #ccc; | |||||
| border-top: 0; | |||||
| border-bottom-color: rgba(0, 0, 0, 0.2); | |||||
| position: absolute; | |||||
| } | |||||
| .datepicker-dropdown:after { | |||||
| content: ''; | |||||
| display: inline-block; | |||||
| border-left: 6px solid transparent; | |||||
| border-right: 6px solid transparent; | |||||
| border-bottom: 6px solid #fff; | |||||
| border-top: 0; | |||||
| position: absolute; | |||||
| } | |||||
| .datepicker-dropdown.datepicker-orient-left:before { | |||||
| left: 6px; | |||||
| } | |||||
| .datepicker-dropdown.datepicker-orient-left:after { | |||||
| left: 7px; | |||||
| } | |||||
| .datepicker-dropdown.datepicker-orient-right:before { | |||||
| right: 6px; | |||||
| } | |||||
| .datepicker-dropdown.datepicker-orient-right:after { | |||||
| right: 7px; | |||||
| } | |||||
| .datepicker-dropdown.datepicker-orient-top:before { | |||||
| top: -7px; | |||||
| } | |||||
| .datepicker-dropdown.datepicker-orient-top:after { | |||||
| top: -6px; | |||||
| } | |||||
| .datepicker-dropdown.datepicker-orient-bottom:before { | |||||
| bottom: -7px; | |||||
| border-bottom: 0; | |||||
| border-top: 7px solid #999; | |||||
| } | |||||
| .datepicker-dropdown.datepicker-orient-bottom:after { | |||||
| bottom: -6px; | |||||
| border-bottom: 0; | |||||
| border-top: 6px solid #fff; | |||||
| } | |||||
| .datepicker > div { | |||||
| display: none; | |||||
| } | |||||
| .datepicker.days div.datepicker-days { | |||||
| display: block; | |||||
| } | |||||
| .datepicker.months div.datepicker-months { | |||||
| display: block; | |||||
| } | |||||
| .datepicker.years div.datepicker-years { | |||||
| display: block; | |||||
| } | |||||
| .datepicker table { | |||||
| margin: 0; | |||||
| -webkit-touch-callout: none; | |||||
| -webkit-user-select: none; | |||||
| -khtml-user-select: none; | |||||
| -moz-user-select: none; | |||||
| -ms-user-select: none; | |||||
| user-select: none; | |||||
| } | |||||
| .datepicker table tr td, | |||||
| .datepicker table tr th { | |||||
| text-align: center; | |||||
| width: 30px; | |||||
| height: 30px; | |||||
| border-radius: 4px; | |||||
| border: none; | |||||
| } | |||||
| .table-striped .datepicker table tr td, | |||||
| .table-striped .datepicker table tr th { | |||||
| background-color: transparent; | |||||
| } | |||||
| .datepicker table tr td.day:hover, | |||||
| .datepicker table tr td.day.focused { | |||||
| background: #eeeeee; | |||||
| cursor: pointer; | |||||
| } | |||||
| .datepicker table tr td.old, | |||||
| .datepicker table tr td.new { | |||||
| color: #999999; | |||||
| } | |||||
| .datepicker table tr td.disabled, | |||||
| .datepicker table tr td.disabled:hover { | |||||
| background: none; | |||||
| color: #999999; | |||||
| cursor: default; | |||||
| } | |||||
| .datepicker table tr td.today, | |||||
| .datepicker table tr td.today:hover, | |||||
| .datepicker table tr td.today.disabled, | |||||
| .datepicker table tr td.today.disabled:hover { | |||||
| color: #000000; | |||||
| background-color: #ffdb99; | |||||
| border-color: #ffb733; | |||||
| } | |||||
| .datepicker table tr td.today:hover, | |||||
| .datepicker table tr td.today:hover:hover, | |||||
| .datepicker table tr td.today.disabled:hover, | |||||
| .datepicker table tr td.today.disabled:hover:hover, | |||||
| .datepicker table tr td.today:focus, | |||||
| .datepicker table tr td.today:hover:focus, | |||||
| .datepicker table tr td.today.disabled:focus, | |||||
| .datepicker table tr td.today.disabled:hover:focus, | |||||
| .datepicker table tr td.today:active, | |||||
| .datepicker table tr td.today:hover:active, | |||||
| .datepicker table tr td.today.disabled:active, | |||||
| .datepicker table tr td.today.disabled:hover:active, | |||||
| .datepicker table tr td.today.active, | |||||
| .datepicker table tr td.today:hover.active, | |||||
| .datepicker table tr td.today.disabled.active, | |||||
| .datepicker table tr td.today.disabled:hover.active, | |||||
| .open .dropdown-toggle.datepicker table tr td.today, | |||||
| .open .dropdown-toggle.datepicker table tr td.today:hover, | |||||
| .open .dropdown-toggle.datepicker table tr td.today.disabled, | |||||
| .open .dropdown-toggle.datepicker table tr td.today.disabled:hover { | |||||
| color: #000000; | |||||
| background-color: #ffcd70; | |||||
| border-color: #f59e00; | |||||
| } | |||||
| .datepicker table tr td.today:active, | |||||
| .datepicker table tr td.today:hover:active, | |||||
| .datepicker table tr td.today.disabled:active, | |||||
| .datepicker table tr td.today.disabled:hover:active, | |||||
| .datepicker table tr td.today.active, | |||||
| .datepicker table tr td.today:hover.active, | |||||
| .datepicker table tr td.today.disabled.active, | |||||
| .datepicker table tr td.today.disabled:hover.active, | |||||
| .open .dropdown-toggle.datepicker table tr td.today, | |||||
| .open .dropdown-toggle.datepicker table tr td.today:hover, | |||||
| .open .dropdown-toggle.datepicker table tr td.today.disabled, | |||||
| .open .dropdown-toggle.datepicker table tr td.today.disabled:hover { | |||||
| background-image: none; | |||||
| } | |||||
| .datepicker table tr td.today.disabled, | |||||
| .datepicker table tr td.today:hover.disabled, | |||||
| .datepicker table tr td.today.disabled.disabled, | |||||
| .datepicker table tr td.today.disabled:hover.disabled, | |||||
| .datepicker table tr td.today[disabled], | |||||
| .datepicker table tr td.today:hover[disabled], | |||||
| .datepicker table tr td.today.disabled[disabled], | |||||
| .datepicker table tr td.today.disabled:hover[disabled], | |||||
| fieldset[disabled] .datepicker table tr td.today, | |||||
| fieldset[disabled] .datepicker table tr td.today:hover, | |||||
| fieldset[disabled] .datepicker table tr td.today.disabled, | |||||
| fieldset[disabled] .datepicker table tr td.today.disabled:hover, | |||||
| .datepicker table tr td.today.disabled:hover, | |||||
| .datepicker table tr td.today:hover.disabled:hover, | |||||
| .datepicker table tr td.today.disabled.disabled:hover, | |||||
| .datepicker table tr td.today.disabled:hover.disabled:hover, | |||||
| .datepicker table tr td.today[disabled]:hover, | |||||
| .datepicker table tr td.today:hover[disabled]:hover, | |||||
| .datepicker table tr td.today.disabled[disabled]:hover, | |||||
| .datepicker table tr td.today.disabled:hover[disabled]:hover, | |||||
| fieldset[disabled] .datepicker table tr td.today:hover, | |||||
| fieldset[disabled] .datepicker table tr td.today:hover:hover, | |||||
| fieldset[disabled] .datepicker table tr td.today.disabled:hover, | |||||
| fieldset[disabled] .datepicker table tr td.today.disabled:hover:hover, | |||||
| .datepicker table tr td.today.disabled:focus, | |||||
| .datepicker table tr td.today:hover.disabled:focus, | |||||
| .datepicker table tr td.today.disabled.disabled:focus, | |||||
| .datepicker table tr td.today.disabled:hover.disabled:focus, | |||||
| .datepicker table tr td.today[disabled]:focus, | |||||
| .datepicker table tr td.today:hover[disabled]:focus, | |||||
| .datepicker table tr td.today.disabled[disabled]:focus, | |||||
| .datepicker table tr td.today.disabled:hover[disabled]:focus, | |||||
| fieldset[disabled] .datepicker table tr td.today:focus, | |||||
| fieldset[disabled] .datepicker table tr td.today:hover:focus, | |||||
| fieldset[disabled] .datepicker table tr td.today.disabled:focus, | |||||
| fieldset[disabled] .datepicker table tr td.today.disabled:hover:focus, | |||||
| .datepicker table tr td.today.disabled:active, | |||||
| .datepicker table tr td.today:hover.disabled:active, | |||||
| .datepicker table tr td.today.disabled.disabled:active, | |||||
| .datepicker table tr td.today.disabled:hover.disabled:active, | |||||
| .datepicker table tr td.today[disabled]:active, | |||||
| .datepicker table tr td.today:hover[disabled]:active, | |||||
| .datepicker table tr td.today.disabled[disabled]:active, | |||||
| .datepicker table tr td.today.disabled:hover[disabled]:active, | |||||
| fieldset[disabled] .datepicker table tr td.today:active, | |||||
| fieldset[disabled] .datepicker table tr td.today:hover:active, | |||||
| fieldset[disabled] .datepicker table tr td.today.disabled:active, | |||||
| fieldset[disabled] .datepicker table tr td.today.disabled:hover:active, | |||||
| .datepicker table tr td.today.disabled.active, | |||||
| .datepicker table tr td.today:hover.disabled.active, | |||||
| .datepicker table tr td.today.disabled.disabled.active, | |||||
| .datepicker table tr td.today.disabled:hover.disabled.active, | |||||
| .datepicker table tr td.today[disabled].active, | |||||
| .datepicker table tr td.today:hover[disabled].active, | |||||
| .datepicker table tr td.today.disabled[disabled].active, | |||||
| .datepicker table tr td.today.disabled:hover[disabled].active, | |||||
| fieldset[disabled] .datepicker table tr td.today.active, | |||||
| fieldset[disabled] .datepicker table tr td.today:hover.active, | |||||
| fieldset[disabled] .datepicker table tr td.today.disabled.active, | |||||
| fieldset[disabled] .datepicker table tr td.today.disabled:hover.active { | |||||
| background-color: #ffdb99; | |||||
| border-color: #ffb733; | |||||
| } | |||||
| .datepicker table tr td.today:hover:hover { | |||||
| color: #000; | |||||
| } | |||||
| .datepicker table tr td.today.active:hover { | |||||
| color: #fff; | |||||
| } | |||||
| .datepicker table tr td.range, | |||||
| .datepicker table tr td.range:hover, | |||||
| .datepicker table tr td.range.disabled, | |||||
| .datepicker table tr td.range.disabled:hover { | |||||
| background: #eeeeee; | |||||
| border-radius: 0; | |||||
| } | |||||
| .datepicker table tr td.range.today, | |||||
| .datepicker table tr td.range.today:hover, | |||||
| .datepicker table tr td.range.today.disabled, | |||||
| .datepicker table tr td.range.today.disabled:hover { | |||||
| color: #000000; | |||||
| background-color: #f7ca77; | |||||
| border-color: #f1a417; | |||||
| border-radius: 0; | |||||
| } | |||||
| .datepicker table tr td.range.today:hover, | |||||
| .datepicker table tr td.range.today:hover:hover, | |||||
| .datepicker table tr td.range.today.disabled:hover, | |||||
| .datepicker table tr td.range.today.disabled:hover:hover, | |||||
| .datepicker table tr td.range.today:focus, | |||||
| .datepicker table tr td.range.today:hover:focus, | |||||
| .datepicker table tr td.range.today.disabled:focus, | |||||
| .datepicker table tr td.range.today.disabled:hover:focus, | |||||
| .datepicker table tr td.range.today:active, | |||||
| .datepicker table tr td.range.today:hover:active, | |||||
| .datepicker table tr td.range.today.disabled:active, | |||||
| .datepicker table tr td.range.today.disabled:hover:active, | |||||
| .datepicker table tr td.range.today.active, | |||||
| .datepicker table tr td.range.today:hover.active, | |||||
| .datepicker table tr td.range.today.disabled.active, | |||||
| .datepicker table tr td.range.today.disabled:hover.active, | |||||
| .open .dropdown-toggle.datepicker table tr td.range.today, | |||||
| .open .dropdown-toggle.datepicker table tr td.range.today:hover, | |||||
| .open .dropdown-toggle.datepicker table tr td.range.today.disabled, | |||||
| .open .dropdown-toggle.datepicker table tr td.range.today.disabled:hover { | |||||
| color: #000000; | |||||
| background-color: #f4bb51; | |||||
| border-color: #bf800c; | |||||
| } | |||||
| .datepicker table tr td.range.today:active, | |||||
| .datepicker table tr td.range.today:hover:active, | |||||
| .datepicker table tr td.range.today.disabled:active, | |||||
| .datepicker table tr td.range.today.disabled:hover:active, | |||||
| .datepicker table tr td.range.today.active, | |||||
| .datepicker table tr td.range.today:hover.active, | |||||
| .datepicker table tr td.range.today.disabled.active, | |||||
| .datepicker table tr td.range.today.disabled:hover.active, | |||||
| .open .dropdown-toggle.datepicker table tr td.range.today, | |||||
| .open .dropdown-toggle.datepicker table tr td.range.today:hover, | |||||
| .open .dropdown-toggle.datepicker table tr td.range.today.disabled, | |||||
| .open .dropdown-toggle.datepicker table tr td.range.today.disabled:hover { | |||||
| background-image: none; | |||||
| } | |||||
| .datepicker table tr td.range.today.disabled, | |||||
| .datepicker table tr td.range.today:hover.disabled, | |||||
| .datepicker table tr td.range.today.disabled.disabled, | |||||
| .datepicker table tr td.range.today.disabled:hover.disabled, | |||||
| .datepicker table tr td.range.today[disabled], | |||||
| .datepicker table tr td.range.today:hover[disabled], | |||||
| .datepicker table tr td.range.today.disabled[disabled], | |||||
| .datepicker table tr td.range.today.disabled:hover[disabled], | |||||
| fieldset[disabled] .datepicker table tr td.range.today, | |||||
| fieldset[disabled] .datepicker table tr td.range.today:hover, | |||||
| fieldset[disabled] .datepicker table tr td.range.today.disabled, | |||||
| fieldset[disabled] .datepicker table tr td.range.today.disabled:hover, | |||||
| .datepicker table tr td.range.today.disabled:hover, | |||||
| .datepicker table tr td.range.today:hover.disabled:hover, | |||||
| .datepicker table tr td.range.today.disabled.disabled:hover, | |||||
| .datepicker table tr td.range.today.disabled:hover.disabled:hover, | |||||
| .datepicker table tr td.range.today[disabled]:hover, | |||||
| .datepicker table tr td.range.today:hover[disabled]:hover, | |||||
| .datepicker table tr td.range.today.disabled[disabled]:hover, | |||||
| .datepicker table tr td.range.today.disabled:hover[disabled]:hover, | |||||
| fieldset[disabled] .datepicker table tr td.range.today:hover, | |||||
| fieldset[disabled] .datepicker table tr td.range.today:hover:hover, | |||||
| fieldset[disabled] .datepicker table tr td.range.today.disabled:hover, | |||||
| fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:hover, | |||||
| .datepicker table tr td.range.today.disabled:focus, | |||||
| .datepicker table tr td.range.today:hover.disabled:focus, | |||||
| .datepicker table tr td.range.today.disabled.disabled:focus, | |||||
| .datepicker table tr td.range.today.disabled:hover.disabled:focus, | |||||
| .datepicker table tr td.range.today[disabled]:focus, | |||||
| .datepicker table tr td.range.today:hover[disabled]:focus, | |||||
| .datepicker table tr td.range.today.disabled[disabled]:focus, | |||||
| .datepicker table tr td.range.today.disabled:hover[disabled]:focus, | |||||
| fieldset[disabled] .datepicker table tr td.range.today:focus, | |||||
| fieldset[disabled] .datepicker table tr td.range.today:hover:focus, | |||||
| fieldset[disabled] .datepicker table tr td.range.today.disabled:focus, | |||||
| fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:focus, | |||||
| .datepicker table tr td.range.today.disabled:active, | |||||
| .datepicker table tr td.range.today:hover.disabled:active, | |||||
| .datepicker table tr td.range.today.disabled.disabled:active, | |||||
| .datepicker table tr td.range.today.disabled:hover.disabled:active, | |||||
| .datepicker table tr td.range.today[disabled]:active, | |||||
| .datepicker table tr td.range.today:hover[disabled]:active, | |||||
| .datepicker table tr td.range.today.disabled[disabled]:active, | |||||
| .datepicker table tr td.range.today.disabled:hover[disabled]:active, | |||||
| fieldset[disabled] .datepicker table tr td.range.today:active, | |||||
| fieldset[disabled] .datepicker table tr td.range.today:hover:active, | |||||
| fieldset[disabled] .datepicker table tr td.range.today.disabled:active, | |||||
| fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:active, | |||||
| .datepicker table tr td.range.today.disabled.active, | |||||
| .datepicker table tr td.range.today:hover.disabled.active, | |||||
| .datepicker table tr td.range.today.disabled.disabled.active, | |||||
| .datepicker table tr td.range.today.disabled:hover.disabled.active, | |||||
| .datepicker table tr td.range.today[disabled].active, | |||||
| .datepicker table tr td.range.today:hover[disabled].active, | |||||
| .datepicker table tr td.range.today.disabled[disabled].active, | |||||
| .datepicker table tr td.range.today.disabled:hover[disabled].active, | |||||
| fieldset[disabled] .datepicker table tr td.range.today.active, | |||||
| fieldset[disabled] .datepicker table tr td.range.today:hover.active, | |||||
| fieldset[disabled] .datepicker table tr td.range.today.disabled.active, | |||||
| fieldset[disabled] .datepicker table tr td.range.today.disabled:hover.active { | |||||
| background-color: #f7ca77; | |||||
| border-color: #f1a417; | |||||
| } | |||||
| .datepicker table tr td.selected, | |||||
| .datepicker table tr td.selected:hover, | |||||
| .datepicker table tr td.selected.disabled, | |||||
| .datepicker table tr td.selected.disabled:hover { | |||||
| color: #ffffff; | |||||
| background-color: #999999; | |||||
| border-color: #555555; | |||||
| text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); | |||||
| } | |||||
| .datepicker table tr td.selected:hover, | |||||
| .datepicker table tr td.selected:hover:hover, | |||||
| .datepicker table tr td.selected.disabled:hover, | |||||
| .datepicker table tr td.selected.disabled:hover:hover, | |||||
| .datepicker table tr td.selected:focus, | |||||
| .datepicker table tr td.selected:hover:focus, | |||||
| .datepicker table tr td.selected.disabled:focus, | |||||
| .datepicker table tr td.selected.disabled:hover:focus, | |||||
| .datepicker table tr td.selected:active, | |||||
| .datepicker table tr td.selected:hover:active, | |||||
| .datepicker table tr td.selected.disabled:active, | |||||
| .datepicker table tr td.selected.disabled:hover:active, | |||||
| .datepicker table tr td.selected.active, | |||||
| .datepicker table tr td.selected:hover.active, | |||||
| .datepicker table tr td.selected.disabled.active, | |||||
| .datepicker table tr td.selected.disabled:hover.active, | |||||
| .open .dropdown-toggle.datepicker table tr td.selected, | |||||
| .open .dropdown-toggle.datepicker table tr td.selected:hover, | |||||
| .open .dropdown-toggle.datepicker table tr td.selected.disabled, | |||||
| .open .dropdown-toggle.datepicker table tr td.selected.disabled:hover { | |||||
| color: #ffffff; | |||||
| background-color: #858585; | |||||
| border-color: #373737; | |||||
| } | |||||
| .datepicker table tr td.selected:active, | |||||
| .datepicker table tr td.selected:hover:active, | |||||
| .datepicker table tr td.selected.disabled:active, | |||||
| .datepicker table tr td.selected.disabled:hover:active, | |||||
| .datepicker table tr td.selected.active, | |||||
| .datepicker table tr td.selected:hover.active, | |||||
| .datepicker table tr td.selected.disabled.active, | |||||
| .datepicker table tr td.selected.disabled:hover.active, | |||||
| .open .dropdown-toggle.datepicker table tr td.selected, | |||||
| .open .dropdown-toggle.datepicker table tr td.selected:hover, | |||||
| .open .dropdown-toggle.datepicker table tr td.selected.disabled, | |||||
| .open .dropdown-toggle.datepicker table tr td.selected.disabled:hover { | |||||
| background-image: none; | |||||
| } | |||||
| .datepicker table tr td.selected.disabled, | |||||
| .datepicker table tr td.selected:hover.disabled, | |||||
| .datepicker table tr td.selected.disabled.disabled, | |||||
| .datepicker table tr td.selected.disabled:hover.disabled, | |||||
| .datepicker table tr td.selected[disabled], | |||||
| .datepicker table tr td.selected:hover[disabled], | |||||
| .datepicker table tr td.selected.disabled[disabled], | |||||
| .datepicker table tr td.selected.disabled:hover[disabled], | |||||
| fieldset[disabled] .datepicker table tr td.selected, | |||||
| fieldset[disabled] .datepicker table tr td.selected:hover, | |||||
| fieldset[disabled] .datepicker table tr td.selected.disabled, | |||||
| fieldset[disabled] .datepicker table tr td.selected.disabled:hover, | |||||
| .datepicker table tr td.selected.disabled:hover, | |||||
| .datepicker table tr td.selected:hover.disabled:hover, | |||||
| .datepicker table tr td.selected.disabled.disabled:hover, | |||||
| .datepicker table tr td.selected.disabled:hover.disabled:hover, | |||||
| .datepicker table tr td.selected[disabled]:hover, | |||||
| .datepicker table tr td.selected:hover[disabled]:hover, | |||||
| .datepicker table tr td.selected.disabled[disabled]:hover, | |||||
| .datepicker table tr td.selected.disabled:hover[disabled]:hover, | |||||
| fieldset[disabled] .datepicker table tr td.selected:hover, | |||||
| fieldset[disabled] .datepicker table tr td.selected:hover:hover, | |||||
| fieldset[disabled] .datepicker table tr td.selected.disabled:hover, | |||||
| fieldset[disabled] .datepicker table tr td.selected.disabled:hover:hover, | |||||
| .datepicker table tr td.selected.disabled:focus, | |||||
| .datepicker table tr td.selected:hover.disabled:focus, | |||||
| .datepicker table tr td.selected.disabled.disabled:focus, | |||||
| .datepicker table tr td.selected.disabled:hover.disabled:focus, | |||||
| .datepicker table tr td.selected[disabled]:focus, | |||||
| .datepicker table tr td.selected:hover[disabled]:focus, | |||||
| .datepicker table tr td.selected.disabled[disabled]:focus, | |||||
| .datepicker table tr td.selected.disabled:hover[disabled]:focus, | |||||
| fieldset[disabled] .datepicker table tr td.selected:focus, | |||||
| fieldset[disabled] .datepicker table tr td.selected:hover:focus, | |||||
| fieldset[disabled] .datepicker table tr td.selected.disabled:focus, | |||||
| fieldset[disabled] .datepicker table tr td.selected.disabled:hover:focus, | |||||
| .datepicker table tr td.selected.disabled:active, | |||||
| .datepicker table tr td.selected:hover.disabled:active, | |||||
| .datepicker table tr td.selected.disabled.disabled:active, | |||||
| .datepicker table tr td.selected.disabled:hover.disabled:active, | |||||
| .datepicker table tr td.selected[disabled]:active, | |||||
| .datepicker table tr td.selected:hover[disabled]:active, | |||||
| .datepicker table tr td.selected.disabled[disabled]:active, | |||||
| .datepicker table tr td.selected.disabled:hover[disabled]:active, | |||||
| fieldset[disabled] .datepicker table tr td.selected:active, | |||||
| fieldset[disabled] .datepicker table tr td.selected:hover:active, | |||||
| fieldset[disabled] .datepicker table tr td.selected.disabled:active, | |||||
| fieldset[disabled] .datepicker table tr td.selected.disabled:hover:active, | |||||
| .datepicker table tr td.selected.disabled.active, | |||||
| .datepicker table tr td.selected:hover.disabled.active, | |||||
| .datepicker table tr td.selected.disabled.disabled.active, | |||||
| .datepicker table tr td.selected.disabled:hover.disabled.active, | |||||
| .datepicker table tr td.selected[disabled].active, | |||||
| .datepicker table tr td.selected:hover[disabled].active, | |||||
| .datepicker table tr td.selected.disabled[disabled].active, | |||||
| .datepicker table tr td.selected.disabled:hover[disabled].active, | |||||
| fieldset[disabled] .datepicker table tr td.selected.active, | |||||
| fieldset[disabled] .datepicker table tr td.selected:hover.active, | |||||
| fieldset[disabled] .datepicker table tr td.selected.disabled.active, | |||||
| fieldset[disabled] .datepicker table tr td.selected.disabled:hover.active { | |||||
| background-color: #999999; | |||||
| border-color: #555555; | |||||
| } | |||||
| .datepicker table tr td.active, | |||||
| .datepicker table tr td.active:hover, | |||||
| .datepicker table tr td.active.disabled, | |||||
| .datepicker table tr td.active.disabled:hover { | |||||
| color: #ffffff; | |||||
| background-color: #428bca; | |||||
| border-color: #357ebd; | |||||
| text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); | |||||
| } | |||||
| .datepicker table tr td.active:hover, | |||||
| .datepicker table tr td.active:hover:hover, | |||||
| .datepicker table tr td.active.disabled:hover, | |||||
| .datepicker table tr td.active.disabled:hover:hover, | |||||
| .datepicker table tr td.active:focus, | |||||
| .datepicker table tr td.active:hover:focus, | |||||
| .datepicker table tr td.active.disabled:focus, | |||||
| .datepicker table tr td.active.disabled:hover:focus, | |||||
| .datepicker table tr td.active:active, | |||||
| .datepicker table tr td.active:hover:active, | |||||
| .datepicker table tr td.active.disabled:active, | |||||
| .datepicker table tr td.active.disabled:hover:active, | |||||
| .datepicker table tr td.active.active, | |||||
| .datepicker table tr td.active:hover.active, | |||||
| .datepicker table tr td.active.disabled.active, | |||||
| .datepicker table tr td.active.disabled:hover.active, | |||||
| .open .dropdown-toggle.datepicker table tr td.active, | |||||
| .open .dropdown-toggle.datepicker table tr td.active:hover, | |||||
| .open .dropdown-toggle.datepicker table tr td.active.disabled, | |||||
| .open .dropdown-toggle.datepicker table tr td.active.disabled:hover { | |||||
| color: #ffffff; | |||||
| background-color: #3276b1; | |||||
| border-color: #285e8e; | |||||
| } | |||||
| .datepicker table tr td.active:active, | |||||
| .datepicker table tr td.active:hover:active, | |||||
| .datepicker table tr td.active.disabled:active, | |||||
| .datepicker table tr td.active.disabled:hover:active, | |||||
| .datepicker table tr td.active.active, | |||||
| .datepicker table tr td.active:hover.active, | |||||
| .datepicker table tr td.active.disabled.active, | |||||
| .datepicker table tr td.active.disabled:hover.active, | |||||
| .open .dropdown-toggle.datepicker table tr td.active, | |||||
| .open .dropdown-toggle.datepicker table tr td.active:hover, | |||||
| .open .dropdown-toggle.datepicker table tr td.active.disabled, | |||||
| .open .dropdown-toggle.datepicker table tr td.active.disabled:hover { | |||||
| background-image: none; | |||||
| } | |||||
| .datepicker table tr td.active.disabled, | |||||
| .datepicker table tr td.active:hover.disabled, | |||||
| .datepicker table tr td.active.disabled.disabled, | |||||
| .datepicker table tr td.active.disabled:hover.disabled, | |||||
| .datepicker table tr td.active[disabled], | |||||
| .datepicker table tr td.active:hover[disabled], | |||||
| .datepicker table tr td.active.disabled[disabled], | |||||
| .datepicker table tr td.active.disabled:hover[disabled], | |||||
| fieldset[disabled] .datepicker table tr td.active, | |||||
| fieldset[disabled] .datepicker table tr td.active:hover, | |||||
| fieldset[disabled] .datepicker table tr td.active.disabled, | |||||
| fieldset[disabled] .datepicker table tr td.active.disabled:hover, | |||||
| .datepicker table tr td.active.disabled:hover, | |||||
| .datepicker table tr td.active:hover.disabled:hover, | |||||
| .datepicker table tr td.active.disabled.disabled:hover, | |||||
| .datepicker table tr td.active.disabled:hover.disabled:hover, | |||||
| .datepicker table tr td.active[disabled]:hover, | |||||
| .datepicker table tr td.active:hover[disabled]:hover, | |||||
| .datepicker table tr td.active.disabled[disabled]:hover, | |||||
| .datepicker table tr td.active.disabled:hover[disabled]:hover, | |||||
| fieldset[disabled] .datepicker table tr td.active:hover, | |||||
| fieldset[disabled] .datepicker table tr td.active:hover:hover, | |||||
| fieldset[disabled] .datepicker table tr td.active.disabled:hover, | |||||
| fieldset[disabled] .datepicker table tr td.active.disabled:hover:hover, | |||||
| .datepicker table tr td.active.disabled:focus, | |||||
| .datepicker table tr td.active:hover.disabled:focus, | |||||
| .datepicker table tr td.active.disabled.disabled:focus, | |||||
| .datepicker table tr td.active.disabled:hover.disabled:focus, | |||||
| .datepicker table tr td.active[disabled]:focus, | |||||
| .datepicker table tr td.active:hover[disabled]:focus, | |||||
| .datepicker table tr td.active.disabled[disabled]:focus, | |||||
| .datepicker table tr td.active.disabled:hover[disabled]:focus, | |||||
| fieldset[disabled] .datepicker table tr td.active:focus, | |||||
| fieldset[disabled] .datepicker table tr td.active:hover:focus, | |||||
| fieldset[disabled] .datepicker table tr td.active.disabled:focus, | |||||
| fieldset[disabled] .datepicker table tr td.active.disabled:hover:focus, | |||||
| .datepicker table tr td.active.disabled:active, | |||||
| .datepicker table tr td.active:hover.disabled:active, | |||||
| .datepicker table tr td.active.disabled.disabled:active, | |||||
| .datepicker table tr td.active.disabled:hover.disabled:active, | |||||
| .datepicker table tr td.active[disabled]:active, | |||||
| .datepicker table tr td.active:hover[disabled]:active, | |||||
| .datepicker table tr td.active.disabled[disabled]:active, | |||||
| .datepicker table tr td.active.disabled:hover[disabled]:active, | |||||
| fieldset[disabled] .datepicker table tr td.active:active, | |||||
| fieldset[disabled] .datepicker table tr td.active:hover:active, | |||||
| fieldset[disabled] .datepicker table tr td.active.disabled:active, | |||||
| fieldset[disabled] .datepicker table tr td.active.disabled:hover:active, | |||||
| .datepicker table tr td.active.disabled.active, | |||||
| .datepicker table tr td.active:hover.disabled.active, | |||||
| .datepicker table tr td.active.disabled.disabled.active, | |||||
| .datepicker table tr td.active.disabled:hover.disabled.active, | |||||
| .datepicker table tr td.active[disabled].active, | |||||
| .datepicker table tr td.active:hover[disabled].active, | |||||
| .datepicker table tr td.active.disabled[disabled].active, | |||||
| .datepicker table tr td.active.disabled:hover[disabled].active, | |||||
| fieldset[disabled] .datepicker table tr td.active.active, | |||||
| fieldset[disabled] .datepicker table tr td.active:hover.active, | |||||
| fieldset[disabled] .datepicker table tr td.active.disabled.active, | |||||
| fieldset[disabled] .datepicker table tr td.active.disabled:hover.active { | |||||
| background-color: #428bca; | |||||
| border-color: #357ebd; | |||||
| } | |||||
| .datepicker table tr td span { | |||||
| display: block; | |||||
| width: 23%; | |||||
| height: 54px; | |||||
| line-height: 54px; | |||||
| float: left; | |||||
| margin: 1%; | |||||
| cursor: pointer; | |||||
| border-radius: 4px; | |||||
| } | |||||
| .datepicker table tr td span:hover { | |||||
| background: #eeeeee; | |||||
| } | |||||
| .datepicker table tr td span.disabled, | |||||
| .datepicker table tr td span.disabled:hover { | |||||
| background: none; | |||||
| color: #999999; | |||||
| cursor: default; | |||||
| } | |||||
| .datepicker table tr td span.active, | |||||
| .datepicker table tr td span.active:hover, | |||||
| .datepicker table tr td span.active.disabled, | |||||
| .datepicker table tr td span.active.disabled:hover { | |||||
| color: #ffffff; | |||||
| background-color: #428bca; | |||||
| border-color: #357ebd; | |||||
| text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); | |||||
| } | |||||
| .datepicker table tr td span.active:hover, | |||||
| .datepicker table tr td span.active:hover:hover, | |||||
| .datepicker table tr td span.active.disabled:hover, | |||||
| .datepicker table tr td span.active.disabled:hover:hover, | |||||
| .datepicker table tr td span.active:focus, | |||||
| .datepicker table tr td span.active:hover:focus, | |||||
| .datepicker table tr td span.active.disabled:focus, | |||||
| .datepicker table tr td span.active.disabled:hover:focus, | |||||
| .datepicker table tr td span.active:active, | |||||
| .datepicker table tr td span.active:hover:active, | |||||
| .datepicker table tr td span.active.disabled:active, | |||||
| .datepicker table tr td span.active.disabled:hover:active, | |||||
| .datepicker table tr td span.active.active, | |||||
| .datepicker table tr td span.active:hover.active, | |||||
| .datepicker table tr td span.active.disabled.active, | |||||
| .datepicker table tr td span.active.disabled:hover.active, | |||||
| .open .dropdown-toggle.datepicker table tr td span.active, | |||||
| .open .dropdown-toggle.datepicker table tr td span.active:hover, | |||||
| .open .dropdown-toggle.datepicker table tr td span.active.disabled, | |||||
| .open .dropdown-toggle.datepicker table tr td span.active.disabled:hover { | |||||
| color: #ffffff; | |||||
| background-color: #3276b1; | |||||
| border-color: #285e8e; | |||||
| } | |||||
| .datepicker table tr td span.active:active, | |||||
| .datepicker table tr td span.active:hover:active, | |||||
| .datepicker table tr td span.active.disabled:active, | |||||
| .datepicker table tr td span.active.disabled:hover:active, | |||||
| .datepicker table tr td span.active.active, | |||||
| .datepicker table tr td span.active:hover.active, | |||||
| .datepicker table tr td span.active.disabled.active, | |||||
| .datepicker table tr td span.active.disabled:hover.active, | |||||
| .open .dropdown-toggle.datepicker table tr td span.active, | |||||
| .open .dropdown-toggle.datepicker table tr td span.active:hover, | |||||
| .open .dropdown-toggle.datepicker table tr td span.active.disabled, | |||||
| .open .dropdown-toggle.datepicker table tr td span.active.disabled:hover { | |||||
| background-image: none; | |||||
| } | |||||
| .datepicker table tr td span.active.disabled, | |||||
| .datepicker table tr td span.active:hover.disabled, | |||||
| .datepicker table tr td span.active.disabled.disabled, | |||||
| .datepicker table tr td span.active.disabled:hover.disabled, | |||||
| .datepicker table tr td span.active[disabled], | |||||
| .datepicker table tr td span.active:hover[disabled], | |||||
| .datepicker table tr td span.active.disabled[disabled], | |||||
| .datepicker table tr td span.active.disabled:hover[disabled], | |||||
| fieldset[disabled] .datepicker table tr td span.active, | |||||
| fieldset[disabled] .datepicker table tr td span.active:hover, | |||||
| fieldset[disabled] .datepicker table tr td span.active.disabled, | |||||
| fieldset[disabled] .datepicker table tr td span.active.disabled:hover, | |||||
| .datepicker table tr td span.active.disabled:hover, | |||||
| .datepicker table tr td span.active:hover.disabled:hover, | |||||
| .datepicker table tr td span.active.disabled.disabled:hover, | |||||
| .datepicker table tr td span.active.disabled:hover.disabled:hover, | |||||
| .datepicker table tr td span.active[disabled]:hover, | |||||
| .datepicker table tr td span.active:hover[disabled]:hover, | |||||
| .datepicker table tr td span.active.disabled[disabled]:hover, | |||||
| .datepicker table tr td span.active.disabled:hover[disabled]:hover, | |||||
| fieldset[disabled] .datepicker table tr td span.active:hover, | |||||
| fieldset[disabled] .datepicker table tr td span.active:hover:hover, | |||||
| fieldset[disabled] .datepicker table tr td span.active.disabled:hover, | |||||
| fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover, | |||||
| .datepicker table tr td span.active.disabled:focus, | |||||
| .datepicker table tr td span.active:hover.disabled:focus, | |||||
| .datepicker table tr td span.active.disabled.disabled:focus, | |||||
| .datepicker table tr td span.active.disabled:hover.disabled:focus, | |||||
| .datepicker table tr td span.active[disabled]:focus, | |||||
| .datepicker table tr td span.active:hover[disabled]:focus, | |||||
| .datepicker table tr td span.active.disabled[disabled]:focus, | |||||
| .datepicker table tr td span.active.disabled:hover[disabled]:focus, | |||||
| fieldset[disabled] .datepicker table tr td span.active:focus, | |||||
| fieldset[disabled] .datepicker table tr td span.active:hover:focus, | |||||
| fieldset[disabled] .datepicker table tr td span.active.disabled:focus, | |||||
| fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus, | |||||
| .datepicker table tr td span.active.disabled:active, | |||||
| .datepicker table tr td span.active:hover.disabled:active, | |||||
| .datepicker table tr td span.active.disabled.disabled:active, | |||||
| .datepicker table tr td span.active.disabled:hover.disabled:active, | |||||
| .datepicker table tr td span.active[disabled]:active, | |||||
| .datepicker table tr td span.active:hover[disabled]:active, | |||||
| .datepicker table tr td span.active.disabled[disabled]:active, | |||||
| .datepicker table tr td span.active.disabled:hover[disabled]:active, | |||||
| fieldset[disabled] .datepicker table tr td span.active:active, | |||||
| fieldset[disabled] .datepicker table tr td span.active:hover:active, | |||||
| fieldset[disabled] .datepicker table tr td span.active.disabled:active, | |||||
| fieldset[disabled] .datepicker table tr td span.active.disabled:hover:active, | |||||
| .datepicker table tr td span.active.disabled.active, | |||||
| .datepicker table tr td span.active:hover.disabled.active, | |||||
| .datepicker table tr td span.active.disabled.disabled.active, | |||||
| .datepicker table tr td span.active.disabled:hover.disabled.active, | |||||
| .datepicker table tr td span.active[disabled].active, | |||||
| .datepicker table tr td span.active:hover[disabled].active, | |||||
| .datepicker table tr td span.active.disabled[disabled].active, | |||||
| .datepicker table tr td span.active.disabled:hover[disabled].active, | |||||
| fieldset[disabled] .datepicker table tr td span.active.active, | |||||
| fieldset[disabled] .datepicker table tr td span.active:hover.active, | |||||
| fieldset[disabled] .datepicker table tr td span.active.disabled.active, | |||||
| fieldset[disabled] .datepicker table tr td span.active.disabled:hover.active { | |||||
| background-color: #428bca; | |||||
| border-color: #357ebd; | |||||
| } | |||||
| .datepicker table tr td span.old, | |||||
| .datepicker table tr td span.new { | |||||
| color: #999999; | |||||
| } | |||||
| .datepicker th.datepicker-switch { | |||||
| width: 145px; | |||||
| } | |||||
| .datepicker thead tr:first-child th, | |||||
| .datepicker tfoot tr th { | |||||
| cursor: pointer; | |||||
| } | |||||
| .datepicker thead tr:first-child th:hover, | |||||
| .datepicker tfoot tr th:hover { | |||||
| background: #eeeeee; | |||||
| } | |||||
| .datepicker .cw { | |||||
| font-size: 10px; | |||||
| width: 12px; | |||||
| padding: 0 2px 0 5px; | |||||
| vertical-align: middle; | |||||
| } | |||||
| .datepicker thead tr:first-child th.cw { | |||||
| cursor: default; | |||||
| background-color: transparent; | |||||
| } | |||||
| .input-group.date .input-group-addon i { | |||||
| cursor: pointer; | |||||
| width: 16px; | |||||
| height: 16px; | |||||
| } | |||||
| .input-daterange input { | |||||
| text-align: center; | |||||
| } | |||||
| .input-daterange input:first-child { | |||||
| border-radius: 3px 0 0 3px; | |||||
| } | |||||
| .input-daterange input:last-child { | |||||
| border-radius: 0 3px 3px 0; | |||||
| } | |||||
| .input-daterange .input-group-addon { | |||||
| width: auto; | |||||
| min-width: 16px; | |||||
| padding: 4px 5px; | |||||
| font-weight: normal; | |||||
| line-height: 1.428571429; | |||||
| text-align: center; | |||||
| text-shadow: 0 1px 0 #fff; | |||||
| vertical-align: middle; | |||||
| background-color: #eeeeee; | |||||
| border: solid #cccccc; | |||||
| border-width: 1px 0; | |||||
| margin-left: -5px; | |||||
| margin-right: -5px; | |||||
| } | |||||
| .datepicker.dropdown-menu { | |||||
| position: absolute; | |||||
| top: 100%; | |||||
| left: 0; | |||||
| z-index: 1000; | |||||
| float: left; | |||||
| display: none; | |||||
| min-width: 160px; | |||||
| list-style: none; | |||||
| background-color: #ffffff; | |||||
| border: 1px solid #ccc; | |||||
| border: 1px solid rgba(0, 0, 0, 0.2); | |||||
| border-radius: 5px; | |||||
| -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); | |||||
| -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); | |||||
| box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); | |||||
| -webkit-background-clip: padding-box; | |||||
| -moz-background-clip: padding; | |||||
| background-clip: padding-box; | |||||
| *border-right-width: 2px; | |||||
| *border-bottom-width: 2px; | |||||
| color: #333333; | |||||
| font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; | |||||
| font-size: 13px; | |||||
| line-height: 1.428571429; | |||||
| } | |||||
| .datepicker.dropdown-menu th, | |||||
| .datepicker.dropdown-menu td { | |||||
| padding: 4px 5px; | |||||
| } | |||||
| @@ -1447,6 +1447,15 @@ html, body { | |||||
| min-width: 300px; | min-width: 300px; | ||||
| } | } | ||||
| #issue .issue-bar .assignee, #issue .issue-bar .assignee ul { | |||||
| min-width: 160px; | |||||
| } | |||||
| #issue .issue-bar .assignee .dropdown-menu{ | |||||
| padding: 0; | |||||
| margin: 0; | |||||
| } | |||||
| #issue .assignee li { | #issue .assignee li { | ||||
| padding: 4px 12px; | padding: 4px 12px; | ||||
| line-height: 30px; | line-height: 30px; | ||||
| @@ -1473,6 +1482,11 @@ html, body { | |||||
| line-height: 30px; | line-height: 30px; | ||||
| } | } | ||||
| #issue .issue-bar .assignee .action{ | |||||
| position: relative; | |||||
| margin-top: -8px; | |||||
| } | |||||
| /* wrapper and footer */ | /* wrapper and footer */ | ||||
| #wrapper { | #wrapper { | ||||
| @@ -535,8 +535,27 @@ function initIssue() { | |||||
| }()); | }()); | ||||
| // assignee | // assignee | ||||
| var is_issue_bar = $('.issue-bar').length > 0; | |||||
| var $a = $('.assignee'); | |||||
| if($a.data("assigned") > 0){ | |||||
| $('.clear-assignee').toggleShow(); | |||||
| } | |||||
| $('.assignee', '#issue').on('click', 'li', function () { | $('.assignee', '#issue').on('click', 'li', function () { | ||||
| var uid = $(this).data("uid"); | var uid = $(this).data("uid"); | ||||
| if(is_issue_bar){ | |||||
| var assignee = $a.data("assigned"); | |||||
| if(uid != assignee){ | |||||
| $.post($a.data("ajax"), { | |||||
| issue: $('#issue').data("id"), | |||||
| assign: assignee | |||||
| }, function (json) { | |||||
| if (json.ok) { | |||||
| window.location.reload(); | |||||
| } | |||||
| }) | |||||
| } | |||||
| return; | |||||
| } | |||||
| $('#assignee').val(uid); | $('#assignee').val(uid); | ||||
| if (uid > 0) { | if (uid > 0) { | ||||
| $('.clear-assignee').toggleShow(); | $('.clear-assignee').toggleShow(); | ||||
| @@ -0,0 +1,15 @@ | |||||
| /** | |||||
| * Arabic translation for bootstrap-datepicker | |||||
| * Mohammed Alshehri <alshehri866@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['ar'] = { | |||||
| days: ["الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت", "الأحد"], | |||||
| daysShort: ["أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت", "أحد"], | |||||
| daysMin: ["ح", "ن", "ث", "ع", "خ", "ج", "س", "ح"], | |||||
| months: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], | |||||
| monthsShort: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], | |||||
| today: "هذا اليوم", | |||||
| rtl: true | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,12 @@ | |||||
| // Azerbaijani | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['az'] = { | |||||
| days: ["Bazar", "Bazar ertəsi", "Çərşənbə axşamı", "Çərşənbə", "Cümə axşamı", "Cümə", "Şənbə", "Bazar"], | |||||
| daysShort: ["B.", "B.e", "Ç.a", "Ç.", "C.a", "C.", "Ş.", "B."], | |||||
| daysMin: ["B.", "B.e", "Ç.a", "Ç.", "C.a", "C.", "Ş.", "B."], | |||||
| months: ["Yanvar", "Fevral", "Mart", "Aprel", "May", "İyun", "İyul", "Avqust", "Sentyabr", "Oktyabr", "Noyabr", "Dekabr"], | |||||
| monthsShort: ["Yan", "Fev", "Mar", "Apr", "May", "İyun", "İyul", "Avq", "Sen", "Okt", "Noy", "Dek"], | |||||
| today: "Bu gün", | |||||
| weekStart: 1 | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,14 @@ | |||||
| /** | |||||
| * Bulgarian translation for bootstrap-datepicker | |||||
| * Apostol Apostolov <apostol.s.apostolov@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['bg'] = { | |||||
| days: ["Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота", "Неделя"], | |||||
| daysShort: ["Нед", "Пон", "Вто", "Сря", "Чет", "Пет", "Съб", "Нед"], | |||||
| daysMin: ["Н", "П", "В", "С", "Ч", "П", "С", "Н"], | |||||
| months: ["Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"], | |||||
| monthsShort: ["Ян", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Ное", "Дек"], | |||||
| today: "днес" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,14 @@ | |||||
| /** | |||||
| * Catalan translation for bootstrap-datepicker | |||||
| * J. Garcia <jogaco.en@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['ca'] = { | |||||
| days: ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte", "Diumenge"], | |||||
| daysShort: ["Diu", "Dil", "Dmt", "Dmc", "Dij", "Div", "Dis", "Diu"], | |||||
| daysMin: ["dg", "dl", "dt", "dc", "dj", "dv", "ds", "dg"], | |||||
| months: ["Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"], | |||||
| monthsShort: ["Gen", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Oct", "Nov", "Des"], | |||||
| today: "Avui" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,15 @@ | |||||
| /** | |||||
| * Czech translation for bootstrap-datepicker | |||||
| * Matěj Koubík <matej@koubik.name> | |||||
| * Fixes by Michal Remiš <michal.remis@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['cs'] = { | |||||
| days: ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota", "Neděle"], | |||||
| daysShort: ["Ned", "Pon", "Úte", "Stř", "Čtv", "Pát", "Sob", "Ned"], | |||||
| daysMin: ["Ne", "Po", "Út", "St", "Čt", "Pá", "So", "Ne"], | |||||
| months: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"], | |||||
| monthsShort: ["Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Čnc", "Srp", "Zář", "Říj", "Lis", "Pro"], | |||||
| today: "Dnes" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,14 @@ | |||||
| /** | |||||
| * Welsh translation for bootstrap-datepicker | |||||
| * S. Morris <s.morris@bangor.ac.uk> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['cy'] = { | |||||
| days: ["Sul", "Llun", "Mawrth", "Mercher", "Iau", "Gwener", "Sadwrn", "Sul"], | |||||
| daysShort: ["Sul", "Llu", "Maw", "Mer", "Iau", "Gwe", "Sad", "Sul"], | |||||
| daysMin: ["Su", "Ll", "Ma", "Me", "Ia", "Gwe", "Sa", "Su"], | |||||
| months: ["Ionawr", "Chewfror", "Mawrth", "Ebrill", "Mai", "Mehefin", "Gorfennaf", "Awst", "Medi", "Hydref", "Tachwedd", "Rhagfyr"], | |||||
| monthsShort: ["Ion", "Chw", "Maw", "Ebr", "Mai", "Meh", "Gor", "Aws", "Med", "Hyd", "Tach", "Rha"], | |||||
| today: "Heddiw" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,15 @@ | |||||
| /** | |||||
| * Danish translation for bootstrap-datepicker | |||||
| * Christian Pedersen <http://github.com/chripede> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['da'] = { | |||||
| days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag"], | |||||
| daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør", "Søn"], | |||||
| daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø", "Sø"], | |||||
| months: ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"], | |||||
| monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], | |||||
| today: "I Dag", | |||||
| clear: "Nulstil" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,17 @@ | |||||
| /** | |||||
| * German translation for bootstrap-datepicker | |||||
| * Sam Zurcher <sam@orelias.ch> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['de'] = { | |||||
| days: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"], | |||||
| daysShort: ["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam", "Son"], | |||||
| daysMin: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa", "So"], | |||||
| months: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], | |||||
| monthsShort: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"], | |||||
| today: "Heute", | |||||
| clear: "Löschen", | |||||
| weekStart: 1, | |||||
| format: "dd.mm.yyyy" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,13 @@ | |||||
| /** | |||||
| * Greek translation for bootstrap-datepicker | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['el'] = { | |||||
| days: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο", "Κυριακή"], | |||||
| daysShort: ["Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ", "Κυρ"], | |||||
| daysMin: ["Κυ", "Δε", "Τρ", "Τε", "Πε", "Πα", "Σα", "Κυ"], | |||||
| months: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"], | |||||
| monthsShort: ["Ιαν", "Φεβ", "Μαρ", "Απρ", "Μάι", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ"], | |||||
| today: "Σήμερα" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,14 @@ | |||||
| /** | |||||
| * Spanish translation for bootstrap-datepicker | |||||
| * Bruno Bonamin <bruno.bonamin@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['es'] = { | |||||
| days: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"], | |||||
| daysShort: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb", "Dom"], | |||||
| daysMin: ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa", "Do"], | |||||
| months: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"], | |||||
| monthsShort: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"], | |||||
| today: "Hoy" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,18 @@ | |||||
| /** | |||||
| * Estonian translation for bootstrap-datepicker | |||||
| * Ando Roots <https://github.com/anroots> | |||||
| * Fixes by Illimar Tambek <<https://github.com/ragulka> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['et'] = { | |||||
| days: ["Pühapäev", "Esmaspäev", "Teisipäev", "Kolmapäev", "Neljapäev", "Reede", "Laupäev", "Pühapäev"], | |||||
| daysShort: ["Pühap", "Esmasp", "Teisip", "Kolmap", "Neljap", "Reede", "Laup", "Pühap"], | |||||
| daysMin: ["P", "E", "T", "K", "N", "R", "L", "P"], | |||||
| months: ["Jaanuar", "Veebruar", "Märts", "Aprill", "Mai", "Juuni", "Juuli", "August", "September", "Oktoober", "November", "Detsember"], | |||||
| monthsShort: ["Jaan", "Veebr", "Märts", "Apr", "Mai", "Juuni", "Juuli", "Aug", "Sept", "Okt", "Nov", "Dets"], | |||||
| today: "Täna", | |||||
| clear: "Tühjenda", | |||||
| weekStart: 1, | |||||
| format: "dd.mm.yyyy" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,17 @@ | |||||
| /** | |||||
| * Persian translation for bootstrap-datepicker | |||||
| * Mostafa Rokooie <mostafa.rokooie@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['fa'] = { | |||||
| days: ["یکشنبه", "دوشنبه", "سهشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه", "یکشنبه"], | |||||
| daysShort: ["یک", "دو", "سه", "چهار", "پنج", "جمعه", "شنبه", "یک"], | |||||
| daysMin: ["ی", "د", "س", "چ", "پ", "ج", "ش", "ی"], | |||||
| months: ["ژانویه", "فوریه", "مارس", "آوریل", "مه", "ژوئن", "ژوئیه", "اوت", "سپتامبر", "اکتبر", "نوامبر", "دسامبر"], | |||||
| monthsShort: ["ژان", "فور", "مار", "آور", "مه", "ژون", "ژوی", "اوت", "سپت", "اکت", "نوا", "دسا"], | |||||
| today: "امروز", | |||||
| clear: "پاک کن", | |||||
| weekStart: 1, | |||||
| format: "yyyy/mm/dd" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,16 @@ | |||||
| /** | |||||
| * Finnish translation for bootstrap-datepicker | |||||
| * Jaakko Salonen <https://github.com/jsalonen> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['fi'] = { | |||||
| days: ["sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai", "sunnuntai"], | |||||
| daysShort: ["sun", "maa", "tii", "kes", "tor", "per", "lau", "sun"], | |||||
| daysMin: ["su", "ma", "ti", "ke", "to", "pe", "la", "su"], | |||||
| months: ["tammikuu", "helmikuu", "maaliskuu", "huhtikuu", "toukokuu", "kesäkuu", "heinäkuu", "elokuu", "syyskuu", "lokakuu", "marraskuu", "joulukuu"], | |||||
| monthsShort: ["tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mar", "jou"], | |||||
| today: "tänään", | |||||
| weekStart: 1, | |||||
| format: "d.m.yyyy" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,17 @@ | |||||
| /** | |||||
| * French translation for bootstrap-datepicker | |||||
| * Nico Mollet <nico.mollet@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['fr'] = { | |||||
| days: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"], | |||||
| daysShort: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam", "Dim"], | |||||
| daysMin: ["D", "L", "Ma", "Me", "J", "V", "S", "D"], | |||||
| months: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"], | |||||
| monthsShort: ["Jan", "Fév", "Mar", "Avr", "Mai", "Jui", "Jul", "Aou", "Sep", "Oct", "Nov", "Déc"], | |||||
| today: "Aujourd'hui", | |||||
| clear: "Effacer", | |||||
| weekStart: 1, | |||||
| format: "dd/mm/yyyy" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,11 @@ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['gl'] = { | |||||
| days: ["Domingo", "Luns", "Martes", "Mércores", "Xoves", "Venres", "Sábado", "Domingo"], | |||||
| daysShort: ["Dom", "Lun", "Mar", "Mér", "Xov", "Ven", "Sáb", "Dom"], | |||||
| daysMin: ["Do", "Lu", "Ma", "Me", "Xo", "Ve", "Sa", "Do"], | |||||
| months: ["Xaneiro", "Febreiro", "Marzo", "Abril", "Maio", "Xuño", "Xullo", "Agosto", "Setembro", "Outubro", "Novembro", "Decembro"], | |||||
| monthsShort: ["Xan", "Feb", "Mar", "Abr", "Mai", "Xun", "Xul", "Ago", "Sep", "Out", "Nov", "Dec"], | |||||
| today: "Hoxe", | |||||
| clear: "Limpar" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,15 @@ | |||||
| /** | |||||
| * Hebrew translation for bootstrap-datepicker | |||||
| * Sagie Maoz <sagie@maoz.info> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['he'] = { | |||||
| days: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת", "ראשון"], | |||||
| daysShort: ["א", "ב", "ג", "ד", "ה", "ו", "ש", "א"], | |||||
| daysMin: ["א", "ב", "ג", "ד", "ה", "ו", "ש", "א"], | |||||
| months: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"], | |||||
| monthsShort: ["ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ"], | |||||
| today: "היום", | |||||
| rtl: true | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,13 @@ | |||||
| /** | |||||
| * Croatian localisation | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['hr'] = { | |||||
| days: ["Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota", "Nedjelja"], | |||||
| daysShort: ["Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub", "Ned"], | |||||
| daysMin: ["Ne", "Po", "Ut", "Sr", "Če", "Pe", "Su", "Ne"], | |||||
| months: ["Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"], | |||||
| monthsShort: ["Sij", "Velj", "Ožu", "Tra", "Svi", "Lip", "Srp", "Kol", "Ruj", "Lis", "Stu", "Pro"], | |||||
| today: "Danas" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,16 @@ | |||||
| /** | |||||
| * Hungarian translation for bootstrap-datepicker | |||||
| * Sotus László <lacisan@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['hu'] = { | |||||
| days: ["Vasárnap", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat", "Vasárnap"], | |||||
| daysShort: ["Vas", "Hét", "Ked", "Sze", "Csü", "Pén", "Szo", "Vas"], | |||||
| daysMin: ["Va", "Hé", "Ke", "Sz", "Cs", "Pé", "Sz", "Va"], | |||||
| months: ["Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"], | |||||
| monthsShort: ["Jan", "Feb", "Már", "Ápr", "Máj", "Jún", "Júl", "Aug", "Sze", "Okt", "Nov", "Dec"], | |||||
| today: "Ma", | |||||
| weekStart: 1, | |||||
| format: "yyyy.mm.dd" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,15 @@ | |||||
| /** | |||||
| * Bahasa translation for bootstrap-datepicker | |||||
| * Azwar Akbar <azwar.akbar@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['id'] = { | |||||
| days: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", "Minggu"], | |||||
| daysShort: ["Mgu", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab", "Mgu"], | |||||
| daysMin: ["Mg", "Sn", "Sl", "Ra", "Ka", "Ju", "Sa", "Mg"], | |||||
| months: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"], | |||||
| monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ags", "Sep", "Okt", "Nov", "Des"], | |||||
| today: "Hari Ini", | |||||
| clear: "Kosongkan" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,14 @@ | |||||
| /** | |||||
| * Icelandic translation for bootstrap-datepicker | |||||
| * Hinrik Örn Sigurðsson <hinrik.sig@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['is'] = { | |||||
| days: ["Sunnudagur", "Mánudagur", "Þriðjudagur", "Miðvikudagur", "Fimmtudagur", "Föstudagur", "Laugardagur", "Sunnudagur"], | |||||
| daysShort: ["Sun", "Mán", "Þri", "Mið", "Fim", "Fös", "Lau", "Sun"], | |||||
| daysMin: ["Su", "Má", "Þr", "Mi", "Fi", "Fö", "La", "Su"], | |||||
| months: ["Janúar", "Febrúar", "Mars", "Apríl", "Maí", "Júní", "Júlí", "Ágúst", "September", "Október", "Nóvember", "Desember"], | |||||
| monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maí", "Jún", "Júl", "Ágú", "Sep", "Okt", "Nóv", "Des"], | |||||
| today: "Í Dag" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,17 @@ | |||||
| /** | |||||
| * Italian translation for bootstrap-datepicker | |||||
| * Enrico Rubboli <rubboli@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['it'] = { | |||||
| days: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato", "Domenica"], | |||||
| daysShort: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab", "Dom"], | |||||
| daysMin: ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa", "Do"], | |||||
| months: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"], | |||||
| monthsShort: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"], | |||||
| today: "Oggi", | |||||
| clear: "Cancella", | |||||
| weekStart: 1, | |||||
| format: "dd/mm/yyyy" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,15 @@ | |||||
| /** | |||||
| * Japanese translation for bootstrap-datepicker | |||||
| * Norio Suzuki <https://github.com/suzuki/> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['ja'] = { | |||||
| days: ["日曜", "月曜", "火曜", "水曜", "木曜", "金曜", "土曜", "日曜"], | |||||
| daysShort: ["日", "月", "火", "水", "木", "金", "土", "日"], | |||||
| daysMin: ["日", "月", "火", "水", "木", "金", "土", "日"], | |||||
| months: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], | |||||
| monthsShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], | |||||
| today: "今日", | |||||
| format: "yyyy/mm/dd" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,17 @@ | |||||
| /** | |||||
| * Georgian translation for bootstrap-datepicker | |||||
| * Levan Melikishvili <levani0101@yahoo.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['ka'] = { | |||||
| days: ["კვირა", "ორშაბათი", "სამშაბათი", "ოთხშაბათი", "ხუთშაბათი", "პარასკევი", "შაბათი", "კვირა"], | |||||
| daysShort: ["კვი", "ორშ", "სამ", "ოთხ", "ხუთ", "პარ", "შაბ", "კვი"], | |||||
| daysMin: ["კვ", "ორ", "სა", "ოთ", "ხუ", "პა", "შა", "კვ"], | |||||
| months: ["იანვარი", "თებერვალი", "მარტი", "აპრილი", "მაისი", "ივნისი", "ივლისი", "აგვისტო", "სექტემბერი", "ოქტომები", "ნოემბერი", "დეკემბერი"], | |||||
| monthsShort: ["იან", "თებ", "მარ", "აპრ", "მაი", "ივნ", "ივლ", "აგვ", "სექ", "ოქტ", "ნოე", "დეკ"], | |||||
| today: "დღეს", | |||||
| clear: "გასუფთავება", | |||||
| weekStart: 1, | |||||
| format: "dd.mm.yyyy" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,15 @@ | |||||
| /** | |||||
| * Kazakh translation for bootstrap-datepicker | |||||
| * Yerzhan Tolekov <era.tolekov@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['kk'] = { | |||||
| days: ["Жексенбі", "Дүйсенбі", "Сейсенбі", "Сәрсенбі", "Бейсенбі", "Жұма", "Сенбі", "Жексенбі"], | |||||
| daysShort: ["Жек", "Дүй", "Сей", "Сәр", "Бей", "Жұм", "Сен", "Жек"], | |||||
| daysMin: ["Жк", "Дс", "Сс", "Ср", "Бс", "Жм", "Сн", "Жк"], | |||||
| months: ["Қаңтар", "Ақпан", "Наурыз", "Сәуір", "Мамыр", "Маусым", "Шілде", "Тамыз", "Қыркүйек", "Қазан", "Қараша", "Желтоқсан"], | |||||
| monthsShort: ["Қаң", "Ақп", "Нау", "Сәу", "Мамыр", "Мау", "Шлд", "Тмз", "Қыр", "Қзн", "Қар", "Жел"], | |||||
| today: "Бүгін", | |||||
| weekStart: 1 | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,13 @@ | |||||
| /** | |||||
| * Korean translation for bootstrap-datepicker | |||||
| * Gu Youn <http://github.com/guyoun> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['kr'] = { | |||||
| days: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일", "일요일"], | |||||
| daysShort: ["일", "월", "화", "수", "목", "금", "토", "일"], | |||||
| daysMin: ["일", "월", "화", "수", "목", "금", "토", "일"], | |||||
| months: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"], | |||||
| monthsShort: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"] | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,16 @@ | |||||
| /** | |||||
| * Lithuanian translation for bootstrap-datepicker | |||||
| * Šarūnas Gliebus <ssharunas@yahoo.co.uk> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['lt'] = { | |||||
| days: ["Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis", "Sekmadienis"], | |||||
| daysShort: ["S", "Pr", "A", "T", "K", "Pn", "Š", "S"], | |||||
| daysMin: ["Sk", "Pr", "An", "Tr", "Ke", "Pn", "Št", "Sk"], | |||||
| months: ["Sausis", "Vasaris", "Kovas", "Balandis", "Gegužė", "Birželis", "Liepa", "Rugpjūtis", "Rugsėjis", "Spalis", "Lapkritis", "Gruodis"], | |||||
| monthsShort: ["Sau", "Vas", "Kov", "Bal", "Geg", "Bir", "Lie", "Rugp", "Rugs", "Spa", "Lap", "Gru"], | |||||
| today: "Šiandien", | |||||
| weekStart: 1 | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,16 @@ | |||||
| /** | |||||
| * Latvian translation for bootstrap-datepicker | |||||
| * Artis Avotins <artis@apit.lv> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['lv'] = { | |||||
| days: ["Svētdiena", "Pirmdiena", "Otrdiena", "Trešdiena", "Ceturtdiena", "Piektdiena", "Sestdiena", "Svētdiena"], | |||||
| daysShort: ["Sv", "P", "O", "T", "C", "Pk", "S", "Sv"], | |||||
| daysMin: ["Sv", "Pr", "Ot", "Tr", "Ce", "Pk", "Se", "Sv"], | |||||
| months: ["Janvāris", "Februāris", "Marts", "Aprīlis", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris"], | |||||
| monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jūn", "Jūl", "Aug", "Sep", "Okt", "Nov", "Dec"], | |||||
| today: "Šodien", | |||||
| weekStart: 1 | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,15 @@ | |||||
| /** | |||||
| * Macedonian translation for bootstrap-datepicker | |||||
| * Marko Aleksic <psybaron@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['mk'] = { | |||||
| days: ["Недела", "Понеделник", "Вторник", "Среда", "Четврток", "Петок", "Сабота", "Недела"], | |||||
| daysShort: ["Нед", "Пон", "Вто", "Сре", "Чет", "Пет", "Саб", "Нед"], | |||||
| daysMin: ["Не", "По", "Вт", "Ср", "Че", "Пе", "Са", "Не"], | |||||
| months: ["Јануари", "Февруари", "Март", "Април", "Мај", "Јуни", "Јули", "Август", "Септември", "Октомври", "Ноември", "Декември"], | |||||
| monthsShort: ["Јан", "Фев", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Ное", "Дек"], | |||||
| today: "Денес", | |||||
| format: "dd.mm.yyyy" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,14 @@ | |||||
| /** | |||||
| * Malay translation for bootstrap-datepicker | |||||
| * Ateman Faiz <noorulfaiz@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['ms'] = { | |||||
| days: ["Ahad", "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu", "Ahad"], | |||||
| daysShort: ["Aha", "Isn", "Sel", "Rab", "Kha", "Jum", "Sab", "Aha"], | |||||
| daysMin: ["Ah", "Is", "Se", "Ra", "Kh", "Ju", "Sa", "Ah"], | |||||
| months: ["Januari", "Februari", "Mac", "April", "Mei", "Jun", "Julai", "Ogos", "September", "Oktober", "November", "Disember"], | |||||
| monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ogo", "Sep", "Okt", "Nov", "Dis"], | |||||
| today: "Hari Ini" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,14 @@ | |||||
| /** | |||||
| * Norwegian (bokmål) translation for bootstrap-datepicker | |||||
| * Fredrik Sundmyhr <http://github.com/fsundmyhr> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['nb'] = { | |||||
| days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag"], | |||||
| daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør", "Søn"], | |||||
| daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø", "Sø"], | |||||
| months: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], | |||||
| monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"], | |||||
| today: "I Dag" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,17 @@ | |||||
| /** | |||||
| * Belgium-Dutch translation for bootstrap-datepicker | |||||
| * Julien Poulin <poulin_julien@hotmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['nl-BE'] = { | |||||
| days: ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag", "Zondag"], | |||||
| daysShort: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zo"], | |||||
| daysMin: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zo"], | |||||
| months: ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"], | |||||
| monthsShort: ["Jan", "Feb", "Mrt", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], | |||||
| today: "Vandaag", | |||||
| clear: "Leegmaken", | |||||
| weekStart: 1, | |||||
| format: "dd/mm/yyyy" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,14 @@ | |||||
| /** | |||||
| * Dutch translation for bootstrap-datepicker | |||||
| * Reinier Goltstein <mrgoltstein@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['nl'] = { | |||||
| days: ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag", "Zondag"], | |||||
| daysShort: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zo"], | |||||
| daysMin: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zo"], | |||||
| months: ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"], | |||||
| monthsShort: ["Jan", "Feb", "Mrt", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], | |||||
| today: "Vandaag" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,16 @@ | |||||
| /** | |||||
| * Norwegian translation for bootstrap-datepicker | |||||
| **/ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['no'] = { | |||||
| days: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'], | |||||
| daysShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'], | |||||
| daysMin: ['Sø','Ma','Ti','On','To','Fr','Lø'], | |||||
| months: ['Januar','Februar','Mars','April','Mai','Juni','Juli','August','September','Oktober','November','Desember'], | |||||
| monthsShort: ['Jan','Feb','Mar','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Des'], | |||||
| today: 'I dag', | |||||
| clear: 'Nullstill', | |||||
| weekStart: 1, | |||||
| format: 'dd.mm.yyyy' | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,15 @@ | |||||
| /** | |||||
| * Polish translation for bootstrap-datepicker | |||||
| * Robert <rtpm@gazeta.pl> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['pl'] = { | |||||
| days: ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota", "Niedziela"], | |||||
| daysShort: ["Nie", "Pn", "Wt", "Śr", "Czw", "Pt", "So", "Nie"], | |||||
| daysMin: ["N", "Pn", "Wt", "Śr", "Cz", "Pt", "So", "N"], | |||||
| months: ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"], | |||||
| monthsShort: ["Sty", "Lu", "Mar", "Kw", "Maj", "Cze", "Lip", "Sie", "Wrz", "Pa", "Lis", "Gru"], | |||||
| today: "Dzisiaj", | |||||
| weekStart: 1 | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,15 @@ | |||||
| /** | |||||
| * Brazilian translation for bootstrap-datepicker | |||||
| * Cauan Cabral <cauan@radig.com.br> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['pt-BR'] = { | |||||
| days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado", "Domingo"], | |||||
| daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb", "Dom"], | |||||
| daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa", "Do"], | |||||
| months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], | |||||
| monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"], | |||||
| today: "Hoje", | |||||
| clear: "Limpar" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,16 @@ | |||||
| /** | |||||
| * Portuguese translation for bootstrap-datepicker | |||||
| * Original code: Cauan Cabral <cauan@radig.com.br> | |||||
| * Tiago Melo <tiago.blackcode@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['pt'] = { | |||||
| days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado", "Domingo"], | |||||
| daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb", "Dom"], | |||||
| daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa", "Do"], | |||||
| months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], | |||||
| monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"], | |||||
| today: "Hoje", | |||||
| clear: "Limpar" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,16 @@ | |||||
| /** | |||||
| * Romanian translation for bootstrap-datepicker | |||||
| * Cristian Vasile <cristi.mie@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['ro'] = { | |||||
| days: ["Duminică", "Luni", "Marţi", "Miercuri", "Joi", "Vineri", "Sâmbătă", "Duminică"], | |||||
| daysShort: ["Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm", "Dum"], | |||||
| daysMin: ["Du", "Lu", "Ma", "Mi", "Jo", "Vi", "Sâ", "Du"], | |||||
| months: ["Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"], | |||||
| monthsShort: ["Ian", "Feb", "Mar", "Apr", "Mai", "Iun", "Iul", "Aug", "Sep", "Oct", "Nov", "Dec"], | |||||
| today: "Astăzi", | |||||
| clear: "Șterge", | |||||
| weekStart: 1 | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,14 @@ | |||||
| /** | |||||
| * Serbian latin translation for bootstrap-datepicker | |||||
| * Bojan Milosavlević <milboj@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['rs-latin'] = { | |||||
| days: ["Nedelja","Ponedeljak", "Utorak", "Sreda", "Četvrtak", "Petak", "Subota", "Nedelja"], | |||||
| daysShort: ["Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub", "Ned"], | |||||
| daysMin: ["N", "Po", "U", "Sr", "Č", "Pe", "Su", "N"], | |||||
| months: ["Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"], | |||||
| monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"], | |||||
| today: "Danas" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,14 @@ | |||||
| /** | |||||
| * Serbian cyrillic translation for bootstrap-datepicker | |||||
| * Bojan Milosavlević <milboj@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['rs'] = { | |||||
| days: ["Недеља","Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота", "Недеља"], | |||||
| daysShort: ["Нед", "Пон", "Уто", "Сре", "Чет", "Пет", "Суб", "Нед"], | |||||
| daysMin: ["Н", "По", "У", "Ср", "Ч", "Пе", "Су", "Н"], | |||||
| months: ["Јануар", "Фебруар", "Март", "Април", "Мај", "Јун", "Јул", "Август", "Септембар", "Октобар", "Новембар", "Децембар"], | |||||
| monthsShort: ["Јан", "Феб", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Нов", "Дец"], | |||||
| today: "Данас" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,15 @@ | |||||
| /** | |||||
| * Russian translation for bootstrap-datepicker | |||||
| * Victor Taranenko <darwin@snowdale.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['ru'] = { | |||||
| days: ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье"], | |||||
| daysShort: ["Вск", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб", "Вск"], | |||||
| daysMin: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс"], | |||||
| months: ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"], | |||||
| monthsShort: ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"], | |||||
| today: "Сегодня", | |||||
| weekStart: 1 | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,15 @@ | |||||
| /** | |||||
| * Slovak translation for bootstrap-datepicker | |||||
| * Marek Lichtner <marek@licht.sk> | |||||
| * Fixes by Michal Remiš <michal.remis@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates["sk"] = { | |||||
| days: ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota", "Nedeľa"], | |||||
| daysShort: ["Ned", "Pon", "Uto", "Str", "Štv", "Pia", "Sob", "Ned"], | |||||
| daysMin: ["Ne", "Po", "Ut", "St", "Št", "Pia", "So", "Ne"], | |||||
| months: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"], | |||||
| monthsShort: ["Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec"], | |||||
| today: "Dnes" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,14 @@ | |||||
| /** | |||||
| * Slovene translation for bootstrap-datepicker | |||||
| * Gregor Rudolf <gregor.rudolf@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['sl'] = { | |||||
| days: ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Četrtek", "Petek", "Sobota", "Nedelja"], | |||||
| daysShort: ["Ned", "Pon", "Tor", "Sre", "Čet", "Pet", "Sob", "Ned"], | |||||
| daysMin: ["Ne", "Po", "To", "Sr", "Če", "Pe", "So", "Ne"], | |||||
| months: ["Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"], | |||||
| monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"], | |||||
| today: "Danes" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,15 @@ | |||||
| /** | |||||
| * Albanian translation for bootstrap-datepicker | |||||
| * Tomor Pupovci <http://www.github.com/ttomor> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['sq'] = { | |||||
| days: ["E Diel", "E Hënë", "E martē", "E mërkurë", "E Enjte", "E Premte", "E Shtunë", "E Diel"], | |||||
| daysShort: ["Die", "Hën", "Mar", "Mër", "Enj", "Pre", "Shtu", "Die"], | |||||
| daysMin: ["Di", "Hë", "Ma", "Më", "En", "Pr", "Sht", "Di"], | |||||
| months: ["Janar", "Shkurt", "Mars", "Prill", "Maj", "Qershor", "Korrik", "Gusht", "Shtator", "Tetor", "Nëntor", "Dhjetor"], | |||||
| monthsShort: ["Jan", "Shk", "Mar", "Pri", "Maj", "Qer", "Korr", "Gu", "Sht", "Tet", "Nën", "Dhjet"], | |||||
| today: "Sot" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,16 @@ | |||||
| /** | |||||
| * Swedish translation for bootstrap-datepicker | |||||
| * Patrik Ragnarsson <patrik@starkast.net> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['sv'] = { | |||||
| days: ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag", "Söndag"], | |||||
| daysShort: ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör", "Sön"], | |||||
| daysMin: ["Sö", "Må", "Ti", "On", "To", "Fr", "Lö", "Sö"], | |||||
| months: ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"], | |||||
| monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], | |||||
| today: "Idag", | |||||
| format: "yyyy-mm-dd", | |||||
| weekStart: 1 | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,15 @@ | |||||
| /** | |||||
| * Swahili translation for bootstrap-datepicker | |||||
| * Edwin Mugendi <https://github.com/edwinmugendi> | |||||
| * Source: http://scriptsource.org/cms/scripts/page.php?item_id=entry_detail&uid=xnfaqyzcku | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['sw'] = { | |||||
| days: ["Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi", "Jumapili"], | |||||
| daysShort: ["J2", "J3", "J4", "J5", "Alh", "Ij", "J1", "J2"], | |||||
| daysMin: ["2", "3", "4", "5", "A", "I", "1", "2"], | |||||
| months: ["Januari", "Februari", "Machi", "Aprili", "Mei", "Juni", "Julai", "Agosti", "Septemba", "Oktoba", "Novemba", "Desemba"], | |||||
| monthsShort: ["Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"], | |||||
| today: "Leo" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,14 @@ | |||||
| /** | |||||
| * Thai translation for bootstrap-datepicker | |||||
| * Suchau Jiraprapot <seroz24@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['th'] = { | |||||
| days: ["อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัส", "ศุกร์", "เสาร์", "อาทิตย์"], | |||||
| daysShort: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"], | |||||
| daysMin: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"], | |||||
| months: ["มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฎาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม"], | |||||
| monthsShort: ["ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค."], | |||||
| today: "วันนี้" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,16 @@ | |||||
| /** | |||||
| * Turkish translation for bootstrap-datepicker | |||||
| * Serkan Algur <kaisercrazy_2@hotmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['tr'] = { | |||||
| days: ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi", "Pazar"], | |||||
| daysShort: ["Pz", "Pzt", "Sal", "Çrş", "Prş", "Cu", "Cts", "Pz"], | |||||
| daysMin: ["Pz", "Pzt", "Sa", "Çr", "Pr", "Cu", "Ct", "Pz"], | |||||
| months: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"], | |||||
| monthsShort: ["Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara"], | |||||
| today: "Bugün", | |||||
| format: "dd.mm.yyyy" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,15 @@ | |||||
| /** | |||||
| * Ukrainian translation for bootstrap-datepicker | |||||
| * Igor Polynets | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['ua'] = { | |||||
| days: ["Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятница", "Субота", "Неділя"], | |||||
| daysShort: ["Нед", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб", "Нед"], | |||||
| daysMin: ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Нд"], | |||||
| months: ["Cічень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"], | |||||
| monthsShort: ["Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру"], | |||||
| today: "Сьогодні", | |||||
| weekStart: 1 | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,16 @@ | |||||
| /** | |||||
| * Vietnamese translation for bootstrap-datepicker | |||||
| * An Vo <https://github.com/anvoz/> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['vi'] = { | |||||
| days: ["Chủ nhật", "Thứ hai", "Thứ ba", "Thứ tư", "Thứ năm", "Thứ sáu", "Thứ bảy", "Chủ nhật"], | |||||
| daysShort: ["CN", "Thứ 2", "Thứ 3", "Thứ 4", "Thứ 5", "Thứ 6", "Thứ 7", "CN"], | |||||
| daysMin: ["CN", "T2", "T3", "T4", "T5", "T6", "T7", "CN"], | |||||
| months: ["Tháng 1", "Tháng 2", "Tháng 3", "Tháng 4", "Tháng 5", "Tháng 6", "Tháng 7", "Tháng 8", "Tháng 9", "Tháng 10", "Tháng 11", "Tháng 12"], | |||||
| monthsShort: ["Th1", "Th2", "Th3", "Th4", "Th5", "Th6", "Th7", "Th8", "Th9", "Th10", "Th11", "Th12"], | |||||
| today: "Hôm nay", | |||||
| clear: "Xóa", | |||||
| format: "dd/mm/yyyy" | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,16 @@ | |||||
| /** | |||||
| * Simplified Chinese translation for bootstrap-datepicker | |||||
| * Yuan Cheung <advanimal@gmail.com> | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['zh-CN'] = { | |||||
| days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"], | |||||
| daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"], | |||||
| daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"], | |||||
| months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], | |||||
| monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], | |||||
| today: "今日", | |||||
| format: "yyyy年mm月dd日", | |||||
| weekStart: 1 | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -0,0 +1,17 @@ | |||||
| /** | |||||
| * Traditional Chinese translation for bootstrap-datepicker | |||||
| * Rung-Sheng Jang <daniel@i-trend.co.cc> | |||||
| * FrankWu <frankwu100@gmail.com> Fix more appropriate use of Traditional Chinese habit | |||||
| */ | |||||
| ;(function($){ | |||||
| $.fn.datepicker.dates['zh-TW'] = { | |||||
| days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"], | |||||
| daysShort: ["週日", "週一", "週二", "週三", "週四", "週五", "週六", "週日"], | |||||
| daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"], | |||||
| months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], | |||||
| monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], | |||||
| today: "今天", | |||||
| format: "yyyy年mm月dd日", | |||||
| weekStart: 1 | |||||
| }; | |||||
| }(jQuery)); | |||||
| @@ -58,7 +58,8 @@ func NewUserPost(ctx *middleware.Context, form auth.RegisterForm) { | |||||
| fields := strings.Split(form.LoginType, "-") | fields := strings.Split(form.LoginType, "-") | ||||
| u.LoginType, _ = strconv.Atoi(fields[0]) | u.LoginType, _ = strconv.Atoi(fields[0]) | ||||
| u.LoginSource, _ = strconv.ParseInt(fields[1], 10, 64) | u.LoginSource, _ = strconv.ParseInt(fields[1], 10, 64) | ||||
| fmt.Println(u.LoginSource) | |||||
| u.LoginName = form.LoginName | |||||
| fmt.Println(u.LoginType, u.LoginSource, u.LoginName) | |||||
| } | } | ||||
| var err error | var err error | ||||
| @@ -254,10 +254,12 @@ func ViewIssue(ctx *middleware.Context, params martini.Params) { | |||||
| } | } | ||||
| } | } | ||||
| // Update issue-user. | |||||
| if err = models.UpdateIssueUserPairByRead(ctx.User.Id, issue.Id); err != nil { | |||||
| ctx.Handle(500, "issue.ViewIssue(UpdateIssueUserPairByRead): %v", err) | |||||
| return | |||||
| if ctx.IsSigned { | |||||
| // Update issue-user. | |||||
| if err = models.UpdateIssueUserPairByRead(ctx.User.Id, issue.Id); err != nil { | |||||
| ctx.Handle(500, "issue.ViewIssue(UpdateIssueUserPairByRead): %v", err) | |||||
| return | |||||
| } | |||||
| } | } | ||||
| // Get poster and Assignee. | // Get poster and Assignee. | ||||
| @@ -458,3 +460,11 @@ func Milestones(ctx *middleware.Context) { | |||||
| ctx.HTML(200, "issue/milestone") | ctx.HTML(200, "issue/milestone") | ||||
| } | } | ||||
| func NewMilestones(ctx *middleware.Context) { | |||||
| ctx.Data["Title"] = "New Milestones" | |||||
| ctx.Data["IsRepoToolbarIssues"] = true | |||||
| ctx.Data["IsRepoToolbarIssuesList"] = true | |||||
| ctx.HTML(200, "issue/milestone_new") | |||||
| } | |||||
| @@ -140,8 +140,7 @@ func ReleasesNewPost(ctx *middleware.Context, form auth.NewReleaseForm) { | |||||
| IsPrerelease: form.Prerelease, | IsPrerelease: form.Prerelease, | ||||
| } | } | ||||
| if err = models.CreateRelease(models.RepoPath(ctx.User.Name, ctx.Repo.Repository.Name), | |||||
| rel, ctx.Repo.GitRepo); err != nil { | |||||
| if err = models.CreateRelease(ctx.Repo.GitRepo, rel); err != nil { | |||||
| if err == models.ErrReleaseAlreadyExist { | if err == models.ErrReleaseAlreadyExist { | ||||
| ctx.RenderWithErr("Release with this tag name has already existed", "release/new", &form) | ctx.RenderWithErr("Release with this tag name has already existed", "release/new", &form) | ||||
| } else { | } else { | ||||
| @@ -10,8 +10,6 @@ import ( | |||||
| "github.com/go-martini/martini" | "github.com/go-martini/martini" | ||||
| "github.com/gogits/git" | |||||
| "github.com/gogits/gogs/models" | "github.com/gogits/gogs/models" | ||||
| "github.com/gogits/gogs/modules/auth" | "github.com/gogits/gogs/modules/auth" | ||||
| "github.com/gogits/gogs/modules/base" | "github.com/gogits/gogs/modules/base" | ||||
| @@ -57,7 +55,7 @@ func SettingPost(ctx *middleware.Context, form auth.RepoSettingForm) { | |||||
| br := form.Branch | br := form.Branch | ||||
| if git.IsBranchExist(models.RepoPath(ctx.User.Name, ctx.Repo.Repository.Name), br) { | |||||
| if ctx.Repo.GitRepo.IsBranchExist(br) { | |||||
| ctx.Repo.Repository.DefaultBranch = br | ctx.Repo.Repository.DefaultBranch = br | ||||
| } | } | ||||
| ctx.Repo.Repository.Description = form.Description | ctx.Repo.Repository.Description = form.Description | ||||
| @@ -92,7 +92,7 @@ func SignInPost(ctx *middleware.Context, form auth.LogInForm) { | |||||
| var user *models.User | var user *models.User | ||||
| var err error | var err error | ||||
| if base.Service.LdapAuth { | |||||
| /*if base.Service.LdapAuth { | |||||
| user, err = models.LoginUserLdap(form.UserName, form.Password) | user, err = models.LoginUserLdap(form.UserName, form.Password) | ||||
| if err != nil { | if err != nil { | ||||
| log.Error("Fail to login through LDAP: %v", err) | log.Error("Fail to login through LDAP: %v", err) | ||||
| @@ -101,7 +101,8 @@ func SignInPost(ctx *middleware.Context, form auth.LogInForm) { | |||||
| // try local if not LDAP or it's failed | // try local if not LDAP or it's failed | ||||
| if !base.Service.LdapAuth || err != nil { | if !base.Service.LdapAuth || err != nil { | ||||
| user, err = models.LoginUserPlain(form.UserName, form.Password) | user, err = models.LoginUserPlain(form.UserName, form.Password) | ||||
| } | |||||
| }*/ | |||||
| user, err = models.LoginUser(form.UserName, form.Password) | |||||
| if err != nil { | if err != nil { | ||||
| if err == models.ErrUserNotExist { | if err == models.ErrUserNotExist { | ||||
| log.Trace("%s Log in failed: %s/%s", ctx.Req.RequestURI, form.UserName, form.Password) | log.Trace("%s Log in failed: %s/%s", ctx.Req.RequestURI, form.UserName, form.Password) | ||||
| @@ -27,6 +27,7 @@ | |||||
| {{end}} | {{end}} | ||||
| <link href="/css/todc-bootstrap.min.css" rel="stylesheet" /> | <link href="/css/todc-bootstrap.min.css" rel="stylesheet" /> | ||||
| <link href="/css/datepicker3.css" rel="stylesheet" /> | |||||
| <link href="/css/markdown.css" rel="stylesheet" /> | <link href="/css/markdown.css" rel="stylesheet" /> | ||||
| <link href="/css/gogs.css" rel="stylesheet" /> | <link href="/css/gogs.css" rel="stylesheet" /> | ||||
| @@ -0,0 +1,62 @@ | |||||
| {{template "base/head" .}} | |||||
| {{template "base/navbar" .}} | |||||
| {{template "repo/nav" .}} | |||||
| {{template "repo/toolbar" .}} | |||||
| <div id="body" class="container"> | |||||
| <div id="issue"> | |||||
| <form class="form" action="{{.RepoLink}}/issues/new" method="post" id="issue-create-form"> | |||||
| {{.CsrfTokenHtml}} | |||||
| {{template "base/alert" .}} | |||||
| <div class="col-md-1"> | |||||
| <img class="avatar" src="{{.SignedUser.AvatarLink}}" alt=""/> | |||||
| </div> | |||||
| <div class="col-md-8 panel panel-default"> | |||||
| <div class="form-group panel-body"> | |||||
| <input class="form-control input-lg" type="text" name="title" required="required" placeholder="Title" value="{{.title}}" /> | |||||
| </div> | |||||
| <div class="form-group panel-body"> | |||||
| <div class="md-help pull-right"><!-- todo help link --> | |||||
| Content with <a href="https://help.github.com/articles/markdown-basics">Markdown</a> | |||||
| </div> | |||||
| <ul class="nav nav-tabs" data-init="tabs"> | |||||
| <li class="active issue-write"><a href="#issue-textarea" data-toggle="tab">Write</a></li> | |||||
| <li class="issue-preview"><a href="#issue-preview" data-toggle="tab" data-ajax="/api/v1/markdown" data-ajax-name="issue-preview" data-ajax-context="{{.RepoLink}}" data-ajax-method="post" data-preview="#issue-preview">Preview</a></li> | |||||
| </ul> | |||||
| <div class="tab-content"> | |||||
| <div class="tab-pane" id="issue-textarea"> | |||||
| <div class="form-group"> | |||||
| <textarea class="form-control" name="content" id="issue-content" rows="10" placeholder="Write some content" data-ajax-rel="issue-preview" data-ajax-val="val" data-ajax-field="text">{{.content}}</textarea> | |||||
| </div> | |||||
| </div> | |||||
| <div class="tab-pane issue-preview-content" id="issue-preview">loading...</div> | |||||
| </div> | |||||
| </div> | |||||
| <div class="text-right panel-body"> | |||||
| <div class="form-group"> | |||||
| <input type="hidden" value="id" name="repo-id"/> | |||||
| <button class="btn-success btn">Create new issue</button> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| <div class="col-md-3"> | |||||
| <h4>Milestone Due Date</h4> | |||||
| <div class="form-group"> | |||||
| <input name="due_date" type="text" class="form-control" id="milestone-due-date"> | |||||
| </div> | |||||
| </div> | |||||
| </form> | |||||
| </div> | |||||
| </div> | |||||
| <script src="/js/bootstrap-datepicker.js"></script> | |||||
| <script> | |||||
| $(function(){ | |||||
| $('#milestone-due-date').datepicker({ | |||||
| weekStart: 1, | |||||
| todayBtn: "linked", | |||||
| calendarWeeks: true, | |||||
| todayHighlight: true | |||||
| }); | |||||
| }); | |||||
| </script> | |||||
| {{template "base/footer" .}} | |||||
| @@ -3,7 +3,7 @@ | |||||
| {{template "repo/nav" .}} | {{template "repo/nav" .}} | ||||
| {{template "repo/toolbar" .}} | {{template "repo/toolbar" .}} | ||||
| <div id="body" class="container"> | <div id="body" class="container"> | ||||
| <div id="issue"> | |||||
| <div id="issue" data-id="{{.Issue.Id}}"> | |||||
| <div id="issue-{{.Issue.Id}}" class="issue-whole issue-is-opening"> | <div id="issue-{{.Issue.Id}}" class="issue-whole issue-is-opening"> | ||||
| <div class="issue-wrap col-md-10"> | <div class="issue-wrap col-md-10"> | ||||
| <div class="issue-head clearfix"> | <div class="issue-head clearfix"> | ||||
| @@ -100,7 +100,22 @@ | |||||
| </div> | </div> | ||||
| <div class="issue-bar col-md-2"> | <div class="issue-bar col-md-2"> | ||||
| <div class="assignee"> | |||||
| <div class="assignee" data-assigned="{{if .Issue.Assignee}}{{.Issue.Assignee.Id}}{{else}}0{{end}}" data-ajax="{url}">{{if .IsRepositoryOwner}} | |||||
| <div class="pull-right action"> | |||||
| <button type="button" class="dropdown-toggle btn btn-default btn-sm" data-toggle="dropdown"> | |||||
| <i class="fa fa-group"></i> | |||||
| <span class="caret"></span> | |||||
| </button> | |||||
| <div class="dropdown-menu dropdown-menu-right"> | |||||
| <ul class="list-unstyled"> | |||||
| <li data-uid="0" class="clear-assignee hidden"><i class="fa fa-times-circle-o"></i> Clear assignee</li> | |||||
| {{range .Collaborators}} | |||||
| <li data-uid="{{.Id}}"><img src="{{.AvatarLink}}"><strong>{{.Name}}</strong> {{.FullName}}</li> | |||||
| {{end}} | |||||
| <li data-uid="1"><img src="//1.gravatar.com/avatar/f72f7454ce9d710baa506394f68f4132"><strong>fuxiaohei</strong></li> | |||||
| </ul> | |||||
| </div> | |||||
| </div>{{end}} | |||||
| <h4>Assignee</h4> | <h4>Assignee</h4> | ||||
| <p>{{if .Issue.Assignee}}<img src="{{.Issue.Assignee.AvatarLink}}"><strong>{{.Issue.Assignee.Name}}</strong>{{else}}No one assigned{{end}}</p> | <p>{{if .Issue.Assignee}}<img src="{{.Issue.Assignee.AvatarLink}}"><strong>{{.Issue.Assignee.Name}}</strong>{{else}}No one assigned{{end}}</p> | ||||
| </div> | </div> | ||||