2023-07-20 19:43:47 (UTC-03:00)
Marcel Rodrigues <marcelgmr@gmail.com>
use different color for private repos
diff --git a/cogit/cogit.lua b/cogit/cogit.lua index 780d926..8c4ea5d 100644 --- a/cogit/cogit.lua +++ b/cogit/cogit.lua @@ -46,12 +46,8 @@ local function diff_cb(line_type, line) return line .. "\n" end -local function allowed(is_admin, desc) - if is_admin then return true end - if desc == "" or desc:sub(1, 1) == ":" then - return false - end - return true +local function is_private(desc) + return desc == "" or desc:sub(1, 1) == ":" end local LOG_ERROR, LOG_WARN, LOG_INFO, LOG_DEBUG = 0, 1, 2, 3 @@ -116,9 +112,10 @@ function Cogit:routes() self:scan() local repos = {} for _, repo in ipairs(self.sorted_repos) do - if allowed(is_admin, repo.desc) then + local private = is_private(repo.desc) + if is_admin or not private then local desc = repo.desc:gsub("^:", "") - table.insert(repos, {name=repo.name, desc=desc}) + table.insert(repos, {name=repo.name, desc=desc, private=private}) end end local env = {title=self.title, is_admin=is_admin, repos=repos} @@ -162,7 +159,7 @@ function Cogit:routes() {"GET", "/repo/([%w_-]+)", function (req, rname) local is_admin = self:is_admin(req.cookies) - if not allowed(is_admin, self.descs[rname]) then + if not is_admin and is_private(self.descs[rname]) then return "/login", 303 end local repo = self.repos[rname] @@ -177,7 +174,7 @@ function Cogit:routes() {"GET", "/repo/([%w_-]+)/history/([%w_-]+)", function (req, rname, first) local is_admin = self:is_admin(req.cookies) - if not allowed(is_admin, self.descs[rname]) then + if not is_admin and is_private(self.descs[rname]) then return "/login", 303 end local repo = self.repos[rname] @@ -192,7 +189,7 @@ function Cogit:routes() {"GET", "/repo/([%w_-]+)/commit/([%w_-]+)", function (req, rname, cid) local is_admin = self:is_admin(req.cookies) - if not allowed(is_admin, self.descs[rname]) then + if not is_admin and is_private(self.descs[rname]) then return "/login", 303 end local repo = self.repos[rname] @@ -210,7 +207,7 @@ function Cogit:routes() {"GET", "/repo/([%w_-]+)/commit/([%w_-]+)/tree/(.*)", function (req, rname, cid, path) local is_admin = self:is_admin(req.cookies) - if not allowed(is_admin, self.descs[rname]) then + if not is_admin and is_private(self.descs[rname]) then return "/login", 303 end local repo = self.repos[rname] diff --git a/view/home.html b/view/home.html index 5832cc9..f2421f9 100644 --- a/view/home.html +++ b/view/home.html @@ -17,6 +17,7 @@ padding: 3px 12px; border: 1px solid #006; } + .private { background-color: #FFFF90; } </style> </head> <body> @@ -40,12 +41,17 @@ <th>description</th> </tr> % for repo in $repos do + % if $repo.private then + % set td_class = 'class="private"' + % else + % set td_class = '' + % end <tr> - <td><a href="/repo/{{$repo.name}}">{{$repo.name}}</a></td> + <td {{!$td_class}}><a href="/repo/{{$repo.name}}">{{$repo.name}}</a></td> % if #$repo.desc > 0 then - <td>{{$repo.desc}}</td> + <td {{!$td_class}}>{{$repo.desc}}</td> % else - <td><em>no description</em></td> + <td {{!$td_class}}><em>no description</em></td> % end </tr> % end