js: replace <meta> tags with <body> data attributes.

Refactor things to store information about the current user as data
attributes on the <body> tag rather than as <meta> tags. These <meta>
tags are now deprecated and will be eventually removed.

* Store all of the current user's API attributes as data attributes on
  the <body> tag.

* Add `CurrentUser.data` for getting data from the <body> tag, and
  use it instead of `Utility.meta`.

* Add `CurrentUser.update` for updating the current user's settings.

* Fix a bug with the user named "Anonymous" not being able to edit notes.
This commit is contained in:
evazion
2019-10-02 15:59:22 -05:00
parent b492b5de9c
commit d64236813a
10 changed files with 46 additions and 34 deletions

View File

@@ -1,3 +1,4 @@
import CurrentUser from './current_user'
import Utility from './utility'
let Note = {
@@ -348,7 +349,7 @@ let Note = {
e.stopPropagation();
});
if (Utility.meta("current-user-name") !== "Anonymous") {
if (CurrentUser.data("is-anonymous") === false) {
$note_body.on("click.danbooru", function(e) {
if (e.target.tagName !== "A") {
var $note_body_inner = $(e.currentTarget);
@@ -573,7 +574,7 @@ let Note = {
start: function(e) {
e.preventDefault();
if (Utility.meta("current-user-id") === "") {
if (CurrentUser.data("is-anonymous")) {
Utility.notice("You must be logged in to edit notes");
return;
}