/*!
* Piwik - free/libre analytics platform
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
/**
* Usage:
*
*/
(function () {
angular.module('piwikApp').directive('piwikMarketplace', piwikMarketplace);
piwikMarketplace.$inject = ['piwik', '$timeout'];
function piwikMarketplace(piwik, $timeout){
return {
restrict: 'A',
compile: function (element, attrs) {
return function (scope, element, attrs) {
$timeout(function () {
$('.installAllPaidPlugins').click(function (event) {
event.preventDefault();
piwikHelper.modalConfirm('#installAllPaidPluginsAtOnce');
});
$('.uploadPlugin').click(function (event) {
event.preventDefault();
piwikHelper.modalConfirm('#installPluginByUpload', {});
});
$('#uploadPluginForm').submit(function (event) {
var $zipFile = $('[name=pluginZip]');
var fileName = $zipFile.val();
if (!fileName || '.zip' != fileName.slice(-4)) {
event.preventDefault();
alert(_pk_translate('CorePluginsAdmin_NoZipFileSelected'));
}
});
// Keeps the plugin descriptions the same height
$('.marketplace .plugin .description').dotdotdot({
after: 'a.more',
watch: 'window'
});
function syncMaxHeight2 (selector) {
if (!selector) {
return;
}
var $nodes = $(selector);
if (!$nodes || !$nodes.length) {
return;
}
var maxh3 = null;
var maxMeta = null;
var maxFooter = null;
var nodesToUpdate = [];
var lastTop = 0;
$nodes.each(function (index, node) {
var $node = $(node);
var top = $node.offset().top;
if (lastTop !== top) {
nodesToUpdate = [];
lastTop = top;
maxh3 = null;
maxMeta = null;
maxFooter = null;
}
nodesToUpdate.push($node);
var heightH3 = $node.find('h3').height();
var heightMeta = $node.find('.metadata').height();
var heightFooter = $node.find('.footer').height();
if (!maxh3) {
maxh3 = heightH3;
} else if (maxh3 < heightH3) {
maxh3 = heightH3;
}
if (!maxMeta) {
maxMeta = heightMeta;
} else if (maxMeta < heightMeta) {
maxMeta = heightMeta;
}
if (!maxFooter) {
maxFooter = heightFooter;
} else if (maxFooter < heightFooter) {
maxFooter = heightFooter;
}
$.each(nodesToUpdate, function (index, $node) {
if (maxh3) {
$node.find('h3').height(maxh3 + 'px');
}
if (maxMeta) {
$node.find('.metadata').height(maxMeta + 'px');
}
if (maxFooter) {
$node.find('.footer').height(maxFooter + 'px');
}
});
});
}
syncMaxHeight2('.marketplace .plugin');
});
};
}
};
}
})();