Next part of UI for SciProject
parent
2ba30e3e15
commit
1129e7e61d
|
|
@ -0,0 +1,29 @@
|
||||||
|
{
|
||||||
|
"name": "sci-types-project",
|
||||||
|
"version: "7.0.0",
|
||||||
|
"description": "JavaScript parts of the UI of sci-types-project",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"build": "npm-run-all build:*",
|
||||||
|
"build:js": "webpack"
|
||||||
|
},
|
||||||
|
"author": "Jens Pelzetter",
|
||||||
|
"license": "LGPL-3.0-or-later",
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/jquery": "^3.5.6",
|
||||||
|
"@types/sortablejs": "^1.10.7",
|
||||||
|
"npm-run-all": "^4.1.5",
|
||||||
|
"sass": "^1.42.1",
|
||||||
|
"ts-loader": "^9.2.6",
|
||||||
|
"typescript": "^4.4.3",
|
||||||
|
"webpack": "^5.55.1",
|
||||||
|
"webpack-cli": "^4.8.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@librecms/ccm-cms": "7.0.0"
|
||||||
|
},
|
||||||
|
"targets": {
|
||||||
|
"main": false
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -20,6 +20,8 @@ public class SciProjectDescriptionContactsModel {
|
||||||
private boolean canEdit;
|
private boolean canEdit;
|
||||||
|
|
||||||
private List<SciProjectContactModel> contacts;
|
private List<SciProjectContactModel> contacts;
|
||||||
|
|
||||||
|
private String baseUrl;
|
||||||
|
|
||||||
public boolean getCanEdit() {
|
public boolean getCanEdit() {
|
||||||
return canEdit;
|
return canEdit;
|
||||||
|
|
@ -40,4 +42,12 @@ public class SciProjectDescriptionContactsModel {
|
||||||
public String getContactableType() {
|
public String getContactableType() {
|
||||||
return ContactableEntity.class.getName();
|
return ContactableEntity.class.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getBaseUrl() {
|
||||||
|
return baseUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setBaseUrl(final String baseUrl) {
|
||||||
|
this.baseUrl = baseUrl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,8 @@ public class SciProjectDescriptionMembersModel {
|
||||||
private List<SciProjectMembershipModel> members;
|
private List<SciProjectMembershipModel> members;
|
||||||
|
|
||||||
private Map<String, String> statusValues;
|
private Map<String, String> statusValues;
|
||||||
|
|
||||||
|
private String baseUrl;
|
||||||
|
|
||||||
public boolean getCanEdit() {
|
public boolean getCanEdit() {
|
||||||
return canEdit;
|
return canEdit;
|
||||||
|
|
@ -56,4 +58,12 @@ public class SciProjectDescriptionMembersModel {
|
||||||
protected void setStatusValues(final Map<String, String> statusValues) {
|
protected void setStatusValues(final Map<String, String> statusValues) {
|
||||||
this.statusValues = new LinkedHashMap<>(statusValues);
|
this.statusValues = new LinkedHashMap<>(statusValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getBaseUrl() {
|
||||||
|
return baseUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setBaseUrl(final String baseUrl) {
|
||||||
|
this.baseUrl = baseUrl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ package org.scientificcms.contenttypes.sciproject.ui;
|
||||||
|
|
||||||
import org.libreccm.l10n.GlobalizationHelper;
|
import org.libreccm.l10n.GlobalizationHelper;
|
||||||
import org.libreccm.security.AuthorizationRequired;
|
import org.libreccm.security.AuthorizationRequired;
|
||||||
|
import org.libreccm.ui.BaseUrl;
|
||||||
import org.librecms.assets.ContactableEntity;
|
import org.librecms.assets.ContactableEntity;
|
||||||
import org.librecms.assets.Person;
|
import org.librecms.assets.Person;
|
||||||
import org.librecms.contentsection.AssetRepository;
|
import org.librecms.contentsection.AssetRepository;
|
||||||
|
|
@ -53,12 +54,14 @@ import javax.enterprise.context.RequestScoped;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.mvc.Controller;
|
import javax.mvc.Controller;
|
||||||
import javax.mvc.Models;
|
import javax.mvc.Models;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.transaction.Transactional;
|
import javax.transaction.Transactional;
|
||||||
import javax.ws.rs.FormParam;
|
import javax.ws.rs.FormParam;
|
||||||
import javax.ws.rs.GET;
|
import javax.ws.rs.GET;
|
||||||
import javax.ws.rs.POST;
|
import javax.ws.rs.POST;
|
||||||
import javax.ws.rs.Path;
|
import javax.ws.rs.Path;
|
||||||
import javax.ws.rs.PathParam;
|
import javax.ws.rs.PathParam;
|
||||||
|
import javax.ws.rs.core.Context;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -80,6 +83,9 @@ public class SciProjectDescriptionStep extends AbstractMvcAuthoringStep {
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private AssetRepository assetRepo;
|
private AssetRepository assetRepo;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private BaseUrl baseUrl;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private ContentItemRepository itemRepo;
|
private ContentItemRepository itemRepo;
|
||||||
|
|
@ -93,6 +99,9 @@ public class SciProjectDescriptionStep extends AbstractMvcAuthoringStep {
|
||||||
@Inject
|
@Inject
|
||||||
private GlobalizationHelper globalizationHelper;
|
private GlobalizationHelper globalizationHelper;
|
||||||
|
|
||||||
|
@Context
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private ItemPermissionChecker itemPermissionChecker;
|
private ItemPermissionChecker itemPermissionChecker;
|
||||||
|
|
||||||
|
|
@ -179,7 +188,7 @@ public class SciProjectDescriptionStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -222,7 +231,7 @@ public class SciProjectDescriptionStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -256,7 +265,7 @@ public class SciProjectDescriptionStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -291,7 +300,7 @@ public class SciProjectDescriptionStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -325,7 +334,7 @@ public class SciProjectDescriptionStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -369,7 +378,7 @@ public class SciProjectDescriptionStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -421,7 +430,7 @@ public class SciProjectDescriptionStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -469,7 +478,7 @@ public class SciProjectDescriptionStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -525,7 +534,7 @@ public class SciProjectDescriptionStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -580,7 +589,7 @@ public class SciProjectDescriptionStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -628,7 +637,7 @@ public class SciProjectDescriptionStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -683,6 +692,7 @@ public class SciProjectDescriptionStep extends AbstractMvcAuthoringStep {
|
||||||
.map(this::buildContactModel)
|
.map(this::buildContactModel)
|
||||||
.collect(Collectors.toList())
|
.collect(Collectors.toList())
|
||||||
);
|
);
|
||||||
|
contactsModel.setBaseUrl(baseUrl.getBaseUrl(request));
|
||||||
|
|
||||||
membersModel.setCanEdit(canEdit);
|
membersModel.setCanEdit(canEdit);
|
||||||
membersModel.setMembers(
|
membersModel.setMembers(
|
||||||
|
|
@ -709,6 +719,7 @@ public class SciProjectDescriptionStep extends AbstractMvcAuthoringStep {
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
membersModel.setBaseUrl(baseUrl.getBaseUrl(request));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
package org.scientificcms.contenttypes.sciproject.ui;
|
package org.scientificcms.contenttypes.sciproject.ui;
|
||||||
|
|
||||||
|
import org.librecms.assets.Organization;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -9,18 +11,20 @@ import javax.inject.Named;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
*/
|
*/
|
||||||
@RequestScoped
|
@RequestScoped
|
||||||
@Named("SciProjectFundingSponsoring")
|
@Named("SciProjectFundingSponsoring")
|
||||||
public class SciProjectFundingSponsoringModel {
|
public class SciProjectFundingSponsoringModel {
|
||||||
|
|
||||||
private boolean canEdit;
|
private boolean canEdit;
|
||||||
|
|
||||||
private List<SciProjectSponsoringModel> sponsoring;
|
private List<SciProjectSponsoringModel> sponsoring;
|
||||||
|
|
||||||
public boolean getCanEdit() {
|
private String baseUrl;
|
||||||
|
|
||||||
|
public boolean getCanEdit() {
|
||||||
return canEdit;
|
return canEdit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -37,5 +41,17 @@ public class SciProjectFundingSponsoringModel {
|
||||||
) {
|
) {
|
||||||
this.sponsoring = new ArrayList<>(sponsoring);
|
this.sponsoring = new ArrayList<>(sponsoring);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getSponsorType() {
|
||||||
|
return Organization.class.getName();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBaseUrl() {
|
||||||
|
return baseUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setBaseUrl(final String baseUrl) {
|
||||||
|
this.baseUrl = baseUrl;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package org.scientificcms.contenttypes.sciproject.ui;
|
||||||
|
|
||||||
import org.libreccm.l10n.GlobalizationHelper;
|
import org.libreccm.l10n.GlobalizationHelper;
|
||||||
import org.libreccm.security.AuthorizationRequired;
|
import org.libreccm.security.AuthorizationRequired;
|
||||||
|
import org.libreccm.ui.BaseUrl;
|
||||||
import org.librecms.assets.Organization;
|
import org.librecms.assets.Organization;
|
||||||
import org.librecms.contentsection.AssetRepository;
|
import org.librecms.contentsection.AssetRepository;
|
||||||
import org.librecms.contentsection.ContentItemRepository;
|
import org.librecms.contentsection.ContentItemRepository;
|
||||||
|
|
@ -28,12 +29,14 @@ import javax.enterprise.context.RequestScoped;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.mvc.Controller;
|
import javax.mvc.Controller;
|
||||||
import javax.mvc.Models;
|
import javax.mvc.Models;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.transaction.Transactional;
|
import javax.transaction.Transactional;
|
||||||
import javax.ws.rs.FormParam;
|
import javax.ws.rs.FormParam;
|
||||||
import javax.ws.rs.GET;
|
import javax.ws.rs.GET;
|
||||||
import javax.ws.rs.POST;
|
import javax.ws.rs.POST;
|
||||||
import javax.ws.rs.Path;
|
import javax.ws.rs.Path;
|
||||||
import javax.ws.rs.PathParam;
|
import javax.ws.rs.PathParam;
|
||||||
|
import javax.ws.rs.core.Context;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -55,6 +58,9 @@ public class SciProjectFundingStep extends AbstractMvcAuthoringStep {
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private AssetRepository assetRepo;
|
private AssetRepository assetRepo;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private BaseUrl baseUrl;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private ContentItemRepository itemRepo;
|
private ContentItemRepository itemRepo;
|
||||||
|
|
@ -65,6 +71,9 @@ public class SciProjectFundingStep extends AbstractMvcAuthoringStep {
|
||||||
@Inject
|
@Inject
|
||||||
private GlobalizationHelper globalizationHelper;
|
private GlobalizationHelper globalizationHelper;
|
||||||
|
|
||||||
|
@Context
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private ItemPermissionChecker itemPermissionChecker;
|
private ItemPermissionChecker itemPermissionChecker;
|
||||||
|
|
||||||
|
|
@ -115,7 +124,7 @@ public class SciProjectFundingStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -149,7 +158,7 @@ public class SciProjectFundingStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -191,7 +200,7 @@ public class SciProjectFundingStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -225,7 +234,7 @@ public class SciProjectFundingStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -260,7 +269,7 @@ public class SciProjectFundingStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -294,7 +303,7 @@ public class SciProjectFundingStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -328,7 +337,7 @@ public class SciProjectFundingStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -370,7 +379,7 @@ public class SciProjectFundingStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -404,7 +413,7 @@ public class SciProjectFundingStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -439,7 +448,7 @@ public class SciProjectFundingStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -473,7 +482,7 @@ public class SciProjectFundingStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -481,7 +490,7 @@ public class SciProjectFundingStep extends AbstractMvcAuthoringStep {
|
||||||
@POST
|
@POST
|
||||||
@Path("/sponsoring/add")
|
@Path("/sponsoring/add")
|
||||||
@Transactional(Transactional.TxType.REQUIRED)
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
public String addSponsoringing(
|
public String addSponsoring(
|
||||||
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
|
@PathParam(MvcAuthoringSteps.SECTION_IDENTIFIER_PATH_PARAM)
|
||||||
final String sectionIdentifier,
|
final String sectionIdentifier,
|
||||||
@PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME)
|
@PathParam(MvcAuthoringSteps.DOCUMENT_PATH_PATH_PARAM_NAME)
|
||||||
|
|
@ -516,7 +525,7 @@ public class SciProjectFundingStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -567,7 +576,7 @@ public class SciProjectFundingStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -615,7 +624,7 @@ public class SciProjectFundingStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getProject(),
|
getProject(),
|
||||||
sciProjectMessageBundle.getMessage("event.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -705,6 +714,7 @@ public class SciProjectFundingStep extends AbstractMvcAuthoringStep {
|
||||||
.map(this::buildSponsoringModel)
|
.map(this::buildSponsoringModel)
|
||||||
.collect(Collectors.toList())
|
.collect(Collectors.toList())
|
||||||
);
|
);
|
||||||
|
sponsoringModel.setBaseUrl(baseUrl.getBaseUrl(request));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -106,6 +106,8 @@ public class SciProjectMembershipModel {
|
||||||
builder.append(" ");
|
builder.append(" ");
|
||||||
builder.append(suffix);
|
builder.append(suffix);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return builder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getGivenName() {
|
public String getGivenName() {
|
||||||
|
|
|
||||||
|
|
@ -184,7 +184,7 @@ public class SciProjectPropertiesStep extends AbstractMvcAuthoringStep {
|
||||||
return documentUi.showAccessDenied(
|
return documentUi.showAccessDenied(
|
||||||
getContentSection(),
|
getContentSection(),
|
||||||
getDocument(),
|
getDocument(),
|
||||||
sciProjectMessageBundle.getMessage("project.edit.denied")
|
sciProjectMessageBundle.getMessage("sciproject.edit.denied")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,141 +0,0 @@
|
||||||
/*
|
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
|
||||||
* To change this template file, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
|
||||||
package org.scientificcms.pagemodel.contentitems;
|
|
||||||
|
|
||||||
import org.librecms.assets.ContactableEntity;
|
|
||||||
import org.librecms.assets.Organization;
|
|
||||||
import org.librecms.assets.Person;
|
|
||||||
import org.librecms.contentsection.ContentItem;
|
|
||||||
import org.librecms.pagemodel.assets.AbstractAssetRenderer;
|
|
||||||
import org.librecms.pagemodel.assets.AssetRenderers;
|
|
||||||
import org.librecms.pagemodel.contentitems.AbstractContentItemRenderer;
|
|
||||||
import org.librecms.pagemodel.contentitems.ContentItemRenderer;
|
|
||||||
import org.scientificcms.contenttypes.sciproject.Contact;
|
|
||||||
import org.scientificcms.contenttypes.sciproject.Membership;
|
|
||||||
import org.scientificcms.contenttypes.sciproject.SciProject;
|
|
||||||
import org.scientificcms.contenttypes.sciproject.Sponsoring;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import javax.enterprise.context.RequestScoped;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
|
||||||
*/
|
|
||||||
@ContentItemRenderer(renders = SciProject.class)
|
|
||||||
@RequestScoped
|
|
||||||
public class SciProjectRenderer extends AbstractContentItemRenderer {
|
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
private AssetRenderers assetRenderers;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void renderItem(final ContentItem item,
|
|
||||||
final Locale language,
|
|
||||||
final Map<String, Object> result) {
|
|
||||||
|
|
||||||
final SciProject project;
|
|
||||||
if (item instanceof SciProject) {
|
|
||||||
project = (SciProject) item;
|
|
||||||
} else {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
result.put("begin", project.getBegin());
|
|
||||||
result.put("end", project.getEnd());
|
|
||||||
|
|
||||||
result.put("shortDescription",
|
|
||||||
project.getShortDescription().getValue(language));
|
|
||||||
result.put("projectDescription",
|
|
||||||
project.getProjectDescription().getValue(language));
|
|
||||||
result.put("funding",
|
|
||||||
project.getFunding().getValue(language));
|
|
||||||
result.put("fundingVolume",
|
|
||||||
project.getFundingVolume().getValue(language));
|
|
||||||
|
|
||||||
result.put("contacts",
|
|
||||||
project
|
|
||||||
.getContacts()
|
|
||||||
.stream()
|
|
||||||
.map(contact -> renderContact(contact, language))
|
|
||||||
.collect(Collectors.toList())
|
|
||||||
);
|
|
||||||
result.put("members",
|
|
||||||
project
|
|
||||||
.getMembers()
|
|
||||||
.stream()
|
|
||||||
.map(member -> renderMember(member, language))
|
|
||||||
.collect(Collectors.toList()));
|
|
||||||
result.put("sponsoring",
|
|
||||||
project
|
|
||||||
.getSponsoring()
|
|
||||||
.stream()
|
|
||||||
.map(sponsoring -> renderSponsoring(sponsoring, language))
|
|
||||||
.collect(Collectors.toList()));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected AssetRenderers getAssetRenderers() {
|
|
||||||
return assetRenderers;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Map<String, Object> renderContact(final Contact contact,
|
|
||||||
final Locale language) {
|
|
||||||
|
|
||||||
final Map<String, Object> result = new HashMap<>();
|
|
||||||
result.put("contactId", contact.getContactId());
|
|
||||||
result.put("contactType", contact.getContactType());
|
|
||||||
result.put("order", contact.getOrder());
|
|
||||||
|
|
||||||
final ContactableEntity contactable = contact.getContactable();
|
|
||||||
final AbstractAssetRenderer contactableRenderer = assetRenderers
|
|
||||||
.findRenderer(contactable.getClass());
|
|
||||||
result.put("contactable", contactableRenderer.render(contactable,
|
|
||||||
language));
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Map<String, Object> renderMember(final Membership membership,
|
|
||||||
final Locale language) {
|
|
||||||
|
|
||||||
final Map<String, Object> result = new HashMap<>();
|
|
||||||
result.put("membershipId", membership.getMembershipId());
|
|
||||||
result.put("role", membership.getRole());
|
|
||||||
result.put("status", membership.getStatus().toString());
|
|
||||||
|
|
||||||
final Person member = membership.getMember();
|
|
||||||
final AbstractAssetRenderer memberRenderer = assetRenderers
|
|
||||||
.findRenderer(member.getClass());
|
|
||||||
result.put("member", memberRenderer.render(member, language));
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Map<String, Object> renderSponsoring(final Sponsoring sponsoring,
|
|
||||||
final Locale language) {
|
|
||||||
|
|
||||||
final Map<String, Object> result = new HashMap<>();
|
|
||||||
result.put("sponsoringId", sponsoring.getSponsoringId());
|
|
||||||
result.put("fundingCode", sponsoring.getFundingCode());
|
|
||||||
result.put("order", sponsoring.getOrder());
|
|
||||||
|
|
||||||
final Organization sponsor = sponsoring.getSponsor();
|
|
||||||
final AbstractAssetRenderer sponsorRenderer = assetRenderers
|
|
||||||
.findRenderer(sponsor.getClass());
|
|
||||||
result.put("sponsor", sponsorRenderer.render(sponsor, language));
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
<!DOCTYPE html [<!ENTITY times '×'>]>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||||
|
xmlns:bootstrap="http://xmlns.jcp.org/jsf/composite/components/bootstrap"
|
||||||
|
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
|
||||||
|
xmlns:libreccm="http://xmlns.jcp.org/jsf/composite/components/libreccm"
|
||||||
|
xmlns:librecms="http://xmlns.jcp.org/jsf/composite/components/librecms"
|
||||||
|
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
|
||||||
|
<ui:composition template="/WEB-INF/views/org/librecms/ui/contentsection/documents/authoringstep.xhtml">
|
||||||
|
|
||||||
|
<ui:define name="authoringStep">
|
||||||
|
<div class="d-flex">
|
||||||
|
<a class="btn btn-secondary btn-sm align-self-center mr-2"
|
||||||
|
href="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemName}/@sciproject-description">
|
||||||
|
<bootstrap:svgIcon icon="caret-left-fill" />
|
||||||
|
<span class="sr-only">#{SciProjectMessageBundle['description_step.back']}</span>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<h2>#{SciProjectMessageBundle['description_step.description.header.edit']}</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<c:if test="#{SciProjectDescriptionModel.canEdit}">
|
||||||
|
<librecms:cmsEditor
|
||||||
|
backUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-description"
|
||||||
|
baseUrl="#{mvc.basePath}"
|
||||||
|
canEdit="#{SciProjectDescriptionModel.canEdit}"
|
||||||
|
contentSection="#{ContentSectionModel.sectionName}"
|
||||||
|
editMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-description/description/edit"
|
||||||
|
editorId="sciproject-description-editor"
|
||||||
|
objectIdentifier="#{CmsSelectedDocumentModel.itemPath}"
|
||||||
|
selectedLocale="#{SciProjectDescriptionModel.selectedLocale}"
|
||||||
|
title="#{SciProjectMessageBundle['description.editor.header']}"
|
||||||
|
variantUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-description/description/variants"
|
||||||
|
/>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
</ui:define>
|
||||||
|
|
||||||
|
<ui:define name="scripts">
|
||||||
|
<script src="#{request.contextPath}/assets/@content-sections/sciproject-description.js"></script>
|
||||||
|
</ui:define>
|
||||||
|
|
||||||
|
</ui:composition>
|
||||||
|
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html [<!ENTITY times '×'>]>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||||
|
xmlns:bootstrap="http://xmlns.jcp.org/jsf/composite/components/bootstrap"
|
||||||
|
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
|
||||||
|
xmlns:h="http://xmlns.jcp.org/jsf/html"
|
||||||
|
xmlns:libreccm="http://xmlns.jcp.org/jsf/composite/components/libreccm"
|
||||||
|
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
|
||||||
|
<ui:composition template="/WEB-INF/views/org/librecms/ui/contentsection/documents/authoringstep.xhtml">
|
||||||
|
|
||||||
|
<ui:define name="authoringStep">
|
||||||
|
<div class="d-flex">
|
||||||
|
<a class="btn btn-secondary btn-sm align-self-center mr-2"
|
||||||
|
href="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemName}/@sciproject-description">
|
||||||
|
<bootstrap:svgIcon icon="caret-left-fill" />
|
||||||
|
<span class="sr-only">#{SciProjectMessageBundle['description_step.back']}</span>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<h2>#{SciProjectMessageBundle['description_step.description.header.view']}</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<c:if test="#{SciProjectDescriptionModel.canEdit}">
|
||||||
|
<div class="text-right">
|
||||||
|
<a class="btn btn-secondary"
|
||||||
|
href="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-description/description/edit">
|
||||||
|
<bootstrap:svgIcon icon="pen" />
|
||||||
|
<span class="sr-only">#{SciProjectMessageBundle['description_step.edit']}</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
<div class="cms-text-preview article-text border p-2">
|
||||||
|
<h:outputText escape="false"
|
||||||
|
value="#{SciProjectDescriptionModel.descriptionValues.get(SciProjectDescriptionModel.selectedLocale)}" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</ui:composition>
|
||||||
|
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
<!DOCTYPE html [<!ENTITY times '×'>]>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||||
|
xmlns:bootstrap="http://xmlns.jcp.org/jsf/composite/components/bootstrap"
|
||||||
|
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
|
||||||
|
xmlns:libreccm="http://xmlns.jcp.org/jsf/composite/components/libreccm"
|
||||||
|
xmlns:librecms="http://xmlns.jcp.org/jsf/composite/components/librecms"
|
||||||
|
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
|
||||||
|
<ui:composition template="/WEB-INF/views/org/librecms/ui/contentsection/documents/authoringstep.xhtml">
|
||||||
|
|
||||||
|
<ui:define name="authoringStep">
|
||||||
|
<div class="d-flex">
|
||||||
|
<a class="btn btn-secondary btn-sm align-self-center mr-2"
|
||||||
|
href="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemName}/@sciproject-funding">
|
||||||
|
<bootstrap:svgIcon icon="caret-left-fill" />
|
||||||
|
<span class="sr-only">#{SciProjectMessageBundle['funding_step.back']}</span>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<h2>#{SciProjectMessageBundle['funding_step.fundingtext.header.edit']}</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<c:if test="#{SciProjectFundingText.canEdit}">
|
||||||
|
<librecms:cmsEditor
|
||||||
|
backUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-funding"
|
||||||
|
baseUrl="#{mvc.basePath}"
|
||||||
|
canEdit="#{SciProjectFundingText.canEdit}"
|
||||||
|
contentSection="#{ContentSectionModel.sectionName}"
|
||||||
|
editMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-funding/funding-text/edit"
|
||||||
|
editorId="sciproject-fundingtext-editor"
|
||||||
|
objectIdentifier="#{CmsSelectedDocumentModel.itemPath}"
|
||||||
|
selectedLocale="#{SciProjectFundingText.selectedLocale}"
|
||||||
|
title="#{SciProjectMessageBundle['fundingtext.editor.header']}"
|
||||||
|
variantUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-funding/funding-text/variants"
|
||||||
|
/>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
</ui:define>
|
||||||
|
|
||||||
|
<ui:define name="scripts">
|
||||||
|
<script src="#{request.contextPath}/assets/@content-sections/sciproject-fundingtext.js"></script>
|
||||||
|
</ui:define>
|
||||||
|
|
||||||
|
</ui:composition>
|
||||||
|
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html [<!ENTITY times '×'>]>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||||
|
xmlns:bootstrap="http://xmlns.jcp.org/jsf/composite/components/bootstrap"
|
||||||
|
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
|
||||||
|
xmlns:h="http://xmlns.jcp.org/jsf/html"
|
||||||
|
xmlns:libreccm="http://xmlns.jcp.org/jsf/composite/components/libreccm"
|
||||||
|
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
|
||||||
|
<ui:composition template="/WEB-INF/views/org/librecms/ui/contentsection/documents/authoringstep.xhtml">
|
||||||
|
|
||||||
|
<ui:define name="authoringStep">
|
||||||
|
<div class="d-flex">
|
||||||
|
<a class="btn btn-secondary btn-sm align-self-center mr-2"
|
||||||
|
href="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemName}/@sciproject-funding">
|
||||||
|
<bootstrap:svgIcon icon="caret-left-fill" />
|
||||||
|
<span class="sr-only">#{SciProjectMessageBundle['funding_step.back']}</span>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<h2>#{SciProjectMessageBundle['funding_step.fundingtext.header.view']}</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<c:if test="#{SciProjectFundingText.canEdit}">
|
||||||
|
<div class="text-right">
|
||||||
|
<a class="btn btn-secondary"
|
||||||
|
href="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-funding/funding-text/edit">
|
||||||
|
<bootstrap:svgIcon icon="pen" />
|
||||||
|
<span class="sr-only">#{SciProjectMessageBundle['funding_step.edit']}</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
<div class="cms-text-preview article-text border p-2">
|
||||||
|
<h:outputText escape="false"
|
||||||
|
value="#{SciProjectFundingText.fundingValues.get(SciProjectFundingText.selectedLocale)}" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</ui:composition>
|
||||||
|
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
<!DOCTYPE html [<!ENTITY times '×'>]>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||||
|
xmlns:bootstrap="http://xmlns.jcp.org/jsf/composite/components/bootstrap"
|
||||||
|
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
|
||||||
|
xmlns:libreccm="http://xmlns.jcp.org/jsf/composite/components/libreccm"
|
||||||
|
xmlns:librecms="http://xmlns.jcp.org/jsf/composite/components/librecms"
|
||||||
|
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
|
||||||
|
<ui:composition template="/WEB-INF/views/org/librecms/ui/contentsection/documents/authoringstep.xhtml">
|
||||||
|
|
||||||
|
<ui:define name="authoringStep">
|
||||||
|
<div class="d-flex">
|
||||||
|
<a class="btn btn-secondary btn-sm align-self-center mr-2"
|
||||||
|
href="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemName}/@sciproject-funding">
|
||||||
|
<bootstrap:svgIcon icon="caret-left-fill" />
|
||||||
|
<span class="sr-only">#{SciProjectMessageBundle['funding_step.back']}</span>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<h2>#{SciProjectMessageBundle['funding_step.fundingvolume.header.edit']}</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<c:if test="#{SciProjectFundingText.canEdit}">
|
||||||
|
<librecms:cmsEditor
|
||||||
|
backUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-funding"
|
||||||
|
baseUrl="#{mvc.basePath}"
|
||||||
|
canEdit="#{SciProjectFundingText.canEdit}"
|
||||||
|
contentSection="#{ContentSectionModel.sectionName}"
|
||||||
|
editMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-funding/funding-volume/edit"
|
||||||
|
editorId="sciproject-funding-volume-editor"
|
||||||
|
objectIdentifier="#{CmsSelectedDocumentModel.itemPath}"
|
||||||
|
selectedLocale="#{SciProjectFundingText.selectedLocale}"
|
||||||
|
title="#{SciProjectMessageBundle['fundingvolume.editor.header']}"
|
||||||
|
variantUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-funding/funding-volume/variants"
|
||||||
|
/>
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
</ui:define>
|
||||||
|
|
||||||
|
<ui:define name="scripts">
|
||||||
|
<script src="#{request.contextPath}/assets/@content-sections/sciproject-fundingvolume.js"></script>
|
||||||
|
</ui:define>
|
||||||
|
|
||||||
|
</ui:composition>
|
||||||
|
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
<!DOCTYPE html [<!ENTITY times '×'>]>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||||
|
xmlns:bootstrap="http://xmlns.jcp.org/jsf/composite/components/bootstrap"
|
||||||
|
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
|
||||||
|
xmlns:h="http://xmlns.jcp.org/jsf/html"
|
||||||
|
xmlns:libreccm="http://xmlns.jcp.org/jsf/composite/components/libreccm"
|
||||||
|
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
|
||||||
|
<ui:composition template="/WEB-INF/views/org/librecms/ui/contentsection/documents/authoringstep.xhtml">
|
||||||
|
|
||||||
|
<ui:define name="authoringStep">
|
||||||
|
<div class="d-flex">
|
||||||
|
<a class="btn btn-secondary btn-sm align-self-center mr-2"
|
||||||
|
href="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemName}/@sciproject-funding">
|
||||||
|
<bootstrap:svgIcon icon="caret-left-fill" />
|
||||||
|
<span class="sr-only">#{SciProjectMessageBundle['funding_step.back']}</span>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<h2>#{SciProjectMessageBundle['funding_step.fundingvolume.header.view']}</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<c:if test="#{SciProjectFundingVolume.canEdit}">
|
||||||
|
<div class="text-right">
|
||||||
|
<a class="btn btn-secondary"
|
||||||
|
href="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-funding/funding-volume/edit">
|
||||||
|
<bootstrap:svgIcon icon="pen" />
|
||||||
|
<span class="sr-only">#{SciProjectMessageBundle['funding_step.edit']}</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
<div class="cms-text-preview article-text border p-2">
|
||||||
|
<h:outputText escape="false"
|
||||||
|
value="#{SciProjectFundingVolume.fundingVolumeValues.get(SciProjectFundingVolume.selectedLocale)}" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</ui:composition>
|
||||||
|
|
||||||
|
</html>
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
value="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-basicproperties" />
|
value="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-basicproperties" />
|
||||||
|
|
||||||
<ui:define name="authoringStep">
|
<ui:define name="authoringStep">
|
||||||
<h2>#{SciProjectMessageBundle.getMessage('basicproperties.header', [SciProjectPropertiesSteo.name])}</h2>
|
<h2>#{SciProjectMessageBundle.getMessage('basicproperties.header', [SciProjectPropertiesStep.name])}</h2>
|
||||||
|
|
||||||
<h3>#{SciProjectMessageBundle['basicproperties.name.header']}</h3>
|
<h3>#{SciProjectMessageBundle['basicproperties.name.header']}</h3>
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
|
|
@ -152,13 +152,13 @@
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<bootstrap:formGroupDateTime
|
<bootstrap:formGroupDate
|
||||||
help="#{SciProjectMessageBundle['basicproperties.begin.edit.dialog.startdate.help']}"
|
help="#{SciProjectMessageBundle['basicproperties.begin.edit.dialog.startdate.help']}"
|
||||||
inputId="startDateTime"
|
inputId="startDateTime"
|
||||||
label="#{SciProjectMessageBundle['basicproperties.begin.edit.dialog.startdate.label']}"
|
label="#{SciProjectMessageBundle['basicproperties.begin.edit.dialog.startdate.label']}"
|
||||||
name="begin"
|
name="begin"
|
||||||
required="true"
|
required="true"
|
||||||
value="#{SciProjectPropertiesStep.startDateTime}"
|
value="#{SciProjectPropertiesStep.begin}"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
|
|
@ -216,13 +216,13 @@
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<bootstrap:formGroupDateTime
|
<bootstrap:formGroupDate
|
||||||
help="#{SciProjectMessageBundle['basicproperties.end.edit.dialog.startdate.help']}"
|
help="#{SciProjectMessageBundle['basicproperties.end.edit.dialog.enddate.help']}"
|
||||||
inputId="startDateTime"
|
inputId="startDateTime"
|
||||||
label="#{SciProjectMessageBundle['basicproperties.end.edit.dialog.startdate.label']}"
|
label="#{SciProjectMessageBundle['basicproperties.end.edit.dialog.enddate.label']}"
|
||||||
name="end"
|
name="end"
|
||||||
required="true"
|
required="true"
|
||||||
value="#{SciProjectPropertiesStep.startDateTime}"
|
value="#{SciProjectPropertiesStep.endDate}"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
|
|
@ -270,6 +270,7 @@
|
||||||
removeMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-basicproperties/short-description/@remove"
|
removeMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-basicproperties/short-description/@remove"
|
||||||
title="#{SciProjectMessageBundle['basicproperties.shortdescription.header']}"
|
title="#{SciProjectMessageBundle['basicproperties.shortdescription.header']}"
|
||||||
unusedLocales="#{SciProjectPropertiesStep.unusedShortDescriptionLocales}"
|
unusedLocales="#{SciProjectPropertiesStep.unusedShortDescriptionLocales}"
|
||||||
|
useTextarea="true"
|
||||||
values="#{SciProjectPropertiesStep.shortDescriptionValues}"
|
values="#{SciProjectPropertiesStep.shortDescriptionValues}"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,77 +65,79 @@
|
||||||
>#{SciProjectMessageBundle['contacts.cols.actions']}</th>
|
>#{SciProjectMessageBundle['contacts.cols.actions']}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<c:forEach items="#{SciProjectDescriptionContacts.contacts}"
|
<tbody>
|
||||||
var="contact">
|
<c:forEach items="#{SciProjectDescriptionContacts.contacts}"
|
||||||
<tr id="#{contact.contactId}">
|
var="contact">
|
||||||
<td>#{contact.contactable}</td>
|
<tr id="#{contact.contactId}">
|
||||||
<td>#{contact.contactType}</td>
|
<td>#{contact.contactable}</td>
|
||||||
<td>
|
<td>#{contact.contactType}</td>
|
||||||
<button class="btn btn-secondary"
|
<td>
|
||||||
data-toggle="modal"
|
<button class="btn btn-secondary"
|
||||||
data-target="#contact-edit-dialog"
|
data-toggle="modal"
|
||||||
type="button">
|
data-target="#contact-edit-dialog"
|
||||||
<bootstrap:svgIcon icon="pen" />
|
type="button">
|
||||||
<span>#{SciProjectMessageBundle['contacts.edit.label']}</span>
|
<bootstrap:svgIcon icon="pen" />
|
||||||
</button>
|
<span>#{SciProjectMessageBundle['contacts.edit.label']}</span>
|
||||||
<div aria-hidden="true"
|
</button>
|
||||||
aria-labelledby="contact-edit-dialog-title"
|
<div aria-hidden="true"
|
||||||
class="modal fade"
|
aria-labelledby="contact-edit-dialog-title"
|
||||||
id="contact-edit-dialog"
|
class="modal fade"
|
||||||
tabindex="-1">
|
id="contact-edit-dialog"
|
||||||
<div class="modal-dialog">
|
tabindex="-1">
|
||||||
<form class="modal-content">
|
<div class="modal-dialog">
|
||||||
<div class="modal-header">
|
<form class="modal-content">
|
||||||
<h4 class="modal-title"
|
<div class="modal-header">
|
||||||
id="contact-edit-dialog-title">
|
<h4 class="modal-title"
|
||||||
#{SciProjectMessageBundle['contacts.edit.title']}
|
id="contact-edit-dialog-title">
|
||||||
</h4>
|
#{SciProjectMessageBundle['contacts.edit.title']}
|
||||||
<button
|
</h4>
|
||||||
aria-label="#{SciProjectMessageBundle['contacts.edit.cancel']}"
|
<button
|
||||||
class="close"
|
aria-label="#{SciProjectMessageBundle['contacts.edit.cancel']}"
|
||||||
data-dismiss="modal"
|
class="close"
|
||||||
type="button">
|
|
||||||
<bootstrap:svgIcon icon="x"/>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
<bootstrap:formGroupText
|
|
||||||
help="#{SciProjectMessageBundle['contacts.edit.type.help']}"
|
|
||||||
inputId="type-edit"
|
|
||||||
label="#{SciProjectMessageBundle['contacts.edit.type.label']}"
|
|
||||||
name="type"
|
|
||||||
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button class="btn btn-warning"
|
|
||||||
data-dismiss="modal"
|
data-dismiss="modal"
|
||||||
type="button">
|
type="button">
|
||||||
#{SciProjectMessageBundle['contacts.edit.cancel']}
|
<bootstrap:svgIcon icon="x"/>
|
||||||
</button>
|
</button>
|
||||||
<button class="btn btn-success"
|
</div>
|
||||||
type="submit">
|
<div class="modal-body">
|
||||||
#{SciProjectMessageBundle['contacts.edit.submit']}
|
<bootstrap:formGroupText
|
||||||
</button>
|
help="#{SciProjectMessageBundle['contacts.edit.type.help']}"
|
||||||
</div>
|
inputId="type-edit"
|
||||||
</form>
|
label="#{SciProjectMessageBundle['contacts.edit.type.label']}"
|
||||||
</div>
|
name="type"
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<libreccm:deleteDialog
|
|
||||||
actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-description/contacts/remove/#{contact.contactId}"
|
|
||||||
buttonText="#{SciProjectMessageBundle['contacts.delete.label']}"
|
|
||||||
cancelLabel="#{SciProjectMessageBundle['contacts.delete.cancel']}"
|
|
||||||
confirmLabel="#{SciProjectMessageBundle['contacts.delete.confirm']}"
|
|
||||||
dialogId="contact-delete-dialog"
|
|
||||||
dialogTitle="#{SciProjectMessageBundle['contacts.delete.title']}"
|
|
||||||
message="#{SciProjectMessageBundle['contacts.delete.message']}"
|
|
||||||
|
|
||||||
/>
|
/>
|
||||||
</td>
|
</div>
|
||||||
</tr>
|
<div class="modal-footer">
|
||||||
</c:forEach>
|
<button class="btn btn-warning"
|
||||||
|
data-dismiss="modal"
|
||||||
|
type="button">
|
||||||
|
#{SciProjectMessageBundle['contacts.edit.cancel']}
|
||||||
|
</button>
|
||||||
|
<button class="btn btn-success"
|
||||||
|
type="submit">
|
||||||
|
#{SciProjectMessageBundle['contacts.edit.submit']}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<libreccm:deleteDialog
|
||||||
|
actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-description/contacts/remove/#{contact.contactId}"
|
||||||
|
buttonText="#{SciProjectMessageBundle['contacts.delete.label']}"
|
||||||
|
cancelLabel="#{SciProjectMessageBundle['contacts.delete.cancel']}"
|
||||||
|
confirmLabel="#{SciProjectMessageBundle['contacts.delete.confirm']}"
|
||||||
|
dialogId="contact-delete-dialog"
|
||||||
|
dialogTitle="#{SciProjectMessageBundle['contacts.delete.title']}"
|
||||||
|
message="#{SciProjectMessageBundle.getMessage('contacts.delete.message', [contact.contactable, contact.contactType])}"
|
||||||
|
|
||||||
|
/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -184,7 +186,7 @@
|
||||||
scope="col">#{SciProjectMessageBundle['memberships.cols.actions']}</th>
|
scope="col">#{SciProjectMessageBundle['memberships.cols.actions']}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody id="members-list">
|
||||||
<c:forEach items="#{SciProjectDescriptionMembers.members}"
|
<c:forEach items="#{SciProjectDescriptionMembers.members}"
|
||||||
var="member">
|
var="member">
|
||||||
<tr>
|
<tr>
|
||||||
|
|
@ -228,7 +230,7 @@
|
||||||
<bootstrap:formGroupText
|
<bootstrap:formGroupText
|
||||||
help="#{SciProjectMessageBundle['memberships.edit.role.help']}"
|
help="#{SciProjectMessageBundle['memberships.edit.role.help']}"
|
||||||
inputId="type"
|
inputId="type"
|
||||||
label="#{SciProjectMessageBundle['contacts.edit.role.label']}"
|
label="#{SciProjectMessageBundle['memberships.edit.role.label']}"
|
||||||
name="type-edit"
|
name="type-edit"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|
@ -244,11 +246,11 @@
|
||||||
<button class="btn btn-warning"
|
<button class="btn btn-warning"
|
||||||
data-dismiss="modal"
|
data-dismiss="modal"
|
||||||
type="button">
|
type="button">
|
||||||
#{SciProjectMessageBundle['contacts.edit.cancel']}
|
#{SciProjectMessageBundle['members.edit.cancel']}
|
||||||
</button>
|
</button>
|
||||||
<button class="btn btn-success"
|
<button class="btn btn-success"
|
||||||
type="submit">
|
type="submit">
|
||||||
#{SciProjectMessageBundle['contacts.edit.submit']}
|
#{SciProjectMessageBundle['members.edit.submit']}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
@ -258,12 +260,12 @@
|
||||||
<td>
|
<td>
|
||||||
<libreccm:deleteDialog
|
<libreccm:deleteDialog
|
||||||
actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-description/members/remove/#{member.membershipId}"
|
actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-description/members/remove/#{member.membershipId}"
|
||||||
buttonText="#{SciProjectMessageBundle['memberships.delete.label']}"
|
buttonText="#{SciProjectMessageBundle['memberships.delete.label']}"
|
||||||
cancelLabel="#{SciProjectMessageBundle['memberships.delete.cancel']}"
|
cancelLabel="#{SciProjectMessageBundle['memberships.delete.cancel']}"
|
||||||
confirmLabel="#{SciProjectMessageBundle['memberships.delete.confirm']}"
|
confirmLabel="#{SciProjectMessageBundle['memberships.delete.confirm']}"
|
||||||
dialogId="membership-delete-dialog"
|
dialogId="membership-delete-dialog"
|
||||||
dialogTitle="#{SciProjectMessageBundle['memberships.delete.title']}"
|
dialogTitle="#{SciProjectMessageBundle['memberships.delete.title']}"
|
||||||
message="#{SciProjectMessageBundle['memberships.delete.message']}"
|
message="#{SciProjectMessageBundle.getMessage('memberships.delete.message', [member.name])}"
|
||||||
/>
|
/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
@ -271,8 +273,11 @@
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
</ui:define>
|
||||||
|
|
||||||
|
<ui:define name="scripts">
|
||||||
|
<script src="#{request.contextPath}/assets/@content-sections/sciproject-contacts.js" />
|
||||||
|
<script src="#{request.contextPath}/assets/@content-sections/sciproject-members.js" />
|
||||||
</ui:define>
|
</ui:define>
|
||||||
|
|
||||||
</ui:composition>
|
</ui:composition>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,164 @@
|
||||||
|
<!DOCTYPE html [<!ENTITY times '×'>]>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||||
|
xmlns:bootstrap="http://xmlns.jcp.org/jsf/composite/components/bootstrap"
|
||||||
|
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
|
||||||
|
xmlns:libreccm="http://xmlns.jcp.org/jsf/composite/components/libreccm"
|
||||||
|
xmlns:librecms="http://xmlns.jcp.org/jsf/composite/components/librecms"
|
||||||
|
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
|
||||||
|
<ui:composition template="/WEB-INF/views/org/librecms/ui/contentsection/documents/authoringstep.xhtml">
|
||||||
|
|
||||||
|
<ui:param name="authoringStep"
|
||||||
|
value="/libreccm/@contentsections/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/sciproject-funding" />
|
||||||
|
|
||||||
|
<ui:define name="authoringStep">
|
||||||
|
<h2>#{SciProjectMessageBundle['funding_step.header']}</h2>
|
||||||
|
|
||||||
|
<librecms:cmsEditorVariants
|
||||||
|
addButtonLabel="#{SciProjectMessageBundle['funding.editor.add_variant']}"
|
||||||
|
addDialogLocaleSelectHelp="#{SciProjectMessageBundle['funding.editor.add.locale.help']}"
|
||||||
|
addMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-funding/funding-text/add"
|
||||||
|
canEdit="#{SciProjectFundingText.canEdit}"
|
||||||
|
editorPageUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-funding/funding-text/edit"
|
||||||
|
hasUnusedLocales="#{!SciProjectFundingText.unusedLocales.isEmpty()}"
|
||||||
|
headingLevel="3"
|
||||||
|
removeMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-funding/funding-text/remove"
|
||||||
|
sourceEditorPageUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-funding/funding-text/edit-source"
|
||||||
|
title="#{SciProjectMessageBundle['funding.editor.header']}"
|
||||||
|
unusedLocales="#{SciProjectFundingText.unusedLocales}"
|
||||||
|
variants="#{SciProjectFundingText.variants}"
|
||||||
|
variantsId="fundingtext"
|
||||||
|
viewPageUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-funding/funding-text/view"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<librecms:cmsEditorVariants
|
||||||
|
addButtonLabel="#{SciProjectMessageBundle['fundingvolume.editor.add_variant']}"
|
||||||
|
addDialogLocaleSelectHelp="#{SciProjectMessageBundle['fundingvolume.editor.add.locale.help']}"
|
||||||
|
addMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-funding/funding-volume/add"
|
||||||
|
canEdit="#{SciProjectFundingVolume.canEdit}"
|
||||||
|
editorPageUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-funding/funding-volume/edit"
|
||||||
|
hasUnusedLocales="#{!SciProjectFundingVolume.unusedLocales.isEmpty()}"
|
||||||
|
headingLevel="3"
|
||||||
|
removeMethod="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-funding/funding-volume/remove"
|
||||||
|
sourceEditorPageUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-funding/funding-volume/edit-source"
|
||||||
|
title="#{SciProjectMessageBundle['fundingvolume.editor.header']}"
|
||||||
|
unusedLocales="#{SciProjectFundingVolume.unusedLocales}"
|
||||||
|
variants="#{SciProjectFundingVolume.variants}"
|
||||||
|
variantsId="fundingvolume"
|
||||||
|
viewPageUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-funding/funding-volume/view"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<h3>#{SciProjectMessageBundle['sponsoring.header']}</h3>
|
||||||
|
<div class="mb-2">
|
||||||
|
<div class="text-right">
|
||||||
|
<librecms:assetPickerButton
|
||||||
|
assetPickerId="sponsoring-picker"
|
||||||
|
buttonIcon="plus-circle"
|
||||||
|
buttonText="#{SciProjectMessageBundle['sponsoring.add_button.label']}"
|
||||||
|
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<librecms:assetPicker
|
||||||
|
actionUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-funding/sponsoring/add"
|
||||||
|
assetPickerId="sponsoring-picker"
|
||||||
|
assetType="#{SciProjectFundingSponsoring.sponsorType}"
|
||||||
|
baseUrl="#{SciProjectFundingSponsoring.baseUrl}"
|
||||||
|
contentSection="#{ContentSectionModel.sectionName}"
|
||||||
|
formParamName="sponsorUuid">
|
||||||
|
<bootstrap:formGroupText
|
||||||
|
help="#{SciProjectMessageBundle['sponsoring.fundingcode.help']}"
|
||||||
|
inputId="fundingcode"
|
||||||
|
label="#{SciProjectMessageBundle['sponsoring.fundingcode.label']}"
|
||||||
|
name="fundingCode"
|
||||||
|
/>
|
||||||
|
</librecms:assetPicker>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col">#{SciProjectMessageBundle['sponsoring.cols.sponsor']}</th>
|
||||||
|
<th scope="col">#{SciProjectMessageBundle['sponsoring.cols.fundingcode']}</th>
|
||||||
|
<th colspan="2"
|
||||||
|
scope="col">#{SciProjectMessageBundle['sponsoring.cols.actions']}</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:forEach items="#{SciProjectFundingSponsoring.sponsoring}"
|
||||||
|
var="sponsoring">
|
||||||
|
<tr id="#{sponsoring.sponsoringId}">
|
||||||
|
<td>#{sponsoring.sponsor}</td>
|
||||||
|
<td>#{sponsoring.fundingCode}</td>
|
||||||
|
<td>
|
||||||
|
<button class="btn btn-secondary"
|
||||||
|
data-toggle="modal"
|
||||||
|
data-target="#sponsoring-edit-dialog"
|
||||||
|
type="button">
|
||||||
|
<bootstrap:svgIcon icon="pen" />
|
||||||
|
<span>#{SciProjectMessageBundle['sponsoring.edit.label']}</span>
|
||||||
|
</button>
|
||||||
|
<div aria-hidden="true"
|
||||||
|
aria-labelledby="sponsoring-edit-dialog-title"
|
||||||
|
class="modal fade"
|
||||||
|
id="spoonsoring-edit-dialog"
|
||||||
|
tabindex="-1">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<form class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h4 class="modal-title"
|
||||||
|
id="sponsoring-edit-dialog-title">
|
||||||
|
#{SciProjectMessageBundle['sponsoring.edit.title']}
|
||||||
|
</h4>
|
||||||
|
<button
|
||||||
|
aria-label="#{SciProjectMessageBundle['sponsoring.edit.cancel']}"
|
||||||
|
class="close"
|
||||||
|
data-dismiss="modal"
|
||||||
|
type="button">
|
||||||
|
<bootstrap:svgIcon icon="x"/>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<bootstrap:formGroupText
|
||||||
|
help="#{SciProjectMessageBundle['sponsoring.fundingcode.help']}"
|
||||||
|
inputId="fundingcode"
|
||||||
|
label="#{SciProjectMessageBundle['sponsoring.fundingcode.label']}"
|
||||||
|
name="fundingCode"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button class="btn btn-warning"
|
||||||
|
data-dismiss="modal"
|
||||||
|
type="button">
|
||||||
|
#{SciProjectMessageBundle['sponsoring.edit.cancel']}
|
||||||
|
</button>
|
||||||
|
<button class="btn btn-success"
|
||||||
|
type="submit">
|
||||||
|
#{SciProjectMessageBundle['sponsoring.edit.submit']}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<libreccm:deleteDialog
|
||||||
|
actionTarget="#{mvc.basePath}/#{ContentSectionModel.sectionName}/documents/#{CmsSelectedDocumentModel.itemPath}/@sciproject-funding/sponsoring/remove"
|
||||||
|
buttonText="#{SciProjectMessageBundle['sponsoring.remove.label']}"
|
||||||
|
cancelLabel="#{SciProjectMessageBundle['sponsoring.remove.cancel']}"
|
||||||
|
confirmLabel="#{SciProjectMessageBundle['sponsoring.remove.confirm']}"
|
||||||
|
dialogId="sponsoring-remove-dialog"
|
||||||
|
dialogTitle="#{SciProjectMessageBundle['sponsoring.remove.title']}"
|
||||||
|
message="#{SciProjectMessageBundle.getMessage('sponsoring.remove.message', [sponsoring.sponsor])}"
|
||||||
|
/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<ui:define name="scripts">
|
||||||
|
<script src="#{request.contextPath}/assets/@content-sections/sciproject-sponsoring.js"></script>
|
||||||
|
</ui:define>
|
||||||
|
|
||||||
|
</ui:define>
|
||||||
|
|
||||||
|
</ui:composition>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,148 @@
|
||||||
|
|
||||||
|
sciproject.edit.denied=Access denied
|
||||||
|
members.status.active=Active
|
||||||
|
members.status.associated=Associated
|
||||||
|
members.status.former=Former
|
||||||
|
basicproperties.header=Edit basic properties of project {0}
|
||||||
|
basicproperties.name.header=Name
|
||||||
|
basicproperties.name.edit=Edit name
|
||||||
|
basicproperties.name.edit.title=Edit name
|
||||||
|
basicproperties.name.edit.close=Cancel
|
||||||
|
basicproperties.name.help=The name of the project. Also used as URL fragment.
|
||||||
|
basicproperties.name.label=Name
|
||||||
|
basicproperties.name.edit.submit=Save
|
||||||
|
basicproperties.title.add=Add a localized title
|
||||||
|
basicproperties.title.add.cancel=Cancel
|
||||||
|
basicproperties.title.add.locale.help=The locale of the localized title.
|
||||||
|
basicproperties.title.add.locale.label=Locale
|
||||||
|
basicproperties.title.add.submit=Add
|
||||||
|
basicproperties.title.add.header=Add localized title
|
||||||
|
basicproperties.title.add.value.help=The localized title.
|
||||||
|
basicproperties.title.add.value.label=Title
|
||||||
|
basicproperties.title.edit=Edit
|
||||||
|
basicproperties.title.edit.cancel=Cancel
|
||||||
|
basicproperties.title.edit.submit=Save
|
||||||
|
basicproperties.title.edit.header=Edit localized title
|
||||||
|
basicproperties.title.edit.value.help=The localized title.
|
||||||
|
basicproperties.title.edit.value.label=Title
|
||||||
|
basicproperties.title.remove=Remove
|
||||||
|
basicproperties.title.remove.cancel=Cancel
|
||||||
|
basicproperties.title.remove.submit=Remove
|
||||||
|
basicproperties.title.remove.text=Are you sure to remove this localized title?
|
||||||
|
basicproperties.title.remove.header=Confirm removal of localized title
|
||||||
|
basicproperties.title.header=Title
|
||||||
|
basicproperties.begin.header=Begin of the project
|
||||||
|
basicproperties.begin.edit=Edit
|
||||||
|
basicproperties.begin.label=Begin
|
||||||
|
basicproperties.begin.edit.dialog.title=Edit
|
||||||
|
basicproperties.begin.edit.dialog.close=Cancel
|
||||||
|
basicproperties.begin.edit.dialog.startdate.help=The begin of the project
|
||||||
|
basicproperties.begin.edit.dialog.startdate.label=Begin
|
||||||
|
basicproperties.begin.edit.dialog.submit=Save
|
||||||
|
basicproperties.end.header=End of the project
|
||||||
|
basicproperties.end.edit=Edit
|
||||||
|
basicproperties.end.label=End
|
||||||
|
basicproperties.end.edit.dialog.title=Edit end of the project
|
||||||
|
basicproperties.end.edit.dialog.close=Cancel
|
||||||
|
basicproperties.end.edit.dialog.enddate.help=The end of the project
|
||||||
|
basicproperties.end.edit.dialog.enddate.label=End
|
||||||
|
basicproperties.end.edit.dialog.submit=Save
|
||||||
|
basicproperties.shortdescription.add=Add
|
||||||
|
basicproperties.shortdescription.add.cancel=Cancel
|
||||||
|
basicproperties.shortdescription.add.locale.help=The locale of the localized short description.
|
||||||
|
basicproperties.shortdescription.add.locale.label=Locale
|
||||||
|
basicproperties.shortdescription.add.submit=Add
|
||||||
|
basicproperties.shortdescription.add.header=Add a localized short description
|
||||||
|
basicproperties.shortdescription.add.value.help=The localized short description.
|
||||||
|
basicproperties.shortdescription.add.value.label=Short description
|
||||||
|
basicproperties.shortdescription.edit=Edit
|
||||||
|
basicproperties.shortdescription.edit.cancel=Cancel
|
||||||
|
basicproperties.shortdescription.edit.submit=Save
|
||||||
|
basicproperties.shortdescription.edit.header=Edit localized short description
|
||||||
|
basicproperties.shortdescription.edit.value.help=The localized short description.
|
||||||
|
basicproperties.shortdescription.edit.value.label=Short description
|
||||||
|
basicproperties.shortdescription.remove=Remove
|
||||||
|
basicproperties.shortdescription.remove.cancel=Cancel
|
||||||
|
basicproperties.shortdescription.remove.submit=Remove
|
||||||
|
basicproperties.shortdescription.remove.text=Are you sure to remove this localized short description?
|
||||||
|
basicproperties.shortdescription.remove.header=Confirm removal of localized short description
|
||||||
|
basicproperties.shortdescription.header=Short description
|
||||||
|
description_step.header=Project description
|
||||||
|
description.editor.add_variant=Add
|
||||||
|
description.editor.add.locale.help=The locale of the localized description
|
||||||
|
description.editor.header=Description
|
||||||
|
contacts.header=Contacts
|
||||||
|
contacts.add_button.label=Add
|
||||||
|
contacts.type.help=The type of the contact.
|
||||||
|
contacts.type.label=Type
|
||||||
|
contacts.cols.contactable=Contact
|
||||||
|
contacts.cols.type=Type
|
||||||
|
contacts.cols.actions=Actions
|
||||||
|
contacts.edit.label=Edit
|
||||||
|
contacts.edit.title=Add a contact
|
||||||
|
contacts.edit.cancel=Cancel
|
||||||
|
contacts.edit.type.help=The type of the contact.
|
||||||
|
contacts.edit.type.label=Type
|
||||||
|
contacts.edit.submit=Add
|
||||||
|
contacts.delete.label=Remove
|
||||||
|
contacts.delete.cancel=Cancel
|
||||||
|
contacts.delete.confirm=Remove
|
||||||
|
contacts.delete.title=Confirm removal of contact
|
||||||
|
contacts.delete.message=Are you sure to remove the contact {0} of type {1}?
|
||||||
|
memberships.header=Members
|
||||||
|
memberships.add_button.label=Add
|
||||||
|
memberships.role.help=The role of the member in the project.
|
||||||
|
memberships.role.label=Role
|
||||||
|
memberships.status.help=The status of the membership.
|
||||||
|
memberships.status.label=Status
|
||||||
|
memberships.cols.name=Name
|
||||||
|
memberships.cols.role=Role
|
||||||
|
memberships.cols.status=Status
|
||||||
|
memberships.cols.actions=Actions
|
||||||
|
memberships.edit.label=Edit
|
||||||
|
memberships.edit.cancel=Cancel
|
||||||
|
memberships.edit.role.help=The role of the member in the project.
|
||||||
|
memberships.edit.role.label=Role
|
||||||
|
memberships.edit.status.help=The status of the membership.
|
||||||
|
memberships.edit.status.label=Status
|
||||||
|
members.edit.cancel=Cancel
|
||||||
|
members.edit.submit=Save
|
||||||
|
memberships.delete.label=Remove
|
||||||
|
memberships.delete.cancel=Cancel
|
||||||
|
memberships.delete.confirm=Remove
|
||||||
|
memberships.delete.title=Confirm removal of member
|
||||||
|
memberships.delete.message=Are your sure to remove the member {0} from the project?
|
||||||
|
funding_step.header=Funding
|
||||||
|
funding.editor.add_variant=Add
|
||||||
|
funding.editor.add.locale.help=The locale of the localized text.
|
||||||
|
funding.editor.header=Funding
|
||||||
|
fundingvolume.editor.add_variant=Add
|
||||||
|
fundingvolume.editor.add.locale.help=The locale of the localized text.
|
||||||
|
fundingvolume.editor.header=Volume of funding
|
||||||
|
sponsoring.header=Sponsoring
|
||||||
|
sponsoring.add_button.label=Add
|
||||||
|
sponsoring.fundingcode.help=An optional funding code of the sponsor.
|
||||||
|
sponsoring.fundingcode.label=Funding code
|
||||||
|
sponsoring.cols.sponsor=Organization
|
||||||
|
sponsoring.cols.fundingcode=Funding code
|
||||||
|
sponsoring.cols.actions=Actions
|
||||||
|
sponsoring.edit.label=Edit
|
||||||
|
sponsoring.edit.title=Edit sponsoring
|
||||||
|
sponsoring.edit.cancel=Cancel
|
||||||
|
sponsoring.edit.submit=Save
|
||||||
|
sponsoring.remove.label=Remove
|
||||||
|
sponsoring.remove.cancel=Cancel
|
||||||
|
sponsoring.remove.confirm=Remove
|
||||||
|
sponsoring.remove.title=Remove sponsoring
|
||||||
|
sponsoring.remove.message=Are you sure to remove the sponsoring of {0} from the project?
|
||||||
|
description_step.back=Back
|
||||||
|
description_step.description.header.edit=Edit the description of the project
|
||||||
|
description_step.description.header.view=Project description
|
||||||
|
description_step.edit=Edit project description
|
||||||
|
funding_step.back=Back
|
||||||
|
funding_step.fundingtext.header.edit=Edit description of funding
|
||||||
|
fundingtext.editor.header=Funding
|
||||||
|
funding_step.fundingtext.header.view=Description of funding
|
||||||
|
funding_step.edit=Edit
|
||||||
|
funding_step.fundingvolume.header.edit=Edit description of volume of funding
|
||||||
|
funding_step.fundingvolume.header.view=Description of the volume of funding
|
||||||
|
|
@ -0,0 +1,148 @@
|
||||||
|
|
||||||
|
sciproject.edit.denied=Zugriff verweigert
|
||||||
|
members.status.active=Aktiv
|
||||||
|
members.status.associated=Assoziert
|
||||||
|
members.status.former=Ehemalig
|
||||||
|
basicproperties.header=Basiseigenschaften des Projektes {0} bearbeiten
|
||||||
|
basicproperties.name.header=Name
|
||||||
|
basicproperties.name.edit=Name bearbeiten
|
||||||
|
basicproperties.name.edit.title=Name bearbeiten
|
||||||
|
basicproperties.name.edit.close=Abbrechen
|
||||||
|
basicproperties.name.help=Der Name des Projektes. Wird auch als URL fragment verwendet.
|
||||||
|
basicproperties.name.label=Name
|
||||||
|
basicproperties.name.edit.submit=Speichern
|
||||||
|
basicproperties.title.add=Lokalisierten Titel hinzuf\u00fcgen
|
||||||
|
basicproperties.title.add.cancel=Abbrechen
|
||||||
|
basicproperties.title.add.locale.help=Die Sprache des lokalisierten Titels.
|
||||||
|
basicproperties.title.add.locale.label=Sprache
|
||||||
|
basicproperties.title.add.submit=Hinzuf\u00fcgen
|
||||||
|
basicproperties.title.add.header=Lokalisierten Titel hinzuf\u00fcgen
|
||||||
|
basicproperties.title.add.value.help=Der lokalisierte Titel.
|
||||||
|
basicproperties.title.add.value.label=Titel
|
||||||
|
basicproperties.title.edit=Bearbeiten
|
||||||
|
basicproperties.title.edit.cancel=Abbrechen
|
||||||
|
basicproperties.title.edit.submit=Speichern
|
||||||
|
basicproperties.title.edit.header=Lokalisierten Titel bearbeiten
|
||||||
|
basicproperties.title.edit.value.help=Der lokalisierte Titel.
|
||||||
|
basicproperties.title.edit.value.label=Titel
|
||||||
|
basicproperties.title.remove=Entfernen
|
||||||
|
basicproperties.title.remove.cancel=Abbrechen
|
||||||
|
basicproperties.title.remove.submit=Entfernen
|
||||||
|
basicproperties.title.remove.text=Sind Sie sicher dass Sie diesen lokalisierten Titel entfernen wollen?
|
||||||
|
basicproperties.title.remove.header=Entfernen eines lokalisierten Titels entfernen
|
||||||
|
basicproperties.title.header=Titel
|
||||||
|
basicproperties.begin.header=Beginn des Projektes
|
||||||
|
basicproperties.begin.edit=Bearbeiten
|
||||||
|
basicproperties.begin.label=Beginn
|
||||||
|
basicproperties.begin.edit.dialog.title=Bearbeiten
|
||||||
|
basicproperties.begin.edit.dialog.close=Abbrechen
|
||||||
|
basicproperties.begin.edit.dialog.startdate.help=Der Beginn des Projektes
|
||||||
|
basicproperties.begin.edit.dialog.startdate.label=Beginn
|
||||||
|
basicproperties.begin.edit.dialog.submit=Speichern
|
||||||
|
basicproperties.end.header=Ende des Projektes
|
||||||
|
basicproperties.end.edit=Bearbeiten
|
||||||
|
basicproperties.end.label=Ende
|
||||||
|
basicproperties.end.edit.dialog.title=Ende des Projektes bearbeiten
|
||||||
|
basicproperties.end.edit.dialog.close=Abbrechen
|
||||||
|
basicproperties.end.edit.dialog.enddate.help=Das Ende des Projektes
|
||||||
|
basicproperties.end.edit.dialog.enddate.label=Ende
|
||||||
|
basicproperties.end.edit.dialog.submit=Speichern
|
||||||
|
basicproperties.shortdescription.add=Hinzuf\u00fcgen
|
||||||
|
basicproperties.shortdescription.add.cancel=Abbrechen
|
||||||
|
basicproperties.shortdescription.add.locale.help=Die Sprache der lokaliserten Kurzbeschreibung.
|
||||||
|
basicproperties.shortdescription.add.locale.label=Sprache
|
||||||
|
basicproperties.shortdescription.add.submit=Hinzuf\u00fcgen
|
||||||
|
basicproperties.shortdescription.add.header=Eine lokaliserte Kurzbeschreibung hinzuf\u00fcgen
|
||||||
|
basicproperties.shortdescription.add.value.help=Die lokalisierte Kurzbeschreibung.
|
||||||
|
basicproperties.shortdescription.add.value.label=Kurzbeschreibung
|
||||||
|
basicproperties.shortdescription.edit=Bearbeiten
|
||||||
|
basicproperties.shortdescription.edit.cancel=Abbrechen
|
||||||
|
basicproperties.shortdescription.edit.submit=Speichern
|
||||||
|
basicproperties.shortdescription.edit.header=Lokalisierte Kurzbeschreibung bearbeiten
|
||||||
|
basicproperties.shortdescription.edit.value.help=Die lokalisierte Kurzbeschreibung.
|
||||||
|
basicproperties.shortdescription.edit.value.label=Kurzbeschreibung
|
||||||
|
basicproperties.shortdescription.remove=Entfernen
|
||||||
|
basicproperties.shortdescription.remove.cancel=Abbrechen
|
||||||
|
basicproperties.shortdescription.remove.submit=Entfernen
|
||||||
|
basicproperties.shortdescription.remove.text=Sind Sie sicher, dass Sie diese lokaliserte Kurzbeschreibung entfernen wollen?
|
||||||
|
basicproperties.shortdescription.remove.header=Entfernen einer lokalisierten Kurzbeschreibung best\u00e4tigen
|
||||||
|
basicproperties.shortdescription.header=Kurzbeschreibung
|
||||||
|
description_step.header=Projektbeschreibung
|
||||||
|
description.editor.add_variant=Hinzuf\u00fcgen
|
||||||
|
description.editor.add.locale.help=Die Sprache der lokalisierten Beschreibung
|
||||||
|
description.editor.header=Beschreibung
|
||||||
|
contacts.header=Kontakte
|
||||||
|
contacts.add_button.label=Hinzuf\u00fcgen
|
||||||
|
contacts.type.help=Der Typ des Kontaktes.
|
||||||
|
contacts.type.label=Typ
|
||||||
|
contacts.cols.contactable=Kontakt
|
||||||
|
contacts.cols.type=Typ
|
||||||
|
contacts.cols.actions=Aktionen
|
||||||
|
contacts.edit.label=Bearbeiten
|
||||||
|
contacts.edit.title=Kontakt hinzuf\u00fcgen
|
||||||
|
contacts.edit.cancel=Abbrechen
|
||||||
|
contacts.edit.type.help=Der Typ des Kontaktes.
|
||||||
|
contacts.edit.type.label=Typ
|
||||||
|
contacts.edit.submit=Hinzuf\u00fcgen
|
||||||
|
contacts.delete.label=Entfernen
|
||||||
|
contacts.delete.cancel=Abbrechen
|
||||||
|
contacts.delete.confirm=Entfernen
|
||||||
|
contacts.delete.title=Entfernen des Kontaktes best\u00e4tigen
|
||||||
|
contacts.delete.message=Sind Sie sicher, dass Sie den Kontakt {0} vom Type {1} entfernen wollen?
|
||||||
|
memberships.header=Mitglieder
|
||||||
|
memberships.add_button.label=Entfernen
|
||||||
|
memberships.role.help=Die Rolle des Mitglieds im Projekt.
|
||||||
|
memberships.role.label=Rolle
|
||||||
|
memberships.status.help=Der Status der Mitgliedschaft.
|
||||||
|
memberships.status.label=Status
|
||||||
|
memberships.cols.name=Name
|
||||||
|
memberships.cols.role=Rolle
|
||||||
|
memberships.cols.status=Status
|
||||||
|
memberships.cols.actions=Aktionen
|
||||||
|
memberships.edit.label=Bearbeiten
|
||||||
|
memberships.edit.cancel=Abbrechen
|
||||||
|
memberships.edit.role.help=Die Rolle des Mitglieds im Projekt.
|
||||||
|
memberships.edit.role.label=Rolle
|
||||||
|
memberships.edit.status.help=Der Status der Mitgliedschaft.
|
||||||
|
memberships.edit.status.label=Status
|
||||||
|
members.edit.cancel=Abbrechen
|
||||||
|
members.edit.submit=Speichern
|
||||||
|
memberships.delete.label=Entfernen
|
||||||
|
memberships.delete.cancel=Abbrechen
|
||||||
|
memberships.delete.confirm=Entfernen
|
||||||
|
memberships.delete.title=Entfernen eines Mitglieds best\u00e4tigen
|
||||||
|
memberships.delete.message=Sind Sie sicher, dass Sie das Mitglied {0} aus dem Projekt entfernen wollen?
|
||||||
|
funding_step.header=Finanzierung
|
||||||
|
funding.editor.add_variant=Hinzuf\u00fcgen
|
||||||
|
funding.editor.add.locale.help=The Sprache des lokalisierten Textes.
|
||||||
|
funding.editor.header=Finanzierung
|
||||||
|
fundingvolume.editor.add_variant=Hinzuf\u00fcgen
|
||||||
|
fundingvolume.editor.add.locale.help=The Sprache des lokalisierten Textes.
|
||||||
|
fundingvolume.editor.header=Volumen der Finanzierung
|
||||||
|
sponsoring.header=Finanziert durch
|
||||||
|
sponsoring.add_button.label=Hinzuf\u00fcgen
|
||||||
|
sponsoring.fundingcode.help=Eine optinale Angabe zur Finanzierung
|
||||||
|
sponsoring.fundingcode.label=Bezeichnung
|
||||||
|
sponsoring.cols.sponsor=Organisation
|
||||||
|
sponsoring.cols.fundingcode=Bezeichnung
|
||||||
|
sponsoring.cols.actions=Aktionen
|
||||||
|
sponsoring.edit.label=Bearbeiten
|
||||||
|
sponsoring.edit.title=Finanzierung bearbeiten
|
||||||
|
sponsoring.edit.cancel=Abbrechen
|
||||||
|
sponsoring.edit.submit=Speichern
|
||||||
|
sponsoring.remove.label=Entfernen
|
||||||
|
sponsoring.remove.cancel=Abbrechen
|
||||||
|
sponsoring.remove.confirm=Entfernen
|
||||||
|
sponsoring.remove.title=Finanzierung entfernen
|
||||||
|
sponsoring.remove.message=Sind Sie sicher dass Sie die Finanzierung durch {0} aus dem Projekt entfernen wollen?
|
||||||
|
description_step.back=Zur\u00fcck
|
||||||
|
description_step.description.header.edit=Projektbeschreibung bearbeiten
|
||||||
|
description_step.description.header.view=Projektbeschreibung
|
||||||
|
description_step.edit=Projektbeschreibung bearbeiten
|
||||||
|
funding_step.back=Zur\u00fcck
|
||||||
|
funding_step.fundingtext.header.edit=Beschreibung der Finanzierung bearbeiten
|
||||||
|
fundingtext.editor.header=Finanzierung
|
||||||
|
funding_step.fundingtext.header.view=Beschreibung der Finanzierung
|
||||||
|
funding_step.edit=Bearbeiten
|
||||||
|
funding_step.fundingvolume.header.edit=Beschreibung des Volumens der Finanzierung bearbeiten
|
||||||
|
funding_step.fundingvolume.header.view=Beschreibung des Volumens der Finanzierung
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
import { CmsEditorBuilder, CmsEditor} from @librecms/ccm-cms;
|
||||||
|
|
||||||
|
document.addEventListener("DOMContentLoaded", (event) => {
|
||||||
|
const editorElem = document.querySelector("#sciproject-description-editor");
|
||||||
|
|
||||||
|
if (editorElem) {
|
||||||
|
const saveUrl = editorElem.getAttribute("data-save-url");
|
||||||
|
const variantUrl = editorElem.getAttribute("data-variant-url");
|
||||||
|
|
||||||
|
if (!saveUrl) {
|
||||||
|
console.error("saveUrl is null");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!variantUrl) {
|
||||||
|
console.error("variantUrl is null");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const builder = new CmsEditorBuilder(
|
||||||
|
editorElem as HTMLElement,
|
||||||
|
saveUrl,
|
||||||
|
variantUrl
|
||||||
|
);
|
||||||
|
|
||||||
|
builder
|
||||||
|
.buildEditor()
|
||||||
|
.then((editor) => {
|
||||||
|
const submitButton = document.querySelector(
|
||||||
|
".cms-editor-save-button"
|
||||||
|
);
|
||||||
|
|
||||||
|
if (submitButton) {
|
||||||
|
submitButton.addEventListener("click", (event) => {
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
console.log("HTML output of editor: ");
|
||||||
|
console.log(editor.getEditor().getHTML());
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.error("Save button not found.")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.error(error);
|
||||||
|
console.trace(error);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.error("Editor element not found.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
import { CmsEditorBuilder, CmsEditor} from "@librecms/ccm-cms";
|
||||||
|
|
||||||
|
document.addEventListener("DOMContentLoaded", (event) => {
|
||||||
|
const editorElem = document.querySelector("#sciproject-fundingtext-editor");
|
||||||
|
|
||||||
|
if (editorElem) {
|
||||||
|
const saveUrl = editorElem.getAttribute("data-save-url");
|
||||||
|
const variantUrl = editorElem.getAttribute("data-variant-url");
|
||||||
|
|
||||||
|
if (!saveUrl) {
|
||||||
|
console.error("saveUrl is null");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!variantUrl) {
|
||||||
|
console.error("variantUrl is null");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const builder = new CmsEditorBuilder(
|
||||||
|
editorElem as HTMLElement,
|
||||||
|
saveUrl,
|
||||||
|
variantUrl
|
||||||
|
);
|
||||||
|
|
||||||
|
builder
|
||||||
|
.buildEditor()
|
||||||
|
.then((editor) => {
|
||||||
|
const submitButton = document.querySelector(
|
||||||
|
".cms-editor-save-button"
|
||||||
|
);
|
||||||
|
|
||||||
|
if (submitButton) {
|
||||||
|
submitButton.addEventListener("click", (event) => {
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
console.log("HTML output of editor: ");
|
||||||
|
console.log(editor.getEditor().getHTML());
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.error("Save button not found.")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.error(error);
|
||||||
|
console.trace(error);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.error("Editor element not found.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
import { CmsEditorBuilder, CmsEditor} from "@librecms/ccm-cms";
|
||||||
|
|
||||||
|
document.addEventListener("DOMContentLoaded", (event) => {
|
||||||
|
const editorElem = document.querySelector("#sciproject-funding-volume-editor");
|
||||||
|
|
||||||
|
if (editorElem) {
|
||||||
|
const saveUrl = editorElem.getAttribute("data-save-url");
|
||||||
|
const variantUrl = editorElem.getAttribute("data-variant-url");
|
||||||
|
|
||||||
|
if (!saveUrl) {
|
||||||
|
console.error("saveUrl is null");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!variantUrl) {
|
||||||
|
console.error("variantUrl is null");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const builder = new CmsEditorBuilder(
|
||||||
|
editorElem as HTMLElement,
|
||||||
|
saveUrl,
|
||||||
|
variantUrl
|
||||||
|
);
|
||||||
|
|
||||||
|
builder
|
||||||
|
.buildEditor()
|
||||||
|
.then((editor) => {
|
||||||
|
const submitButton = document.querySelector(
|
||||||
|
".cms-editor-save-button"
|
||||||
|
);
|
||||||
|
|
||||||
|
if (submitButton) {
|
||||||
|
submitButton.addEventListener("click", (event) => {
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
console.log("HTML output of editor: ");
|
||||||
|
console.log(editor.getEditor().getHTML());
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.error("Save button not found.")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.error(error);
|
||||||
|
console.trace(error);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.error("Editor element not found.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,148 @@
|
||||||
|
import Sortable, { SortableEvent } from "sortablejs";
|
||||||
|
|
||||||
|
let membersSortable: Sortable;
|
||||||
|
|
||||||
|
document.addEventListener("DOMContentLoaded", (event) => {
|
||||||
|
const members = document.querySelector("members-list");
|
||||||
|
|
||||||
|
if (members) {
|
||||||
|
membersSortable = initMembers(members as HTMLElement);
|
||||||
|
}
|
||||||
|
|
||||||
|
const saveOrderButtons = document.querySelectorAll(
|
||||||
|
".members-save-order-button"
|
||||||
|
);
|
||||||
|
for (let i = 0; i < saveOrderButtons.length; i++) {
|
||||||
|
saveOrderButtons[i].addEventListener("click", saveOrder);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function initMembers(members: HTMLElement): Sortable {
|
||||||
|
return new Sortable(
|
||||||
|
members,
|
||||||
|
{
|
||||||
|
animation: 150,
|
||||||
|
group: "members-list",
|
||||||
|
handle: ".member-sort-handle",
|
||||||
|
onEnd: enableSaveButton
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
function enableSaveButton(event: SortableEvent) {
|
||||||
|
console.log("Enabling save buttons...");
|
||||||
|
const saveOrderButtons = document.querySelectorAll(
|
||||||
|
".members-save-order-button"
|
||||||
|
);
|
||||||
|
for (let i = 0; i < saveOrderButtons.length; i++) {
|
||||||
|
const saveOrderButton: HTMLButtonElement = saveOrderButtons[
|
||||||
|
i
|
||||||
|
] as HTMLButtonElement;
|
||||||
|
saveOrderButton.disabled = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function saveOrder() {
|
||||||
|
const baseUrl = cmsMedia.getAttribute("data-baseUrl");
|
||||||
|
if (!baseUrl) {
|
||||||
|
showGeneralError();
|
||||||
|
throw Error(
|
||||||
|
"data-baseUrl attribute on cms-media-lists container is missing or empty."
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log("spinner on");
|
||||||
|
const saveOrderButtons = document.querySelectorAll(".members-save-order-button");
|
||||||
|
for (let i = 0; i < saveOrderButtons.length; i++) {
|
||||||
|
const saveOrderButton: HTMLButtonElement = saveOrderButtons[
|
||||||
|
i
|
||||||
|
] as HTMLButtonElement;
|
||||||
|
saveOrderButton.disabled = true;
|
||||||
|
const saveIcon = saveOrderButton.querySelector(".save-icon");
|
||||||
|
const spinner = saveOrderButton.querySelector(".save-spinner");
|
||||||
|
saveIcon?.classList.toggle("d-none");
|
||||||
|
spinner?.classList.toggle("d-none");
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log("fetch POST");
|
||||||
|
const headers = new Headers();
|
||||||
|
headers.append("Content-Type", "application/json");
|
||||||
|
fetch(baseUrl, {
|
||||||
|
credentials: "include",
|
||||||
|
body: JSON.stringify(membersSortable.toArray()),
|
||||||
|
headers,
|
||||||
|
method: "POST"
|
||||||
|
})
|
||||||
|
.then(response => {
|
||||||
|
if (response.ok) {
|
||||||
|
for(let i = 0; i < saveOrderButtons.length; i++) {
|
||||||
|
const saveOrderButton: HTMLButtonElement = saveOrderButtons[
|
||||||
|
i
|
||||||
|
] as HTMLButtonElement;
|
||||||
|
// saveOrderButton.disabled = true;
|
||||||
|
const saveIcon =
|
||||||
|
saveOrderButton.querySelector(".save-icon");
|
||||||
|
const spinner =
|
||||||
|
saveOrderButton.querySelector(".save-spinner");
|
||||||
|
saveIcon?.classList.toggle("d-none");
|
||||||
|
spinner?.classList.toggle("d-none");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
showSaveError();
|
||||||
|
for (let i = 0; i < saveOrderButtons.length; i++) {
|
||||||
|
const saveOrderButton: HTMLButtonElement = saveOrderButtons[
|
||||||
|
i
|
||||||
|
] as HTMLButtonElement;
|
||||||
|
saveOrderButton.disabled = false;
|
||||||
|
const saveIcon =
|
||||||
|
saveOrderButton.querySelector(".save-icon");
|
||||||
|
const spinner =
|
||||||
|
saveOrderButton.querySelector(".save-spinner");
|
||||||
|
saveIcon?.classList.toggle("d-none");
|
||||||
|
spinner?.classList.toggle("d-none");
|
||||||
|
}
|
||||||
|
throw Error(
|
||||||
|
`Failed to save media order. Response status: ${response.status}, statusText: ${response.statusText}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
showSaveError();
|
||||||
|
for (let i = 0; i < saveOrderButtons.length; i++) {
|
||||||
|
const saveOrderButton: HTMLButtonElement = saveOrderButtons[
|
||||||
|
i
|
||||||
|
] as HTMLButtonElement;
|
||||||
|
saveOrderButton.disabled = false;
|
||||||
|
const saveIcon = saveOrderButton.querySelector(".save-icon");
|
||||||
|
const spinner = saveOrderButton.querySelector(".save-spinner");
|
||||||
|
saveIcon?.classList.toggle("d-none");
|
||||||
|
spinner?.classList.toggle("d-none");
|
||||||
|
}
|
||||||
|
throw new Error(`Failed to save media order: ${error}`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function showGeneralError(): void {
|
||||||
|
const alertTemplate = document.querySelector(
|
||||||
|
"#member-sort-error-general"
|
||||||
|
) as HTMLTemplateElement;
|
||||||
|
const alert = alertTemplate.content.cloneNode(true) as Element;
|
||||||
|
|
||||||
|
const container = document.querySelector("#messages");
|
||||||
|
if (container) {
|
||||||
|
container.appendChild(alert);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function showSaveError(): void {
|
||||||
|
const alertTemplate = document.querySelector(
|
||||||
|
"#member-sort-error-save"
|
||||||
|
) as HTMLTemplateElement;
|
||||||
|
const alert = alertTemplate.content.cloneNode(true) as Element;
|
||||||
|
|
||||||
|
const container = document.querySelector("#messages");
|
||||||
|
if (container) {
|
||||||
|
container.appendChild(alert);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"allowSyntheticDefaultImports": true,
|
||||||
|
"declaration": true,
|
||||||
|
"lib": [
|
||||||
|
"DOM",
|
||||||
|
"ES2016"
|
||||||
|
],
|
||||||
|
"module": "commonjs",
|
||||||
|
"moduleResolution": "node",
|
||||||
|
"outDir": "target/generated-resources/assets/@content-sections",
|
||||||
|
"sourceMap": true,
|
||||||
|
"strict": true,
|
||||||
|
"target": "ES5"
|
||||||
|
},
|
||||||
|
"include": [
|
||||||
|
"src/main/typescript/**/*"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
module.exports = {
|
||||||
|
mode: "development",
|
||||||
|
devtool: "source-map",
|
||||||
|
optimization: {
|
||||||
|
chunkIds: false
|
||||||
|
},
|
||||||
|
entry: {
|
||||||
|
"sciproject-description": "./src/main/typescript/sciproject/sciproject-description.ts",
|
||||||
|
"sciproject-contacts": "./src/main/typescript/sciproject/sciproject-contacts.ts",
|
||||||
|
"sciproject-members": "./src/main/typescript/sciproject/sciproject-members.ts",
|
||||||
|
"sciproject-sponsoring": "./src/main/typescript/sciproject/sciproject-sponsoring.ts"
|
||||||
|
},
|
||||||
|
output: {
|
||||||
|
filename: "[name].js",
|
||||||
|
path: __dirname + "/target/generated-resources/assets/@sciproject"
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
extensions: [".tsx", ".ts", ".js", ".json"]
|
||||||
|
},
|
||||||
|
module: {
|
||||||
|
rules: [
|
||||||
|
// all files with a '.ts' or '.tsx' extension will be handled by 'ts-loader'
|
||||||
|
{ test: /\.tsx?$/, use: ["ts-loader"], exclude: /node_modules/ }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue