]> source.dussan.org Git - gitea.git/commitdiff
Enabling and disabling the commit button to prevent empty commits (web editor) (...
authorLukas <LukBukkit@users.noreply.github.com>
Wed, 23 Oct 2019 00:29:33 +0000 (02:29 +0200)
committerLunny Xiao <xiaolunwen@gmail.com>
Wed, 23 Oct 2019 00:29:33 +0000 (08:29 +0800)
* Enabling and disabling the commit button to prevent empty commits

Signed-off-by: LukBukkit <luk.bukkit@gmail.com>
* The button won't get enabled if you change the commit message

Signed-off-by: LukBukkit <luk.bukkit@gmail.com>
* Fixes a spelling mistake for 'silent'

Signed-off-by: LukBukkit <luk.bukkit@gmail.com>
public/js/index.js

index e9a4bcaac1de1bcb84de2f2217afb784f4bd4722..90819677a5703c9307618eed285aaa0e09a2ff30 100644 (file)
@@ -1572,7 +1572,27 @@ function initEditor() {
         });
     }).trigger('keyup');
 
-    $('#commit-button').click(function (event) {
+    // Using events from https://github.com/codedance/jquery.AreYouSure#advanced-usage
+    // to enable or disable the commit button
+    const $commitButton = $('#commit-button');
+    const $editForm = $('.ui.edit.form');
+    const dirtyFileClass = 'dirty-file';
+
+    // Disabling the button at the start
+    $commitButton.prop('disabled', true);
+
+    // Registering a custom listener for the file path and the file content
+    $editForm.areYouSure({
+        silent: true,
+        dirtyClass: dirtyFileClass,
+        fieldSelector: ':input:not(.commit-form-wrapper :input)',
+        change: function () {
+            const dirty = $(this).hasClass(dirtyFileClass);
+            $commitButton.prop('disabled', !dirty);
+        }
+    });
+
+    $commitButton.click(function (event) {
         // A modal which asks if an empty file should be committed
         if ($editArea.val().length === 0) {
             $('#edit-empty-content-modal').modal({