PM-520 Cambios en el Enterprise Plugins Manager
- Se agrego una interfaz para administrar los fixtures.
This commit is contained in:
@@ -225,8 +225,8 @@ class Bootstrap
|
||||
self::registerClass("cronFile", PATH_CLASSES . "class.plugin.php");
|
||||
self::registerClass("pluginDetail", PATH_CLASSES . "class.pluginRegistry.php");
|
||||
self::registerClass("PMPluginRegistry", PATH_CLASSES . "class.pluginRegistry.php");
|
||||
self::registerClass("fixtureDetail", PATH_CLASSES . "class.fixtureRegistry.php");
|
||||
self::registerClass("PMFixtureRegistry", PATH_CLASSES . "class.fixtureRegistry.php");
|
||||
self::registerClass("featuresDetail", PATH_CLASSES . "class.licensedFeatures.php");
|
||||
self::registerClass("PMLicensedFeatures", PATH_CLASSES . "class.licensedFeatures.php");
|
||||
self::registerClass("PMDashlet", PATH_CLASSES . "class.pmDashlet.php");
|
||||
self::registerClass("pmGauge", PATH_CLASSES . "class.pmGauge.php");
|
||||
self::registerClass("pmPhing", PATH_CLASSES . "class.pmPhing.php");
|
||||
|
||||
89
workflow/engine/classes/class.licensedFeatures.php
Normal file
89
workflow/engine/classes/class.licensedFeatures.php
Normal file
@@ -0,0 +1,89 @@
|
||||
<?php
|
||||
|
||||
class featuresDetail
|
||||
{
|
||||
public $featureName;
|
||||
public $description = null;
|
||||
public $enabled = false;
|
||||
public $workspaces = null;
|
||||
|
||||
/**
|
||||
* This function is the constructor of the featuresDetail class
|
||||
*
|
||||
* @param string $featureName
|
||||
* @param string $name
|
||||
* @param string $description
|
||||
* @return void
|
||||
*/
|
||||
public function __construct ($featureName, $description = '')
|
||||
{
|
||||
$this->featureName = $featureName;
|
||||
$this->description = $description;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class PMLicensedFeatures
|
||||
{
|
||||
private $featuresDetails = array ();
|
||||
private $features = array ();
|
||||
|
||||
private static $instancefeature = null;
|
||||
|
||||
/**
|
||||
* This function is the constructor of the PMLicensedFeatures class
|
||||
* param
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct ()
|
||||
{
|
||||
$criteria = new Criteria();
|
||||
$criteria->addAscendingOrderByColumn(AddonsManagerPeer::ADDON_ID);
|
||||
$criteria->add(AddonsManagerPeer::ADDON_TYPE, 'feature', Criteria::EQUAL);
|
||||
$addons = AddonsManagerPeer::doSelect($criteria);
|
||||
foreach ($addons as $addon) {
|
||||
$this->features[] = $addon->getAddonId();
|
||||
$detail = new featuresDetail($addon->getAddonNick(), $addon->getAddonDescription());
|
||||
$this->featuresDetails[$addon->getAddonId()] = $detail;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This function is instancing to this class
|
||||
* param
|
||||
*
|
||||
* @return object
|
||||
*/
|
||||
public static function getSingleton ()
|
||||
{
|
||||
if (self::$instancefeature == null) {
|
||||
self::$instancefeature = new PMLicensedFeatures();
|
||||
}
|
||||
return self::$instancefeature;
|
||||
}
|
||||
|
||||
public function verifyfeature ($featureName)
|
||||
{
|
||||
$licenseManager = &pmLicenseManager::getSingleton();
|
||||
$_SESSION['__sw__'] = true;
|
||||
$padl = new padl();
|
||||
|
||||
$enable = in_array($padl->_decrypt($featureName), $licenseManager->features);
|
||||
|
||||
$this->featuresDetails[$padl->_decrypt($featureName)]->enabled = $enable;
|
||||
return $enable;
|
||||
}
|
||||
|
||||
public static function loadSingleton($file)
|
||||
{
|
||||
self::$instancefeature = unserialize(file_get_contents($file));
|
||||
|
||||
if (! is_object(self::$instancefeature) || get_class(self::$instancefeature) != "PMLicensedFeatures") {
|
||||
throw new Exception("Can't load main PMLicensedFeatures object.");
|
||||
}
|
||||
|
||||
return self::$instancefeature;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,7 +54,8 @@ class pmLicenseManager
|
||||
|
||||
$this->result = $results['RESULT'];
|
||||
$this->features = array();
|
||||
$this->fixtures = array();
|
||||
$this->licensedfeatures = array();
|
||||
$this->licensedfeaturesList = array();
|
||||
if (in_array($this->result, $validStatus)) {
|
||||
$this->serial="3ptta7Xko2prrptrZnSd356aqmPXvMrayNPFj6CLdaR1pWtrW6qPw9jV0OHjxrDGu8LVxtmSm9nP5kR23HRpdZWccpeui+bKkK<6B>DoqCt2Kqgpq6Vg37s";
|
||||
$info['FIRST_NAME'] = $results['DATA']['FIRST_NAME'];
|
||||
@@ -67,8 +68,8 @@ class pmLicenseManager
|
||||
$this->id = $results ['ID'];
|
||||
$this->expireIn = $this->getExpireIn ();
|
||||
$this->features = $this->result!='TMINUS'?isset($results ['DATA']['CUSTOMER_PLUGIN'])? $results ['DATA']['CUSTOMER_PLUGIN'] : $this->getActiveFeatures() : array();
|
||||
$this->fixtures = $this->result!='TMINUS'?isset($results ['DATA']['CUSTOMER_FIXTURE'])? $results ['DATA']['CUSTOMER_FIXTURE'] : $this->getActiveFixtures() : array();
|
||||
$this->fixturesList = isset($results ['DATA']['FIXTURE_LIST'])? $results ['DATA']['FIXTURE_LIST'] : null;
|
||||
$this->licensedfeatures = $this->result!='TMINUS'?isset($results ['DATA']['CUSTOMER_LICENSED_FEATURES'])? $results ['DATA']['CUSTOMER_LICENSED_FEATURES'] : array() : array();
|
||||
$this->licensedfeaturesList = isset($results ['DATA']['LICENSED_FEATURES_LIST'])? $results ['DATA']['LICENSED_FEATURES_LIST'] : null;
|
||||
$this->status = $this->getCurrentLicenseStatus ();
|
||||
|
||||
if (isset ( $results ['LIC'] )) {
|
||||
@@ -507,13 +508,5 @@ class pmLicenseManager
|
||||
}
|
||||
return unserialize(G::decrypt($this->serial, file_get_contents(PATH_PLUGINS . 'enterprise/data/default')));
|
||||
}
|
||||
|
||||
public function getActiveFixtures()
|
||||
{
|
||||
if (!file_exists ( PATH_PLUGINS . 'enterprise/data/default' )) {
|
||||
return array();
|
||||
}
|
||||
return unserialize(G::decrypt($this->serial, file_get_contents(PATH_PLUGINS . 'enterprise/data/default')));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -125,7 +125,7 @@ class AddonsStore extends BaseAddonsStore
|
||||
} else {
|
||||
$status = "available";
|
||||
$enabled = false;
|
||||
if (!$addonInLicense && in_array($addon->getAddonName(), $licenseManager->fixtures) == 1) {
|
||||
if (!$addonInLicense && in_array($addon->getAddonName(), $licenseManager->licensedfeatures) == 1) {
|
||||
$status = "installed";
|
||||
$enabled = true;
|
||||
}
|
||||
@@ -172,7 +172,7 @@ class AddonsStore extends BaseAddonsStore
|
||||
return $result;
|
||||
}
|
||||
|
||||
public static function addonFixtureList()
|
||||
public static function addonFeatureList()
|
||||
{
|
||||
$result = array();
|
||||
|
||||
@@ -425,17 +425,17 @@ class AddonsStore extends BaseAddonsStore
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$list = unserialize($pmLicenseManagerO->fixturesList);
|
||||
foreach ($list['addons'] as $key => $fixture) {
|
||||
$list = unserialize($pmLicenseManagerO->licensedfeaturesList);
|
||||
foreach ($list['addons'] as $key => $feature) {
|
||||
$addon = new AddonsManager();
|
||||
$addon->setAddonId($fixture['name']);
|
||||
$addon->setStoreId($fixture['guid']);
|
||||
$addon->setAddonName($fixture['name']);
|
||||
$addon->setAddonDescription($fixture['description']);
|
||||
$addon->setAddonNick($fixture['nick']);
|
||||
$addon->setAddonId($feature['name']);
|
||||
$addon->setStoreId($feature['guid']);
|
||||
$addon->setAddonName($feature['name']);
|
||||
$addon->setAddonDescription($feature['description']);
|
||||
$addon->setAddonNick($feature['nick']);
|
||||
$addon->setAddonVersion("");
|
||||
$addon->setAddonStatus($fixture['status']);
|
||||
$addon->setAddonType("fixture");
|
||||
$addon->setAddonStatus($feature['status']);
|
||||
$addon->setAddonType("features");
|
||||
$addon->setAddonPublisher("Colosa");
|
||||
$addon->setAddonDownloadUrl("");
|
||||
$addon->setAddonDownloadMd5("");
|
||||
|
||||
@@ -499,7 +499,7 @@ Ext.onReady(function() {
|
||||
"force": true
|
||||
}
|
||||
});
|
||||
addonsFixtureStore.load({
|
||||
addonsFeaturesStore.load({
|
||||
params: {
|
||||
"force": true
|
||||
}
|
||||
@@ -615,18 +615,18 @@ Ext.onReady(function() {
|
||||
});
|
||||
|
||||
|
||||
var addonsFixtureStore = new Ext.data.JsonStore({
|
||||
var addonsFeaturesStore = new Ext.data.JsonStore({
|
||||
proxy: new Ext.data.HttpProxy({
|
||||
url: "addonsStoreAction",
|
||||
method: "POST"
|
||||
}),
|
||||
baseParams: {
|
||||
"action": "addonsList",
|
||||
"type" : "fixture"
|
||||
"type" : "features"
|
||||
},
|
||||
autoDestroy: true,
|
||||
messageProperty: 'error',
|
||||
storeId: 'addonsFixtureStore',
|
||||
storeId: 'addonsFeaturesStore',
|
||||
root: 'addons',
|
||||
idProperty: 'id',
|
||||
sortInfo: {
|
||||
@@ -638,14 +638,14 @@ Ext.onReady(function() {
|
||||
'log', 'progress'],
|
||||
listeners: {
|
||||
'beforeload': function(store, options) {
|
||||
Ext.ComponentMgr.get('loading-fixture-indicator').setValue('<img src="/images/documents/_indicator.gif" />');
|
||||
Ext.ComponentMgr.get('loading-features-indicator').setValue('<img src="/images/documents/_indicator.gif" />');
|
||||
return true;
|
||||
},
|
||||
"exception": function(e, type, action, options, response, arg) {
|
||||
Ext.ComponentMgr.get('loading-fixture-indicator').setValue('<span class="button_menu_ext ss_sprite ss_status_offline"> </span>');
|
||||
Ext.ComponentMgr.get('loading-features-indicator').setValue('<span class="button_menu_ext ss_sprite ss_status_offline"> </span>');
|
||||
},
|
||||
"load": function(store, records, options) {
|
||||
Ext.ComponentMgr.get('loading-fixture-indicator').setValue("");
|
||||
Ext.ComponentMgr.get('loading-features-indicator').setValue("");
|
||||
progressWindow.hide();
|
||||
store.filterBy(function (record, id) {
|
||||
if (record.get('type') == 'core') {
|
||||
@@ -659,8 +659,8 @@ Ext.onReady(function() {
|
||||
return true;
|
||||
});
|
||||
|
||||
if (addonsFixtureGrid.disabled) {
|
||||
addonsFixtureGrid.enable();
|
||||
if (addonsFeatureGrid.disabled) {
|
||||
addonsFeatureGrid.enable();
|
||||
}
|
||||
|
||||
errors = store.reader.jsonData.errors;
|
||||
@@ -677,11 +677,11 @@ Ext.onReady(function() {
|
||||
}
|
||||
|
||||
if (store_errors.length > 0) {
|
||||
Ext.ComponentMgr.get('loading-fixture-indicator').setValue('<span class="button_menu_ext ss_sprite ss_status_offline" > </span>');
|
||||
Ext.ComponentMgr.get('loading-features-indicator').setValue('<span class="button_menu_ext ss_sprite ss_status_offline" > </span>');
|
||||
//storeError(error_msg);
|
||||
reloadTask.cancel();
|
||||
} else {
|
||||
Ext.ComponentMgr.get('loading-fixture-indicator').setValue('<span class="button_menu_ext ss_sprite ss_status_online"> </span>');
|
||||
Ext.ComponentMgr.get('loading-features-indicator').setValue('<span class="button_menu_ext ss_sprite ss_status_online"> </span>');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1512,15 +1512,15 @@ Ext.onReady(function() {
|
||||
}
|
||||
});
|
||||
|
||||
// create the Grid Fixtures
|
||||
var addonsFixtureGrid = new Ext.grid.GridPanel({
|
||||
store: addonsFixtureStore,
|
||||
// create the Grid Features
|
||||
var addonsFeatureGrid = new Ext.grid.GridPanel({
|
||||
store: addonsFeaturesStore,
|
||||
colspan: 2,
|
||||
flex: 1,
|
||||
padding: 5,
|
||||
columns: [
|
||||
{
|
||||
id : 'icon-column-fixture',
|
||||
id : 'icon-column-feature',
|
||||
header : '',
|
||||
width : 30,
|
||||
hideable : false,
|
||||
@@ -1530,7 +1530,7 @@ Ext.onReady(function() {
|
||||
}
|
||||
},
|
||||
{
|
||||
id :'nick-column-fixture',
|
||||
id :'nick-column-feature',
|
||||
header : _('ID_NAME'),
|
||||
width : 300,
|
||||
sortable : true,
|
||||
@@ -1546,13 +1546,13 @@ Ext.onReady(function() {
|
||||
}
|
||||
},
|
||||
{
|
||||
id :'description-column-fixture',
|
||||
id :'description-column-feature',
|
||||
header : _('ID_DESCRIPTION'),
|
||||
width : 400,
|
||||
dataIndex: 'description'
|
||||
},
|
||||
{
|
||||
id : 'enabled-column-fixture',
|
||||
id : 'enabled-column-feature',
|
||||
header : _('ID_ENABLED'),
|
||||
width : 60,
|
||||
dataIndex: 'enabled',
|
||||
@@ -1566,7 +1566,7 @@ Ext.onReady(function() {
|
||||
}
|
||||
},
|
||||
{
|
||||
id : "status-fixture",
|
||||
id : "status-feature",
|
||||
header : _('ID_STATUS'),
|
||||
width : 120,
|
||||
sortable : false,
|
||||
@@ -1627,7 +1627,7 @@ Ext.onReady(function() {
|
||||
disabled: (INTERNET_CONNECTION == 1)? false : true,
|
||||
handler: function (b, e) {
|
||||
reloadTask.cancel();
|
||||
addonsFixtureStore.load({
|
||||
addonsFeaturesStore.load({
|
||||
params: {
|
||||
"force": true
|
||||
}
|
||||
@@ -1637,7 +1637,7 @@ Ext.onReady(function() {
|
||||
'->',
|
||||
{
|
||||
xtype:"displayfield",
|
||||
id:'loading-fixture-indicator'
|
||||
id:'loading-features-indicator'
|
||||
}
|
||||
],
|
||||
listeners: {
|
||||
@@ -1709,7 +1709,7 @@ Ext.onReady(function() {
|
||||
items : addonsGrid
|
||||
},{
|
||||
title: _('ID_ENTERPRISE_FIXTURES'),
|
||||
items : addonsFixtureGrid
|
||||
items : addonsFeatureGrid
|
||||
}
|
||||
]
|
||||
});
|
||||
@@ -1745,7 +1745,7 @@ Ext.onReady(function() {
|
||||
|
||||
addonsGrid.addListener("rowcontextmenu", onMessageMnuContext, this);
|
||||
|
||||
addonsFixtureGrid.on("rowcontextmenu",
|
||||
addonsFeatureGrid.on("rowcontextmenu",
|
||||
function (grid, rowIndex, evt) {
|
||||
var sm = grid.getSelectionModel();
|
||||
sm.selectRow(rowIndex, sm.isSelected(rowIndex));
|
||||
@@ -1753,7 +1753,7 @@ Ext.onReady(function() {
|
||||
this
|
||||
);
|
||||
|
||||
addonsFixtureGrid.addListener("rowcontextmenu", onMessageMnuContext, this);
|
||||
addonsFeatureGrid.addListener("rowcontextmenu", onMessageMnuContext, this);
|
||||
|
||||
///////
|
||||
var viewport = new Ext.Viewport({
|
||||
@@ -1767,7 +1767,7 @@ Ext.onReady(function() {
|
||||
|
||||
if (licensed) {
|
||||
addonsStore.load();
|
||||
addonsFixtureStore.load();
|
||||
addonsFeaturesStore.load();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user