Skip to content

Commit

Permalink
Merge branch 'release-2.14.0-beta'
Browse files Browse the repository at this point in the history
  • Loading branch information
dongilbert committed Jul 17, 2018
2 parents 22b6ee8 + e611cd1 commit f310e8b
Show file tree
Hide file tree
Showing 522 changed files with 42,409 additions and 5,710 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Expand Up @@ -35,7 +35,7 @@ script:
- bin/phpunit -d memory_limit=2048M --bootstrap vendor/autoload.php --configuration app/phpunit.xml.dist --fail-on-warning

# Run PHPSTAN analysis for PHP 7+
- if [[ ${TRAVIS_PHP_VERSION:0:3} != "5.6" ]]; then ~/.composer/vendor/phpstan/phpstan-shim/phpstan.phar analyse app/bundles/CampaignBundle app/bundles/WebhookBundle app/bundles/LeadBundle; fi
- if [[ ${TRAVIS_PHP_VERSION:0:3} != "5.6" ]]; then ~/.composer/vendor/phpstan/phpstan-shim/phpstan.phar analyse app/bundles/DashboardBundle app/bundles/ConfigBundle app/bundles/CampaignBundle app/bundles/WebhookBundle app/bundles/LeadBundle; fi

# Check if the code standards weren't broken.
# Run it only on PHP 7.1 which should be the fastest. No need to run it for all PHP versions
Expand Down
6 changes: 3 additions & 3 deletions app/AppKernel.php
Expand Up @@ -34,14 +34,14 @@ class AppKernel extends Kernel
*
* @const integer
*/
const MINOR_VERSION = 13;
const MINOR_VERSION = 14;

/**
* Patch version number.
*
* @const integer
*/
const PATCH_VERSION = 1;
const PATCH_VERSION = 0;

/**
* Extra version identifier.
Expand All @@ -51,7 +51,7 @@ class AppKernel extends Kernel
*
* @const string
*/
const EXTRA_VERSION = '';
const EXTRA_VERSION = '-beta';

/**
* @var array
Expand Down
2 changes: 1 addition & 1 deletion app/bundles/ApiBundle/Controller/CommonApiController.php
Expand Up @@ -377,7 +377,7 @@ public function getEntitiesAction()
if ($this->security->checkPermissionExists($this->permissionBase.':viewother')
&& !$this->security->isGranted($this->permissionBase.':viewother')
) {
$this->listFilters = [
$this->listFilters[] = [
'column' => $tableAlias.'.createdBy',
'expr' => 'eq',
'value' => $this->user->getId(),
Expand Down
2 changes: 2 additions & 0 deletions app/bundles/AssetBundle/Views/Asset/details.html.php
Expand Up @@ -151,6 +151,8 @@
<!--/ stats -->
</div>

<?php echo $view['content']->getCustomContent('details.stats.graph.below', $mauticTemplateVars); ?>

<!-- start: tab-content -->
<div class="tab-content pa-md preview-detail">
<?php echo $view->render(
Expand Down
27 changes: 27 additions & 0 deletions app/bundles/CampaignBundle/Assets/css/campaign.css
Expand Up @@ -132,6 +132,22 @@
padding: 0;
}

.campaign-event-content {
cursor: pointer;
position: relative;
}

.campaign-event-content .highlight-jump-target {
position: absolute;
bottom: -26px;
left: 50%;
border-radius: 10px;
width: 20px;
height: 20px;
padding: 0;
margin-left: -10px;
}

.list-campaign-event .campaign-event-name {
overflow: hidden;
white-space: nowrap;
Expand Down Expand Up @@ -277,3 +293,14 @@
.list-campaign-action .campaign-event-logic {
color: #9babeb;
}

#EventJumpOverlay {
display: none;
background: rgba(0, 0, 0, 0.5);
width: 10000px;
height: 10000px;
z-index: 2000;
position: absolute;
top: 0;
left: 0;
}
180 changes: 131 additions & 49 deletions app/bundles/CampaignBundle/Assets/js/campaign.js
Expand Up @@ -152,7 +152,12 @@ Mautic.campaignOnUnload = function(container) {
* @param response
*/
Mautic.campaignEventOnLoad = function (container, response) {
//new action created so append it to the form
if (!response.hasOwnProperty('eventId')) {
// There's nothing for us to do, so bail
return;
}

// New action created so append it to the form
var domEventId = 'CampaignEvent_' + response.eventId;
var eventId = '#' + domEventId;

Expand All @@ -163,15 +168,15 @@ Mautic.campaignEventOnLoad = function (container, response) {
Mautic.campaignBuilderInstance.detach(Mautic.campaignBuilderLastConnection);
}
Mautic.campaignBuilderConnectionRequiresUpdate = false;

Mautic.campaignBuilderUpdateLabel(domEventId);
Mautic.campaignBuilderCanvasEvents[response.event.id] = response.event;

if (response.deleted) {
Mautic.campaignBuilderInstance.remove(document.getElementById(domEventId));
delete Mautic.campaignBuilderEventPositions[domEventId];

delete Mautic.campaignBuilderCanvasEvents[response.event.id];
} else if (response.updateHtml) {
mQuery(eventId + " .campaign-event-content").html(response.updateHtml);
mQuery(eventId + " .campaign-event-content").replaceWith(response.updateHtml);
} else if (response.eventHtml) {
var newHtml = response.eventHtml;

Expand All @@ -188,12 +193,7 @@ Mautic.campaignEventOnLoad = function (container, response) {

mQuery(eventId).css({'left': x + 'px', 'top': y + 'px'});

if (response.eventType == 'decision' || response.eventType == 'condition') {
Mautic.campaignBuilderRegisterAnchors(['top', 'yes', 'no'], eventId);
} else {
Mautic.campaignBuilderRegisterAnchors(['top', 'bottom'], eventId);
}

Mautic.campaignBuilderRegisterAnchors(Mautic.getAnchorsForEvent(response.event), eventId);
Mautic.campaignBuilderInstance.draggable(domEventId, Mautic.campaignDragOptions);

//activate new stuff
Expand Down Expand Up @@ -236,6 +236,34 @@ Mautic.campaignEventOnLoad = function (container, response) {
Mautic.campaignBuilderInstance.repaintEverything();
};

/**
* Determine anchors to set up for the given event.
*
* This inspects the `connectionRestrictions` property
* within the event's settings that were passed when
* registering the event in your bundle's CampaignEventListener.
*
* @param event
*/
Mautic.getAnchorsForEvent = function (event) {
var restrictions = Mautic.campaignBuilderConnectionRestrictions[event.type].target;

// If all connections are restricted, only anchor the top
if (
restrictions.decision.length === 1 && restrictions.decision[0] === "none" &&
restrictions.action.length === 1 && restrictions.action[0] === "none" &&
restrictions.condition.length === 1 && restrictions.condition[0] === "none"
) {
return ['top'];
}

if (event.eventType === 'decision' || event.eventType === 'condition') {
return ['top', 'yes', 'no'];
}

return ['top', 'bottom'];
};

/**
* Setup the campaign source view
*
Expand Down Expand Up @@ -731,16 +759,14 @@ Mautic.prepareCampaignCanvas = function() {
callback();
});

mQuery("#CampaignCanvas div.list-campaign-event").each(function () {
Mautic.campaignBuilderRegisterAnchors(['top'], this);
});
mQuery("#CampaignCanvas div[data-event-id]").each(function () {
var event = Mautic.campaignBuilderCanvasEvents[mQuery(this).data('eventId')];

mQuery("#CampaignCanvas div.list-campaign-event.list-campaign-action, #CampaignCanvas div.list-campaign-event.list-campaign-source").not('#CampaignEvent_newsource').not('#CampaignEvent_newsource_hide').each(function () {
Mautic.campaignBuilderRegisterAnchors(['bottom'], this);
Mautic.campaignBuilderRegisterAnchors(Mautic.getAnchorsForEvent(event), this);
});

mQuery("#CampaignCanvas div.list-campaign-decision, #CampaignCanvas div.list-campaign-condition").each(function () {
Mautic.campaignBuilderRegisterAnchors(['yes', 'no'], this);
mQuery("#CampaignCanvas div.list-campaign-event.list-campaign-source").not('#CampaignEvent_newsource').not('#CampaignEvent_newsource_hide').each(function () {
Mautic.campaignBuilderRegisterAnchors(['bottom'], this);
});

mQuery("#CampaignCanvas div.list-campaign-leadsource").not('#CampaignEvent_newsource').not('#CampaignEvent_newsource_hide').each(function () {
Expand Down Expand Up @@ -1113,44 +1139,49 @@ Mautic.campaignBuilderReconnectEndpoints = function () {
return;
}

// Reposition events
var sourceFound = false;
mQuery.each(Mautic.campaignBuilderCanvasSettings.nodes, function (key, node) {
if (typeof Mautic.campaignBuilderCanvasSources[node.id] !== 'undefined') {
sourceFound = true;
}
if (typeof Mautic.campaignBuilderCanvasSettings.nodes !== 'undefined') {
// Reposition events
var sourceFound = false;
mQuery.each(Mautic.campaignBuilderCanvasSettings.nodes, function (key, node) {
if (typeof Mautic.campaignBuilderCanvasSources[node.id] !== 'undefined') {
sourceFound = true;
}

mQuery('#CampaignEvent_' + node.id).css({
position: 'absolute',
left: node.positionX + 'px',
top: node.positionY + 'px'
});

mQuery('#CampaignEvent_' + node.id).css({
position: 'absolute',
left: node.positionX + 'px',
top: node.positionY + 'px'
Mautic.campaignBuilderEventPositions['CampaignEvent_' + node.id] = {
left: parseInt(node.positionX),
top: parseInt(node.positionY)
};
});
}

Mautic.campaignBuilderEventPositions['CampaignEvent_' + node.id] = {
left: parseInt(node.positionX),
top: parseInt(node.positionY)
};
});
if (typeof Mautic.campaignBuilderCanvasSettings.connections !== 'undefined') {

// Recreate jsPlumb connections and labels
mQuery.each(Mautic.campaignBuilderCanvasSettings.connections, function (key, connection) {
if (typeof Mautic.campaignBuilderCanvasEvents[connection.targetId] !== 'undefined') {
var targetEvent = Mautic.campaignBuilderCanvasEvents[connection.targetId];
} else if (typeof Mautic.campaignBuilderCanvasSources[connection.targetId] !== 'undefined') {
var targetEvent = Mautic.campaignBuilderCanvasSources[connection.targetId];
}
// Recreate jsPlumb connections and labels
mQuery.each(Mautic.campaignBuilderCanvasSettings.connections, function (key, connection) {
if (typeof Mautic.campaignBuilderCanvasEvents[connection.targetId] !== 'undefined') {
var targetEvent = Mautic.campaignBuilderCanvasEvents[connection.targetId];
} else if (typeof Mautic.campaignBuilderCanvasSources[connection.targetId] !== 'undefined') {
var targetEvent = Mautic.campaignBuilderCanvasSources[connection.targetId];
}

if (targetEvent && targetEvent.label) {
Mautic.campaignBuilderLabels["CampaignEvent_"+connection.targetId] = targetEvent.label;
}
if (targetEvent && targetEvent.label) {
Mautic.campaignBuilderLabels["CampaignEvent_" + connection.targetId] = targetEvent.label;
}

Mautic.campaignBuilderInstance.connect({
uuids: [
"CampaignEvent_" + connection.sourceId + '_' + connection.anchors.source,
"CampaignEvent_" + connection.targetId + '_' + connection.anchors.target
]
Mautic.campaignBuilderInstance.connect({
uuids: [
"CampaignEvent_" + connection.sourceId + '_' + connection.anchors.source,
"CampaignEvent_" + connection.targetId + '_' + connection.anchors.target
]
});
});
});
}

if (!sourceFound) {
var topOffset = 25;
Expand Down Expand Up @@ -1855,4 +1886,55 @@ Mautic.cancelScheduledCampaignEvent = function(eventId, contactId) {
}
}, false
);
};
};

/**
* Update the "Jump to Event" select list to be available events.
*/
Mautic.updateJumpToEventOptions = function() {
var jumpToEventSelectNode = mQuery("#campaignevent_properties_jumpToEvent");

jumpToEventSelectNode.children().remove();

for (var eventId in Mautic.campaignBuilderCanvasEvents) {
var event = Mautic.campaignBuilderCanvasEvents[eventId];

if (event.type !== 'campaign.jump_to_event' && event.eventType !== 'decision') {
var opt = mQuery("<option />")
.attr("value", event.id)
.text(event.name)

if (event.id == jumpToEventSelectNode.data("selected")) {
opt.attr("selected", "selected");
}

jumpToEventSelectNode.append(opt);
}
}

jumpToEventSelectNode.trigger("chosen:updated");
};

Mautic.highlightJumpTarget = function(event, el) {
var element = mQuery(el);
var parentEventElement = element.parent().parent();
var highlightedAlready = parentEventElement.data('highlighted');
var jumpTargetID = '#CampaignEvent_' + element.data('jumpTarget');
var jumpTarget = mQuery(jumpTargetID);
var overlay = mQuery('#EventJumpOverlay');

if (highlightedAlready) {
parentEventElement.data('highlighted', false);
overlay.hide();
parentEventElement.css("z-index", 1010);
jumpTarget.css("z-index", 1010);
} else {
parentEventElement.data('highlighted', true);
overlay.show();
parentEventElement.css("z-index", 2010);
jumpTarget.css("z-index", 2010);
}
};



0 comments on commit f310e8b

Please sign in to comment.