Version 4.1.2
This commit is contained in:
1 parent
3ba79295ee
commit
28bd025b35
1131 files changed
+63658
-20579
No files matched your search
@@ -186,7 +186,8 @@ class _Controller extends \IPS\Dispatcher\Controller
|
||||
( ( $node instanceof \IPS\Node\Model ) ? $node->_badge : $this->_getRowBadge( $node ) ),
|
||||
$this->_titleHtml,
|
||||
$this->_descriptionHtml,
|
||||
$node->canAdd()
|
||||
$node->canAdd(),
|
||||
( $node instanceof $nodeClass )
|
||||
);
|
||||
}
|
||||
|
||||
@@ -404,6 +405,10 @@ class _Controller extends \IPS\Dispatcher\Controller
|
||||
if ( $node->_id AND !$node->noCopyButton )
|
||||
{
|
||||
$form->copyButton = $this->url->setQueryString( array( 'do' => 'massChange', 'from' => $node->_id ) );
|
||||
if ( !( $node instanceof $this->nodeClass ) )
|
||||
{
|
||||
$form->copyButton = $form->copyButton->setQueryString( 'subnode', 1 );
|
||||
}
|
||||
}
|
||||
$node->form( $form );
|
||||
|
||||
@@ -438,6 +443,10 @@ class _Controller extends \IPS\Dispatcher\Controller
|
||||
{
|
||||
/* Check permission */
|
||||
$nodeClass = $this->nodeClass;
|
||||
if ( \IPS\Request::i()->subnode )
|
||||
{
|
||||
$nodeClass = $nodeClass::$subnodeClass;
|
||||
}
|
||||
try
|
||||
{
|
||||
$node = call_user_func( "{$nodeClass}::load", \IPS\Request::i()->from );
|
||||
@@ -487,7 +496,12 @@ class _Controller extends \IPS\Dispatcher\Controller
|
||||
if ( $values = $form->values() )
|
||||
{
|
||||
$url = $this->url;
|
||||
\IPS\Output::i()->output = new \IPS\Helpers\MultipleRedirect( $this->url->setQueryString( array( 'do' => 'massChange', 'key' => \IPS\Request::i()->key, 'value' => $value, 'nodes' => \IPS\Request::i()->nodes ?: $values['nodes'], 'from' => \IPS\Request::i()->from, 'form_submitted' => 1, 'csrfKey' => \IPS\Request::i()->csrfKey ) ),
|
||||
$multiRedirectUrl = $this->url->setQueryString( array( 'do' => 'massChange', 'key' => \IPS\Request::i()->key, 'value' => $value, 'nodes' => \IPS\Request::i()->nodes ?: $values['nodes'], 'from' => \IPS\Request::i()->from, 'form_submitted' => 1, 'csrfKey' => \IPS\Request::i()->csrfKey ) );
|
||||
if ( \IPS\Request::i()->subnode )
|
||||
{
|
||||
$multiRedirectUrl = $multiRedirectUrl->setQueryString( 'subnode', 1 );
|
||||
}
|
||||
\IPS\Output::i()->output = new \IPS\Helpers\MultipleRedirect( $multiRedirectUrl,
|
||||
function( $doneSoFar ) use ( $nodeClass )
|
||||
{
|
||||
$select = \IPS\Db::i()->select( '*', $nodeClass::$databaseTable, \IPS\Request::i()->nodes == 0 ? NULL : \IPS\Db::i()->in( $nodeClass::$databasePrefix . $nodeClass::$databaseColumnId, explode( ',',\IPS\Request::i()->nodes) ), $nodeClass::$databasePrefix . $nodeClass::$databaseColumnId, array( $doneSoFar, 50 ), NULL, NULL, \IPS\Db::SELECT_SQL_CALC_FOUND_ROWS );
|
||||
@@ -506,7 +520,7 @@ class _Controller extends \IPS\Dispatcher\Controller
|
||||
if ( $_node->canCopyValue( \IPS\Request::i()->key, \IPS\Request::i()->value ) )
|
||||
{
|
||||
$values = $_node->formatFormValues( array( \IPS\Request::i()->key => \IPS\Request::i()->value ) );
|
||||
|
||||
|
||||
foreach( $values as $k => $v )
|
||||
{
|
||||
$k = str_replace( $nodeClass::$databasePrefix, "", $k );
|
||||
@@ -544,7 +558,12 @@ class _Controller extends \IPS\Dispatcher\Controller
|
||||
/* Clear guest page caches */
|
||||
\IPS\Data\Cache::i()->clearAll();
|
||||
|
||||
\IPS\Output::i()->redirect( $url->setQueryString( array( 'do' => 'form', 'id' => \IPS\Request::i()->from ) ) );
|
||||
$finishUrl = $url->setQueryString( array( 'do' => 'form', 'id' => \IPS\Request::i()->from ) );
|
||||
if ( \IPS\Request::i()->subnode )
|
||||
{
|
||||
$finishUrl = $finishUrl->setQueryString( 'subnode', 1 );
|
||||
}
|
||||
\IPS\Output::i()->redirect( $finishUrl );
|
||||
},
|
||||
FALSE
|
||||
);
|
||||
@@ -949,12 +968,26 @@ class _Controller extends \IPS\Dispatcher\Controller
|
||||
return $value;
|
||||
},
|
||||
);
|
||||
|
||||
$disabledPermissions = $node->disabledPermissions();
|
||||
|
||||
foreach ( $node->permissionTypes() as $k => $v )
|
||||
{
|
||||
$matrix->columns[ $k ] = function( $key, $value, $data ) use ( $current, $k, $v )
|
||||
$matrix->columns[ $k ] = function( $key, $value, $data ) use ( $current, $k, $v, $disabledPermissions )
|
||||
{
|
||||
$groupId = mb_substr( $key, 0, -( 2 + mb_strlen( $k ) ) );
|
||||
$disabled = ( $groupId == \IPS\Settings::i()->guest_group AND in_array( $k, array('review', 'rate' ) ) ) ? TRUE : FALSE;
|
||||
$groupId = mb_substr( $key, 0, -( 2 + mb_strlen( $k ) ) );
|
||||
$disabled = FALSE;
|
||||
|
||||
if ( array_key_exists( $groupId, $disabledPermissions ) and is_array( $disabledPermissions[ $groupId ] ) )
|
||||
{
|
||||
$disabled = in_array( $v, array_values( $disabledPermissions[ $groupId ] ) );
|
||||
}
|
||||
|
||||
if ( $disabled === FALSE )
|
||||
{
|
||||
$disabled = ( $groupId == \IPS\Settings::i()->guest_group AND in_array( $k, array('review', 'rate' ) ) ) ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
$fieldValue = ( isset( $current[ "perm_{$v}" ] ) and ( $current[ "perm_{$v}" ] === '*' or in_array( $groupId, explode( ',', $current[ "perm_{$v}" ] ) ) ) );
|
||||
|
||||
return new \IPS\Helpers\Form\Checkbox( $key, ( $disabled ? 0 : $fieldValue ), NULL, array( 'disabled' => $disabled ) );
|
||||
@@ -1031,7 +1064,8 @@ class _Controller extends \IPS\Dispatcher\Controller
|
||||
\IPS\Data\Cache::i()->clearAll();
|
||||
|
||||
/* Redirect */
|
||||
\IPS\Output::i()->redirect( $this->url->setQueryString( array( 'root' => ( $node->parent() ? $node->parent()->_id : '' ) ) ), 'saved' );
|
||||
$this->_afterSave( NULL, $node );
|
||||
return;
|
||||
}
|
||||
|
||||
/* Display */
|
||||
|
||||
Reference in new issue
Block a user