Advertisement
Des1roer

Untitled

Aug 4th, 2017
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. c = function () {
  2.     return console.log.apply(console, arguments);
  3. };
  4.  
  5. Object.size = function (obj) {
  6.     //https://stackoverflow.com/questions/5223/length-of-a-javascript-object
  7.     var size = 0, key;
  8.     for (key in obj) {
  9.         if (obj.hasOwnProperty(key))
  10.             size++;
  11.     }
  12.     return size;
  13. };
  14.  
  15. Array.prototype.clean = function (deleteValue) {
  16.     for (var i = 0; i < this.length; i++) {
  17.         if (this[i] == deleteValue) {
  18.             this.splice(i, 1);
  19.             i--;
  20.         }
  21.     }
  22.     return this;
  23. };
  24.  
  25. Vue.component('modal', {
  26.     template: '#modal-template'
  27. })
  28.  
  29. const default_row = {
  30.     series: 1,
  31.     season: 1
  32. };
  33.  
  34. var vm = new Vue({
  35.     el: '.wrapper',
  36.     data: {
  37.         cols: {},
  38.         id: window.location.href.split('#')[1] || 0,
  39.         loader: true,
  40.         showModal: false,
  41.         add_row: default_row,
  42.         rows: {},
  43.         col_names: [],
  44.         cols_count: 0,
  45.         options: [],
  46.         search_row: {},
  47.         all: 0,
  48.         page: 1,
  49.         limit:10,
  50.         current: 1,
  51.         pages: 1
  52.     },
  53.     mounted: function () {
  54.      
  55.     },
  56.     methods: {
  57.         refresh: function () {
  58.             var self = this;
  59.             $.ajax({
  60.                 url: "php/data.php",
  61.                 type: 'POST',
  62.                 data: {act: 'load', user: self.user_id},
  63.                 success: function (data) {
  64.                     var data = JSON.parse(data);
  65.                     self.loader = false;
  66.                     self.cols = data;
  67.                     self.cols_count = self.cols.length;
  68.                 },
  69.                 error: function (jqXHR, textStatus, errorThrown) {
  70.                     alert(errorThrown);
  71.                 }
  72.             });
  73.            
  74.             $.ajax({
  75.                 url: "php/data.php",
  76.                 type: 'POST',
  77.                 data: {act: 'load_cnt', user: self.user_id, ext : JSON.stringify(self.search_row)},
  78.                 success: function (data) {
  79.                     var data = JSON.parse(data);
  80.                     self.all = data;    
  81.        
  82.                     $.ajax({
  83.                         url: "php/data.php",
  84.                         type: 'POST',
  85.                         data: {act: 'load_data', user: self.user_id, ext : JSON.stringify(self.search_row),
  86.                           pagination: {page:self.page, limit:self.limit}},
  87.                         success: function (data) {
  88.                             var data = JSON.parse(data);
  89.                             self.rows = data;
  90.                             self.pages = Math.ceil(self.all / self.limit)
  91.                         },
  92.                         error: function (jqXHR, textStatus, errorThrown) {
  93.                             alert(errorThrown);
  94.                         }
  95.                     });  
  96.                    
  97.                     if (Object.size(self.search_row) == 0 && self.page == 1) {                    
  98.                       $.ajax({
  99.                           url: "php/data.php",
  100.                           type: 'POST',
  101.                           data: {act: 'load_data', user: self.user_id, ext : JSON.stringify(self.search_row),
  102.                             pagination: {page:self.page, limit:self.all}},
  103.                           success: function (data) {
  104.                               c('ok')
  105.                               var data = JSON.parse(data);
  106.                                 self.options['serial'] = _.uniq(data, function(item, key, a) {
  107.                                    return item.serial;
  108.                                 });
  109.                                 self.options['season'] = _.uniq(data, function(item, key, a) {
  110.                                    return item.season;
  111.                                 });
  112.                                 self.options['series'] = _.uniq(data, function(item, key, a) {
  113.                                    return item.series;
  114.                                 });  
  115.                           },
  116.                           error: function (jqXHR, textStatus, errorThrown) {
  117.                               alert(errorThrown);
  118.                           }
  119.                       });  
  120.                     }
  121.                      
  122.                 },
  123.                 error: function (jqXHR, textStatus, errorThrown) {
  124.                     alert(errorThrown);
  125.                 }
  126.             });
  127.            
  128.             vm.showModal = false;
  129.             vm.loader = false;
  130.             c('refreshed at', moment().format("YYYY-MM-DD HH:mm:ss"));
  131.         },
  132.         pass: function (data) {
  133.             handleAuthClick();
  134.         },
  135.         add: function (data) {
  136.             var self = this;
  137.             if (Object.size(self.add_row) != self.cols_count) {
  138.                 alert('НЕ ВСЕ ПОЛЯ ЗАПОЛНЕНЫ');
  139.                 c('НЕ ВСЕ ПОЛЯ ЗАПОЛНЕНЫ', moment().format("YYYY-MM-DD HH:mm:ss"));
  140.                 validInput();
  141.                 return false;
  142.             }
  143.             inValid();
  144.             self.loader = true;
  145.             $.ajax({
  146.                 url: "php/data.php",
  147.                 type: 'POST',
  148.                 data: {act: 'add', data: self.add_row, user: self.user_id},
  149.                 success: function (data) {
  150.                     var data = JSON.parse(data);
  151.                     if (typeof data.error == 'undefined') {
  152.                         self.add_row = {
  153.                             series: 1,
  154.                             season: 1
  155.                         };
  156.                         c(default_row)
  157.                         vm.refresh();
  158.                     } else {
  159.                         alert(data.error.errorInfo);
  160.                         vm.refresh();
  161.                     }
  162.                 },
  163.                 error: function (jqXHR, textStatus, errorThrown) {
  164.                     alert(errorThrown);
  165.                     vm.refresh();
  166.                 }
  167.             });
  168.         },
  169.         edit: function (data) {
  170.             c(data)
  171.             this.loader = true;
  172.             $.ajax({
  173.                 url: "php/data.php",
  174.                 type: 'POST',
  175.                 data: {act: 'edit', user: self.user_id, data: data},
  176.                 success: function (data) {
  177.                     var data = JSON.parse(data);
  178.                     if (typeof data.error == 'undefined') {
  179.                         vm.refresh();
  180.                     } else {
  181.                         alert(data.error.errorInfo);
  182.                     }
  183.                 },
  184.                 error: function (jqXHR, textStatus, errorThrown) {
  185.                     alert(errorThrown);
  186.                     vm.refresh();
  187.                 }
  188.             });
  189.         },
  190.         del: function (data) {
  191.             if (!confirm("Точно удалить?"))
  192.                 return false;
  193.             this.loader = true;
  194.             $.ajax({
  195.                 url: "php/data.php",
  196.                 type: 'POST',
  197.                 data: {act: 'del', data: data},
  198.                 success: function (data) {
  199.                     var data = JSON.parse(data);
  200.                     if (typeof data.error == 'undefined') {
  201.                         vm.refresh();
  202.                     } else {
  203.                         alert(data.error.errorInfo);
  204.                     }
  205.                 },
  206.                 error: function (jqXHR, textStatus, errorThrown) {
  207.                     alert(errorThrown);
  208.                 }
  209.             });
  210.         },
  211.         kinozal: function (data) {
  212.             return 'http://j96177ni.beget.tech/vid/?s=' + data.serial  + '&i=' + data.id + '#' + data.id;
  213.         },
  214.         search: function (data) {          
  215.             var self = this,  
  216.                     ext = JSON.stringify(self.search_row);
  217.             self.page = 1;            
  218.             self.current = self.page;
  219.             $.ajax({
  220.                 url: "php/data.php",
  221.                 type: 'POST',
  222.                 data: {act: 'load_cnt', user: self.user_id, ext : JSON.stringify(self.search_row)},
  223.                 success: function (data) {
  224.                    //<--start  
  225.                     var data = JSON.parse(data);
  226.                     self.all = data;
  227.                    
  228.                     $.ajax({
  229.                         url: "php/data.php",
  230.                         type: 'POST',
  231.                         data: {act: 'load_data', user: self.user_id, ext: ext,
  232.                                       pagination: {page:self.page, limit:self.limit}},
  233.                         success: function (data) {
  234.                             var data = JSON.parse(data);
  235.                             self.rows = data;
  236.                             self.add_row.serial = (self.search_row.serial != '') ? self.search_row.serial : '';      
  237.                             self.pages = Math.ceil(self.all / self.limit)
  238.                         },
  239.                         error: function (jqXHR, textStatus, errorThrown) {
  240.                             alert(errorThrown);
  241.                         }
  242.                     });                  
  243.                    
  244.                   //<--end  
  245.                 },
  246.                 error: function (jqXHR, textStatus, errorThrown) {
  247.                     alert(errorThrown);
  248.                 }
  249.             });                                  
  250.         },
  251.         self: function (data) {
  252.           this.add_row.serial = this.search_row.serial;
  253.         },
  254.         next: function (data) {
  255.           this.page += 1;
  256.           this.current = this.page;
  257.           this.refresh();
  258.         },
  259.         prev: function (data) {
  260.           this.page -= 1;
  261.           this.current = this.page;
  262.           this.refresh();
  263.         },
  264.         changePage: function (data) {
  265.           this.page = data;
  266.           this.current = this.page;
  267.           this.refresh();
  268.         },
  269.     }
  270. })
  271.  
  272. function inValid() {
  273.     $(".check:visible").removeClass("warning");
  274. }
  275.  
  276. function validInput() {
  277.     var bad = 0;
  278.     $(".check:visible").each(function () {
  279.         if ($(this).val().trim() == '') {
  280.             $(this).addClass('warning');
  281.             bad++;
  282.         }
  283.     })
  284.     return (bad > 0) ? false : true;
  285. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement