Advertisement
Guest User

Untitled

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