Support for submodules in tree view?

2015-03-05 Thread Dunnigan, Terrence J
Hi all,

We are using cgit 0.10.1. Some of our repos have submodules, and when I look at 
a tree view I see the name of the submodule with its current hash, e.g.

m-  Utilities @ 350bc94

The submodule names are all hyperlinks, but the actual link is just a #. So 
clicking on it doesn't do anything.

Is this the correct behavior? Or something on my system improperly configured 
to support submodules?

Thanks,

Terry
___
CGit mailing list
CGit@lists.zx2c4.com
http://lists.zx2c4.com/mailman/listinfo/cgit


Re: Support for submodules in tree view?

2015-03-05 Thread John Keeping
On Thu, Mar 05, 2015 at 06:19:31PM +, Dunnigan, Terrence J wrote:
 We are using cgit 0.10.1. Some of our repos have submodules, and when
 I look at a tree view I see the name of the submodule with its current
 hash, e.g.
 
 m-  Utilities @ 350bc94
 
 The submodule names are all hyperlinks, but the actual link is just a
 #. So clicking on it doesn't do anything.
 
 Is this the correct behavior? Or something on my system improperly
 configured to support submodules?

You probably need to set the module-link configuration variable in
your cgitrc file.

Since it's possible for submodules to link to a different server, there
isn't really much CGit can do in the general case.  Note that there's
also repo.module-link.path in case your submodule paths don't match
up to their URLs, although I'm quite surprised we don't support a filter
to map submodule URLs to links - something to go on the TODO list
perhaps...
___
CGit mailing list
CGit@lists.zx2c4.com
http://lists.zx2c4.com/mailman/listinfo/cgit


Re: Support for submodules in tree view?

2015-03-05 Thread Lukas Fleischer
On Thu, 05 Mar 2015 at 19:25:53, John Keeping wrote:
 On Thu, Mar 05, 2015 at 06:19:31PM +, Dunnigan, Terrence J wrote:
  We are using cgit 0.10.1. Some of our repos have submodules, and when
  I look at a tree view I see the name of the submodule with its current
  hash, e.g.
  
  m-  Utilities @ 350bc94
  
  The submodule names are all hyperlinks, but the actual link is just a
  #. So clicking on it doesn't do anything.
  
  Is this the correct behavior? Or something on my system improperly
  configured to support submodules?
 
 You probably need to set the module-link configuration variable in
 your cgitrc file.
 
 Since it's possible for submodules to link to a different server, there
 isn't really much CGit can do in the general case.  Note that there's
 also repo.module-link.path in case your submodule paths don't match
 up to their URLs, although I'm quite surprised we don't support a filter
 to map submodule URLs to links - something to go on the TODO list
 perhaps...

What do you think about hiding the # link, though? I don't think it is
a good idea to pretend there is a link when there isn't...

-- 8 --
diff --git a/ui-shared.c b/ui-shared.c
index ff03cb2..0eeab6f 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -555,25 +555,27 @@ void cgit_submodule_link(const char *class, char *path, 
const char *rev)
item = lookup_path(list, path);
}
}
-   html(a );
-   if (class)
-   htmlf(class='%s' , class);
-   html(href=');
-   if (item) {
-   html_attrf(item-util, rev);
-   } else if (ctx.repo-module_link) {
-   dir = strrchr(path, '/');
-   if (dir)
-   dir++;
-   else
-   dir = path;
-   html_attrf(ctx.repo-module_link, dir, rev);
+   if (item || ctx.repo-module_link) {
+   html(a );
+   if (class)
+   htmlf(class='%s' , class);
+   html(href=');
+   if (item) {
+   html_attrf(item-util, rev);
+   } else {
+   dir = strrchr(path, '/');
+   if (dir)
+   dir++;
+   else
+   dir = path;
+   html_attrf(ctx.repo-module_link, dir, rev);
+   }
+   html(');
+   html_txt(path);
+   html(/a);
} else {
-   html(#);
+   html_txt(path);
}
-   html(');
-   html_txt(path);
-   html(/a);
html_txtf( @ %.7s, rev);
if (item  tail)
path[len - 1] = tail;
___
CGit mailing list
CGit@lists.zx2c4.com
http://lists.zx2c4.com/mailman/listinfo/cgit


Re: Support for submodules in tree view?

2015-03-05 Thread John Keeping
On Thu, Mar 05, 2015 at 07:31:01PM +0100, Lukas Fleischer wrote:
 On Thu, 05 Mar 2015 at 19:25:53, John Keeping wrote:
  On Thu, Mar 05, 2015 at 06:19:31PM +, Dunnigan, Terrence J wrote:
   We are using cgit 0.10.1. Some of our repos have submodules, and when
   I look at a tree view I see the name of the submodule with its current
   hash, e.g.
   
   m-  Utilities @ 350bc94
   
   The submodule names are all hyperlinks, but the actual link is just a
   #. So clicking on it doesn't do anything.
   
   Is this the correct behavior? Or something on my system improperly
   configured to support submodules?
  
  You probably need to set the module-link configuration variable in
  your cgitrc file.
  
  Since it's possible for submodules to link to a different server, there
  isn't really much CGit can do in the general case.  Note that there's
  also repo.module-link.path in case your submodule paths don't match
  up to their URLs, although I'm quite surprised we don't support a filter
  to map submodule URLs to links - something to go on the TODO list
  perhaps...
 
 What do you think about hiding the # link, though? I don't think it is
 a good idea to pretend there is a link when there isn't...

Good idea.  My one concern would be that it hinders discovery of the
module-link feature, but I think that is outweighed by the fact that it
is perfectly reasonable for someone to only want to link some of the
submodules in their system to a web interface.

 -- 8 --
 diff --git a/ui-shared.c b/ui-shared.c
 index ff03cb2..0eeab6f 100644
 --- a/ui-shared.c
 +++ b/ui-shared.c
 @@ -555,25 +555,27 @@ void cgit_submodule_link(const char *class, char *path, 
 const char *rev)
 item = lookup_path(list, path);
 }
 }
 -   html(a );
 -   if (class)
 -   htmlf(class='%s' , class);
 -   html(href=');
 -   if (item) {
 -   html_attrf(item-util, rev);
 -   } else if (ctx.repo-module_link) {
 -   dir = strrchr(path, '/');
 -   if (dir)
 -   dir++;
 -   else
 -   dir = path;
 -   html_attrf(ctx.repo-module_link, dir, rev);
 +   if (item || ctx.repo-module_link) {
 +   html(a );
 +   if (class)
 +   htmlf(class='%s' , class);
 +   html(href=');
 +   if (item) {
 +   html_attrf(item-util, rev);
 +   } else {
 +   dir = strrchr(path, '/');
 +   if (dir)
 +   dir++;
 +   else
 +   dir = path;
 +   html_attrf(ctx.repo-module_link, dir, rev);
 +   }
 +   html(');
 +   html_txt(path);
 +   html(/a);
 } else {
 -   html(#);
 +   html_txt(path);
 }
 -   html(');
 -   html_txt(path);
 -   html(/a);
 html_txtf( @ %.7s, rev);
 if (item  tail)
 path[len - 1] = tail;
 ___
 CGit mailing list
 CGit@lists.zx2c4.com
 http://lists.zx2c4.com/mailman/listinfo/cgit
___
CGit mailing list
CGit@lists.zx2c4.com
http://lists.zx2c4.com/mailman/listinfo/cgit