diff options
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | README_ZH.md | 2 | ||||
-rw-r--r-- | conf/locale/locale_en-US.ini | 76 | ||||
-rw-r--r-- | conf/locale/locale_zh-CN.ini | 76 | ||||
-rw-r--r-- | gogs.go | 2 | ||||
-rw-r--r-- | modules/setting/setting.go | 2 | ||||
-rw-r--r-- | routers/admin/admin.go | 32 | ||||
-rw-r--r-- | templates/.VERSION | 2 | ||||
-rw-r--r-- | templates/admin/config.tmpl | 454 | ||||
-rw-r--r-- | templates/admin/monitor.tmpl | 74 | ||||
-rw-r--r-- | templates/admin/monitor/cron.tmpl | 40 | ||||
-rw-r--r-- | templates/admin/monitor/process.tmpl | 38 |
12 files changed, 469 insertions, 331 deletions
@@ -5,7 +5,7 @@ Gogs(Go Git Service) is a painless self-hosted Git Service written in Go. ![Demo](http://gowalker.org/public/gogs_demo.gif) -##### Current version: 0.4.8 Beta +##### Current version: 0.4.9 Beta ### NOTICES diff --git a/README_ZH.md b/README_ZH.md index 3bf67f38d8..b830d41643 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -5,7 +5,7 @@ Gogs(Go Git Service) 是一个基于 Go 语言的自助 Git 服务。 ![Demo](http://gowalker.org/public/gogs_demo.gif) -##### 当前版本:0.4.8 Beta +##### 当前版本:0.4.9 Beta ## 开发目的 diff --git a/conf/locale/locale_en-US.ini b/conf/locale/locale_en-US.ini index f14958e4b6..c69f68c311 100644 --- a/conf/locale/locale_en-US.ini +++ b/conf/locale/locale_en-US.ini @@ -404,6 +404,80 @@ auths.update_success = Authorization setting has been successfully updated. auths.update = Update Authorization Setting auths.delete = Delete This Authorization +config.server_config = Server Configuration +config.app_name = Application Name +config.app_ver = Application Version +config.app_url = Application URL +config.domain = Domain +config.offline_mode = Offline Mode +config.disable_router_log = Disable Router Log +config.run_user = Run User +config.run_mode = Run Mode +config.repo_root_path = Repository Root Path +config.static_file_root_path = Static File Root Path +config.log_file_root_path = Log File Root Path +config.script_type = Script Type +config.reverse_auth_user = Reverse Authentication User +config.db_config = Database Configuration +config.db_type = Type +config.db_host = Host +config.db_name = Name +config.db_user = User +config.db_ssl_mode = SSL Mode +config.db_ssl_mode_helper = (for "postgres" only) +config.db_path = Path +config.db_path_helper = (for "sqlite3" only) +config.service_config = Service Configuration +config.register_email_confirm = Register Email Confirmation +config.disable_register = Disable Registration +config.require_sign_in_view = Require Sign In View +config.mail_notify = Mail Notification +config.enable_cache_avatar = Enable Cache Avatar +config.active_code_lives = Active Code Lives +config.reset_password_code_lives = Reset Password Code Lives +config.webhook_config = Webhook Configuration +config.task_interval = Task Interval +config.deliver_timeout = Deliver Timeout +config.mailer_config = Mailer Configuration +config.mailer_enabled = Enabled +config.mailer_name = Name +config.mailer_host = Host +config.mailer_user = User +config.oauth_config = OAuth Configuration +config.oauth_enabled = Enabled +config.cache_config = Cache Configuration +config.cache_adapter = Cache Adapter +config.cache_interval = Cache Interval +config.cache_conn = Cache Connection +config.session_config = Session Configuration +config.session_provider = Session Provider +config.provider_config = Provider Config +config.cookie_name = Cookie Name +config.enable_set_cookie = Enable Set Cookie +config.gc_interval_time = GC Interval Time +config.session_life_time = Session Life Time +config.https_only = HTTPS Only +config.cookie_life_time = Cookie Life Time +config.session_hash_function = Session ID Hash Function +config.session_hash_key = Session ID Hash Key +config.picture_config = Picture Configuration +config.picture_service = Picture Service +config.disable_gravatar = Disable Gravatar +config.log_config = Log Configuration +config.log_mode = Log Mode +config.log_config = Log Config + +monitor.cron = Cron Tasks +monitor.name = Name +monitor.schedule = Schedule +monitor.next = Next Time +monitor.previous = Previous Time +monitor.execute_times = Execute Times +monitor.process = Running Processes +monitor.desc = Description +monitor.start = Start Time +monitor.execute_time = Execution Time + [action] create_repo = created repository <a href="/%s">%s</a> commit_repo = pushed to <a href="/%s/src/%s">%s</a> at <a href="/%s">%s</a> @@ -428,6 +502,8 @@ days = %d days %s weeks = %d weeks %s months = %d months %s years = %d years %s +raw_seconds = seconds +raw_minutes = minutes diff --git a/conf/locale/locale_zh-CN.ini b/conf/locale/locale_zh-CN.ini index 310bc8c968..e39feefde7 100644 --- a/conf/locale/locale_zh-CN.ini +++ b/conf/locale/locale_zh-CN.ini @@ -403,6 +403,80 @@ auths.update_success = 授权认证设置更新成功! auths.update = 更新授权认证信息 auths.delete = 删除该授权认证 +config.server_config = 服务器配置 +config.app_name = 应用名称 +config.app_ver = 应用版本 +config.app_url = 应用 URL +config.domain = 应用域名 +config.offline_mode = 离线模式 +config.disable_router_log = 关闭路由日志 +config.run_user = 运行用户 +config.run_mode = 运行模式 +config.repo_root_path = 仓库根目录 +config.static_file_root_path = 静态文件根目录 +config.log_file_root_path = 日志文件根目录 +config.script_type = 脚本类型 +config.reverse_auth_user = 反向代理认证 +config.db_config = 数据库配置 +config.db_type = 数据库类型 +config.db_host = 主机地址 +config.db_name = 数据库名称 +config.db_user = 连接用户 +config.db_ssl_mode = SSL 模式 +config.db_ssl_mode_helper = (仅限 "postgres" 使用) +config.db_path = 数据库路径 +config.db_path_helper = (仅限 "sqlite3" 使用) +config.service_config = 服务配置 +config.register_email_confirm = 注册邮件确认 +config.disable_register = 关闭注册功能 +config.require_sign_in_view = 强制登录浏览 +config.mail_notify = 邮件通知提醒 +config.enable_cache_avatar = 开启缓存头像 +config.active_code_lives = 激活用户链接有效期 +config.reset_password_code_lives = 重置密码链接有效期 +config.webhook_config = Web 钩子配置 +config.task_interval = 任务周期 +config.deliver_timeout = 推送超时 +config.mailer_config = 邮件配置 +config.mailer_enabled = 启用服务 +config.mailer_name = 发送者名称 +config.mailer_host = 邮件主机地址 +config.mailer_user = 发送者帐号 +config.oauth_config = 社交帐号配置 +config.oauth_enabled = 启用服务 +config.cache_config = Cache 配置 +config.cache_adapter = Cache 适配器 +config.cache_interval = Cache 周期 +config.cache_conn = Cache 连接字符串 +config.session_config = Session 配置 +config.session_provider = Session 提供者 +config.provider_config = 提供者配置 +config.cookie_name = Cookie 名称 +config.enable_set_cookie = 启用设置 Cookie +config.gc_interval_time = GC 周期 +config.session_life_time = Session 生命周期 +config.https_only = 仅限 HTTPS +config.cookie_life_time = Cookie 生命周期 +config.session_hash_function = Session ID 哈希函数 +config.session_hash_key = Session ID 哈希健值 +config.picture_config = 图片配置 +config.picture_service = 图片服务 +config.disable_gravatar = 禁用 Gravatar 头像 +config.log_config = 日志配置 +config.log_mode = 日志模式 +config.log_config = 日志配置 + +monitor.cron = Cron 任务 +monitor.name = 任务名称 +monitor.schedule = 任务安排 +monitor.next = 下次执行时间 +monitor.previous = 上次执行时间 +monitor.execute_times = 执行次数 +monitor.process = 运行中进程 +monitor.desc = 进程描述 +monitor.start = 开始时间 +monitor.execute_time = 已执行时间 + [action] create_repo = 创建了仓库 <a href="/%s">%s</a> commit_repo = 推送了 <a href="/%s/src/%s">%s</a> 分支的代码到 <a href="/%s">%s</a> @@ -427,6 +501,8 @@ days = %d 天%s weeks = %d 周%s months = %d 月%s years = %d 年%s +raw_seconds = 秒 +raw_minutes = 分钟 @@ -17,7 +17,7 @@ import ( "github.com/gogits/gogs/modules/setting" ) -const APP_VER = "0.4.8.0829 Alpha" +const APP_VER = "0.4.9.0830 Alpha" func init() { runtime.GOMAXPROCS(runtime.NumCPU()) diff --git a/modules/setting/setting.go b/modules/setting/setting.go index deb1651895..ebc1020a33 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -371,7 +371,7 @@ func newSessionService() { SessionConfig.Maxlifetime = Cfg.MustInt64("session", "SESSION_LIFE_TIME", 86400) SessionConfig.SessionIDHashFunc = Cfg.MustValueRange("session", "SESSION_ID_HASHFUNC", "sha1", []string{"sha1", "sha256", "md5"}) - SessionConfig.SessionIDHashKey = Cfg.MustValue("session", "SESSION_ID_HASHKEY") + SessionConfig.SessionIDHashKey = Cfg.MustValue("session", "SESSION_ID_HASHKEY", string(com.RandomCreateBytes(16))) if SessionProvider == "file" { os.MkdirAll(path.Dir(SessionConfig.ProviderConfig), os.ModePerm) diff --git a/routers/admin/admin.go b/routers/admin/admin.go index b2c932c98f..756d76c0f7 100644 --- a/routers/admin/admin.go +++ b/routers/admin/admin.go @@ -22,10 +22,9 @@ import ( ) const ( - DASHBOARD base.TplName = "admin/dashboard" - CONFIG base.TplName = "admin/config" - MONITOR_PROCESS base.TplName = "admin/monitor/process" - MONITOR_CRON base.TplName = "admin/monitor/cron" + DASHBOARD base.TplName = "admin/dashboard" + CONFIG base.TplName = "admin/config" + MONITOR base.TplName = "admin/monitor" ) var ( @@ -155,8 +154,9 @@ func Dashboard(ctx *middleware.Context) { } func Config(ctx *middleware.Context) { - ctx.Data["Title"] = "Server Configuration" - ctx.Data["PageIsConfig"] = true + ctx.Data["Title"] = ctx.Tr("admin.users") + ctx.Data["PageIsAdmin"] = true + ctx.Data["PageIsAdminConfig"] = true ctx.Data["AppUrl"] = setting.AppUrl ctx.Data["Domain"] = setting.Domain @@ -212,18 +212,10 @@ func Config(ctx *middleware.Context) { } func Monitor(ctx *middleware.Context) { - ctx.Data["Title"] = "Monitoring Center" - ctx.Data["PageIsMonitor"] = true - - tab := ctx.Query("tab") - switch tab { - case "process": - ctx.Data["PageIsMonitorProcess"] = true - ctx.Data["Processes"] = process.Processes - ctx.HTML(200, MONITOR_PROCESS) - default: - ctx.Data["PageIsMonitorCron"] = true - ctx.Data["Entries"] = cron.ListEntries() - ctx.HTML(200, MONITOR_CRON) - } + ctx.Data["Title"] = ctx.Tr("admin.monitor") + ctx.Data["PageIsAdmin"] = true + ctx.Data["PageIsAdminMonitor"] = true + ctx.Data["Processes"] = process.Processes + ctx.Data["Entries"] = cron.ListEntries() + ctx.HTML(200, MONITOR) } diff --git a/templates/.VERSION b/templates/.VERSION index 6b8f7aafd2..681da0e6de 100644 --- a/templates/.VERSION +++ b/templates/.VERSION @@ -1 +1 @@ -0.4.8.0829 Alpha
\ No newline at end of file +0.4.9.0830 Alpha
\ No newline at end of file diff --git a/templates/admin/config.tmpl b/templates/admin/config.tmpl index 34e710bf62..e5a210c200 100644 --- a/templates/admin/config.tmpl +++ b/templates/admin/config.tmpl @@ -1,232 +1,230 @@ -{{template "base/head" .}} -{{template "base/navbar" .}} -<div id="body" class="container" data-page="admin"> - {{template "admin/nav" .}} - <div id="admin-container" class="col-md-10"> - <div class="panel panel-default"> - <div class="panel-heading"> - Server Configuration - </div> - - <div class="panel-body"> - <dl class="dl-horizontal admin-dl-horizontal"> - <dt>Application Name</dt> - <dd>{{AppName}}</dd> - <dt>Application Version</dt> - <dd>{{AppVer}}</dd> - <dt>Application URL</dt> - <dd>{{.AppUrl}}</dd> - <dt>Domain</dt> - <dd>{{.Domain}}</dd> - <dt>Offline Mode</dt> - <dd><i class="fa fa{{if .OfflineMode}}-check{{end}}-square-o"></i></dd> - <dt>Disable Router Log</dt> - <dd><i class="fa fa{{if .DisableRouterLog}}-check{{end}}-square-o"></i></dd> - <hr/> - <dt>Run User</dt> - <dd>{{.RunUser}}</dd> - <dt>Run Mode</dt> - <dd>{{.RunMode}}</dd> - <hr/> - <dt>Repository Root Path</dt> - <dd>{{.RepoRootPath}}</dd> - <dt>Static File Root Path</dt> - <dd>{{.StaticRootPath}}</dd> - <dt>Log File Root Path</dt> - <dd>{{.LogRootPath}}</dd> - <dt>Script Type</dt> - <dd>{{.ScriptType}}</dd> - <dt>Reverse Authentication User</dt> - <dd>{{.ReverseProxyAuthUser}}</dd> - </dl> - </div> - </div> - - <div class="panel panel-default"> - <div class="panel-heading"> - Database Configuration - </div> - - <div class="panel-body"> - <dl class="dl-horizontal admin-dl-horizontal"> - <dt>Type</dt> - <dd>{{.DbCfg.Type}}</dd> - <dt>Host</dt> - <dd>{{.DbCfg.Host}}</dd> - <dt>Name</dt> - <dd>{{.DbCfg.Name}}</dd> - <dt>User</dt> - <dd>{{.DbCfg.User}}</dd> - <dt>SslMode</dt> - <dd>{{.DbCfg.SslMode}} (for "postgres" only)</dd> - <dt>Path</dt> - <dd>{{.DbCfg.Path}} (for "sqlite3" only)</dd> - </dl> - </div> - </div> - - <div class="panel panel-default"> - <div class="panel-heading"> - Service Configuration - </div> - - <div class="panel-body"> - <dl class="dl-horizontal admin-dl-horizontal"> - <dt>Register Email Confirmation</dt> - <dd><i class="fa fa{{if .Service.RegisterEmailConfirm}}-check{{end}}-square-o"></i></dd> - <dt>Disable Registration</dt> - <dd><i class="fa fa{{if .Service.DisableRegistration}}-check{{end}}-square-o"></i></dd> - <dt>Require Sign In View</dt> - <dd><i class="fa fa{{if .Service.RequireSignInView}}-check{{end}}-square-o"></i></dd> - <dt>Mail Notification</dt> - <dd><i class="fa fa{{if .Service.EnableNotifyMail}}-check{{end}}-square-o"></i></dd> - <dt>Enable Cache Avatar</dt> - <dd><i class="fa fa{{if .Service.EnableCacheAvatar}}-check{{end}}-square-o"></i></dd> - <hr/> - <dt>Active Code Lives</dt> - <dd>{{.Service.ActiveCodeLives}} minutes</dd> - <dt>Reset Password Code Lives</dt> - <dd>{{.Service.ResetPwdCodeLives}} minutes</dd> - </dl> - </div> - </div> - - <div class="panel panel-default"> - <div class="panel-heading"> - Webhook Configuration - </div> - - <div class="panel-body"> - <dl class="dl-horizontal admin-dl-horizontal"> - <dt>Task Interval</dt> - <dd>{{.WebhookTaskInterval}} minutes</dd> - <dt>Deliver Timeout</dt> - <dd>{{.WebhookDeliverTimeout}} seconds</dd> - </dl> - </div> - </div> - - <div class="panel panel-default"> - <div class="panel-heading"> - Mailer Configuration - </div> - - <div class="panel-body"> - <dl class="dl-horizontal admin-dl-horizontal"> - <dt>Enabled</dt> - <dd><i class="fa fa{{if .MailerEnabled}}-check{{end}}-square-o"></i></dd> - {{if .MailerEnabled}}<dt>Name</dt> - <dd>{{.Mailer.Name}}</dd> - <dt>Host</dt> - <dd>{{.Mailer.Host}}</dd> - <dt>User</dt> - <dd>{{.Mailer.User}}</dd>{{end}} - </dl> - </div> - </div> - - <div class="panel panel-default"> - <div class="panel-heading"> - OAuth Configuration - </div> - - <div class="panel-body"> - <dl class="dl-horizontal admin-dl-horizontal"> - <dt>Enabled</dt> - <dd><i class="fa fa{{if .OauthEnabled}}-check{{end}}-square-o"></i></dd> - {{if .OauthEnabled}}<dt>GitHub</dt> - <dd><i class="fa fa{{if .Oauther.GitHub}}-check{{end}}-square-o"></i></dd> - <dt>Google</dt> - <dd><i class="fa fa{{if .Oauther.Google}}-check{{end}}-square-o"></i></dd> - <dt>Tencent QQ</dt> - <dd><i class="fa fa{{if .Oauther.Tencent}}-check{{end}}-square-o"></i></dd> - <dt>Weibo</dt> - <dd><i class="fa fa{{if .Oauther.Weibo}}-check{{end}}-square-o"></i></dd> - {{end}} - </dl> - </div> - </div> - - <div class="panel panel-default"> - <div class="panel-heading"> - Cache Configuration - </div> - - <div class="panel-body"> - <dl class="dl-horizontal admin-dl-horizontal"> - <dt>Cache Adapter</dt> - <dd>{{.CacheAdapter}}</dd> - <dt>Cache Config</dt> - <dd><div style="padding-top: 5px;"><pre>{{.CacheConfig}}</pre></div></dd> - </dl> - </div> - </div> - - <div class="panel panel-default"> - <div class="panel-heading"> - Session Configuration - </div> - - <div class="panel-body"> - <dl class="dl-horizontal admin-dl-horizontal"> - <dt>Session Provider</dt> - <dd>{{.SessionProvider}}</dd> - <dt>Cookie Name</dt> - <dd>{{.SessionConfig.CookieName}}</dd> - <dt>Enable Set Cookie</dt> - <dd><i class="fa fa{{if .SessionConfig.EnableSetCookie}}-check{{end}}-square-o"></i></dd> - <dt>GC Interval Time</dt> - <dd>{{.SessionConfig.Gclifetime}} seconds</dd> - <dt>Session Life Time</dt> - <dd>{{.SessionConfig.Maxlifetime}} seconds</dd> - <dt>HTTPS Only</dt> - <dd><i class="fa fa{{if .SessionConfig.Secure}}-check{{end}}-square-o"></i></dd> - <dt>Cookie Life Time</dt> - <dd>{{.SessionConfig.CookieLifeTime}} seconds</dd> - <dt>Session ID Hash Function</dt> - <dd>{{.SessionConfig.SessionIDHashFunc}}</dd> - <dt>Session ID Hash Key</dt> - <dd>{{.SessionConfig.SessionIDHashKey}}</dd> - <dt>Provider Config</dt> - <dd>{{.SessionConfig.ProviderConfig}}</dd> - </dl> - </div> - </div> - - <div class="panel panel-default"> - <div class="panel-heading"> - Picture Configuration - </div> - - <div class="panel-body"> - <dl class="dl-horizontal admin-dl-horizontal"> - <dt>Picture Service</dt> - <dd>{{.PictureService}}</dd> - <dt>Disable Gravatar</dt> - <dd><i class="fa fa{{if .DisableGravatar}}-check{{end}}-square-o"></i></dd> - </dl> - </div> - </div> - - <div class="panel panel-default"> - <div class="panel-heading"> - Log Configuration - </div> - - <div class="panel-body"> - <dl class="dl-horizontal admin-dl-horizontal"> - {{range .Loggers}} - <dt>Log Mode</dt> - <dd>{{.Mode}}</dd> - <dt>Log Config</dt> - <dd> - <div style="padding-top: 5px;"><pre>{{.Config}}</pre></div> - </dd> - {{end}} - </dl> - +{{template "ng/base/head" .}} +{{template "ng/base/header" .}} +<div id="admin-wrapper"> + <div id="setting-wrapper" class="main-wrapper"> + <div id="admin-setting" class="container clear"> + {{template "admin/nav" .}} + <div class="grid-4-5 left"> + <div class="setting-content"> + {{template "ng/base/alert" .}} + <div id="setting-content"> + <div class="panel panel-radius"> + <div class="panel-header"> + <strong>{{.i18n.Tr "admin.config.server_config"}}</strong> + </div> + <div class="panel-body"> + <dl class="dl-horizontal admin-dl-horizontal"> + <dt>{{.i18n.Tr "admin.config.app_name"}}</dt> + <dd>{{AppName}}</dd> + <dt>{{.i18n.Tr "admin.config.app_ver"}}</dt> + <dd>{{AppVer}}</dd> + <dt>{{.i18n.Tr "admin.config.app_url"}}</dt> + <dd>{{.AppUrl}}</dd> + <dt>{{.i18n.Tr "admin.config.domain"}}</dt> + <dd>{{.Domain}}</dd> + <dt>{{.i18n.Tr "admin.config.offline_mode"}}</dt> + <dd><i class="fa fa{{if .OfflineMode}}-check{{end}}-square-o"></i></dd> + <dt>{{.i18n.Tr "admin.config.disable_router_log"}}</dt> + <dd><i class="fa fa{{if .DisableRouterLog}}-check{{end}}-square-o"></i></dd> + <hr/> + <dt>{{.i18n.Tr "admin.config.run_user"}}</dt> + <dd>{{.RunUser}}</dd> + <dt>{{.i18n.Tr "admin.config.run_mode"}}</dt> + <dd>{{.RunMode}}</dd> + <hr/> + <dt>{{.i18n.Tr "admin.config.repo_root_path"}}</dt> + <dd>{{.RepoRootPath}}</dd> + <dt>{{.i18n.Tr "admin.config.static_file_root_path"}}</dt> + <dd>{{.StaticRootPath}}</dd> + <dt>{{.i18n.Tr "admin.config.log_file_root_path"}}</dt> + <dd>{{.LogRootPath}}</dd> + <dt>{{.i18n.Tr "admin.config.script_type"}}</dt> + <dd>{{.ScriptType}}</dd> + <dt>{{.i18n.Tr "admin.config.reverse_auth_user"}}</dt> + <dd>{{.ReverseProxyAuthUser}}</dd> + </dl> + </div> + </div> + <br> + <div class="panel panel-radius"> + <div class="panel-header"> + <strong>{{.i18n.Tr "admin.config.db_config"}}</strong> + </div> + <div class="panel-body"> + <dl class="dl-horizontal admin-dl-horizontal"> + <dt>{{.i18n.Tr "admin.config.db_type"}}</dt> + <dd>{{.DbCfg.Type}}</dd> + <dt>{{.i18n.Tr "admin.config.db_host"}}</dt> + <dd>{{.DbCfg.Host}}</dd> + <dt>{{.i18n.Tr "admin.config.db_name"}}</dt> + <dd>{{.DbCfg.Name}}</dd> + <dt>{{.i18n.Tr "admin.config.db_user"}}</dt> + <dd>{{.DbCfg.User}}</dd> + <dt>{{.i18n.Tr "admin.config.db_ssl_mode"}}</dt> + <dd>{{.DbCfg.SslMode}} {{.i18n.Tr "admin.config.db_ssl_mode_helper"}}</dd> + <dt>{{.i18n.Tr "admin.config.db_path"}}</dt> + <dd>{{.DbCfg.Path}} {{.i18n.Tr "admin.config.db_path_helper"}}</dd> + </dl> + </div> + </div> + <br> + <div class="panel panel-radius"> + <div class="panel-header"> + <strong>{{.i18n.Tr "admin.config.service_config"}}</strong> + </div> + <div class="panel-body"> + <dl class="dl-horizontal admin-dl-horizontal"> + <dt>{{.i18n.Tr "admin.config.register_email_confirm"}}</dt> + <dd><i class="fa fa{{if .Service.RegisterEmailConfirm}}-check{{end}}-square-o"></i></dd> + <dt>{{.i18n.Tr "admin.config.disable_register"}}</dt> + <dd><i class="fa fa{{if .Service.DisableRegistration}}-check{{end}}-square-o"></i></dd> + <dt>{{.i18n.Tr "admin.config.require_sign_in_view"}}</dt> + <dd><i class="fa fa{{if .Service.RequireSignInView}}-check{{end}}-square-o"></i></dd> + <dt>{{.i18n.Tr "admin.config.mail_notify"}}</dt> + <dd><i class="fa fa{{if .Service.EnableNotifyMail}}-check{{end}}-square-o"></i></dd> + <dt>{{.i18n.Tr "admin.config.enable_cache_avatar"}}</dt> + <dd><i class="fa fa{{if .Service.EnableCacheAvatar}}-check{{end}}-square-o"></i></dd> + <hr/> + <dt>{{.i18n.Tr "admin.config.active_code_lives"}}</dt> + <dd>{{.Service.ActiveCodeLives}} {{.i18n.Tr "tool.raw_minutes"}}</dd> + <dt>{{.i18n.Tr "admin.config.reset_password_code_lives"}}</dt> + <dd>{{.Service.ResetPwdCodeLives}} {{.i18n.Tr "tool.raw_minutes"}}</dd> + </dl> + </div> + </div> + <br> + <div class="panel panel-radius"> + <div class="panel-header"> + <strong>{{.i18n.Tr "admin.config.webhook_config"}}</strong> + </div> + <div class="panel-body"> + <dl class="dl-horizontal admin-dl-horizontal"> + <dt>{{.i18n.Tr "admin.config.task_interval"}}</dt> + <dd>{{.WebhookTaskInterval}} {{.i18n.Tr "tool.raw_minutes"}}</dd> + <dt>{{.i18n.Tr "admin.config.deliver_timeout"}}</dt> + <dd>{{.WebhookDeliverTimeout}} {{.i18n.Tr "tool.raw_seconds"}}</dd> + </dl> + </div> + </div> + <br> + <div class="panel panel-radius"> + <div class="panel-header"> + <strong>{{.i18n.Tr "admin.config.mailer_config"}}</strong> + </div> + <div class="panel-body"> + <dl class="dl-horizontal admin-dl-horizontal"> + <dt>{{.i18n.Tr "admin.config.mailer_enabled"}}</dt> + <dd><i class="fa fa{{if .MailerEnabled}}-check{{end}}-square-o"></i></dd> + {{if .MailerEnabled}}<dt>{{.i18n.Tr "admin.config.mailer_name"}}</dt> + <dd>{{.Mailer.Name}}</dd> + <dt>{{.i18n.Tr "admin.config.mailer_host"}}</dt> + <dd>{{.Mailer.Host}}</dd> + <dt>{{.i18n.Tr "admin.config.mailer_user"}}</dt> + <dd>{{.Mailer.User}}</dd>{{end}} + </dl> + </div> + </div> + <br> + <div class="panel panel-radius"> + <div class="panel-header"> + <strong>{{.i18n.Tr "admin.config.oauth_config"}}</strong> + </div> + <div class="panel-body"> + <dl class="dl-horizontal admin-dl-horizontal"> + <dt>{{.i18n.Tr "admin.config.oauth_enabled"}}</dt> + <dd><i class="fa fa{{if .OauthEnabled}}-check{{end}}-square-o"></i></dd> + {{if .OauthEnabled}}<dt>GitHub</dt> + <dd><i class="fa fa{{if .Oauther.GitHub}}-check{{end}}-square-o"></i></dd> + <dt>Google</dt> + <dd><i class="fa fa{{if .Oauther.Google}}-check{{end}}-square-o"></i></dd> + <dt>腾讯 QQ</dt> + <dd><i class="fa fa{{if .Oauther.Tencent}}-check{{end}}-square-o"></i></dd> + <dt>新浪微博</dt> + <dd><i class="fa fa{{if .Oauther.Weibo}}-check{{end}}-square-o"></i></dd> + {{end}} + </dl> + </div> + </div> + <br> + <div class="panel panel-radius"> + <div class="panel-header"> + <strong>{{.i18n.Tr "admin.config.cache_config"}}</strong> + </div> + <div class="panel-body"> + <dl class="dl-horizontal admin-dl-horizontal"> + <dt>{{.i18n.Tr "admin.config.cache_adapter"}}</dt> + <dd>{{.CacheAdapter}}</dd> + <dt>{{.i18n.Tr "admin.config.cache_interval"}}</dt> + <dd>{{.CacheInternal}} {{.i18n.Tr "tool.raw_seconds"}}</dd> + <dt>{{.i18n.Tr "admin.config.cache_conn"}}</dt> + <dd><pre>{{.CacheConn}}</pre></dd> + </dl> + </div> + </div> + <br> + <div class="panel panel-radius"> + <div class="panel-header"> + <strong>{{.i18n.Tr "admin.config.session_config"}}</strong> + </div> + <div class="panel-body"> + <dl class="dl-horizontal admin-dl-horizontal"> + <dt>{{.i18n.Tr "admin.config.session_provider"}}</dt> + <dd>{{.SessionProvider}}</dd> + <dt>{{.i18n.Tr "admin.config.provider_config"}}</dt> + <dd><pre>{{.SessionConfig.ProviderConfig}}</pre></dd> + <dt>{{.i18n.Tr "admin.config.cookie_name"}}</dt> + <dd>{{.SessionConfig.CookieName}}</dd> + <dt>{{.i18n.Tr "admin.config.enable_set_cookie"}}</dt> + <dd><i class="fa fa{{if .SessionConfig.EnableSetCookie}}-check{{end}}-square-o"></i></dd> + <dt>{{.i18n.Tr "admin.config.gc_interval_time"}}</dt> + <dd>{{.SessionConfig.Gclifetime}} {{.i18n.Tr "tool.raw_seconds"}}</dd> + <dt>{{.i18n.Tr "admin.config.session_life_time"}}</dt> + <dd>{{.SessionConfig.Maxlifetime}} {{.i18n.Tr "tool.raw_seconds"}}</dd> + <dt>{{.i18n.Tr "admin.config.https_only"}}</dt> + <dd><i class="fa fa{{if .SessionConfig.Secure}}-check{{end}}-square-o"></i></dd> + <dt>{{.i18n.Tr "admin.config.cookie_life_time"}}</dt> + <dd>{{.SessionConfig.CookieLifeTime}} {{.i18n.Tr "tool.raw_seconds"}}</dd> + <dt>{{.i18n.Tr "admin.config.session_hash_function"}}</dt> + <dd>{{.SessionConfig.SessionIDHashFunc}}</dd> + <dt>{{.i18n.Tr "admin.config.session_hash_key"}}</dt> + <dd>{{.SessionConfig.SessionIDHashKey}}</dd> + </dl> + </div> + </div> + <br> + <div class="panel panel-radius"> + <div class="panel-header"> + <strong>{{.i18n.Tr "admin.config.picture_config"}}</strong> + </div> + <div class="panel-body"> + <dl class="dl-horizontal admin-dl-horizontal"> + <dt>{{.i18n.Tr "admin.config.picture_service"}}</dt> + <dd>{{.PictureService}}</dd> + <dt>{{.i18n.Tr "admin.config.disable_gravatar"}}</dt> + <dd><i class="fa fa{{if .DisableGravatar}}-check{{end}}-square-o"></i></dd> + </dl> + </div> + </div> + <br> + <div class="panel panel-radius"> + <div class="panel-header"> + <strong>{{.i18n.Tr "admin.config.log_config"}}</strong> + </div> + <div class="panel-body"> + <dl class="dl-horizontal admin-dl-horizontal"> + {{range .Loggers}} + <dt>{{$.i18n.Tr "admin.config.log_mode"}}</dt> + <dd>{{.Mode}}</dd> + <dt>{{$.i18n.Tr "admin.config.log_config"}}</dt> + <dd><pre>{{.Config}}</pre></dd> + {{end}} + </dl> + </div> + </div> + </div> + </div> </div> </div> </div> </div> -{{template "base/footer" .}}
\ No newline at end of file +{{template "ng/base/footer" .}}
\ No newline at end of file diff --git a/templates/admin/monitor.tmpl b/templates/admin/monitor.tmpl new file mode 100644 index 0000000000..b94f92b664 --- /dev/null +++ b/templates/admin/monitor.tmpl @@ -0,0 +1,74 @@ +{{template "ng/base/head" .}} +{{template "ng/base/header" .}} +<div id="admin-wrapper"> + <div id="setting-wrapper" class="main-wrapper"> + <div id="admin-setting" class="container clear"> + {{template "admin/nav" .}} + <div class="grid-4-5 left"> + <div class="setting-content"> + {{template "ng/base/alert" .}} + <div id="setting-content"> + <div class="panel panel-radius"> + <div class="panel-header"> + <strong>{{.i18n.Tr "admin.monitor.cron"}}</strong> + </div> + <div class="panel-body admin-panel"> + <table class="table table-striped"> + <thead> + <tr> + <th>{{.i18n.Tr "admin.monitor.name"}}</th> + <th>{{.i18n.Tr "admin.monitor.schedule"}}</th> + <th>{{.i18n.Tr "admin.monitor.next"}}</th> + <th>{{.i18n.Tr "admin.monitor.previous"}}</th> + <th>{{.i18n.Tr "admin.monitor.execute_times"}}</th> + </tr> + </thead> + <tbody> + {{range .Entries}} + <tr> + <td>{{.Description}}</td> + <td>{{.Spec}}</td> + <td>{{.Next}}</td> + <td>{{.Prev}}</td> + <td>{{.ExecTimes}}</td> + </tr> + {{end}} + </tbody> + </table> + </div> + </div> + <br> + <div class="panel panel-radius"> + <div class="panel-header"> + <strong>{{.i18n.Tr "admin.monitor.process"}}</strong> + </div> + <div class="panel-body admin-panel"> + <table class="table table-striped"> + <thead> + <tr> + <th>Pid</th> + <th>{{.i18n.Tr "admin.monitor.desc"}}</th> + <th>{{.i18n.Tr "admin.monitor.start"}}</th> + <th>{{.i18n.Tr "admin.monitor.execute_time"}}</th> + </tr> + </thead> + <tbody> + {{range .Processes}} + <tr> + <td>{{.Pid}}</td> + <td>{{.Description}}</td> + <td>{{.Start}}</td> + <td>{{TimeSince .Start}}</td> + </tr> + {{end}} + </tbody> + </table> + </div> + </div> + </div> + </div> + </div> + </div> + </div> +</div> +{{template "ng/base/footer" .}}
\ No newline at end of file diff --git a/templates/admin/monitor/cron.tmpl b/templates/admin/monitor/cron.tmpl deleted file mode 100644 index a04c017e29..0000000000 --- a/templates/admin/monitor/cron.tmpl +++ /dev/null @@ -1,40 +0,0 @@ -{{template "base/head" .}} -{{template "base/navbar" .}} -<div id="body" class="container" data-page="admin"> - {{template "admin/nav" .}} - <div id="admin-container" class="col-md-10"> - <ul class="nav nav-tabs"> - <li{{if .PageIsMonitorCron}} class="active"{{end}}><a href="/admin/monitor">Cron Tasks</a></li> - <li{{if .PageIsMonitorProcess}} class="active"{{end}}><a href="/admin/monitor?tab=process">Processes</a></li> - </ul> - <div class="panel panel-default"> - <div class="panel-body"> - {{if .PageIsMonitorCron}} - <table class="table table-striped"> - <thead> - <tr> - <th>Name</th> - <th>Schedule</th> - <th>Next Time</th> - <th>Previous Time</th> - <th>Execute Times</th> - </tr> - </thead> - <tbody> - {{range .Entries}} - <tr> - <td>{{.Description}}</td> - <td>{{.Spec}}</td> - <td>{{.Next}}</td> - <td>{{.Prev}}</td> - <td>{{.ExecTimes}}</td> - </tr> - {{end}} - </tbody> - </table> - {{end}} - </div> - </div> - </div> -</div> -{{template "base/footer" .}}
\ No newline at end of file diff --git a/templates/admin/monitor/process.tmpl b/templates/admin/monitor/process.tmpl deleted file mode 100644 index 2d60ff6895..0000000000 --- a/templates/admin/monitor/process.tmpl +++ /dev/null @@ -1,38 +0,0 @@ -{{template "base/head" .}} -{{template "base/navbar" .}} -<div id="body" class="container" data-page="admin"> - {{template "admin/nav" .}} - <div id="admin-container" class="col-md-10"> - <ul class="nav nav-tabs"> - <li{{if .PageIsMonitorCron}} class="active"{{end}}><a href="/admin/monitor">Cron Tasks</a></li> - <li{{if .PageIsMonitorProcess}} class="active"{{end}}><a href="/admin/monitor?tab=process">Processes</a></li> - </ul> - <div class="panel panel-default"> - <div class="panel-body"> - {{if .PageIsMonitorProcess}} - <table class="table table-striped"> - <thead> - <tr> - <th>Pid</th> - <th>Description</th> - <th>Start Time</th> - <th>Execution Time</th> - </tr> - </thead> - <tbody> - {{range .Processes}} - <tr> - <td>{{.Pid}}</td> - <td>{{.Description}}</td> - <td>{{.Start}}</td> - <td>{{TimeSince .Start}}</td> - </tr> - {{end}} - </tbody> - </table> - {{end}} - </div> - </div> - </div> -</div> -{{template "base/footer" .}}
\ No newline at end of file |