Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into feature/new-approva…
Browse files Browse the repository at this point in the history
…l-gui
  • Loading branch information
mederly committed Mar 10, 2016
2 parents a6ad154 + d344356 commit dbb73f9
Show file tree
Hide file tree
Showing 63 changed files with 4,010 additions and 129 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
@@ -1,2 +1,2 @@
language: java
script: "travis_wait 40 mvn clean install verify"
script: "travis_wait 70 mvn clean install"
Expand Up @@ -463,7 +463,7 @@ public void onClick(AjaxRequestTarget target) {

@Override
public boolean isEnabled() {
return dto.isLink();
return dto.isUseLink();
}
});

Expand All @@ -480,6 +480,14 @@ public boolean isVisible() {

Label bcName = new Label(ID_BC_NAME, dto.getLabel());
bcLink.add(bcName);

item.add(new VisibleEnableBehaviour() {

@Override
public boolean isVisible() {
return dto.isVisible();
}
});
}
};
add(breadcrumbs);
Expand Down
Expand Up @@ -251,23 +251,7 @@ private BoxedTablePanel initTablePanel(BaseSortableDataProvider tableProvider){
List<IColumn<SelectableBean<AssignmentEditorDto>, String>> columns = initColumns();

BoxedTablePanel table = new BoxedTablePanel(ID_TABLE, tableProvider, columns,
UserProfileStorage.TableId.TABLE_ROLES, ITEMS_PER_PAGE){
@Override
protected void onBeforeRender() {
super.onBeforeRender();
long itemCount = this.getDataTable().getItemCount();
if (itemCount == 0 || itemCount % ITEMS_PER_PAGE > 0){
long pageCount = this.getDataTable().getPageCount();
this.getDataTable().setCurrentPage(pageCount);
BaseSortableDataProvider provider = (BaseSortableDataProvider)this.getDataTable().getDataProvider();
List list = provider.getAvailableData();
IModel model = this.getDataTable().getDefaultModel();
if (list != null && model != null) {
list.add(new AssignmentEditorDto(UserDtoStatus.MODIFY, new AssignmentType(), getPageBase()));
}
}
}
};
UserProfileStorage.TableId.TABLE_ROLES, ITEMS_PER_PAGE);
updateBoxedTablePanelStyles(table);
//hide footer menu
table.getFooterMenu().setVisible(false);
Expand Down
Expand Up @@ -29,6 +29,8 @@ public class Breadcrumb implements Serializable {

private IModel<String> label;
private IModel<String> icon;
private boolean useLink = false;
private boolean visible = true;

public Breadcrumb() {
}
Expand Down Expand Up @@ -58,8 +60,20 @@ public void setIcon(IModel<String> icon) {
this.icon = icon;
}

public boolean isLink() {
return false;
public boolean isUseLink() {
return useLink;
}

public void setUseLink(boolean useLink) {
this.useLink = useLink;
}

public boolean isVisible() {
return visible;
}

public void setVisible(boolean visible) {
this.visible = visible;
}

public void redirect(Component component) {
Expand Down
Expand Up @@ -34,6 +34,8 @@ public class BreadcrumbPageClass extends Breadcrumb {

public BreadcrumbPageClass(IModel<String> label) {
super(label);

setUseLink(true);
}

public BreadcrumbPageClass(IModel<String> label, Class<? extends WebPage> page) {
Expand Down Expand Up @@ -61,6 +63,10 @@ public void setParameters(PageParameters parameters) {
this.parameters = parameters;
}

public void setPage(Class<? extends WebPage> page) {
this.page = page;
}

@Override
public void redirect(Component component) {
if (parameters == null) {
Expand All @@ -70,11 +76,6 @@ public void redirect(Component component) {
}
}

@Override
public boolean isLink() {
return true;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
Expand Down
Expand Up @@ -33,6 +33,8 @@ public class BreadcrumbPageInstance extends Breadcrumb {
public BreadcrumbPageInstance(IModel<String> label, WebPage page) {
super(label);

setUseLink(true);

Validate.notNull(page, "Page must not be null");

this.page = page;
Expand All @@ -47,11 +49,6 @@ public void redirect(Component component) {
component.setResponsePage(page);
}

@Override
public boolean isLink() {
return true;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
Expand Down
Expand Up @@ -39,6 +39,7 @@
import org.apache.wicket.request.cycle.RequestCycle;

import java.io.Serializable;
import java.util.List;

/**
* @author Viliam Repan (lazyman)
Expand Down Expand Up @@ -85,7 +86,13 @@ public String getObject() {

WebMarkupContainer link;
if (menu.getPage() != null) {
link = new BookmarkablePageLink(ID_LINK, menu.getPage());
link = new AjaxLink(ID_LINK) {

@Override
public void onClick(AjaxRequestTarget target) {
mainMenuPerformed(menu);
}
};
} else {
link = new WebMarkupContainer(ID_LINK);
}
Expand Down Expand Up @@ -186,6 +193,27 @@ private void menuItemPerformed(MenuItem menu) {
bc.setIcon(new Model<>(mainMenuItem.getIconClass()));
storage.pushBreadcrumb(bc);

List<MenuItem> items = mainMenuItem.getItems();
if (!items.isEmpty()) {
MenuItem first = items.get(0);

BreadcrumbPageClass invisibleBc = new BreadcrumbPageClass(first.getName(), first.getPage(),
first.getParams());
invisibleBc.setVisible(false);
storage.pushBreadcrumb(invisibleBc);
}

setResponsePage(menu.getPage(), menu.getParams());
}

private void mainMenuPerformed(MainMenuItem menu) {
SessionStorage storage = getPageBase().getSessionStorage();
storage.clearBreadcrumbs();

if (menu.getParams() == null) {
setResponsePage(menu.getPage());
} else {
setResponsePage(menu.getPage(), menu.getParams());
}
}
}
Expand Up @@ -48,6 +48,8 @@ public abstract class AbstractObjectMainPanel<O extends ObjectType> extends Pane
private static final String ID_MAIN_FORM = "mainForm";
private static final String ID_TAB_PANEL = "tabPanel";
private static final String ID_EXECUTE_OPTIONS = "executeOptions";
private static final String ID_BACK = "back";
private static final String ID_SAVE = "save";

private static final Trace LOGGER = TraceManager.getTrace(AbstractObjectMainPanel.class);

Expand Down Expand Up @@ -140,7 +142,7 @@ protected void initLayoutButtons(PageAdminObjectDetails<O> parentPage) {
}

protected void initLayoutSaveButton(final PageAdminObjectDetails<O> parentPage) {
AjaxSubmitButton saveButton = new AjaxSubmitButton("save", parentPage.createStringResource("pageAdminFocus.button.save")) {
AjaxSubmitButton saveButton = new AjaxSubmitButton(ID_SAVE, parentPage.createStringResource("pageAdminFocus.button.save")) {

@Override
protected void onSubmit(AjaxRequestTarget target,
Expand All @@ -159,11 +161,11 @@ protected void onError(AjaxRequestTarget target,
}

protected void initLayoutBackButton(PageAdminObjectDetails<O> parentPage) {
AjaxButton back = new AjaxButton("back", parentPage.createStringResource("pageAdminFocus.button.back")) {
AjaxButton back = new AjaxButton(ID_BACK, parentPage.createStringResource("pageAdminFocus.button.back")) {

@Override
public void onClick(AjaxRequestTarget target) {
getDetailsPage().goBackPage();
backPerformed(target);
}

};
Expand All @@ -173,10 +175,12 @@ public void onClick(AjaxRequestTarget target) {
public ExecuteChangeOptionsDto getExecuteChangeOptionsDto() {
return executeOptionsModel.getObject();
}


private void backPerformed(AjaxRequestTarget target) {
getDetailsPage().redirectBack();
}

protected PageAdminObjectDetails<O> getDetailsPage() {
return (PageAdminObjectDetails<O>)getPage();
}

}
Expand Up @@ -19,7 +19,7 @@
<wicket:panel>
<div class="box box-default">
<!--collapsed-box-->
<div class="box-header" style="margin-top: -10px">
<div class="box-header with-border" style="margin-top: -10px">
<div class="visible" wicket:id="header">
<div class="col-xs-4 container-name" wicket:id="label"/>

Expand All @@ -29,7 +29,7 @@
</div>
</div>
</div>
<div class="attributeComponent box-body">
<div class="attributeComponent box-body" style="padding: 0;">
<div wicket:id="properties">
<div class="row" wicket:id="property"/>
</div>
Expand Down
Expand Up @@ -103,7 +103,6 @@
import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;

public abstract class PageAdminFocus<F extends FocusType> extends PageAdminObjectDetails<F>

implements ProgressReportingAwarePage {

public static final String AUTH_USERS_ALL = AuthorizationConstants.AUTZ_UI_USERS_ALL_URL;
Expand Down
Expand Up @@ -616,6 +616,8 @@ protected void performAdditionalValidation(PrismObject<O> object,
}

// TODO: fix name, confusing. clashes with goBack()
// todo: we should navigate using breadcrumb stack [lazyman]
@Deprecated
public void goBackPage() {
StringValue orgReturn = getPageParameters().get(PARAM_RETURN_PAGE);
if (PageOrgTree.PARAM_ORG_RETURN.equals(orgReturn.toString())) {
Expand Down
Expand Up @@ -21,6 +21,7 @@
import java.util.Collections;
import java.util.List;

import com.evolveum.midpoint.web.component.breadcrumbs.Breadcrumb;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.model.IModel;
Expand Down Expand Up @@ -95,7 +96,15 @@ public PageDashboard() {
principalModel.setObject(loadUserSelf(PageDashboard.this));
initLayout();
}


@Override
protected void createBreadcrumb() {
super.createBreadcrumb();

Breadcrumb bc = getSessionStorage().peekBreadcrumb();
bc.setIcon(new Model("fa fa-dashboard"));
}

private void initLayout() {
initPersonalInfo();
initMyAccounts();
Expand Down
Expand Up @@ -68,6 +68,7 @@ public static enum Operation {MOVE, ADD, REMOVE, RECOMPUTE}

private static final String DOT_CLASS = OrgUnitBrowser.class.getName() + ".";
private static final String OPERATION_LOAD_PARENT_ORG_REFS = DOT_CLASS + "loadParentOrgRefs";
private static final String OPERATION_LOAD_CHILD_ORGS = DOT_CLASS + "loadChildOrgOids";

private static final String ID_BASIC_SEARCH = "basicSearch";
private static final String ID_TABLE = "table";
Expand Down Expand Up @@ -272,11 +273,29 @@ private ObjectQuery createQueryFromSelected() {
for(OrgTableDto dto: selected){
oids.add(dto.getOid());
}
//exclude child org units
oids.addAll(getChildOrgOids());

ObjectFilter oidFilter = InOidFilter.createInOid(oids);
return ObjectQuery.createObjectQuery(NotFilter.createNot(oidFilter));
}

private List<String> getChildOrgOids (){
List<String> childOrgsList = new ArrayList<>();
for(OrgTableDto dto: selected){
OperationResult result = new OperationResult(OPERATION_LOAD_CHILD_ORGS);
OrgFilter orgFilter = OrgFilter.createOrg(dto.getOid(), OrgFilter.Scope.SUBTREE);
List<PrismObject<OrgType>> list = WebModelServiceUtils.searchObjects(OrgType.class, ObjectQuery.createObjectQuery(orgFilter),
result, getPageBase());
if (list != null && list.size() > 0){
for (PrismObject<OrgType> prismObject : list){
childOrgsList.add(prismObject.getOid());
}
}
}
return childOrgsList;
}

private List<IColumn<OrgTableDto, String>> initColumns() {
List<IColumn<OrgTableDto, String>> columns = new ArrayList<>();

Expand Down
Expand Up @@ -1024,7 +1024,7 @@ private void moveConfirmedPerformed(AjaxRequestTarget target, OrgTreeDto oldPare
model.executeChanges(WebComponentUtil.createDeltaCollection(delta), null,
page.createSimpleTask(OPERATION_MOVE_OBJECT), subResult);
} catch (Exception ex) {
subResult.recordFatalError("Couldn't move object " + null + " to " + null + ".", ex);
subResult.recordFatalError("Couldn't move object " + object.getName() + " to " + newParent.getName() + ".", ex);
LoggingUtils.logException(LOGGER, "Couldn't move object {} to {}", ex, object.getName());
} finally {
subResult.computeStatusIfUnknown();
Expand Down
Expand Up @@ -24,6 +24,7 @@
import com.evolveum.midpoint.web.application.PageDescriptor;
import com.evolveum.midpoint.web.component.AjaxSubmitButton;
import com.evolveum.midpoint.web.component.TabbedPanel;
import com.evolveum.midpoint.web.component.breadcrumbs.Breadcrumb;
import com.evolveum.midpoint.web.component.data.TablePanel;
import com.evolveum.midpoint.web.component.prism.ContainerStatus;
import com.evolveum.midpoint.web.component.prism.ObjectWrapper;
Expand All @@ -46,6 +47,7 @@
import org.apache.wicket.markup.html.form.CheckBox;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;

import java.util.ArrayList;
import java.util.Collection;
Expand Down Expand Up @@ -95,6 +97,14 @@ protected MyPasswordsDto load() {
initLayout();
}

@Override
protected void createBreadcrumb() {
super.createBreadcrumb();

Breadcrumb bc = getSessionStorage().peekBreadcrumb();
bc.setIcon(new Model("fa fa-shield"));
}

public PageSelfCredentials(final MyPasswordsDto myPasswordsDto) {
model = new LoadableModel<MyPasswordsDto>(myPasswordsDto, false) {

Expand Down
Expand Up @@ -31,6 +31,7 @@
import com.evolveum.midpoint.web.application.AuthorizationAction;
import com.evolveum.midpoint.web.application.PageDescriptor;
import com.evolveum.midpoint.web.component.SecurityContextAwareCallable;
import com.evolveum.midpoint.web.component.breadcrumbs.Breadcrumb;
import com.evolveum.midpoint.web.component.util.CallableResult;
import com.evolveum.midpoint.web.component.util.ListDataProvider;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
Expand Down Expand Up @@ -96,6 +97,14 @@ public PageSelfDashboard() {
initLayout();
}

@Override
protected void createBreadcrumb() {
super.createBreadcrumb();

Breadcrumb bc = getSessionStorage().peekBreadcrumb();
bc.setIcon(new Model("fa fa-dashboard"));
}

private void initLayout(){
DashboardSearchPanel dashboardSearchPanel = new DashboardSearchPanel(ID_SEARCH_PANEL, null);
add(dashboardSearchPanel);
Expand Down

0 comments on commit dbb73f9

Please sign in to comment.