luci-base: ui.js: implement AbstractElement.isChanged()
authorJo-Philipp Wich <jo@mein.io>
Thu, 6 Aug 2020 14:16:31 +0000 (16:16 +0200)
committerJo-Philipp Wich <jo@mein.io>
Thu, 6 Aug 2020 15:56:34 +0000 (17:56 +0200)
The new `isChanged()` utility functions allows to query the dirty state
of an ui input widget.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
modules/luci-base/htdocs/luci-static/resources/ui.js

index 7823182f04980ced6e1e36bae3ff03b1b1dc73f3..77074d50757f8bbb9eb959bf8c8cebcfd9944f8e 100644 (file)
@@ -127,6 +127,21 @@ var UIElement = baseclass.extend(/** @lends LuCI.ui.AbstractElement.prototype */
                }
        },
 
+       /**
+        * Check whether the input value was altered by the user.
+        *
+        * @instance
+        * @memberof LuCI.ui.AbstractElement
+        * @returns {boolean}
+        * Returns `true` if the input value has been altered by the user or
+        * `false` if it is unchaged. Note that if the user modifies the initial
+        * value and changes it back to the original state, it is still reported
+        * as changed.
+        */
+       isChanged: function() {
+               return (this.node ? this.node.getAttribute('data-changed') : null) == 'true';
+       },
+
        /**
         * Check whether the current input value is valid.
         *