Include warning for #722

This commit is contained in:
James Cole 2017-07-29 08:27:39 +02:00
parent f4994ef151
commit db3b822aef
No known key found for this signature in database
GPG Key ID: C16961E655E74B5E
8 changed files with 78 additions and 1 deletions

View File

@ -23,6 +23,7 @@ use Illuminate\Http\Request;
use Illuminate\Http\Response as LaravelResponse;
use Log;
use Response;
use Session;
use View;
/**
@ -231,6 +232,13 @@ class ImportController extends Controller
$data = $request->all();
$configurator->configureJob($data);
// get possible warning from configurator:
$warning = $configurator->getWarningMessage();
if(strlen($warning) > 0) {
Session::flash('warning', $warning);
}
// return to configure
return redirect(route('import.configure', [$job->key]));
}

View File

@ -48,6 +48,13 @@ interface ConfiguratorInterface
*/
public function getNextView(): string;
/**
* Return possible warning to user.
*
* @return string
*/
public function getWarningMessage(): string;
/**
* Returns true when the initial configuration for this job is complete.
*

View File

@ -26,8 +26,12 @@ use Log;
*/
class CsvConfigurator implements ConfiguratorInterface
{
/** @var ImportJob */
private $job;
/** @var string */
private $warning = '';
/**
* ConfiguratorInterface constructor.
*/
@ -50,8 +54,10 @@ class CsvConfigurator implements ConfiguratorInterface
/** @var ConfigurationInterface $object */
$object = new $class($this->job);
$object->setJob($job);
$result = $object->storeConfiguration($data);
$this->warning = $object->getWarningMessage();
return $object->storeConfiguration($data);
return $result;
}
/**
@ -91,6 +97,16 @@ class CsvConfigurator implements ConfiguratorInterface
throw new FireflyException('No view for state');
}
/**
* Return possible warning to user.
*
* @return string
*/
public function getWarningMessage(): string
{
return $this->warning;
}
/**
* @return bool
*/

View File

@ -43,4 +43,11 @@ interface ConfigurationInterface
*/
public function storeConfiguration(array $data): bool;
/**
* Return possible warning to user.
*
* @return string
*/
public function getWarningMessage(): string;
}

View File

@ -135,4 +135,14 @@ class Initial implements ConfigurationInterface
return $config;
}
/**
* Return possible warning to user.
*
* @return string
*/
public function getWarningMessage(): string
{
return '';
}
}

View File

@ -268,4 +268,14 @@ class Map implements ConfigurationInterface
return $column;
}
/**
* Return possible warning to user.
*
* @return string
*/
public function getWarningMessage(): string
{
return '';
}
}

View File

@ -29,6 +29,9 @@ class Roles implements ConfigurationInterface
/** @var ImportJob */
private $job;
/** @var string */
private $warning = '';
/**
* Get the data necessary to show the configuration screen.
*
@ -68,6 +71,16 @@ class Roles implements ConfigurationInterface
return $this->data;
}
/**
* Return possible warning to user.
*
* @return string
*/
public function getWarningMessage(): string
{
return $this->warning;
}
/**
* @param ImportJob $job
*
@ -246,6 +259,10 @@ class Roles implements ConfigurationInterface
$config['column-roles-complete'] = true;
$this->job->configuration = $config;
$this->job->save();
$this->warning = '';
}
if ($assigned === 0 || !$hasAmount) {
$this->warning = trans('csv.roles_warning');
}
return true;

View File

@ -17,6 +17,7 @@ return [
'initial_title' => 'Import setup (1/3) - Basic CSV import setup',
'initial_text' => 'To be able to import your file correctly, please validate the options below.',
'initial_box' => 'Basic CSV import setup',
'initial_box_title' => 'Basic CSV import setup options',
'initial_header_help' => 'Check this box if the first row of your CSV file are the column titles.',
'initial_date_help' => 'Date time format in your CSV. Follow the format like <a href="https://secure.php.net/manual/en/datetime.createfromformat.php#refsect1-datetime.createfromformat-parameters">this page</a> indicates. The default value will parse dates that look like this: :dateExample.',
'initial_delimiter_help' => 'Choose the field delimiter that is used in your input file. If not sure, comma is the safest option.',
@ -34,6 +35,7 @@ return [
'roles_column' => 'Column',
'roles_no_example_data' => 'No example data available',
'roles_submit' => 'Continue with step 3/3',
'roles_warning' => 'At the very least, mark one column as the amount-column. It is advisable to also select a column for the description, date and the opposing account.',
// map data
'map_title' => 'Import setup (3/3) - Connect import data to Firefly III data',