summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorLauris BH <lauris@nix.lv>2017-10-15 02:17:39 +0300
committerGitHub <noreply@github.com>2017-10-15 02:17:39 +0300
commitf42dbdbae59600266d03357f9693c659adc9cab3 (patch)
tree90b42df32a5f064d9055fec37c909aa83c432dcc /modules
parent8863e74f2aa7150605712eb21468b6f1305289f7 (diff)
downloadgitea-f42dbdbae59600266d03357f9693c659adc9cab3.tar.gz
gitea-f42dbdbae59600266d03357f9693c659adc9cab3.zip
Add Activity page to repository (#2674)
* Add Activity page to repository * Add request data for activity * Add issue data for activity * Add user unit right checks * Add releases to activity * Log repository unit loading error
Diffstat (limited to 'modules')
-rw-r--r--modules/context/repo.go11
-rw-r--r--modules/templates/helper.go58
2 files changed, 68 insertions, 1 deletions
diff --git a/modules/context/repo.go b/modules/context/repo.go
index ce65bfd045..788588f8e4 100644
--- a/modules/context/repo.go
+++ b/modules/context/repo.go
@@ -573,7 +573,7 @@ func LoadRepoUnits() macaron.Handler {
}
}
-// CheckUnit will check whether
+// CheckUnit will check whether unit type is enabled
func CheckUnit(unitType models.UnitType) macaron.Handler {
return func(ctx *Context) {
if !ctx.Repo.Repository.UnitEnabled(unitType) {
@@ -582,6 +582,15 @@ func CheckUnit(unitType models.UnitType) macaron.Handler {
}
}
+// CheckAnyUnit will check whether any of the unit types are enabled
+func CheckAnyUnit(unitTypes ...models.UnitType) macaron.Handler {
+ return func(ctx *Context) {
+ if !ctx.Repo.Repository.AnyUnitEnabled(unitTypes...) {
+ ctx.Handle(404, "CheckAnyUnit", fmt.Errorf("%s: %v", ctx.Tr("units.error.unit_not_allowed"), unitTypes))
+ }
+ }
+}
+
// GitHookService checks if repository Git hooks service has been enabled.
func GitHookService() macaron.Handler {
return func(ctx *Context) {
diff --git a/modules/templates/helper.go b/modules/templates/helper.go
index 0d307f4e9d..34881b788a 100644
--- a/modules/templates/helper.go
+++ b/modules/templates/helper.go
@@ -158,6 +158,7 @@ func NewFuncMap() []template.FuncMap {
"DisableGitHooks": func() bool {
return setting.DisableGitHooks
},
+ "TrN": TrN,
}}
}
@@ -342,3 +343,60 @@ func DiffLineTypeToStr(diffType int) string {
}
return "same"
}
+
+// Language specific rules for translating plural texts
+var trNLangRules = map[string]func(int64) int{
+ "en-US": func(cnt int64) int {
+ if cnt == 1 {
+ return 0
+ }
+ return 1
+ },
+ "lv-LV": func(cnt int64) int {
+ if cnt%10 == 1 && cnt%100 != 11 {
+ return 0
+ }
+ return 1
+ },
+ "ru-RU": func(cnt int64) int {
+ if cnt%10 == 1 && cnt%100 != 11 {
+ return 0
+ }
+ return 1
+ },
+ "zh-CN": func(cnt int64) int {
+ return 0
+ },
+ "zh-HK": func(cnt int64) int {
+ return 0
+ },
+ "zh-TW": func(cnt int64) int {
+ return 0
+ },
+}
+
+// TrN returns key to be used for plural text translation
+func TrN(lang string, cnt interface{}, key1, keyN string) string {
+ var c int64
+ if t, ok := cnt.(int); ok {
+ c = int64(t)
+ } else if t, ok := cnt.(int16); ok {
+ c = int64(t)
+ } else if t, ok := cnt.(int32); ok {
+ c = int64(t)
+ } else if t, ok := cnt.(int64); ok {
+ c = t
+ } else {
+ return keyN
+ }
+
+ ruleFunc, ok := trNLangRules[lang]
+ if !ok {
+ ruleFunc = trNLangRules["en-US"]
+ }
+
+ if ruleFunc(c) == 0 {
+ return key1
+ }
+ return keyN
+}