diff --git a/apps/home/models.py b/apps/home/models.py index 542ec88..e7ec23a 100644 --- a/apps/home/models.py +++ b/apps/home/models.py @@ -110,9 +110,11 @@ class MessageStyle(models.Model): """ id = models.AutoField(primary_key=True) - server = models.ForeignKey(to=Server, on_delete=models.CASCADE) + server = models.ForeignKey(to=Server, on_delete=models.CASCADE, null=True, blank=False) + + is_embed = models.BooleanField() + colour = models.CharField(max_length=6) - is_embed = models.BooleanField(default=True) is_hyperlinked = models.BooleanField() # title only show_author = models.BooleanField() show_timestamp = models.BooleanField() diff --git a/apps/home/static/home/js/servers.js b/apps/home/static/home/js/servers.js index 349fe36..45ae5b1 100644 --- a/apps/home/static/home/js/servers.js +++ b/apps/home/static/home/js/servers.js @@ -154,13 +154,21 @@ $(document).on("selectedServerChange", function() { // #region Load Servers async function loadServers() { + $(".server-loading-item").show(); try { let response = await generateServers(); $(".server-loading-item").hide(); + + if (response.hasOwnProperty("retry_after")) { + $(".server-rate-limit").show(); + return; + } + response.forEach(server => { addToLoadedServers(server, false); }); + } catch (error) { logError(error); diff --git a/apps/home/static/home/js/tabs/subs.js b/apps/home/static/home/js/tabs/subs.js index 325f903..5640632 100644 --- a/apps/home/static/home/js/tabs/subs.js +++ b/apps/home/static/home/js/tabs/subs.js @@ -13,7 +13,7 @@ function initSubscriptionsModule() { className: "text-truncate", render: function(data, type, row) { const name = sanitise(data); - return ``; + return ``; } }, { @@ -118,3 +118,45 @@ $(subTableId).on("change", ".sub-toggle-active", async function() { let formData = objectToFormData(sub); await ajaxRequest(`/api/subscriptions/${id}/`, "PUT", formData); }); + + +// region New/Edit Modal + +$(subTableId).closest('.js-tableBody').siblings('.js-tableFilters').on("click", ".table-new-btn", async function() { + await openSubModal(-1); +}); + +$(subTableId).on("click", ".edit-modal", async function() { + let id = $(subTableId).DataTable().row($(this).closest("tr")).data().id; + await openSubModal(id) +}) + +async function openSubModal(id) { + $modal = $("#subFormModal"); + + if (parseInt(id) === -1) { + $modal.find(".form-create").show(); + $modal.find(".form-edit").hide(); + } + else { + $modal.find(".form-create").hide(); + $modal.find(".form-edit").show(); + + let data = await ajaxRequest(`/api/subscriptions/${id}/`, "GET"); + + $modal.find("[data-field]").each(function() { + let key = $(this).attr("data-field"); + let value = data[key]; + + if (typeof value === "boolean") { + $(this).prop("checked", value); + } + else { + $(this).val(value); + } + + }); + } + + $modal.modal("show"); +} diff --git a/apps/home/templates/home/includes/settingstab.html b/apps/home/templates/home/includes/settingstab.html deleted file mode 100644 index 4b004fa..0000000 --- a/apps/home/templates/home/includes/settingstab.html +++ /dev/null @@ -1,30 +0,0 @@ -
\ No newline at end of file diff --git a/apps/home/templates/home/includes/submodal.html b/apps/home/templates/home/includes/submodal.html deleted file mode 100644 index 92e85b4..0000000 --- a/apps/home/templates/home/includes/submodal.html +++ /dev/null @@ -1,192 +0,0 @@ -