PM-520 Cambios en el Enterprise Plugins Manager

- Se agrego una interfaz para administrar los fixtures.
This commit is contained in:
Marco Antonio Nina
2014-10-08 14:38:30 -04:00
parent b81f6dfb73
commit ed70789047
5 changed files with 131 additions and 49 deletions

View File

@@ -225,8 +225,8 @@ class Bootstrap
self::registerClass("cronFile", PATH_CLASSES . "class.plugin.php"); self::registerClass("cronFile", PATH_CLASSES . "class.plugin.php");
self::registerClass("pluginDetail", PATH_CLASSES . "class.pluginRegistry.php"); self::registerClass("pluginDetail", PATH_CLASSES . "class.pluginRegistry.php");
self::registerClass("PMPluginRegistry", PATH_CLASSES . "class.pluginRegistry.php"); self::registerClass("PMPluginRegistry", PATH_CLASSES . "class.pluginRegistry.php");
self::registerClass("fixtureDetail", PATH_CLASSES . "class.fixtureRegistry.php"); self::registerClass("featuresDetail", PATH_CLASSES . "class.licensedFeatures.php");
self::registerClass("PMFixtureRegistry", PATH_CLASSES . "class.fixtureRegistry.php"); self::registerClass("PMLicensedFeatures", PATH_CLASSES . "class.licensedFeatures.php");
self::registerClass("PMDashlet", PATH_CLASSES . "class.pmDashlet.php"); self::registerClass("PMDashlet", PATH_CLASSES . "class.pmDashlet.php");
self::registerClass("pmGauge", PATH_CLASSES . "class.pmGauge.php"); self::registerClass("pmGauge", PATH_CLASSES . "class.pmGauge.php");
self::registerClass("pmPhing", PATH_CLASSES . "class.pmPhing.php"); self::registerClass("pmPhing", PATH_CLASSES . "class.pmPhing.php");

View 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;
}
}

View File

@@ -54,7 +54,8 @@ class pmLicenseManager
$this->result = $results['RESULT']; $this->result = $results['RESULT'];
$this->features = array(); $this->features = array();
$this->fixtures = array(); $this->licensedfeatures = array();
$this->licensedfeaturesList = array();
if (in_array($this->result, $validStatus)) { if (in_array($this->result, $validStatus)) {
$this->serial="3ptta7Xko2prrptrZnSd356aqmPXvMrayNPFj6CLdaR1pWtrW6qPw9jV0OHjxrDGu8LVxtmSm9nP5kR23HRpdZWccpeui+bKkK<6B>DoqCt2Kqgpq6Vg37s"; $this->serial="3ptta7Xko2prrptrZnSd356aqmPXvMrayNPFj6CLdaR1pWtrW6qPw9jV0OHjxrDGu8LVxtmSm9nP5kR23HRpdZWccpeui+bKkK<6B>DoqCt2Kqgpq6Vg37s";
$info['FIRST_NAME'] = $results['DATA']['FIRST_NAME']; $info['FIRST_NAME'] = $results['DATA']['FIRST_NAME'];
@@ -67,8 +68,8 @@ class pmLicenseManager
$this->id = $results ['ID']; $this->id = $results ['ID'];
$this->expireIn = $this->getExpireIn (); $this->expireIn = $this->getExpireIn ();
$this->features = $this->result!='TMINUS'?isset($results ['DATA']['CUSTOMER_PLUGIN'])? $results ['DATA']['CUSTOMER_PLUGIN'] : $this->getActiveFeatures() : array(); $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->licensedfeatures = $this->result!='TMINUS'?isset($results ['DATA']['CUSTOMER_LICENSED_FEATURES'])? $results ['DATA']['CUSTOMER_LICENSED_FEATURES'] : array() : array();
$this->fixturesList = isset($results ['DATA']['FIXTURE_LIST'])? $results ['DATA']['FIXTURE_LIST'] : null; $this->licensedfeaturesList = isset($results ['DATA']['LICENSED_FEATURES_LIST'])? $results ['DATA']['LICENSED_FEATURES_LIST'] : null;
$this->status = $this->getCurrentLicenseStatus (); $this->status = $this->getCurrentLicenseStatus ();
if (isset ( $results ['LIC'] )) { if (isset ( $results ['LIC'] )) {
@@ -507,13 +508,5 @@ class pmLicenseManager
} }
return unserialize(G::decrypt($this->serial, file_get_contents(PATH_PLUGINS . 'enterprise/data/default'))); 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')));
}
} }

View File

@@ -125,7 +125,7 @@ class AddonsStore extends BaseAddonsStore
} else { } else {
$status = "available"; $status = "available";
$enabled = false; $enabled = false;
if (!$addonInLicense && in_array($addon->getAddonName(), $licenseManager->fixtures) == 1) { if (!$addonInLicense && in_array($addon->getAddonName(), $licenseManager->licensedfeatures) == 1) {
$status = "installed"; $status = "installed";
$enabled = true; $enabled = true;
} }
@@ -172,7 +172,7 @@ class AddonsStore extends BaseAddonsStore
return $result; return $result;
} }
public static function addonFixtureList() public static function addonFeatureList()
{ {
$result = array(); $result = array();
@@ -425,17 +425,17 @@ class AddonsStore extends BaseAddonsStore
} }
} }
} else { } else {
$list = unserialize($pmLicenseManagerO->fixturesList); $list = unserialize($pmLicenseManagerO->licensedfeaturesList);
foreach ($list['addons'] as $key => $fixture) { foreach ($list['addons'] as $key => $feature) {
$addon = new AddonsManager(); $addon = new AddonsManager();
$addon->setAddonId($fixture['name']); $addon->setAddonId($feature['name']);
$addon->setStoreId($fixture['guid']); $addon->setStoreId($feature['guid']);
$addon->setAddonName($fixture['name']); $addon->setAddonName($feature['name']);
$addon->setAddonDescription($fixture['description']); $addon->setAddonDescription($feature['description']);
$addon->setAddonNick($fixture['nick']); $addon->setAddonNick($feature['nick']);
$addon->setAddonVersion(""); $addon->setAddonVersion("");
$addon->setAddonStatus($fixture['status']); $addon->setAddonStatus($feature['status']);
$addon->setAddonType("fixture"); $addon->setAddonType("features");
$addon->setAddonPublisher("Colosa"); $addon->setAddonPublisher("Colosa");
$addon->setAddonDownloadUrl(""); $addon->setAddonDownloadUrl("");
$addon->setAddonDownloadMd5(""); $addon->setAddonDownloadMd5("");

View File

@@ -499,7 +499,7 @@ Ext.onReady(function() {
"force": true "force": true
} }
}); });
addonsFixtureStore.load({ addonsFeaturesStore.load({
params: { params: {
"force": true "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({ proxy: new Ext.data.HttpProxy({
url: "addonsStoreAction", url: "addonsStoreAction",
method: "POST" method: "POST"
}), }),
baseParams: { baseParams: {
"action": "addonsList", "action": "addonsList",
"type" : "fixture" "type" : "features"
}, },
autoDestroy: true, autoDestroy: true,
messageProperty: 'error', messageProperty: 'error',
storeId: 'addonsFixtureStore', storeId: 'addonsFeaturesStore',
root: 'addons', root: 'addons',
idProperty: 'id', idProperty: 'id',
sortInfo: { sortInfo: {
@@ -638,14 +638,14 @@ Ext.onReady(function() {
'log', 'progress'], 'log', 'progress'],
listeners: { listeners: {
'beforeload': function(store, options) { '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; return true;
}, },
"exception": function(e, type, action, options, response, arg) { "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">&nbsp;</span>'); Ext.ComponentMgr.get('loading-features-indicator').setValue('<span class="button_menu_ext ss_sprite ss_status_offline">&nbsp;</span>');
}, },
"load": function(store, records, options) { "load": function(store, records, options) {
Ext.ComponentMgr.get('loading-fixture-indicator').setValue(""); Ext.ComponentMgr.get('loading-features-indicator').setValue("");
progressWindow.hide(); progressWindow.hide();
store.filterBy(function (record, id) { store.filterBy(function (record, id) {
if (record.get('type') == 'core') { if (record.get('type') == 'core') {
@@ -659,8 +659,8 @@ Ext.onReady(function() {
return true; return true;
}); });
if (addonsFixtureGrid.disabled) { if (addonsFeatureGrid.disabled) {
addonsFixtureGrid.enable(); addonsFeatureGrid.enable();
} }
errors = store.reader.jsonData.errors; errors = store.reader.jsonData.errors;
@@ -677,11 +677,11 @@ Ext.onReady(function() {
} }
if (store_errors.length > 0) { if (store_errors.length > 0) {
Ext.ComponentMgr.get('loading-fixture-indicator').setValue('<span class="button_menu_ext ss_sprite ss_status_offline" >&nbsp;</span>'); Ext.ComponentMgr.get('loading-features-indicator').setValue('<span class="button_menu_ext ss_sprite ss_status_offline" >&nbsp;</span>');
//storeError(error_msg); //storeError(error_msg);
reloadTask.cancel(); reloadTask.cancel();
} else { } else {
Ext.ComponentMgr.get('loading-fixture-indicator').setValue('<span class="button_menu_ext ss_sprite ss_status_online">&nbsp;</span>'); Ext.ComponentMgr.get('loading-features-indicator').setValue('<span class="button_menu_ext ss_sprite ss_status_online">&nbsp;</span>');
} }
} }
} }
@@ -1512,15 +1512,15 @@ Ext.onReady(function() {
} }
}); });
// create the Grid Fixtures // create the Grid Features
var addonsFixtureGrid = new Ext.grid.GridPanel({ var addonsFeatureGrid = new Ext.grid.GridPanel({
store: addonsFixtureStore, store: addonsFeaturesStore,
colspan: 2, colspan: 2,
flex: 1, flex: 1,
padding: 5, padding: 5,
columns: [ columns: [
{ {
id : 'icon-column-fixture', id : 'icon-column-feature',
header : '', header : '',
width : 30, width : 30,
hideable : false, hideable : false,
@@ -1530,7 +1530,7 @@ Ext.onReady(function() {
} }
}, },
{ {
id :'nick-column-fixture', id :'nick-column-feature',
header : _('ID_NAME'), header : _('ID_NAME'),
width : 300, width : 300,
sortable : true, sortable : true,
@@ -1546,13 +1546,13 @@ Ext.onReady(function() {
} }
}, },
{ {
id :'description-column-fixture', id :'description-column-feature',
header : _('ID_DESCRIPTION'), header : _('ID_DESCRIPTION'),
width : 400, width : 400,
dataIndex: 'description' dataIndex: 'description'
}, },
{ {
id : 'enabled-column-fixture', id : 'enabled-column-feature',
header : _('ID_ENABLED'), header : _('ID_ENABLED'),
width : 60, width : 60,
dataIndex: 'enabled', dataIndex: 'enabled',
@@ -1566,7 +1566,7 @@ Ext.onReady(function() {
} }
}, },
{ {
id : "status-fixture", id : "status-feature",
header : _('ID_STATUS'), header : _('ID_STATUS'),
width : 120, width : 120,
sortable : false, sortable : false,
@@ -1627,7 +1627,7 @@ Ext.onReady(function() {
disabled: (INTERNET_CONNECTION == 1)? false : true, disabled: (INTERNET_CONNECTION == 1)? false : true,
handler: function (b, e) { handler: function (b, e) {
reloadTask.cancel(); reloadTask.cancel();
addonsFixtureStore.load({ addonsFeaturesStore.load({
params: { params: {
"force": true "force": true
} }
@@ -1637,7 +1637,7 @@ Ext.onReady(function() {
'->', '->',
{ {
xtype:"displayfield", xtype:"displayfield",
id:'loading-fixture-indicator' id:'loading-features-indicator'
} }
], ],
listeners: { listeners: {
@@ -1709,7 +1709,7 @@ Ext.onReady(function() {
items : addonsGrid items : addonsGrid
},{ },{
title: _('ID_ENTERPRISE_FIXTURES'), title: _('ID_ENTERPRISE_FIXTURES'),
items : addonsFixtureGrid items : addonsFeatureGrid
} }
] ]
}); });
@@ -1745,7 +1745,7 @@ Ext.onReady(function() {
addonsGrid.addListener("rowcontextmenu", onMessageMnuContext, this); addonsGrid.addListener("rowcontextmenu", onMessageMnuContext, this);
addonsFixtureGrid.on("rowcontextmenu", addonsFeatureGrid.on("rowcontextmenu",
function (grid, rowIndex, evt) { function (grid, rowIndex, evt) {
var sm = grid.getSelectionModel(); var sm = grid.getSelectionModel();
sm.selectRow(rowIndex, sm.isSelected(rowIndex)); sm.selectRow(rowIndex, sm.isSelected(rowIndex));
@@ -1753,7 +1753,7 @@ Ext.onReady(function() {
this this
); );
addonsFixtureGrid.addListener("rowcontextmenu", onMessageMnuContext, this); addonsFeatureGrid.addListener("rowcontextmenu", onMessageMnuContext, this);
/////// ///////
var viewport = new Ext.Viewport({ var viewport = new Ext.Viewport({
@@ -1767,7 +1767,7 @@ Ext.onReady(function() {
if (licensed) { if (licensed) {
addonsStore.load(); addonsStore.load();
addonsFixtureStore.load(); addonsFeaturesStore.load();
} }
}); });