Opened 4 weeks ago

Closed 2 weeks ago

#776 closed улучшение (не будем делать)

Уточнять "координаты" места возникновения ошибки при применении настроек плат ST-124M, ST-116M, ST-118M,

Reported by: san Owned by: alx
Priority: средний Milestone: 1 очередь
Component: web-интерфейс (sw) Keywords:
Cc:

Description

В #774 разбирается ситуация, где интерфейс при записи настроек выдаёт ошибку "Значение приоритета должно быть в диапазоне 0...7". Но найти поле, на которое ругается интерфейс довольно сложно. настроек у платы много. Даже сам разработчик интерфейса, без подглядывания в код, не смог уточнить на какое поле ругается интерфейс.
Предлагаю уточнять "координаты" места возникновения ошибки при применении настроек.

  • Например, можно "подсветить" место возникновение ошибки (кажется для каких-то плат такое уже делали, но я не уверен)
  • Кроме того, настройки указанных в тикете плат разбиты на главы(пронумерованы) и ошибку можно уточнить используя эту нумерацию, например "Значение приоритета должно быть в диапазоне 0...7 (Таблица 7.2)".

Change History (4)

in reply to:  description comment:1 by alx, 4 weeks ago

Replying to san:

Предлагаю уточнять "координаты" места возникновения ошибки при применении настроек.

При выдаче подобных сообщений уже выполняется следующее:

  • Активируется вкладка "Настройки" (если была активной вкладка "Состояние");
  • Поле ввода, содержащее ошибочное значение, обрамляется ярко-красной рамкой;
  • Фокус ввода устанавливается на поле ввода, содержащее ошибочное значение.

Верно ли я понял, что ты считаешь, что перечисленного выше недостаточно?

  • Например, можно "подсветить" место возникновение ошибки

Уточни, пожалуйста, что ты подразумеваешь под словом "подсветить".

Last edited 4 weeks ago by alx (previous) (diff)

comment:2 by san, 4 weeks ago

Уточни, пожалуйста, что ты подразумеваешь под словом "подсветить".

Я имел ввиду это:

Поле ввода, содержащее ошибочное значение, обрамляется ярко-красной рамкой;
Фокус ввода устанавливается на поле ввода, содержащее ошибочное значение.

Видимо в #774 из-за ошибки это не выполнилось.

in reply to:  2 comment:3 by alx, 4 weeks ago

Replying to san:

Уточни, пожалуйста, что ты подразумеваешь под словом "подсветить".

Я имел ввиду это:

Поле ввода, содержащее ошибочное значение, обрамляется ярко-красной рамкой;

Так ведь это и так уже есть! То есть получается, что "подсвечивание", о котором ты писал в описании тикета, улучшением не является. Верно ли я понял, что суть твоего предложения заключается в том (и только в том), чтобы в сообщения об ошибках добавить в скобках номера групп? Что-то я совсем запутался...

Фокус ввода устанавливается на поле ввода, содержащее ошибочное значение.

Видимо в #774 из-за ошибки это не выполнилось.

Баг, упоминавшийся в твоем комментарии (я не знаю, тот ли это баг, о котором писал автор тикета, или нет), состоял в том, что веб-интерфейс пытался валидировать значение несуществующей строки ввода. Как можно установить фокус ввода в несуществующую строку? :)

comment:4 by alx, 2 weeks ago

Resolution: не будем делать
Status: newclosed

Из всего предложения по "уточнению координат" в описании тикета я понял только что в сообщения об ошибках предлагается добавить перечисление номеров групп параметров (например 1-5-3), в которых расположен элемент ввода с ошибочным значением. Принципиального возражения против этой идеи как таковой у меня нет, однако реализовать это будет довольно трудоемко. Дело в том, что в платах ST-124M, ST-116M и ST-018M очень много конфигурационных параметров, и в коде, применяющем пользовательские настройки, эти параметры обрабатываются не по отдельности, а сразу "кучей". Например все параметры, вводящие значение каких-либо байтов, валидируются одним общим фрагментом кода, примерно так:

   $.each(config_bytes, (n, i) => {
      const input = this.popup.find(`input.byte${i}`);
      const b = parseInt(input.val());
      if(input.length > 0) {
         if(isNaN(b) || b < 0 || b > 255) return invalidValue(input, 'Значение параметра должно быть в диапазоне 0...255');
      }
   });

где config_bytes - массив номеров байт в конфигурации платы (и их там много). Любые уточнения в сообщении "Значение параметра..." потребуют или существенного усложнения приведенного фрагмента кода, или вообще валидации каждого параметра по отдельности.

С другой стороны, я считаю, что того "подсвечивания", которое реализовано сейчас (см. comment:1), вполне достаточно, и дополнительное "уточнение координат" не стоит того усложнения кода, которое потребует его реализация. Поэтому я принял решение дополнительные уточнения не делать.

Note: See TracTickets for help on using tickets.