Skip to content
Snippets Groups Projects
Commit dfead3ce authored by Florian Gnaegi - frentix GmbH's avatar Florian Gnaegi - frentix GmbH
Browse files

OO-1068 finish toolbar styling, refactor author toolbar factory to match...

OO-1068 finish toolbar styling, refactor author toolbar factory to match outcome for better code readability
parent b3724973
No related branches found
No related tags found
No related merge requests found
......@@ -289,7 +289,7 @@ public class LinkRenderer extends DefaultComponentRenderer {
} else {
text = translator.translate(i18n);
}
sb.append("<span ");
sb.append("<a ");
if (elementId != null) sb.append(" id=\"").append(elementId).append("\" ");
String description = link.getTextReasonForDisabling();
......@@ -302,7 +302,7 @@ public class LinkRenderer extends DefaultComponentRenderer {
description = mdq.replaceAll("\\\\\"");
sb.append(" title=\"").append(description).append("\" ");
}
sb.append(cssSb).append(">");
sb.append(cssSb).append(" href='#' onclick='return false;'>");
// CSS icon
if (link.getIconLeftCSS() != null) {
......@@ -318,7 +318,7 @@ public class LinkRenderer extends DefaultComponentRenderer {
sb.append("></i> ");
}
sb.append("</span>");
sb.append("</a>");
}
if(link.getStartsDownload() || link.getTarget() != null){
//if the link starts a download -> the o_afterserver is not called in
......
......@@ -186,53 +186,62 @@ public class AuthoringEntryDetailsController extends RepositoryEntryDetailsContr
private void initToolbar(UserRequest ureq) {
// init handler details
RepositoryHandler handler = repositoryHandlerFactory.getRepositoryHandler(entry);
launchLink = LinkFactory.createToolLink("launch", translate("details.launch"), this, "o_sel_repo_launch");
launchLink.setIconLeftCSS("o_icon o_icon-fw o_icon_start");
launchLink.setEnabled(checkIsRepositoryEntryLaunchable(ureq) && !corrupted);
if (!isGuestOnly) {
boolean canDownload = entry.getCanDownload() && handler.supportsDownload(entry);
// disable download for courses if not author or owner
if (entry.getOlatResource().getResourceableTypeName().equals(CourseModule.getCourseTypeName()) && !(isOwner || isAuthor)) {
canDownload = false;
}
// always enable download for owners
if (isOwner && handler.supportsDownload(entry)) {
canDownload = true;
if (isOwner) {
/* the resource tools menu */
Dropdown tools = new Dropdown("tools", "toolbox.tools", false, getTranslator());
tools.setIconCSS("o_icon o_icon_tools");
stackPanel.addTool(tools,Align.left);
/* catalog management */
if(repositoryModule.isCatalogEnabled()) {
catalogLink = LinkFactory.createToolLink("cat", translate("details.categoriesheader"), this, "o_icon_catalog");
catalogLink.setElementCssClass("o_sel_repo_add_to_catalog");
catalogLink.setEnabled(!corrupted && (entry.getAccess() >= RepositoryEntry.ACC_USERS || entry.isMembersOnly()));
tools.addComponent(catalogLink);
}
/* members management */
membersLink = LinkFactory.createToolLink("members", translate("details.members"), this, "o_sel_repo_members");
membersLink.setIconLeftCSS("o_icon o_icon-fw o_icon_membersmanagement");
membersLink.setEnabled(!corrupted);
tools.addComponent(membersLink);
/* bookings management (payment) */
orderLink = LinkFactory.createToolLink("order", translate("details.orders"), this, "o_sel_repo_booking");
orderLink.setIconLeftCSS("o_icon o_icon-fw o_icon_booking");
boolean booking = acService.isResourceAccessControled(entry.getOlatResource(), null);
orderLink.setEnabled(!corrupted && booking);
tools.addComponent(orderLink);
/* details page configuration and settings */
editSettingsLink = LinkFactory.createToolLink("editdesc", translate("details.chprop"), this, "o_sel_repor_edit_properties");
editSettingsLink.setIconLeftCSS("o_icon o_icon-fw o_icon_settings");
editSettingsLink.setEnabled(!corrupted);
stackPanel.addTool(editSettingsLink, Align.left);
/* resource editor */
editLink = LinkFactory.createToolLink("edit", translate("details.openeditor"), this, "o_sel_repo_edit_descritpion");
editLink.setIconLeftCSS("o_icon o_icon_edit");
boolean editManaged = RepositoryEntryManagedFlag.isManaged(entry, RepositoryEntryManagedFlag.editcontent);
editLink.setEnabled(handler.supportsEdit(entry) && !corrupted && !editManaged);
stackPanel.addTool(editLink, Align.left);
downloadLink = LinkFactory.createToolLink("download", translate("details.download"), this, "o_sel_repo_download");
downloadLink.setIconLeftCSS("o_icon o_icon-fw o_icon_download");
downloadLink.setEnabled(canDownload && !corrupted);
downloadCompatLink = LinkFactory.createToolLink("downloadcompat", translate("details.download.compatible"), this, "o_sel_repo_download_backward");
downloadCompatLink.setIconLeftCSS("o_icon o_icon-fw o_icon_download");
downloadCompatLink.setEnabled(canDownload && !corrupted
&& "CourseModule".equals(entry.getOlatResource().getResourceableTypeName()));
boolean marked = markManager.isMarked(entry, getIdentity(), null);
String css = marked ? Mark.MARK_CSS_LARGE : Mark.MARK_ADD_CSS_LARGE;
bookmarkLink = LinkFactory.createToolLink("downloadcompat", translate("details.bookmark") , this);
bookmarkLink.setEnabled(!corrupted);
bookmarkLink.setIconLeftCSS(css);
}
if (isAuthor || isOwner) {
/* menu with various actions */
Dropdown editActions = new Dropdown("edit-actions", "toolbox.actions", false, getTranslator());
editActions.setIconCSS("o_icon o_icon_actions");
stackPanel.addTool(editActions, Align.left);
if(isAuthor) {
/* copy resource */
copyLink = LinkFactory.createToolLink("close", translate("details.copy"), this, "o_sel_repo_copy");
copyLink.setIconLeftCSS("o_icon o_icon-fw o_icon_copy");
boolean copyManaged = RepositoryEntryManagedFlag.isManaged(entry, RepositoryEntryManagedFlag.copy);
copyLink.setEnabled((isOwner || entry.getCanCopy()) && !corrupted && !copyManaged);
editActions.addComponent(copyLink);
editActions.addComponent(new Spacer("one"));
}
if (isOwner) {
editLink = LinkFactory.createToolLink("edit", translate("details.openeditor"), this, "o_sel_repo_edit_descritpion");
editLink.setIconLeftCSS("o_icon o_icon_edit");
boolean editManaged = RepositoryEntryManagedFlag.isManaged(entry, RepositoryEntryManagedFlag.editcontent);
editLink.setEnabled(handler.supportsEdit(entry) && !corrupted && !editManaged);
editSettingsLink = LinkFactory.createToolLink("editdesc", translate("details.chprop"), this, "o_sel_repor_edit_properties");
editSettingsLink.setIconLeftCSS("o_icon o_icon-fw o_icon_settings");
editSettingsLink.setEnabled(!corrupted);
if(repositoryModule.isCatalogEnabled()) {
catalogLink = LinkFactory.createToolLink("cat", translate("details.categoriesheader"), this, "o_sel_repo_add_to_catalog");
catalogLink.setEnabled(!corrupted && (entry.getAccess() >= RepositoryEntry.ACC_USERS || entry.isMembersOnly()));
}
/* close resource (life-cycle) */
boolean closeManaged = RepositoryEntryManagedFlag.isManaged(entry, RepositoryEntryManagedFlag.close);
if ((OresHelper.isOfType(entry.getOlatResource(), CourseModule.class))
&& !closeManaged
......@@ -240,63 +249,60 @@ public class AuthoringEntryDetailsController extends RepositoryEntryDetailsContr
closeLink = LinkFactory.createToolLink("close", translate("details.close.ressoure"), this, "o_sel_repo_close_resource");
closeLink.setIconLeftCSS("o_icon o_icon-fw o_icon_close_resource");
closeLink.setEnabled(!corrupted);
editActions.addComponent(closeLink);
}
}
if(isAuthor) {
copyLink = LinkFactory.createToolLink("close", translate("details.copy"), this, "o_sel_repo_copy");
copyLink.setIconLeftCSS("o_icon o_icon-fw o_icon_copy");
boolean copyManaged = RepositoryEntryManagedFlag.isManaged(entry, RepositoryEntryManagedFlag.copy);
copyLink.setEnabled((isOwner || entry.getCanCopy()) && !corrupted && !copyManaged);
}
if (isOwner) {
/* resource deletion */
deleteLink = LinkFactory.createToolLink("delete", translate("details.delete"), this, "o_sel_repo_delete");
deleteLink.setIconLeftCSS("o_icon o_icon-fw o_icon_delete_item");
boolean deleteManaged = RepositoryEntryManagedFlag.isManaged(entry, RepositoryEntryManagedFlag.delete);
deleteLink.setEnabled(!corrupted && !deleteManaged);
membersLink = LinkFactory.createToolLink("members", translate("details.members"), this, "o_sel_repo_members");
membersLink.setIconLeftCSS("o_icon o_icon-fw o_icon_membersmanagement");
membersLink.setEnabled(!corrupted);
orderLink = LinkFactory.createToolLink("order", translate("details.orders"), this, "o_sel_repo_booking");
orderLink.setIconLeftCSS("o_icon o_icon-fw o_icon_booking");
boolean booking = acService.isResourceAccessControled(entry.getOlatResource(), null);
orderLink.setEnabled(!corrupted && booking);
editActions.addComponent(deleteLink);
}
}
/* export resource */
if (!isGuestOnly) {
boolean canDownload = entry.getCanDownload() && handler.supportsDownload(entry);
// disable download for courses if not author or owner
if (entry.getOlatResource().getResourceableTypeName().equals(CourseModule.getCourseTypeName()) && !(isOwner || isAuthor)) {
canDownload = false;
}
// always enable download for owners
if (isOwner && handler.supportsDownload(entry)) {
canDownload = true;
}
downloadLink = LinkFactory.createToolLink("download", translate("details.download"), this, "o_sel_repo_download");
downloadLink.setIconLeftCSS("o_icon o_icon-fw o_icon_download");
downloadLink.setEnabled(canDownload && !corrupted);
downloadCompatLink = LinkFactory.createToolLink("downloadcompat", translate("details.download.compatible"), this, "o_sel_repo_download_backward");
downloadCompatLink.setIconLeftCSS("o_icon o_icon-fw o_icon_download");
downloadCompatLink.setEnabled(canDownload && !corrupted
&& "CourseModule".equals(entry.getOlatResource().getResourceableTypeName()));
if(downloadCompatLink.isEnabled()) {
Dropdown downloadDropdown = new Dropdown("downloads", "details.download", false, getTranslator());
downloadDropdown.setIconCSS("o_icon o_icon_download");
downloadDropdown.addComponent(downloadLink);
downloadDropdown.addComponent(downloadCompatLink);
stackPanel.addTool(downloadDropdown, Align.left);
} else if(downloadLink.isEnabled()) {
stackPanel.addTool(downloadLink, Align.left);
}
}
if(downloadCompatLink.isEnabled()) {
Dropdown downloadDropdown = new Dropdown("downloads", "details.download", false, getTranslator());
downloadDropdown.addComponent(downloadLink);
downloadDropdown.addComponent(downloadCompatLink);
stackPanel.addTool(downloadDropdown);
} else if(downloadLink.isEnabled()) {
stackPanel.addTool(downloadLink);
/* bookmark tool */
if (!isGuestOnly) {
boolean marked = markManager.isMarked(entry, getIdentity(), null);
String css = "o_icon " + (marked ? Mark.MARK_CSS_ICON : Mark.MARK_ADD_CSS_ICON);
bookmarkLink = LinkFactory.createToolLink("downloadcompat", translate("details.bookmark") , this);
bookmarkLink.setEnabled(!corrupted);
bookmarkLink.setIconLeftCSS(css);
stackPanel.addTool(bookmarkLink, Align.right);
}
Dropdown tools = new Dropdown("tools", "toolbox.tools", false, getTranslator());
tools.setIconCSS("o_icon o_icon_tools");
tools.addComponent(catalogLink);
tools.addComponent(membersLink);
tools.addComponent(orderLink);
stackPanel.addTool(tools,Align.left);
Dropdown editActions = new Dropdown("edit-actions", "toolbox.actions", false, getTranslator());
editActions.setIconCSS("o_icon o_icon_actions");
editActions.addComponent(copyLink);
editActions.addComponent(new Spacer("one"));
editActions.addComponent(closeLink);
editActions.addComponent(deleteLink);
stackPanel.addTool(editActions, Align.left);
stackPanel.addTool(editLink, Align.left);
stackPanel.addTool(editSettingsLink, Align.left);
stackPanel.addTool(bookmarkLink, Align.right);
/* open/launch resource */
launchLink = LinkFactory.createToolLink("launch", translate("details.launch"), this, "o_sel_repo_launch");
launchLink.setIconLeftCSS("o_icon o_icon-fw o_icon_start");
launchLink.setEnabled(checkIsRepositoryEntryLaunchable(ureq) && !corrupted);
stackPanel.addTool(launchLink, Align.right);
}
......@@ -498,8 +504,8 @@ public class AuthoringEntryDetailsController extends RepositoryEntryDetailsContr
doAddCatalog(ureq);
}
} else if (bookmarkLink == source) {
String css = doMark() ? Mark.MARK_CSS_LARGE : Mark.MARK_ADD_CSS_LARGE;
bookmarkLink.setElementCssClass(css);
String css = "o_icon " + (doMark() ? Mark.MARK_CSS_ICON : Mark.MARK_ADD_CSS_ICON);
bookmarkLink.setIconLeftCSS(css);
} else if (membersLink == source) {
doOpenMembers(ureq);
} else if (orderLink == source) {
......
......@@ -41,6 +41,7 @@ import org.olat.core.gui.components.form.flexible.impl.elements.table.StaticFlex
import org.olat.core.gui.components.link.Link;
import org.olat.core.gui.components.link.LinkFactory;
import org.olat.core.gui.components.stack.TooledStackedPanel;
import org.olat.core.gui.components.stack.TooledStackedPanel.Align;
import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowControl;
......@@ -79,11 +80,12 @@ public class CatalogSettingsController extends FormBasicController {
initForm(ureq);
stackPanel.pushController(translate("details.categoriesheader"), this);
addToCatalogLink = LinkFactory.createToolLink("addtocat", "", this);
addToCatalogLink = LinkFactory.createToolLink("addtocat", "", this, "o_icon_add");
addToCatalogLink = LinkFactory.createToolLink("cat", translate("details.catadd"), this, "o_sel_repo_add_to_catalog");
addToCatalogLink = LinkFactory.createToolLink("cat", translate("details.catadd"), this, "o_icon_add");
addToCatalogLink.setElementCssClass("o_sel_repo_add_to_catalog");
addToCatalogLink.setEnabled((entry.getAccess() >= RepositoryEntry.ACC_USERS || entry.isMembersOnly()));
stackPanel.addTool(addToCatalogLink);
stackPanel.addTool(addToCatalogLink, Align.left);
}
@Override
......
......@@ -23,11 +23,12 @@ $fa-css-prefix: "o_icon" !default;
.o_icon_bookmark_add { @extend .o_icon-bookmark-o; }
.o_icon_calendar { @extend .o_icon-calendar;}
.o_icon_caret { @extend .o_icon-caret-down;}
.o_icon_catalog { @extend .o_icon-sitemap;}
.o_icon_certificate{ @extend .o_icon-certificate;}
.o_icon_chat { @extend .o_icon-comment-o; }
.o_icon_check {@extend .o_icon-check; }
.o_icon_close {@extend .o_icon-times;}
.o_icon_close_resource { @extend .o_icon-stop; }
.o_icon_close_resource { @extend .o_icon-power-off; }
.o_icon_close_tab {@extend .o_icon-times;}
.o_icon_close_tool{ @extend .o_icon-times;}
.o_icon_close_tree {@extend .o_icon-caret-down;}
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment