Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // JS handlers for AjaxServlet
- $(function() {
- // Table sorting on click in th
- $(".table:not(.donotsort)").tablesorter();
- $('.table:not(.donotsort)').find('.initsort').trigger('sort');
- // Search dropdown
- $('.search-panel .dropdown-menu').find('a').click(function(e) {
- e.preventDefault();
- var param = $(this).attr("href").replace("#","");
- var concept = $(this).text();
- $('.search-panel span#search_concept').text(concept);
- $('.input-group #search_param').val(param);
- });
- // Some fancy stuff :D
- $('.selectpicker').selectpicker({
- style: 'btn-default',
- size: 20
- });
- // Let's rock & roll based on ajax class!
- $('.ajax').on('click', function() {
- var el = $(this);
- var bean = el.data('bean');
- var action = el.data('action');
- var key = el.val();
- var req = {
- action: action,
- bean: bean,
- key: key
- };
- var proceed = true;
- if (bean == 'category') {
- proceed = confirm("This action cannot be undone, are you sure?");
- }
- if (!proceed)
- return;
- // We prepare JSON for sending
- $.ajax({
- type: 'POST',
- url: 'AjaxServlet',
- dataType: 'json',
- data: {data: JSON.stringify(req)}
- }).
- success(function(res) {
- if (!res.error) {
- var undoMessage = "";
- // Undo action:
- if (res.undoKey)
- undoMessage = "<br><a href=UndoAction?key="+res.undoKey+"><u>Undo</u></a>";
- // Display fancy message
- toastr['success'](res.message + undoMessage, "Success");
- console.log(res);
- // Do the action based on ajax call from AjaxServlet
- switch(action) {
- case "delete":
- deleteSuccess(bean, res);
- break;
- case "unpublish":
- unpublishSuccess(el);
- break;
- case "publish":
- publishSuccess(el);
- break;
- case "addcart":
- addCartSuccess(res);
- break;
- case "removeCart":
- removeCartSuccess(res);
- break;
- }
- }
- else {
- // Display error message
- toastr['error'](res.message, "Error");
- }
- }).
- error(function(res) {
- if (!res.message)
- // Something bad happened :(
- res.message = "Action not permitted.";
- toastr['error'](res.message, "Error");
- });
- });
- function deleteSuccess(bean, res) {
- if (Array.isArray(res.deletedKeys)) {
- $.each(res.deletedKeys, function(key, value) {
- $.deleteFromDOM(bean, value);
- });
- }
- else {
- $.deleteFromDOM(bean, res.deletedKeys); // only one
- }
- if (Array.isArray(res.deletedComponents)) {
- $.each(res.deletedComponents, function(key, value){
- $.deleteFromDOM("component", value);
- });
- }
- }
- function unpublishSuccess(el) {
- el.removeClass("btn-success").addClass("btn-warning");
- el.data("action", "publish");
- el.html("<i class=\"icon-remove\"></i>");
- }
- function publishSuccess(el) {
- el.removeClass("btn-warning").addClass("btn-success");
- el.data("action", "unpublish");
- el.html("<i class=\"icon-ok-sign\"></i>");
- }
- function removeLastTableRow(t) {
- t.each(function(){
- if ($('tbody', this).length > 0) {
- $('tbody tr:last', this).remove();
- }
- else {
- $('tr:last', this).remove();
- }
- });
- }
- // Refresh shopping cart
- // TODO: improve this...
- function refreshShoppingCart(res) {
- // $.each(res, function(i, item) {
- console.log("RETURNED ITEM NAME: " + res.itemName + " - " + res.itemKey);
- var tmp = "";
- var tPrice = (res.itemPrice * res.itemAmount);
- if (res.itemType == "Component") {
- tmp = '<a href="ComponentView?key='+ res.itemKey +'">'+ res.itemKey + '</a>';
- console.log("IT IS COMPONENT: " + tmp);
- }
- else {
- tmp = res.itemName;
- console.log("IT IS DEVICE: " + tmp);
- }
- $('<tr data-key="'+res.itemKey+'" class="bill">').append(
- $('<td>').html(tmp),
- $('<td>').text(res.itemType),
- $('<td>').text(res.itemDesc),
- $('<td class="single-price">').text(res.itemPrice),
- $('<td>').text(res.itemAmount),
- $('<td class="single-total">').text(tPrice)
- ).appendTo('#cartTable');
- // });
- }
- // TODO: Implement cart refreshing! (Edit: almost done!)
- function addCartSuccess(res) {
- if (res.cartItems) {
- $("#cart-items").html("<a href=\"#cart\" role=\"button\" data-toggle=\"modal\">" + res.cartItems + " item(s) in your <i class=\"icon-shopping-cart\"></i></a>");
- refreshShoppingCart(res);
- }
- }
- function removeCartSuccess(res) {
- $("#cart-items").html("<a href=\"#cart\" role=\"button\" data-toggle=\"modal\">" + res.cartItems + " item(s) in your <i class=\"icon-shopping-cart\"></i></a>");
- $.deleteFromDOM("bill", res.removedKey);
- // refreshShoppingCart(res);
- }
- });
- $.extend({
- deleteFromDOM: function(bean, key){
- console.log("Deleting from DOM", bean, key);
- $("." + bean).each(function(index, item){
- if ($(item).data("key") === key) { // We can only delete an item if keys match!
- $(item).remove();
- }
- });
- }
- });
- /*
- // TODO: Rewrite this to extend jQuery activity
- function deleteFromDOM(bean, key){
- console.log("Deleting from DOM", bean, key);
- $("."+bean).each(function(index, item){
- if($(item).data("key") === key){
- $(item).remove();
- }
- });
- }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement