1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- var app = new Vue({
- el: "#app",
- data: {
- badges: []
- },
- mounted: function() {
- this.getBadges();
- mountBadges();
- },
- methods: {
- getBadges: function() {
- $.ajax({
- url: "/api/badges/",
- method: "GET",
- success: function(data) {
- app.badges = data;
- },
- error: toast.defaultAjaxError
- });
- },
- createNewBadge: function() {
- $("#badgesForm input[name=id]").val("-1");
- $("#badgesForm input[name=name]").val("");
- $("#badgesForm input[name=description]").val("");
- $("#badgesForm input[name=icon]").val("");
- },
- postBadgeData: function() {
- let formElement = $("#badgesForm").get(0);
- let formData = new FormData(formElement);
- let isNewBadge = $("#badgesForm input[name=id]").val() == "-1";
- let method = "";
- let action = "";
- if (isNewBadge) {
- method = "POST";
- action = "created";
- } else {
- method = "PUT";
- action = "updated";
- }
- $.ajax({
- url: "/api/badges/",
- method: method,
- data: formData,
- cache: false,
- contentType: false,
- processData: false,
- success: function(data) {
- if (isNewBadge) {
- app.badges.push(data);
- } else {
- for (let i = 0; i < app.badges.length; i++) {
- if (app.badges[i].id == data.id) {
- app.badges[i].name = data.name;
- break;
- }
- }
- }
- toast.success(null, "Badge " + action + " successfully.", false);
- },
- error: toast.defaultAjaxError
- });
- }
- },
- updated: function() {}
- });
- function mountBadges() {
- $("#badgesDropdown").dropdown("setting", "onChange", function(val) {
- let badge = app.badges[val];
- $("#badgesForm input[name=id]").val(badge.id);
- $("#badgesForm input[name=name]").val(badge.name);
- $("#badgesForm input[name=description]").val(badge.description);
- $("#badgesForm input[name=icon]").val(badge.icon);
- });
- }
- $("#menu-badges").addClass("active");
|