Skip to content

Commit

Permalink
#724 - add button to undo skip
Browse files Browse the repository at this point in the history
  • Loading branch information
deadlocker8 committed Jan 21, 2023
1 parent a5e37ba commit 4a478de
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,19 @@ public String skip(WebRequest request, @PathVariable("index") Integer index)
return ReturnValues.REDIRECT_IMPORT;
}

@GetMapping("/{index}/undoSkip")
public String undoSkip(WebRequest request, @PathVariable("index") Integer index)
{
final Optional<CsvTransaction> transactionOptional = getTransactionByIndex(request, index);
if(transactionOptional.isEmpty())
{
return ReturnValues.REDIRECT_IMPORT;
}

transactionOptional.get().setStatus(CsvTransactionStatus.PENDING);
return ReturnValues.REDIRECT_IMPORT;
}

@GetMapping("/{index}/newTransaction/{type}")
public String newTransaction(WebRequest request,
@PathVariable("index") Integer index,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -262,27 +262,31 @@
</td>
<td data-order="${currencyService.getCurrencyString(csvTransaction.getAmount())}" data-search="${currencyService.getCurrencyString(csvTransaction.getAmount())}">${currencyService.getCurrencyString(csvTransaction.getAmount())}</td>
<td>
<@header.buttonSubmit name='action' icon='save' localizationKey='' classes='text-white'/>&nbsp;
<div class="fixed-action-btn edit-transaction-button">
<a class="btn-floating btn-flat waves-effect waves-light no-padding text-default edit-transaction-button-link">
<i class="material-icons text-default">edit</i>
</a>
<ul class="new-transaction-button-list">
<li>
<a href="<@s.url '/transactionImport/' + index + '/newTransaction/normal'/>" class="btn-floating btn mobile-fab-tip no-wrap">${locale.getString("title.transaction.new", locale.getString("title.transaction.new.normal"))}</a>
<a href="<@s.url '/transactionImport/' + index + '/newTransaction/normal'/>" class="btn-floating btn background-orange"><i class="material-icons">payment</i></a>
</li>
<li>
<a href="<@s.url '/transactionImport/' + index + '/newTransaction/transfer'/>" class="btn-floating btn mobile-fab-tip no-wrap">${locale.getString("title.transaction.new", locale.getString("title.transaction.new.transfer"))}</a>
<a href="<@s.url '/transactionImport/' + index + '/newTransaction/transfer'/>" class="btn-floating btn background-green-dark"><i class="material-icons">swap_horiz</i></a>
</li>
<li>
<a href="<@s.url '/transactionImport/' + index + '/newFromTemplate'/>" class="btn-floating btn mobile-fab-tip no-wrap">${locale.getString("title.transaction.new", locale.getString("title.transaction.new.from.template"))}</a>
<a href="<@s.url '/transactionImport/' + index + '/newFromTemplate'/>" class="btn-floating btn background-blue-baby"><i class="material-icons">file_copy</i></a>
</li>
</ul>
</div>
<@header.buttonFlat url='/transactionImport/' + index + '/skip' icon='block' localizationKey='' classes="no-padding text-default button-request-transaction-import-skip"/>
<#if csvTransaction.getStatus().name() == 'SKIPPED'>
<@header.buttonFlat url='/transactionImport/' + index + '/undoSkip' icon='do_disturb_off' localizationKey='' classes="no-padding text-default button-request-transaction-import-undo-skip"/>
<#else>
<@header.buttonSubmit name='action' icon='save' localizationKey='' classes='text-white'/>&nbsp;
<div class="fixed-action-btn edit-transaction-button">
<a class="btn-floating btn-flat waves-effect waves-light no-padding text-default edit-transaction-button-link">
<i class="material-icons text-default">edit</i>
</a>
<ul class="new-transaction-button-list">
<li>
<a href="<@s.url '/transactionImport/' + index + '/newTransaction/normal'/>" class="btn-floating btn mobile-fab-tip no-wrap">${locale.getString("title.transaction.new", locale.getString("title.transaction.new.normal"))}</a>
<a href="<@s.url '/transactionImport/' + index + '/newTransaction/normal'/>" class="btn-floating btn background-orange"><i class="material-icons">payment</i></a>
</li>
<li>
<a href="<@s.url '/transactionImport/' + index + '/newTransaction/transfer'/>" class="btn-floating btn mobile-fab-tip no-wrap">${locale.getString("title.transaction.new", locale.getString("title.transaction.new.transfer"))}</a>
<a href="<@s.url '/transactionImport/' + index + '/newTransaction/transfer'/>" class="btn-floating btn background-green-dark"><i class="material-icons">swap_horiz</i></a>
</li>
<li>
<a href="<@s.url '/transactionImport/' + index + '/newFromTemplate'/>" class="btn-floating btn mobile-fab-tip no-wrap">${locale.getString("title.transaction.new", locale.getString("title.transaction.new.from.template"))}</a>
<a href="<@s.url '/transactionImport/' + index + '/newFromTemplate'/>" class="btn-floating btn background-blue-baby"><i class="material-icons">file_copy</i></a>
</li>
</ul>
</div>
<@header.buttonFlat url='/transactionImport/' + index + '/skip' icon='do_not_disturb_on' localizationKey='' classes="no-padding text-default button-request-transaction-import-skip"/>
</#if>
</td>
</form>
</tr>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,28 @@ void test_skipRow()
assertThat(driver.findElement(By.className("transaction-import-row-skipped")).isDisplayed()).isTrue();
}

@Test
void test_undoSkipRow()
{
uploadAndSetColumnSettings();
List<WebElement> rows = driver.findElements(By.className("transaction-import-row"));

// skip
rows.get(0).findElement(By.className("button-request-transaction-import-skip")).click();
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5));
wait.until(ExpectedConditions.visibilityOfElementLocated(By.className("transaction-import-row-skipped")));

assertThat(driver.findElement(By.className("transaction-import-row-skipped")).isDisplayed()).isTrue();

// undo skip
rows = driver.findElements(By.className("transaction-import-row"));
rows.get(0).findElement(By.className("button-request-transaction-import-undo-skip")).click();
wait = new WebDriverWait(driver, Duration.ofSeconds(5));
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.className("transaction-import-row-skipped")));

assertThat(driver.findElements(By.className("transaction-import-row-skipped"))).isEmpty();
}

@Test
void test_saveInPlace()
{
Expand Down

0 comments on commit 4a478de

Please sign in to comment.