Version 4.3.0
This commit is contained in:
1 parent
96997ddd8e
commit
fe1acf984a
1349 files changed
+116159
-67711
No files matched your search
@@ -130,13 +130,7 @@ class _incomingemail extends \IPS\Dispatcher\Controller
|
||||
*/
|
||||
protected function disablePop3()
|
||||
{
|
||||
foreach ( array( 'pop3_server', 'pop3_port', 'pop3_user', 'pop3_password' ) as $k )
|
||||
{
|
||||
\IPS\Db::i()->update( 'core_sys_conf_settings', array( 'conf_value' => '' ), array( 'conf_key=?', $k ) );
|
||||
\IPS\Settings::i()->$k = '';
|
||||
}
|
||||
unset( \IPS\Data\Store::i()->settings );
|
||||
|
||||
\IPS\Settings::i()->changeValues( array( 'pop3_server' => '', 'pop3_port' => '', 'pop3_user' => '', 'pop3_password' => '' ) );
|
||||
\IPS\Session::i()->log( 'acplogs__pop3_settings' );
|
||||
\IPS\Db::i()->update( 'core_tasks', array( 'enabled' => 0 ), array( 'app=? AND `key`=?', 'core', 'pop' ) );
|
||||
\IPS\Output::i()->redirect( \IPS\Http\Url::internal('app=nexus&module=support&controller=settings&tab=incomingemail') );
|
||||
|
||||
@@ -896,7 +896,7 @@ class _request extends \IPS\nexus\modules\front\support\view
|
||||
}
|
||||
$options[ $request->author()->member_id ] = $request->author()->name;
|
||||
$toggles[ $request->author()->member_id ] = array( 'associated_purchase_' . $request->author()->member_id );
|
||||
$form->add( new \IPS\Helpers\Form\Radio( 'support_account', $request->author()->member_id, TRUE, array( 'options' => $options, 'toggles' => $toggles, 'parse' => 'none' ) ) );
|
||||
$form->add( new \IPS\Helpers\Form\Radio( 'support_account', $request->author()->member_id, TRUE, array( 'options' => $options, 'toggles' => $toggles, 'parse' => 'normal' ) ) );
|
||||
foreach ( $options as $memberId => $memberName )
|
||||
{
|
||||
$field = new \IPS\Helpers\Form\Node( 'associated_purchase_' . $memberId, $memberId == $request->author()->member_id ? $request->purchase : NULL, TRUE, array( 'class' => 'IPS\nexus\Purchase', 'forceOwner' => \IPS\Member::load( $memberId ), 'zeroVal' => 'none' ), NULL, NULL, NULL, 'associated_purchase_' . $memberId );
|
||||
@@ -1002,7 +1002,7 @@ class _request extends \IPS\nexus\modules\front\support\view
|
||||
$form->add( new \IPS\Helpers\Form\Node( 'support_department', $request->department, TRUE, array( 'class' => 'IPS\nexus\Support\Department', 'url' => $url ) ) );
|
||||
$form->add( new \IPS\Helpers\Form\Node( 'r_status', $request->status, TRUE, array( 'class' => 'IPS\nexus\Support\Status', 'url' => $url ) ) );
|
||||
$form->add( new \IPS\Helpers\Form\Node( 'support_severity', $request->severity, TRUE, array( 'class' => 'IPS\nexus\Support\Severity', 'url' => $url ) ) );
|
||||
$form->add( new \IPS\Helpers\Form\Select( 'r_staff', $request->staff ? $request->staff->member_id : 0, FALSE, array( 'options' => array( 0 => 'unassigned' ) + \IPS\nexus\Support\Request::staff() ) ) );
|
||||
$form->add( new \IPS\Helpers\Form\Select( 'r_staff', $request->staff ? $request->staff->member_id : 0, FALSE, array( 'parse' => 'normal', 'options' => array( 0 => \IPS\Member::loggedIn()->language()->addToStack('unassigned') ) + \IPS\nexus\Support\Request::staff() ) ) );
|
||||
|
||||
if ( $values = $form->values() )
|
||||
{
|
||||
|
||||
@@ -138,7 +138,8 @@ class _requests extends \IPS\Dispatcher\Controller
|
||||
$order = array();
|
||||
if ( $groupByDepartment )
|
||||
{
|
||||
$order[] = 'dpt_position';
|
||||
$order[] = 'nexus_support_staff_dpt_order.dpt_position';
|
||||
$order[] = 'nexus_support_departments.dpt_position'; // This is to prevent an issue if two departments have the same position (which may be the case if new departments have been created since the user set their preferred order)
|
||||
}
|
||||
$honorSeverities = ( !isset( \IPS\Request::i()->cookie['support_honor_severities'] ) or \IPS\Request::i()->cookie['support_honor_severities'] );
|
||||
if ( $honorSeverities )
|
||||
@@ -525,19 +526,26 @@ class _requests extends \IPS\Dispatcher\Controller
|
||||
/* Init */
|
||||
\IPS\Dispatcher::i()->checkAcpPermission( 'requests_create' );
|
||||
$steps = array();
|
||||
$url = \IPS\Http\Url::internal('app=nexus&module=support&controller=requests&do=create');
|
||||
$initialData = NULL;
|
||||
if ( isset( \IPS\Request::i()->member ) )
|
||||
{
|
||||
$initialData = array( 'member' => \IPS\Request::i()->member );
|
||||
$url = $url->setQueryString( 'member', \IPS\Request::i()->member );
|
||||
}
|
||||
|
||||
/* Owner */
|
||||
if ( !isset( \IPS\Request::i()->member ) )
|
||||
{
|
||||
$steps['request_owner'] = function( $data )
|
||||
$steps['request_owner'] = function( $data ) use ( $url )
|
||||
{
|
||||
$form = new \IPS\Helpers\Form( 'owner', 'continue' );
|
||||
$form->add( new \IPS\Helpers\Form\Radio( 'request_owner_type', 'member', TRUE, array(
|
||||
$form = new \IPS\Helpers\Form( 'owner', 'continue', $url->setQueryString( '_step', 'request_owner' ) );
|
||||
$form->add( new \IPS\Helpers\Form\Radio( 'request_owner_type', isset( $data['email'] ) ? 'email' : 'member', TRUE, array(
|
||||
'options' => array( 'member' => 'request_owner_member', 'email' => 'request_owner_email' ),
|
||||
'toggles' => array( 'member' => array( 'request_owner_member' ), 'email' => array( 'request_owner_email' ) )
|
||||
) ) );
|
||||
$form->add( new \IPS\Helpers\Form\Member( 'request_owner_member', isset( \IPS\Request::i()->member ) ? \IPS\Member::load( \IPS\Request::i()->member ) : NULL, FALSE, array(), NULL, NULL, NULL, 'request_owner_member' ) );
|
||||
$form->add( new \IPS\Helpers\Form\Email( 'request_owner_email', NULL, FALSE, array(), NULL, NULL, NULL, 'request_owner_email' ) );
|
||||
$form->add( new \IPS\Helpers\Form\Member( 'request_owner_member', isset( $data['member'] ) ? \IPS\Member::load( $data['member'] ) : ( isset( \IPS\Request::i()->member ) ? \IPS\Member::load( \IPS\Request::i()->member ) : NULL ), FALSE, array(), NULL, NULL, NULL, 'request_owner_member' ) );
|
||||
$form->add( new \IPS\Helpers\Form\Email( 'request_owner_email', isset( $data['email'] ) ? $data['email'] : NULL, FALSE, array(), NULL, NULL, NULL, 'request_owner_email' ) );
|
||||
if ( $values = $form->values() )
|
||||
{
|
||||
if ( $values['request_owner_type'] === 'member' )
|
||||
@@ -579,7 +587,7 @@ class _requests extends \IPS\Dispatcher\Controller
|
||||
$stockActions = \IPS\nexus\Support\StockAction::roots();
|
||||
if ( count( $stockActions ) )
|
||||
{
|
||||
$steps['stock_action'] = function( $data ) use ( $stockActions )
|
||||
$steps['stock_action'] = function( $data ) use ( $stockActions, $url )
|
||||
{
|
||||
$options = array( 0 => 'none' );
|
||||
foreach ( $stockActions as $action )
|
||||
@@ -587,8 +595,8 @@ class _requests extends \IPS\Dispatcher\Controller
|
||||
$options[ $action->id ] = $action->_title;
|
||||
}
|
||||
|
||||
$form = new \IPS\Helpers\Form( 'stock_action', 'continue' );
|
||||
$form->add( new \IPS\Helpers\Form\Radio( 'stock_action', 0, FALSE, array(
|
||||
$form = new \IPS\Helpers\Form( 'stock_action', 'continue', $url->setQueryString( '_step', 'stock_action' ) );
|
||||
$form->add( new \IPS\Helpers\Form\Radio( 'stock_action', isset( $data['stock_action'] ) ? $data['stock_action'] : 0, FALSE, array(
|
||||
'options' => $options
|
||||
) ) );
|
||||
if ( $values = $form->values() )
|
||||
@@ -602,7 +610,7 @@ class _requests extends \IPS\Dispatcher\Controller
|
||||
}
|
||||
|
||||
/* Request Details */
|
||||
$steps['request_details'] = function( $data ) use ( $stockActions )
|
||||
$steps['request_details'] = function( $data ) use ( $stockActions, $url )
|
||||
{
|
||||
if ( !isset( $data['member'] ) AND isset( \IPS\Request::i()->member ) )
|
||||
{
|
||||
@@ -615,16 +623,16 @@ class _requests extends \IPS\Dispatcher\Controller
|
||||
$stockAction = $stockActions[ $data['stock_action'] ];
|
||||
}
|
||||
|
||||
$form = new \IPS\Helpers\Form( 'request_details', 'continue' );
|
||||
$form->add( new \IPS\Helpers\Form\Text( 'support_title', NULL, TRUE ) );
|
||||
$form->add( new \IPS\Helpers\Form\Node( 'support_department', $stockAction ? $stockAction->department : NULL, TRUE, array( 'class' => 'IPS\nexus\Support\Department' ) ) );
|
||||
$form = new \IPS\Helpers\Form( 'request_details', 'continue', $url->setQueryString( '_step', 'request_details' ) );
|
||||
$form->add( new \IPS\Helpers\Form\Text( 'support_title', isset( $data['title'] ) ? $data['title'] : NULL, TRUE ) );
|
||||
$form->add( new \IPS\Helpers\Form\Node( 'support_department', isset( $data['department'] ) ? $data['department'] : ( $stockAction ? $stockAction->department : NULL ), TRUE, array( 'class' => 'IPS\nexus\Support\Department' ) ) );
|
||||
if ( isset( $data['member'] ) )
|
||||
{
|
||||
$form->add( new \IPS\Helpers\Form\Node( 'support_purchase', 0, FALSE, array( 'class' => 'IPS\nexus\Purchase', 'forceOwner' => \IPS\Member::load( $data['member'] ), 'zeroVal' => 'none' ) ) );
|
||||
$form->add( new \IPS\Helpers\Form\Node( 'support_purchase', isset( $data['purchase'] ) ? $data['purchase'] : 0, FALSE, array( 'class' => 'IPS\nexus\Purchase', 'forceOwner' => \IPS\Member::load( $data['member'] ), 'zeroVal' => 'none' ) ) );
|
||||
}
|
||||
$form->add( new \IPS\Helpers\Form\Node( 'r_status', $stockAction ? $stockAction->status : \IPS\nexus\Support\Status::load( TRUE, 'status_default_staff' ), TRUE, array( 'class' => 'IPS\nexus\Support\Status' ) ) );
|
||||
$form->add( new \IPS\Helpers\Form\Node( 'support_severity', \IPS\nexus\Support\Severity::load( TRUE, 'sev_default' ), TRUE, array( 'class' => 'IPS\nexus\Support\Severity' ) ) );
|
||||
$form->add( new \IPS\Helpers\Form\Select( 'r_staff', 0, FALSE, array( 'options' => array( 0 => 'unassigned' ) + \IPS\nexus\Support\Request::staff() ) ) );
|
||||
$form->add( new \IPS\Helpers\Form\Node( 'r_status', isset( $data['status'] ) ? $data['status'] : ( $stockAction ? $stockAction->status : \IPS\nexus\Support\Status::load( TRUE, 'status_default_staff' ) ), TRUE, array( 'class' => 'IPS\nexus\Support\Status' ) ) );
|
||||
$form->add( new \IPS\Helpers\Form\Node( 'support_severity', isset( $data['severity'] ) ? $data['severity'] : \IPS\nexus\Support\Severity::load( TRUE, 'sev_default' ), TRUE, array( 'class' => 'IPS\nexus\Support\Severity' ) ) );
|
||||
$form->add( new \IPS\Helpers\Form\Select( 'r_staff', isset( $data['staff'] ) ? $data['staff'] : 0, FALSE, array( 'parse' => 'normal', 'options' => array( 0 => \IPS\Member::loggedIn()->language()->addToStack('unassigned') ) + \IPS\nexus\Support\Request::staff() ) ) );
|
||||
if ( $values = $form->values() )
|
||||
{
|
||||
$data['title'] = $values['support_title'];
|
||||
@@ -645,15 +653,15 @@ class _requests extends \IPS\Dispatcher\Controller
|
||||
$customFields = \IPS\nexus\Support\CustomField::roots();
|
||||
if ( count( $customFields ) )
|
||||
{
|
||||
$steps['custom_support_fields'] = function( $data )
|
||||
$steps['custom_support_fields'] = function( $data ) use ( $url )
|
||||
{
|
||||
$customFields = \IPS\nexus\Support\CustomField::roots( NULL, NULL, array( "sf_departments='*' OR " . \IPS\Db::i()->findInSet( 'sf_departments', array( $data['department'] ) ) ) );
|
||||
if ( count( $customFields ) )
|
||||
{
|
||||
$form = new \IPS\Helpers\Form( 'custom_fields', 'continue' );
|
||||
$form = new \IPS\Helpers\Form( 'custom_fields', 'continue', $url->setQueryString( '_step', 'custom_support_fields' ) );
|
||||
foreach ( $customFields as $field )
|
||||
{
|
||||
$form->add( $field->buildHelper() );
|
||||
$form->add( $field->buildHelper( isset( $data['custom_fields']["nexus_cfield_{$field->id}"] ) ? $data['custom_fields']["nexus_cfield_{$field->id}"] : NULL ) );
|
||||
}
|
||||
if ( $values = $form->values() )
|
||||
{
|
||||
@@ -670,7 +678,7 @@ class _requests extends \IPS\Dispatcher\Controller
|
||||
}
|
||||
|
||||
/* Your Message */
|
||||
$steps['your_message'] = function( $data ) use ( $stockActions )
|
||||
$steps['your_message'] = function( $data ) use ( $stockActions, $url )
|
||||
{
|
||||
$stockAction = NULL;
|
||||
if ( isset( $data['stock_action'] ) and isset( $stockActions[ $data['stock_action'] ] ) )
|
||||
@@ -701,7 +709,7 @@ class _requests extends \IPS\Dispatcher\Controller
|
||||
$defaultContent = NULL;
|
||||
}
|
||||
|
||||
$form = new \IPS\Helpers\Form( 'your_message' );
|
||||
$form = new \IPS\Helpers\Form( 'your_message', 'save', $url->setQueryString( '_step', 'your_message' ) );
|
||||
$form->add( new \IPS\Helpers\Form\YesNo( 'support_email_customer', TRUE, TRUE, array( 'togglesOn' => array( 'support_create_to', 'support_create_cc', 'support_create_bcc' ) ) ) );
|
||||
$form->add( new \IPS\Helpers\Form\Email( 'to', isset( $data['member'] ) ? \IPS\Member::load( $data['member'] )->email : $data['email'], NULL, array(), NULL, NULL, NULL, 'support_create_to' ) );
|
||||
$form->add( new \IPS\Helpers\Form\Text( 'cc', array(), FALSE, array( 'autocomplete' => array( 'unique' => TRUE, 'forceLower' => TRUE ) ), array( 'IPS\nexus\Support\Request', '_validateEmail' ), NULL, NULL, 'support_create_cc' ) );
|
||||
@@ -845,16 +853,7 @@ class _requests extends \IPS\Dispatcher\Controller
|
||||
|
||||
return $form;
|
||||
};
|
||||
|
||||
/* Set member */
|
||||
$url = \IPS\Http\Url::internal('app=nexus&module=support&controller=requests&do=create');
|
||||
$initialData = NULL;
|
||||
if ( isset( \IPS\Request::i()->member ) )
|
||||
{
|
||||
$initialData = array( 'member' => \IPS\Request::i()->member );
|
||||
$url = $url->setQueryString( 'member', \IPS\Request::i()->member );
|
||||
}
|
||||
|
||||
|
||||
/* Display */
|
||||
\IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack('create_support_request');
|
||||
\IPS\Output::i()->output = new \IPS\Helpers\Wizard( $steps, $url, TRUE, $initialData );
|
||||
|
||||
@@ -50,9 +50,7 @@ class _severities extends \IPS\Node\Controller
|
||||
|
||||
if ( isset( \IPS\Request::i()->nexus_severities ) )
|
||||
{
|
||||
\IPS\Db::i()->update( 'core_sys_conf_settings', array( 'conf_value' => \IPS\Request::i()->nexus_severities ), array( 'conf_key=?', 'nexus_severities' ) );
|
||||
\IPS\Settings::i()->nexus_severities = \IPS\Request::i()->nexus_severities;
|
||||
unset( \IPS\Data\Store::i()->settings );
|
||||
\IPS\Settings::i()->changeValues( array( 'nexus_severities' => \IPS\Request::i()->nexus_severities ) );
|
||||
\IPS\Session::i()->log( 'acplogs__severity_settings' );
|
||||
\IPS\Output::i()->redirect( \IPS\Http\Url::internal('app=nexus&module=support&controller=settings&tab=severities') );
|
||||
}
|
||||
|
||||
@@ -58,6 +58,26 @@ class _volume extends \IPS\Dispatcher\Controller
|
||||
$chart->addSeries( $department->_title, 'number', 'COUNT(*)', TRUE, $department->id );
|
||||
}
|
||||
|
||||
$chart->tableInclude = array( 'r_id', 'r_title', 'r_member', 'r_department', 'r_status', 'r_started', 'r_last_reply', 'r_replies' );
|
||||
$chart->tableParsers = array(
|
||||
'r_member' => function( $val ) {
|
||||
return \IPS\Theme::i()->getTemplate('global', 'nexus')->userLink( \IPS\Member::load( $val ) );
|
||||
},
|
||||
'r_department' => function( $val ) {
|
||||
return \IPS\Member::loggedIn()->language()->addToStack( 'nexus_department_' . $val );
|
||||
},
|
||||
'r_status' => function( $val, $row )
|
||||
{
|
||||
return \IPS\Member::loggedIn()->language()->addToStack( 'nexus_status_' . $val . '_admin' );
|
||||
},
|
||||
'r_started' => function( $val ) {
|
||||
return \IPS\DateTime::ts( $val );
|
||||
},
|
||||
'r_last_reply' => function( $val ) {
|
||||
return \IPS\DateTime::ts( $val );
|
||||
}
|
||||
);
|
||||
|
||||
\IPS\Output::i()->output = (string) $chart;
|
||||
\IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack('menu__nexus_support_volume');
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user