Skip to content
Snippets Groups Projects
Commit d9a463c8 authored by gnaegi's avatar gnaegi
Browse files

OO-1068 bootstrapify old-school portal

parent f3f21898
No related branches found
No related tags found
No related merge requests found
Showing
with 106 additions and 136 deletions
......@@ -42,7 +42,7 @@ import com.thoughtworks.xstream.io.xml.XppDriver;
public class InstitutionPortlet extends AbstractPortlet {
private String cssWrapperClass = "o_pt_w_if";
private String cssWrapperClass = "o_portlet_institutions";
private static final String CONFIG_FILE = "/WEB-INF/olat_portals_institution.xml";
private static FastHashMap institutions = null;
......
......@@ -11,7 +11,7 @@
#end
#end
</ul></div>
<p class="o_clearthefloat">$r.translate("stextintro")<br />$sperson</p>
<p class="clearfix">$r.translate("stextintro")<br />$sperson</p>
#if($showphone)
<p>$r.translate("phone"): $sphone</p>
#end
......
......@@ -55,7 +55,7 @@ import com.thoughtworks.xstream.XStream;
*/
public class LinksPortlet extends AbstractPortlet {
private String cssWrapperClass = "o_pt_w_if";
private String cssWrapperClass = "o_portlet_links";
protected static final String LANG_ALL = "*";
protected static final String LANG_DE = "de";
......
......@@ -67,6 +67,7 @@ public class LinksPortletRunController extends BasicController {
//edit link
if (ureq.getUserSession().getRoles().isOLATAdmin()){
editButton = LinkFactory.createButtonXSmall("editor.button", portletVC, this);
editButton.setIconLeftCSS("o_icon o_icon-fw o_icon_edit");
}
viewPanel = new Panel("view");
......@@ -112,7 +113,7 @@ public class LinksPortletRunController extends BasicController {
}
if (sb.length() > 0) {
String portletContent = "<ul>" + sb.toString() + "</ul>";
String portletContent = "<ul class='list-unstyled'>" + sb.toString() + "</ul>";
portletVC.contextPut("content", portletContent);
} else {
portletVC.contextPut("content", translate("no.content.found"));
......@@ -277,7 +278,10 @@ public class LinksPortletRunController extends BasicController {
editorVC.contextPut("allInstWithLinkIds", allInstWithLinkIds);
}
backLink = LinkFactory.createLinkBack(editorVC, this);
backLink = LinkFactory.createButtonXSmall("back", editorVC, this);
backLink.setIconLeftCSS("o_icon o_icon-fw o_icon_edit");
backLink.setPrimary(true);
viewPanel.setContent(editorVC);
}
......
$r.render("backLink") <br/>
<div class="pull-right">
$r.render("back")
</div>
<p>$r.translate("link.editor.overview.intro")</p>
#if ($!allInst)
#foreach( $instTrans in $allInstTranslated )
#set ($id = ($velocityCount - 1) )
#set ( $inst = $allInst.get($id) )
<br/>
<b>$r.translate("link.institution"): <i>$instTrans</i> </b>
<div class="b_float_right"> $r.render("linkadd$inst") </div><br/>
<ul>
#foreach( $linkID in $allInstWithLinkIds.get($velocityCount) )
#set($linkEditorLink = "linkid$linkID")
#set($linkDelLink = "linkdel$linkID")
<li>$r.render("$linkEditorLink") $r.render("$linkDelLink")</li>
#end
</ul>
<div class="clearfix">
<h5>$r.translate("link.institution"): <i>$instTrans</i> </h5>
<div class="pull-right"> $r.render("linkadd$inst") </div>
<ul>
#foreach( $linkID in $allInstWithLinkIds.get($velocityCount) )
#set($linkEditorLink = "linkid$linkID")
#set($linkDelLink = "linkdel$linkID")
<li>$r.render("$linkEditorLink") $r.render("$linkDelLink")</li>
#end
</ul>
</div>
#end
#end
\ No newline at end of file
#if($r.available("editor.button"))
<div class="b_float_right">
<div class="pull-right">
$r.render("editor.button")
</div>
#end
......
......@@ -86,11 +86,12 @@ public class InfoMessagePortletRunController extends AbstractPortletRunControlle
portletVC = createVelocityContainer("infosPortlet");
showAllLink = LinkFactory.createLink("portlet.showall", portletVC, this);
showAllLink.setIconRightCSS("o_icon o_icon_start");
TableGuiConfiguration tableConfig = new TableGuiConfiguration();
tableConfig.setTableEmptyMessage(translate("portlet.no_messages"));
tableConfig.setDisplayTableHeader(false);
tableConfig.setCustomCssClass("b_portlet_table");
tableConfig.setCustomCssClass("o_portlet_table");
tableConfig.setDisplayRowCount(false);
tableConfig.setPageingEnabled(false);
tableConfig.setDownloadOffered(false);
......
<div class="b_portlet_showall">
<div class="o_showall">
$r.render("portlet.showall")
</div>
$r.render("table")
......@@ -93,7 +93,7 @@ public class DidYouKnowPortlet extends AbstractPortlet {
* @see org.olat.gui.control.generic.portal.Portlet#getCssClass()
*/
public String getCssClass() {
return "b_portlet_dyk";
return "o_portlet_dyk";
}
/**
......
#if ($questionId == -1)
<div class="b_portlet_dyk_q">$r.translate("not.found")</div>
<div class="b_portlet_dyk_a">$r.translate("not.found")</div>
<div class="o_portlet_dyk_q">$r.translate("not.found")</div>
<div class="o_portlet_dyk_a">$r.translate("not.found")</div>
#else
<div class="b_portlet_dyk_q">$r.translate("Q-${questionId}")</div>
<div class="b_portlet_dyk_a">$r.translate("A-${questionId}")</div>
<div class="o_portlet_dyk_q">$r.translate("Q-${questionId}")</div>
<div class="o_portlet_dyk_a">$r.translate("A-${questionId}")</div>
#end
<div class="b_portlet_dyk_next">
<div class="o_portlet_dyk_next">
$r.render("next")
</div>
......@@ -46,7 +46,7 @@ import org.olat.core.util.Util;
*/
public class IframePortlet extends AbstractPortlet {
private IframePortletRunController runCtr;
private String cssWrapperClass = "b_portlet_iframe";
private String cssWrapperClass = "o_portlet_iframe";
/**
* @see org.olat.gui.control.generic.portal.Portlet#getTitle()
......
......@@ -103,11 +103,12 @@ public class BookmarksPortletRunController extends AbstractPortletRunController<
bookmarksVC = createVelocityContainer("bookmarksPortlet");
showAllLink = LinkFactory.createLink("bookmarksPortlet.showAll", bookmarksVC, this);
showAllLink.setIconRightCSS("o_icon o_icon_start");
TableGuiConfiguration tableConfig = new TableGuiConfiguration();
tableConfig.setTableEmptyMessage(trans.translate("bookmarksPortlet.nobookmarks"));
tableConfig.setDisplayTableHeader(false);
tableConfig.setCustomCssClass("b_portlet_table");
tableConfig.setCustomCssClass("o_portlet_table");
tableConfig.setDisplayRowCount(false);
tableConfig.setPageingEnabled(false);
tableConfig.setDownloadOffered(false);
......
<div class="b_portlet_showall">
<div class="o_showall clearfix">
$r.render("bookmarksPortlet.showAll")
</div>
$r.render("table")
......@@ -106,11 +106,12 @@ public class NotificationsPortletRunController extends AbstractPortletRunControl
this.notificationsVC = this.createVelocityContainer("notificationsPortlet");
showAllLink = LinkFactory.createLink("notificationsPortlet.showAll", notificationsVC, this);
showAllLink.setIconRightCSS("o_icon o_icon_start");
TableGuiConfiguration tableConfig = new TableGuiConfiguration();
tableConfig.setTableEmptyMessage(trans.translate("notificationsPortlet.nonotifications"));
tableConfig.setDisplayTableHeader(false);
tableConfig.setCustomCssClass("b_portlet_table");
tableConfig.setCustomCssClass("o_portlet_table");
tableConfig.setDisplayRowCount(false);
tableConfig.setPageingEnabled(false);
tableConfig.setDownloadOffered(false);
......
<div class="b_portlet_showall">
<div class="o_showall clearfix">
$r.render("notificationsPortlet.showAll")
</div>
$r.render("table")
<div class="o_table_layout $!tableConfig.getCustomCssClass() o_scrollbox">
<div class="row clearfix o_table_toolbar">
<div class="col-lg-6">
#if ($hasTableSearch && !$tableEmpty)
$r.render("tableSearch")
#end
</div>
<div class="col-lg-2"></div>
<div class="col-lg-4"><div class="pull-right o_table_tools">
#if ($hasFilters && $filters.size() > 0)
<div class="btn-group">
<button class='btn btn-default dropdown-toggle' data-toggle='dropdown'>
<i class='o_icon o_icon-lg o_icon_filter'> </i>
<b class="caret"></b>
</button>
<ul class="dropdown-menu dropdown-menu-right" role="menu">
#if ($useNoFilterOption)
<li><a href="$r.commandURI("cmd.filter.nofilter")">$noFilterOption</a></li>
#end
#foreach ($filter in $filters)
<li>
#set ($filterPosition = $velocityCount - 1)
<a href="$r.commandURI("cmd.filter.${filterPosition}")">
#if ($filter == $selectedFilterValue)
<i class="o_icon o_icon_check o_icon-fw"> </i>
#end
$r.escapeHtml($filter.getShortName())</a>
</li>
#end
</ul>
</div>
#end
#if ($hasSorters)
$r.render("tableSort")
#end
#if ($tableConfig.isPreferencesOffered())
$r.render("prefLink")
#end
#if ($tableConfig.isDownloadOffered())
$r.render("downloadLink")
#end
</div></div>
</div>
#if ($tableEmpty)
<div class="o_table_empty o_info">$tableEmptyMessage</div>
#else
<div class="row clearfix o_table_toolbar">
<div class="col-lg-6">
#if ($hasTableSearch && !$tableEmpty)
$r.render("tableSearch")
#end
</div>
<div class="col-lg-2"></div>
<div class="col-lg-4"><div class="pull-right o_table_tools">
#if ($hasFilters && $filters.size() > 0)
<div class="btn-group">
<button class='btn btn-default dropdown-toggle' data-toggle='dropdown'>
<i class='o_icon o_icon-lg o_icon_filter'> </i>
<b class="caret"></b>
</button>
<ul class="dropdown-menu dropdown-menu-right" role="menu">
#if ($useNoFilterOption)
<li><a href="$r.commandURI("cmd.filter.nofilter")">$noFilterOption</a></li>
#end
#foreach ($filter in $filters)
<li>
#set ($filterPosition = $velocityCount - 1)
<a href="$r.commandURI("cmd.filter.${filterPosition}")">
#if ($filter == $selectedFilterValue)
<i class="o_icon o_icon_check o_icon-fw"> </i>
#end
$r.escapeHtml($filter.getShortName())</a>
</li>
#end
</ul>
</div>
#end
#if ($hasSorters)
$r.render("tableSort")
#end
#if ($tableConfig.isPreferencesOffered())
$r.render("prefLink")
#end
#if ($tableConfig.isDownloadOffered())
$r.render("downloadLink")
#end
</div></div>
</div>
$r.render("table", $tableConfig.getCssPrefix())
#end
</div>
......
......@@ -38,7 +38,7 @@
<!-- absolute path on to the same file on the local filesystem -->
<entry key="editFilePath" value="${portlet.sysinfo.filepath}" />
<entry key="height" value="250" />
<entry key="cssWrapperClass" value="b_portlet_sysinfo" />
<entry key="cssWrapperClass" value="o_portlet_sysinfo" />
</map>
</property>
</bean>
......
......@@ -102,56 +102,7 @@ public class PortalImpl extends DefaultController implements Portal, ControllerE
trans = Util.createPackageTranslator(PortalImpl.class, ureq.getLocale());
portalVC = new VelocityContainer("portalVC", VELOCITY_ROOT + "/portal.html", trans, this); // initialize arrays
// calculate the column css classes based on YAML schema
int cols = portalColumns.size();
List<String> columnCssClassWrapper = new ArrayList<String>(cols);
columnCssClassWrapper.add(0, ""); // empty, in velocity things start with 1...
List<String> columnCssClassInner = new ArrayList<String>(cols);
columnCssClassInner.add(0, ""); // empty, in velocity things start with 1...
switch (cols) {
case 0:
// do nothing
break;
case 1:
// empty css class
columnCssClassWrapper.add(1, "");
columnCssClassInner.add(1, "");
break;
case 2:
// 50% each
columnCssClassWrapper.add(1, "col-md-6 o_sel_portal_col_1");
columnCssClassInner.add(1, "b_subcl");
columnCssClassWrapper.add(2, "col-md-6 o_sel_portal_col_2");
columnCssClassInner.add(2, "b_subcr");
break;
case 3:
// 33% each
columnCssClassWrapper.add(1, "col-md-4 o_sel_portal_col_1");
columnCssClassInner.add(1, "b_subcl");
columnCssClassWrapper.add(2, "col-md-4 o_sel_portal_col_2");
columnCssClassInner.add(2, "b_subcl");
columnCssClassWrapper.add(3, "col-md-4 o_sel_portal_col_3");
columnCssClassInner.add(3, "b_subcr");
break;
case 4:
// 25% each
columnCssClassWrapper.add(1, "col-md-3 o_sel_portal_col_1");
columnCssClassInner.add(1, "b_subcl");
columnCssClassWrapper.add(2, "col-md-3 o_sel_portal_col_2");
columnCssClassInner.add(2, "b_subcl");
columnCssClassWrapper.add(3, "col-md-3 o_sel_portal_col_3");
columnCssClassInner.add(3, "b_subcl");
columnCssClassWrapper.add(4, "col-md-3 o_sel_portal_col_4");
columnCssClassInner.add(4, "b_subcr");
break;
default:
// do log as error but don't make redscreen for user.
log.error("only up to 4 portal columns supported but " + cols + " columns available in portal::" + portalName);
break;
}
portalVC.contextPut("columnCssClassWrapper", columnCssClassWrapper);
portalVC.contextPut("columnCssClassInner", columnCssClassInner);
portalVC.setDomReplacementWrapperRequired(false); // we provide our own DOM replacement ID
// init all portlets enabled in the portal columns
initPortlets(ureq);
......@@ -234,7 +185,8 @@ public class PortalImpl extends DefaultController implements Portal, ControllerE
// remember this portlet container
portletContainers.put(portlet.getName(), pc);
String addLinkName = "command.add." + portlet.getName();
Link tmp = LinkFactory.createCustomLink(addLinkName, addLinkName, "add", Link.BUTTON_XSMALL, portalVC, this);
Link tmp = LinkFactory.createCustomLink(addLinkName, addLinkName, "add", Link.BUTTON_SMALL, portalVC, this);
tmp.setIconLeftCSS("o_icon o_icon_add");
tmp.setUserObject(portlet.getName());
// and add to velocity
portalVC.put(portlet.getName(), pc.getInitialComponent());
......
......@@ -53,8 +53,13 @@ public class PortalMainController extends BasicController {
super(ureq, wControl, Util.createPackageTranslator(InviteeHomeMainController.class, ureq.getLocale()));
// start screen
welcome = createVelocityContainer("welcome");
portalBackButton = LinkFactory.createButtonXSmall("command.portal.back", welcome, this);
portalEditButton = LinkFactory.createButtonXSmall("command.portal.edit", welcome, this);
portalBackButton = LinkFactory.createButtonSmall("command.portal.back", welcome, this);
portalBackButton.setIconLeftCSS("o_icon o_icon_edit");
portalBackButton.setElementCssClass("pull-right");
portalBackButton.setPrimary(true);
portalEditButton = LinkFactory.createButtonSmall("command.portal.edit", welcome, this);
portalEditButton.setIconLeftCSS("o_icon o_icon_edit");
portalEditButton.setElementCssClass("pull-right");
if(CoreSpringFactory.containsBean("baksModule")){
welcome.contextPut("isbaks", true);
......
......@@ -70,6 +70,8 @@ public class PortletContainer extends BasicController implements PortletContaine
this.portlet = portlet;
portletContainerVC = this.createVelocityContainer("portletContainer");
portletContainerVC.setDomReplacementWrapperRequired(false); // we provide our own DOM replacement ID
this.portletContainerVC.contextPut("title", portlet.getTitle());
this.portletContainerVC.contextPut("cssClass", portlet.getCssClass());
this.portletContainerVC.contextPut(MODE_EDIT, Boolean.FALSE);
......@@ -80,30 +82,31 @@ public class PortletContainer extends BasicController implements PortletContaine
moveLeftLink = LinkFactory.createCustomLink("move.left", "move.left", null, Link.NONTRANSLATED, toolboxContainer, this);
moveLeftLink.setTooltip(translate("move.left"));
moveLeftLink.setTextReasonForDisabling(translate("move.left.impossible"));
moveLeftLink.setCustomEnabledLinkCSS("b_portlet_edit_left");
moveLeftLink.setCustomDisabledLinkCSS("b_portlet_edit_left_disabled");
moveLeftLink.setIconLeftCSS("o_icon o_icon-lg o_icon-fw o_icon_move_left");
moveLeftLink.setElementCssClass("o_portlet_edit_left");
moveUpLink = LinkFactory.createCustomLink("move.up", "move.up", null, Link.NONTRANSLATED, toolboxContainer, this);
moveUpLink.setTooltip(translate("move.up"));
moveUpLink.setTextReasonForDisabling(translate("move.up.impossible"));
moveUpLink.setCustomEnabledLinkCSS("b_portlet_edit_up");
moveUpLink.setCustomDisabledLinkCSS("b_portlet_edit_up_disabled");
moveUpLink.setIconLeftCSS("o_icon o_icon-lg o_icon-fw o_icon_move_up");
moveUpLink.setElementCssClass("o_portlet_edit_up");
moveDownLink = LinkFactory.createCustomLink("move.down", "move.down", null, Link.NONTRANSLATED, toolboxContainer, this);
moveDownLink.setTooltip(translate("move.down"));
moveDownLink.setTextReasonForDisabling(translate("move.down.impossible"));
moveDownLink.setCustomEnabledLinkCSS("b_portlet_edit_down");
moveDownLink.setCustomDisabledLinkCSS("b_portlet_edit_down_disabled");
moveDownLink.setIconLeftCSS("o_icon o_icon-lg o_icon-fw o_icon_move_down");
moveDownLink.setElementCssClass("o_portlet_edit_down");
moveRightLink = LinkFactory.createCustomLink("move.right", "move.right", null, Link.NONTRANSLATED, toolboxContainer, this);
moveRightLink.setTooltip(translate("move.right"));
moveRightLink.setTextReasonForDisabling(translate("move.right.impossible"));
moveRightLink.setCustomEnabledLinkCSS("b_portlet_edit_right");
moveRightLink.setCustomDisabledLinkCSS("b_portlet_edit_right_disabled");
moveRightLink.setIconLeftCSS("o_icon o_icon-lg o_icon-fw o_icon_move_right");
moveRightLink.setElementCssClass("o_portlet_edit_right");
close = LinkFactory.createCustomLink("close", "close", null, Link.NONTRANSLATED, toolboxContainer, this);
close.setTooltip(translate("close"));
close.setCustomEnabledLinkCSS("b_portlet_edit_delete");
close.setIconLeftCSS("o_icon o_icon-lg o_icon-fw o_icon_delete_item");
close.setElementCssClass("o_portlet_edit_delete");
portletContainerVC.put("toolbox", toolboxContainer);
}
......
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