Skip to content

[バグ] プロファイル設定の「入力ファイルを別フォルダに移動する」が保存・反映されない #8

@daig0rian

Description

@daig0rian

本当に素晴らしいソフトウェアを公開・メンテナンスしていただき、ありがとうございます。
利用させていただく中でバグと思われる動作を見つけましたので、ご報告させてください。

概要

WebUI のプロファイル設定にある「処理の終了後、入力ファイルを別フォルダに移動する」
チェックボックスの状態が保存されず、エンコード後に入力ファイルが常に
succeeded / failed フォルダへ移動されてしまいます。

再現手順

  1. WebUI のプロファイル設定を開く
  2. 「処理の終了後、入力ファイルを別フォルダに移動する」にチェックを入れて「適用」を押す
  3. 画面を再読み込みするとチェックが外れた状態に戻る
  4. チェックが外れた状態(移動しない)でも、エンコード後にファイルが succeeded フォルダへ移動される

期待する動作

チェックを外した場合、エンコード後も入力ファイルが元のパスに留まる。

調査結果

ソースコードを確認したところ、以下の不一致が原因と思われます。

WebUI 側 (AmatsukazeWebUI/Pages/ProfileSettings.razor):

<input type="checkbox" checked="@GetBoolValue("MoveInputFile")"
    @onchange="@(e => OnBoolChanged(e, "MoveInputFile"))" />

WebUI は MoveInputFile というキー名で値を送信しています。

バックエンド側 (AmatsukazeServer/Server/EncodeServerData.cs):

public bool DisableMoveInputFile { get; set; }

ProfileSetting クラスには DisableMoveInputFile しか定義されていません。

プロファイル更新 API (PUT /api/profiles/{name}) では受け取った JSON を
ProfileSetting に CamelCase でデシリアライズしていますが、
WebUI が送る moveInputFile と ProfileSetting の disableMoveInputFile は
名前が一致しないため、常に無視されデフォルト値(false = 移動する)が使われます。

また意味も反転しています(MoveInputFile: true = 移動する、
DisableMoveInputFile: true = 移動しない)。

修正案
WebUI 側のキー名を MoveInputFile から DisableMoveInputFile に変更して
チェックボックスの真偽値を反転させる対応などが必要に思えます

上記もし勘違いや見当はずれの内容となっていましたら平にご容赦ください。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions