Discussion:
[HippoCMS-scm] [Git][cms-community/hippo-cms][bugfix/CMS-10070] 2
Mathijs den Burger
2016-05-09 08:56:54 UTC
Permalink
Mathijs den Burger pushed to branch bugfix/CMS-10070 at cms-community / hippo-cms


Commits:
77671fe5 by Mathijs den Burger at 2016-05-09T10:53:33+02:00
CMS-10070 fallback to default time zone if needed

- - - - -
8da771a1 by Mathijs den Burger at 2016-05-09T10:56:43+02:00
CMS-10070 translate " (DST)" suffix

- - - - -


7 changed files:

- api/src/main/java/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter.java
- api/src/main/java/org/hippoecm/frontend/session/UserSession.java
- + api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter.properties
- + api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_de.properties
- + api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_fr.properties
- + api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_nl.properties
- test/src/test/java/org/hippoecm/frontend/session/UserSessionTest.java


Changes:

=====================================
api/src/main/java/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter.java
=====================================
--- a/api/src/main/java/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter.java
+++ b/api/src/main/java/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter.java
@@ -27,6 +27,7 @@ import java.util.TimeZone;

import org.apache.commons.lang.StringUtils;
import org.apache.wicket.util.io.IClusterable;
+import org.hippoecm.frontend.plugins.standards.ClassResourceModel;
import org.hippoecm.frontend.session.UserSession;

/**
@@ -67,7 +68,9 @@ public interface DateTimePrinter extends IClusterable {
String print(final FormatStyle dateStyle, final FormatStyle timeStyle);

/**
- * Append the string (DST) to the printed date if it is in Daylight Saving Time.
+ * Append an explanatory string to the printed date if it is in Daylight Saving Time.
+ * Java shifts the time zone +1 if a date is in DST (e.g. CET becomes CEST), so to avoid confusion we add
+ * a description after the time zone (e.g. " (DST)" in English).
* @return the DateTimePrinter instance
*/
DateTimePrinter appendDST();
@@ -142,7 +145,8 @@ public interface DateTimePrinter extends IClusterable {
private String print(DateTimeFormatter formatter) {
final ZonedDateTime dateTime = ZonedDateTime.ofInstant(instant, zoneId);
formatter = formatter.withLocale(locale);
- final String suffix = appendDST && isDST() ? " (DST)" : StringUtils.EMPTY;
+ final String dst = new ClassResourceModel("dst", JavaDateTimePrinter.class).getObject();
+ final String suffix = appendDST && isDST() ? " (" + dst + ")" : StringUtils.EMPTY;
return dateTime.format(formatter) + suffix;
}



=====================================
api/src/main/java/org/hippoecm/frontend/session/UserSession.java
=====================================
--- a/api/src/main/java/org/hippoecm/frontend/session/UserSession.java
+++ b/api/src/main/java/org/hippoecm/frontend/session/UserSession.java
@@ -78,6 +78,10 @@ public abstract class UserSession extends WebSession {

public TimeZone getTimeZone() {
final ClientProperties properties = getClientInfo().getProperties();
- return properties.getTimeZone();
+ TimeZone timeZone = properties.getTimeZone();
+ if (timeZone == null) {
+ timeZone = TimeZone.getDefault();
+ }
+ return timeZone;
}
}


=====================================
api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter.properties
=====================================
--- /dev/null
+++ b/api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter.properties
@@ -0,0 +1 @@
+dst=DST


=====================================
api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_de.properties
=====================================
--- /dev/null
+++ b/api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_de.properties
@@ -0,0 +1 @@
+dst=Sommerzeit


=====================================
api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_fr.properties
=====================================
--- /dev/null
+++ b/api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_fr.properties
@@ -0,0 +1 @@
+dst=l'heure d'\u00E9t\u00E9


=====================================
api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_nl.properties
=====================================
--- /dev/null
+++ b/api/src/main/resources/org/hippoecm/frontend/plugins/standards/datetime/DateTimePrinter$JavaDateTimePrinter_nl.properties
@@ -0,0 +1 @@
+dst=zomertijd


=====================================
test/src/test/java/org/hippoecm/frontend/session/UserSessionTest.java
=====================================
--- a/test/src/test/java/org/hippoecm/frontend/session/UserSessionTest.java
+++ b/test/src/test/java/org/hippoecm/frontend/session/UserSessionTest.java
@@ -27,6 +27,7 @@ import org.hippoecm.frontend.model.UserCredentials;
import org.junit.Test;

import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;


@@ -116,5 +117,9 @@ public class UserSessionTest extends PluginTest {
assertFalse(deserJcrSession == jcrSession);
}

+ @Test
+ public void returnsTimeZone() {
+ assertNotNull(UserSession.get().getTimeZone());
+ }

}



View it on GitLab: https://code.onehippo.org/cms-community/hippo-cms/compare/6f7783ef54e8ff91febca75fe26a3e9b1763c66a...8da771a15bce0a46ce6871361b03bdc5c6acd2fa
Tobias Jeger
2016-05-09 11:20:06 UTC
Permalink
Tobias Jeger pushed to branch feature/cmng-psp1 at cms-community / hippo-addon-channel-manager


Commits:
e4140fe2 by Tobias Jeger at 2016-05-09T13:19:52+02:00
CHANNELMGR-582 Fix another problem after the merge

- - - - -
ff47a24d by Tobias Jeger at 2016-05-09T13:19:59+02:00
CHANNELMGR-582 Fix license header

- - - - -


2 changed files:

- frontend-ng/src/angularjs/channel/changeManagement/changeManagement.html
- frontend-ng/src/angularjs/channel/hippoIframe/hippoIframe.html


Changes:

=====================================
frontend-ng/src/angularjs/channel/changeManagement/changeManagement.html
=====================================
--- a/frontend-ng/src/angularjs/channel/changeManagement/changeManagement.html
+++ b/frontend-ng/src/angularjs/channel/changeManagement/changeManagement.html
@@ -1,3 +1,19 @@
+<!--
+ Copyright 2016 Hippo B.V. (http://www.onehippo.com)
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
<md-toolbar class="qa-toolbar">
<div class="md-toolbar-tools">
<md-button class="qa-button-back" ng-click="changeMan.onDone()">


=====================================
frontend-ng/src/angularjs/channel/hippoIframe/hippoIframe.html
=====================================
--- a/frontend-ng/src/angularjs/channel/hippoIframe/hippoIframe.html
+++ b/frontend-ng/src/angularjs/channel/hippoIframe/hippoIframe.html
@@ -14,12 +14,15 @@
limitations under the License.
-->

-<md-content flex layout="row" class="channel-iframe-base">
- <div class="channel-iframe-canvas" flex layout="row" layout-align="center">
- <div class="channel-iframe-scroll" flex="grow" layout="row">
- <iframe flex="noshrink" class="qa-view cm-scale" ng-src="{{ iframe.getSrc() }}"></iframe>
+<md-content class="channel-iframe-base" flex layout="row">
+ <div class="channel-iframe-canvas" flex layout="row">
+ <div class="channel-iframe-sheet" flex="grow" layout="row">
+ <div class="channel-iframe-scroll-x cm-scale" flex layout="row">
+ <iframe class="qa-view"
+ flex="noshrink"
+ ng-src="{{ iframe.getSrc() }}"></iframe>

- <div class="overlay qa-overlay cm-scale" component-adder>
+ <div class="overlay qa-overlay" component-adder>
<div ng-repeat="container in iframe.getContainers()" class="qa-container">
<overlay-element class="overlay-element-container"
layout="row"
@@ -29,8 +32,8 @@
'overlay-permeable': iframe.isDraggingOrClicking() || container.isDisabled(),
}"
structure-element="container">
-
</overlay-element>
+
<div ng-repeat="component in container.getComponents()" class="qa-component">
<overlay-element class="overlay-element-component"
layout="row"
@@ -41,8 +44,9 @@
</div>
</div>
</div>
- </div>

+ </div>
+ </div>
<div class="channel-dragula-mirror cm-scale"></div>
</div>
-</md-content>
+</md-content>
\ No newline at end of file



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/b2849d697e1a5e1ae7b7118c251d3f574d25db11...ff47a24de422f9852e7cae4bd049e02e4c67466e
Tobias Jeger
2016-05-10 07:43:42 UTC
Permalink
Tobias Jeger pushed to branch feature/cmng-psp1 at cms-community / hippo-addon-channel-manager


Commits:
cf6417cf by Arthur Bogaart at 2016-05-09T16:03:00+02:00
CHANNELMGR-513 Show grab/move cursor on draggable items in side-nav

Used the new grab/grabbing cursor for the cool browsers, used the
move cursor for IE. Also changed &lt;span&gt; with nested &lt;div&gt; into &lt;div.

- - - - -
cb48d3cc by Tobias Jeger at 2016-05-10T09:43:20+02:00
CHANNELMGR-513 Merge feature branch into mainline

- - - - -


2 changed files:

- frontend-ng/src/angularjs/channel/sidenav/sidenav.html
- frontend-ng/src/styles/_sidenav.scss


Changes:

=====================================
frontend-ng/src/angularjs/channel/sidenav/sidenav.html
=====================================
--- a/frontend-ng/src/angularjs/channel/sidenav/sidenav.html
+++ b/frontend-ng/src/angularjs/channel/sidenav/sidenav.html
@@ -36,7 +36,7 @@
<md-list md-no-ink class="qa-catalog">
<md-list-item class="md-1-line catalog-dd-container"
ng-repeat="component in sidenav.getCatalog()">
- <span layout="row"
+ <div layout="row"
layout-align="start center"
catalog-component="component"
class="catalog-dd-container-item">
@@ -46,7 +46,7 @@
<span class="md-list-item-text qa-name">
{{ component.label }}
</span>
- </span>
+ </div>
<md-divider ng-if="!$last"></md-divider>
</md-list-item>
</md-list>


=====================================
frontend-ng/src/styles/_sidenav.scss
=====================================
--- a/frontend-ng/src/styles/_sidenav.scss
+++ b/frontend-ng/src/styles/_sidenav.scss
@@ -23,3 +23,12 @@
.list-item-active {
background-color: $list-item-active-bgcolor;
}
+
+.catalog-dd-container-item {
+ cursor: move; // IE 11&edge
+ cursor: grab;
+
+ &:active, &.gu-mirror {
+ cursor: grabbing;
+ }
+}



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/674bdd0aa4cb89d0dd5e6d3855d707838cfcc2bd...cb48d3cc12158f451e210644d6d80cfc30a745d9
Mathijs den Burger
2016-05-10 14:50:24 UTC
Permalink
Mathijs den Burger pushed to branch feature/cmng-psp1 at cms-community / hippo-addon-channel-manager


Commits:
77fdebc6 by Tobias Jeger at 2016-05-10T10:51:52+02:00
CHANNELMGR-633 Address IE11 D&amp;D issue with images

- - - - -
b55bcfbe by Mathijs den Burger at 2016-05-10T16:49:42+02:00
CHANNELMGR-633 remove issue number from code comment

- - - - -


1 changed file:

- frontend-ng/src/angularjs/channel/hippoIframe/componentAdder/componentAdder.controller.js


Changes:

=====================================
frontend-ng/src/angularjs/channel/hippoIframe/componentAdder/componentAdder.controller.js
=====================================
--- a/frontend-ng/src/angularjs/channel/hippoIframe/componentAdder/componentAdder.controller.js
+++ b/frontend-ng/src/angularjs/channel/hippoIframe/componentAdder/componentAdder.controller.js
@@ -34,6 +34,9 @@ export class ComponentAdderCtrl {
$scope.$apply(() => {
this.selectedCatalogItem = CatalogService.getComponentByDomElement(original);
$element.addClass('add-mode');
+
+ // prevent IE11 from dragging the image
+ this.selectedCatalogItem.catalogJQueryElement.find('img').on('dragstart', (event) => event.preventDefault());
});
});

@@ -42,6 +45,8 @@ export class ComponentAdderCtrl {
$element.removeClass('add-mode');
this.isAddingComponent = false;
});
+
+ this.selectedCatalogItem.catalogJQueryElement.find('img').off('dragstart');
});

drake.on('over', (el, container) => {



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/cb48d3cc12158f451e210644d6d80cfc30a745d9...b55bcfbe08812428e0056fdb9a8b3d5847612859
Mathijs den Burger
2016-05-11 10:23:46 UTC
Permalink
Mathijs den Burger pushed to branch release/3.2 at cms-community / hippo-cms


Commits:
68079e2b by Jeroen Hoffman at 2016-05-02T13:42:17+02:00
CMS-10088: allow image cropping for variants larger than the original when upscaling flag is up

- - - - -
d5e079e1 by Mathijs den Burger at 2016-05-11T12:22:28+02:00
CMS-10088 Reintegrate bugfix/CMS-10088

- - - - -


4 changed files:

- gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/editor/ImageCropEditorDialog.java
- gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/editor/ImageCropPlugin.java
- gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/editor/crop/ImageCropSettings.java
- gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/editor/crop/hippoimagecropper/hippoimagecropper.js


Changes:

=====================================
gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/editor/ImageCropEditorDialog.java
=====================================
--- a/gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/editor/ImageCropEditorDialog.java
+++ b/gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/editor/ImageCropEditorDialog.java
@@ -153,6 +153,15 @@ public class ImageCropEditorDialog extends AbstractDialog<Node> {
isUpscalingEnabled,
fitView,
thumbnailSize.getMarkupId(true));
+
+ if (configuredDimension.width > originalImageDimension.width || configuredDimension.height > originalImageDimension.height) {
+ final double cropFactor = determineScalingFactor(
+ configuredDimension.getWidth(), configuredDimension.getHeight(),
+ originalImageDimension.getWidth(), originalImageDimension.getHeight());
+ cropSettings.setInitialWidth((int)Math.floor(cropFactor * configuredDimension.getWidth()));
+ cropSettings.setInitialHeight((int)Math.floor(cropFactor * configuredDimension.getHeight()));
+ }
+
final ImageCropBehavior imageCropBehavior = new ImageCropBehavior(cropSettings);
final IModel<Boolean> fitViewModel = new PropertyModel<>(this, "fitView");
final AjaxCheckBox fitViewCheckbox = new AjaxCheckBox("fit-view", fitViewModel) {
@@ -222,23 +231,36 @@ public class ImageCropEditorDialog extends AbstractDialog<Node> {
* Determine the scaling factor of the preview image, so that it fits within the max boundaries of
* the preview container (e.g. {@code #MAX_PREVIEW_WIDTH} by {@code #MAX_PREVIEW_HEIGHT}).
*
- * @param previewWidth width of preview image
+ * @param previewWidth width of preview image
* @param previewHeight height of preview image
* @return the scaling factor of the preview image
*/
private double determinePreviewScalingFactor(final double previewWidth, final double previewHeight) {
+ return determineScalingFactor(previewWidth, previewHeight, MAX_PREVIEW_WIDTH, MAX_PREVIEW_HEIGHT);
+ }
+
+ /**
+ * Determine the scaling factor of the preview image, so that it fits within the max boundaries of
+ * the preview container (e.g. {@code #MAX_PREVIEW_WIDTH} by {@code #MAX_PREVIEW_HEIGHT}).
+ * @param width width of image
+ * @param height height of image
+ * @param maxWidth max width of image
+ * @param maxHeight max height of image
+ * @return the scaling factor of the preview image
+ */
+ private double determineScalingFactor(final double width, final double height, final double maxWidth, final double maxHeight) {

final double widthBasedScaling;
- if (previewWidth > MAX_PREVIEW_WIDTH) {
- widthBasedScaling = MAX_PREVIEW_WIDTH / previewWidth;
+ if (width > maxWidth) {
+ widthBasedScaling = maxWidth / width;
} else {
widthBasedScaling = 1D;
}

final double heightBasedScaling;

- if (previewHeight > MAX_PREVIEW_HEIGHT) {
- heightBasedScaling = MAX_PREVIEW_HEIGHT / previewHeight;
+ if (height > maxHeight) {
+ heightBasedScaling = maxHeight / height;
} else {
heightBasedScaling = 1D;
}


=====================================
gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/editor/ImageCropPlugin.java
=====================================
--- a/gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/editor/ImageCropPlugin.java
+++ b/gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/editor/ImageCropPlugin.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2011-2015 Hippo B.V. (http://www.onehippo.com)
+ * Copyright 2011-2016 Hippo B.V. (http://www.onehippo.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -59,6 +59,7 @@ public class ImageCropPlugin extends RenderPlugin<Node> {

final GalleryProcessor processor = DefaultGalleryProcessor.getGalleryProcessor(context, getPluginConfig());

+ boolean upscalingEnabled = false;
boolean isOriginal = true;
boolean isOriginalImageWidthSmallerThanThumbWidth = false;
boolean isOriginalImageHeightSmallerThanThumbHeight = false;
@@ -84,6 +85,8 @@ public class ImageCropPlugin extends RenderPlugin<Node> {
isOriginalImageWidthSmallerThanThumbWidth = thumbnailDimension.getWidth() > originalImageDimension.getWidth();
isOriginalImageHeightSmallerThanThumbHeight = thumbnailDimension.getHeight() > originalImageDimension.getHeight();

+ upscalingEnabled = processor.isUpscalingEnabled(jcrImageNodeModel.getObject());
+
} catch (RepositoryException | GalleryException | NullPointerException e) {
error(e);
log.error("Cannot retrieve dimensions of original or thumbnail image", e);
@@ -93,10 +96,15 @@ public class ImageCropPlugin extends RenderPlugin<Node> {
Label cropButton = new Label("crop-button", new StringResourceModel("crop-button-label", this, null));
cropButton.setVisible(mode == IEditor.Mode.EDIT && !isOriginal);

+
+ final boolean isUpdateDisabled =
+ isOriginal
+ || areExceptionsThrown
+ || (isOriginalImageWidthSmallerThanThumbWidth && !upscalingEnabled)
+ || (isOriginalImageHeightSmallerThanThumbHeight && !upscalingEnabled);
+
if (mode == IEditor.Mode.EDIT) {
- if (!isOriginal && !areExceptionsThrown
- && !isOriginalImageWidthSmallerThanThumbWidth
- && !isOriginalImageHeightSmallerThanThumbHeight) {
+ if (!isUpdateDisabled) {

cropButton.add(new AjaxEventBehavior("onclick") {
@Override
@@ -107,18 +115,14 @@ public class ImageCropPlugin extends RenderPlugin<Node> {
});
}

- String cropButtonClass = isOriginal
- || areExceptionsThrown
- || isOriginalImageWidthSmallerThanThumbWidth
- || isOriginalImageHeightSmallerThanThumbHeight
- ? "crop-button inactive" : "crop-button active";
+ final String cropButtonClass = isUpdateDisabled ? "crop-button inactive" : "crop-button active";

cropButton.add(new AttributeAppender("class", Model.of(cropButtonClass), " "));

String buttonTipProperty =
areExceptionsThrown ? "crop-button-tip-inactive-error" :
- isOriginalImageWidthSmallerThanThumbWidth ? "crop-button-tip-inactive-width" :
- isOriginalImageHeightSmallerThanThumbHeight ? "crop-button-tip-inactive-height" :
+ isOriginalImageWidthSmallerThanThumbWidth && !upscalingEnabled ? "crop-button-tip-inactive-width" :
+ isOriginalImageHeightSmallerThanThumbHeight && !upscalingEnabled ? "crop-button-tip-inactive-height" :
"crop-button-tip";

cropButton.add(TitleAttribute.append(new StringResourceModel(buttonTipProperty, this, null)));


=====================================
gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/editor/crop/ImageCropSettings.java
=====================================
--- a/gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/editor/crop/ImageCropSettings.java
+++ b/gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/editor/crop/ImageCropSettings.java
@@ -34,6 +34,8 @@ public class ImageCropSettings extends WidgetSettings {

private int initialX = 10;
private int initialY = 10;
+ private int initialWidth = 100;
+ private int initialHeight = 100;
private int minimumWidth = 16;
private int minimumHeight = 16;

@@ -63,6 +65,9 @@ public class ImageCropSettings extends WidgetSettings {
this.thumbnailWidth = (int) thumbnailDimension.getWidth();
this.thumbnailHeight = (int) thumbnailDimension.getHeight();

+ this.initialWidth = this.thumbnailWidth;
+ this.initialHeight = this.thumbnailHeight;
+
this.upscalingEnabled = upscalingEnabled;
this.fitView = fitView;
previewVisible = thumbnailWidth <= MAX_PREVIEW_RESOLUTION;
@@ -134,6 +139,22 @@ public class ImageCropSettings extends WidgetSettings {
this.initialY = initialY;
}

+ public int getInitialWidth() {
+ return initialWidth;
+ }
+
+ public void setInitialWidth(final int initialWidth) {
+ this.initialWidth = initialWidth;
+ }
+
+ public int getInitialHeight() {
+ return initialHeight;
+ }
+
+ public void setInitialHeight(final int initialHeight) {
+ this.initialHeight = initialHeight;
+ }
+
public int getMinimumWidth() {
return minimumWidth;
}


=====================================
gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/editor/crop/hippoimagecropper/hippoimagecropper.js
=====================================
--- a/gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/editor/crop/hippoimagecropper/hippoimagecropper.js
+++ b/gallery/frontend/src/main/java/org/hippoecm/frontend/plugins/gallery/editor/crop/hippoimagecropper/hippoimagecropper.js
@@ -51,6 +51,8 @@ if (!YAHOO.hippo.ImageCropper) {
this.viewMarginHeight = 0;
this.initialX = config.initialX;
this.initialY = config.initialY;
+ this.initialWidth = config.initialWidth;
+ this.initialHeight = config.initialHeight;
this.minimumWidth = config.minimumWidth;
this.minimumHeight = config.minimumHeight;

@@ -132,8 +134,8 @@ if (!YAHOO.hippo.ImageCropper) {
{
keyTick: 4,
initialXY: [this.initialX, this.initialY],
- initHeight: this.thumbnailHeight,
- initWidth: this.thumbnailWidth,
+ initHeight: this.initialHeight,
+ initWidth: this.initialWidth,
ratio: this.fixedDimension === 'both',
minWidth: this.minimumWidth,
minHeight: this.minimumHeight,



View it on GitLab: https://code.onehippo.org/cms-community/hippo-cms/compare/7e7080232574963c67cf6baa7a174692a811e911...d5e079e169489cc6a87cac90da3ac6182041ef19
Mathijs den Burger
2016-05-11 11:38:31 UTC
Permalink
Mathijs den Burger pushed to branch feature/cmng-psp1 at cms-community / hippo-addon-channel-manager


Commits:
f09baa36 by Tobias Jeger at 2016-05-11T09:14:38+02:00
CHANNELMGR-635 Add blank subpage for menu editor

- - - - -
68396939 by Mathijs den Burger at 2016-05-11T13:37:13+02:00
CHANNELMGR-635 Merge changes into mainline

- - - - -


9 changed files:

- frontend-ng/src/angularjs/channel/channel.html
- frontend-ng/src/angularjs/channel/channel.js
- + frontend-ng/src/angularjs/channel/menu/editor.controller.js
- + frontend-ng/src/angularjs/channel/menu/editor.directive.js
- + frontend-ng/src/angularjs/channel/menu/editor.html
- + frontend-ng/src/angularjs/channel/menu/editor.spec.js
- + frontend-ng/src/angularjs/channel/menu/menu.js
- frontend-ng/src/i18n/hippo-cm.en.json
- frontend-ng/src/i18n/hippo-cm.nl.json


Changes:

=====================================
frontend-ng/src/angularjs/channel/channel.html
=====================================
--- a/frontend-ng/src/angularjs/channel/channel.html
+++ b/frontend-ng/src/angularjs/channel/channel.html
@@ -23,6 +23,9 @@

<page-actions ng-if="channelCtrl.isEditMode" on-action-selected="channelCtrl.showSubpage(subpage)"></page-actions>

+ <!--Temporary access to menu editor-->
+ <md-button ng-if="channelCtrl.isEditMode" ng-click="channelCtrl.menuName = 'main'; channelCtrl.showSubpage('menu-editor')">Edit menu</md-button>
+
<relevance-view-as render-variant="channelCtrl.getRenderVariant()"></relevance-view-as>

<span flex></span>
@@ -102,4 +105,10 @@
on-done="channelCtrl.hideSubpage()">
</change-management>

+<menu-editor layout="column" flex
+ ng-if="channelCtrl.currentSubpage == 'menu-editor'"
+ menu-name="{{channelCtrl.menuName}}"
+ on-done="channelCtrl.hideSubpage()">
+</menu-editor>
+
<div class="mask qa-mask" mask></div>


=====================================
frontend-ng/src/angularjs/channel/channel.js
=====================================
--- a/frontend-ng/src/angularjs/channel/channel.js
+++ b/frontend-ng/src/angularjs/channel/channel.js
@@ -19,6 +19,7 @@ import { channelPageActionsModule } from './page/actions/actions';
import { channelActionsModule } from './actions/actions';
import { channelSidenavModule } from './sidenav/sidenav';
import { channelHippoIframeModule } from './hippoIframe/hippoIframe';
+import { channelMenuModule } from './menu/menu';
import { channelMaskModule } from './mask/mask';
import { channelRelevanceModule } from './relevance/relevance';
import { config } from './channel.config';
@@ -39,6 +40,7 @@ export const channelModule = angular
channelActionsModule.name,
channelSidenavModule.name,
channelHippoIframeModule.name,
+ channelMenuModule.name,
channelMaskModule.name,
channelRelevanceModule.name,
])


=====================================
frontend-ng/src/angularjs/channel/menu/editor.controller.js
=====================================
--- /dev/null
+++ b/frontend-ng/src/angularjs/channel/menu/editor.controller.js
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2016 Hippo B.V. (http://www.onehippo.com)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export class MenuEditorCtrl {
+ constructor($translate) {
+ 'ngInject';
+
+ this.subpageTitle = $translate.instant('SUBPAGE_MENU_EDITOR_TITLE', { menuName: this.menuName });
+ }
+}


=====================================
frontend-ng/src/angularjs/channel/menu/editor.directive.js
=====================================
--- /dev/null
+++ b/frontend-ng/src/angularjs/channel/menu/editor.directive.js
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2016 Hippo B.V. (http://www.onehippo.com)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export function menuEditorDirective() {
+ 'ngInject';
+
+ return {
+ restrict: 'E',
+ bindToController: {
+ menuName: '@',
+ onDone: '&',
+ onSuccess: '&',
+ onError: '&',
+ },
+ templateUrl: 'channel/menu/editor.html',
+ controller: 'MenuEditorCtrl',
+ controllerAs: 'menuEditor',
+ };
+}


=====================================
frontend-ng/src/angularjs/channel/menu/editor.html
=====================================
--- /dev/null
+++ b/frontend-ng/src/angularjs/channel/menu/editor.html
@@ -0,0 +1,39 @@
+<!--
+ Copyright 2016 Hippo B.V. (http://www.onehippo.com)
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<md-toolbar class="qa-toolbar">
+ <div class="md-toolbar-tools">
+ <md-button class="qa-button-back" ng-click="menuEditor.onDone()">
+ {{ 'TOOLBAR_BUTTON_BACK' | translate }}
+ </md-button>
+ <span flex></span>
+ <h2 class="qa-subpage-menu-editor">{{ menuEditor.subpageTitle }}</h2>
+ <span flex></span>
+ </div>
+</md-toolbar>
+
+<md-content layout-padding layout="row" layout-align="center" class="feedback-parent">
+ <form name="form" flex="initial" class="qa-subpage subpage-form">
+
+ <md-input-container>
+ <md-button type="submit" class="qa-menu-editor-save md-raised md-primary"
+ ng-disabled="form.$pristine || form.$invalid"
+ ng-click="menuEditor.onDone()">
+ {{ 'SUBPAGE_BUTTON_SAVE' | translate }}
+ </md-button>
+ </md-input-container>
+ </form>
+</md-content>
\ No newline at end of file


=====================================
frontend-ng/src/angularjs/channel/menu/editor.spec.js
=====================================
--- /dev/null
+++ b/frontend-ng/src/angularjs/channel/menu/editor.spec.js
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2016 Hippo B.V. (http://www.onehippo.com)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+describe('MenuEditor', () => {
+ 'use strict';
+
+ let $element;
+ let $scope;
+ let $rootScope;
+ let $compile;
+ let $translate;
+
+ beforeEach(() => {
+ module('hippo-cm');
+
+ inject((_$rootScope_, _$compile_, _$translate_) => {
+ $rootScope = _$rootScope_;
+ $compile = _$compile_;
+ $translate = _$translate_;
+ });
+
+ spyOn($translate, 'instant').and.callFake((key) => key);
+ });
+
+ function compileDirectiveAndGetController() {
+ $scope = $rootScope.$new();
+ $scope.onDone = jasmine.createSpy('onDone');
+ $scope.menuName = 'testMenu';
+ $element = angular.element('<menu-editor menu-name="{{menuName}}" on-done="onDone()"> </menu-editor>');
+ $compile($element)($scope);
+ $scope.$digest();
+
+ return $element.controller('menu-editor');
+ }
+
+ it('initializes correctly', () => {
+ compileDirectiveAndGetController();
+
+ expect($translate.instant).toHaveBeenCalledWith('SUBPAGE_MENU_EDITOR_TITLE', { menuName: 'testMenu' });
+ });
+
+ it('returns to the page when clicking the "back" button', () => {
+ compileDirectiveAndGetController();
+
+ $element.find('.qa-button-back').click();
+ expect($scope.onDone).toHaveBeenCalled();
+ });
+});
+


=====================================
frontend-ng/src/angularjs/channel/menu/menu.js
=====================================
--- /dev/null
+++ b/frontend-ng/src/angularjs/channel/menu/menu.js
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2016 Hippo B.V. (http://www.onehippo.com)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { menuEditorDirective } from './editor.directive';
+import { MenuEditorCtrl } from './editor.controller';
+
+export const channelMenuModule = angular
+ .module('hippo-cm.channel.menu', [])
+ .directive('menuEditor', menuEditorDirective)
+ .controller('MenuEditorCtrl', MenuEditorCtrl);


=====================================
frontend-ng/src/i18n/hippo-cm.en.json
=====================================
--- a/frontend-ng/src/i18n/hippo-cm.en.json
+++ b/frontend-ng/src/i18n/hippo-cm.en.json
@@ -49,6 +49,7 @@
"SIDENAV_TAB_SITEMAP": "Sitemap",
"SUBPAGE_BUTTON_SAVE": "Save",
"SUBPAGE_CHANNEL_EDIT_TITLE": "Edit channel '{{channelName}}'",
+ "SUBPAGE_MENU_EDITOR_TITLE": "Edit menu '{{menuName}}'",
"SUBPAGE_PAGE_ADD_BUTTON_CREATE": "Create",
"SUBPAGE_PAGE_ADD_LABEL_LAST_PATHINFO_ELEMENT": "Last element",
"SUBPAGE_PAGE_ADD_LABEL_TEMPLATE": "Page template",


=====================================
frontend-ng/src/i18n/hippo-cm.nl.json
=====================================
--- a/frontend-ng/src/i18n/hippo-cm.nl.json
+++ b/frontend-ng/src/i18n/hippo-cm.nl.json
@@ -43,6 +43,7 @@
"SIDENAV_TAB_SITEMAP": "Sitemap",
"SUBPAGE_BUTTON_SAVE": "Sla op",
"SUBPAGE_CHANNEL_EDIT_TITLE": "Bewerk channel '{{channelName}}'",
+ "SUBPAGE_MENU_EDITOR_TITLE": "Bewerk menu '{{menuName}}'",
"SUBPAGE_PAGE_ADD_BUTTON_CREATE": "???",
"SUBPAGE_PAGE_ADD_LABEL_LAST_PATHINFO_ELEMENT": "???",
"SUBPAGE_PAGE_ADD_LABEL_TEMPLATE": "???",



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/6df07557d48f82d4794c7b6714b13d62b66f02db...68396939fe3577b3ba69c39af8362b1eed02eb03
Unico Hommes
2016-05-12 09:11:39 UTC
Permalink
Unico Hommes pushed to branch master at cms-community / hippo-repository


Commits:
71160949 by Woonsan Ko at 2016-02-19T15:38:14-05:00
REPO-1440 adding NodeUpdaterVisitorContext#isDryRun() for convenience

- - - - -
869318eb by Unico Hommes at 2016-05-12T11:11:35+02:00
Merge branch 'feature/REPO-1440' into 'master'

REPO-1440 adding NodeUpdaterVisitorContext#isDryRun() for convenience

Simple improvement. Please review and merge it. Thanks in advance!

See merge request !2
- - - - -


2 changed files:

- api/src/main/java/org/onehippo/repository/update/NodeUpdateVisitorContext.java
- engine/src/main/java/org/onehippo/repository/update/UpdaterExecutor.java


Changes:

=====================================
api/src/main/java/org/onehippo/repository/update/NodeUpdateVisitorContext.java
=====================================
--- a/api/src/main/java/org/onehippo/repository/update/NodeUpdateVisitorContext.java
+++ b/api/src/main/java/org/onehippo/repository/update/NodeUpdateVisitorContext.java
@@ -40,4 +40,10 @@ public interface NodeUpdateVisitorContext {
*/
void reportFailed(String path);

+ /**
+ * Returns true if the current execution is on dry run mode.
+ * @return true if the current execution is on dry run mode
+ */
+ boolean isDryRun();
+
}


=====================================
engine/src/main/java/org/onehippo/repository/update/UpdaterExecutor.java
=====================================
--- a/engine/src/main/java/org/onehippo/repository/update/UpdaterExecutor.java
+++ b/engine/src/main/java/org/onehippo/repository/update/UpdaterExecutor.java
@@ -622,5 +622,10 @@ public class UpdaterExecutor implements EventListener {
public void reportFailed(String path) {
report.failed(path);
}
+
+ @Override
+ public boolean isDryRun() {
+ return updaterInfo.isDryRun();
+ }
}
}



View it on GitLab: https://code.onehippo.org/cms-community/hippo-repository/compare/877a8e1a771b4d76625be6c631f54b89c7c28a9a...869318ebe6c215e67b0aea8cab241f5720f4b81a
Tobias Jeger
2016-05-17 07:40:43 UTC
Permalink
Tobias Jeger pushed to branch feature/cmng-psp1 at cms-community / hippo-addon-channel-manager


Commits:
2a4b98bf by Arthur Bogaart at 2016-05-12T13:58:48+02:00
CHANNELMGR-643 Use mouseleave to trigger component leave event

In Safari, the mouseout event is triggered for certain elements in
the site that handle mouse-pointer-events (like :hover or similar
events) when an overlay element is set to permeable. This means
that when a user starts dragging a component while hovering over
such an element, the mouse-out event is called which in turn
triggers our code to remove the 'permeable' class from the overlay
. Afterwards the onStartDrag event is called which adds the
'permeable' class again, but this is too late for Safari, i.e. it
will not pass pointer-events through the overlay element into the
site (where dragula takes over).

To fix this, I changed mouseout into mouseleave [1] which is only
triggered when the mouse pointer is moved off the element
(hovering nested elements, or in this case elements in an iframe
underneath the overlay element don't trigger this event).

There might be side-effects but AFAICS everything still works as
expected.

[1] https://developer.mozilla.org/en-US/docs/Web/Events/mouseleave

- - - - -
b78b65da by Tobias Jeger at 2016-05-16T09:13:22+02:00
CHANNELMGR-643 Merge bugfix into mainline

- - - - -


1 changed file:

- frontend-ng/src/angularjs/channel/hippoIframe/dragDrop.service.js


Changes:

=====================================
frontend-ng/src/angularjs/channel/hippoIframe/dragDrop.service.js
=====================================
--- a/frontend-ng/src/angularjs/channel/hippoIframe/dragDrop.service.js
+++ b/frontend-ng/src/angularjs/channel/hippoIframe/dragDrop.service.js
@@ -16,7 +16,7 @@

const COMPONENT_QA_CLASS = 'qa-dragula-component';
const MOUSEUP_EVENT_NAME = 'mouseup.dragDropService';
-const MOUSEOUT_EVENT_NAME = 'mouseout.dragDropService';
+const MOUSELEAVE_EVENT_NAME = 'mouseleave.dragDropService';
const MIRROR_WRAPPER_SELECTOR = '.channel-dragula-mirror';

export class DragDropService {
@@ -124,7 +124,7 @@ export class DragDropService {

const componentBoxElement = component.getBoxElement();
componentBoxElement.on(MOUSEUP_EVENT_NAME, () => this._onComponentClick(component));
- componentBoxElement.on(MOUSEOUT_EVENT_NAME, () => this._onComponentLeave(component));
+ componentBoxElement.on(MOUSELEAVE_EVENT_NAME, () => this._onComponentLeave(component));
componentBoxElement.addClass(COMPONENT_QA_CLASS);
}

@@ -166,7 +166,7 @@ export class DragDropService {
this.draggingOrClicking = false;
$(element)
.off(MOUSEUP_EVENT_NAME)
- .off(MOUSEOUT_EVENT_NAME)
+ .off(MOUSELEAVE_EVENT_NAME)
.removeClass(COMPONENT_QA_CLASS);
this._digestIfNeeded();
}



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/9fde4dd13d594f6103b0b622905c437d84bf077b...b78b65dae02e23be1617f66530043935874b9fad
Tobias Jeger
2016-05-17 07:42:08 UTC
Permalink
Tobias Jeger pushed to branch feature/cmng-psp1 at cms-community / hippo-addon-channel-manager


Commits:
3c59ba45 by Mathijs den Burger at 2016-05-11T17:33:11+02:00
CHANNELMGR-597 reload page when channels perspective is activated

The current page is reloaded by sending a 'reload-page' event to
Angular, which gets picked up by the iframe service.

To prevent that 'view content in channel' (which also reloads the
page because the entire channel state is reloaded) also triggers a
second page reload because it also actives the channels perspective,
the iframe service now keeps track of whether a page has been
loaded. Until that has happened, reload-page events don't do
anything.

The 'show breadcrumb' code was called twice. To prevent that, the
RootPanel now sets a constructor property 'showBreadcrumbInitially'
when the channel manager perspective is active during the first page
load (e.g. a user pressed F5 when the channel manager was active).
Only in that case the RootPanel's constructor will show the
breadcrumb immediately.

- - - - -
26a7d3bc by Tobias Jeger at 2016-05-17T09:41:34+02:00
CHANNELMGR-597 Merge changes into mainline

- - - - -


5 changed files:

- frontend-ng/src/angularjs/channel/hippoIframe/hippoIframe.service.js
- frontend-ng/src/angularjs/channel/hippoIframe/hippoIframe.service.spec.js
- frontend/src/main/java/org/onehippo/cms7/channelmanager/RootPanel.java
- frontend/src/main/resources/org/onehippo/cms7/channelmanager/RootPanel.js
- frontend/src/main/resources/org/onehippo/cms7/channelmanager/channeleditor/ChannelEditor.js


Changes:

=====================================
frontend-ng/src/angularjs/channel/hippoIframe/hippoIframe.service.js
=====================================
--- a/frontend-ng/src/angularjs/channel/hippoIframe/hippoIframe.service.js
+++ b/frontend-ng/src/angularjs/channel/hippoIframe/hippoIframe.service.js
@@ -16,16 +16,20 @@

export class HippoIframeService {

- constructor($q, $log, ChannelService) {
+ constructor($q, $log, ChannelService, CmsService) {
'ngInject';

this.$q = $q;
this.$log = $log;
this.ChannelService = ChannelService;
+ this.CmsService = CmsService;
+
+ CmsService.subscribe('reload-page', () => this.reload());
}

initialize(iframeJQueryElement) {
this.iframeJQueryElement = iframeJQueryElement;
+ this.pageLoaded = false;
}

load(renderPathInfo) {
@@ -58,30 +62,29 @@ export class HippoIframeService {
}

reload() {
- if (this._deferredReload) {
- this.$log.warn('Trying to reload when a reload is already ongoing. Taking no action.');
- return this._deferredReload.promise;
+ if (!this.pageLoaded) {
+ return this.$q.resolve();
}

- const deferred = this.$q.defer();
- if (this.iframeJQueryElement && this.iframeJQueryElement[0]) {
- this.iframeJQueryElement[0].contentWindow.location.reload();
- this._deferredReload = deferred;
- } else {
- this.$log.warn('Reload requested while iframe element unknown. Not reloading.');
- deferred.resolve(); // resolving (rather than rejecting) keeps error handling simpler
+ if (this.deferredReload) {
+ this.$log.warn('Trying to reload when a reload is already ongoing. Taking no action.');
+ return this.deferredReload.promise;
}
- return deferred.promise;
+
+ this.deferredReload = this.$q.defer();
+ this.iframeJQueryElement[0].contentWindow.location.reload();
+ return this.deferredReload.promise;
}

// called by the hippoIframe controller when the processing of the loaded page is completed.
signalPageLoadCompleted() {
this._extractRenderPathInfo(this.iframeJQueryElement[0].contentWindow.location.pathname);

- const deferred = this._deferredReload;
+ const deferred = this.deferredReload;
if (deferred) {
// delete the "state" before resolving the promise.
- delete this._deferredReload;
+ delete this.deferredReload;
+ this.pageLoaded = true;
deferred.resolve();
}
}


=====================================
frontend-ng/src/angularjs/channel/hippoIframe/hippoIframe.service.spec.js
=====================================
--- a/frontend-ng/src/angularjs/channel/hippoIframe/hippoIframe.service.spec.js
+++ b/frontend-ng/src/angularjs/channel/hippoIframe/hippoIframe.service.spec.js
@@ -53,13 +53,11 @@ describe('HippoIframeService', () => {
iframe.attr('src', `/${jasmine.getFixtures().fixturesPath}/channel/hippoIframe/hippoIframe.service.iframe.fixture.html`);
}

- it('logs a warning when a reload is requested before the iframe has been initialized', (done) => {
- spyOn($log, 'warn');
-
+ it('does not reload the iframe when no page has been loaded yet', (done) => {
HippoIframeService.initialize(undefined); // undo initialization

HippoIframeService.reload().then(() => {
- expect($log.warn).toHaveBeenCalled();
+ expect(HippoIframeService.deferredReload).toBeFalsy();
done();
});

@@ -68,26 +66,35 @@ describe('HippoIframeService', () => {

it('reloads the iframe and waits for the page load to complete', (done) => {
loadIframeFixture(() => { // give the iframe something to reload.
+ HippoIframeService.pageLoaded = true;
spyOn($log, 'warn');

iframe.one('load', () => { // catch the reload event to signal page load completion
- expect(HippoIframeService._deferredReload).toBeTruthy();
+ expect(HippoIframeService.deferredReload).toBeTruthy();
HippoIframeService.signalPageLoadCompleted();

$rootScope.$digest();
});

HippoIframeService.reload().then(() => { // trigger the reload, wait for its completion
- expect(HippoIframeService._deferredReload).toBeFalsy();
+ expect(HippoIframeService.deferredReload).toBeFalsy();
expect($log.warn).not.toHaveBeenCalled();
done();
});
});
});

+ it('reloads the iframe when a "reload-page" event is received', () => {
+ spyOn(HippoIframeService, 'reload');
+ window.CMS_TO_APP.publish('reload-page');
+ expect(HippoIframeService.reload).toHaveBeenCalled();
+ });
+
+
it('logs a warning upon a reload request when a reload is already ongoing', (done) => {
spyOn($log, 'warn');

+ HippoIframeService.pageLoaded = true;
const initialPromise = HippoIframeService.reload();

expect($log.warn).not.toHaveBeenCalled();


=====================================
frontend/src/main/java/org/onehippo/cms7/channelmanager/RootPanel.java
=====================================
--- a/frontend/src/main/java/org/onehippo/cms7/channelmanager/RootPanel.java
+++ b/frontend/src/main/java/org/onehippo/cms7/channelmanager/RootPanel.java
@@ -96,6 +96,9 @@ public class RootPanel extends ExtPanel {
@ExtProperty
private final String[] contextPaths;

+ @ExtProperty
+ private boolean showBreadcrumbInitially = false;
+
@Override
public void buildInstantiationJs(final StringBuilder js, final String extClass, final JSONObject properties) {
js.append("try { ");
@@ -174,8 +177,8 @@ public class RootPanel extends ExtPanel {
selectActiveItem(target);
redraw = false;
}
- // show the channel manager breadcrumb when the channel manager perspective is active on the first page load
- target.appendJavaScript("Ext.getCmp('rootPanel').showBreadcrumb();");
+ } else {
+ this.showBreadcrumbInitially = true;
}
}



=====================================
frontend/src/main/resources/org/onehippo/cms7/channelmanager/RootPanel.js
=====================================
--- a/frontend/src/main/resources/org/onehippo/cms7/channelmanager/RootPanel.js
+++ b/frontend/src/main/resources/org/onehippo/cms7/channelmanager/RootPanel.js
@@ -85,8 +85,13 @@
this.toolbar.render(hippoFooter, 0);

// only show the channel manager breadcrumb when channel manager is active
- Hippo.Events.subscribe('CMSChannels', this.showBreadcrumb, this);
- Hippo.Events.subscribe('CMSChannels-deactivated', this.hideBreadcrumb, this);
+ Hippo.Events.subscribe('CMSChannels', this._onActivate, this);
+ Hippo.Events.subscribe('CMSChannels-deactivated', this._onDeactivate, this);
+
+ // show the breadcrumb initially when needed
+ if (this.initialConfig.showBreadcrumbInitially) {
+ this._showBreadcrumb();
+ }
}, this, {single: true});

// get all child components
@@ -133,6 +138,17 @@
Hippo.ChannelManager.RootPanel.superclass.initComponent.apply(this, arguments);
},

+ _onActivate: function() {
+ this._showBreadcrumb();
+ if (this._isChannelEditorShown()) {
+ this.layout.activeItem.reloadPage();
+ }
+ },
+
+ _onDeactivate: function() {
+ this._hideBreadcrumb();
+ },
+
_initBreadcrumbAnimation: function () {
var toolbar, toolbarEl, toolbarWidth;

@@ -174,14 +190,14 @@
}, this);
},

- hideBreadcrumb: function () {
+ _hideBreadcrumb: function () {
this._initBreadcrumbAnimation();
this.showBreadcrumbTask.cancel();
this.toolbar.getEl().removeClass('hippo-breadcrumb-active');
this.hideBreadcrumbTask.delay(500);
},

- showBreadcrumb: function () {
+ _showBreadcrumb: function () {
this._initBreadcrumbAnimation();
this.hideBreadcrumbTask.cancel();
this.toolbar.getEl().addClass('hippo-breadcrumb-active');
@@ -230,6 +246,10 @@
this.layout.setActiveItem(1);
},

+ _isChannelEditorShown: function () {
+ return this.layout.activeItem === this.items.get(1);
+ },
+
showConfigEditor: function () {
this.toolbar.pushItem({
card: this.items.get(2),


=====================================
frontend/src/main/resources/org/onehippo/cms7/channelmanager/channeleditor/ChannelEditor.js
=====================================
--- a/frontend/src/main/resources/org/onehippo/cms7/channelmanager/channeleditor/ChannelEditor.js
+++ b/frontend/src/main/resources/org/onehippo/cms7/channelmanager/channeleditor/ChannelEditor.js
@@ -71,6 +71,12 @@
}.bind(this));
},

+ reloadPage: function() {
+ if (this.selectedChannel) {
+ this.hostToIFrame.publish('reload-page');
+ }
+ },
+
_syncChannel: function() {
this._reloadChannels().when(function (channelStore) {
this.selectedChannel = channelStore.getById(this.selectedChannel.id);



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/b78b65dae02e23be1617f66530043935874b9fad...26a7d3bc79dac4db01ad7bf9b306407fc7200896
Mathijs den Burger
2016-05-17 16:40:17 UTC
Permalink
Mathijs den Burger pushed to branch feature/cmng-psp1-HSTTWO-3667 at cms-community / hippo-site-toolkit


Commits:
f820e1d3 by Mathijs den Burger at 2016-05-17T15:51:19+02:00
HSTTWO-3667 rename isHideInChannelManager to isHiddenInChannelManager

- - - - -
a1d12811 by Mathijs den Burger at 2016-05-17T15:52:46+02:00
HSTTWO-3667 remove superfluous access modifiers

Interface methods are always public.

- - - - -


4 changed files:

- api/src/main/java/org/hippoecm/hst/configuration/channel/HstPropertyDefinition.java
- cms-restapi/src/main/java/org/hippoecm/hst/rest/beans/InformationObjectsBuilder.java
- components/core/src/main/java/org/hippoecm/hst/configuration/channel/AbstractHstPropertyDefinition.java
- components/core/src/main/java/org/hippoecm/hst/configuration/channel/AnnotationHstPropertyDefinition.java


Changes:

=====================================
api/src/main/java/org/hippoecm/hst/configuration/channel/HstPropertyDefinition.java
=====================================
--- a/api/src/main/java/org/hippoecm/hst/configuration/channel/HstPropertyDefinition.java
+++ b/api/src/main/java/org/hippoecm/hst/configuration/channel/HstPropertyDefinition.java
@@ -26,24 +26,24 @@ import org.hippoecm.hst.core.parameters.HstValueType;
*/
public interface HstPropertyDefinition {

- public HstValueType getValueType();
+ HstValueType getValueType();

- public String getName();
+ String getName();

- public Object getDefaultValue();
+ Object getDefaultValue();

- public boolean isRequired();
+ boolean isRequired();

- public boolean isHideInChannelManager();
+ boolean isHiddenInChannelManager();

- public List<Annotation> getAnnotations();
+ List<Annotation> getAnnotations();

/**
* @param annotationClass the annotationClass to check
* @return Returns the annotation T if present on the {@link HstPropertyDefinition} and returns <code>null</code> if not present
*/
- public <T extends Annotation> T getAnnotation(Class<T> annotationClass);
+ <T extends Annotation> T getAnnotation(Class<T> annotationClass);

- public <T extends Annotation> List<Annotation> getAnnotations(List<Class<? extends Annotation>> annotationClasses);
+ <T extends Annotation> List<Annotation> getAnnotations(List<Class<? extends Annotation>> annotationClasses);

}


=====================================
cms-restapi/src/main/java/org/hippoecm/hst/rest/beans/InformationObjectsBuilder.java
=====================================
--- a/cms-restapi/src/main/java/org/hippoecm/hst/rest/beans/InformationObjectsBuilder.java
+++ b/cms-restapi/src/main/java/org/hippoecm/hst/rest/beans/InformationObjectsBuilder.java
@@ -74,7 +74,7 @@ public final class InformationObjectsBuilder {
List<HstPropertyDefinitionInfo> hstPropertyDefinitionInfos = new ArrayList<HstPropertyDefinitionInfo>(hstPropertyDefinitions.size());

for (HstPropertyDefinition hstPropertyDefinition : hstPropertyDefinitions) {
- if (!hstPropertyDefinition.isHideInChannelManager()) {
+ if (!hstPropertyDefinition.isHiddenInChannelManager()) {
hstPropertyDefinitionInfos.add(buildHstPropertyDefinitionInfo(hstPropertyDefinition));
}
}


=====================================
components/core/src/main/java/org/hippoecm/hst/configuration/channel/AbstractHstPropertyDefinition.java
=====================================
--- a/components/core/src/main/java/org/hippoecm/hst/configuration/channel/AbstractHstPropertyDefinition.java
+++ b/components/core/src/main/java/org/hippoecm/hst/configuration/channel/AbstractHstPropertyDefinition.java
@@ -28,7 +28,7 @@ public abstract class AbstractHstPropertyDefinition implements HstPropertyDefini
protected HstValueType type;
protected boolean required;
protected Object defaultValue;
- protected boolean hideInChannelManager = false;
+ protected boolean hiddenInChannelManager = false;

public AbstractHstPropertyDefinition(String name) {
this.name = name;
@@ -58,8 +58,8 @@ public abstract class AbstractHstPropertyDefinition implements HstPropertyDefini
}

@Override
- public boolean isHideInChannelManager() {
- return hideInChannelManager;
+ public boolean isHiddenInChannelManager() {
+ return hiddenInChannelManager;
}

@Override


=====================================
components/core/src/main/java/org/hippoecm/hst/configuration/channel/AnnotationHstPropertyDefinition.java
=====================================
--- a/components/core/src/main/java/org/hippoecm/hst/configuration/channel/AnnotationHstPropertyDefinition.java
+++ b/components/core/src/main/java/org/hippoecm/hst/configuration/channel/AnnotationHstPropertyDefinition.java
@@ -52,7 +52,7 @@ public class AnnotationHstPropertyDefinition extends AbstractHstPropertyDefiniti
type = getHstType(returnType);
this.required = propAnnotation.required();
this.defaultValue = type.from(propAnnotation.defaultValue());
- this.hideInChannelManager = propAnnotation.hideInChannelManager();
+ this.hiddenInChannelManager = propAnnotation.hideInChannelManager();

for (Annotation annotation : annotations) {
if (annotation == propAnnotation) {



View it on GitLab: https://code.onehippo.org/cms-community/hippo-site-toolkit/compare/70565c8a809d0e2e3f95a7884a7871e6b39dd641...a1d1281143ba69e2e1672245eeac886a601bc069
Canh Ngo
2016-05-18 10:17:17 UTC
Permalink
Canh Ngo pushed to branch feature/cmng-psp1 at cms-community / hippo-addon-channel-manager


Commits:
57b3f02f by Tobias Jeger at 2016-05-17T16:10:04+02:00
CHANNELMGR-659 reload the (preview!) channel after creating the preview

- - - - -
775b35dd by Canh Ngo at 2016-05-18T12:17:03+02:00
CHANNELMGR-659 integrated to mainline

- - - - -


2 changed files:

- frontend-ng/src/angularjs/channel/channel.service.js
- frontend-ng/src/angularjs/channel/channel.service.spec.js


Changes:

=====================================
frontend-ng/src/angularjs/channel/channel.service.js
=====================================
--- a/frontend-ng/src/angularjs/channel/channel.service.js
+++ b/frontend-ng/src/angularjs/channel/channel.service.js
@@ -53,13 +53,13 @@ export class ChannelService {
this.$rootScope.$apply(() => this._reload());
}

- _reload() {
- return this.HstService.getChannel(this.channel.id)
+ _reload(channelId = this.channel.id) {
+ return this.HstService.getChannel(channelId)
.then((channel) => {
this._setChannel(channel);
})
.catch((error) => {
- this.$log.error(`Failed to reload channel '${this.channel.id}'.`, error);
+ this.$log.error(`Failed to reload channel '${channelId}'.`, error);
});
}

@@ -184,6 +184,7 @@ export class ChannelService {
createPreviewConfiguration() {
return this.HstService.doPost(null, this.getMountId(), 'edit')
.then(() => {
+ this._reload(`${this.channel.id}-preview`);
this.channel.previewHstConfigExists = true;
});
}


=====================================
frontend-ng/src/angularjs/channel/channel.service.spec.js
=====================================
--- a/frontend-ng/src/angularjs/channel/channel.service.spec.js
+++ b/frontend-ng/src/angularjs/channel/channel.service.spec.js
@@ -382,9 +382,11 @@ describe('ChannelService', () => {

ChannelService.createPreviewConfiguration();
expect(HstService.doPost).toHaveBeenCalledWith(null, 'mountId', 'edit');
+ HstService.getChannel.and.returnValue($q.when(channelMock));

$rootScope.$digest();
expect(ChannelService.hasPreviewConfiguration()).toBe(true);
+ expect(HstService.getChannel).toHaveBeenCalledWith('channelId-preview');
});

it('should not update the channel\'s preview config flag if creating a preview config failed', () => {



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/7339fb01428d24014fb42463254a4384fa60754d...775b35dd90ad750292f37aed41f107283997ec8e
Mathijs den Burger
2016-05-18 10:52:55 UTC
Permalink
Mathijs den Burger pushed to branch feature/cmng-psp1 at cms-community / hippo-addon-channel-manager


Commits:
73b4b1c0 by Mathijs den Burger at 2016-05-18T12:31:07+02:00
CHANNELMGR-663 remove 'picked' callback when dialog is canceled

When the link picker dialog is closed via the 'Cancel' button, no
event used to be generated. The old callback for the 'picked'
event would therefore still be registered in the
ExtLinkPickerFactory. A subsequent 'picked' event (possibly for
another link picker field) would then also trigger all the old
callbacks, possibly changing the value of other fields too.

Canceling the dialog now generates a 'cancel' event, which removes
the 'picked' event listener again.

- - - - -
f97a5c5c by Mathijs den Burger at 2016-05-18T12:52:13+02:00
CHANNELMGR-663 Merge changes to mainline

- - - - -


2 changed files:

- frontend/src/main/java/org/onehippo/cms7/channelmanager/widgets/ExtLinkPicker.java
- frontend/src/main/resources/org/onehippo/cms7/channelmanager/widgets/ExtLinkPicker.js


Changes:

=====================================
frontend/src/main/java/org/onehippo/cms7/channelmanager/widgets/ExtLinkPicker.java
=====================================
--- a/frontend/src/main/java/org/onehippo/cms7/channelmanager/widgets/ExtLinkPicker.java
+++ b/frontend/src/main/java/org/onehippo/cms7/channelmanager/widgets/ExtLinkPicker.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2011-2015 Hippo B.V. (http://www.onehippo.com)
+ * Copyright 2011-2016 Hippo B.V. (http://www.onehippo.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,7 +21,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;

-import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -81,7 +80,7 @@ public class ExtLinkPicker extends ExtObservable {
private static final long serialVersionUID = 1L;
private static final JavaScriptResourceReference LINKPICKER_JS = new JavaScriptResourceReference(ExtLinkPicker.class, "ExtLinkPicker.js");

- private final Logger log = LoggerFactory.getLogger(ExtLinkPicker.class);
+ private static final Logger log = LoggerFactory.getLogger(ExtLinkPicker.class);

public ExtLinkPicker(final IPluginContext context) {
addEventListener(EVENT_PICK, new ExtEventListener() {
@@ -189,11 +188,34 @@ public class ExtLinkPicker extends ExtObservable {

@Override
public AbstractDialog<String> createDialog() {
- return new LinkPickerDialog(context, config, model);
+ return new LinkPickerDialog(context, config, model) {
+ @Override
+ protected void onCancel() {
+ super.onCancel();
+ fireLinkPickerFactoryEvent("cancel");
+ }
+ };
}
};
}

+ private static void fireLinkPickerFactoryEvent(final String eventName, final String... params) {
+ AjaxRequestTarget target = RequestCycle.get().find(AjaxRequestTarget.class);
+ if (target == null) {
+ log.info("Cannot invoke callback for event '{}': no Ajax request target available");
+ return;
+ }
+
+ final StringBuilder script = new StringBuilder();
+ script.append("Hippo.ChannelManager.ExtLinkPickerFactory.Instance.fireEvent('").append(eventName).append("'");
+ for (String param : params) {
+ script.append(", '").append(param).append("'");
+ }
+ script.append(");");
+
+ target.prependJavaScript(script);
+ }
+
/**
* Model that fires a 'picked' event when events are enabled and a new path is set. By default, events are disabled.
*/
@@ -214,17 +236,7 @@ public class ExtLinkPicker extends ExtObservable {
super.setObject(documentLinkInfo);

if (enabledEvents) {
- // notify the client that a new path has been picked
- AjaxRequestTarget target = RequestCycle.get().find(AjaxRequestTarget.class);
- if (target == null) {
- log.warn("Cannot invoke callback for picked path '{}': no ajax request target available", documentLinkInfo.getPath());
- return;
- }
-
- final String script = String.format("Hippo.ChannelManager.ExtLinkPickerFactory.Instance.fireEvent('picked', '%s', '%s');",
- documentLinkInfo.getPath(), StringEscapeUtils.escapeJavaScript(documentLinkInfo.getDocumentName()));
-
- target.prependJavaScript(script);
+ fireLinkPickerFactoryEvent("picked", documentLinkInfo.getPath(), documentLinkInfo.getDocumentName());
}
}
}


=====================================
frontend/src/main/resources/org/onehippo/cms7/channelmanager/widgets/ExtLinkPicker.js
=====================================
--- a/frontend/src/main/resources/org/onehippo/cms7/channelmanager/widgets/ExtLinkPicker.js
+++ b/frontend/src/main/resources/org/onehippo/cms7/channelmanager/widgets/ExtLinkPicker.js
@@ -1,5 +1,5 @@
/**
- * Copyright 2011-2015 Hippo B.V. (http://www.onehippo.com)
+ * Copyright 2011-2016 Hippo B.V. (http://www.onehippo.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,18 +23,40 @@
constructor: function (config) {
Hippo.ChannelManager.ExtLinkPickerFactory.Instance = this;

- this.addEvents('pick', 'picked', 'select');
+ this.addEvents('pick', 'picked', 'cancel');

this.listeners = config.listeners;

Hippo.ChannelManager.ExtLinkPickerFactory.superclass.constructor.call(this, config);
+
+ this.on('cancel', this._removePickedListener, this);
+ },
+
+ _addPickedListener: function (callback) {
+ this.callback = callback;
+ this.on('picked', this._onPicked, this);
+ },
+
+ _removePickedListener: function () {
+ this.callback = null;
+ this.un('picked', this._onPicked, this);
+ },
+
+ _onPicked: function (path, name) {
+ this.callback.call(this, path, name);
+ this._removePickedListener();
+ },
+
+ openPicker: function (currentValue, pickerConfig, callback) {
+ this._addPickedListener(callback);
+ this._firePickEvent(currentValue, pickerConfig);
},

- openPicker: function (currentValue, pickerConfig, cb) {
+ _firePickEvent: function (currentValue, pickerConfig) {
var config = JSON.parse(JSON.stringify(pickerConfig));
config.rootPath = encodeURI(pickerConfig.rootPath || '');
config.initialPath = encodeURI(pickerConfig.initialPath || '');
- this.on('picked', cb, this, {single: true});
+
this.fireEvent('pick', currentValue, Ext.util.JSON.encode(config));
}
});
@@ -53,6 +75,9 @@

initComponent: function () {
Hippo.ChannelManager.ExtLinkPicker.superclass.initComponent.call(this);
+
+ this.addEvents('select');
+
this.on('valid', this.validateRenderTextField, this);
this.on('invalid', this.invalidateRenderTextField, this);
this.on('resize', this.resizeRenderTextField, this);



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/d675dbc18ab879756a795a3ef679af5f60981a8d...f97a5c5c2e812b474f4f01ca9171d8bc26bef9f9
Arent-Jan Banck
2016-05-19 11:59:53 UTC
Permalink
Arent-Jan Banck pushed to branch master at cms-community / hippo-htmldiff


Commits:
463c893e by Arent-Jan Banck at 2016-05-19T13:48:17+02:00
HTMLDIFF-7 Prepare 1.01.04 tag

- - - - -
1cbff567 by Arent-Jan Banck at 2016-05-19T13:58:52+02:00
HTMLDIFF-7 Prepare for next development iteration

- - - - -


2 changed files:

- − .gitattributes
- pom.xml


Changes:

=====================================
.gitattributes deleted
=====================================
--- a/.gitattributes
+++ /dev/null
@@ -1,64 +0,0 @@
-* text=auto !eol
-/LICENSE -text
-/NOTICE -text
-src/main/appended-resources/META-INF/LICENSE -text
-src/main/java/org/eclipse/compare/internal/CompareMessages.java -text
-src/main/java/org/eclipse/compare/internal/LCS.java -text
-src/main/java/org/eclipse/compare/internal/LCSSettings.java -text
-src/main/java/org/eclipse/compare/rangedifferencer/DifferencesIterator.java -text
-src/main/java/org/eclipse/compare/rangedifferencer/IRangeComparator.java -text
-src/main/java/org/eclipse/compare/rangedifferencer/OldDifferencer.java -text
-src/main/java/org/eclipse/compare/rangedifferencer/RangeComparatorLCS.java -text
-src/main/java/org/eclipse/compare/rangedifferencer/RangeDifference.java -text
-src/main/java/org/eclipse/compare/rangedifferencer/RangeDifferencer.java -text
-src/main/java/org/outerj/daisy/diff/DaisyDiff.java -text
-src/main/java/org/outerj/daisy/diff/HtmlCleaner.java -text
-src/main/java/org/outerj/daisy/diff/Main.java -text
-src/main/java/org/outerj/daisy/diff/XslFilter.java -text
-src/main/java/org/outerj/daisy/diff/cleanup.xsl -text
-src/main/java/org/outerj/daisy/diff/helper/MergeCharacterEventsHandler.java -text
-src/main/java/org/outerj/daisy/diff/helper/NekoHtmlParser.java -text
-src/main/java/org/outerj/daisy/diff/helper/SaxBuffer.java -text
-src/main/java/org/outerj/daisy/diff/html/HTMLDiffer.java -text
-src/main/java/org/outerj/daisy/diff/html/HtmlSaxDiffOutput.java -text
-src/main/java/org/outerj/daisy/diff/html/TextNodeComparator.java -text
-src/main/java/org/outerj/daisy/diff/html/ancestor/AncestorComparator.java -text
-src/main/java/org/outerj/daisy/diff/html/ancestor/AncestorComparatorResult.java -text
-src/main/java/org/outerj/daisy/diff/html/ancestor/ChangeText.java -text
-src/main/java/org/outerj/daisy/diff/html/ancestor/ChangeTextGenerator.java -text
-src/main/java/org/outerj/daisy/diff/html/ancestor/TagChangeSematic.java -text
-src/main/java/org/outerj/daisy/diff/html/ancestor/TextOnlyComparator.java -text
-src/main/java/org/outerj/daisy/diff/html/ancestor/tagtostring/AnchorToString.java -text
-src/main/java/org/outerj/daisy/diff/html/ancestor/tagtostring/NoContentTagToString.java -text
-src/main/java/org/outerj/daisy/diff/html/ancestor/tagtostring/TagToString.java -text
-src/main/java/org/outerj/daisy/diff/html/ancestor/tagtostring/TagToStringFactory.java -text
-src/main/java/org/outerj/daisy/diff/html/ancestor/tagtostring/messages.properties -text
-src/main/java/org/outerj/daisy/diff/html/ancestor/tagtostring/messages_nl.properties -text
-src/main/java/org/outerj/daisy/diff/html/dom/BodyNode.java -text
-src/main/java/org/outerj/daisy/diff/html/dom/DomTree.java -text
-src/main/java/org/outerj/daisy/diff/html/dom/DomTreeBuilder.java -text
-src/main/java/org/outerj/daisy/diff/html/dom/ImageNode.java -text
-src/main/java/org/outerj/daisy/diff/html/dom/Node.java -text
-src/main/java/org/outerj/daisy/diff/html/dom/TagNode.java -text
-src/main/java/org/outerj/daisy/diff/html/dom/TextNode.java -text
-src/main/java/org/outerj/daisy/diff/html/dom/WhiteSpaceNode.java -text
-src/main/java/org/outerj/daisy/diff/html/dom/helper/AttributesMap.java -text
-src/main/java/org/outerj/daisy/diff/html/dom/helper/LastCommonParentResult.java -text
-src/main/java/org/outerj/daisy/diff/html/modification/HtmlLayoutChange.java -text
-src/main/java/org/outerj/daisy/diff/html/modification/Modification.java -text
-src/main/java/org/outerj/daisy/diff/html/modification/ModificationType.java -text
-src/main/java/org/outerj/daisy/diff/htmlheader.xsl -text
-src/main/java/org/outerj/daisy/diff/output/DiffOutput.java -text
-src/main/java/org/outerj/daisy/diff/output/Differ.java -text
-src/main/java/org/outerj/daisy/diff/output/TextDiffOutput.java -text
-src/main/java/org/outerj/daisy/diff/output/TextDiffer.java -text
-src/main/java/org/outerj/daisy/diff/tag/ArgumentComparator.java -text
-src/main/java/org/outerj/daisy/diff/tag/Atom.java -text
-src/main/java/org/outerj/daisy/diff/tag/DelimiterAtom.java -text
-src/main/java/org/outerj/daisy/diff/tag/IAtomSplitter.java -text
-src/main/java/org/outerj/daisy/diff/tag/TagAtom.java -text
-src/main/java/org/outerj/daisy/diff/tag/TagComparator.java -text
-src/main/java/org/outerj/daisy/diff/tag/TagDiffer.java -text
-src/main/java/org/outerj/daisy/diff/tag/TagSaxDiffOutput.java -text
-src/main/java/org/outerj/daisy/diff/tag/TextAtom.java -text
-src/main/java/org/outerj/daisy/diff/tagheader.xsl -text


=====================================
pom.xml
=====================================
--- a/pom.xml
+++ b/pom.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
- Copyright 2010-2013 Hippo B.V. (http://www.onehippo.com)
+ Copyright 2010-2016 Hippo B.V. (http://www.onehippo.com)

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -21,7 +21,7 @@
<description>Html diff</description>
<groupId>org.hippoecm</groupId>
<artifactId>htmldiff</artifactId>
- <version>1.01.04-SNAPSHOT</version>
+ <version>1.01.05-SNAPSHOT</version>

<inceptionYear>2010</inceptionYear>

@@ -31,9 +31,9 @@
</issueManagement>

<scm>
- <connection>scm:svn:http://svn.onehippo.org/repos/hippo/hippo-components/htmldiff/trunk</connection>
- <developerConnection>scm:svn:https://svn.onehippo.org/repos/hippo/hippo-components/htmldiff/trunk</developerConnection>
- <url>http://svn.onehippo.org/repos/hippo/hippo-components/htmldiff/trunk</url>
+ <connection>scm:git:https://code.onehippo.org/cms-community/hippo-htmldiff.git</connection>
+ <developerConnection>scm:git:***@code.onehippo.org:cms-community/hippo-htmldiff.git</developerConnection>
+ <url>https://code.onehippo.org/cms-community/hippo-htmldiff</url>
</scm>

<repositories>
@@ -84,7 +84,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<maven.plugin.rat.version>0.9.RAT125</maven.plugin.rat.version>
- <maven.plugin.release.version>2.3.2</maven.plugin.release.version>
+ <maven.plugin.release.version>2.5.3</maven.plugin.release.version>
<maven.plugin.remote-resources.version>1.4</maven.plugin.remote-resources.version>

<org.slf4j.version>1.5.8</org.slf4j.version>
@@ -187,13 +187,6 @@
</executions>
</plugin>
</plugins>
- <extensions>
- <extension>
- <groupId>org.apache.maven.wagon</groupId>
- <artifactId>wagon-ftp</artifactId>
- <version>1.0-beta-6</version>
- </extension>
- </extensions>
<resources>
<resource>
<filtering>false</filtering>



View it on GitLab: https://code.onehippo.org/cms-community/hippo-htmldiff/compare/cf8a944b76b9b8f982f24845f5b7c4b8aea00df3...1cbff56767f70ed8f96f4c76b2da9f1144c5a75f
Tobias Jeger
2016-05-20 09:38:37 UTC
Permalink
Tobias Jeger pushed to branch feature/cmng-psp1 at cms-community / hippo-addon-channel-manager


Commits:
ba9b2648 by Canh Ngo at 2016-05-20T11:38:31+02:00
CHANNELMGR-672 copy values prior edit, so discard changes is possible

- - - - -
d5e87950 by Tobias Jeger at 2016-05-20T11:38:31+02:00
CHANNELMGR-672 Add comment motivating the angular.copy()

- - - - -


1 changed file:

- frontend-ng/src/angularjs/channel/actions/settings/settings.controller.js


Changes:

=====================================
frontend-ng/src/angularjs/channel/actions/settings/settings.controller.js
=====================================
--- a/frontend-ng/src/angularjs/channel/actions/settings/settings.controller.js
+++ b/frontend-ng/src/angularjs/channel/actions/settings/settings.controller.js
@@ -42,7 +42,9 @@ export class ChannelSettingsCtrl {
this.onError({ key: 'ERROR_CHANNEL_INFO_RETRIEVAL_FAILED' });
});

- this.values = ChannelService.getProperties();
+ // We're making a copy in order not to mess with ChannelService state
+ // in case we're going to cancel the action after changing some of the fields.
+ this.values = angular.copy(ChannelService.getProperties());
}

save() {



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/6476dadb006531a01e10c9cff9f6ea8890fad6c9...d5e879506ff4a87110b013f491a8664c9fc887b5
Mathijs den Burger
2016-05-23 09:51:03 UTC
Permalink
Mathijs den Burger pushed to branch feature/cmng-psp1 at cms-community / hippo-addon-channel-manager


Commits:
de5de8df by Canh Ngo at 2016-05-23T09:45:27+02:00
CHANNELMGR-666 prevented exception when 'document' arg is null

- - - - -
37a26066 by Mathijs den Burger at 2016-05-23T11:50:11+02:00
CHANNELMGR-666 Merge changes into mainline

- - - - -


1 changed file:

- frontend-ng/src/angularjs/channel/hippoIframe/hstCommentsProcessor.service.js


Changes:

=====================================
frontend-ng/src/angularjs/channel/hippoIframe/hstCommentsProcessor.service.js
=====================================
--- a/frontend-ng/src/angularjs/channel/hippoIframe/hstCommentsProcessor.service.js
+++ b/frontend-ng/src/angularjs/channel/hippoIframe/hstCommentsProcessor.service.js
@@ -27,6 +27,9 @@ export class HstCommentsProcessorService {
}

run(document, callback) {
+ if (!document) {
+ return;
+ }
// IE doesn't support 'evaluate', see
// https://developer.mozilla.org/en/docs/Web/API/Document/evaluate#Browser_compatibility
if (!!document.evaluate) {



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/6684a685fe912eb231fec41c41f6603f5e59f7e0...37a26066f09b4df83e24125547320a2e3498ff85
Mathijs den Burger
2016-05-24 07:40:49 UTC
Permalink
Mathijs den Burger pushed to branch feature/cmng-psp1 at cms-community / hippo-addon-channel-manager


Commits:
2315e98a by Tobias Jeger at 2016-05-20T16:13:50+02:00
CHANNELMGR-662 Show channel settings locked message as toast

- - - - -
b1b3f036 by Mathijs den Burger at 2016-05-24T09:40:20+02:00
CHANNELMGR-662 Merge changes into mainline

- - - - -


5 changed files:

- frontend-ng/src/angularjs/channel/actions/settings/settings.controller.js
- frontend-ng/src/angularjs/channel/actions/settings/settings.html
- frontend-ng/src/angularjs/channel/actions/settings/settings.spec.js
- frontend-ng/src/i18n/en.json
- frontend-ng/src/i18n/nl.json


Changes:

=====================================
frontend-ng/src/angularjs/channel/actions/settings/settings.controller.js
=====================================
--- a/frontend-ng/src/angularjs/channel/actions/settings/settings.controller.js
+++ b/frontend-ng/src/angularjs/channel/actions/settings/settings.controller.js
@@ -39,9 +39,7 @@ export class ChannelSettingsCtrl {
.then((channelInfoDescription) => {
this.channelInfoDescription = channelInfoDescription;
if (this.isLockedByOther()) {
- this.readOnlyAlert = this.$translate.instant('SUBPAGE_CHANNEL_SETTINGS_READONLY_ALERT', {
- lockedBy: channelInfoDescription.lockedBy,
- });
+ this._showError('ERROR_CHANNEL_SETTINGS_READONLY', { lockedBy: channelInfoDescription.lockedBy });
}
})
.catch(() => {


=====================================
frontend-ng/src/angularjs/channel/actions/settings/settings.html
=====================================
--- a/frontend-ng/src/angularjs/channel/actions/settings/settings.html
+++ b/frontend-ng/src/angularjs/channel/actions/settings/settings.html
@@ -25,10 +25,6 @@
class="qa-subpage subpage-form"
ng-submit="form.$valid && channelSettings.save()"
novalidate>
- <div ng-if="channelSettings.readOnlyAlert">
- <p class="md-body-2">{{ channelSettings.readOnlyAlert }}</p>
- </div>
-
<div ng-repeat="fieldGroup in channelSettings.getFieldGroups()">
<h3 class="md-title qa-fieldgroup">{{ channelSettings.getLabel(fieldGroup.titleKey) }}</h3>



=====================================
frontend-ng/src/angularjs/channel/actions/settings/settings.spec.js
=====================================
--- a/frontend-ng/src/angularjs/channel/actions/settings/settings.spec.js
+++ b/frontend-ng/src/angularjs/channel/actions/settings/settings.spec.js
@@ -98,6 +98,7 @@ describe('ChannelSettings', () => {
spyOn(ChannelService, 'reload').and.returnValue($q.when(channel));
spyOn(ChannelService, 'getChannel').and.returnValue(channel);
spyOn(ChannelService, 'getChannelInfoDescription').and.returnValue($q.when(channelInfoDescription));
+ spyOn(FeedbackService, 'showError');
});

function compileDirectiveAndGetController() {
@@ -169,7 +170,6 @@ describe('ChannelSettings', () => {

it('shows feedback message when saving is failed', () => {
spyOn(ChannelService, 'saveChannel').and.returnValue($q.reject());
- spyOn(FeedbackService, 'showError');
compileDirectiveAndGetController();
const feedbackParent = $element.find('.feedback-parent');

@@ -192,20 +192,18 @@ describe('ChannelSettings', () => {
it('displays an alert message when the current channel is locked', () => {
ConfigService.cmsUser = 'admin';
channelInfoDescription.lockedBy = 'tester';
- let ChannelSettingsCtrl = compileDirectiveAndGetController();
- expect($translate.instant).toHaveBeenCalledWith('SUBPAGE_CHANNEL_SETTINGS_READONLY_ALERT', { lockedBy: 'tester' });
- expect(ChannelSettingsCtrl.readOnlyAlert).toBeTruthy();
+ const ChannelSettingsCtrl = compileDirectiveAndGetController();
+ expect(FeedbackService.showError).toHaveBeenCalledWith('ERROR_CHANNEL_SETTINGS_READONLY', { lockedBy: 'tester' },
+ ChannelSettingsCtrl.feedbackParent);

- $translate.instant.calls.reset();
+ FeedbackService.showError.calls.reset();
channelInfoDescription.lockedBy = 'admin';
- ChannelSettingsCtrl = compileDirectiveAndGetController();
- expect($translate.instant).not.toHaveBeenCalledWith('SUBPAGE_CHANNEL_SETTINGS_READONLY_ALERT', { lockedBy: 'admin' });
- expect(ChannelSettingsCtrl.readOnlyAlert).toBeFalsy();
+ compileDirectiveAndGetController();
+ expect(FeedbackService.showError).not.toHaveBeenCalled();

- $translate.instant.calls.reset();
+ FeedbackService.showError.calls.reset();
delete channelInfoDescription.lockedBy;
- ChannelSettingsCtrl = compileDirectiveAndGetController();
- expect($translate.instant).not.toHaveBeenCalledWith('SUBPAGE_CHANNEL_SETTINGS_READONLY_ALERT', { lockedBy: 'admin' });
- expect(ChannelSettingsCtrl.readOnlyAlert).toBeFalsy();
+ compileDirectiveAndGetController();
+ expect(FeedbackService.showError).not.toHaveBeenCalled();
});
});


=====================================
frontend-ng/src/i18n/en.json
=====================================
--- a/frontend-ng/src/i18n/en.json
+++ b/frontend-ng/src/i18n/en.json
@@ -19,6 +19,7 @@
"ERROR_CHANGE_DISCARD_FAILED": "Failed to discard changes.",
"ERROR_CHANNEL_INFO_RETRIEVAL_FAILED": "Failed to retrieve information on channel settings",
"ERROR_CHANNEL_PROPERTIES_SAVE_FAILED": "Failed to save the channel setting",
+ "ERROR_CHANNEL_SETTINGS_READONLY": "Settings locked by '{{lockedBy}}'.",
"ERROR_CHANNEL_SWITCH_FAILED": "Failed to switch to destination channel.",
"ERROR_DELETE_COMPONENT": "Cannot delete '{{component}}'.",
"ERROR_DELETE_COMPONENT_ITEM_ALREADY_LOCKED": "Cannot delete '{{component}}': the container is locked by '{{lockedBy}}'.",
@@ -58,7 +59,6 @@
"SUBPAGE_CHANGEMANAGEMENT_PUBLISH": "Publish",
"SUBPAGE_CHANGEMANAGEMENT_DISCARD": "Discard",
"SUBPAGE_CHANNEL_EDIT_TITLE": "Edit channel '{{channelName}}'",
- "SUBPAGE_CHANNEL_SETTINGS_READONLY_ALERT": "Locked by '{{lockedBy}}'",
"SUBPAGE_CHANNEL_SETTINGS_TITLE": "Settings of '{{channelName}}'",
"SUBPAGE_MENU_EDITOR_TITLE": "Edit menu",
"SUBPAGE_PAGE_ADD_BUTTON_CREATE": "Create",


=====================================
frontend-ng/src/i18n/nl.json
=====================================
--- a/frontend-ng/src/i18n/nl.json
+++ b/frontend-ng/src/i18n/nl.json
@@ -20,6 +20,7 @@
"ERROR_CHANGE_DISCARD_FAILED": "???",
"ERROR_CHANNEL_INFO_RETRIEVAL_FAILED": "???",
"ERROR_CHANNEL_PROPERTIES_SAVE_FAILED": "???",
+ "ERROR_CHANNEL_SETTINGS_READONLY": "???",
"ERROR_CHANNEL_SWITCH_FAILED": "???",
"ERROR_ENTER_EDIT": "Naar Bewerk modus schakelen is mislukt.",
"ERROR_MENU_LOAD_FAILED": "???",
@@ -54,7 +55,6 @@
"SUBPAGE_CHANGEMANAGEMENT_DISCARD": "Maak ongedaan",
"SUBPAGE_CHANGEMANAGEMENT_LABEL_TOGGLE_ALL": "???",
"SUBPAGE_CHANNEL_EDIT_TITLE": "Bewerk channel '{{channelName}}'",
- "SUBPAGE_CHANNEL_SETTINGS_READONLY_ALERT": "Vergrendeld door '{{lockedBy}}'",
"SUBPAGE_CHANNEL_SETTINGS_TITLE": "Instellingen van '{{channelName}}'",
"SUBPAGE_MENU_EDITOR_TITLE": "Bewerk menu",
"SUBPAGE_PAGE_ADD_BUTTON_CREATE": "???",



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/581bd84c725b99c3ffe91d8a53058b828ac8dfb8...b1b3f0369a3ce894c575ef4a5b481bb0dec469e2
Ard Schrijvers
2016-05-24 07:49:41 UTC
Permalink
Ard Schrijvers pushed to branch release/3.2 at cms-community / hippo-cms


Commits:
ef417a69 by Ard Schrijvers at 2016-05-24T09:48:34+02:00
CMS-10121 [Backport 3.2] improve logging of CsrfPreventionRequestCycleListener

In case the request host does not match the origin host, we now
log more debug info

(cherry picked from commit 0904fd9d567a4d51af275de475e5f140a99bb12e)

- - - - -
e0d8f113 by Ard Schrijvers at 2016-05-24T09:49:09+02:00
CMS-10121 [Backport 3.2] more explicit logging in case the scheme does not match

Typically this is caused because of running behind a proxy that delegates a https
request to http.

(cherry picked from commit e543da10595038b8fea82bec667a347a4e184c25)

- - - - -


1 changed file:

- engine/src/main/java/org/hippoecm/frontend/http/CsrfPreventionRequestCycleListener.java


Changes:

=====================================
engine/src/main/java/org/hippoecm/frontend/http/CsrfPreventionRequestCycleListener.java
=====================================
--- a/engine/src/main/java/org/hippoecm/frontend/http/CsrfPreventionRequestCycleListener.java
+++ b/engine/src/main/java/org/hippoecm/frontend/http/CsrfPreventionRequestCycleListener.java
@@ -402,7 +402,8 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
// check if the origin HTTP header matches the request URI
if (!isLocalOrigin(request, origin))
{
- log.debug("Origin-header conflicts with request origin, {}", conflictingOriginAction);
+ log.info("Origin-header '{}' conflicts with request host '{}' : {}",
+ getOriginHeaderOrigin(origin), getLocationHeaderOrigin(request), conflictingOriginAction);
switch (conflictingOriginAction)
{
case ALLOW :
@@ -478,7 +479,12 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
if (request == null)
return false;

- return origin.equalsIgnoreCase(request);
+ final boolean isLocal = origin.equalsIgnoreCase(request);
+ if (!isLocal && originHeader.startsWith("https:") && !request.startsWith("https:")) {
+ log.warn("Origin starts with https: but request starts with http:. If you are running behind a proxy, make " +
+ "sure to set 'X-Forwarded-Proto: https' in the proxy");
+ }
+ return isLocal;
}

/**
@@ -533,6 +539,7 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
target.append(':');
target.append(port);
}
+ log.debug("Origin : {}", target.toString());
return target.toString();
}
catch (URISyntaxException e)
@@ -556,12 +563,16 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
String host = request.getHeader("X-Forwarded-Host");
if (host != null) {
String[] hosts = host.split(",");
- return getFarthestRequestScheme(request) + "://" + hosts[0];
+ final String location = getFarthestRequestScheme(request) + "://" + hosts[0];
+ log.debug("X-Forwarded-Host header found. Return location '{}'", location);
+ return location;
}

host = request.getHeader("Host");
if (host != null && !"".equals(host)) {
- return getFarthestRequestScheme(request) + "://" + host;
+ final String location = getFarthestRequestScheme(request) + "://" + host;
+ log.debug("Host header found. Return location '{}'", location);
+ return location;
}

// Build scheme://host:port from request
@@ -591,7 +602,8 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
target.append(':');
target.append(port);
}
-
+ log.debug("Host '{}' from request.serverName is used because no 'Host' or 'X-Forwarded-Host' header found. " +
+ "Return location '{}'", target.toString());
return target.toString();
}

@@ -684,8 +696,8 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
private void allowHandler(HttpServletRequest request, String origin, IRequestablePage page)
{
onAllowed(request, origin, page);
- log.info("Possible CSRF attack, request URL: {}, Origin: {}, action: allowed",
- request.getRequestURL(), origin);
+ log.info("Possible CSRF attack, client request location: {}, Origin: {}, action: allowed",
+ getLocationHeaderOrigin(request), origin);
}

/**
@@ -719,8 +731,8 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
private void suppressHandler(HttpServletRequest request, String origin, IRequestablePage page)
{
onSuppressed(request, origin, page);
- log.info("Possible CSRF attack, request URL: {}, Origin: {}, action: suppressed",
- request.getRequestURL(), origin);
+ log.info("Possible CSRF attack, client request location: {}, Origin: {}, action: suppressed",
+ getLocationHeaderOrigin(request), origin);
throw new RestartResponseException(page);
}

@@ -755,9 +767,8 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
private void abortHandler(HttpServletRequest request, String origin, IRequestablePage page)
{
onAborted(request, origin, page);
- log.info(
- "Possible CSRF attack, request URL: {}, Origin: {}, action: aborted with error {} {}",
- new Object[] { request.getRequestURL(), origin, errorCode, errorMessage });
+ log.info("Possible CSRF attack, client request location: {}, Origin: {}, action: aborted with error {} {}",
+ new Object[] {getLocationHeaderOrigin(request), origin, errorCode, errorMessage });
throw new AbortWithHttpErrorCodeException(errorCode, errorMessage);
}




View it on GitLab: https://code.onehippo.org/cms-community/hippo-cms/compare/a149166752b2c230c17079d4ecd60f5cccfeb799...e0d8f113b734140036b4ee80334b3111a7b21dbd
Ard Schrijvers
2016-05-24 07:51:22 UTC
Permalink
Ard Schrijvers pushed to branch release/3.1 at cms-community / hippo-cms


Commits:
cabfbbb1 by Ard Schrijvers at 2016-05-24T09:50:46+02:00
CMS-10122 [Backport 3.1] improve logging of CsrfPreventionRequestCycleListener

In case the request host does not match the origin host, we now
log more debug info

(cherry picked from commit 0904fd9d567a4d51af275de475e5f140a99bb12e)

- - - - -
9c156286 by Ard Schrijvers at 2016-05-24T09:51:05+02:00
CMS-10122 [Backport 3.1] more explicit logging in case the scheme does not match

Typically this is caused because of running behind a proxy that delegates a https
request to http.

(cherry picked from commit e543da10595038b8fea82bec667a347a4e184c25)

- - - - -


1 changed file:

- engine/src/main/java/org/hippoecm/frontend/http/CsrfPreventionRequestCycleListener.java


Changes:

=====================================
engine/src/main/java/org/hippoecm/frontend/http/CsrfPreventionRequestCycleListener.java
=====================================
--- a/engine/src/main/java/org/hippoecm/frontend/http/CsrfPreventionRequestCycleListener.java
+++ b/engine/src/main/java/org/hippoecm/frontend/http/CsrfPreventionRequestCycleListener.java
@@ -402,7 +402,8 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
// check if the origin HTTP header matches the request URI
if (!isLocalOrigin(request, origin))
{
- log.debug("Origin-header conflicts with request origin, {}", conflictingOriginAction);
+ log.info("Origin-header '{}' conflicts with request host '{}' : {}",
+ getOriginHeaderOrigin(origin), getLocationHeaderOrigin(request), conflictingOriginAction);
switch (conflictingOriginAction)
{
case ALLOW :
@@ -478,7 +479,12 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
if (request == null)
return false;

- return origin.equalsIgnoreCase(request);
+ final boolean isLocal = origin.equalsIgnoreCase(request);
+ if (!isLocal && originHeader.startsWith("https:") && !request.startsWith("https:")) {
+ log.warn("Origin starts with https: but request starts with http:. If you are running behind a proxy, make " +
+ "sure to set 'X-Forwarded-Proto: https' in the proxy");
+ }
+ return isLocal;
}

/**
@@ -533,6 +539,7 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
target.append(':');
target.append(port);
}
+ log.debug("Origin : {}", target.toString());
return target.toString();
}
catch (URISyntaxException e)
@@ -556,12 +563,16 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
String host = request.getHeader("X-Forwarded-Host");
if (host != null) {
String[] hosts = host.split(",");
- return getFarthestRequestScheme(request) + "://" + hosts[0];
+ final String location = getFarthestRequestScheme(request) + "://" + hosts[0];
+ log.debug("X-Forwarded-Host header found. Return location '{}'", location);
+ return location;
}

host = request.getHeader("Host");
if (host != null && !"".equals(host)) {
- return getFarthestRequestScheme(request) + "://" + host;
+ final String location = getFarthestRequestScheme(request) + "://" + host;
+ log.debug("Host header found. Return location '{}'", location);
+ return location;
}

// Build scheme://host:port from request
@@ -591,7 +602,8 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
target.append(':');
target.append(port);
}
-
+ log.debug("Host '{}' from request.serverName is used because no 'Host' or 'X-Forwarded-Host' header found. " +
+ "Return location '{}'", target.toString());
return target.toString();
}

@@ -684,8 +696,8 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
private void allowHandler(HttpServletRequest request, String origin, IRequestablePage page)
{
onAllowed(request, origin, page);
- log.info("Possible CSRF attack, request URL: {}, Origin: {}, action: allowed",
- request.getRequestURL(), origin);
+ log.info("Possible CSRF attack, client request location: {}, Origin: {}, action: allowed",
+ getLocationHeaderOrigin(request), origin);
}

/**
@@ -719,8 +731,8 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
private void suppressHandler(HttpServletRequest request, String origin, IRequestablePage page)
{
onSuppressed(request, origin, page);
- log.info("Possible CSRF attack, request URL: {}, Origin: {}, action: suppressed",
- request.getRequestURL(), origin);
+ log.info("Possible CSRF attack, client request location: {}, Origin: {}, action: suppressed",
+ getLocationHeaderOrigin(request), origin);
throw new RestartResponseException(page);
}

@@ -755,9 +767,8 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
private void abortHandler(HttpServletRequest request, String origin, IRequestablePage page)
{
onAborted(request, origin, page);
- log.info(
- "Possible CSRF attack, request URL: {}, Origin: {}, action: aborted with error {} {}",
- new Object[] { request.getRequestURL(), origin, errorCode, errorMessage });
+ log.info("Possible CSRF attack, client request location: {}, Origin: {}, action: aborted with error {} {}",
+ new Object[] {getLocationHeaderOrigin(request), origin, errorCode, errorMessage });
throw new AbortWithHttpErrorCodeException(errorCode, errorMessage);
}




View it on GitLab: https://code.onehippo.org/cms-community/hippo-cms/compare/de8386f8acf19ad4c1ed4a81154e94e147917755...9c156286542e5bdbe0eae7d04dc9a7fbe5007f06
Ard Schrijvers
2016-05-24 07:52:30 UTC
Permalink
Ard Schrijvers pushed to branch release/2.26 at cms-community / hippo-cms


Commits:
c4a11db4 by Ard Schrijvers at 2016-05-24T09:51:57+02:00
CMS-10123 [Backport 7.9] improve logging of CsrfPreventionRequestCycleListener

In case the request host does not match the origin host, we now
log more debug info

(cherry picked from commit 0904fd9d567a4d51af275de475e5f140a99bb12e)

- - - - -
153abb8a by Ard Schrijvers at 2016-05-24T09:52:14+02:00
CMS-10123 [Backport 7.9] more explicit logging in case the scheme does not match

Typically this is caused because of running behind a proxy that delegates a https
request to http.

(cherry picked from commit e543da10595038b8fea82bec667a347a4e184c25)

- - - - -


1 changed file:

- engine/src/main/java/org/hippoecm/frontend/http/CsrfPreventionRequestCycleListener.java


Changes:

=====================================
engine/src/main/java/org/hippoecm/frontend/http/CsrfPreventionRequestCycleListener.java
=====================================
--- a/engine/src/main/java/org/hippoecm/frontend/http/CsrfPreventionRequestCycleListener.java
+++ b/engine/src/main/java/org/hippoecm/frontend/http/CsrfPreventionRequestCycleListener.java
@@ -402,7 +402,8 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
// check if the origin HTTP header matches the request URI
if (!isLocalOrigin(request, origin))
{
- log.debug("Origin-header conflicts with request origin, {}", conflictingOriginAction);
+ log.info("Origin-header '{}' conflicts with request host '{}' : {}",
+ getOriginHeaderOrigin(origin), getLocationHeaderOrigin(request), conflictingOriginAction);
switch (conflictingOriginAction)
{
case ALLOW :
@@ -478,7 +479,12 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
if (request == null)
return false;

- return origin.equalsIgnoreCase(request);
+ final boolean isLocal = origin.equalsIgnoreCase(request);
+ if (!isLocal && originHeader.startsWith("https:") && !request.startsWith("https:")) {
+ log.warn("Origin starts with https: but request starts with http:. If you are running behind a proxy, make " +
+ "sure to set 'X-Forwarded-Proto: https' in the proxy");
+ }
+ return isLocal;
}

/**
@@ -533,6 +539,7 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
target.append(':');
target.append(port);
}
+ log.debug("Origin : {}", target.toString());
return target.toString();
}
catch (URISyntaxException e)
@@ -556,12 +563,16 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
String host = request.getHeader("X-Forwarded-Host");
if (host != null) {
String[] hosts = host.split(",");
- return getFarthestRequestScheme(request) + "://" + hosts[0];
+ final String location = getFarthestRequestScheme(request) + "://" + hosts[0];
+ log.debug("X-Forwarded-Host header found. Return location '{}'", location);
+ return location;
}

host = request.getHeader("Host");
if (host != null && !"".equals(host)) {
- return getFarthestRequestScheme(request) + "://" + host;
+ final String location = getFarthestRequestScheme(request) + "://" + host;
+ log.debug("Host header found. Return location '{}'", location);
+ return location;
}

// Build scheme://host:port from request
@@ -591,7 +602,8 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
target.append(':');
target.append(port);
}
-
+ log.debug("Host '{}' from request.serverName is used because no 'Host' or 'X-Forwarded-Host' header found. " +
+ "Return location '{}'", target.toString());
return target.toString();
}

@@ -684,8 +696,8 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
private void allowHandler(HttpServletRequest request, String origin, IRequestablePage page)
{
onAllowed(request, origin, page);
- log.info("Possible CSRF attack, request URL: {}, Origin: {}, action: allowed",
- request.getRequestURL(), origin);
+ log.info("Possible CSRF attack, client request location: {}, Origin: {}, action: allowed",
+ getLocationHeaderOrigin(request), origin);
}

/**
@@ -719,8 +731,8 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
private void suppressHandler(HttpServletRequest request, String origin, IRequestablePage page)
{
onSuppressed(request, origin, page);
- log.info("Possible CSRF attack, request URL: {}, Origin: {}, action: suppressed",
- request.getRequestURL(), origin);
+ log.info("Possible CSRF attack, client request location: {}, Origin: {}, action: suppressed",
+ getLocationHeaderOrigin(request), origin);
throw new RestartResponseException(page);
}

@@ -755,9 +767,8 @@ public class CsrfPreventionRequestCycleListener extends AbstractRequestCycleList
private void abortHandler(HttpServletRequest request, String origin, IRequestablePage page)
{
onAborted(request, origin, page);
- log.info(
- "Possible CSRF attack, request URL: {}, Origin: {}, action: aborted with error {} {}",
- new Object[] { request.getRequestURL(), origin, errorCode, errorMessage });
+ log.info("Possible CSRF attack, client request location: {}, Origin: {}, action: aborted with error {} {}",
+ new Object[] {getLocationHeaderOrigin(request), origin, errorCode, errorMessage });
throw new AbortWithHttpErrorCodeException(errorCode, errorMessage);
}




View it on GitLab: https://code.onehippo.org/cms-community/hippo-cms/compare/b8b822d3f9e09574131a58b757dec67b9de72f98...153abb8a0b21e5aec633a8d5fe31c131f5aad8cc
Arent-Jan Banck
2016-05-24 14:27:32 UTC
Permalink
Arent-Jan Banck pushed to branch release/3.2 at cms-community / hippo-repository


Commits:
8c8af6ca by Arent-Jan Banck at 2016-05-24T16:12:41+02:00
REPO-1490 prepare release hippo-repository-3.2.3

- - - - -
1c966956 by Arent-Jan Banck at 2016-05-24T16:12:41+02:00
REPO-1490 prepare for next development iteration

- - - - -


22 changed files:

- api/pom.xml
- builtin/pom.xml
- config/pom.xml
- connector/pom.xml
- dependencies/pom.xml
- deprecated/facetsearch/pom.xml
- deprecated/facetselectmirror/pom.xml
- deprecated/pom.xml
- engine/pom.xml
- jaxrs/pom.xml
- modules/pom.xml
- pom.xml
- provider/pom.xml
- resources/pom.xml
- scripts/pom.xml
- servlets/pom.xml
- test/pom.xml
- testcontent/pom.xml
- testutils/pom.xml
- upgrade/pom.xml
- utilities/pom.xml
- workflow/pom.xml


Changes:

=====================================
api/pom.xml
=====================================
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
</parent>

<name>Repository API</name>


=====================================
builtin/pom.xml
=====================================
--- a/builtin/pom.xml
+++ b/builtin/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
</parent>

<name>Repository Builtin workflow</name>


=====================================
config/pom.xml
=====================================
--- a/config/pom.xml
+++ b/config/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
</parent>

<name>Repository Default Configuration</name>


=====================================
connector/pom.xml
=====================================
--- a/connector/pom.xml
+++ b/connector/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
</parent>

<name>Repository Connector</name>


=====================================
dependencies/pom.xml
=====================================
--- a/dependencies/pom.xml
+++ b/dependencies/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
</parent>

<name>Repository Dependencies</name>


=====================================
deprecated/facetsearch/pom.xml
=====================================
--- a/deprecated/facetsearch/pom.xml
+++ b/deprecated/facetsearch/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository-deprecated</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
</parent>

<name>Repository Deprecated Facetsearch</name>


=====================================
deprecated/facetselectmirror/pom.xml
=====================================
--- a/deprecated/facetselectmirror/pom.xml
+++ b/deprecated/facetselectmirror/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository-deprecated</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
</parent>

<name>Repository Deprecated Facetselect Mirror</name>


=====================================
deprecated/pom.xml
=====================================
--- a/deprecated/pom.xml
+++ b/deprecated/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
</parent>

<name>Repository Deprecated</name>


=====================================
engine/pom.xml
=====================================
--- a/engine/pom.xml
+++ b/engine/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
</parent>

<name>Repository Engine</name>


=====================================
jaxrs/pom.xml
=====================================
--- a/jaxrs/pom.xml
+++ b/jaxrs/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
</parent>

<name>Repository JAX-RS Services</name>


=====================================
modules/pom.xml
=====================================
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
</parent>

<name>Repository Modules</name>


=====================================
pom.xml
=====================================
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
<name>Repository</name>
<description>Hippo Repository</description>
<artifactId>hippo-repository</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
<packaging>pom</packaging>

<inceptionYear>2007</inceptionYear>


=====================================
provider/pom.xml
=====================================
--- a/provider/pom.xml
+++ b/provider/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
</parent>

<name>Repository Provider Module Interface</name>


=====================================
resources/pom.xml
=====================================
--- a/resources/pom.xml
+++ b/resources/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
</parent>

<name>Repository Resources</name>


=====================================
scripts/pom.xml
=====================================
--- a/scripts/pom.xml
+++ b/scripts/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
</parent>

<name>Repository Groovy Scripts</name>


=====================================
servlets/pom.xml
=====================================
--- a/servlets/pom.xml
+++ b/servlets/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
</parent>

<name>Repository Servlets</name>


=====================================
test/pom.xml
=====================================
--- a/test/pom.xml
+++ b/test/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
</parent>

<name>Repository Test</name>


=====================================
testcontent/pom.xml
=====================================
--- a/testcontent/pom.xml
+++ b/testcontent/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
</parent>

<name>Repository Test Content</name>


=====================================
testutils/pom.xml
=====================================
--- a/testutils/pom.xml
+++ b/testutils/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
</parent>

<name>Repository Test Utilities</name>


=====================================
upgrade/pom.xml
=====================================
--- a/upgrade/pom.xml
+++ b/upgrade/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
</parent>

<name>Repository Upgrade</name>


=====================================
utilities/pom.xml
=====================================
--- a/utilities/pom.xml
+++ b/utilities/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
</parent>

<name>Repository Utilities</name>


=====================================
workflow/pom.xml
=====================================
--- a/workflow/pom.xml
+++ b/workflow/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>3.2.3-SNAPSHOT</version>
+ <version>3.2.4-SNAPSHOT</version>
</parent>

<name>Repository workflow implementations</name>



View it on GitLab: https://code.onehippo.org/cms-community/hippo-repository/compare/2bbb64340f35eb01de2642ff81421740ab105838...1c966956356e27fef2ed8869154f5775f8a60c9e
Unico Hommes
2016-05-26 11:31:13 UTC
Permalink
Unico Hommes pushed to branch release/3.2 at cms-community / hippo-repository


Commits:
92497e49 by Jeroen Hoffman at 2016-05-03T11:16:39+02:00
REPO-1478 Add read access to hippostd:html for all users on behalf of RTE fields in compounds

- - - - -
6840d38f by Unico Hommes at 2016-05-26T13:31:08+02:00
Merge branch 'bugfix/REPO-1478' into 'release/3.2'

REPO-1478 Add read access to hippostd:html for all users on behalf of RTE fields in compounds



See merge request !3
- - - - -


2 changed files:

- + config/src/main/resources/domain-defaultread-hippostd-html.xml
- config/src/main/resources/hippoecm-extension.xml


Changes:

=====================================
config/src/main/resources/domain-defaultread-hippostd-html.xml
=====================================
--- /dev/null
+++ b/config/src/main/resources/domain-defaultread-hippostd-html.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2016 Hippo B.V. (http://www.onehippo.com)
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS"
+ BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<sv:node sv:name="hippostd-html" xmlns:sv="http://www.jcp.org/jcr/sv/1.0">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>hipposys:domainrule</sv:value>
+ </sv:property>
+ <sv:node sv:name="nodetype-hippostd-html">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>hipposys:facetrule</sv:value>
+ </sv:property>
+ <sv:property sv:name="hipposys:equals" sv:type="Boolean">
+ <sv:value>true</sv:value>
+ </sv:property>
+ <sv:property sv:name="hipposys:facet" sv:type="String">
+ <sv:value>jcr:primaryType</sv:value>
+ </sv:property>
+ <sv:property sv:name="hipposys:filter" sv:type="Boolean">
+ <sv:value>false</sv:value>
+ </sv:property>
+ <sv:property sv:name="hipposys:type" sv:type="String">
+ <sv:value>Name</sv:value>
+ </sv:property>
+ <sv:property sv:name="hipposys:value" sv:type="String">
+ <sv:value>hippostd:html</sv:value>
+ </sv:property>
+ </sv:node>
+</sv:node>


=====================================
config/src/main/resources/hippoecm-extension.xml
=====================================
--- a/config/src/main/resources/hippoecm-extension.xml
+++ b/config/src/main/resources/hippoecm-extension.xml
@@ -257,6 +257,20 @@
<sv:value>2.28.00</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="domain-defaultread-hippostd-html">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>hippo:initializeitem</sv:value>
+ </sv:property>
+ <sv:property sv:name="hippo:contentresource" sv:type="String">
+ <sv:value>domain-defaultread-hippostd-html.xml</sv:value>
+ </sv:property>
+ <sv:property sv:name="hippo:contentroot" sv:type="String">
+ <sv:value>/hippo:configuration/hippo:domains/defaultread</sv:value>
+ </sv:property>
+ <sv:property sv:name="hippo:sequence" sv:type="Double">
+ <sv:value>908.1</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="domain-defaultwrite">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>hippo:initializeitem</sv:value>



View it on GitLab: https://code.onehippo.org/cms-community/hippo-repository/compare/c391442852c8df9d223e35cb4cdcf490bf03147a...6840d38f7f8af4a1010250d44d29c281ab842aa9
Mathijs den Burger
2016-05-30 10:08:06 UTC
Permalink
Mathijs den Burger pushed to branch feature/cmng-psp1 at cms-community / hippo-addon-channel-manager


Commits:
b1698a08 by Canh Ngo at 2016-05-27T10:49:51+02:00
CHANNELMGR-691 only get prototype info when having 'write' permission

The backend of /newpagemodel requires 'write' permission, so the
front-end should only call it when having enough permission

- - - - -
eac6ae4c by Mathijs den Burger at 2016-05-30T12:07:43+02:00
CHANNELMGR-691 Merge changes into mainline

- - - - -


2 changed files:

- frontend-ng/src/angularjs/channel/channel.service.js
- frontend-ng/src/angularjs/channel/channel.service.spec.js


Changes:

=====================================
frontend-ng/src/angularjs/channel/channel.service.js
=====================================
--- a/frontend-ng/src/angularjs/channel/channel.service.js
+++ b/frontend-ng/src/angularjs/channel/channel.service.js
@@ -97,7 +97,10 @@ export class ChannelService {

this.CatalogService.load(this.getMountId());
this.SiteMapService.load(channel.siteMapId);
- this._augmentChannelWithPrototypeInfo();
+
+ if (this.SessionService.hasWriteAccess()) {
+ this._augmentChannelWithPrototypeInfo();
+ }
}

getChannel() {


=====================================
frontend-ng/src/angularjs/channel/channel.service.spec.js
=====================================
--- a/frontend-ng/src/angularjs/channel/channel.service.spec.js
+++ b/frontend-ng/src/angularjs/channel/channel.service.spec.js
@@ -42,9 +42,12 @@ describe('ChannelService', () => {
workspaceExists: true,
};

- SessionServiceMock = {
- initialize: (channel) => $q.resolve(channel),
- };
+ SessionServiceMock = jasmine.createSpyObj('SessionService', [
+ 'initialize',
+ 'hasWriteAccess',
+ ]);
+ SessionServiceMock.initialize.and.callFake((channel) => $q.when(channel));
+ SessionServiceMock.hasWriteAccess.and.returnValue(true);

CatalogServiceMock = jasmine.createSpyObj('CatalogService', [
'load',
@@ -143,12 +146,19 @@ describe('ChannelService', () => {
});

it('should not save a reference to the channel when load fails', () => {
- spyOn(SessionServiceMock, 'initialize').and.returnValue($q.reject());
+ SessionServiceMock.initialize.and.returnValue($q.reject());
ChannelService._load(channelMock);
$rootScope.$digest();
expect(ChannelService.getChannel()).not.toEqual(channelMock);
});

+ it('should not fetch pagemodel when session does not have write permission', () => {
+ SessionServiceMock.hasWriteAccess.and.returnValue(false);
+ ChannelService._load(channelMock);
+ $rootScope.$digest();
+ expect(HstService.doGetWithParams).not.toHaveBeenCalledWith(channelMock.mountId, undefined, 'newpagemodel');
+ });
+
it('should save a reference to the channel when load succeeds', () => {
HstService.doGetWithParams.and.returnValue($q.when({ data: { prototypes: ['test'] } }));
ChannelService._load(channelMock);



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/81be50853aa267d30a6b928ddc3537cceb408909...eac6ae4cd5eadb3e95c8e3bae8cf8cda6d3f8e59
Mathijs den Burger
2016-05-30 10:15:31 UTC
Permalink
Mathijs den Burger pushed to branch feature/cmng-psp1 at cms-community / hippo-addon-channel-manager


Commits:
567c7d2c by Mark at 2016-05-27T11:54:33+02:00
CHANNELMGR-694: modify FAB items on iframe as discussed yesterday

- - - - -
0b095906 by Mathijs den Burger at 2016-05-30T12:15:08+02:00
CHANNELMGR-694 Merge changes into mainline

- - - - -


2 changed files:

- frontend-ng/src/angularjs/channel/hippoIframe/hippoIframe.html
- frontend-ng/src/i18n/en.json


Changes:

=====================================
frontend-ng/src/angularjs/channel/hippoIframe/hippoIframe.html
=====================================
--- a/frontend-ng/src/angularjs/channel/hippoIframe/hippoIframe.html
+++ b/frontend-ng/src/angularjs/channel/hippoIframe/hippoIframe.html
@@ -45,17 +45,25 @@
</div>
<div ng-repeat="contentLink in iframe.getContentLinks()">
<overlay-element structure-element="contentLink">
- <md-button class="overlay-element-fab md-fab qa-content-link"
+ <md-button class="overlay-element-fab md-fab md-mini md-hue-2 qa-content-link"
ng-click="iframe.openContent(contentLink)">
- <md-icon class="material-icons">description</md-icon>
+ <md-icon class="material-icons"
+ aria-label="{{'IFRAME_OPEN_DOCUMENT' | translate }}">description</md-icon>
+ <md-tooltip md-direction="top">
+ {{'IFRAME_OPEN_DOCUMENT' | translate}}
+ </md-tooltip>
</md-button>
</overlay-element>
</div>
<div ng-repeat="editMenuLink in iframe.getEditMenuLinks()">
<overlay-element structure-element="editMenuLink">
- <md-button class="overlay-element-fab md-fab qa-edit-menu-link"
+ <md-button class="overlay-element-fab md-fab md-mini md-hue-2 qa-edit-menu-link"
ng-click="iframe.openMenuEditor(editMenuLink)">
- <md-icon class="material-icons">menu</md-icon>
+ <md-icon class="material-icons"
+ aria-label="{{'IFRAME_EDIT_MENU' | translate }}">edit</md-icon>
+ <md-tooltip md-direction="top">
+ {{'IFRAME_EDIT_MENU' | translate}}
+ </md-tooltip>
</md-button>
</overlay-element>
</div>


=====================================
frontend-ng/src/i18n/en.json
=====================================
--- a/frontend-ng/src/i18n/en.json
+++ b/frontend-ng/src/i18n/en.json
@@ -61,6 +61,8 @@
"EXPERIMENT_LABEL_COMPLETED": "Experiment completed",
"EXPERIMENT_LABEL_CREATED": "Experiment created",
"EXPERIMENT_LABEL_RUNNING": "Experiment running",
+ "IFRAME_EDIT_MENU": "Edit menu",
+ "IFRAME_OPEN_DOCUMENT": "Open document",
"LINK_REQUIRED": "Link is required",
"MOVE": "Move",
"PUBLISH": "Publish",



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/eac6ae4cd5eadb3e95c8e3bae8cf8cda6d3f8e59...0b095906275daf4a90cdd7d136eac1af5bc16492
Tobias Jeger
2016-05-31 10:42:57 UTC
Permalink
Tobias Jeger pushed to branch feature/cmng-psp1 at cms-community / hippo-addon-channel-manager


Commits:
3e9fab22 by Mathijs den Burger at 2016-05-30T16:46:09+02:00
CHANNELMGR-697 highlight required dropdown fields on save

Angular does not mark invalid required select fields as invalid
unless we specifically mark them as dirty.

- - - - -
fabe0f60 by Tobias Jeger at 2016-05-31T12:42:31+02:00
CHANNELMGR-697 Merge changes into mainline

- - - - -


5 changed files:

- frontend-ng/src/angularjs/channel/actions/settings/settings.controller.js
- frontend-ng/src/angularjs/channel/actions/settings/settings.html
- frontend-ng/src/angularjs/channel/actions/settings/settings.spec.js
- frontend-ng/src/styles/_channel.scss
- frontend-ng/src/styles/_variables.scss


Changes:

=====================================
frontend-ng/src/angularjs/channel/actions/settings/settings.controller.js
=====================================
--- a/frontend-ng/src/angularjs/channel/actions/settings/settings.controller.js
+++ b/frontend-ng/src/angularjs/channel/actions/settings/settings.controller.js
@@ -55,17 +55,29 @@ export class ChannelSettingsCtrl {
return this.channelInfoDescription.lockedBy && this.channelInfoDescription.lockedBy !== this.ConfigService.cmsUser;
}

- save() {
- this.ChannelService.setProperties(this.values);
- this.ChannelService.saveChannel()
- .then(() => {
- this.HippoIframeService.reload();
- this.ChannelService.recordOwnChange();
- this.onSuccess({ key: 'CHANNEL_PROPERTIES_SAVE_SUCCESS' });
- })
- .catch(() => {
- this.FeedbackService.showErrorOnSubpage('ERROR_CHANNEL_PROPERTIES_SAVE_FAILED');
- });
+ touchRequiredFields() {
+ if (this.form.$error.required) {
+ this.form.$error.required.forEach((requiredField) => requiredField.$setDirty());
+ }
+ }
+
+ saveIfValid() {
+ // Angular does not mark input containers with a select field as invalid unless they are dirty, so mark
+ // all required field as dirty upon save to ensure that invalid required select fields are also highlighted.
+ this.touchRequiredFields();
+
+ if (this.form.$valid) {
+ this.ChannelService.setProperties(this.values);
+ this.ChannelService.saveChannel()
+ .then(() => {
+ this.HippoIframeService.reload();
+ this.ChannelService.recordOwnChange();
+ this.onSuccess({ key: 'CHANNEL_PROPERTIES_SAVE_SUCCESS' });
+ })
+ .catch(() => {
+ this.FeedbackService.showErrorOnSubpage('ERROR_CHANNEL_PROPERTIES_SAVE_FAILED');
+ });
+ }
}

getLabel(field) {


=====================================
frontend-ng/src/angularjs/channel/actions/settings/settings.html
=====================================
--- a/frontend-ng/src/angularjs/channel/actions/settings/settings.html
+++ b/frontend-ng/src/angularjs/channel/actions/settings/settings.html
@@ -21,10 +21,10 @@
</subpage-toolbar>

<subpage-content flex layout="row" class="qa-channel-settings">
- <form name="form"
+ <form name="channelSettings.form"
flex="initial"
class="qa-subpage"
- ng-submit="form.$valid && channelSettings.save()"
+ ng-submit="channelSettings.saveIfValid()"
novalidate>
<div ng-repeat="fieldGroup in channelSettings.getFieldGroups()">
<h3 class="md-title qa-fieldgroup">{{ channelSettings.getLabel(fieldGroup.titleKey) }}</h3>


=====================================
frontend-ng/src/angularjs/channel/actions/settings/settings.spec.js
=====================================
--- a/frontend-ng/src/angularjs/channel/actions/settings/settings.spec.js
+++ b/frontend-ng/src/angularjs/channel/actions/settings/settings.spec.js
@@ -114,7 +114,6 @@ describe('ChannelSettings', () => {
$compile($element)($scope);
$scope.$digest();

-
return $element.controller('channel-settings');
}

@@ -144,6 +143,26 @@ describe('ChannelSettings', () => {
expect($scope.onDone).toHaveBeenCalled();
});

+ it('marks required fields as dirty on save', () => {
+ channelInfoDescription.propertyDefinitions.dropDown.isRequired = true;
+ const ChannelSettingsCtrl = compileDirectiveAndGetController();
+ expect(ChannelSettingsCtrl.form.dropDown.$dirty).toEqual(false);
+
+ $element.find('.qa-action').click();
+
+ expect(ChannelSettingsCtrl.form.dropDown.$dirty).toEqual(true);
+ });
+
+ it('does not save settings when a required field is invalid', () => {
+ channelInfoDescription.propertyDefinitions.dropDown.isRequired = true;
+ spyOn(ChannelService, 'saveChannel');
+ compileDirectiveAndGetController();
+
+ $element.find('.qa-action').click();
+
+ expect(ChannelService.saveChannel).not.toHaveBeenCalled();
+ });
+
it('notifies the event "on-success" when saving is successful', () => {
spyOn(ChannelService, 'saveChannel').and.returnValue($q.when());
spyOn(ChannelService, 'recordOwnChange');


=====================================
frontend-ng/src/styles/_channel.scss
=====================================
--- a/frontend-ng/src/styles/_channel.scss
+++ b/frontend-ng/src/styles/_channel.scss
@@ -53,6 +53,18 @@ md-input-container.input-container-picker {
}
}

+// color required invalid select boxes red
+.md-input-invalid md-select.ng-invalid ._md-select-value._md-select-placeholder {
+ color: $select-invalid-color;
+}
+
+// mark required select boxes with an asterisk
+md-select.ng-invalid-required > md-select-value > span:after {
+ content: " *";
+ font-size: 13px;
+ vertical-align: top;
+}
+
.help-icon {
cursor: default;
position: absolute;


=====================================
frontend-ng/src/styles/_variables.scss
=====================================
--- a/frontend-ng/src/styles/_variables.scss
+++ b/frontend-ng/src/styles/_variables.scss
@@ -45,3 +45,6 @@ $tree-dd-bg: $black-shadow;

// Do not use transparent tooltips
$tooltip-bg: $black;
+
+// Style mdSelect
+$select-invalid-color: #f70029;



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/1a0d31223da1d4f12dadd6a1228c4cbf22f56f19...fabe0f60ac88b2b3d566453b66065d5aca90d1b2
Arthur Bogaart
2016-05-31 14:32:49 UTC
Permalink
Arthur Bogaart pushed to branch feature/cmng-psp1 at cms-community / hippo-addon-channel-manager


Commits:
02c977e8 by Arthur Bogaart at 2016-05-31T16:31:54+02:00
CHANNELMGR-639 Merge listing.scss and lists.scss

- - - - -
4ecc5108 by Arthur Bogaart at 2016-05-31T16:32:36+02:00
CHANNELMGR-639 Remove listing.scss import

- - - - -


3 changed files:

- frontend-ng/src/index.scss
- − frontend-ng/src/styles/_listing.scss
- frontend-ng/src/styles/_lists.scss


Changes:

=====================================
frontend-ng/src/index.scss
=====================================
--- a/frontend-ng/src/index.scss
+++ b/frontend-ng/src/index.scss
@@ -26,5 +26,4 @@
@import 'styles/subpage';
@import 'styles/tree';
@import 'styles/picker';
-@import 'styles/listing';
@import 'styles/tooltips';


=====================================
frontend-ng/src/styles/_listing.scss deleted
=====================================
--- a/frontend-ng/src/styles/_listing.scss
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2016 Hippo B.V. (http://www.onehippo.com)
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-.hippo-listing {
- border-left: 1px solid $picker-border-color;
-
- .md-subheader {
- line-height: 18px;
-
- span {
- padding-left: 56px;
- }
- }
-}
-
-md-list-item.active {
- background-color: $blue;
- p,
- md-icon {
- color: $white;
- }
-}


=====================================
frontend-ng/src/styles/_lists.scss
=====================================
--- a/frontend-ng/src/styles/_lists.scss
+++ b/frontend-ng/src/styles/_lists.scss
@@ -25,3 +25,23 @@ md-list-item .component-icon {
md-sidenav md-list {
padding: 0;
}
+
+.hippo-listing {
+ border-left: 1px solid $picker-border-color;
+
+ .md-subheader {
+ line-height: 18px;
+
+ span {
+ padding-left: 56px;
+ }
+ }
+
+ md-list-item.active {
+ background-color: $blue;
+ p,
+ md-icon {
+ color: $white;
+ }
+ }
+}



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/da35a282189480f99a0245cbd13efc1d28fb53ab...4ecc5108c3f3c551eea7cbde98399c7d53c445c2
Tobias Jeger
2016-05-31 14:35:40 UTC
Permalink
Tobias Jeger pushed to branch feature/cmng-psp1 at cms-community / hippo-addon-channel-manager


Commits:
da99bf93 by Tobias Jeger at 2016-05-31T16:31:14+02:00
CHANNELMGR-706 Push subpage scrollbar to the right border again

- - - - -
41316be5 by Tobias Jeger at 2016-05-31T16:35:16+02:00
CHANNELMGR-706 Merge changes to mainline

- - - - -


1 changed file:

- frontend-ng/src/angularjs/channel/subpage/content/subpageContent.html


Changes:

=====================================
frontend-ng/src/angularjs/channel/subpage/content/subpageContent.html
=====================================
--- a/frontend-ng/src/angularjs/channel/subpage/content/subpageContent.html
+++ b/frontend-ng/src/angularjs/channel/subpage/content/subpageContent.html
@@ -15,15 +15,16 @@
-->

<md-content layout="row"
- layout-align="center"
class="subpage-feedback-parent scroll-to-container qa-subpage"
flex>
<!--md-content is full height, internal div can scroll-->
- <div flex="100"
- flex-gt-xs="66"
- flex-gt-sm="50"
- flex-gt-md="33"
- layout-padding>
- <div ng-transclude flex></div>
+ <div flex layout="row" layout-align="center">
+ <div flex="100"
+ flex-gt-xs="66"
+ flex-gt-sm="50"
+ flex-gt-md="33"
+ layout-padding>
+ <div ng-transclude flex></div>
+ </div>
</div>
</md-content>
\ No newline at end of file



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/4ecc5108c3f3c551eea7cbde98399c7d53c445c2...41316be56bf65f5ee28afc11a533b5ba9806d28a
Ard Schrijvers
2016-05-31 15:31:28 UTC
Permalink
Ard Schrijvers pushed to branch master at cms-community / hippo-site-toolkit


Commits:
cc927429 by Oscar Scholten at 2016-05-31T13:02:24+02:00
HSTTWO-3622 Improving the caching settings for REST pipelines
- removing noCacheResponseHeadersValve
- adding pageInfoRenderingValve and pageCachingValve
- updating unit tests that failed due to changes

- - - - -
ae89ee27 by Ard Schrijvers at 2016-05-31T17:29:52+02:00
HSTTWO-3622 Reintegrate bugfix/HSTTWO-3622

- - - - -


4 changed files:

- components/jaxrs/src/main/resources/org/hippoecm/hst/site/optional/jaxrs/SpringComponentManager-rest-content-pipeline.xml
- components/jaxrs/src/main/resources/org/hippoecm/hst/site/optional/jaxrs/SpringComponentManager-rest-plain-pipeline.xml
- components/jaxrs/src/test/java/org/hippoecm/hst/jaxrs/services/content/AbstractTestContentResource.java
- components/restapi/src/main/resources/META-INF/hst-assembly/addon/org/hippoecm/hst/restapi/SpringComponentManager-restapi.xml


Changes:

=====================================
components/jaxrs/src/main/resources/org/hippoecm/hst/site/optional/jaxrs/SpringComponentManager-rest-content-pipeline.xml
=====================================
--- a/components/jaxrs/src/main/resources/org/hippoecm/hst/site/optional/jaxrs/SpringComponentManager-rest-content-pipeline.xml
+++ b/components/jaxrs/src/main/resources/org/hippoecm/hst/site/optional/jaxrs/SpringComponentManager-rest-content-pipeline.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
- Copyright 2008-2015 Hippo B.V. (http://www.onehippo.com)
+ Copyright 2008-2016 Hippo B.V. (http://www.onehippo.com)

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -167,7 +167,8 @@
<list>
<ref bean="securityValve" />
<ref bean="subjectBasedSessionValve" />
- <ref bean="noCacheResponseHeadersValve" />
+ <ref bean="pageInfoRenderingValve" />
+ <ref bean="pageCachingValve" />
<ref bean="jaxrsRestContentServiceValve" />
</list>
</property>
@@ -183,4 +184,3 @@
</bean>

</beans>
-


=====================================
components/jaxrs/src/main/resources/org/hippoecm/hst/site/optional/jaxrs/SpringComponentManager-rest-plain-pipeline.xml
=====================================
--- a/components/jaxrs/src/main/resources/org/hippoecm/hst/site/optional/jaxrs/SpringComponentManager-rest-plain-pipeline.xml
+++ b/components/jaxrs/src/main/resources/org/hippoecm/hst/site/optional/jaxrs/SpringComponentManager-rest-plain-pipeline.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
- Copyright 2008-2015 Hippo B.V. (http://www.onehippo.com)
+ Copyright 2008-2016 Hippo B.V. (http://www.onehippo.com)

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -125,7 +125,8 @@
<list>
<ref bean="securityValve" />
<ref bean="subjectBasedSessionValve" />
- <ref bean="noCacheResponseHeadersValve" />
+ <ref bean="pageInfoRenderingValve" />
+ <ref bean="pageCachingValve" />
<ref bean="jaxrsRestPlainServiceValve" />
</list>
</property>


=====================================
components/jaxrs/src/test/java/org/hippoecm/hst/jaxrs/services/content/AbstractTestContentResource.java
=====================================
--- a/components/jaxrs/src/test/java/org/hippoecm/hst/jaxrs/services/content/AbstractTestContentResource.java
+++ b/components/jaxrs/src/test/java/org/hippoecm/hst/jaxrs/services/content/AbstractTestContentResource.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2010-2015 Hippo B.V. (http://www.onehippo.com)
+ * Copyright 2010-2016 Hippo B.V. (http://www.onehippo.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,13 +21,10 @@ import java.util.HashMap;
import java.util.List;

import javax.jcr.Credentials;
-import javax.jcr.Node;
-import javax.jcr.PropertyIterator;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
-import javax.jcr.Value;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -36,6 +33,7 @@ import org.easymock.EasyMock;
import org.hippoecm.hst.configuration.hosting.Mount;
import org.hippoecm.hst.configuration.hosting.VirtualHost;
import org.hippoecm.hst.configuration.hosting.VirtualHosts;
+import org.hippoecm.hst.configuration.sitemap.HstSiteMapItem;
import org.hippoecm.hst.container.GenericRequestContextWrapper;
import org.hippoecm.hst.container.HstContainerRequest;
import org.hippoecm.hst.container.HstContainerRequestImpl;
@@ -50,14 +48,11 @@ import org.hippoecm.hst.core.container.Pipelines;
import org.hippoecm.hst.core.internal.HstMutableRequestContext;
import org.hippoecm.hst.core.internal.HstRequestContextComponent;
import org.hippoecm.hst.core.linking.HstLinkCreator;
-import org.hippoecm.hst.core.request.HstRequestContext;
import org.hippoecm.hst.core.request.ResolvedMount;
import org.hippoecm.hst.core.request.ResolvedSiteMapItem;
import org.hippoecm.hst.core.request.ResolvedVirtualHost;
import org.hippoecm.hst.jaxrs.services.AbstractJaxrsSpringTestCase;
import org.hippoecm.hst.util.HstRequestUtils;
-import org.hippoecm.repository.util.JcrUtils;
-import org.hippoecm.repository.util.NodeIterable;
import org.junit.Before;
import org.springframework.mock.web.MockServletConfig;
import org.springframework.mock.web.MockServletContext;
@@ -154,11 +149,18 @@ public abstract class AbstractTestContentResource extends AbstractJaxrsSpringTes
}

public HstMutableRequestContext createRequestContext(String siteMapItemRelativeContentPath) {
+ HstSiteMapItem hstSiteMapItem = EasyMock.createNiceMock(HstSiteMapItem.class);
+ EasyMock.expect(hstSiteMapItem.isCacheable()).andReturn(false).anyTimes();
+ EasyMock.expect(hstSiteMapItem.getId()).andReturn("42").anyTimes();
+
ResolvedSiteMapItem resolvedSiteMapItem = EasyMock.createNiceMock(ResolvedSiteMapItem.class);
EasyMock.expect(resolvedSiteMapItem.getResolvedMount()).andReturn(resolvedMount).anyTimes();
EasyMock.expect(resolvedSiteMapItem.getRelativeContentPath()).andReturn(siteMapItemRelativeContentPath).anyTimes();
+ EasyMock.expect(resolvedSiteMapItem.getHstSiteMapItem()).andReturn(hstSiteMapItem).anyTimes();

+ EasyMock.replay(hstSiteMapItem);
EasyMock.replay(resolvedSiteMapItem);
+
HstMutableRequestContext requestContext = ((HstRequestContextComponent)getComponent(HstRequestContextComponent.class.getName())).create();

requestContext.setServletContext(servletContext);


=====================================
components/restapi/src/main/resources/META-INF/hst-assembly/addon/org/hippoecm/hst/restapi/SpringComponentManager-restapi.xml
=====================================
--- a/components/restapi/src/main/resources/META-INF/hst-assembly/addon/org/hippoecm/hst/restapi/SpringComponentManager-restapi.xml
+++ b/components/restapi/src/main/resources/META-INF/hst-assembly/addon/org/hippoecm/hst/restapi/SpringComponentManager-restapi.xml
@@ -191,6 +191,8 @@
</property>
<property name="processingValves">
<list>
+ <ref bean="pageInfoRenderingValve" />
+ <ref bean="pageCachingValve" />
<ref bean="restApiServiceValve" />
</list>
</property>



View it on GitLab: https://code.onehippo.org/cms-community/hippo-site-toolkit/compare/d1ef6bca424ab214ec940fd38c3c76d4ba6f178f...ae89ee2764c8c31318f72469421f0868db7055a9
Tobias Jeger
2016-06-01 07:54:10 UTC
Permalink
Tobias Jeger pushed to branch feature/cmng-psp1 at cms-community / hippo-addon-channel-manager


Commits:
d58bbdf2 by Arthur Bogaart at 2016-06-01T02:50:45+02:00
CHANNELMGR-708 Use md-select for picker type

- - - - -
d9399289 by Tobias Jeger at 2016-06-01T09:54:01+02:00
CHANNELMGR-708 Merge changes into mainline

- - - - -


2 changed files:

- frontend-ng/src/angularjs/channel/menu/picker/picker.html
- frontend-ng/src/styles/_picker.scss


Changes:

=====================================
frontend-ng/src/angularjs/channel/menu/picker/picker.html
=====================================
--- a/frontend-ng/src/angularjs/channel/menu/picker/picker.html
+++ b/frontend-ng/src/angularjs/channel/menu/picker/picker.html
@@ -23,13 +23,10 @@
<md-dialog-content layout="row" class="picker-content">
<md-content flex="33" flex-sm="50">
<section>
- <md-subheader>
- <div class="picker-type">
- <select ng-model="picker.pickerType"
- ng-options="option.name for option in picker.pickerTypes"
- ng-change="picker.changePickerType()">
- </select>
- </div>
+ <md-subheader class="picker-type">
+ <md-select ng-model="picker.pickerType" ng-change="picker.changePickerType()">
+ <md-option ng-value="option" ng-repeat="option in picker.pickerTypes">{{ option.name }}</md-option>
+ </md-select>
</md-subheader>
<div hippo-tree
ng-if="picker.items.length > 0"


=====================================
frontend-ng/src/styles/_picker.scss
=====================================
--- a/frontend-ng/src/styles/_picker.scss
+++ b/frontend-ng/src/styles/_picker.scss
@@ -26,7 +26,17 @@
background-color: $picker-subheader-bgcolor;
}

- .picker-type select {
- width: 100%;
+ .picker-type {
+ background-color: $white;
+
+ > div {
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ md-select {
+ margin-top: 0;
+ margin-bottom: 0;
+ }
}
}



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/8497b04ae4a122a8034a2d7c87b063e1b897a312...d93992893a5507d764848d40658b7f8692250f76
Ard Schrijvers
2016-06-02 08:37:55 UTC
Permalink
Ard Schrijvers pushed to branch master at cms-community / hippo-site-toolkit


Commits:
055a8ec9 by Ard Schrijvers at 2016-06-01T16:14:15+02:00
HSTTWO-3685 do not set render parameter if the request is a resource request (resourceURL)

- - - - -
efb3ee06 by Ard Schrijvers at 2016-06-02T10:33:10+02:00
HSTTWO-3685 Reintegrate bugfix/HSTTWO-3685

- - - - -


1 changed file:

- client/src/main/java/org/hippoecm/hst/component/support/forms/FormUtils.java


Changes:

=====================================
client/src/main/java/org/hippoecm/hst/component/support/forms/FormUtils.java
=====================================
--- a/client/src/main/java/org/hippoecm/hst/component/support/forms/FormUtils.java
+++ b/client/src/main/java/org/hippoecm/hst/component/support/forms/FormUtils.java
@@ -40,6 +40,8 @@ import org.hippoecm.hst.site.HstServices;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

+import static org.hippoecm.hst.core.component.HstRequest.RESOURCE_PHASE;
+
public class FormUtils {

static Logger log = LoggerFactory.getLogger(FormUtils.class);
@@ -219,7 +221,11 @@ public class FormUtils {
}
}
session.save();
- response.setRenderParameter(DEFAULT_UUID_NAME, postedFormDataNode.getIdentifier());
+ if (RESOURCE_PHASE.equals(request.getLifecyclePhase())) {
+ log.debug("During {} a request does not (yet) support set render parameter. Skipping setting render parameter", RESOURCE_PHASE);
+ } else {
+ response.setRenderParameter(DEFAULT_UUID_NAME, postedFormDataNode.getIdentifier());
+ }
if(storeFormResult != null) {
storeFormResult.populateResult(postedFormDataNode);
}



View it on GitLab: https://code.onehippo.org/cms-community/hippo-site-toolkit/compare/c984a65873b471cecde7ce9790906b36e002194c...efb3ee0605a98f1bb4109680e4ce049d9185c956
Mathijs den Burger
2016-06-02 10:01:17 UTC
Permalink
Mathijs den Burger pushed to branch feature/cmng-psp1 at cms-community / hippo-addon-channel-manager


Commits:
a0c8a598 by Oscar Scholten at 2016-05-31T16:46:56+02:00
CHANNELMGR-254 Removing obsolete Sonar configuration for l10n plugin
- - - - -
8d7163fb by Mathijs den Burger at 2016-06-02T12:00:14+02:00
CHANNELMGR-331 Merge master changes in feature/cmng-psp1

- - - - -


1 changed file:

- pom.xml


Changes:

=====================================
pom.xml
=====================================
--- a/pom.xml
+++ b/pom.xml
@@ -52,8 +52,6 @@
<!-- test related -->
<junit.version>4.5</junit.version>
<easymock.version>3.0</easymock.version>
-
- <sonar.l10n.locales>nl,fr,it,de</sonar.l10n.locales>
</properties>

<repositories>



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/a524a5f6c97551cef23915c1eb899a983d46f5aa...8d7163fb5e168451d5b3188dd0689d3c73edadbd
Mathijs den Burger
2016-06-02 10:57:23 UTC
Permalink
Mathijs den Burger pushed to branch feature/cmng-psp1 at cms-community / hippo-addon-channel-manager


Commits:
b051083a by Mathijs den Burger at 2016-06-02T12:09:37+02:00
CHANNELMGR-331 Depend on HST version 4.0.0-SNAPSHOT

- - - - -
f85c3103 by Mathijs den Burger at 2016-06-02T12:56:30+02:00
CHANNELMGR-680 Fix creating preview config on first edit

The on-change method never called because it was a function reference
instead of a function call.

With that fixed, the toggle updates its model before calling the
on-change method, so the logic of setting isEditMode (possibly
asynchronously when preview config has to be created) no longer
worked.

Fixed by using a fake model for the toggle (because a model is
required by the ng-switch directive).

- - - - -


4 changed files:

- frontend-ng/src/angularjs/channel/channel.controller.js
- frontend-ng/src/angularjs/channel/channel.controller.spec.js
- frontend-ng/src/angularjs/channel/channel.html
- pom.xml


Changes:

=====================================
frontend-ng/src/angularjs/channel/channel.controller.js
=====================================
--- a/frontend-ng/src/angularjs/channel/channel.controller.js
+++ b/frontend-ng/src/angularjs/channel/channel.controller.js
@@ -51,7 +51,10 @@ export class ChannelCtrl {
ComponentAdderService.setCatalogContainerItemClass('catalog-dd-container-item');

this.HippoIframeService.load($stateParams.initialRenderPath);
- this.isEditMode = false;
+
+ // editToggleState is only used as a 'fake' model for the toggle; isEditMode is updated in the onChange callback,
+ // which may happen asynchronously if preview configuration needs to be created.
+ this.editToggleState = this.isEditMode = false;

CmsService.subscribe('clear-channel', () => this._clear());
}
@@ -59,7 +62,7 @@ export class ChannelCtrl {
_clear() {
this.$rootScope.$apply(() => {
this.hideSubpage();
- this.leaveEditMode();
+ this._leaveEditMode();
this.ChannelService.clearChannel();
});
}
@@ -72,7 +75,7 @@ export class ChannelCtrl {
return this.HippoIframeService.isPageLoaded();
}

- enterEditMode() {
+ _enterEditMode() {
if (!this.isEditMode && !this.ChannelService.hasPreviewConfiguration()) {
this._createPreviewConfiguration();
} else {
@@ -80,19 +83,15 @@ export class ChannelCtrl {
}
}

- leaveEditMode() {
+ _leaveEditMode() {
this.isEditMode = false;
}

- isEditModeActive() {
- return this.isEditMode;
- }
-
toggleEditMode() {
if (this.isEditMode) {
- this.leaveEditMode();
+ this._leaveEditMode();
} else {
- this.enterEditMode();
+ this._enterEditMode();
}
}



=====================================
frontend-ng/src/angularjs/channel/channel.controller.spec.js
=====================================
--- a/frontend-ng/src/angularjs/channel/channel.controller.spec.js
+++ b/frontend-ng/src/angularjs/channel/channel.controller.spec.js
@@ -121,16 +121,16 @@ describe('ChannelCtrl', () => {
});

it('is not in edit mode by default', () => {
- expect(ChannelCtrl.isEditModeActive()).toEqual(false);
+ expect(ChannelCtrl.isEditMode).toEqual(false);
});

it('enables and disables edit mode when toggling it', () => {
ChannelService.hasPreviewConfiguration.and.returnValue(true);

- ChannelCtrl.enterEditMode();
- expect(ChannelCtrl.isEditModeActive()).toEqual(true);
- ChannelCtrl.leaveEditMode();
- expect(ChannelCtrl.isEditModeActive()).toEqual(false);
+ ChannelCtrl.toggleEditMode();
+ expect(ChannelCtrl.isEditMode).toEqual(true);
+ ChannelCtrl.toggleEditMode();
+ expect(ChannelCtrl.isEditMode).toEqual(false);
});

it('creates preview configuration when it has not been created yet before enabling edit mode', () => {
@@ -142,25 +142,25 @@ describe('ChannelCtrl', () => {
HippoIframeService.reload.and.returnValue(deferReload.promise);

expect(ChannelCtrl.isCreatingPreview).toEqual(false);
- ChannelCtrl.enterEditMode();
+ ChannelCtrl.toggleEditMode();

expect(ChannelService.createPreviewConfiguration).toHaveBeenCalled();
expect(ChannelCtrl.isCreatingPreview).toEqual(true);
- expect(ChannelCtrl.isEditModeActive()).toEqual(false);
+ expect(ChannelCtrl.isEditMode).toEqual(false);
expect(HippoIframeService.reload).not.toHaveBeenCalled();

deferCreatePreview.resolve(); // preview creation completed successfully, reload page
$rootScope.$digest();

expect(ChannelCtrl.isCreatingPreview).toEqual(true);
- expect(ChannelCtrl.isEditModeActive()).toEqual(false);
+ expect(ChannelCtrl.isEditMode).toEqual(false);
expect(HippoIframeService.reload).toHaveBeenCalled();

deferReload.resolve(); // reload completed successfully, enter edit mode
$rootScope.$digest();

expect(ChannelCtrl.isCreatingPreview).toEqual(false);
- expect(ChannelCtrl.isEditModeActive()).toEqual(true);
+ expect(ChannelCtrl.isEditMode).toEqual(true);
});

it('shows an error when the creation of the preview configuration fails', () => {
@@ -170,23 +170,23 @@ describe('ChannelCtrl', () => {
ChannelService.createPreviewConfiguration.and.returnValue(deferCreatePreview.promise);

expect(ChannelCtrl.isCreatingPreview).toEqual(false);
- ChannelCtrl.enterEditMode();
+ ChannelCtrl.toggleEditMode();

expect(ChannelService.createPreviewConfiguration).toHaveBeenCalled();
expect(ChannelCtrl.isCreatingPreview).toEqual(true);
- expect(ChannelCtrl.isEditModeActive()).toEqual(false);
+ expect(ChannelCtrl.isEditMode).toEqual(false);

deferCreatePreview.reject();
$rootScope.$digest();

expect(ChannelCtrl.isCreatingPreview).toEqual(false);
- expect(ChannelCtrl.isEditModeActive()).toEqual(false);
+ expect(ChannelCtrl.isEditMode).toEqual(false);
expect(FeedbackService.showError).toHaveBeenCalledWith('ERROR_ENTER_EDIT');
});

it('does not create preview configuration when it has already been created when enabling edit mode', () => {
ChannelService.hasPreviewConfiguration.and.returnValue(true);
- ChannelCtrl.enterEditMode();
+ ChannelCtrl.toggleEditMode();
expect(ChannelService.createPreviewConfiguration).not.toHaveBeenCalled();
});



=====================================
frontend-ng/src/angularjs/channel/channel.html
=====================================
--- a/frontend-ng/src/angularjs/channel/channel.html
+++ b/frontend-ng/src/angularjs/channel/channel.html
@@ -39,8 +39,8 @@
<md-switch class="md-primary"
ng-if="channelCtrl.isEditable()"
ng-disabled="!channelCtrl.isChannelLoaded() || !channelCtrl.isPageLoaded() || channelCtrl.isCreatingPreview"
- ng-change="channelCtrl.toggleEditMode"
- ng-model="channelCtrl.isEditMode">
+ ng-model="channelCtrl.editToggleState"
+ ng-change="channelCtrl.toggleEditMode()">
{{ 'TOOLBAR_SWITCH_VIEWER_MODE_EDIT' | translate }}
</md-switch>
</div>


=====================================
pom.xml
=====================================
--- a/pom.xml
+++ b/pom.xml
@@ -37,7 +37,7 @@

<hippo.repository.version>4.0.0-SNAPSHOT</hippo.repository.version>
<hippo.cms.version>4.0.0-SNAPSHOT</hippo.cms.version>
- <hippo.hst.version>4.0.0-cmng-SNAPSHOT</hippo.hst.version>
+ <hippo.hst.version>4.0.0-SNAPSHOT</hippo.hst.version>
<hippo.commons.version>3.0.0-SNAPSHOT</hippo.commons.version>
<hippo.addon-hst-configuration-editor.version>3.0.0-SNAPSHOT</hippo.addon-hst-configuration-editor.version>
<hippo.frontend.plugins.version>3.0.0-SNAPSHOT</hippo.frontend.plugins.version>



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/8d7163fb5e168451d5b3188dd0689d3c73edadbd...f85c3103f23568db0a8372f7358aa39fdbda1475
Ard Schrijvers
2016-06-02 12:01:58 UTC
Permalink
Ard Schrijvers pushed to branch master at cms-community / hippo-site-toolkit


Commits:
98f1709b by Ard Schrijvers at 2016-06-02T11:05:18+02:00
HSTTWO-3469 deprecate hst:isSite

Deprecated cnd property and hst:isSite and deprecated the api isSite methods.
Log warnings when still used

- - - - -
1ff3a32a by Ard Schrijvers at 2016-06-02T13:59:28+02:00
HSTTWO-3469 Reintegrate feature/HSTTWO-3469

- - - - -


9 changed files:

- api/src/main/java/org/hippoecm/hst/configuration/HstNodeTypes.java
- api/src/main/java/org/hippoecm/hst/configuration/hosting/Mount.java
- commons/src/main/java/org/hippoecm/hst/core/hosting/CustomMountAndVirtualCmsHostAugmenter.java
- commons/src/main/java/org/hippoecm/hst/core/hosting/CustomMountAndVirtualHostAugmenter.java
- components/core/src/main/java/org/hippoecm/hst/configuration/hosting/MountService.java
- components/core/src/main/java/org/hippoecm/hst/core/container/SecurityValve.java
- components/core/src/main/java/org/hippoecm/hst/core/linking/HstLinkImpl.java
- components/core/src/main/java/org/hippoecm/hst/site/request/MountDecoratorImpl.java
- toolkit-resources/addon/toolkit-cnd/cnd/src/main/resources/hst-types.cnd


Changes:

=====================================
api/src/main/java/org/hippoecm/hst/configuration/HstNodeTypes.java
=====================================
--- a/api/src/main/java/org/hippoecm/hst/configuration/HstNodeTypes.java
+++ b/api/src/main/java/org/hippoecm/hst/configuration/HstNodeTypes.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2008-2015 Hippo B.V. (http://www.onehippo.com)
+ * Copyright 2008-2016 Hippo B.V. (http://www.onehippo.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -196,6 +196,11 @@ public interface HstNodeTypes {
String MOUNT_PROPERTY_SCHEME = "hst:scheme";
String MOUNT_PROPERTY_MOUNTPOINT = "hst:mountpoint";
String MOUNT_PROPERTY_ISMAPPED = "hst:ismapped";
+
+ /**
+ * @deprecated Since 4.0.0 (CMS 11.0.0)
+ */
+ @Deprecated
String MOUNT_PROPERTY_IS_SITE = "hst:isSite";

String MOUNT_PROPERTY_ALIAS = "hst:alias";


=====================================
api/src/main/java/org/hippoecm/hst/configuration/hosting/Mount.java
=====================================
--- a/api/src/main/java/org/hippoecm/hst/configuration/hosting/Mount.java
+++ b/api/src/main/java/org/hippoecm/hst/configuration/hosting/Mount.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2010-2015 Hippo B.V. (http://www.onehippo.com)
+ * Copyright 2010-2016 Hippo B.V. (http://www.onehippo.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -219,11 +219,9 @@ public interface Mount {
boolean isPortInUrl();

/**
- * When this method returns <code>false</code>, then {@link HstLink} will have the {@link HstManager#getPathSuffixDelimiter()} included even for empty or <code>null</code> {@link HstLink#getSubPath()}, if and only if
- * the {@link VirtualHosts#isHstFilterExcludedPath(String)} for the path to create a link for returns <code>true</code>. This is to avoid that for example a path that ends with .pdf will be skipped by the
- * {@link HstRequestProcessor} due to {@link VirtualHosts#isHstFilterExcludedPath(String)} : This is undesirable in case of a REST link for a binary for example
- * @return true when the {@link Mount} is meant to be a site (false in case of for example being used for REST calls)
+ * @deprecated Since 4.0.0 (CMS 11.0.0)
*/
+ @Deprecated
boolean isSite();




=====================================
commons/src/main/java/org/hippoecm/hst/core/hosting/CustomMountAndVirtualCmsHostAugmenter.java
=====================================
--- a/commons/src/main/java/org/hippoecm/hst/core/hosting/CustomMountAndVirtualCmsHostAugmenter.java
+++ b/commons/src/main/java/org/hippoecm/hst/core/hosting/CustomMountAndVirtualCmsHostAugmenter.java
@@ -686,6 +686,10 @@ public class CustomMountAndVirtualCmsHostAugmenter implements HstConfigurationAu
return false;
}

+ /**
+ * @deprecated Since 4.0.0 (CMS 11.0.0)
+ */
+ @Deprecated
@Override
public boolean isSite() {
return false;


=====================================
commons/src/main/java/org/hippoecm/hst/core/hosting/CustomMountAndVirtualHostAugmenter.java
=====================================
--- a/commons/src/main/java/org/hippoecm/hst/core/hosting/CustomMountAndVirtualHostAugmenter.java
+++ b/commons/src/main/java/org/hippoecm/hst/core/hosting/CustomMountAndVirtualHostAugmenter.java
@@ -510,6 +510,10 @@ public class CustomMountAndVirtualHostAugmenter implements HstConfigurationAugme
return false;
}

+ /**
+ * @deprecated Since 4.0.0 (CMS 11.0.0)
+ */
+ @Deprecated
@Override
public boolean isSite() {
return false;


=====================================
components/core/src/main/java/org/hippoecm/hst/configuration/hosting/MountService.java
=====================================
--- a/components/core/src/main/java/org/hippoecm/hst/configuration/hosting/MountService.java
+++ b/components/core/src/main/java/org/hippoecm/hst/configuration/hosting/MountService.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2009-2015 Hippo B.V. (http://www.onehippo.com)
+ * Copyright 2009-2016 Hippo B.V. (http://www.onehippo.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -53,6 +53,7 @@ import org.slf4j.LoggerFactory;
import static org.hippoecm.hst.configuration.ConfigurationUtils.isSupportedSchemeNotMatchingResponseCode;
import static org.hippoecm.hst.configuration.ConfigurationUtils.isValidContextPath;
import static org.hippoecm.hst.configuration.ConfigurationUtils.supportedSchemeNotMatchingResponseCodesAsString;
+import static org.hippoecm.hst.configuration.HstNodeTypes.MOUNT_PROPERTY_IS_SITE;

public class MountService implements ContextualizableMount, MutableMount {

@@ -179,9 +180,6 @@ public class MountService implements ContextualizableMount, MutableMount {
*/
private boolean contextPathInUrl;

- // by default, isSite = true
- private boolean isSite = true;
-
/**
* whether the port number should be in the url.
*/
@@ -436,10 +434,8 @@ public class MountService implements ContextualizableMount, MutableMount {
this.isMapped = parent.isMapped();
}

- if(mount.getValueProvider().hasProperty(HstNodeTypes.MOUNT_PROPERTY_IS_SITE)) {
- this.isSite = mount.getValueProvider().getBoolean(HstNodeTypes.MOUNT_PROPERTY_IS_SITE);
- } else if(parent != null) {
- this.isSite = parent.isSite();
+ if(mount.getValueProvider().hasProperty(MOUNT_PROPERTY_IS_SITE)) {
+ log.warn("Property '{}' has been deprecated and can be removed.", MOUNT_PROPERTY_IS_SITE);
}

if(mount.getValueProvider().hasProperty(HstNodeTypes.MOUNT_PROPERTY_NAMEDPIPELINE)) {
@@ -789,8 +785,14 @@ public class MountService implements ContextualizableMount, MutableMount {
return showPort;
}

+ /**
+ * @deprecated Since 4.0.0 (CMS 11.0.0)
+ */
+ @Deprecated
+ @Override
public boolean isSite() {
- return isSite;
+ log.warn("Mount#isSite has been deprecated.");
+ return false;
}

@Deprecated


=====================================
components/core/src/main/java/org/hippoecm/hst/core/container/SecurityValve.java
=====================================
--- a/components/core/src/main/java/org/hippoecm/hst/core/container/SecurityValve.java
+++ b/components/core/src/main/java/org/hippoecm/hst/core/container/SecurityValve.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2008-2013 Hippo B.V. (http://www.onehippo.com)
+ * Copyright 2008-2016 Hippo B.V. (http://www.onehippo.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -97,7 +97,7 @@ public class SecurityValve extends AbstractBaseOrderableValve {
Mount destLinkMount = resolvedMount.getMount();

try {
- if (!destLinkMount.isSite()) {
+ if (!destLinkMount.isMapped()) {
Mount siteMount = requestContext.getMount(ContainerConstants.MOUNT_ALIAS_SITE);

if (siteMount != null) {


=====================================
components/core/src/main/java/org/hippoecm/hst/core/linking/HstLinkImpl.java
=====================================
--- a/components/core/src/main/java/org/hippoecm/hst/core/linking/HstLinkImpl.java
+++ b/components/core/src/main/java/org/hippoecm/hst/core/linking/HstLinkImpl.java
@@ -281,14 +281,6 @@ public class HstLinkImpl implements HstLink {
if (subPath != null) {
// subPath is allowed to be empty ""
path += subPathDelimeter + subPath;
- } else if (mount != null && !mount.isSite()) {
- // mount is configured to support subPath: Include the PATH_SUBPATH_DELIMITER for locations that that would be excluded by virtualhosts configuration
- // like resources ending on .jpg or .pdf etc
- if (mount.getVirtualHost().getVirtualHosts().isHstFilterExcludedPath(path)) {
- // path should not be excluded for hst request processing because for example it is a REST call for a binary. Add the PATH_SUBPATH_DELIMITER
- // to avoid this
- path += subPathDelimeter;
- }
}

HstContainerURL navURL = requestContext.getContainerURLProvider().createURL(mount, requestContext.getBaseURL(), path);


=====================================
components/core/src/main/java/org/hippoecm/hst/site/request/MountDecoratorImpl.java
=====================================
--- a/components/core/src/main/java/org/hippoecm/hst/site/request/MountDecoratorImpl.java
+++ b/components/core/src/main/java/org/hippoecm/hst/site/request/MountDecoratorImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2011-2015 Hippo B.V. (http://www.onehippo.com)
+ * Copyright 2011-2016 Hippo B.V. (http://www.onehippo.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -366,6 +366,10 @@ public class MountDecoratorImpl implements MountDecorator {
return delegatee.isSessionStateful();
}

+ /**
+ * @deprecated Since 4.0.0 (CMS 11.0.0)
+ */
+ @Deprecated
@Override
public boolean isSite() {
return delegatee.isSite();


=====================================
toolkit-resources/addon/toolkit-cnd/cnd/src/main/resources/hst-types.cnd
=====================================
--- a/toolkit-resources/addon/toolkit-cnd/cnd/src/main/resources/hst-types.cnd
+++ b/toolkit-resources/addon/toolkit-cnd/cnd/src/main/resources/hst-types.cnd
@@ -316,8 +316,7 @@
- hst:pagenotfound (string)
- hst:locale (string)
- hst:versioninpreviewheader (boolean)
-// when false, links that would normally be excluded for hst request
-// processing (for example .pdf) get a ./ appended automatically
+// hst:isSite property deprecated and not used any more
- hst:isSite (boolean)
- hst:authenticated (boolean)
- hst:roles (string) multiple



View it on GitLab: https://code.onehippo.org/cms-community/hippo-site-toolkit/compare/f053edb70ed35a20ed8cd52d59ac540b1bfa2e04...1ff3a32aef43982c3c5f13f4822313325c3d3d0e
Ard Schrijvers
2016-06-06 09:18:19 UTC
Permalink
Ard Schrijvers pushed to branch master at cms-community / hippo-site-toolkit


Commits:
f6a51662 by Ard Schrijvers at 2016-06-01T13:10:14+02:00
HSTTWO-3686 improved diagnostics output by showing including all (non cleanup) valve.

Note the implementation looks a bit odd with the finally stopping only the last task, but I did not
find another way with the pattern that each valve calls 'invokeNext' except the last one. Also of course,
code wise, every valve its diagnostics output should be nested inside its preceding valve because a valve
invokes the next valve. However, I did not want a deep nested HDC output where every valve wraps the time
of another valve. Hence, the code change was done as it is checked in.

- - - - -
b6a57d56 by Ard Schrijvers at 2016-06-06T11:17:54+02:00
HSTTWO-3686 Reintegrate feature/HSTTWO-3686

- - - - -


2 changed files:

- components/core/src/main/java/org/hippoecm/hst/core/container/HstSitePipeline.java
- components/core/src/main/java/org/hippoecm/hst/core/container/PageCachingValve.java


Changes:

=====================================
components/core/src/main/java/org/hippoecm/hst/core/container/HstSitePipeline.java
=====================================
--- a/components/core/src/main/java/org/hippoecm/hst/core/container/HstSitePipeline.java
+++ b/components/core/src/main/java/org/hippoecm/hst/core/container/HstSitePipeline.java
@@ -31,6 +31,8 @@ import org.apache.commons.lang.StringUtils;
import org.hippoecm.hst.core.internal.HstMutableRequestContext;
import org.hippoecm.hst.core.order.ObjectOrderer;
import org.hippoecm.hst.core.request.HstRequestContext;
+import org.hippoecm.hst.diagnosis.HDC;
+import org.hippoecm.hst.diagnosis.Task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@@ -150,7 +152,7 @@ public class HstSitePipeline implements Pipeline
}
}

- invokeValves(requestContainerConfig, requestContext, servletRequest, servletResponse, mergedProcessingValves);
+ invokeValves(requestContainerConfig, requestContext, mergedProcessingValves, true);
}

public void cleanup(HstContainerConfig requestContainerConfig, HstRequestContext requestContext, HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws ContainerException {
@@ -162,12 +164,13 @@ public class HstSitePipeline implements Pipeline
}
}

- invokeValves(requestContainerConfig, requestContext, servletRequest, servletResponse, mergedCleanupValves);
+ invokeValves(requestContainerConfig, requestContext, mergedCleanupValves, false);
}

- private void invokeValves(HstContainerConfig requestContainerConfig, HstRequestContext requestContext, HttpServletRequest servletRequest, HttpServletResponse servletResponse, Valve [] valves) throws ContainerException {
+ private void invokeValves(final HstContainerConfig requestContainerConfig, final HstRequestContext requestContext,
+ final Valve [] valves, final boolean withDiagnostics) throws ContainerException {
if (valves != null && valves.length > 0) {
- new Invocation(requestContainerConfig, requestContext, valves).invokeNext();
+ new Invocation(requestContainerConfig, requestContext, valves, withDiagnostics).invokeNext();
}
}

@@ -246,6 +249,7 @@ public class HstSitePipeline implements Pipeline
{

private final Valve[] valves;
+ private boolean withDiagnostics;

private final HstContainerConfig requestContainerConfig;
private HstComponentWindow rootComponentWindow;
@@ -254,11 +258,19 @@ public class HstSitePipeline implements Pipeline
private final PageCacheContext pageCacheContext = new PageCacheContextImpl();

private int at = 0;
+ private Task pipelineTask;

- public Invocation(HstContainerConfig requestContainerConfig, HstRequestContext requestContext, Valve[] valves) {
+ public Invocation(final HstContainerConfig requestContainerConfig, final HstRequestContext requestContext,
+ final Valve[] valves) {
+ this(requestContainerConfig, requestContext, valves, false);
+ }
+
+ public Invocation(final HstContainerConfig requestContainerConfig, final HstRequestContext requestContext,
+ final Valve[] valves, final boolean withDiagnostics) {
this.requestContainerConfig = requestContainerConfig;
this.requestContext = requestContext;
this.valves = valves;
+ this.withDiagnostics = withDiagnostics;
}

public void invokeNext() throws ContainerException {
@@ -266,7 +278,20 @@ public class HstSitePipeline implements Pipeline
{
Valve next = valves[at];
at++;
- next.invoke(this);
+ try {
+ if (HDC.isStarted() && withDiagnostics) {
+ if (pipelineTask != null) {
+ pipelineTask.stop();
+ }
+ pipelineTask = HDC.getCurrentTask().startSubtask("Invoke Valve " +next.getClass().getName());
+ }
+ next.invoke(this);
+ } finally {
+ if (pipelineTask != null) {
+ pipelineTask.stop();
+ pipelineTask = null;
+ }
+ }
}
}



=====================================
components/core/src/main/java/org/hippoecm/hst/core/container/PageCachingValve.java
=====================================
--- a/components/core/src/main/java/org/hippoecm/hst/core/container/PageCachingValve.java
+++ b/components/core/src/main/java/org/hippoecm/hst/core/container/PageCachingValve.java
@@ -64,16 +64,9 @@ public class PageCachingValve extends AbstractBaseOrderableValve {
context.invokeNext();
return;
}
-
- Task task = null;
-
try {
- if (HDC.isStarted()) {
- task = HDC.getCurrentTask().startSubtask("PageCachingValve");
- }

appendRequestInfoToCacheKey(context);
-
HstPageInfo pageInfo = getPageInfoFromCacheOrBuild(context);

if (pageInfo == null) {
@@ -85,10 +78,6 @@ public class PageCachingValve extends AbstractBaseOrderableValve {
throw new ContainerException("Cache exception : ", e);
} catch (Exception e) {
throw new ContainerException(e);
- } finally {
- if (task != null) {
- task.stop();
- }
}
}




View it on GitLab: https://code.onehippo.org/cms-community/hippo-site-toolkit/compare/3b930966a6351b85f3d5915699faea90bba2aac2...b6a57d56d60c859029a809dd4b1621d69733a9d0
Oscar Scholten
2016-06-06 09:53:38 UTC
Permalink
Oscar Scholten pushed to branch feature/chinese-translation at cms-community / hippo-cms-translations


Commits:
3e7f9e07 by Tobias Jeger at 2016-06-06T11:07:28+02:00
HIPPLUG-1309 Update registry for new label in selections plugin

- - - - -
3f1f4846 by Oscar Scholten at 2016-06-06T11:52:50+02:00
CMS-10139 Merge master changes into feature/chinese-translation

- - - - -


2 changed files:

- selections/resources/org/onehippo/forge/selection/frontend/plugin/DynamicMultiSelectPlugin.properties
- selections/resources/org/onehippo/forge/selection/frontend/plugin/DynamicMultiSelectPlugin.registry.json


Changes:

=====================================
selections/resources/org/onehippo/forge/selection/frontend/plugin/DynamicMultiSelectPlugin.properties
=====================================
--- a/selections/resources/org/onehippo/forge/selection/frontend/plugin/DynamicMultiSelectPlugin.properties
+++ b/selections/resources/org/onehippo/forge/selection/frontend/plugin/DynamicMultiSelectPlugin.properties
@@ -1,2 +1,3 @@
-#Wed Apr 20 11:10:49 CEST 2016
+#Mon Jun 06 11:02:50 CEST 2016
+select=Select all
unselect=Deselect all


=====================================
selections/resources/org/onehippo/forge/selection/frontend/plugin/DynamicMultiSelectPlugin.registry.json
=====================================
--- a/selections/resources/org/onehippo/forge/selection/frontend/plugin/DynamicMultiSelectPlugin.registry.json
+++ b/selections/resources/org/onehippo/forge/selection/frontend/plugin/DynamicMultiSelectPlugin.registry.json
@@ -4,6 +4,14 @@
"unselect" : {
"status" : "CLEAN",
"locales" : null
+ },
+ "select" : {
+ "status" : "ADDED",
+ "locales" : {
+ "de" : "UNRESOLVED",
+ "fr" : "UNRESOLVED",
+ "nl" : "UNRESOLVED"
+ }
}
}
}
\ No newline at end of file



View it on GitLab: https://code.onehippo.org/cms-community/hippo-cms-translations/compare/d0e1b8f27faf322fb2bd93111676ba7b2b2ead26...3f1f48467d50a8f5b394872929b375ed6ca68ac6
Michiel Eggermont
2016-06-06 10:01:39 UTC
Permalink
Michiel Eggermont pushed to branch master at cms-community / hippo-essentials


Commits:
ba0a28c9 by Bert Leunis at 2016-05-13T12:07:45+02:00
ESSENTIALS-784 removed copyright header from Resource template file

- - - - -
e71c887a by Michiel Eggermont at 2016-06-06T12:00:02+02:00
Reintegrate bugfix/ESSENTIALS-784

- - - - -


1 changed file:

- plugins/rest-services/src/main/resources/BeanNameResource.txt


Changes:

=====================================
plugins/rest-services/src/main/resources/BeanNameResource.txt
=====================================
--- a/plugins/rest-services/src/main/resources/BeanNameResource.txt
+++ b/plugins/rest-services/src/main/resources/BeanNameResource.txt
@@ -1,19 +1,3 @@
-/*
- * Copyright 2014 Hippo B.V. (http://www.onehippo.com)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
package {{restPackage}};

import javax.servlet.http.HttpServletRequest;
@@ -39,26 +23,22 @@ import {{fullQualifiedName}};
@Path("/{{beanName}}/")
public class {{beanName}}Resource extends BaseRestResource {

-
@GET
@Path("/")
public Pageable<{{beanName}}> index(@Context HttpServletRequest request) {
return findBeans(new DefaultRestContext(this, request), {{beanName}}.class);
}

-
@GET
@Path("/page/{page}")
public Pageable<{{beanName}}> page(@Context HttpServletRequest request, @PathParam("page") int page) {
return findBeans(new DefaultRestContext(this, request, page, DefaultRestContext.PAGE_SIZE), {{beanName}}.class);
}

-
@GET
@Path("/page/{page}/{pageSize}")
public Pageable<{{beanName}}> pageForSize(@Context HttpServletRequest request, @PathParam("page") int page, @PathParam("pageSize") int pageSize) {
return findBeans(new DefaultRestContext(this, request, page, pageSize), {{beanName}}.class);
}

-
}



View it on GitLab: https://code.onehippo.org/cms-community/hippo-essentials/compare/2c9988381a64e175a910b5c384b5a525b3b969cf...e71c887af22b3cb64f70794b82a0e4aac70a9d20
Mathijs den Burger
2016-06-06 14:52:48 UTC
Permalink
Mathijs den Burger pushed to branch bugfix/CHANNELMGR-725 at cms-community / hippo-addon-channel-manager


Commits:
e89bd9e8 by Mathijs den Burger at 2016-06-06T16:49:41+02:00
CHANNELMGR-725 Simplified/clarified code

Renamed deleteComponentProperties to destroyComponentPropertiesWindow
which is more explicit.

The event after deleting a component succeeded or failed was
generated in two places (both the success and failure case). We
now generate it in one place: the finally handler.

- - - - -
4ce3cd67 by Mathijs den Burger at 2016-06-06T16:52:27+02:00
CHANNELMGR-725 Don't fetch a .json property of an undefined record

- - - - -


3 changed files:

- frontend-ng/src/angularjs/channel/hippoIframe/hippoIframe.controller.js
- frontend-ng/src/angularjs/channel/page/pageStructure.service.js
- frontend/src/main/resources/org/onehippo/cms7/channelmanager/channeleditor/ChannelEditor.js


Changes:

=====================================
frontend-ng/src/angularjs/channel/hippoIframe/hippoIframe.controller.js
=====================================
--- a/frontend-ng/src/angularjs/channel/hippoIframe/hippoIframe.controller.js
+++ b/frontend-ng/src/angularjs/channel/hippoIframe/hippoIframe.controller.js
@@ -109,11 +109,8 @@ export class HippoIframeCtrl {

_doDelete(componentId) {
return () => this.PageStructureService.removeComponentById(componentId)
- .then(
- ({ oldContainer, newContainer }) => this.DragDropService.replaceContainer(oldContainer, newContainer),
- // inform extjs to delete the component properties dialog if deletion fails
- () => this.CmsService.publish('delete-component-properties')
- );
+ .then(({ oldContainer, newContainer }) => this.DragDropService.replaceContainer(oldContainer, newContainer))
+ .finally(() => this.CmsService.publish('destroy-component-properties-window'));
}

_confirmDelete(selectedComponent) {


=====================================
frontend-ng/src/angularjs/channel/page/pageStructure.service.js
=====================================
--- a/frontend-ng/src/angularjs/channel/page/pageStructure.service.js
+++ b/frontend-ng/src/angularjs/channel/page/pageStructure.service.js
@@ -215,7 +215,6 @@ export class PageStructureService {

_onAfterRemoveComponent() {
this.ChannelService.recordOwnChange();
- this.CmsService.publish('delete-component-properties');
}

getContainerByIframeElement(containerIFrameElement) {


=====================================
frontend/src/main/resources/org/onehippo/cms7/channelmanager/channeleditor/ChannelEditor.js
=====================================
--- a/frontend/src/main/resources/org/onehippo/cms7/channelmanager/channeleditor/ChannelEditor.js
+++ b/frontend/src/main/resources/org/onehippo/cms7/channelmanager/channeleditor/ChannelEditor.js
@@ -47,7 +47,7 @@
this.iframeToHost.subscribe('channel-changed-in-angular', this._reloadChannels, this);
this.iframeToHost.subscribe('switch-channel', this._setChannel, this);
this.iframeToHost.subscribe('show-component-properties', this._showComponentProperties, this);
- this.iframeToHost.subscribe('delete-component-properties', this._deleteComponentPropertiesWindow, this);
+ this.iframeToHost.subscribe('destroy-component-properties-window', this._destroyComponentPropertiesWindow, this);
this.iframeToHost.subscribe('show-picker', this._showPicker, this);
this.iframeToHost.subscribe('open-content', this._openDocumentEditor, this);
this.iframeToHost.subscribe('show-mask', this._maskSurroundings, this);
@@ -81,9 +81,11 @@

_syncChannel: function() {
this._reloadChannels().when(function (channelStore) {
- var id = this.selectedChannel.id;
- this.selectedChannel = channelStore.getById(id).json;
- if (!this.selectedChannel) {
+ var id = this.selectedChannel.id,
+ channelRecord = channelStore.getById(id);
+ if (channelRecord) {
+ this.selectedChannel = channelRecord.json;
+ } else {
// we may just have created the preview config of this channel
this.selectedChannel = channelStore.getById(id + '-preview').json;
}
@@ -105,11 +107,11 @@
},

_onComponentLocked: function(data) {
- this._deleteComponentPropertiesWindow();
+ this._destroyComponentPropertiesWindow();
this.hostToIFrame.publish('reload-channel', data);
},

- _deleteComponentPropertiesWindow: function() {
+ _destroyComponentPropertiesWindow: function() {
if (this.componentPropertiesWindow) {
this.componentPropertiesWindow.destroy();
}
@@ -146,7 +148,7 @@
_initialize: function(channel) {
this.selectedChannel = channel;

- this._deleteComponentPropertiesWindow();
+ this._destroyComponentPropertiesWindow();

// update breadcrumb
this.setTitle(channel.name);
@@ -179,7 +181,7 @@
hide: function() {
this.hostToIFrame.publish('hide-component-properties');
},
- close: this._deleteComponentPropertiesWindow,
+ close: this._destroyComponentPropertiesWindow,
scope: this
}
});



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/066e62c8544a3f2987c2d22b3fdf2b94050b3b49...4ce3cd67026120be2762667d0ffd5fca17ae5275
Ard Schrijvers
2016-06-07 08:23:52 UTC
Permalink
Ard Schrijvers pushed to branch master at cms-community / hippo-site-toolkit


Commits:
220e754a by Woonsan Ko at 2016-06-06T18:26:37-04:00
HSTTWO-3696: adding max cache size in CachingObjectConverter to avoid potential OOME

- - - - -
3cf46d26 by Ard Schrijvers at 2016-06-07T10:22:12+02:00
HSTTWO-3696 organize imports and correct copyright years

- - - - -


3 changed files:

- components/core/src/main/java/org/hippoecm/hst/site/request/CachingObjectConverter.java
- components/core/src/main/resources/org/hippoecm/hst/site/container/SpringComponentManager.properties
- components/core/src/test/java/org/hippoecm/hst/site/request/CachingObjectConverterTest.java


Changes:

=====================================
components/core/src/main/java/org/hippoecm/hst/site/request/CachingObjectConverter.java
=====================================
--- a/components/core/src/main/java/org/hippoecm/hst/site/request/CachingObjectConverter.java
+++ b/components/core/src/main/java/org/hippoecm/hst/site/request/CachingObjectConverter.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2013 Hippo B.V. (http://www.onehippo.com)
+ * Copyright 2013-2016 Hippo B.V. (http://www.onehippo.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,7 +15,6 @@
*/
package org.hippoecm.hst.site.request;

-import java.util.HashMap;
import java.util.Map;

import javax.jcr.Node;
@@ -24,11 +23,13 @@ import javax.jcr.Session;

import com.google.common.base.Optional;

+import org.apache.commons.collections.map.LRUMap;
import org.apache.commons.lang.StringUtils;
import org.hippoecm.hst.content.beans.ObjectBeanManagerException;
import org.hippoecm.hst.content.beans.manager.ObjectConverter;
import org.hippoecm.hst.content.beans.manager.ObjectConverterAware;
import org.hippoecm.hst.content.beans.standard.HippoBean;
+import org.hippoecm.hst.site.HstServices;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@@ -41,11 +42,19 @@ class CachingObjectConverter implements ObjectConverter {

private static final Logger log = LoggerFactory.getLogger(CachingObjectConverter.class);

+ private static final int DEFAULT_MAX_CACHE_SIZE = 100;
+
private final ObjectConverter delegatee;

- private final ObjectCache objectCache = new ObjectCache();
+ private final ObjectCache objectCache;
+
+ protected CachingObjectConverter(final ObjectConverter delegatee) {
+ this(delegatee, HstServices.isAvailable() ? HstServices.getComponentManager().getContainerConfiguration()
+ .getInt("caching.object.converter.maxsize", DEFAULT_MAX_CACHE_SIZE) : DEFAULT_MAX_CACHE_SIZE);
+ }

- protected CachingObjectConverter(ObjectConverter delegatee) {
+ protected CachingObjectConverter(final ObjectConverter delegatee, final int maxCacheSize) {
+ objectCache = new ObjectCache(maxCacheSize);
this.delegatee = delegatee;
}

@@ -148,7 +157,12 @@ class CachingObjectConverter implements ObjectConverter {
}

private class ObjectCache {
- private final Map<CacheKey, Optional<Object>> cache = new HashMap<CacheKey, Optional<Object>>();
+
+ private final Map<CacheKey, Optional<Object>> cache;
+
+ ObjectCache(final int maxSize) {
+ cache = new LRUMap(maxSize);
+ }

public Optional<Object> get(final CacheKey key) {
return cache.get(key);


=====================================
components/core/src/main/resources/org/hippoecm/hst/site/container/SpringComponentManager.properties
=====================================
--- a/components/core/src/main/resources/org/hippoecm/hst/site/container/SpringComponentManager.properties
+++ b/components/core/src/main/resources/org/hippoecm/hst/site/container/SpringComponentManager.properties
@@ -250,6 +250,7 @@ esi.processing.condition.async.components = true
cms.preview.security.delegation.enabled = true

object.converter.caching = true
+caching.object.converter.maxsize = 100

# If set to true, a fallback to the root WebApplicationContext
component.fallback.root.web.application.context = false


=====================================
components/core/src/test/java/org/hippoecm/hst/site/request/CachingObjectConverterTest.java
=====================================
--- a/components/core/src/test/java/org/hippoecm/hst/site/request/CachingObjectConverterTest.java
+++ b/components/core/src/test/java/org/hippoecm/hst/site/request/CachingObjectConverterTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2013 Hippo B.V. (http://www.onehippo.com)
+ * Copyright 2013-2016 Hippo B.V. (http://www.onehippo.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,27 +26,37 @@ import org.junit.Test;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.reset;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;

public class CachingObjectConverterTest {

+ private static final int NODE_SIZE = 10;
+
private ObjectConverter objectConverter;
- private Node node;
+ private Node [] nodes;
private Session session;

@Before
public void setUp() throws Exception {
objectConverter = createMock(ObjectConverter.class);
- node = createMock(Node.class);
- session = createMock(Session.class);
+ nodes = new Node[NODE_SIZE];

+ session = createMock(Session.class);
expect(session.getUserID()).andReturn("admin").anyTimes();
- expect(node.getSession()).andReturn(session).anyTimes();
+
+ for (int i = 0; i < NODE_SIZE; i++) {
+ nodes[i] = createMock(Node.class);
+ expect(nodes[i].getSession()).andReturn(session).anyTimes();
+ }
}

@Test
public void testThatNullIsReturnedTwiceWhenAskingForANullObject() throws Exception {
+ Node node = nodes[0];
expect(node.getPath()).andReturn("/null").anyTimes();
expect(objectConverter.getObject(node)).andReturn(null).once();

@@ -59,14 +69,9 @@ public class CachingObjectConverterTest {
assertNull(obj2);
}

- private CachingObjectConverter createCachingObjectConverter() {
- replay(session, node, objectConverter);
-
- return new CachingObjectConverter(objectConverter);
- }
-
@Test
public void testThatCachingObjectConverterOnlyDelegatesToDelegateeOncePerNode() throws Exception {
+ Node node = nodes[0];
expect(node.getPath()).andReturn("/content/documents").anyTimes();
HippoFolder folderBean = new HippoFolder();
expect(objectConverter.getObject(node)).andReturn(folderBean).once();
@@ -79,4 +84,110 @@ public class CachingObjectConverterTest {
assertEquals(folderBean, obj1);
assertEquals(folderBean, obj2);
}
+
+ @Test
+ public void testCacheSize_withDefaults() throws Exception {
+ HippoFolder [] folderBeans = new HippoFolder[NODE_SIZE];
+
+ for (int i = 0; i < NODE_SIZE; i++) {
+ Node node = nodes[i];
+ expect(node.getPath()).andReturn("/content/documents/folder-" + i).anyTimes();
+ }
+
+ for (int i = 0; i < NODE_SIZE; i++) {
+ folderBeans[i] = new HippoFolder();
+ expect(objectConverter.getObject(nodes[i])).andReturn(folderBeans[i]).anyTimes();
+ }
+
+ CachingObjectConverter cachingObjectConverter = createCachingObjectConverter();
+
+ Object [] objects = new Object[NODE_SIZE];
+
+ for (int i = 0; i < NODE_SIZE; i++) {
+ objects[i] = cachingObjectConverter.getObject(nodes[i]);
+ assertEquals(folderBeans[i], objects[i]);
+ }
+
+ // Even if it's reset to return new HippoFolder objects from here,
+ // because cachingObjectConverter is supposed to have cached all for the nodes,
+ // it should return the same object as above in the end.
+
+ reset(objectConverter);
+
+ for (int i = 0; i < NODE_SIZE; i++) {
+ folderBeans[i] = new HippoFolder();
+ expect(objectConverter.getObject(nodes[i])).andReturn(folderBeans[i]).anyTimes();
+ }
+
+ replay(objectConverter);
+
+ for (int i = 0; i < NODE_SIZE; i++) {
+ Object obj = cachingObjectConverter.getObject(nodes[i]);
+ assertSame(objects[i], obj);
+ }
+ }
+
+ @Test
+ public void testCacheSize_withCacheSizeHalfOfNodeSize() throws Exception {
+ HippoFolder [] folderBeans = new HippoFolder[NODE_SIZE];
+
+ for (int i = 0; i < NODE_SIZE; i++) {
+ Node node = nodes[i];
+ expect(node.getPath()).andReturn("/content/documents/folder-" + i).anyTimes();
+ }
+
+ for (int i = 0; i < NODE_SIZE; i++) {
+ folderBeans[i] = new HippoFolder();
+ expect(objectConverter.getObject(nodes[i])).andReturn(folderBeans[i]).anyTimes();
+ }
+
+ final int cacheSize = NODE_SIZE / 2;
+ CachingObjectConverter cachingObjectConverter = createCachingObjectConverter(cacheSize);
+
+ Object [] objects = new Object[NODE_SIZE];
+
+ for (int i = 0; i < NODE_SIZE; i++) {
+ objects[i] = cachingObjectConverter.getObject(nodes[i]);
+ assertEquals(folderBeans[i], objects[i]);
+ }
+
+ // Now when it's reset to return new HippoFolder objects from here,
+ // because cachingObjectConverter is supposed to have cached half of the node size only,
+ // it should return the same objects for the last half, but different objects for the rest.
+
+ reset(objectConverter);
+
+ for (int i = 0; i < NODE_SIZE; i++) {
+ folderBeans[i] = new HippoFolder();
+ expect(objectConverter.getObject(nodes[i])).andReturn(folderBeans[i]).anyTimes();
+ }
+
+ replay(objectConverter);
+
+ for (int i = NODE_SIZE - cacheSize; i < NODE_SIZE; i++) {
+ Object obj = cachingObjectConverter.getObject(nodes[i]);
+ assertSame(objects[i], obj);
+ }
+
+ for (int i = 0; i < NODE_SIZE - cacheSize; i++) {
+ Object obj = cachingObjectConverter.getObject(nodes[i]);
+ assertNotSame(objects[i], obj);
+ }
+ }
+
+ private CachingObjectConverter createCachingObjectConverter() {
+ return createCachingObjectConverter(-1);
+ }
+
+ private CachingObjectConverter createCachingObjectConverter(final int maxCacheSize) {
+ replay(session, objectConverter);
+ replay((Object []) nodes);
+
+ if (maxCacheSize >= 0) {
+ return new CachingObjectConverter(objectConverter, maxCacheSize);
+ } else {
+ return new CachingObjectConverter(objectConverter);
+ }
+ }
+
}



View it on GitLab: https://code.onehippo.org/cms-community/hippo-site-toolkit/compare/eecd711ce1455eec3093196d86aadeaefd430874...3cf46d265d1be0759736a33963536c6841f26e7c
Ard Schrijvers
2016-06-09 13:29:30 UTC
Permalink
Ard Schrijvers pushed to branch master at cms-community / hippo-site-toolkit


Commits:
10c96269 by Ard Schrijvers at 2016-06-09T15:28:39+02:00
HSTTWO-3701 do allow pathInfo to start with http:, https:, etc.

There is no reason why it should not be allowed

- - - - -
6c7185e6 by Ard Schrijvers at 2016-06-09T15:29:08+02:00
HSTTWO-3701 Reintegrate bugfix/HSTTWO-3701

- - - - -


2 changed files:

- client/src/main/java/org/hippoecm/hst/tag/HstLinkTag.java
- client/src/test/java/org/hippoecm/hst/tag/TestHstLinkTag.java


Changes:

=====================================
client/src/main/java/org/hippoecm/hst/tag/HstLinkTag.java
=====================================
--- a/client/src/main/java/org/hippoecm/hst/tag/HstLinkTag.java
+++ b/client/src/main/java/org/hippoecm/hst/tag/HstLinkTag.java
@@ -46,7 +46,6 @@ import org.hippoecm.hst.utils.TagUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

-import static org.hippoecm.hst.util.PathUtils.FULLY_QUALIFIED_URL_PREFIXES;
import static org.hippoecm.hst.utils.TagUtils.getQueryString;
import static org.hippoecm.hst.utils.TagUtils.writeOrSetVar;

@@ -249,16 +248,7 @@ public class HstLinkTag extends ParamContainerTag {
pathInfo = path;
}

- String before = pathInfo;
- String result = stripForbiddenPrefixes(pathInfo);
- while (!result.equals(before)) {
- // keep stripping
- log.debug("Stripping illegal prefixes from '{}'", pathInfo);
- before = result;
- result = stripForbiddenPrefixes(result);
- }
-
- link = reqContext.getHstLinkCreator().create(result, mount);
+ link = reqContext.getHstLinkCreator().create(pathInfo, mount);
}

if(link == null && this.siteMapItemRefId != null) {
@@ -323,15 +313,6 @@ public class HstLinkTag extends ParamContainerTag {
}
}

- private String stripForbiddenPrefixes(String pathInfo) {
- for (String fullyQualifiedUrlPrefix : FULLY_QUALIFIED_URL_PREFIXES) {
- if (pathInfo.startsWith(fullyQualifiedUrlPrefix)) {
- return pathInfo.substring(fullyQualifiedUrlPrefix.length());
- }
- }
- return pathInfo;
- }
-
private void mergeParameters(final String queryString, final Map<String, List<String>> parameters) {
String[] paramPairs = queryString.split("&");
for (String paramPair : paramPairs) {


=====================================
client/src/test/java/org/hippoecm/hst/tag/TestHstLinkTag.java
=====================================
--- a/client/src/test/java/org/hippoecm/hst/tag/TestHstLinkTag.java
+++ b/client/src/test/java/org/hippoecm/hst/tag/TestHstLinkTag.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2015 Hippo B.V. (http://www.onehippo.com)
+ * Copyright 2015-2016 Hippo B.V. (http://www.onehippo.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -245,44 +245,31 @@ public class TestHstLinkTag {
}

@Test
- public void hst_link_by_path_with_illegal_prefix_gets_prefix_stripped() throws Exception {
+ public void hst_link_by_path_that_starts_with_https() throws Exception {
final String testPath = "http://www.onehippo.org/css/style.css?foo=bar&page=3";
init(testPath);
-
- hstLink = new HstLinkImpl(testPath, null) {
- @Override
- public String toUrlForm(final HstRequestContext requestContext, final boolean fullyQualified) {
- return "www.onehippo.org/css/style.css";
- }
- };
- expect(linkCreator.create(eq("www.onehippo.org/css/style.css"), isNull())).andReturn(hstLink).once();
+ expect(linkCreator.create(eq("http://www.onehippo.org/css/style.css"), isNull())).andReturn(hstLink).once();
replay(resolvedMount, linkCreator);

linkTag.setEscapeXml(false);
linkTag.doEndTag();
String link = (String) pageContext.getAttribute("result");
- assertEquals("Illegal prefix should be removed", "www.onehippo.org/css/style.css?foo=bar&page=3", link);
+ assertEquals("http://www.onehippo.org/css/style.css?foo=bar&page=3", link);
verify(linkCreator);
}

@Test
- public void hst_link_by_path_with_illegal_prefixes_gets_prefixes_stripped() throws Exception {
+ public void hst_link_by_path_that_starts_with_multiple_https_http_prefixes() throws Exception {
final String testPath = "http:http://https://www.onehippo.org/css/style.css?foo=bar&page=3";
init(testPath);

- hstLink = new HstLinkImpl(testPath, null) {
- @Override
- public String toUrlForm(final HstRequestContext requestContext, final boolean fullyQualified) {
- return "www.onehippo.org/css/style.css";
- }
- };
- expect(linkCreator.create(eq("www.onehippo.org/css/style.css"), isNull())).andReturn(hstLink).once();
+ expect(linkCreator.create(eq("http:http://https://www.onehippo.org/css/style.css"), isNull())).andReturn(hstLink).once();
replay(resolvedMount, linkCreator);

linkTag.setEscapeXml(false);
linkTag.doEndTag();
String link = (String) pageContext.getAttribute("result");
- assertEquals("Illegal prefix should be removed", "www.onehippo.org/css/style.css?foo=bar&page=3", link);
+ assertEquals("http:http://https://www.onehippo.org/css/style.css?foo=bar&page=3", link);
verify(linkCreator);
}




View it on GitLab: https://code.onehippo.org/cms-community/hippo-site-toolkit/compare/d3d42ade38acd44d85ed4114be705bc90a7f50aa...6c7185e6d3e7cd7a8ffa0c6dc9d3a0d62776cb30
Ard Schrijvers
2016-06-13 08:21:55 UTC
Permalink
Ard Schrijvers pushed to branch master at cms-community / hippo-site-toolkit


Commits:
6163999e by Ard Schrijvers at 2016-06-11T23:12:11+02:00
HSTTWO-3554 Honoring a TTL when that is set by an HstComponent

When an HstComponent sets an 'Expires' header, make sure the cached page
gets a timeToLive until the page expires. Also note that there was a small
bug in the ESIPageInfoScanningValve resulting in a uncacheable response still
being cached. Hence I changed HstCacheEhCacheImpl#put to first inspect whether the
element to cache is cacheable : If not, put null.

Note that HstPageInfo#isNoCachePresentOrExpiresImmediately was broken wrt the
Expires header because it tried to parse the value as long while the value is actually
in a GMT date format. I fixed this by correctly parsing the date Expires header

Also now use ehcache.getCacheConfiguration().getMaxEntriesLocalDisk() because #getMaxElementsOnDisk
was deprecated and javadoc said getMaxEntriesLocalDisk should be used for non-clustered caches

- - - - -
a3c7a396 by Ard Schrijvers at 2016-06-13T10:21:24+02:00
HSTTWO-3554 Reintegrate feature/HSTTWO-3554

- - - - -


4 changed files:

- components/core/src/main/java/org/hippoecm/hst/cache/HstPageInfo.java
- components/core/src/main/java/org/hippoecm/hst/cache/ehcache/HstCacheEhCacheImpl.java
- components/core/src/main/java/org/hippoecm/hst/core/container/ESIPageInfoScanningValve.java
- components/core/src/main/java/org/hippoecm/hst/core/container/PageCachingValve.java


Changes:

=====================================
components/core/src/main/java/org/hippoecm/hst/cache/HstPageInfo.java
=====================================
--- a/components/core/src/main/java/org/hippoecm/hst/cache/HstPageInfo.java
+++ b/components/core/src/main/java/org/hippoecm/hst/cache/HstPageInfo.java
@@ -1,5 +1,5 @@
/**
- * Copyright 2013 Hippo B.V. (http://www.onehippo.com)
+ * Copyright 2013-2016 Hippo B.V. (http://www.onehippo.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,14 +19,20 @@ import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.Serializable;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
+import java.util.TimeZone;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.james.mime4j.util.MimeUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;

import net.sf.ehcache.constructs.web.Header;
import net.sf.ehcache.constructs.web.PageInfo;
@@ -37,6 +43,8 @@ import net.sf.ehcache.constructs.web.PageInfo;
*/
public class HstPageInfo extends PageInfo {

+ private static final Logger log = LoggerFactory.getLogger(HstPageInfo.class);
+
private static final long serialVersionUID = 1L;

private String characterEncoding;
@@ -87,13 +95,12 @@ public class HstPageInfo extends PageInfo {
isNoCachePresentOrExpiresImmediately = Boolean.TRUE;
} else if ("Expires".equalsIgnoreCase(header.getName())) {
try {
- long expires = Long.parseLong(String.valueOf(header.getValue()));
-
- if (expires <= 0) {
+ final long time = getTime(header);
+ if (time <= System.currentTimeMillis()) {
isNoCachePresentOrExpiresImmediately = Boolean.TRUE;
}
- } catch (NumberFormatException e) {
- // could not parse expires to long, ignore
+ } catch (ParseException e) {
+ log.warn("Could not parse 'Expires' header because has value '{}'.", header.getValue());
}
}
}
@@ -103,6 +110,25 @@ public class HstPageInfo extends PageInfo {
return isNoCachePresentOrExpiresImmediately.booleanValue();
}

+ /**
+ * @return Returns expires in seconds until now if present and otherwise null
+ */
+ public Long getExpiresInSeconds() {
+ final List<Header<? extends Serializable>> headers = getHeaders();
+ for (Header<? extends Serializable> header : headers) {
+ if ("Expires".equalsIgnoreCase(header.getName())) {
+ try {
+ final long time = getTime(header);
+ return (time - System.currentTimeMillis()) / 1000;
+ } catch (ParseException e) {
+ log.warn("Could not parse 'Expires' header because has value '{}'.", header.getValue());
+ return null;
+ }
+ }
+ }
+ return null;
+ }
+
public void writeContent(final HttpServletResponse response) throws IOException
{
byte [] body = this.getUngzippedBody();
@@ -111,4 +137,17 @@ public class HstPageInfo extends PageInfo {
out.write(body);
out.flush();
}
+
+ private long getTime(final Header expiresHeader) throws ParseException {
+ final SimpleDateFormat rfc1123DateFormat = getRFC1123DateFormat();
+ return rfc1123DateFormat.parse(String.valueOf(expiresHeader.getValue())).getTime();
+ }
+
+ static SimpleDateFormat getRFC1123DateFormat() {
+ // header must conform to RFC 1123 date format (please note that milliseconds are lost)
+ final SimpleDateFormat rfc1123DateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.US);
+ rfc1123DateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
+ return rfc1123DateFormat;
+ }
+
}


=====================================
components/core/src/main/java/org/hippoecm/hst/cache/ehcache/HstCacheEhCacheImpl.java
=====================================
--- a/components/core/src/main/java/org/hippoecm/hst/cache/ehcache/HstCacheEhCacheImpl.java
+++ b/components/core/src/main/java/org/hippoecm/hst/cache/ehcache/HstCacheEhCacheImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2008-2015 Hippo B.V. (http://www.onehippo.com)
+ * Copyright 2008-2016 Hippo B.V. (http://www.onehippo.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -85,7 +85,7 @@ public class HstCacheEhCacheImpl implements HstCache {
if (element == null) {
element = createElement(key, null);
put(element);
- } else if (!element.isCacheable() || postCallInvalidationCounter != preCallInvalidationCounter){
+ } else if (postCallInvalidationCounter != preCallInvalidationCounter){
put(createElement(key, null));
} else {
put(element);
@@ -108,6 +108,11 @@ public class HstCacheEhCacheImpl implements HstCache {
}

public void put(CacheElement element) {
+ if (!element.isCacheable()) {
+ final CacheElement uncacheable = createElement(element.getKey(), null);
+ ehcache.put(((CacheElementEhCacheImpl) uncacheable).element);
+ return;
+ }
CacheElementEhCacheImpl cacheElem = (CacheElementEhCacheImpl) element;
ehcache.put(cacheElem.element);
}
@@ -135,7 +140,7 @@ public class HstCacheEhCacheImpl implements HstCache {

public int getMaxSize() {
return new Long(ehcache.getCacheConfiguration().getMaxEntriesLocalHeap()).intValue()
- + ehcache.getCacheConfiguration().getMaxElementsOnDisk();
+ + (int)ehcache.getCacheConfiguration().getMaxEntriesLocalDisk();
}

}


=====================================
components/core/src/main/java/org/hippoecm/hst/core/container/ESIPageInfoScanningValve.java
=====================================
--- a/components/core/src/main/java/org/hippoecm/hst/core/container/ESIPageInfoScanningValve.java
+++ b/components/core/src/main/java/org/hippoecm/hst/core/container/ESIPageInfoScanningValve.java
@@ -22,6 +22,7 @@ import java.util.Map;
import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.StringUtils;
+import org.hippoecm.hst.cache.CacheElement;
import org.hippoecm.hst.cache.HstCache;
import org.hippoecm.hst.cache.HstPageInfo;
import org.hippoecm.hst.cache.UncacheableHstPageInfo;
@@ -128,7 +129,12 @@ public class ESIPageInfoScanningValve extends AbstractBaseOrderableValve {
if (pageInfo.isNoCachePresentOrExpiresImmediately() || pageInfo instanceof UncacheableHstPageInfo) {
pageCache.put(pageCache.createUncacheableElement(pageCacheKey, esiPageInfo));
} else {
- pageCache.put(pageCache.createElement(pageCacheKey, esiPageInfo));
+ final CacheElement elem = pageCache.createElement(pageCacheKey, esiPageInfo);
+ final Long expiresHeader = pageInfo.getExpiresInSeconds();
+ if (expiresHeader != null) {
+ elem.setTimeToLiveSeconds(expiresHeader.intValue());
+ }
+ pageCache.put(elem);
}
}



=====================================
components/core/src/main/java/org/hippoecm/hst/core/container/PageCachingValve.java
=====================================
--- a/components/core/src/main/java/org/hippoecm/hst/core/container/PageCachingValve.java
+++ b/components/core/src/main/java/org/hippoecm/hst/core/container/PageCachingValve.java
@@ -24,8 +24,6 @@ import org.hippoecm.hst.cache.HstCacheException;
import org.hippoecm.hst.cache.HstPageInfo;
import org.hippoecm.hst.cache.UncacheableHstPageInfo;
import org.hippoecm.hst.core.request.HstRequestContext;
-import org.hippoecm.hst.diagnosis.HDC;
-import org.hippoecm.hst.diagnosis.Task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@@ -92,7 +90,7 @@ public class PageCachingValve extends AbstractBaseOrderableValve {
*/
protected HstPageInfo getPageInfoFromCacheOrBuild(final ValveContext context) throws Exception {
final PageCacheKey keyPage = context.getPageCacheContext().getPageCacheKey();
- CacheElement element = pageCache.get(keyPage, new Callable<CacheElement>() {
+ CacheElement element = pageCache.get(keyPage, new Callable<CacheElement>() {
@Override
public CacheElement call() throws Exception {
HstPageInfo pageInfo = createHstPageInfoByInvokingNextValve(context, pageCache.getTimeToLiveSeconds());
@@ -106,7 +104,12 @@ public class PageCachingValve extends AbstractBaseOrderableValve {
return pageCache.createUncacheableElement(keyPage, pageInfo);
} else {
log.debug("Caching request '{}' with keyPage '{}'", context.getServletRequest().getRequestURI(), keyPage);
- return pageCache.createElement(keyPage, pageInfo);
+ final CacheElement elem = pageCache.createElement(keyPage, pageInfo);
+ final Long expiresHeader = pageInfo.getExpiresInSeconds();
+ if (expiresHeader != null) {
+ elem.setTimeToLiveSeconds(expiresHeader.intValue());
+ }
+ return elem;
}
} else {
log.debug("PageInfo was not ok(200). Putting null into cache with keyPage {} ", keyPage);



View it on GitLab: https://code.onehippo.org/cms-community/hippo-site-toolkit/compare/d1af6f1e41f888cba0a34d2d3cf7c3f80e1ed206...a3c7a396be2e7134392601fcb27e1e8bb0178b6c
Mathijs den Burger
2016-06-14 12:34:20 UTC
Permalink
Mathijs den Burger pushed to branch bugfix/CHANNELMGR-740 at cms-community / hippo-addon-channel-manager


Commits:
fc85420c by Mathijs den Burger at 2016-06-14T14:20:30+02:00
CHANNELMGR-740 Add copyright to SVG icon

- - - - -
1d628184 by Mathijs den Burger at 2016-06-14T14:34:11+02:00
CHANNELMGR-740 Tweak width of changes button

The button was not wide enough to accomodate all text, so the
selected version looked a bit unbalanced.

- - - - -


2 changed files:

- frontend-ng/src/images/attention.svg
- frontend-ng/src/styles/_toolbar.scss


Changes:

=====================================
frontend-ng/src/images/attention.svg
=====================================
--- a/frontend-ng/src/images/attention.svg
+++ b/frontend-ng/src/images/attention.svg
@@ -1,5 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!--
+ Copyright 2016 Hippo B.V. (http://www.onehippo.com)
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">


=====================================
frontend-ng/src/styles/_toolbar.scss
=====================================
--- a/frontend-ng/src/styles/_toolbar.scss
+++ b/frontend-ng/src/styles/_toolbar.scss
@@ -88,6 +88,9 @@ md-toolbar.hippo-toolbar {
}

.changes-button {
+ margin-left: 0;
+ margin-right: 4px;
+ padding-right: 20px;
md-icon {
color: $orange-a400;
position: relative;



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/compare/446127f3062b2d54302aeea4309e21dda74d3c99...1d6281849c254d5cae911c9fdb55fc10004f7077
Arent-Jan Banck
2016-06-14 12:43:11 UTC
Permalink
Arent-Jan Banck pushed to branch release/11 at cms-community / hippo-cms-project


Commits:
46a04089 by Arent-Jan Banck at 2016-06-14T14:38:25+02:00
CMS-10167 prepare release hippo-cms7-project-28

- - - - -
acd61033 by Arent-Jan Banck at 2016-06-14T14:41:56+02:00
CMS-10167 prepare for next development iteration

- - - - -


1 changed file:

- pom.xml


Changes:

=====================================
pom.xml
=====================================
--- a/pom.xml
+++ b/pom.xml
@@ -19,7 +19,7 @@

<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms7-project</artifactId>
- <version>28-SNAPSHOT</version>
+ <version>28.1-SNAPSHOT</version>

<name>Hippo CMS7 Project POM</name>
<description>Hippo CMS7 Project POM</description>



View it on GitLab: https://code.onehippo.org/cms-community/hippo-cms-project/compare/5c6ec0ec5cef01a6c76f8400741c56e31b3faca6...acd610338c8918794088eac4cb11d4165a7f2c24
Arent-Jan Banck
2016-06-15 16:13:15 UTC
Permalink
Arent-Jan Banck pushed to branch release/4.0 at cms-community / hippo-repository


Commits:
e197fb1a by Arent-Jan Banck at 2016-06-15T18:11:35+02:00
REPO-1499 prepare release hippo-repository-4.0.0

- - - - -
ef95c9f5 by Arent-Jan Banck at 2016-06-15T18:11:37+02:00
REPO-1499 prepare for next development iteration

- - - - -


22 changed files:

- api/pom.xml
- builtin/pom.xml
- config/pom.xml
- connector/pom.xml
- dependencies/pom.xml
- deprecated/facetsearch/pom.xml
- deprecated/facetselectmirror/pom.xml
- deprecated/pom.xml
- engine/pom.xml
- jaxrs/pom.xml
- modules/pom.xml
- pom.xml
- provider/pom.xml
- resources/pom.xml
- scripts/pom.xml
- servlets/pom.xml
- test/pom.xml
- testcontent/pom.xml
- testutils/pom.xml
- upgrade/pom.xml
- utilities/pom.xml
- workflow/pom.xml


Changes:

=====================================
api/pom.xml
=====================================
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Repository API</name>


=====================================
builtin/pom.xml
=====================================
--- a/builtin/pom.xml
+++ b/builtin/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Repository Builtin workflow</name>


=====================================
config/pom.xml
=====================================
--- a/config/pom.xml
+++ b/config/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Repository Default Configuration</name>


=====================================
connector/pom.xml
=====================================
--- a/connector/pom.xml
+++ b/connector/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Repository Connector</name>


=====================================
dependencies/pom.xml
=====================================
--- a/dependencies/pom.xml
+++ b/dependencies/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Repository Dependencies</name>


=====================================
deprecated/facetsearch/pom.xml
=====================================
--- a/deprecated/facetsearch/pom.xml
+++ b/deprecated/facetsearch/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository-deprecated</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Repository Deprecated Facetsearch</name>


=====================================
deprecated/facetselectmirror/pom.xml
=====================================
--- a/deprecated/facetselectmirror/pom.xml
+++ b/deprecated/facetselectmirror/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository-deprecated</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Repository Deprecated Facetselect Mirror</name>


=====================================
deprecated/pom.xml
=====================================
--- a/deprecated/pom.xml
+++ b/deprecated/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Repository Deprecated</name>


=====================================
engine/pom.xml
=====================================
--- a/engine/pom.xml
+++ b/engine/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Repository Engine</name>


=====================================
jaxrs/pom.xml
=====================================
--- a/jaxrs/pom.xml
+++ b/jaxrs/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Repository JAX-RS Services</name>


=====================================
modules/pom.xml
=====================================
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Repository Modules</name>


=====================================
pom.xml
=====================================
--- a/pom.xml
+++ b/pom.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
- Copyright 2007-2015 Hippo B.V. (http://www.onehippo.com)
+ Copyright 2007-2016 Hippo B.V. (http://www.onehippo.com)

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -26,7 +26,7 @@
<name>Repository</name>
<description>Hippo Repository</description>
<artifactId>hippo-repository</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>pom</packaging>

<inceptionYear>2007</inceptionYear>
@@ -71,10 +71,10 @@
<!-- use root project name for all project modules NOTICE files, should be the same as in the root NOTICE file -->
<notice.project.name>Hippo Repository</notice.project.name>

- <hippo.commons.version>3.0.0-SNAPSHOT</hippo.commons.version>
- <hippo.services.version>3.0.0-SNAPSHOT</hippo.services.version>
- <hippo.services.eventbus.version>3.0.0-SNAPSHOT</hippo.services.eventbus.version>
- <hippo.utilities.version>3.0.0-SNAPSHOT</hippo.utilities.version>
+ <hippo.commons.version>3.0.0</hippo.commons.version>
+ <hippo.services.version>3.0.0</hippo.services.version>
+ <hippo.services.eventbus.version>3.0.0</hippo.services.eventbus.version>
+ <hippo.utilities.version>3.0.0</hippo.utilities.version>
<hippo.jcrdiff.version>1.01.05</hippo.jcrdiff.version>

<!-- Test dependencies -->


=====================================
provider/pom.xml
=====================================
--- a/provider/pom.xml
+++ b/provider/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Repository Provider Module Interface</name>


=====================================
resources/pom.xml
=====================================
--- a/resources/pom.xml
+++ b/resources/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Repository Resources</name>


=====================================
scripts/pom.xml
=====================================
--- a/scripts/pom.xml
+++ b/scripts/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Repository Groovy Scripts</name>


=====================================
servlets/pom.xml
=====================================
--- a/servlets/pom.xml
+++ b/servlets/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Repository Servlets</name>


=====================================
test/pom.xml
=====================================
--- a/test/pom.xml
+++ b/test/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Repository Test</name>


=====================================
testcontent/pom.xml
=====================================
--- a/testcontent/pom.xml
+++ b/testcontent/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Repository Test Content</name>


=====================================
testutils/pom.xml
=====================================
--- a/testutils/pom.xml
+++ b/testutils/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Repository Test Utilities</name>


=====================================
upgrade/pom.xml
=====================================
--- a/upgrade/pom.xml
+++ b/upgrade/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Repository Upgrade</name>


=====================================
utilities/pom.xml
=====================================
--- a/utilities/pom.xml
+++ b/utilities/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Repository Utilities</name>


=====================================
workflow/pom.xml
=====================================
--- a/workflow/pom.xml
+++ b/workflow/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-repository</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Repository workflow implementations</name>



View it on GitLab: https://code.onehippo.org/cms-community/hippo-repository/compare/029a31c7fb46276b5111378fe211c4488bc16346...ef95c9f52709f0957d744a1bc3671b6b3b8a9506
Arent-Jan Banck
2016-06-15 16:29:12 UTC
Permalink
Arent-Jan Banck pushed to branch release/4.0 at cms-community / hippo-cms


Commits:
36a68036 by Arent-Jan Banck at 2016-06-15T18:22:18+02:00
CMS-10176 prepare release hippo-cms-4.0.0

- - - - -
cc5f03e5 by Arent-Jan Banck at 2016-06-15T18:22:24+02:00
CMS-10176 prepare for next development iteration

- - - - -


54 changed files:

- api/pom.xml
- automatic-export/frontend/pom.xml
- automatic-export/pom.xml
- automatic-export/repository/pom.xml
- brokenlinks/common/pom.xml
- brokenlinks/frontend/pom.xml
- brokenlinks/pom.xml
- brokenlinks/repository/pom.xml
- brokenlinks/test/pom.xml
- builtin/pom.xml
- config/pom.xml
- console/frontend/pom.xml
- console/pom.xml
- console/repository/pom.xml
- dependencies/pom.xml
- editor/common/pom.xml
- editor/frontend/pom.xml
- editor/pom.xml
- editor/repository/pom.xml
- editor/test/pom.xml
- engine/pom.xml
- gallery/frontend/pom.xml
- gallery/pom.xml
- gallery/repository/pom.xml
- google-analytics/frontend/pom.xml
- google-analytics/pom.xml
- gotolink/pom.xml
- jquery/pom.xml
- perspectives/pom.xml
- pom.xml
- reporting/frontend/pom.xml
- reporting/pom.xml
- reporting/repository/pom.xml
- repository-dependencies/pom.xml
- richtext/ckeditor/frontend/pom.xml
- richtext/ckeditor/plugins/pom.xml
- richtext/ckeditor/pom.xml
- richtext/ckeditor/resources/pom.xml
- richtext/frontend/pom.xml
- richtext/pom.xml
- richtext/repository/pom.xml
- scripts/pom.xml
- shared-dependencies/pom.xml
- test/pom.xml
- translation/common/pom.xml
- translation/frontend/pom.xml
- translation/pom.xml
- translation/repository/pom.xml
- translation/test/pom.xml
- types/pom.xml
- workflow/frontend/pom.xml
- workflow/pom.xml
- workflow/repository/pom.xml
- workflowmenu/pom.xml


Changes:

=====================================
api/pom.xml
=====================================
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS API</name>


=====================================
automatic-export/frontend/pom.xml
=====================================
--- a/automatic-export/frontend/pom.xml
+++ b/automatic-export/frontend/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-automatic-export</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<artifactId>hippo-cms-automatic-export-frontend</artifactId>


=====================================
automatic-export/pom.xml
=====================================
--- a/automatic-export/pom.xml
+++ b/automatic-export/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Automatic Export</name>


=====================================
automatic-export/repository/pom.xml
=====================================
--- a/automatic-export/repository/pom.xml
+++ b/automatic-export/repository/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-automatic-export</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<artifactId>hippo-cms-automatic-export-repository</artifactId>


=====================================
brokenlinks/common/pom.xml
=====================================
--- a/brokenlinks/common/pom.xml
+++ b/brokenlinks/common/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-brokenlinks</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Brokenlinks common</name>


=====================================
brokenlinks/frontend/pom.xml
=====================================
--- a/brokenlinks/frontend/pom.xml
+++ b/brokenlinks/frontend/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-brokenlinks</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Brokenlinks frontend</name>


=====================================
brokenlinks/pom.xml
=====================================
--- a/brokenlinks/pom.xml
+++ b/brokenlinks/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Brokenlinks</name>


=====================================
brokenlinks/repository/pom.xml
=====================================
--- a/brokenlinks/repository/pom.xml
+++ b/brokenlinks/repository/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-brokenlinks</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Brokenlinks repository</name>


=====================================
brokenlinks/test/pom.xml
=====================================
--- a/brokenlinks/test/pom.xml
+++ b/brokenlinks/test/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-brokenlinks</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Brokenlinks test</name>


=====================================
builtin/pom.xml
=====================================
--- a/builtin/pom.xml
+++ b/builtin/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Builtin</name>


=====================================
config/pom.xml
=====================================
--- a/config/pom.xml
+++ b/config/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Package Configuration</name>


=====================================
console/frontend/pom.xml
=====================================
--- a/console/frontend/pom.xml
+++ b/console/frontend/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-console</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Plugins</name>


=====================================
console/pom.xml
=====================================
--- a/console/pom.xml
+++ b/console/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Console</name>


=====================================
console/repository/pom.xml
=====================================
--- a/console/repository/pom.xml
+++ b/console/repository/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-console</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Console configuration</name>


=====================================
dependencies/pom.xml
=====================================
--- a/dependencies/pom.xml
+++ b/dependencies/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Dependencies</name>


=====================================
editor/common/pom.xml
=====================================
--- a/editor/common/pom.xml
+++ b/editor/common/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-editor</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Editor Common</name>


=====================================
editor/frontend/pom.xml
=====================================
--- a/editor/frontend/pom.xml
+++ b/editor/frontend/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-editor</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Editor Plugins</name>


=====================================
editor/pom.xml
=====================================
--- a/editor/pom.xml
+++ b/editor/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Editor</name>


=====================================
editor/repository/pom.xml
=====================================
--- a/editor/repository/pom.xml
+++ b/editor/repository/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-editor</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Editor Repository</name>


=====================================
editor/test/pom.xml
=====================================
--- a/editor/test/pom.xml
+++ b/editor/test/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-editor</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Editor Test</name>


=====================================
engine/pom.xml
=====================================
--- a/engine/pom.xml
+++ b/engine/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Engine</name>


=====================================
gallery/frontend/pom.xml
=====================================
--- a/gallery/frontend/pom.xml
+++ b/gallery/frontend/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-gallery</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Gallery Plugins</name>


=====================================
gallery/pom.xml
=====================================
--- a/gallery/pom.xml
+++ b/gallery/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Gallery</name>


=====================================
gallery/repository/pom.xml
=====================================
--- a/gallery/repository/pom.xml
+++ b/gallery/repository/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-gallery</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Gallery Repository</name>


=====================================
google-analytics/frontend/pom.xml
=====================================
--- a/google-analytics/frontend/pom.xml
+++ b/google-analytics/frontend/pom.xml
@@ -20,7 +20,7 @@
<parent>
<artifactId>hippo-cms-google-analytics</artifactId>
<groupId>org.onehippo.cms7</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Google Analytics Frontend</name>


=====================================
google-analytics/pom.xml
=====================================
--- a/google-analytics/pom.xml
+++ b/google-analytics/pom.xml
@@ -20,12 +20,12 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Google Analytics</name>
<artifactId>hippo-cms-google-analytics</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>pom</packaging>

<modules>


=====================================
gotolink/pom.xml
=====================================
--- a/gotolink/pom.xml
+++ b/gotolink/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Goto</name>


=====================================
jquery/pom.xml
=====================================
--- a/jquery/pom.xml
+++ b/jquery/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS jQuery</name>


=====================================
perspectives/pom.xml
=====================================
--- a/perspectives/pom.xml
+++ b/perspectives/pom.xml
@@ -18,7 +18,7 @@
<parent>
<artifactId>hippo-cms</artifactId>
<groupId>org.onehippo.cms7</groupId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>



=====================================
pom.xml
=====================================
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
</parent>

<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>

<inceptionYear>2007</inceptionYear>

@@ -84,11 +84,11 @@
<!-- use root project name for all project modules NOTICE files, should be the same as in the root NOTICE file -->
<notice.project.name>Hippo CMS</notice.project.name>

- <hippo.commons.version>3.0.0-SNAPSHOT</hippo.commons.version>
- <hippo.frontend.theme.version>3.0.0-SNAPSHOT</hippo.frontend.theme.version>
- <hippo.utilities.version>3.0.0-SNAPSHOT</hippo.utilities.version>
- <hippo.services.version>3.0.0-SNAPSHOT</hippo.services.version>
- <hippo.repository.version>4.0.0-SNAPSHOT</hippo.repository.version>
+ <hippo.commons.version>3.0.0</hippo.commons.version>
+ <hippo.frontend.theme.version>3.0.0</hippo.frontend.theme.version>
+ <hippo.utilities.version>3.0.0</hippo.utilities.version>
+ <hippo.services.version>3.0.0</hippo.services.version>
+ <hippo.repository.version>4.0.0</hippo.repository.version>

<!-- Test dependencies -->
<easymock.version>2.4</easymock.version>


=====================================
reporting/frontend/pom.xml
=====================================
--- a/reporting/frontend/pom.xml
+++ b/reporting/frontend/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-reporting</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Reporting Frontend</name>


=====================================
reporting/pom.xml
=====================================
--- a/reporting/pom.xml
+++ b/reporting/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Reporting Dashboard</name>


=====================================
reporting/repository/pom.xml
=====================================
--- a/reporting/repository/pom.xml
+++ b/reporting/repository/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-reporting</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Reporting Repository</name>


=====================================
repository-dependencies/pom.xml
=====================================
--- a/repository-dependencies/pom.xml
+++ b/repository-dependencies/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Repository Dependencies</name>


=====================================
richtext/ckeditor/frontend/pom.xml
=====================================
--- a/richtext/ckeditor/frontend/pom.xml
+++ b/richtext/ckeditor/frontend/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-richtext-ckeditor</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Rich Text CKEditor Frontend</name>


=====================================
richtext/ckeditor/plugins/pom.xml
=====================================
--- a/richtext/ckeditor/plugins/pom.xml
+++ b/richtext/ckeditor/plugins/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-richtext-ckeditor</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Rich Text CKEditor Plugins</name>


=====================================
richtext/ckeditor/pom.xml
=====================================
--- a/richtext/ckeditor/pom.xml
+++ b/richtext/ckeditor/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-richtext</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Rich Text CKEditor</name>


=====================================
richtext/ckeditor/resources/pom.xml
=====================================
--- a/richtext/ckeditor/resources/pom.xml
+++ b/richtext/ckeditor/resources/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-richtext-ckeditor</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Rich Text CKEditor Resources</name>


=====================================
richtext/frontend/pom.xml
=====================================
--- a/richtext/frontend/pom.xml
+++ b/richtext/frontend/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-richtext</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Rich Text Frontend</name>


=====================================
richtext/pom.xml
=====================================
--- a/richtext/pom.xml
+++ b/richtext/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Rich Text Editor</name>


=====================================
richtext/repository/pom.xml
=====================================
--- a/richtext/repository/pom.xml
+++ b/richtext/repository/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-richtext</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Rich Text Configuration</name>


=====================================
scripts/pom.xml
=====================================
--- a/scripts/pom.xml
+++ b/scripts/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Groovy Scripts</name>


=====================================
shared-dependencies/pom.xml
=====================================
--- a/shared-dependencies/pom.xml
+++ b/shared-dependencies/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Shared Dependencies</name>


=====================================
test/pom.xml
=====================================
--- a/test/pom.xml
+++ b/test/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Engine Test</name>


=====================================
translation/common/pom.xml
=====================================
--- a/translation/common/pom.xml
+++ b/translation/common/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-translation</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Translation Common</name>


=====================================
translation/frontend/pom.xml
=====================================
--- a/translation/frontend/pom.xml
+++ b/translation/frontend/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-translation</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Translation Plugins</name>


=====================================
translation/pom.xml
=====================================
--- a/translation/pom.xml
+++ b/translation/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Translation</name>


=====================================
translation/repository/pom.xml
=====================================
--- a/translation/repository/pom.xml
+++ b/translation/repository/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-translation</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Translation Repository</name>


=====================================
translation/test/pom.xml
=====================================
--- a/translation/test/pom.xml
+++ b/translation/test/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-translation</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Translation Test</name>


=====================================
types/pom.xml
=====================================
--- a/types/pom.xml
+++ b/types/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Node Types</name>


=====================================
workflow/frontend/pom.xml
=====================================
--- a/workflow/frontend/pom.xml
+++ b/workflow/frontend/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-workflow</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Publication Workflow frontend</name>


=====================================
workflow/pom.xml
=====================================
--- a/workflow/pom.xml
+++ b/workflow/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Publication Workflow</name>


=====================================
workflow/repository/pom.xml
=====================================
--- a/workflow/repository/pom.xml
+++ b/workflow/repository/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms-workflow</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Publication Workflow configuration</name>


=====================================
workflowmenu/pom.xml
=====================================
--- a/workflowmenu/pom.xml
+++ b/workflowmenu/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-cms</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>CMS Workflow Menu</name>



View it on GitLab: https://code.onehippo.org/cms-community/hippo-cms/compare/ab588149babb002127204d707bb53cb1cf17e5de...cc5f03e51bbc9f540d5b87f1004c3ad66cfe4bc1
Arent-Jan Banck
2016-06-15 16:54:34 UTC
Permalink
Arent-Jan Banck pushed to branch release/3.0 at cms-community / hippo-addon-hst-configuration-editor


Commits:
e5e6a3c8 by Arent-Jan Banck at 2016-06-15T18:54:00+02:00
HSTCONFIGEDIT-200 prepare release hippo-addon-hst-configuration-editor-3.0.0

- - - - -
2cbb8aed by Arent-Jan Banck at 2016-06-15T18:54:02+02:00
HSTCONFIGEDIT-200 prepare for next development iteration

- - - - -


3 changed files:

- frontend/pom.xml
- pom.xml
- repository/pom.xml


Changes:

=====================================
frontend/pom.xml
=====================================
--- a/frontend/pom.xml
+++ b/frontend/pom.xml
@@ -20,7 +20,7 @@
<parent>
<artifactId>hippo-addon-hst-configuration-editor</artifactId>
<groupId>org.onehippo.cms7</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.1-SNAPSHOT</version>
</parent>

<artifactId>hippo-addon-hst-configuration-editor-frontend</artifactId>


=====================================
pom.xml
=====================================
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
-->

<artifactId>hippo-addon-hst-configuration-editor</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<inceptionYear>2009</inceptionYear>
<issueManagement>
@@ -44,10 +44,10 @@
<product_name>Hippo Addon HST Configuration Editor</product_name>
<product_abr>HSTCONFIGEDIT</product_abr>

- <hippo.cms.version>4.0.0-SNAPSHOT</hippo.cms.version>
- <hippo.repository.version>4.0.0-SNAPSHOT</hippo.repository.version>
- <hippo.hst.version>4.0.0-SNAPSHOT</hippo.hst.version>
- <hippo.services.version>3.0.0-SNAPSHOT</hippo.services.version>
+ <hippo.cms.version>4.0.0</hippo.cms.version>
+ <hippo.repository.version>4.0.0</hippo.repository.version>
+ <hippo.hst.version>4.0.0</hippo.hst.version>
+ <hippo.services.version>3.0.0</hippo.services.version>
<commons-lang.version>2.1</commons-lang.version>
</properties>



=====================================
repository/pom.xml
=====================================
--- a/repository/pom.xml
+++ b/repository/pom.xml
@@ -19,7 +19,7 @@
<parent>
<artifactId>hippo-addon-hst-configuration-editor</artifactId>
<groupId>org.onehippo.cms7</groupId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.1-SNAPSHOT</version>
</parent>

<artifactId>hippo-addon-hst-configuration-editor-repository</artifactId>



View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-hst-configuration-editor/compare/6bdbc8d08d6153da78e820992ae903371377212d...2cbb8aeda42a6f1f42e6e80f1fe91453bca56150
Arent-Jan Banck
2016-06-15 16:58:22 UTC
Permalink
Arent-Jan Banck pushed to branch release/4.0 at cms-community / hippo-packages


Commits:
9f53a5d2 by Arent-Jan Banck at 2016-06-15T18:57:41+02:00
CMS-10176 prepare release hippo-packages-4.0.0

- - - - -
3dad9b6a by Arent-Jan Banck at 2016-06-15T18:57:43+02:00
CMS-10176 prepare for next development iteration

- - - - -


4 changed files:

- package-app-dependencies/pom.xml
- package-cms-dependencies/pom.xml
- package-shared-dependencies/pom.xml
- pom.xml


Changes:

=====================================
package-app-dependencies/pom.xml
=====================================
--- a/package-app-dependencies/pom.xml
+++ b/package-app-dependencies/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-packages</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Hippo Dependencies Package Applications</name>


=====================================
package-cms-dependencies/pom.xml
=====================================
--- a/package-cms-dependencies/pom.xml
+++ b/package-cms-dependencies/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-packages</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Hippo Package CMS Dependencies</name>


=====================================
package-shared-dependencies/pom.xml
=====================================
--- a/package-shared-dependencies/pom.xml
+++ b/package-shared-dependencies/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.onehippo.cms7</groupId>
<artifactId>hippo-packages</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
</parent>

<name>Hippo Package Shared Dependencies</name>


=====================================
pom.xml
=====================================
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
<name>Hippo Product Packages</name>
<description>Hippo Product Packages</description>
<artifactId>hippo-packages</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<inceptionYear>2008</inceptionYear>

@@ -40,12 +40,12 @@
<!-- use root project name for all project modules NOTICE files, should be the same as in the root NOTICE file -->
<notice.project.name>Hippo CMS7 Product Packages</notice.project.name>

- <hippo.utilities.version>3.0.0-SNAPSHOT</hippo.utilities.version>
- <hippo.repository.version>4.0.0-SNAPSHOT</hippo.repository.version>
- <hippo.cms.version>4.0.0-SNAPSHOT</hippo.cms.version>
- <hippo.hst.version>4.0.0-SNAPSHOT</hippo.hst.version>
- <hippo.services.webfiles.version>3.0.0-SNAPSHOT</hippo.services.webfiles.version>
- <hippo.services.contenttype.version>3.0.0-SNAPSHOT</hippo.services.contenttype.version>
+ <hippo.utilities.version>3.0.0</hippo.utilities.version>
+ <hippo.repository.version>4.0.0</hippo.repository.version>
+ <hippo.cms.version>4.0.0</hippo.cms.version>
+ <hippo.hst.version>4.0.0</hippo.hst.version>
+ <hippo.services.webfiles.version>3.0.0</hippo.services.webfiles.version>
+ <hippo.services.contenttype.version>3.0.0</hippo.services.contenttype.version>

</properties>




View it on GitLab: https://code.onehippo.org/cms-community/hippo-packages/compare/d95a678b46d2b9a208381f7fb6a7a62285f0edb0...3dad9b6a62f62a1ac1e9c84ad06a4f8eba9c87f0
Arent-Jan Banck
2016-06-15 17:05:30 UTC
Permalink
Arent-Jan Banck pushed to branch release/3.0 at cms-community / hippo-plugin-dashboard-document-wizard


Commits:
eb849090 by Arent-Jan Banck at 2016-06-15T19:05:07+02:00
HIPPLUG-1318 prepare release hippo-plugin-dashboard-document-wizard-3.0.0

- - - - -
d0be41bd by Arent-Jan Banck at 2016-06-15T19:05:09+02:00
HIPPLUG-1318 prepare for next development iteration

- - - - -


1 changed file:

- pom.xml


Changes:

=====================================
pom.xml
=====================================
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
</parent>

<artifactId>hippo-plugin-dashboard-document-wizard</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<inceptionYear>2010</inceptionYear>
@@ -49,9 +49,9 @@
</issueManagement>

<properties>
- <hippo.repository.version>4.0.0-SNAPSHOT</hippo.repository.version>
- <hippo.cms.version>4.0.0-SNAPSHOT</hippo.cms.version>
- <hippo.plugin.selections.version>4.0.0-SNAPSHOT</hippo.plugin.selections.version>
+ <hippo.repository.version>4.0.0</hippo.repository.version>
+ <hippo.cms.version>4.0.0</hippo.cms.version>
+ <hippo.plugin.selections.version>4.0.0</hippo.plugin.selections.version>

<testng.version>6.0.1</testng.version>
</properties>



View it on GitLab: https://code.onehippo.org/cms-community/hippo-plugin-dashboard-document-wizard/compare/a34798dd1513188c4ff22b5d8d622eb29c0c1d3f...d0be41bdebe3de2ff94cf29399599e3b915b38dc
Arent-Jan Banck
2016-06-15 17:10:16 UTC
Permalink
Arent-Jan Banck pushed to branch release/3.0 at cms-community / hippo-plugin-resourcebundle-editor


Commits:
423dda8c by Arent-Jan Banck at 2016-06-15T19:09:48+02:00
HIPPLUG-1318 prepare release hippo-plugin-resourcebundle-editor-3.0.0

- - - - -
3896ad5b by Arent-Jan Banck at 2016-06-15T19:09:49+02:00
HIPPLUG-1318 prepare for next development iteration

- - - - -


1 changed file:

- pom.xml


Changes:

=====================================
pom.xml
=====================================
--- a/pom.xml
+++ b/pom.xml
@@ -27,7 +27,7 @@

<artifactId>hippo-plugin-resourcebundle-editor</artifactId>
<name>Hippo Plugin Resourcebundle Editor</name>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.1-SNAPSHOT</version>

<scm>
<connection>scm:git:https://code.onehippo.org/cms-community/hippo-plugin-resourcebundle-editor.git</connection>
@@ -36,7 +36,7 @@
</scm>

<properties>
- <hippo.cms.version>4.0.0-SNAPSHOT</hippo.cms.version>
+ <hippo.cms.version>4.0.0</hippo.cms.version>
</properties>

<repositories>



View it on GitLab: https://code.onehippo.org/cms-community/hippo-plugin-resourcebundle-editor/compare/3f12810a53f7ff9fb985b199a3c41f00c7305f2e...3896ad5b458c9c6f41a5f4d3b7721c82ffb6eacb
Mathijs den Burger
2016-06-17 07:39:56 UTC
Permalink
Mathijs den Burger pushed to branch release/3.2 at cms-community / hippo-cms


Commits:
5de1bc47 by Bert Leunis at 2016-06-03T12:57:21+02:00
CMS-9765 add styles for bold-italics and italics-bold combination for rich text editor

- - - - -
55f4760f by Mathijs den Burger at 2016-06-17T09:39:12+02:00
CMS-9765 Reintegrate bugfix/CMS-9765

- - - - -


3 changed files:

- .gitignore
- api/src/main/styling/styles/_rich_text.scss
- richtext/ckeditor/plugins/src/main/resources/ckeditor/hippocontents.css


Changes:

=====================================
.gitignore
=====================================
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@
/.classpath
/.project
/.settings
+.DS_Store
api/*.tmp
api/.classpath
api/.project


=====================================
api/src/main/styling/styles/_rich_text.scss
=====================================
--- a/api/src/main/styling/styles/_rich_text.scss
+++ b/api/src/main/styling/styles/_rich_text.scss
@@ -39,6 +39,11 @@
font-weight: bold;
}

+ em strong, strong em {
+ font-style: italic;
+ font-weight: bold;
+ }
+
sub {
vertical-align: sub;
}


=====================================
richtext/ckeditor/plugins/src/main/resources/ckeditor/hippocontents.css
=====================================
--- a/richtext/ckeditor/plugins/src/main/resources/ckeditor/hippocontents.css
+++ b/richtext/ckeditor/plugins/src/main/resources/ckeditor/hippocontents.css
@@ -76,6 +76,11 @@
font-weight: bold;
}

+.cke_wysiwyg_div.cke_editable em strong, .cke_wysiwyg_div.cke_editable strong em {
+ font-style: italic;
+ font-weight: bold;
+}
+
.cke_wysiwyg_div.cke_editable sub {
vertical-align: sub;
}



View it on GitLab: https://code.onehippo.org/cms-community/hippo-cms/compare/082613121a188691177355a20d421fcf86e9ba00...55f4760fa18b0711d8eeb16dd11bd2f83853ea4f
Canh Ngo
2016-06-17 11:14:20 UTC
Permalink
Canh Ngo pushed to branch bugfix/HIPPLUG-1317 at cms-community / hippo-plugin-content-blocks


Commits:
e44f42b6 by Canh Ngo at 2016-06-17T13:03:39+02:00
HIPPLUG-1317 restored search template as it is being used

- - - - -
caabaa2e by Canh Ngo at 2016-06-17T13:13:52+02:00
HIPPLUG-1317 removed 'overview' and 'newsoverview' pages

These pages are no longer used in any components/sitemapitems

Removed unused OverView component

- - - - -


5 changed files:

- demo/bootstrap/configuration/src/main/resources/hippoecm-extension.xml
- − demo/bootstrap/configuration/src/main/resources/hst/configurations/contentblocksdemo/pages/newsoverview.xml
- − demo/bootstrap/configuration/src/main/resources/hst/configurations/contentblocksdemo/pages/overview.xml
- demo/bootstrap/configuration/src/main/resources/hst/configurations/contentblocksdemo/templates.xml
- − demo/site/src/main/java/org/onehippo/forge/contentblocksdemo/components/Overview.java


Changes:

=====================================
demo/bootstrap/configuration/src/main/resources/hippoecm-extension.xml
=====================================
--- a/demo/bootstrap/configuration/src/main/resources/hippoecm-extension.xml
+++ b/demo/bootstrap/configuration/src/main/resources/hippoecm-extension.xml
@@ -356,20 +356,6 @@
<sv:value>/hst:hst/hst:configurations/contentblocksdemo/hst:pages</sv:value>
</sv:property>
</sv:node>
- <sv:node sv:name="contentblocksdemo-configuration-pages-newsoverview">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>hippo:initializeitem</sv:value>
- </sv:property>
- <sv:property sv:name="hippo:sequence" sv:type="Double">
- <sv:value>30077</sv:value>
- </sv:property>
- <sv:property sv:name="hippo:contentresource" sv:type="String">
- <sv:value>hst/configurations/contentblocksdemo/pages/newsoverview.xml</sv:value>
- </sv:property>
- <sv:property sv:name="hippo:contentroot" sv:type="String">
- <sv:value>/hst:hst/hst:configurations/contentblocksdemo/hst:pages</sv:value>
- </sv:property>
- </sv:node>
<sv:node sv:name="contentblocksdemo-configuration-pages-newspage">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>hippo:initializeitem</sv:value>
@@ -384,20 +370,6 @@
<sv:value>/hst:hst/hst:configurations/contentblocksdemo/hst:pages</sv:value>
</sv:property>
</sv:node>
- <sv:node sv:name="contentblocksdemo-configuration-pages-overview">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>hippo:initializeitem</sv:value>
- </sv:property>
- <sv:property sv:name="hippo:sequence" sv:type="Double">
- <sv:value>30079</sv:value>
- </sv:property>
- <sv:property sv:name="hippo:contentresource" sv:type="String">
- <sv:value>hst/configurations/contentblocksdemo/pages/overview.xml</sv:value>
- </sv:property>
- <sv:property sv:name="hippo:contentroot" sv:type="String">
- <sv:value>/hst:hst/hst:configurations/contentblocksdemo/hst:pages</sv:value>
- </sv:property>
- </sv:node>
<sv:node sv:name="contentblocksdemo-configuration-pages-search">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>hippo:initializeitem</sv:value>


=====================================
demo/bootstrap/configuration/src/main/resources/hst/configurations/contentblocksdemo/pages/newsoverview.xml deleted
=====================================
--- a/demo/bootstrap/configuration/src/main/resources/hst/configurations/contentblocksdemo/pages/newsoverview.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sv:node xmlns:sv="http://www.jcp.org/jcr/sv/1.0" sv:name="newsoverview">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>hst:component</sv:value>
- </sv:property>
- <sv:property sv:name="hst:referencecomponent" sv:type="String">
- <sv:value>hst:pages/overview</sv:value>
- </sv:property>
-</sv:node>


=====================================
demo/bootstrap/configuration/src/main/resources/hst/configurations/contentblocksdemo/pages/overview.xml deleted
=====================================
--- a/demo/bootstrap/configuration/src/main/resources/hst/configurations/contentblocksdemo/pages/overview.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sv:node xmlns:sv="http://www.jcp.org/jcr/sv/1.0" sv:name="overview">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>hst:component</sv:value>
- </sv:property>
- <sv:property sv:name="hst:referencecomponent" sv:type="String">
- <sv:value>hst:abstractpages/base</sv:value>
- </sv:property>
- <sv:node sv:name="main">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>hst:component</sv:value>
- </sv:property>
- <sv:node sv:name="content">
- <sv:property sv:name="jcr:primaryType" sv:type="Name">
- <sv:value>hst:component</sv:value>
- </sv:property>
- <sv:property sv:name="hst:referencecomponent" sv:type="String">
- <sv:value>hst:components/overview</sv:value>
- </sv:property>
- </sv:node>
- </sv:node>
-</sv:node>
\ No newline at end of file


=====================================
demo/bootstrap/configuration/src/main/resources/hst/configurations/contentblocksdemo/templates.xml
=====================================
--- a/demo/bootstrap/configuration/src/main/resources/hst/configurations/contentblocksdemo/templates.xml
+++ b/demo/bootstrap/configuration/src/main/resources/hst/configurations/contentblocksdemo/templates.xml
@@ -90,6 +90,14 @@
<sv:value>jsp/one-column/main/content.jsp</sv:value>
</sv:property>
</sv:node>
+ <sv:node sv:name="search.main.content">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>hst:template</sv:value>
+ </sv:property>
+ <sv:property sv:name="hst:renderpath" sv:type="String">
+ <sv:value>jsp/search/main/content.jsp</sv:value>
+ </sv:property>
+ </sv:node>
<sv:node sv:name="two-columns.main.content">
<sv:property sv:name="jcr:primaryType" sv:type="Name">
<sv:value>hst:template</sv:value>


=====================================
demo/site/src/main/java/org/onehippo/forge/contentblocksdemo/components/Overview.java deleted
=====================================
--- a/demo/site/src/main/java/org/onehippo/forge/contentblocksdemo/components/Overview.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright 2010-2014 Hippo B.V. (http://www.onehippo.com)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onehippo.forge.contentblocksdemo.components;
-
-import org.onehippo.forge.contentblocksdemo.componentsinfo.PageableListInfo;
-import org.hippoecm.hst.core.parameters.ParametersInfo;
-import org.hippoecm.hst.content.beans.standard.HippoBean;
-import org.hippoecm.hst.core.component.HstComponentException;
-import org.hippoecm.hst.core.component.HstRequest;
-import org.hippoecm.hst.core.component.HstResponse;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@ParametersInfo(type = PageableListInfo.class)
-public class Overview extends BaseComponent {
-
- public static final Logger log = LoggerFactory.getLogger(Overview.class);
-
- @Override
- public void doBeforeRender(final HstRequest request, final HstResponse response) throws HstComponentException {
-
- PageableListInfo info = getComponentParametersInfo(request);
- HippoBean scope = request.getRequestContext().getContentBean();
-
- if (scope == null) {
- response.setStatus(404);
- log.info("For an Overview component there must be a content bean available to search below. Cannot create an overview");
- return;
- }
- createAndExecuteSearch(request, info, scope, null);
- }
-
-}



View it on GitLab: https://code.onehippo.org/cms-community/hippo-plugin-content-blocks/compare/5e3f1813af7a6bac71f78ce64a2262b255d3600f...caabaa2eecae068ea8457bb4afc004763c8b357f
Loading...