Sprinkled some icons throughout ui. Centralized icon retrieval.
6 files added
23 files modified
| | |
| | | # Control if email addresses are shown in web ui
|
| | | web.showEmailAddresses = true
|
| | |
|
| | | # Shows a combobox in the page links header with commit, committer, and author
|
| | | # search selection. Default search is commit.
|
| | | web.showSearchTypeSelection = false
|
| | |
|
| | | # Generates a line graph of repository activity over time on the Summary page.
|
| | | # This is a real-time graph so generation may be expensive.
|
| | | web.generateActivityGraph = true
|
| | |
| | | # Value must exceed 0 else default of 5 is used
|
| | | web.summaryRefsCount = 5
|
| | |
|
| | | # The number of commits to show on each page of a Log
|
| | | # Value must exceed 0 else default of 50 is used
|
| | | web.logPageCommitCount = 50
|
| | | # The number of items to show on a page before showing the first, prev, next
|
| | | # pagination links. A default if 50 is used for any invalid value.
|
| | | web.itemsPerPage = 50
|
| | |
|
| | | # Registered extensions for google-code-prettify
|
| | | web.prettyPrintExtensions = c cpp cs css htm html java js php pl prefs properties py rb sh sql xml vb
|
| | |
| | |
|
| | | # Example per-repository regex substitutions overrides global
|
| | | #regex.myrepository.bug = \\b(Bug:)(\\s*[#]?|-){0,1}(\\d+)\\b!!!<a href="http://elsewhere/bug/$3">Bug-Id: $3</a>
|
| | |
|
| | | # Enable tickets pages for all repositories (if ticgit branch is present)
|
| | | tickets.global = false
|
| | |
|
| | | # Enable tickets pages for specified repository (if ticgit branch is present)
|
| | | #tickets.myrepository = true
|
| | |
|
| | | #
|
| | | # Server Settings
|
| | |
| | | JGitUtils.setRepositoryOwner(r, repository.owner);
|
| | | JGitUtils.setRepositoryUseTickets(r, repository.useTickets);
|
| | | JGitUtils.setRepositoryUseDocs(r, repository.useDocs);
|
| | | JGitUtils.setRepositoryUseNamedUsers(r, repository.useNamedUsers);
|
| | | JGitUtils.setRepositoryRestrictedAccess(r, repository.useRestrictedAccess);
|
| | | }
|
| | |
|
| | | public List<String> getRepositoryList() {
|
| | |
| | | Repository r = getRepository(repo);
|
| | | String description = JGitUtils.getRepositoryDescription(r);
|
| | | String owner = JGitUtils.getRepositoryOwner(r);
|
| | | String group = JGitUtils.getRepositoryGroup(r);
|
| | | Date lastchange = JGitUtils.getLastChange(r);
|
| | | RepositoryModel model = new RepositoryModel(repo, description, owner, lastchange);
|
| | | model.group = group;
|
| | | model.useTickets = JGitUtils.getRepositoryUseTickets(r);
|
| | | model.useDocs = JGitUtils.getRepositoryUseDocs(r);
|
| | | model.useRestrictedAccess = JGitUtils.getRepositoryRestrictedAccess(r);
|
| | | r.close();
|
| | | repositories.add(new RepositoryModel(repo, description, owner, lastchange));
|
| | | repositories.add(model);
|
| | | }
|
| | | return repositories;
|
| | | }
|
| | |
| | | setRepositoryConfigString(r, "owner", owner);
|
| | | }
|
| | |
|
| | | public static String getRepositoryGroup(Repository r) {
|
| | | return getRepositoryConfigString(r, "group");
|
| | | }
|
| | | |
| | | public static void setRepositoryGroup(Repository r, String group) {
|
| | | setRepositoryConfigString(r, "group", group);
|
| | | } |
| | | |
| | | public static boolean getRepositoryUseTickets(Repository r) {
|
| | | return getRepositoryConfigBoolean(r, "useTickets", false);
|
| | | }
|
| | |
| | | setRepositoryConfigBoolean(r, "useDocs", value);
|
| | | }
|
| | |
|
| | | public static boolean getRepositoryUseNamedUsers(Repository r) {
|
| | | return getRepositoryConfigBoolean(r, "useNamedUsers", false);
|
| | | public static boolean getRepositoryRestrictedAccess(Repository r) {
|
| | | return getRepositoryConfigBoolean(r, "restrictedAccess", false);
|
| | | }
|
| | |
|
| | | public static void setRepositoryUseNamedUsers(Repository r, boolean value) {
|
| | | setRepositoryConfigBoolean(r, "useNamedUsers", value);
|
| | | public static void setRepositoryRestrictedAccess(Repository r, boolean value) {
|
| | | setRepositoryConfigBoolean(r, "restrictedAccess", value);
|
| | | }
|
| | |
|
| | | public static String getRepositoryConfigString(Repository r, String field) {
|
| | |
| | | return metrics;
|
| | | }
|
| | |
|
| | | public static RefModel getDocumentsBranch(Repository r) {
|
| | | return getTicketsBranch(r);
|
| | | }
|
| | |
|
| | | public static RefModel getTicketsBranch(Repository r) {
|
| | | RefModel ticgitBranch = null;
|
| | | try {
|
| | |
| | | gb.edit = edit
|
| | | gb.searchTypeTooltip = Select Search Type
|
| | | gb.searchTooltip = Search Git:Blit |
| | | gb.rename = rename
|
| | | gb.delete = delete
|
| | | gb.docs = docs
|
| | | gb.restrictedAccess = restricted access |
| | |
| | |
|
| | | protected void setPersonSearchTooltip(Component component, String value, SearchType searchType) {
|
| | | if (searchType.equals(SearchType.AUTHOR)) {
|
| | | WicketUtils.setHtmlTitle(component, getString("gb.searchForAuthor") + " " + value);
|
| | | WicketUtils.setHtmlTooltip(component, getString("gb.searchForAuthor") + " " + value);
|
| | | } else if (searchType.equals(SearchType.COMMITTER)) {
|
| | | WicketUtils.setHtmlTitle(component, getString("gb.searchForCommitter") + " " + value);
|
| | | WicketUtils.setHtmlTooltip(component, getString("gb.searchForCommitter") + " " + value);
|
| | | }
|
| | | }
|
| | |
|
| | | protected void setChangeTypeTooltip(Component container, ChangeType type) {
|
| | | switch (type) {
|
| | | case ADD:
|
| | | WicketUtils.setHtmlTitle(container, getString("gb.addition"));
|
| | | WicketUtils.setHtmlTooltip(container, getString("gb.addition"));
|
| | | break;
|
| | | case COPY:
|
| | | case RENAME:
|
| | | WicketUtils.setHtmlTitle(container, getString("gb.rename"));
|
| | | WicketUtils.setHtmlTooltip(container, getString("gb.rename"));
|
| | | break;
|
| | | case DELETE:
|
| | | WicketUtils.setHtmlTitle(container, getString("gb.deletion"));
|
| | | WicketUtils.setHtmlTooltip(container, getString("gb.deletion"));
|
| | | break;
|
| | | case MODIFY:
|
| | | WicketUtils.setHtmlTitle(container, getString("gb.modification"));
|
| | | WicketUtils.setHtmlTooltip(container, getString("gb.modification"));
|
| | | break;
|
| | | }
|
| | | }
|
| | |
| | | import org.apache.wicket.PageParameters;
|
| | | import org.apache.wicket.behavior.SimpleAttributeModifier;
|
| | | import org.apache.wicket.markup.html.basic.Label;
|
| | | import org.apache.wicket.markup.html.image.ContextImage;
|
| | | import org.apache.wicket.resource.ContextRelativeResource;
|
| | | import org.eclipse.jgit.diff.DiffEntry.ChangeType;
|
| | | import org.eclipse.jgit.lib.Constants;
|
| | |
|
| | |
| | | container.add(new SimpleAttributeModifier("style", value));
|
| | | }
|
| | |
|
| | | public static void setHtmlTitle(Component container, String value) {
|
| | | public static void setHtmlTooltip(Component container, String value) {
|
| | | container.add(new SimpleAttributeModifier("title", value));
|
| | | }
|
| | |
|
| | |
| | |
|
| | | public static Label createAuthorLabel(String wicketId, String author) {
|
| | | Label label = new Label(wicketId, author);
|
| | | WicketUtils.setHtmlTitle(label, author);
|
| | | WicketUtils.setHtmlTooltip(label, author);
|
| | | return label;
|
| | | }
|
| | |
|
| | | public static ContextImage newClearPixel(String wicketId) {
|
| | | return newImage(wicketId, "pixel.png");
|
| | | }
|
| | | |
| | | public static ContextImage newBlankImage(String wicketId) {
|
| | | return newImage(wicketId, "blank.png");
|
| | | }
|
| | |
|
| | | public static ContextImage newImage(String wicketId, String file) {
|
| | | return newImage(wicketId, file, null);
|
| | | }
|
| | |
|
| | | public static ContextImage newImage(String wicketId, String file, String tooltip) {
|
| | | ContextImage img = new ContextImage(wicketId, "/com/gitblit/wicket/resources/" + file);
|
| | | if (!StringUtils.isEmpty(tooltip)) {
|
| | | setHtmlTooltip(img, tooltip);
|
| | | }
|
| | | return img;
|
| | | }
|
| | | |
| | | public static ContextRelativeResource getResource(String file) {
|
| | | return new ContextRelativeResource("/com/gitblit/wicket/resources/" + file);
|
| | | }
|
| | |
|
| | | public static PageParameters newRepositoryParameter(String repositoryName) {
|
| | |
| | | }
|
| | | Label label = new Label(wicketId, dateString);
|
| | | WicketUtils.setCssClass(label, TimeUtils.timeAgoCss(date));
|
| | | WicketUtils.setHtmlTitle(label, title);
|
| | | WicketUtils.setHtmlTooltip(label, title);
|
| | | return label;
|
| | | }
|
| | |
|
| | |
| | | String dateString = df.format(date);
|
| | | String title = TimeUtils.timeAgo(date);
|
| | | Label label = new Label(wicketId, dateString);
|
| | | WicketUtils.setHtmlTitle(label, title);
|
| | | WicketUtils.setHtmlTooltip(label, title);
|
| | | return label;
|
| | | }
|
| | | }
|
| | |
| | | public String name;
|
| | | public String description;
|
| | | public String owner;
|
| | | public String group;
|
| | | public Date lastChange;
|
| | | public boolean useTickets;
|
| | | public boolean useDocs;
|
| | | public boolean useNamedUsers;
|
| | | public boolean useRestrictedAccess;
|
| | |
|
| | | public RepositoryModel(String name, String description, String owner, Date lastchange) {
|
| | | this.name = name;
|
| | |
| | | <form wicket:id="editForm">
|
| | | <table class="plain">
|
| | | <tbody>
|
| | | <tr><th>Name</th><td><input type="text" wicket:id="name" size="30" /></td></tr>
|
| | | <tr><th>Description</th><td><input type="text" wicket:id="description" size="80" /></td></tr>
|
| | | <tr><th>Owner</th><td><input type="text" wicket:id="owner" size="30" /></td></tr>
|
| | | <tr><th>Use Git:Blit Tickets</th><td><input type="checkbox" wicket:id="useTickets"/>distributed Git:Blit ticketing</td></tr>
|
| | | <tr><th>Use Git:Blit Docs</th><td><input type="checkbox" wicket:id="useDocs"/>distributed Git:Blit documentation</td></tr>
|
| | | <tr><th>Named User Access</th><td><input type="checkbox" wicket:id="useNamedUsers"/>not implemented</td></tr>
|
| | | <tr><td colspan="2"><input type="submit" value="Submit"/></td></tr>
|
| | | <tr><th>Name</th><td class="edit"><input type="text" wicket:id="name" size="30" tabindex="1" /></td></tr>
|
| | | <tr><th>Description</th><td class="edit"><input type="text" wicket:id="description" size="80" tabindex="2" /></td></tr>
|
| | | <tr><th>Owner</th><td class="edit"><input type="text" wicket:id="owner" size="30" tabindex="3" /></td></tr>
|
| | | <tr><th>Group</th><td class="edit"><input type="text" wicket:id="group" size="30" tabindex="4" /></td></tr>
|
| | | <tr><th>Enable Tickets</th><td class="edit"><input type="checkbox" wicket:id="useTickets" tabindex="5" /> <i>distributed Ticgit ticketing</i></td></tr>
|
| | | <tr><th>Enable Docs</th><td class="edit"><input type="checkbox" wicket:id="useDocs" tabindex="6" /> <i>distributed Markdown documentation</i></td></tr>
|
| | | <tr><td class="edit" colspan="2"><input type="submit" value="Submit" tabindex="7" /></td></tr>
|
| | | </tbody>
|
| | | </table>
|
| | | </form>
|
| | |
| | | import org.apache.wicket.markup.html.form.Form;
|
| | | import org.apache.wicket.markup.html.form.TextField;
|
| | | import org.apache.wicket.model.CompoundPropertyModel;
|
| | | import org.eclipse.jgit.lib.Repository;
|
| | |
|
| | | import com.gitblit.GitBlit;
|
| | | import com.gitblit.utils.JGitUtils;
|
| | | import com.gitblit.wicket.AdminPage;
|
| | | import com.gitblit.wicket.BasePage;
|
| | | import com.gitblit.wicket.WicketUtils;
|
| | |
| | | // edit constructor
|
| | | super(params);
|
| | | isCreate = false;
|
| | | String repositoryName = WicketUtils.getRepositoryName(params);
|
| | | setupPage(new RepositoryModel(repositoryName, "", "", new Date()));
|
| | | String name = WicketUtils.getRepositoryName(params);
|
| | | Repository r = GitBlit.self().getRepository(name);
|
| | | String description = JGitUtils.getRepositoryDescription(r);
|
| | | String owner = JGitUtils.getRepositoryOwner(r);
|
| | | String group = JGitUtils.getRepositoryGroup(r);
|
| | | RepositoryModel model = new RepositoryModel(name, description, owner, new Date());
|
| | | model.group = group;
|
| | | model.useTickets = JGitUtils.getRepositoryUseTickets(r);
|
| | | model.useDocs = JGitUtils.getRepositoryUseDocs(r);
|
| | | model.useRestrictedAccess = JGitUtils.getRepositoryRestrictedAccess(r);
|
| | | setupPage(model);
|
| | | }
|
| | |
|
| | | protected void setupPage(final RepositoryModel repository) {
|
| | |
| | | form.add(new TextField<String>("name").setEnabled(isCreate));
|
| | | form.add(new TextField<String>("description"));
|
| | | form.add(new TextField<String>("owner"));
|
| | | form.add(new TextField<String>("group"));
|
| | | form.add(new CheckBox("useTickets"));
|
| | | form.add(new CheckBox("useDocs"));
|
| | | form.add(new CheckBox("useNamedUsers"));
|
| | |
|
| | | add(form);
|
| | | }
|
| | |
| | | <th wicket:id="orderByRepository"><wicket:message key="gb.repository">Repository</wicket:message></th>
|
| | | <th wicket:id="orderByDescription"><wicket:message key="gb.description">Description</wicket:message></th>
|
| | | <th wicket:id="orderByOwner"><wicket:message key="gb.owner">Owner</wicket:message></th>
|
| | | <th></th>
|
| | | <th wicket:id="orderByDate"><wicket:message key="gb.lastChange">Last Change</wicket:message></th>
|
| | | <th></th>
|
| | | </tr>
|
| | |
| | | <td><div class="list" wicket:id="repositoryName">[repository name]</div></td>
|
| | | <td><div class="list" wicket:id="repositoryDescription">[repository description]</div></td>
|
| | | <td class="author"><span wicket:id="repositoryOwner">[repository owner]</span></td>
|
| | | <td class="icon"><img wicket:id="ticketsIcon" /><img wicket:id="docsIcon" /><img wicket:id="restrictedAccessIcon" /></td>
|
| | | <td><span wicket:id="repositoryLastChange">[last change]</span></td>
|
| | | <td><a wicket:id="repositoryLinks"><wicket:message key="gb.edit">[edit]</wicket:message></a></td>
|
| | | <td class="rightAlign"><span wicket:id="repositoryLinks"></span></td>
|
| | | </tr>
|
| | | </tbody>
|
| | | </table>
|
| | |
| | | <a wicket:id="newRepository"><wicket:message key="gb.newRepository"></wicket:message></a> | <a wicket:id="newUser"><wicket:message key="gb.newUser"></wicket:message></a>
|
| | | </div>
|
| | | </wicket:fragment>
|
| | | |
| | | <wicket:fragment wicket:id="repositoryAdminLinks">
|
| | | <span class="link"><a wicket:id="editRepository"><wicket:message key="gb.edit">[edit]</wicket:message></a> | <a wicket:id="renameRepository"><wicket:message key="gb.rename">[rename]</wicket:message></a> | <a wicket:id="deleteRepository"><wicket:message key="gb.delete">[delete]</wicket:message></a></span>
|
| | | </wicket:fragment>
|
| | | </wicket:extend>
|
| | | </body>
|
| | | </html> |
| | |
| | | if (messageSource.equalsIgnoreCase("gitblit")) {
|
| | | // Read default welcome message
|
| | | try {
|
| | | ContextRelativeResource res = new ContextRelativeResource("/com/gitblit/wicket/resources/welcome.mkd");
|
| | | ContextRelativeResource res = WicketUtils.getResource("welcome.mkd");
|
| | | InputStream is = res.getResourceStream().getInputStream();
|
| | | InputStreamReader reader = new InputStreamReader(is);
|
| | | StringWriter writer = new StringWriter();
|
| | |
| | | PageParameters pp = WicketUtils.newRepositoryParameter(entry.name);
|
| | | item.add(new LinkPanel("repositoryName", "list", entry.name, SummaryPage.class, pp));
|
| | | item.add(new LinkPanel("repositoryDescription", "list", entry.description, SummaryPage.class, pp));
|
| | |
|
| | | if (entry.useTickets) {
|
| | | item.add(WicketUtils.newImage("ticketsIcon", "bug_16x16.png", getString("gb.tickets")));
|
| | | } else {
|
| | | item.add(WicketUtils.newClearPixel("ticketsIcon"));
|
| | | }
|
| | | |
| | | if (entry.useDocs) {
|
| | | item.add(WicketUtils.newImage("docsIcon", "book_16x16.png", getString("gb.docs")));
|
| | | } else {
|
| | | item.add(WicketUtils.newClearPixel("docsIcon"));
|
| | | }
|
| | | |
| | | if (entry.useRestrictedAccess) {
|
| | | item.add(WicketUtils.newImage("restrictedAccessIcon", "lock_16x16.png", getString("gb.restrictedAccess")));
|
| | | } else {
|
| | | item.add(WicketUtils.newClearPixel("restrictedAccessIcon"));
|
| | | }
|
| | | |
| | | item.add(new Label("repositoryOwner", entry.owner));
|
| | |
|
| | | String lastChange = TimeUtils.timeAgo(entry.lastChange);
|
| | |
| | | item.add(lastChangeLabel);
|
| | | WicketUtils.setCssClass(lastChangeLabel, TimeUtils.timeAgoCss(entry.lastChange));
|
| | |
|
| | | item.add(new BookmarkablePageLink<Void>("repositoryLinks", EditRepositoryPage.class, WicketUtils.newRepositoryParameter(entry.name)).setVisible(showAdmin));
|
| | | |
| | | if (showAdmin) {
|
| | | Fragment repositoryLinks = new Fragment("repositoryLinks", "repositoryAdminLinks", this);
|
| | | repositoryLinks.add(new BookmarkablePageLink<Void>("editRepository", EditRepositoryPage.class, WicketUtils.newRepositoryParameter(entry.name)));
|
| | | repositoryLinks.add(new BookmarkablePageLink<Void>("renameRepository", EditRepositoryPage.class, WicketUtils.newRepositoryParameter(entry.name)).setEnabled(false));
|
| | | repositoryLinks.add(new BookmarkablePageLink<Void>("deleteRepository", EditRepositoryPage.class, WicketUtils.newRepositoryParameter(entry.name)).setEnabled(false));
|
| | | item.add(repositoryLinks);
|
| | | } else {
|
| | | item.add(new Label("repositoryLinks"));
|
| | | }
|
| | | WicketUtils.setAlternatingBackground(item, counter);
|
| | | counter++;
|
| | | }
|
| | |
| | |
|
| | | import org.apache.wicket.PageParameters;
|
| | | import org.apache.wicket.markup.html.basic.Label;
|
| | | import org.apache.wicket.markup.html.image.ContextImage;
|
| | | import org.eclipse.jgit.lib.Repository;
|
| | | import org.wicketstuff.googlecharts.AbstractChartData;
|
| | | import org.wicketstuff.googlecharts.Chart;
|
| | |
| | |
|
| | | add(new Chart("commitsChart", provider));
|
| | | } else {
|
| | | add(new ContextImage("commitsChart", "blank.png"));
|
| | | add(WicketUtils.newBlankImage("commitsChart"));
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | <!-- changed paths -->
|
| | | <table style="width:100%" class="pretty">
|
| | | <tr wicket:id="changedPath">
|
| | | <td class="icon"><img wicket:id="pathIcon" /></td>
|
| | | <td><span wicket:id="pathName"></span></td>
|
| | | <td class="size"><span wicket:id="pathSize">[path size]</span></td>
|
| | | <td class="mode"><span wicket:id="pathPermissions">[path permissions]</span></td>
|
| | |
| | | item.add(new Label("pathPermissions", JGitUtils.getPermissionsFromMode(entry.mode)));
|
| | | if (entry.isParentPath) {
|
| | | // parent .. path
|
| | | item.add(WicketUtils.newBlankImage("pathIcon"));
|
| | | item.add(new Label("pathSize", ""));
|
| | | item.add(new LinkPanel("pathName", null, entry.name, TreePage.class, newPathParameter(entry.path)));
|
| | | item.add(new Label("pathLinks", ""));
|
| | | } else {
|
| | | if (entry.isTree()) {
|
| | | // folder/tree link
|
| | | item.add(WicketUtils.newImage("pathIcon", "folder_16x16.png"));
|
| | | item.add(new Label("pathSize", ""));
|
| | | item.add(new LinkPanel("pathName", null, entry.name, TreePage.class, newPathParameter(entry.path)));
|
| | |
|
| | |
| | | item.add(links);
|
| | | } else {
|
| | | // blob link
|
| | | item.add(WicketUtils.newImage("pathIcon", "file_16x16.png"));
|
| | | item.add(new Label("pathSize", byteFormat.format(entry.size)));
|
| | | item.add(new LinkPanel("pathName", "list", entry.name, BlobPage.class, newPathParameter(entry.path)));
|
| | |
|
| | |
| | |
|
| | | protected void setPersonSearchTooltip(Component component, String value, SearchType searchType) {
|
| | | if (searchType.equals(SearchType.AUTHOR)) {
|
| | | WicketUtils.setHtmlTitle(component, getString("gb.searchForAuthor") + " " + value);
|
| | | WicketUtils.setHtmlTooltip(component, getString("gb.searchForAuthor") + " " + value);
|
| | | } else if (searchType.equals(SearchType.COMMITTER)) {
|
| | | WicketUtils.setHtmlTitle(component, getString("gb.searchForCommitter") + " " + value);
|
| | | WicketUtils.setHtmlTooltip(component, getString("gb.searchForCommitter") + " " + value);
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | import java.util.Map;
|
| | |
|
| | | import org.apache.wicket.markup.html.basic.Label;
|
| | | import org.apache.wicket.markup.html.image.ContextImage;
|
| | | import org.apache.wicket.markup.html.link.BookmarkablePageLink;
|
| | | import org.apache.wicket.markup.html.panel.Fragment;
|
| | | import org.apache.wicket.markup.repeater.Item;
|
| | |
| | | public HistoryPanel(String wicketId, final String repositoryName, final String objectId, final String path, Repository r, int limit, int pageOffset) {
|
| | | super(wicketId);
|
| | | boolean pageResults = limit <= 0;
|
| | | int itemsPerPage = GitBlit.self().settings().getInteger(Keys.web.logPageCommitCount, 50);
|
| | | int itemsPerPage = GitBlit.self().settings().getInteger(Keys.web.itemsPerPage, 50);
|
| | | if (itemsPerPage <= 1) {
|
| | | itemsPerPage = 50;
|
| | | }
|
| | |
| | |
|
| | | // merge icon
|
| | | if (entry.getParentCount() > 1) {
|
| | | item.add(new ContextImage("commitIcon", "/com/gitblit/wicket/resources/commit_merge_16x16.png"));
|
| | | item.add(WicketUtils.newImage("commitIcon", "commit_merge_16x16.png"));
|
| | | } else {
|
| | | item.add(new ContextImage("commitIcon", "/com/gitblit/wicket/resources/blank.png"));
|
| | | item.add(WicketUtils.newBlankImage("commitIcon"));
|
| | | }
|
| | |
|
| | | String shortMessage = entry.getShortMessage();
|
| | | String trimmedMessage = StringUtils.trimShortLog(shortMessage);
|
| | | LinkPanel shortlog = new LinkPanel("commitShortMessage", "list subject", trimmedMessage, CommitPage.class, WicketUtils.newObjectParameter(repositoryName, entry.getName()));
|
| | | if (!shortMessage.equals(trimmedMessage)) {
|
| | | WicketUtils.setHtmlTitle(shortlog, shortMessage);
|
| | | WicketUtils.setHtmlTooltip(shortlog, shortMessage);
|
| | | }
|
| | | item.add(shortlog);
|
| | |
|
| | |
| | | import java.util.Map;
|
| | |
|
| | | import org.apache.wicket.markup.html.basic.Label;
|
| | | import org.apache.wicket.markup.html.image.ContextImage;
|
| | | import org.apache.wicket.markup.html.link.BookmarkablePageLink;
|
| | | import org.apache.wicket.markup.repeater.Item;
|
| | | import org.apache.wicket.markup.repeater.data.DataView;
|
| | |
| | | public LogPanel(String wicketId, final String repositoryName, final String objectId, Repository r, int limit, int pageOffset) {
|
| | | super(wicketId);
|
| | | boolean pageResults = limit <= 0;
|
| | | int itemsPerPage = GitBlit.self().settings().getInteger(Keys.web.logPageCommitCount, 50);
|
| | | int itemsPerPage = GitBlit.self().settings().getInteger(Keys.web.itemsPerPage, 50);
|
| | | if (itemsPerPage <= 1) {
|
| | | itemsPerPage = 50;
|
| | | }
|
| | |
| | |
|
| | | // merge icon
|
| | | if (entry.getParentCount() > 1) {
|
| | | item.add(new ContextImage("commitIcon", "/com/gitblit/wicket/resources/commit_merge_16x16.png"));
|
| | | item.add(WicketUtils.newImage("commitIcon", "commit_merge_16x16.png"));
|
| | | } else {
|
| | | item.add(new ContextImage("commitIcon", "/com/gitblit/wicket/resources/blank.png"));
|
| | | item.add(WicketUtils.newBlankImage("commitIcon"));
|
| | | }
|
| | |
|
| | | // short message
|
| | |
| | | String trimmedMessage = StringUtils.trimShortLog(shortMessage);
|
| | | LinkPanel shortlog = new LinkPanel("commitShortMessage", "list subject", trimmedMessage, CommitPage.class, WicketUtils.newObjectParameter(repositoryName, entry.getName()));
|
| | | if (!shortMessage.equals(trimmedMessage)) {
|
| | | WicketUtils.setHtmlTitle(shortlog, shortMessage);
|
| | | WicketUtils.setHtmlTooltip(shortlog, shortMessage);
|
| | | }
|
| | | item.add(shortlog);
|
| | |
|
| | |
| | | <form wicket:id="searchForm">
|
| | | <div class="search">
|
| | | <select wicket:id="searchType"/>
|
| | | <input type="text" id="searchBox" wicket:id="searchBox" value=""/>
|
| | | <input type="text" id="searchBox" wicket:id="searchBox" size="25" value=""/>
|
| | | </div>
|
| | | </form>
|
| | |
|
| | |
| | | package com.gitblit.wicket.panels;
|
| | |
|
| | | import java.text.MessageFormat;
|
| | | import java.util.ArrayList;
|
| | | import java.util.Arrays;
|
| | | import java.util.HashMap;
|
| | |
| | | add(new BookmarkablePageLink<Void>("tags", TagsPage.class, WicketUtils.newRepositoryParameter(repositoryName)));
|
| | | add(new BookmarkablePageLink<Void>("tree", TreePage.class, WicketUtils.newRepositoryParameter(repositoryName)));
|
| | |
|
| | | // Get the repository tickets setting
|
| | | boolean checkTicgit = GitBlit.self().settings().getBoolean(Keys.tickets.global, false);
|
| | | checkTicgit |= GitBlit.self().settings().getBoolean(MessageFormat.format(Keys.tickets._ROOT + ".{0}", repositoryName), false);
|
| | |
|
| | | // Add dynamic repository extras
|
| | | List<String> extras = new ArrayList<String>();
|
| | | if (checkTicgit && JGitUtils.getTicketsBranch(r) != null) {
|
| | |
|
| | | // Get the repository tickets setting
|
| | | boolean checkTickets = JGitUtils.getRepositoryUseTickets(r);
|
| | | if (checkTickets && JGitUtils.getTicketsBranch(r) != null) {
|
| | | extras.add("tickets");
|
| | | }
|
| | |
|
| | | // Get the repository docs setting
|
| | | boolean checkDocs = JGitUtils.getRepositoryUseDocs(r);
|
| | | if (checkDocs && JGitUtils.getDocumentsBranch(r) != null) {
|
| | | extras.add("docs");
|
| | | }
|
| | |
|
| | | ListDataProvider<String> extrasDp = new ListDataProvider<String>(extras);
|
| | |
| | | String extra = item.getModelObject();
|
| | | if (extra.equals("tickets")) {
|
| | | item.add(new Label("extraSeparator", " | "));
|
| | | item.add(new LinkPanel("extraLink", null, "tickets", TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName)));
|
| | | item.add(new LinkPanel("extraLink", null, getString("gb.tickets"), TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName)));
|
| | | } else if (extra.equals("docs")) {
|
| | | item.add(new Label("extraSeparator", " | "));
|
| | | item.add(new LinkPanel("extraLink", null, getString("gb.docs"), TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName)));
|
| | | }
|
| | | }
|
| | | };
|
| | |
| | | this.repositoryName = repositoryName;
|
| | | DropDownChoice<SearchType> searchType = new DropDownChoice<SearchType>("searchType", Arrays.asList(SearchType.values()));
|
| | | searchType.setModel(searchTypeModel);
|
| | | WicketUtils.setHtmlTitle(searchType, getString("gb.searchTypeTooltip"));
|
| | | add(searchType);
|
| | | WicketUtils.setHtmlTooltip(searchType, getString("gb.searchTypeTooltip"));
|
| | | add(searchType.setVisible(GitBlit.self().settings().getBoolean(Keys.web.showSearchTypeSelection, false)));
|
| | | TextField<String> searchBox = new TextField<String>("searchBox", searchBoxModel);
|
| | | add(searchBox);
|
| | | WicketUtils.setHtmlTitle(searchBox, getString("gb.searchTooltip"));
|
| | | WicketUtils.setHtmlTooltip(searchBox, getString("gb.searchTooltip"));
|
| | | WicketUtils.setInputPlaceholder(searchBox, getString("gb.search"));
|
| | | }
|
| | |
|
| | |
| | | public void onSubmit() {
|
| | | SearchType searchType = searchTypeModel.getObject();
|
| | | String searchString = searchBoxModel.getObject();
|
| | | for (SearchType type : SearchType.values()) {
|
| | | if (searchString.toLowerCase().startsWith(type.name().toLowerCase() + ":")) {
|
| | | searchType = type;
|
| | | searchString = searchString.substring(type.name().toLowerCase().length() + 1).trim();
|
| | | break;
|
| | | }
|
| | | }
|
| | | setResponsePage(SearchPage.class, WicketUtils.newSearchParameter(repositoryName, null, searchString, searchType));
|
| | | }
|
| | | }
|
| | |
| | | c = new LinkPanel("refName", null, entry, CommitPage.class, WicketUtils.newObjectParameter(repositoryName, entry));
|
| | | WicketUtils.setCssClass(c, "otherRef");
|
| | | }
|
| | | WicketUtils.setHtmlTitle(c, entry);
|
| | | WicketUtils.setHtmlTooltip(c, entry);
|
| | | item.add(c);
|
| | | }
|
| | | };
|
| | |
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | |
|
| | | import org.apache.wicket.markup.html.image.ContextImage;
|
| | | import org.apache.wicket.markup.html.link.BookmarkablePageLink;
|
| | | import org.apache.wicket.markup.repeater.Item;
|
| | | import org.apache.wicket.markup.repeater.data.DataView;
|
| | |
| | | public SearchPanel(String wicketId, final String repositoryName, final String objectId, final String value, SearchType searchType, Repository r, int limit, int pageOffset) {
|
| | | super(wicketId);
|
| | | boolean pageResults = limit <= 0;
|
| | | int itemsPerPage = GitBlit.self().settings().getInteger(Keys.web.logPageCommitCount, 50);
|
| | | int itemsPerPage = GitBlit.self().settings().getInteger(Keys.web.itemsPerPage, 50);
|
| | | if (itemsPerPage <= 1) {
|
| | | itemsPerPage = 50;
|
| | | }
|
| | |
| | |
|
| | | // merge icon
|
| | | if (entry.getParentCount() > 1) {
|
| | | item.add(new ContextImage("commitIcon", "/com/gitblit/wicket/resources/commit_merge_16x16.png"));
|
| | | item.add(WicketUtils.newImage("commitIcon", "commit_merge_16x16.png"));
|
| | | } else {
|
| | | item.add(new ContextImage("commitIcon", "/com/gitblit/wicket/resources/blank.png"));
|
| | | item.add(WicketUtils.newBlankImage("commitIcon"));
|
| | | }
|
| | |
|
| | | String shortMessage = entry.getShortMessage();
|
| | |
| | | // TODO highlight matches
|
| | | LinkPanel shortlog = new LinkPanel("commitShortMessage", "list subject", trimmedMessage, CommitPage.class, WicketUtils.newObjectParameter(repositoryName, entry.getName()));
|
| | | if (!shortMessage.equals(trimmedMessage)) {
|
| | | WicketUtils.setHtmlTitle(shortlog, shortMessage);
|
| | | WicketUtils.setHtmlTooltip(shortlog, shortMessage);
|
| | | }
|
| | | item.add(shortlog);
|
| | |
|
| | |
| | | import java.util.List;
|
| | |
|
| | | import org.apache.wicket.markup.html.basic.Label;
|
| | | import org.apache.wicket.markup.html.image.ContextImage;
|
| | | import org.apache.wicket.markup.html.link.BookmarkablePageLink;
|
| | | import org.apache.wicket.markup.html.panel.Fragment;
|
| | | import org.apache.wicket.markup.repeater.Item;
|
| | |
| | |
|
| | | // tag icon
|
| | | if (entry.isAnnotatedTag()) {
|
| | | item.add(new ContextImage("tagIcon", "/com/gitblit/wicket/resources/tag_16x16.png"));
|
| | | item.add(WicketUtils.newImage("tagIcon", "tag_16x16.png"));
|
| | | } else {
|
| | | item.add(new ContextImage("tagIcon", "/com/gitblit/wicket/resources/blank.png"));
|
| | | item.add(WicketUtils.newBlankImage("tagIcon"));
|
| | | }
|
| | |
|
| | | item.add(new LinkPanel("tagName", "list name", entry.getDisplayName(), CommitPage.class, WicketUtils.newObjectParameter(repositoryName, entry.getCommitId().getName())));
|
| | |
| | | text-align:right;
|
| | | float:right;
|
| | | padding:4px 4px 3px 3px;
|
| | | border-left: 1px solid #8080f0;
|
| | | margin: 0px;
|
| | | height: 23px;
|
| | | }
|
| | |
|
| | | div.search input {
|
| | | vertical-align: top;
|
| | | background: url(/com/gitblit/wicket/resources/search-icon.png) no-repeat 4px center;
|
| | | color: #ddd;
|
| | | background-color: #000070;
|
| | | border: 1px solid transparent;
|
| | | padding: 0px 2px 2px 22px; |
| | | padding: 2px 2px 2px 22px;
|
| | | margin: 0px;
|
| | | }
|
| | |
|
| | | div.search input:hover, div.search input:focus {
|
| | |
| | | float: right;
|
| | | padding: 0.4em;
|
| | | vertical-align:top;
|
| | | margin: 0px;
|
| | | }
|
| | |
|
| | | div.commitLegend span {
|
| | |
| | | padding: 8px;
|
| | | }
|
| | |
|
| | | table.plain td.edit {
|
| | | padding: 3px;
|
| | | }
|
| | |
|
| | | table.plain td.edit input {
|
| | | margin: 0px;
|
| | | outline: 1px solid transparent;
|
| | | border: 1px solid #ccc; |
| | | padding-left:5px;
|
| | | }
|
| | |
|
| | | table.plain td.edit input:focus, table.plain td.edit input:hover{
|
| | | border: 1px solid orange;
|
| | | }
|
| | |
|
| | | table.pretty, table.repositories, table.comments {
|
| | | margin-bottom:5px;
|
| | | border-spacing: 0px;
|
| | |
| | | }
|
| | |
|
| | | table.pretty td.icon {
|
| | | padding: 0px;
|
| | | width: 20px;
|
| | | padding: 0px 0px 0px 2px; |
| | | width: 18px;
|
| | | }
|
| | |
|
| | | table.pretty td.icon img {
|
| | |
| | | table.repositories th {
|
| | | background-color:#D2C3AF;
|
| | | padding: 4px;
|
| | | border-top: 1px solid #808080;
|
| | | border-bottom: 1px solid #808080;
|
| | | }
|
| | |
|
| | | table.repositories td {
|
| | | padding: 4px;
|
| | | padding: 2px;
|
| | | }
|
| | |
|
| | | table.repositories td.icon img {
|
| | | vertical-align: top;
|
| | | }
|
| | |
|
| | | table.repositories th a {
|