From 3b0c2cb480de28c97fced6857f9c0e006ac2a943 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Sat, 5 Sep 2015 14:11:05 -0400 Subject: #633 Add Emoji support --- public/config.codekit | 161 ++++++++++++++++++++++++++++---------------------- 1 file changed, 90 insertions(+), 71 deletions(-) (limited to 'public/config.codekit') diff --git a/public/config.codekit b/public/config.codekit index 8fe93fef..eb125866 100644 --- a/public/config.codekit +++ b/public/config.codekit @@ -1,6 +1,6 @@ { "CodeKitInfo": "This is a CodeKit 2.x project configuration file. It is designed to sync project settings across multiple machines. MODIFYING THE CONTENTS OF THIS FILE IS A POOR LIFE DECISION. If you do so, you will likely cause CodeKit to crash. This file is not useful unless accompanied by the project that created it in CodeKit 2. This file is not backwards-compatible with CodeKit 1.x. For more information, see: http:\/\/incident57.com\/codekit", -"creatorBuild": "18493", +"creatorBuild": "19051", "files": { "\/css\/dropzone-4.0.1.css": { "fileType": 16, @@ -83,6 +83,17 @@ "outputPathIsOutsideProject": 0, "outputPathIsSetByUser": 0 }, + "\/css\/themes\/default\/assets\/images\/flags.png": { + "fileType": 32768, + "ignore": 0, + "ignoreWasSetByUser": 0, + "initialSize": 28123, + "inputAbbreviatedPath": "\/css\/themes\/default\/assets\/images\/flags.png", + "outputAbbreviatedPath": "\/css\/themes\/default\/assets\/images\/flags.png", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "processed": 0 + }, "\/img\/404.png": { "fileType": 32768, "ignore": 0, @@ -169,7 +180,7 @@ "outputPathIsOutsideProject": 0, "outputPathIsSetByUser": 0, "outputStyle": 1, - "syntaxCheckerStyle": 1 + "syntaxCheckerStyle": 0 }, "\/js\/jquery-1.11.3.min.js": { "fileType": 64, @@ -193,6 +204,17 @@ "outputStyle": 1, "syntaxCheckerStyle": 1 }, + "\/js\/libs\/emojify-1.1.0.min.js": { + "fileType": 64, + "ignore": 0, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/js\/libs\/emojify-1.1.0.min.js", + "outputAbbreviatedPath": "\/js\/libs\/min\/emojify-1.1.0.min-min.js", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 1, + "syntaxCheckerStyle": 1 + }, "\/js\/libs\/highlight-8.7.pack.js": { "fileType": 64, "ignore": 0, @@ -308,6 +330,26 @@ "strictMath": 0, "strictUnits": 0 }, + "\/less\/_emojify.less": { + "allowInsecureImports": 0, + "createSourceMap": 0, + "disableJavascript": 0, + "fileType": 1, + "ieCompatibility": 1, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/less\/_emojify.less", + "outputAbbreviatedPath": "\/css\/_emojify.css", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, "\/less\/_explore.less": { "allowInsecureImports": 0, "createSourceMap": 0, @@ -500,7 +542,7 @@ "outputAbbreviatedPath": "\/css\/gogs.min.css", "outputPathIsOutsideProject": 0, "outputPathIsSetByUser": 1, - "outputStyle": 2, + "outputStyle": 1, "relativeURLS": 0, "shouldRunAutoprefixer": 0, "shouldRunBless": 0, @@ -1415,6 +1457,10 @@ "active": 0, "flagValue": -1 }, + "futurehostile": { + "active": 0, + "flagValue": -1 + }, "globalstrict": { "active": 0, "flagValue": -1 @@ -1503,6 +1549,10 @@ "active": 1, "flagValue": -1 }, + "nocomma": { + "active": 0, + "flagValue": -1 + }, "node": { "active": 0, "flagValue": -1 @@ -1603,6 +1653,10 @@ "active": 1, "flagValue": -1 }, + "varstmt": { + "active": 0, + "flagValue": -1 + }, "withstmt": { "active": 0, "flagValue": -1 @@ -1621,10 +1675,6 @@ } }, "jsLintFlags2": { - "ass": { - "active": 0, - "flagValue": -1 - }, "bitwise": { "active": 0, "flagValue": -1 @@ -1633,15 +1683,7 @@ "active": 1, "flagValue": -1 }, - "closure": { - "active": 0, - "flagValue": -1 - }, - "continue": { - "active": 0, - "flagValue": -1 - }, - "debug": { + "couch": { "active": 0, "flagValue": -1 }, @@ -1649,75 +1691,27 @@ "active": 0, "flagValue": -1 }, - "eqeq": { + "es6": { "active": 0, "flagValue": -1 }, - "evil": { + "eval": { "active": 0, "flagValue": -1 }, - "forin": { + "for": { "active": 0, "flagValue": -1 }, - "indent": { - "active": 0, - "flagValue": 4 - }, "maxlen": { "active": 0, "flagValue": 150 }, - "newcap": { - "active": 0, - "flagValue": -1 - }, "node": { "active": 0, "flagValue": -1 }, - "nomen": { - "active": 0, - "flagValue": -1 - }, - "plusplus": { - "active": 0, - "flagValue": -1 - }, - "properties": { - "active": 0, - "flagValue": -1 - }, - "regexp": { - "active": 0, - "flagValue": -1 - }, - "rhino": { - "active": 0, - "flagValue": -1 - }, - "sloppy": { - "active": 0, - "flagValue": -1 - }, - "stupid": { - "active": 0, - "flagValue": -1 - }, - "sub": { - "active": 0, - "flagValue": -1 - }, - "todo": { - "active": 0, - "flagValue": -1 - }, - "unparam": { - "active": 0, - "flagValue": -1 - }, - "vars": { + "this": { "active": 0, "flagValue": -1 }, @@ -1726,6 +1720,14 @@ "flagValue": -1 } }, + "jsonAutoOutputPathEnabled": 0, + "jsonAutoOutputPathFilenamePattern": "*-min.json", + "jsonAutoOutputPathRelativePath": "", + "jsonAutoOutputPathReplace1": "", + "jsonAutoOutputPathReplace2": "", + "jsonAutoOutputPathStyle": 0, + "jsonOrderOutput": 0, + "jsonOutputStyle": 1, "kitAutoOutputPathEnabled": 1, "kitAutoOutputPathFilenamePattern": "*.html", "kitAutoOutputPathRelativePath": "", @@ -1753,9 +1755,18 @@ "markdownAutoOutputPathReplace1": "", "markdownAutoOutputPathReplace2": "", "markdownAutoOutputPathStyle": 0, + "markdownCriticStyle": 0, "markdownEnableFootnotes": 0, - "markdownEnableSmartyPants": 1, - "markdownExpandTabs": 1, + "markdownEnableLabels": 1, + "markdownEnableSmartQuotes": 1, + "markdownEscapeLineBreaks": 0, + "markdownMaskEmailAddresses": 1, + "markdownOutputFormat": 0, + "markdownOutputStyle": 0, + "markdownParseMetadata": 1, + "markdownProcessHTML": 0, + "markdownRandomFootnoteNumbers": 0, + "markdownUseCompatibilityMode": 0, "reloadFileURLs": 0, "sassAutoOutputPathEnabled": 1, "sassAutoOutputPathFilenamePattern": "*.css", @@ -1770,7 +1781,7 @@ "sassUseLibsass": 0, "shouldRunAutoprefixer": 0, "shouldRunBless": 0, - "skippedItemsString": ".svn, .git, .hg, log, _logs, _cache, cache, logs, node_modules", + "skippedItemsString": "_cache, logs, _logs, cache, \/img\/emoji, .git, log, node_modules, .svn, .hg", "slimAutoOutputPathEnabled": 1, "slimAutoOutputPathFilenamePattern": "*.html", "slimAutoOutputPathRelativePath": "", @@ -1814,6 +1825,10 @@ "active": 0, "flagValue": -1 }, + "bare-returns": { + "active": 0, + "flagValue": -1 + }, "booleans": { "active": 1, "flagValue": -1 @@ -1894,6 +1909,10 @@ "active": 0, "flagValue": -1 }, + "keep_fnames": { + "active": 0, + "flagValue": -1 + }, "loops": { "active": 1, "flagValue": -1 -- cgit v1.2.3 From 24658fcbdd507bd66cd76b6ca96e1ef5e1c15af5 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Sun, 6 Sep 2015 06:57:25 -0400 Subject: #633 dix suburl --- public/config.codekit | 15 ++------------- public/js/gogs.js | 6 ++++-- public/ng/js/gogs.js | 2 +- templates/base/head.tmpl | 1 + templates/repo/issue/view_content.tmpl | 6 +++--- 5 files changed, 11 insertions(+), 19 deletions(-) (limited to 'public/config.codekit') diff --git a/public/config.codekit b/public/config.codekit index eb125866..430de03f 100644 --- a/public/config.codekit +++ b/public/config.codekit @@ -606,8 +606,8 @@ }, "\/ng\/js\/gogs.js": { "fileType": 64, - "ignore": 0, - "ignoreWasSetByUser": 0, + "ignore": 1, + "ignoreWasSetByUser": 1, "inputAbbreviatedPath": "\/ng\/js\/gogs.js", "outputAbbreviatedPath": "\/ng\/js\/min\/gogs-min.js", "outputPathIsOutsideProject": 0, @@ -670,17 +670,6 @@ "outputStyle": 1, "syntaxCheckerStyle": 1 }, - "\/ng\/js\/min\/gogs-min.js": { - "fileType": 64, - "ignore": 1, - "ignoreWasSetByUser": 0, - "inputAbbreviatedPath": "\/ng\/js\/min\/gogs-min.js", - "outputAbbreviatedPath": "\/ng\/js\/min\/min\/gogs-min-min.js", - "outputPathIsOutsideProject": 0, - "outputPathIsSetByUser": 0, - "outputStyle": 1, - "syntaxCheckerStyle": 1 - }, "\/ng\/js\/utils\/preview.js": { "fileType": 64, "ignore": 1, diff --git a/public/js/gogs.js b/public/js/gogs.js index 982f976e..f8d9de66 100644 --- a/public/js/gogs.js +++ b/public/js/gogs.js @@ -1,6 +1,7 @@ 'use strict'; var csrf; +var suburl; function initCommentPreviewTab($form) { var $tab_menu = $form.find('.tabular.menu'); @@ -407,6 +408,7 @@ function initWebhook() { $(document).ready(function () { csrf = $('meta[name=_csrf]').attr("content"); + suburl = $('meta[name=_suburl]').attr("content"); // Show exact time $('.time-since').each(function () { @@ -485,9 +487,9 @@ $(document).ready(function () { // Emojify emojify.setConfig({ - img_dir:'/img/emoji' + img_dir: suburl + '/img/emoji' }); - $('.markdown').each(function(){ + $('.emojify').each(function () { emojify.run($(this)[0]); }); diff --git a/public/ng/js/gogs.js b/public/ng/js/gogs.js index 142c6d66..e4a0afe9 100644 --- a/public/ng/js/gogs.js +++ b/public/ng/js/gogs.js @@ -937,7 +937,7 @@ $(document).ready(function () { homepage(); emojify.setConfig({ - img_dir:'/img/emoji' + img_dir: Gogs.AppSubUrl + '/img/emoji' }); emojify.run(); diff --git a/templates/base/head.tmpl b/templates/base/head.tmpl index 17c26ea2..2a5e8789 100644 --- a/templates/base/head.tmpl +++ b/templates/base/head.tmpl @@ -8,6 +8,7 @@ + {{if .GoGetImport}} {{end}} diff --git a/templates/repo/issue/view_content.tmpl b/templates/repo/issue/view_content.tmpl index c15b82a0..41b46c58 100644 --- a/templates/repo/issue/view_content.tmpl +++ b/templates/repo/issue/view_content.tmpl @@ -25,7 +25,7 @@
-
+
{{if .Issue.RenderedContent}} {{.Issue.RenderedContent|Str2html}} {{else}} @@ -77,7 +77,7 @@
-
+
{{if .RenderedContent}} {{.RenderedContent|Str2html}} {{else}} @@ -317,7 +317,7 @@
-
+
{{$.i18n.Tr "repo.release.loading"}}
-- cgit v1.2.3 From aa67de910af6246a6dc9ad96c56f789e282e8403 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Sun, 6 Sep 2015 08:54:08 -0400 Subject: fix #1558 --- models/org.go | 23 +++++++++-------- models/repo.go | 6 ++++- models/user.go | 68 ++++++++++++++++++++++++++++----------------------- public/config.codekit | 11 +++++++++ routers/repo/repo.go | 3 ++- 5 files changed, 67 insertions(+), 44 deletions(-) (limited to 'public/config.codekit') diff --git a/models/org.go b/models/org.go index dfd720fa..ac458c78 100644 --- a/models/org.go +++ b/models/org.go @@ -212,7 +212,6 @@ func GetOrganizations(num, offset int) ([]*User, error) { return orgs, err } -// TODO: need some kind of mechanism to record failure. // DeleteOrganization completely and permanently deletes everything of organization. func DeleteOrganization(org *User) (err error) { if err := DeleteUser(org); err != nil { @@ -220,23 +219,23 @@ func DeleteOrganization(org *User) (err error) { } sess := x.NewSession() - defer sess.Close() + defer sessionRelease(sess) if err = sess.Begin(); err != nil { return err } - if _, err = sess.Delete(&Team{OrgID: org.Id}); err != nil { - sess.Rollback() - return err + if err = deleteBeans(sess, + &Team{OrgID: org.Id}, + &OrgUser{OrgID: org.Id}, + &TeamUser{OrgID: org.Id}, + ); err != nil { + return fmt.Errorf("deleteBeans: %v", err) } - if _, err = sess.Delete(&OrgUser{OrgID: org.Id}); err != nil { - sess.Rollback() - return err - } - if _, err = sess.Delete(&TeamUser{OrgID: org.Id}); err != nil { - sess.Rollback() - return err + + if err = deleteUser(sess, org); err != nil { + return fmt.Errorf("deleteUser: %v", err) } + return sess.Commit() } diff --git a/models/repo.go b/models/repo.go index d0fa7c8f..2835b6f9 100644 --- a/models/repo.go +++ b/models/repo.go @@ -1190,9 +1190,13 @@ func GetRecentUpdatedRepositories(page int) (repos []*Repository, err error) { Where("is_private=?", false).Limit(setting.ExplorePagingNum).Desc("updated").Find(&repos) } +func getRepositoryCount(e Engine, u *User) (int64, error) { + return x.Count(&Repository{OwnerID: u.Id}) +} + // GetRepositoryCount returns the total number of repositories of user. func GetRepositoryCount(u *User) (int64, error) { - return x.Count(&Repository{OwnerID: u.Id}) + return getRepositoryCount(x, u) } type SearchOption struct { diff --git a/models/user.go b/models/user.go index 423b30f1..beea155a 100644 --- a/models/user.go +++ b/models/user.go @@ -284,9 +284,13 @@ func (u *User) IsPublicMember(orgId int64) bool { return IsPublicMembership(orgId, u.Id) } +func (u *User) getOrganizationCount(e Engine) (int64, error) { + return e.Where("uid=?", u.Id).Count(new(OrgUser)) +} + // GetOrganizationCount returns count of membership of organization of user. func (u *User) GetOrganizationCount() (int64, error) { - return x.Where("uid=?", u.Id).Count(new(OrgUser)) + return u.getOrganizationCount(x) } // GetRepositories returns all repositories that user owns, including private repositories. @@ -525,8 +529,8 @@ func UpdateUser(u *User) error { return updateUser(x, u) } -// DeleteBeans deletes all given beans, beans should contain delete conditions. -func DeleteBeans(e Engine, beans ...interface{}) (err error) { +// deleteBeans deletes all given beans, beans should contain delete conditions. +func deleteBeans(e Engine, beans ...interface{}) (err error) { for i := range beans { if _, err = e.Delete(beans[i]); err != nil { return err @@ -536,14 +540,12 @@ func DeleteBeans(e Engine, beans ...interface{}) (err error) { } // FIXME: need some kind of mechanism to record failure. HINT: system notice -// DeleteUser completely and permanently deletes everything of a user, -// but issues/comments/pulls will be kept and shown as someone has been deleted. -func DeleteUser(u *User) error { +func deleteUser(e *xorm.Session, u *User) error { // Note: A user owns any repository or belongs to any organization // cannot perform delete operation. // Check ownership of repository. - count, err := GetRepositoryCount(u) + count, err := getRepositoryCount(e, u) if err != nil { return fmt.Errorf("GetRepositoryCount: %v", err) } else if count > 0 { @@ -551,26 +553,20 @@ func DeleteUser(u *User) error { } // Check membership of organization. - count, err = u.GetOrganizationCount() + count, err = u.getOrganizationCount(e) if err != nil { return fmt.Errorf("GetOrganizationCount: %v", err) } else if count > 0 { return ErrUserHasOrgs{UID: u.Id} } - sess := x.NewSession() - defer sessionRelease(sess) - if err = sess.Begin(); err != nil { - return err - } - // ***** START: Watch ***** watches := make([]*Watch, 0, 10) - if err = x.Find(&watches, &Watch{UserID: u.Id}); err != nil { + if err = e.Find(&watches, &Watch{UserID: u.Id}); err != nil { return fmt.Errorf("get all watches: %v", err) } for i := range watches { - if _, err = sess.Exec("UPDATE `repository` SET num_watches=num_watches-1 WHERE id=?", watches[i].RepoID); err != nil { + if _, err = e.Exec("UPDATE `repository` SET num_watches=num_watches-1 WHERE id=?", watches[i].RepoID); err != nil { return fmt.Errorf("decrease repository watch number[%d]: %v", watches[i].RepoID, err) } } @@ -578,11 +574,11 @@ func DeleteUser(u *User) error { // ***** START: Star ***** stars := make([]*Star, 0, 10) - if err = x.Find(&stars, &Star{UID: u.Id}); err != nil { + if err = e.Find(&stars, &Star{UID: u.Id}); err != nil { return fmt.Errorf("get all stars: %v", err) } for i := range stars { - if _, err = sess.Exec("UPDATE `repository` SET num_stars=num_stars-1 WHERE id=?", stars[i].RepoID); err != nil { + if _, err = e.Exec("UPDATE `repository` SET num_stars=num_stars-1 WHERE id=?", stars[i].RepoID); err != nil { return fmt.Errorf("decrease repository star number[%d]: %v", stars[i].RepoID, err) } } @@ -590,17 +586,17 @@ func DeleteUser(u *User) error { // ***** START: Follow ***** followers := make([]*Follow, 0, 10) - if err = x.Find(&followers, &Follow{UserID: u.Id}); err != nil { + if err = e.Find(&followers, &Follow{UserID: u.Id}); err != nil { return fmt.Errorf("get all followers: %v", err) } for i := range followers { - if _, err = sess.Exec("UPDATE `user` SET num_followers=num_followers-1 WHERE id=?", followers[i].UserID); err != nil { + if _, err = e.Exec("UPDATE `user` SET num_followers=num_followers-1 WHERE id=?", followers[i].UserID); err != nil { return fmt.Errorf("decrease user follower number[%d]: %v", followers[i].UserID, err) } } // ***** END: Follow ***** - if err = DeleteBeans(sess, + if err = deleteBeans(e, &Oauth2{Uid: u.Id}, &AccessToken{UID: u.Id}, &Collaboration{UserID: u.Id}, @@ -612,34 +608,30 @@ func DeleteUser(u *User) error { &IssueUser{UID: u.Id}, &EmailAddress{Uid: u.Id}, ); err != nil { - return fmt.Errorf("DeleteBeans: %v", err) + return fmt.Errorf("deleteUser: %v", err) } // ***** START: PublicKey ***** keys := make([]*PublicKey, 0, 10) - if err = sess.Find(&keys, &PublicKey{OwnerID: u.Id}); err != nil { + if err = e.Find(&keys, &PublicKey{OwnerID: u.Id}); err != nil { return fmt.Errorf("get all public keys: %v", err) } for _, key := range keys { - if err = deletePublicKey(sess, key.ID); err != nil { + if err = deletePublicKey(e, key.ID); err != nil { return fmt.Errorf("deletePublicKey: %v", err) } } // ***** END: PublicKey ***** // Clear assignee. - if _, err = sess.Exec("UPDATE `issue` SET assignee_id=0 WHERE assignee_id=?", u.Id); err != nil { + if _, err = e.Exec("UPDATE `issue` SET assignee_id=0 WHERE assignee_id=?", u.Id); err != nil { return fmt.Errorf("clear assignee: %v", err) } - if _, err = sess.Id(u.Id).Delete(new(User)); err != nil { + if _, err = e.Id(u.Id).Delete(new(User)); err != nil { return fmt.Errorf("Delete: %v", err) } - if err = sess.Commit(); err != nil { - return fmt.Errorf("Commit: %v", err) - } - // FIXME: system notice // Note: There are something just cannot be roll back, // so just keep error logs of those operations. @@ -651,6 +643,22 @@ func DeleteUser(u *User) error { return nil } +// DeleteUser completely and permanently deletes everything of a user, +// but issues/comments/pulls will be kept and shown as someone has been deleted. +func DeleteUser(u *User) (err error) { + sess := x.NewSession() + defer sessionRelease(sess) + if err = sess.Begin(); err != nil { + return err + } + + if err = deleteUser(sess, u); err != nil { + return fmt.Errorf("deleteUser: %v", err) + } + + return sess.Commit() +} + // DeleteInactivateUsers deletes all inactivate users and email addresses. func DeleteInactivateUsers() (err error) { users := make([]*User, 0, 10) diff --git a/public/config.codekit b/public/config.codekit index 430de03f..63f5efa4 100644 --- a/public/config.codekit +++ b/public/config.codekit @@ -670,6 +670,17 @@ "outputStyle": 1, "syntaxCheckerStyle": 1 }, + "\/ng\/js\/min\/gogs-min.js": { + "fileType": 64, + "ignore": 1, + "ignoreWasSetByUser": 0, + "inputAbbreviatedPath": "\/ng\/js\/min\/gogs-min.js", + "outputAbbreviatedPath": "\/ng\/js\/min\/min\/gogs-min-min.js", + "outputPathIsOutsideProject": 0, + "outputPathIsSetByUser": 0, + "outputStyle": 1, + "syntaxCheckerStyle": 1 + }, "\/ng\/js\/utils\/preview.js": { "fileType": 64, "ignore": 1, diff --git a/routers/repo/repo.go b/routers/repo/repo.go index 329bc933..b9cc98a2 100644 --- a/routers/repo/repo.go +++ b/routers/repo/repo.go @@ -198,7 +198,8 @@ func MigratePost(ctx *middleware.Context, form auth.MigrateRepoForm) { } if strings.Contains(err.Error(), "Authentication failed") || - strings.Contains(err.Error(), " not found") { + strings.Contains(err.Error(), " not found") || + strings.Contains(err.Error(), "could not read Username") { ctx.Data["Err_Auth"] = true ctx.RenderWithErr(ctx.Tr("form.auth_failed", strings.Replace(err.Error(), ":"+form.AuthPassword+"@", ":@", 1)), MIGRATE, &form) return -- cgit v1.2.3