Repository: louislam/uptime-kuma
File: src/pages/EditMonitor.vue (Vue)

Code before:
                                    <label for="mqttTopic" class="form-label">MQTT {{ $t("Topic") }}</label>
                                    <input id="mqttTopic" v-model="monitor.mqttTopic" type="text" class="form-control" required>
                                    <div class="form-text">
                                        {{ $t("topicExplanation") }}
                                    </div>
                                </div>

                                <div class="my-3">
                                    <label for="mqttSuccessMessage" class="form-label">MQTT {{ $t("successMessage") }}</label>
                                    <input id="mqttSuccessMessage" v-model="monitor.mqttSuccessMessage" type="text" class="form-control">
                                    <div class="form-text">
                                        {{ $t("successMessageExplanation") }}
                                    </div>
                                </div>
                            </template>

                            <!-- Interval -->
                            <div class="my-3">
                                <label for="interval" class="form-label">{{ $t("Heartbeat Interval") }} ({{ $t("checkEverySecond", [ monitor.interval ]) }})</label>
                                <input
                                    id="interval"
                                    v-model="monitor.interval"
                                    type="number"
                                    class="form-control"
                                    required
                                    min="1" step="1"
                                    @focus="lowIntervalConfirmation.editedValue=true"
                                    @blur="checkIntervalValue"
                                >
                                <div v-if="monitor.interval < 20" class="form-text">
                                    {{ $t("minimumIntervalWarning") }}
                                </div>
                            </div>

                            <div class="my-3">
                                <label for="maxRetries" class="form-label">{{ $t("Retries") }}</label>
                                <input id="maxRetries" v-model="monitor.maxretries" type="number" class="form-control" required min="0" step="1">
                                <div class="form-text">
                                    {{ $t("retriesDescription") }}
                                </div>
                            </div>

                            <div class="my-3">
                                <label for="retry-interval" class="form-label">
                                    {{ $t("Heartbeat Retry Interval") }}
                                    <span>({{ $t("retryCheckEverySecond", [ monitor.retryInterval ]) }})</span>
                                </label>
                                <input id="retry-interval" v-model="monitor.retryInterval" type="number" class="form-control" required min="1" step="1">
                                <div v-if="monitor.retryInterval < 20" class="form-text">
                                    {{ $t("minimumIntervalWarning") }}
                                </div>

Review comment (suggestion):
```suggestion
                                    min="1"
                                    step="1"
```

Code after:
                            <div v-if="monitor.type === 'websocket-upgrade'" class="my-3">
                                <label for="ws_subprotocol" class="form-label">{{ $t("Subprotocol") }}</label>
                                <select id="ws_subprotocol" v-model="monitor.wsSubprotocol" class="form-select">
                                    <option value="" selected>{{ $t("None") }}</option>
                                    <option value="MBWS.huawei.com">MBWS</option>
                                    <option value="MBLWS.huawei.com">MBLWS</option>
                                    <option value="soap">soap</option>
                                    <option value="wamp">{{ $t("WebSocket Application Messaging Protocol") }}</option>
                                    <option value="v10.stomp">STOMP 1.0</option>
                                    <option value="v11.stomp">STOMP 1.1</option>
                                    <option value="v12.stomp">STOMP 1.2</option>
                                    <option value="ocpp1.2">OCPP 1.2</option>
                                    <option value="ocpp1.5">OCPP 1.5</option>
                                    <option value="ocpp1.6">OCPP 1.6</option>
                                    <option value="ocpp2.0">OCPP 2.0</option>
                                    <option value="ocpp2.0.1">OCPP 2.0.1</option>
                                    <option value="ocpp2.1">OCPP 2.1</option>
                                    <option value="rfb">RFB</option>
                                    <option value="sip">{{ $t("Session Initiation Protocol") }}</option>
                                    <option value="notificationchannel-netapi-rest.openmobilealliance.org">{{ $t("Network API for Notification Channel") }}</option>
                                    <option value="wpcp">{{ $t("Web Process Control Protocol") }}</option>
                                    <option value="amqp">{{ $t("Advanced Message Queuing Protocol") }}</option>
                                    <option value="mqtt">MQTT</option>
                                    <option value="jsflow">{{ $t("jsflow") }}</option>
                                    <option value="rwpcp">{{ $t("Reverse Web Process Control") }}</option>
                                    <option value="xmpp">{{ $t("Extensible Messaging and Presence Protocol") }}</option>
                                    <option value="ship">{{ $t("Smart Home IP") }}</option>
                                    <option value="mielecloudconnect">{{ $t("Miele Cloud Connect Protocol") }}</option>
                                    <option value="v10.pcp.sap.com">{{ $t("Push Channel Protocol") }}</option>
                                    <option value="msrp">{{ $t("Message Session Relay Protocol") }}</option>
                                    <option value="v1.saltyrtc.org">SaltyRTC 1.0</option>
                                    <option value="TLCP-2.0.0.lightstreamer.com">TLCP 2.0.0</option>
                                    <option value="bfcp">{{ $t("Binary Floor Control Protocol") }}</option>
                                    <option value="sldp.softvelum.com">{{ $t("Softvelum Low Delay Protocol") }}</option>
                                    <option value="opcua+uacp">{{ $t("OPC UA Connection Protocol") }}</option>
                                    <option value="opcua+uajson">{{ $t("OPC UA JSON Encoding") }}</option>
                                    <option value="v1.swindon-lattice+json">{{ $t("Swindon Web Server Protocol") }}</option>
                                    <option value="v1.usp">{{ $t("Broadband Forum User Services Platform") }}</option>
                                    <option value="mles-websocket">mles-websocket</option>
                                    <option value="coap">{{ $t("Constrained Application Protocol") }}</option>
                                    <option value="TLCP-2.1.0.lightstreamer.com">TLCP 2.1.0</option>
                                    <option value="sqlnet.oracle.com">sqlnet</option>
                                    <option value="oneM2M.R2.0.json">oneM2M R2.0 JSON</option>
                                    <option value="oneM2M.R2.0.xml">oneM2M R2.0 XML</option>
                                    <option value="oneM2M.R2.0.cbor">oneM2M R2.0 CBOR</option>
                                    <option value="transit">Transit</option>
                                    <option value="2016.serverpush.dash.mpeg.org">MPEG-DASH-ServerPush-23009-6-2017</option>
                                    <option value="2018.mmt.mpeg.org">MPEG-MMT-23008-1-2018</option>
                                    <option value="clue">clue</option>
                                    <option value="webrtc.softvelum.com">{{ $t("Softvelum WebSocket signaling protocol") }}</option>
                                    <option value="cobra.v2.json">{{ $t("Cobra Real Time Messaging Protocol") }}</option>