Advertisement
Guest User

Untitled

a guest
Sep 9th, 2015
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var karma_system_patch = {
  2.     key: pb.plugin.key('timelimit').get(pb.data('user').id),
  3.    
  4.     format_tlkey: function (timelimit) {
  5.         if(timelimit == undefined){
  6.             timelimit = {
  7.                 'test': pb.plugin.get('karma_system_patch').settings.paTimelimit
  8.             };
  9.         } else if (timelimit.match(/{/)) {
  10.             JSON.parse(timelimit);
  11.         }
  12.     }
  13. }
  14.  
  15.     shorty_karma_system.give_or_take = function (i, n, t, a) {
  16.        
  17.         var ksp = karma_system_patch;
  18.         var sks = shorty_karma_system;
  19.         var gltl = pb.plugin.get('karma_system_patch').settings.paTimelimit;
  20.         console.log('TLKEY: '+ksp.key);
  21.         karma_system_patch.format_tlkey(ksp.key);
  22.         console.log('TLKEY_AFTERFORMAT: '+ksp.key);
  23.        
  24.         if (i != pb.data('user').id && proboards.plugin.key('shorty_karma_plugin').can_write(pb.data('user').id)) {
  25.             console.log('ID: '+pb.data('user').id+' - '+n+' CAN_WRITE');
  26.             var kr = sks.format_key(sks.key.get(i)),
  27.                 kg = sks.format_key(sks.key.get(pb.data('user').id)),
  28.                 text = ((t == 1) ? 'give' : 'take');
  29.             if(ksp.key[n] == gltl || new Date().getTime() >= ksp.key[n]) {
  30.                 function giveK2() {
  31.                     kg.t = parseInt(new Date().getTime() + (sks.settings().time_limit * 60000));
  32.                     ksp.key[n] = parseInt(new Date().getTime() + (pb.plugin.get('karma_system_patch').settings.paTimelimit * 60000));
  33.                     sks.change_karma(kr, kg, i, n, ((t == 1) ? 'gave' : 'took'));
  34.                     kr.n = ((t == 1) ? parseInt(kr.n) + a : parseInt(kr.n) - a);
  35.                     sks.format_rank(kr.n, i);
  36.                     sks.key.set({
  37.                         object_id: i,
  38.                         value: JSON.stringify(kr),
  39.                      });
  40.                     sks.key.set({
  41.                         object_id: proboards.data('user').id,
  42.                         value: JSON.stringify(kg)
  43.                     });
  44.                 }
  45.                 if (sks.settings().confirmation) pb.window.confirm('Are you sure you want to ' + ((t == 1) ? 'give this person ' + sks.settings().lowercase_text + '' : 'take ' + sks.settings().lowercase_text + ' from this person') + '?', giveK2);
  46.                 else giveK2();
  47.             } else if (new Date().getTime() < ksp.key[n]) {
  48.                 var months = ["January","February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
  49.                 var date = months[new Date(ksp.key[n]).getMonth()]+' '+new Date(ksp.key[n]).getDate();
  50.                 pb.window.dialog('karma-time', {
  51.                     title : 'Alert',
  52.                     resizable: false,
  53.                     draggable: false,
  54.                     html : 'You will be able to ' + ((t == 1) ? 'give' : 'take') + ' ' + sks.settings().lowercase_text + ' to this person again on '+date+' at '+$.formatTime('h:mm:ss p', new Date(kg.t))+'.',
  55.                     buttons : {
  56.                         'OK' : function () {
  57.                             $(this).dialog('close');
  58.                         }
  59.                     }    
  60.                 });
  61.             }
  62.         } else if (i == pb.data('user').id || !pb.plugin.key('shorty_karma_plugin').can_write(pb.data('user').id)) {
  63.             if (i == pb.data('user').id) pb.window.alert('Alert', 'You can not change your own ' + sks.settings().lowercase_text + '.');
  64.             else if (!pb.plugin.key('shorty_karma_plugin').can_write(pb.data('user').id)) pb.window.alert('Alert', 'You do not have permission to ' + ((t == 1) ? 'give' : 'take') + ' ' + sks.settings().lowercase_text + '.');
  65.         }
  66.     }
  67.  
  68.     shorty_karma_system.miniprofile_setup = function () {
  69.         if (pb.data('route').name.match(/^thread|recent_posts|all_recent_posts|conversation$/)) {
  70.             var sks = shorty_karma_system;
  71.             function karma_mp_setup() {
  72.                 $('div.mini-profile:has(.user-link)').each(function () {
  73.                     var id = $(this).find('a.user-link').idFromClass('user'), dn = pb.text.escape_html($(this).find('a.user-link').text());
  74.                     var kr = sks.format_key(sks.key.get(id));
  75.                     karmabar = '<img src="'+pb.plugin.get('karma_system_patch').images.greenbar+'" title="Reputation: '+kr.n+'">';
  76.                     if (sks.settings().members) {
  77.                         if(!$(this).find('span.userKarmaBars' + id + '').length) $(this).append('<span class="userKarmaBars'+id+'"></span>');
  78.                         for(i = 1; i <= 10; i++){ if(kr.n >= i*10) $(this).find('span.userKarmaBars' + id + '').append(karmabar); }
  79.                         if(sks.settings().use_rank) {
  80.                             if(!$(this).find('span.karmarank'+id+'').length) $(this).find('div.info').append('<br /><span class="karmarank'+id+'"></span>');
  81.                             $('span.karmarank' + id+ '').html('<span class="karmaranktext miniprof">' + sks.settings().text + ' Rank</span>: <span class="karmarank"></span>');
  82.                             sks.format_rank(kr.n, id);
  83.                         }
  84.                         if(pb.data('user').is_logged_in) {
  85.                             if(!$(this).find('span.karmabuttons').length) $('div.mini-profile').append('<br /><span class="karmabuttons"></span>')  
  86.                             $(this).find('span.karmabuttons').append('<a class="give-karma"><img src="'+pb.plugin.get('karma_system_patch').images.repadd+'" title="Click to add reputation" style=""></a>');
  87.                             $(this).find('span.karmabuttons a.give-karma').attr('onclick','shorty_karma_system.give_or_take('+id+', \''+dn+'\', 1, 1)');
  88.                         }
  89.                     }
  90.                     if(sks.check_edit_permission()) {
  91.                         $('span.userKarmaBars' + id + '').click(function () {
  92.                             pb.dialog('edit-karma', {
  93.                                 title: 'Edit ' + sks.settings().text + '',
  94.                                 resizable: false,
  95.                                 draggable: false,
  96.                                 html: '<input type="text" class="karmapopup" value="' + kr.n + '" style="width:95%;" />',
  97.                                 buttons: {
  98.                                     'Cancel': function () {
  99.                                         $(this).dialog('close');
  100.                                     },
  101.                                     'Confirm': function () {
  102.                                         var oldKarmaNum = kr.n;
  103.                                         kr.n = parseInt($('input.karmapopup').val());
  104.                                         sks.key.set({
  105.                                             object_id: id,
  106.                                             value: JSON.stringify(kr)
  107.                                         });
  108.                                         $(this).dialog('close');
  109.                                     }
  110.                                 }
  111.                             });
  112.                         });
  113.                     }
  114.                 });
  115.             }
  116.             karma_mp_setup();
  117.             proboards.on('afterSearch', karma_mp_setup);
  118.         }
  119.     }
  120.    
  121.     shorty_karma_system.profile_setup = function() {
  122.         if(proboards.data('route').name.match(/^user|show_user_(activity|following|friends|groups|notifications|gift)$/))  {
  123.             var sks = shorty_karma_system;
  124.             $('div.ui-tabMenu > ul').append('<li id="karma"><a href="/user/'+pb.data('route').params.user_id+'/'+sks.settings().url+'">'+sks.settings().text+'</a></li>');
  125.             var url = new RegExp('(\/user\/'+pb.data('route').params.user_id+'\/' + sks.settings().url + ')$');
  126.             if(window.location.href.match(url)) {
  127.                 var id = proboards.data('route').params.user_id, dn = pb.text.escape_html($('span.big_username').text());
  128.                 var kr = sks.format_key(sks.key.get(id));
  129.                 var r_ele = (sks.settings().use_rank)? '<br /><span class="karmarank'+id+'"><span class="karmaranktext fullprof">'+sks.settings().text+' Rank</span>: <span class="karmarank"></span></span>':'';
  130.                 $('li#karma').addClass('ui-active');
  131.                 $('div.pad-all-double.ui-helper-clearfix.clear form').hide();
  132.                 $('div.pad-all-double.ui-helper-clearfix.clear').append('<div class="content-box center-col"><span class="userKarmaNumber'+pb.data('route').params.user_id+'"><span class="karmatext fullprof">'+sks.settings().text+'</span>: <span class="karma">'+kr.n+'</span></span>'+((pb.data('user').is_logged_in)? '&nbsp;<span class="karmaprofilebuttons"><a class="give-karma">'+sks.settings().add_text+'</a>'+sks.settings().separator+'<a class="take-karma">'+sks.settings().take_text+'</a></span>':'')+''+r_ele+'</div>');
  133.                 $('span.karmaprofilebuttons a.give-karma').attr('onclick','shorty_karma_system.give_or_take('+id+', \''+dn+'\', 1, 1)');
  134.                 $('span.karmaprofilebuttons a.take-karma').attr('onclick','shorty_karma_system.give_or_take('+id+', \''+dn+'\', 2, 1)')
  135.                 sks.format_rank(kr.n,id);
  136.                 var givenRows = '';
  137.                 var recievedRows = '';
  138.                 for(a=4;a>-1;a--) {
  139.                     if(kr.g[a] != undefined) {
  140.                         if(kr.g[a].type == 'gave') {
  141.                             var type = ''+kr.g[a].type+' '+this.settings().lowercase_text+' to';
  142.                         } else {
  143.                             var type = ''+kr.g[a].type+' '+this.settings().lowercase_text+' from'
  144.                         }
  145.                         givenRows+= '<tr class="row-'+a+'"><td class="main">You '+type+' <a class="user-link user-'+kr.g[a].id+'" href="/user/'+kr.g[a].id+'">'+kr.g[a].dn+'</a>.</td><td class="time-container"><abbr data-timestamp="'+kr.g[a].ts+'" class="time" title="'+new Date(kr.g[a].ts)+'">'+new Date(kr.g[a].ts)+'</abbr></td></tr>';
  146.                     }
  147.                 }
  148.                 if(!givenRows.length) givenRows += '<tr class="row-0"><td class="main"><div align="center">You have not given '+this.settings().lowercase_text+' to or taken '+this.settings().lowercase_text+' away from anyone.</div></td></tr>';
  149.                 for(t=4;t>-1;t--) {
  150.                     if(kr.r[t] != undefined) {
  151.                         if(kr.r[t].type == 'gave') {
  152.                             var type = ''+kr.r[t].type+' '+this.settings().lowercase_text+' to';
  153.                         } else {
  154.                             var type = ''+kr.r[t].type+' '+this.settings().lowercase_text+' from'
  155.                         }
  156.                         recievedRows+= '<tr class="row-'+t+'"><td class="main"><a class="user-link user-'+kr.r[t].id+'" href="/user/'+kr.r[t].id+'">'+kr.r[t].dn+'</a> '+type+' you.</td><td class="time-container"><abbr data-timestamp="'+kr.r[t].ts+'" class="time" title="'+new Date(kr.r[t].ts)+'">'+new Date(kr.r[t].ts)+'</abbr></td></tr>';
  157.                     }
  158.                 }
  159.                 if(!recievedRows.length) recievedRows += '<tr class="row-0"><td class="main"><div align="center">You have not had '+sks.settings().lowercase_text+' given to or taken away from you.</div></td></tr>';
  160.                 $('div.pad-all-double.ui-helper-clearfix.clear').append('<div class="content-box"><h2 style="padding:5px;">'+sks.settings().text+' Given</h2><table class="notifications list"><tbody class="notifications-container">'+givenRows+'</tbody></table></div>');
  161.                 $('div.pad-all-double.ui-helper-clearfix.clear').append('<div class="content-box"><h2 style="padding:5px;">'+sks.settings().text+' Received</h2><table class="notifications list"><tbody class="notifications-container">'+recievedRows+'</tbody></table></div>');
  162.                 if (sks.check_edit_permission()) {
  163.                     $('span.userKarmaNumber' + id + '').click(function () {
  164.                         proboards.dialog('edit-karma', {
  165.                             title : 'Edit ' + sks.settings().text + '',
  166.                             resizable: false,
  167.                             draggable: false,
  168.                             html : '<input type="text" class="karmapopup" value="' + $('span.userKarmaNumber' + id + ':eq(0) > span.karma').text() + '" style="width:95%;" />',
  169.                             buttons : {
  170.                                 'Cancel' : function () {
  171.                                     $(this).dialog('close');
  172.                                 },
  173.                                 'Confirm' : function () {
  174.                                     kr.n = $('input.karmapopup').val();
  175.                                     sks.key.set({
  176.                                         object_id: id,
  177.                                         value: JSON.stringify(kr),
  178.                                         success:function() {
  179.                                             sks.format_rank(kr.n,id);
  180.                                             $('span.userKarmaNumber' + id + ' > span.karma').text(kr.n);
  181.                                         }
  182.                                     });
  183.                                     $(this).dialog('close');
  184.                                 }
  185.                             }
  186.                         });
  187.                     });
  188.                 }
  189.             }
  190.         }
  191.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement