diff --git a/src/uxbox/data/users.cljs b/src/uxbox/data/users.cljs index a7a5b56e1..237610b59 100644 --- a/src/uxbox/data/users.cljs +++ b/src/uxbox/data/users.cljs @@ -61,18 +61,15 @@ ;; --- Update Password -(defrecord UpdatePassword [password] +(defrecord UpdatePassword [old-password password] rs/WatchEvent (-apply-watch [_ state s] - ;; (letfn [(on-error [err] - ;; (uum/error (tr "errors.update-password")) - ;; (rx/empty))] - ;; (->> (rp/req :update/password data) - ;; (rx/catch on-error))))) - (js/alert "Not implemented") - (rx/empty))) + (letfn [(on-error [err] + (uum/error (tr "errors.update-password")) + (rx/empty))] + (->> (rp/req :update/password {:old-password old-password :password password}) + (rx/catch on-error))))) (defn update-password - [password] - {:pre [(string? password)]} - (UpdatePassword. password)) + [old-password password] + (UpdatePassword. old-password password)) diff --git a/src/uxbox/repo/users.cljs b/src/uxbox/repo/users.cljs index 8a155ab39..16e0a6dc8 100644 --- a/src/uxbox/repo/users.cljs +++ b/src/uxbox/repo/users.cljs @@ -22,3 +22,10 @@ :method :put :body data}] (send! params))) + +(defmethod request :update/password + [type data] + (let [params {:url (str url "/profile/me/password") + :method :put + :body data}] + (send! params))) diff --git a/src/uxbox/ui/settings/password.cljs b/src/uxbox/ui/settings/password.cljs index 9dd18a07a..363e9bf1e 100644 --- a/src/uxbox/ui/settings/password.cljs +++ b/src/uxbox/ui/settings/password.cljs @@ -32,13 +32,18 @@ (let [value (dom/event->value event)] (swap! local assoc field value))) (on-submit [event] - (let [password (:password-1 @local)] - (rs/emit! (udu/update-password password))))] + (let [password (:password-1 @local) + old-password (:old-password @local)] + (rs/emit! (udu/update-password old-password password))))] (html [:form.password-form [:span.user-settings-label "Change password"] - #_[:input.input-text {:type "password" :placeholder "Old password"}] + [:input.input-text + {:type "password" + :value (:old-password @local "") + :on-change (partial on-field-change :old-password) + :placeholder "Old password"}] [:input.input-text {:type "password" :value (:password-1 @local "") @@ -53,6 +58,7 @@ {:type "button" :class (when-not valid? "btn-disabled") :disabled (not valid?) + :on-click on-submit :value "Update settings"}]])))) (def password-form