Index: trunk/kernel/admin_templates/incs/ajax.js
===================================================================
diff -u -r5110 -r5302
--- trunk/kernel/admin_templates/incs/ajax.js (.../ajax.js) (revision 5110)
+++ trunk/kernel/admin_templates/incs/ajax.js (.../ajax.js) (revision 5302)
@@ -121,26 +121,8 @@
/*$div.style.border = '1px solid green';
$div.style.backgroundColor = '#FF0000';*/
- $div.innerHTML = '
'+Request.progressText+'
 |
';
-
- /*var $table = addElement($div, 'table');
- $table.style.width = '100%';
- $table.style.height = '100%';
- var $tbody = addElement($table, 'tbody');
- var $row = addElement($tbody, 'tr');
- var $cell = addElement($row, 'td');
- $cell.style.textAlign = 'center';
-
- $cell.appendChild( document.createTextNode(Request.progressText) );
- addElement($cell, 'br');
-
- var $img = addElement($cell, 'img');
- $img.src = 'img/ajax_progress.gif';
- $img.align = 'absmiddle';
- $img.width = 100;
- $img.height = 7;
- $img.alt = Request.progressText;*/
-
+ var $image_base = img_path.replace('#MODULE#', 'kernel');
+ $div.innerHTML = ''+Request.progressText+'
 |
';
return $div;
}
Index: trunk/core/admin_templates/categories/categories_edit_permissions.tpl
===================================================================
diff -u -r5296 -r5302
--- trunk/core/admin_templates/categories/categories_edit_permissions.tpl (.../categories_edit_permissions.tpl) (revision 5296)
+++ trunk/core/admin_templates/categories/categories_edit_permissions.tpl (.../categories_edit_permissions.tpl) (revision 5302)
@@ -1,7 +1,7 @@
-
+
@@ -24,33 +24,34 @@
// ActivePrefix not set or has non-existing prefix value
this.ActivePrefix = this.TabRegistry[0]['prefix'];
}
- this.go_to_group();
+ Grids['g'].SelectFirst();
}
Catalog.prototype.go_to_group = function($group_id) {
if (!isset($group_id)) {
$group_id = 0; // gets current group
}
else {
- set_hidden_field('group_id', $group_id);
+ set_hidden_field('current_group_id', $group_id);
}
this.switchTab(); // refresh current item tab
}
Catalog.prototype.refreshTab = function($prefix, $div_id) {
- var $group_id = get_hidden_field('group_id');
+ var $group_id = get_hidden_field('current_group_id');
+// alert('refreshTab. GroupID: '+$group_id);
var $tab_group_id = document.getElementById($div_id).getAttribute('group_id');
if ($group_id != $tab_group_id) {
// query tab content only in case if not queried or category don't match
var $url = this.URLMask.replace('#ITEM_PREFIX#', $prefix).replace('#GROUP_ID#', $group_id);
this.BusyRequest[$prefix] = false;
- alert('quering_url: '+$url);
+
Request.makeRequest($url, this.BusyRequest[$prefix], $div_id, this.successCallback, this.errorCallback, $div_id, this);
}
- else {
+ /*else {
alert('refresh disabled = {tab: '+this.ActivePrefix+'; group_id: '+$group_id+'}');
- }
+ }*/
}
// adds information about tab to tab_registry
@@ -64,6 +65,14 @@
this.TabRegistry[$index]['index'] = $index;
}
+ Catalog.prototype.submit_event = function($prefix_special, $event, $t) {
+ if (isset($event)) set_hidden_field('events[' + $prefix_special + ']', $event);
+ if (isset($t)) set_hidden_field('t', $t);
+
+ var $tab_id = this.queryTabRegistry('prefix', this.ActivePrefix, 'tab_id');
+ this.submit_kernel_form($tab_id);
+ }
+
var $PermManager = new Catalog('', 'permmanager_');
a_toolbar = new ToolBar();
@@ -150,20 +159,19 @@
}
Grids['g'].OnUnSelect = function ($id) {
- /*set_hidden_field('group_id', $id);
+ set_hidden_field('group_id', $id);
set_hidden_field('item_prefix', $PermManager.ActivePrefix);
- $PermManager.submit_event($PermManager.ActivePrefix, 'OnPreSave', 'categories/permissions_tab');*/
+ $PermManager.submit_event('c', 'OnPreSave', 'categories/permissions_tab');
}
- Grids['g'].SelectFirst = function ($id) {
+ Grids['g'].SelectFirst = function () {
for (var $i in this.Items) {
this.Items[$i].Select();
break;
}
}
Grids['g'].RadioMode = true;
- Grids['g'].SelectFirst();
\ No newline at end of file
Index: trunk/kernel/admin_templates/categories/categories_edit_permissions.tpl
===================================================================
diff -u -r5296 -r5302
--- trunk/kernel/admin_templates/categories/categories_edit_permissions.tpl (.../categories_edit_permissions.tpl) (revision 5296)
+++ trunk/kernel/admin_templates/categories/categories_edit_permissions.tpl (.../categories_edit_permissions.tpl) (revision 5302)
@@ -1,7 +1,7 @@
-
+
@@ -24,33 +24,34 @@
// ActivePrefix not set or has non-existing prefix value
this.ActivePrefix = this.TabRegistry[0]['prefix'];
}
- this.go_to_group();
+ Grids['g'].SelectFirst();
}
Catalog.prototype.go_to_group = function($group_id) {
if (!isset($group_id)) {
$group_id = 0; // gets current group
}
else {
- set_hidden_field('group_id', $group_id);
+ set_hidden_field('current_group_id', $group_id);
}
this.switchTab(); // refresh current item tab
}
Catalog.prototype.refreshTab = function($prefix, $div_id) {
- var $group_id = get_hidden_field('group_id');
+ var $group_id = get_hidden_field('current_group_id');
+// alert('refreshTab. GroupID: '+$group_id);
var $tab_group_id = document.getElementById($div_id).getAttribute('group_id');
if ($group_id != $tab_group_id) {
// query tab content only in case if not queried or category don't match
var $url = this.URLMask.replace('#ITEM_PREFIX#', $prefix).replace('#GROUP_ID#', $group_id);
this.BusyRequest[$prefix] = false;
- alert('quering_url: '+$url);
+
Request.makeRequest($url, this.BusyRequest[$prefix], $div_id, this.successCallback, this.errorCallback, $div_id, this);
}
- else {
+ /*else {
alert('refresh disabled = {tab: '+this.ActivePrefix+'; group_id: '+$group_id+'}');
- }
+ }*/
}
// adds information about tab to tab_registry
@@ -64,6 +65,14 @@
this.TabRegistry[$index]['index'] = $index;
}
+ Catalog.prototype.submit_event = function($prefix_special, $event, $t) {
+ if (isset($event)) set_hidden_field('events[' + $prefix_special + ']', $event);
+ if (isset($t)) set_hidden_field('t', $t);
+
+ var $tab_id = this.queryTabRegistry('prefix', this.ActivePrefix, 'tab_id');
+ this.submit_kernel_form($tab_id);
+ }
+
var $PermManager = new Catalog('', 'permmanager_');
a_toolbar = new ToolBar();
@@ -150,20 +159,19 @@
}
Grids['g'].OnUnSelect = function ($id) {
- /*set_hidden_field('group_id', $id);
+ set_hidden_field('group_id', $id);
set_hidden_field('item_prefix', $PermManager.ActivePrefix);
- $PermManager.submit_event($PermManager.ActivePrefix, 'OnPreSave', 'categories/permissions_tab');*/
+ $PermManager.submit_event('c', 'OnPreSave', 'categories/permissions_tab');
}
- Grids['g'].SelectFirst = function ($id) {
+ Grids['g'].SelectFirst = function () {
for (var $i in this.Items) {
this.Items[$i].Select();
break;
}
}
Grids['g'].RadioMode = true;
- Grids['g'].SelectFirst();
\ No newline at end of file
Index: trunk/core/admin_templates/categories/permissions_tab.tpl
===================================================================
diff -u -r5296 -r5302
--- trunk/core/admin_templates/categories/permissions_tab.tpl (.../permissions_tab.tpl) (revision 5296)
+++ trunk/core/admin_templates/categories/permissions_tab.tpl (.../permissions_tab.tpl) (revision 5302)
@@ -4,15 +4,23 @@
document.getElementById('_div').setAttribute('group_id', );
#separator#
+
">
works |
-
+
+
from ajax [prefix: ]; [group_id: ]
\ No newline at end of file
Index: trunk/kernel/admin_templates/incs/grid.js
===================================================================
diff -u -r5257 -r5302
--- trunk/kernel/admin_templates/incs/grid.js (.../grid.js) (revision 5257)
+++ trunk/kernel/admin_templates/incs/grid.js (.../grid.js) (revision 5302)
@@ -155,8 +155,11 @@
this.Toggle()
}
else {
- this.Grid.ClearSelection(null,'GridItem.Click');
- this.Toggle();
+ if (!(this.Grid.RadioMode && this.Grid.LastSelectedId == this.ItemId)) {
+ // don't clear selection if item same as current is selected
+ this.Grid.ClearSelection(null,'GridItem.Click');
+ this.Toggle();
+ }
}
}
this.Grid.CheckDependencies();
Index: trunk/kernel/admin_templates/categories/permissions_tab.tpl
===================================================================
diff -u -r5296 -r5302
--- trunk/kernel/admin_templates/categories/permissions_tab.tpl (.../permissions_tab.tpl) (revision 5296)
+++ trunk/kernel/admin_templates/categories/permissions_tab.tpl (.../permissions_tab.tpl) (revision 5302)
@@ -4,15 +4,23 @@
document.getElementById('_div').setAttribute('group_id', );
#separator#
+
">
works |
-
+
+
from ajax [prefix: ]; [group_id: ]
\ No newline at end of file
Index: trunk/kernel/units/permissions/permissions_event_handler.php
===================================================================
diff -u -r5206 -r5302
--- trunk/kernel/units/permissions/permissions_event_handler.php (.../permissions_event_handler.php) (revision 5206)
+++ trunk/kernel/units/permissions/permissions_event_handler.php (.../permissions_event_handler.php) (revision 5302)
@@ -3,11 +3,34 @@
class PermissionsEventHandler extends InpDBEventHandler {
/**
+ * Save category permissions
+ *
+ * @param kEvent $event
+ */
+ function OnCategorySavePermissions(&$event)
+ {
+ $group_id = $this->Application->GetVar('group_id');
+ $permissions = $this->Application->GetVar($event->getPrefixSpecial(true));
+ if (isset($permissions[$group_id])) {
+ $permissions = $permissions[$group_id];
+
+
+
+
+
+
+ }
+
+ $event->MasterEvent->SetRedirectParam('item_prefix', $this->Application->GetVar('item_prefix'));
+ $event->MasterEvent->SetRedirectParam('group_id', $this->Application->GetVar('group_id'));
+ }
+
+ /**
* Saves permissions while editing group
*
* @param kEvent $event
*/
- function OnSavePermissions(&$event)
+ function OnGroupSavePermissions(&$event)
{
$permissions = $this->Application->GetVar($event->getPrefixSpecial(true));
if (!$permissions) {
Index: trunk/core/units/permissions/permissions_config.php
===================================================================
diff -u -r4790 -r5302
--- trunk/core/units/permissions/permissions_config.php (.../permissions_config.php) (revision 4790)
+++ trunk/core/units/permissions/permissions_config.php (.../permissions_config.php) (revision 5302)
@@ -8,32 +8,45 @@
'TagProcessorClass' => Array('class'=>'PermissionsTagProcessor','file'=>'permissions_tag_processor.php','build_event'=>'OnBuild'),
'AutoLoad' => true,
- 'Hooks' => Array(
- Array(
- 'Mode' => hAFTER,
- 'Conditional' => true,
- 'HookToPrefix' => '#PARENT#',
- 'HookToSpecial' => '*',
- 'HookToEvent' => Array('OnPreSave'),
- 'DoPrefix' => '',
- 'DoSpecial' => '*',
- 'DoEvent' => 'OnSavePermissions',
- ),
- ),
-
'Clones' => Array(
'c-perm' => Array(
'Constrain' => 'Type = 0', // non-system
'ParentPrefix' => 'c',
'ForeignKey' => 'CatId',
'ParentTableKey' => 'CategoryId',
+
+ 'Hooks' => Array(
+ Array(
+ 'Mode' => hAFTER,
+ 'Conditional' => true,
+ 'HookToPrefix' => '#PARENT#',
+ 'HookToSpecial' => '*',
+ 'HookToEvent' => Array('OnPreSave'),
+ 'DoPrefix' => '',
+ 'DoSpecial' => '*',
+ 'DoEvent' => 'OnCategorySavePermissions',
+ ),
+ ),
),
'g-perm' => Array(
'Constrain' => 'Type = 1', // system
'ParentPrefix' => 'g',
'ForeignKey' => 'GroupId',
'ParentTableKey' => 'GroupId',
+
+ 'Hooks' => Array(
+ Array(
+ 'Mode' => hAFTER,
+ 'Conditional' => true,
+ 'HookToPrefix' => '#PARENT#',
+ 'HookToSpecial' => '*',
+ 'HookToEvent' => Array('OnPreSave'),
+ 'DoPrefix' => '',
+ 'DoSpecial' => '*',
+ 'DoEvent' => 'OnGroupSavePermissions',
+ ),
+ ),
),
),
Index: trunk/core/units/permissions/permissions_event_handler.php
===================================================================
diff -u -r5206 -r5302
--- trunk/core/units/permissions/permissions_event_handler.php (.../permissions_event_handler.php) (revision 5206)
+++ trunk/core/units/permissions/permissions_event_handler.php (.../permissions_event_handler.php) (revision 5302)
@@ -3,11 +3,34 @@
class PermissionsEventHandler extends InpDBEventHandler {
/**
+ * Save category permissions
+ *
+ * @param kEvent $event
+ */
+ function OnCategorySavePermissions(&$event)
+ {
+ $group_id = $this->Application->GetVar('group_id');
+ $permissions = $this->Application->GetVar($event->getPrefixSpecial(true));
+ if (isset($permissions[$group_id])) {
+ $permissions = $permissions[$group_id];
+
+
+
+
+
+
+ }
+
+ $event->MasterEvent->SetRedirectParam('item_prefix', $this->Application->GetVar('item_prefix'));
+ $event->MasterEvent->SetRedirectParam('group_id', $this->Application->GetVar('group_id'));
+ }
+
+ /**
* Saves permissions while editing group
*
* @param kEvent $event
*/
- function OnSavePermissions(&$event)
+ function OnGroupSavePermissions(&$event)
{
$permissions = $this->Application->GetVar($event->getPrefixSpecial(true));
if (!$permissions) {
Index: trunk/kernel/units/permissions/permissions_config.php
===================================================================
diff -u -r4790 -r5302
--- trunk/kernel/units/permissions/permissions_config.php (.../permissions_config.php) (revision 4790)
+++ trunk/kernel/units/permissions/permissions_config.php (.../permissions_config.php) (revision 5302)
@@ -8,32 +8,45 @@
'TagProcessorClass' => Array('class'=>'PermissionsTagProcessor','file'=>'permissions_tag_processor.php','build_event'=>'OnBuild'),
'AutoLoad' => true,
- 'Hooks' => Array(
- Array(
- 'Mode' => hAFTER,
- 'Conditional' => true,
- 'HookToPrefix' => '#PARENT#',
- 'HookToSpecial' => '*',
- 'HookToEvent' => Array('OnPreSave'),
- 'DoPrefix' => '',
- 'DoSpecial' => '*',
- 'DoEvent' => 'OnSavePermissions',
- ),
- ),
-
'Clones' => Array(
'c-perm' => Array(
'Constrain' => 'Type = 0', // non-system
'ParentPrefix' => 'c',
'ForeignKey' => 'CatId',
'ParentTableKey' => 'CategoryId',
+
+ 'Hooks' => Array(
+ Array(
+ 'Mode' => hAFTER,
+ 'Conditional' => true,
+ 'HookToPrefix' => '#PARENT#',
+ 'HookToSpecial' => '*',
+ 'HookToEvent' => Array('OnPreSave'),
+ 'DoPrefix' => '',
+ 'DoSpecial' => '*',
+ 'DoEvent' => 'OnCategorySavePermissions',
+ ),
+ ),
),
'g-perm' => Array(
'Constrain' => 'Type = 1', // system
'ParentPrefix' => 'g',
'ForeignKey' => 'GroupId',
'ParentTableKey' => 'GroupId',
+
+ 'Hooks' => Array(
+ Array(
+ 'Mode' => hAFTER,
+ 'Conditional' => true,
+ 'HookToPrefix' => '#PARENT#',
+ 'HookToSpecial' => '*',
+ 'HookToEvent' => Array('OnPreSave'),
+ 'DoPrefix' => '',
+ 'DoSpecial' => '*',
+ 'DoEvent' => 'OnGroupSavePermissions',
+ ),
+ ),
),
),