123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- // force the page to re-load if the back button was used
- $(window).bind("pageshow", function(event) {
- if (event.originalEvent.persisted) {
- window.location.reload();
- }
- });
- $("#brand-name").addClass("active");
- var app = new Vue({
- el: "#MessagesPage",
- data: {
- messages: []
- },
- mounted: function() {
- this.fetchMessages();
- },
- methods: {
- fetchMessages: function() {
- $.ajax({
- url: "/api/messages/",
- method: "GET"
- }).done(responseData => {
- this.messages = responseData;
- });
- }
- }
- });
- $("#NewMessageButton").click(function() {
- $("#NewMessageModal")
- .modal({
- closeable: false
- })
- .modal("show");
- });
- $("#SendNewMessageButton").click(function() {
- let messageData = {
- recipient: $("#NewMessageUsername").val(),
- title: $("#NewMessageTitle").val(),
- content: $("#NewMessageContent").val()
- };
- console.log(messageData);
- messageData.recipient = messageData.recipient.trim();
- messageData.title = messageData.title.trim();
- messageData.content = messageData.content.trim();
- var badData = false;
- var animationName = "shake";
- if (messageData.recipient.length == 0) {
- $("#NewMessageUsername").transition(animationName);
- console.log("Username empty");
- badData = true;
- }
- if (messageData.title.length == 0) {
- $("#NewMessageTitle").transition(animationName);
- badData = true;
- }
- if (messageData.content.length == 0) {
- $("#NewMessageContent").transition(animationName);
- badData = true;
- }
- if (badData) {
- return false;
- }
- $.ajax({
- url: "/api/messages/",
- method: "POST",
- data: messageData,
- success: function(responseData) {
- $("#NewMessageModal").modal("hide");
- }
- });
- });
- $(document).ready(function() {
- $(".ui.search").search({
- minCharacters: 3,
- searchDelay: 500,
- searchOnFocus: false,
- apiSettings: {
- url: "/api/user/search/{query}",
- onResponse: function(serverResponse) {
- var response = {
- results: []
- };
- $.each(serverResponse, function(index, user) {
- response.results.push({
- title: user.username
- });
- });
- return response;
- }
- }
- });
- });
|