From: James Moger Date: Sat, 12 Jan 2013 04:53:32 +0000 (-0500) Subject: Show indicators for Sparkleshared repositories X-Git-Tag: v1.2.1~9 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=e4e6829;p=gitblit.git Show indicators for Sparkleshared repositories --- diff --git a/build.xml b/build.xml index 00885979..200fc91c 100644 --- a/build.xml +++ b/build.xml @@ -717,12 +717,15 @@ + + + diff --git a/resources/folder_star_16x16.png b/resources/folder_star_16x16.png new file mode 100644 index 00000000..ae8fdeda Binary files /dev/null and b/resources/folder_star_16x16.png differ diff --git a/resources/folder_star_32x32.png b/resources/folder_star_32x32.png new file mode 100644 index 00000000..d2a076a9 Binary files /dev/null and b/resources/folder_star_32x32.png differ diff --git a/resources/star_16x16.png b/resources/star_16x16.png new file mode 100644 index 00000000..883e4dec Binary files /dev/null and b/resources/star_16x16.png differ diff --git a/resources/star_32x32.png b/resources/star_32x32.png new file mode 100644 index 00000000..92865b19 Binary files /dev/null and b/resources/star_32x32.png differ diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java index 489ba63c..f417b3eb 100644 --- a/src/com/gitblit/GitBlit.java +++ b/src/com/gitblit/GitBlit.java @@ -1715,6 +1715,7 @@ public class GitBlit implements ServletContextListener { } model.HEAD = JGitUtils.getHEADRef(r); model.availableRefs = JGitUtils.getAvailableHeadTargets(r); + model.sparkleshareId = JGitUtils.getSparkleshareId(r); r.close(); if (model.origin != null && model.origin.startsWith("file://")) { diff --git a/src/com/gitblit/PagesServlet.java b/src/com/gitblit/PagesServlet.java index ad9276b4..91f25b70 100644 --- a/src/com/gitblit/PagesServlet.java +++ b/src/com/gitblit/PagesServlet.java @@ -170,7 +170,7 @@ public class PagesServlet extends HttpServlet { content = JGitUtils.getStringContent(r, tree, resource, encodings).getBytes( Constants.ENCODING); } else { - content = JGitUtils.getByteContent(r, tree, resource); + content = JGitUtils.getByteContent(r, tree, resource, false); } response.setContentType(contentType); } catch (Exception e) { diff --git a/src/com/gitblit/client/IndicatorsRenderer.java b/src/com/gitblit/client/IndicatorsRenderer.java index 59ce6dd1..44b39d01 100644 --- a/src/com/gitblit/client/IndicatorsRenderer.java +++ b/src/com/gitblit/client/IndicatorsRenderer.java @@ -55,6 +55,8 @@ public class IndicatorsRenderer extends JPanel implements TableCellRenderer, Ser private final ImageIcon federatedIcon; private final ImageIcon forkIcon; + + private final ImageIcon sparkleshareIcon; public IndicatorsRenderer() { super(new FlowLayout(FlowLayout.RIGHT, 1, 0)); @@ -67,6 +69,7 @@ public class IndicatorsRenderer extends JPanel implements TableCellRenderer, Ser frozenIcon = new ImageIcon(getClass().getResource("/cold_16x16.png")); federatedIcon = new ImageIcon(getClass().getResource("/federated_16x16.png")); forkIcon = new ImageIcon(getClass().getResource("/commit_divide_16x16.png")); + sparkleshareIcon = new ImageIcon(getClass().getResource("/star_16x16.png")); } @Override @@ -80,6 +83,11 @@ public class IndicatorsRenderer extends JPanel implements TableCellRenderer, Ser if (value instanceof RepositoryModel) { StringBuilder tooltip = new StringBuilder(); RepositoryModel model = (RepositoryModel) value; + if (model.isSparkleshared()) { + JLabel icon = new JLabel(sparkleshareIcon); + tooltip.append(Translation.get("gb.isSparkleshared")).append("
"); + add(icon); + } if (model.isFork()) { JLabel icon = new JLabel(forkIcon); tooltip.append(Translation.get("gb.isFork")).append("
"); diff --git a/src/com/gitblit/models/RepositoryModel.java b/src/com/gitblit/models/RepositoryModel.java index 5be33a2d..022fd200 100644 --- a/src/com/gitblit/models/RepositoryModel.java +++ b/src/com/gitblit/models/RepositoryModel.java @@ -82,6 +82,7 @@ public class RepositoryModel implements Serializable, Comparable getSubmodules(Repository repository, RevTree tree) { List list = new ArrayList(); - byte [] blob = getByteContent(repository, tree, ".gitmodules"); + byte [] blob = getByteContent(repository, tree, ".gitmodules", false); if (blob == null) { return list; } @@ -1734,4 +1736,18 @@ public class JGitUtils { } return success; } + + /** + * Reads the sparkleshare id, if present, from the repository. + * + * @param repository + * @return an id or null + */ + public static String getSparkleshareId(Repository repository) { + byte[] content = getByteContent(repository, null, ".sparkleshare", false); + if (content == null) { + return null; + } + return StringUtils.decodeString(content); + } } diff --git a/src/com/gitblit/wicket/GitBlitWebApp.properties b/src/com/gitblit/wicket/GitBlitWebApp.properties index 16f76411..dfdf70c2 100644 --- a/src/com/gitblit/wicket/GitBlitWebApp.properties +++ b/src/com/gitblit/wicket/GitBlitWebApp.properties @@ -440,4 +440,5 @@ gb.sslCertificateGeneratedRestart = Successfully generated new server SSL certif gb.validity = validity gb.siteName = site name gb.siteNameDescription = short, descriptive name of your server -gb.excludeFromActivity = exclude from activity page \ No newline at end of file +gb.excludeFromActivity = exclude from activity page +gb.isSparkleshared = repository is Sparkleshared \ No newline at end of file diff --git a/src/com/gitblit/wicket/pages/RawPage.java b/src/com/gitblit/wicket/pages/RawPage.java index 7f6ed139..28e8bae2 100644 --- a/src/com/gitblit/wicket/pages/RawPage.java +++ b/src/com/gitblit/wicket/pages/RawPage.java @@ -109,7 +109,7 @@ public class RawPage extends WebPage { switch (type) { case 2: // image blobs - byte[] image = JGitUtils.getByteContent(r, commit.getTree(), blobPath); + byte[] image = JGitUtils.getByteContent(r, commit.getTree(), blobPath, true); response.setContentType("image/" + extension.toLowerCase()); response.setContentLength(image.length); try { @@ -120,7 +120,7 @@ public class RawPage extends WebPage { break; case 3: // binary blobs (download) - byte[] binary = JGitUtils.getByteContent(r, commit.getTree(), blobPath); + byte[] binary = JGitUtils.getByteContent(r, commit.getTree(), blobPath, true); response.setContentLength(binary.length); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\""); diff --git a/src/com/gitblit/wicket/pages/RepositoryPage.html b/src/com/gitblit/wicket/pages/RepositoryPage.html index 63a894da..d49f0188 100644 --- a/src/com/gitblit/wicket/pages/RepositoryPage.html +++ b/src/com/gitblit/wicket/pages/RepositoryPage.html @@ -52,7 +52,7 @@
-
[project title]/[repository name] [page name]
+
[project title]/[repository name] [page name]
[origin repository]
diff --git a/src/com/gitblit/wicket/pages/RepositoryPage.java b/src/com/gitblit/wicket/pages/RepositoryPage.java index aac527d7..16087fa6 100644 --- a/src/com/gitblit/wicket/pages/RepositoryPage.java +++ b/src/com/gitblit/wicket/pages/RepositoryPage.java @@ -246,6 +246,14 @@ public abstract class RepositoryPage extends BasePage { } } + // show sparkleshare folder icon + if (model.isSparkleshared()) { + add(WicketUtils.newImage("repositoryIcon", "folder_star_32x32.png", + getString("gb.isSparkleshared"))); + } else { + add(WicketUtils.newClearPixel("repositoryIcon").setVisible(false)); + } + if (getRepositoryModel().isBare) { add(new Label("workingCopyIndicator").setVisible(false)); } else { diff --git a/src/com/gitblit/wicket/panels/ProjectRepositoryPanel.html b/src/com/gitblit/wicket/panels/ProjectRepositoryPanel.html index 46781536..9b621d5a 100644 --- a/src/com/gitblit/wicket/panels/ProjectRepositoryPanel.html +++ b/src/com/gitblit/wicket/panels/ProjectRepositoryPanel.html @@ -38,6 +38,7 @@
+ diff --git a/src/com/gitblit/wicket/panels/ProjectRepositoryPanel.java b/src/com/gitblit/wicket/panels/ProjectRepositoryPanel.java index 50f0d52d..3c9bf7f0 100644 --- a/src/com/gitblit/wicket/panels/ProjectRepositoryPanel.java +++ b/src/com/gitblit/wicket/panels/ProjectRepositoryPanel.java @@ -87,6 +87,12 @@ public class ProjectRepositoryPanel extends BasePanel { add(forkFrag); } + if (entry.isSparkleshared()) { + add(WicketUtils.newImage("sparkleshareIcon", "star_16x16.png", localizer.getString("gb.isSparkleshared", parent))); + } else { + add(WicketUtils.newClearPixel("sparkleshareIcon").setVisible(false)); + } + add(new BookmarkablePageLink("tickets", TicketsPage.class, pp).setVisible(entry.useTickets)); add(new BookmarkablePageLink("docs", DocsPage.class, pp).setVisible(entry.useDocs)); diff --git a/src/com/gitblit/wicket/panels/RepositoriesPanel.html b/src/com/gitblit/wicket/panels/RepositoriesPanel.html index 42f9f1f2..81a4c6eb 100644 --- a/src/com/gitblit/wicket/panels/RepositoriesPanel.html +++ b/src/com/gitblit/wicket/panels/RepositoriesPanel.html @@ -89,7 +89,7 @@ [repository name] [repository description] [repository owner] - + [last change] [repository size] diff --git a/src/com/gitblit/wicket/panels/RepositoriesPanel.java b/src/com/gitblit/wicket/panels/RepositoriesPanel.java index 976c517f..ee5edfce 100644 --- a/src/com/gitblit/wicket/panels/RepositoriesPanel.java +++ b/src/com/gitblit/wicket/panels/RepositoriesPanel.java @@ -233,6 +233,13 @@ public class RepositoriesPanel extends BasePanel { .setEscapeModelStrings(false)); } + if (entry.isSparkleshared()) { + row.add(WicketUtils.newImage("sparkleshareIcon", "star_16x16.png", + getString("gb.isSparkleshared"))); + } else { + row.add(WicketUtils.newClearPixel("sparkleshareIcon").setVisible(false)); + } + if (entry.isFork()) { row.add(WicketUtils.newImage("forkIcon", "commit_divide_16x16.png", getString("gb.isFork")));