PluginProbe ʕ •ᴥ•ʔ
پارسی دیت – Parsi Date / 2.2.2
پارسی دیت – Parsi Date v2.2.2
6.2.1 6.2 6.1 5.1.6 5.1.7 5.1.8 5.1.8.2 6.0 trunk 1.0 1.1 1.2 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 2.0.0-alpha 2.1 2.1.1 2.1.2 2.1.3 2.1.5 2.1.6 2.1.7 2.2.0 2.2.1 2.2.2 2.2.3 2.3.0.1 2.3.0.2 2.3.1 2.3.2 2.3.3 2.3.4 3.0.1 3.0.2 3.0.3 4.0.0 4.0.1 4.0.2 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5
wp-parsidate / assets / js / admin.js
wp-parsidate / assets / js Last commit date
admin.js 9 years ago
admin.js
137 lines
1 jQuery(document).ready(function(){
2
3 jQuery('.wp-editor-wrap.html-active #content').css("direction","ltr");
4
5 function IsLeapYear( year ){
6 if(((year%4)==0&&(year%100)!=0)||((year%400)==0)&&(year%100)==0)return true;else return false;
7 }
8 function persian_to_gregorian(jy,jm,jd){var gd;j_days_sum_month=[0,0,31,62,93,124,155,186,216,246,276,306,336,365];g_days_in_month=[31,28,31,30,31,30,31,31,30,31,30,31];g_days_leap_month=[31,29,31,30,31,30,31,31,30,31,30,31];gd=j_days_sum_month[parseInt(jm)]+parseInt(jd);gy=parseInt(jy)+621;if(gd>286)gy++;if(IsLeapYear(gy-1)&&286<gd)gd--;if(gd>286)gd-=286;else gd+=79;if(IsLeapYear(gy)){for(gm=0;gd>g_days_leap_month[gm];gm++){gd-=g_days_leap_month[gm];}} else{for(gm=0;gd>g_days_in_month[gm];gm++)gd-=g_days_in_month[gm];}gm++;if(gm<10)gm='0'+gm;return [gy,gm,gd];}
9 function gregorian_to_persian(gy, gm, gd){j_days_in_month = [31,31,31,31,31,31,30,30,30,30,30,29];g_days_sum_month = [0,0,31,59,90,120,151,181,212,243,273,304,334,365];dayofyear = g_days_sum_month[parseInt(gm)] + parseInt(gd);leab=IsLeapYear(gy);leap=IsLeapYear(gy-1);if (dayofyear > 79){jd =(leab?dayofyear - 78:dayofyear - 79);jy = gy - 621;for (i = 0; jd > j_days_in_month[i]; i++)jd -= j_days_in_month[i];}else{jd =((leap || (leab && gm>2))?287 + dayofyear:286 + dayofyear);jy = gy - 622;if (leap == 0 && jd == 366)return [jy,12,30];for (i = 0; jd > j_days_in_month[i]; i++)jd -= j_days_in_month[i];}jm = ++i;jm=(jm<10?jm='0'+jm:jm);return [jy,jm,jd];}
10
11 var persian_month_names =['','فروردین','اردیبهشت','خرداد','تیر','�
12 رداد','شهریور','�
13 هر','آبان','آذر','دی','به�
14 ن','اسفند'];
15
16
17 /*
18 * Edit inline
19 */
20 function create_stampdiv(year,mon,day,hour,minu)
21 {
22 div='<div class="timestamp-wrap persian">'+
23 '<select id="mma" name="mma">';
24 for(var i=1;i<13;i++)
25 {
26 if(i==mon)
27 div+='<option value="'+i+'" selected="selected">'+persian_month_names[i]+'</option>';
28 else
29 div+='<option value="'+i+'">'+persian_month_names[i]+'</option>';
30 }
31 div+='</select>'+
32 '<input type="text" id="jja" name="jja" value="'+day+'" size="2" maxlength="2" autocomplete="off" />,'+
33 '<input type="text" id="aaa" name="aaa" value="'+year+'" size="4" maxlength="4" autocomplete="off" /> @'+
34 '<input type="text" id="hha" name="hha" value="'+hour+'" size="2" maxlength="2" autocomplete="off" /> : '+
35 '<input type="text" id="mna" name="mna" value="'+minu+'" size="2" maxlength="2" autocomplete="off" />'+
36 '</div>';
37 return div;
38 }
39
40 jQuery('a.edit-timestamp').on('click',function()
41 {
42 jQuery('.persian').remove();
43 var date = gregorian_to_persian(jQuery('#aa').val(),jQuery('#mm').val(),jQuery('#jj').val());
44 var div = create_stampdiv(date[0],date[1],date[2],jQuery('#hh').val(),jQuery('#mn').val());
45 jQuery('#timestampdiv').prepend(div);
46 jQuery('#timestampdiv .timestamp-wrap:eq(1)').hide();
47 });
48
49 jQuery('#the-list').on('click','.editinline',function()
50 {
51 var tr=jQuery(this).closest('td');
52 var year=tr.find('.aa').html();
53 if(year>1400)
54 {
55 var month=tr.find('.mm').html();
56 var day=tr.find('.jj').html();
57 var hour=tr.find('.hh').html();
58 var minu=tr.find('.mn').html();
59 var date=gregorian_to_persian(year,month,day);
60 jQuery('.persian').remove();
61 jQuery('.inline-edit-date').prepend(create_stampdiv(date[0],date[1],date[2],hour,minu));
62 jQuery('.inline-edit-date div:eq(1)').hide();
63 }
64 });
65
66
67 jQuery('#timestampdiv,.inline-edit-date').on('keyup','#hha',function(e)
68 {
69 jQuery('input[name=hh]').val(jQuery(this).val());
70 });
71
72 jQuery('#timestampdiv,.inline-edit-date').on('keyup','#mna',function(e)
73 {
74 jQuery('input[name=mn]').val(jQuery(this).val());
75 });
76
77 jQuery('#timestampdiv,.inline-edit-date').on('keyup','#aaa , #jja',function(e)
78 {
79 year = jQuery('#aaa').val();
80 mon = jQuery('#mma').val();
81 day = jQuery('#jja').val();
82 date=persian_to_gregorian(year,mon,day);
83 jQuery('input[name=aa]').val(date[0]);
84 jQuery('select[name=mm]').val(date[1]);
85 jQuery('input[name=jj]').val(date[2]);
86 });
87
88 jQuery('#timestampdiv,.inline-edit-date').on('change','#mma',function()
89 {
90 year = jQuery('#aaa').val();
91 mon = jQuery('#mma').val();
92 day = jQuery('#jja').val();
93 date=persian_to_gregorian(year,mon,day);
94 jQuery('input[name=aa]').val(date[0]);
95 jQuery('select[name=mm]').val(date[1]);
96 jQuery('input[name=jj]').val(date[2]);
97 });
98
99
100 /*
101 * Filter on post screen dates
102 */
103 jQuery('select[name=m]').hide()
104 var timer;
105
106 function change_date()
107 {
108 old=jQuery('#timestamp b').text();
109 var info=jQuery('#mma option:selected').text()+' '+jQuery('#jja').val()+', '+jQuery('#aaa').val()+'@ '+jQuery('#hha').val()+':'+jQuery('#mna').val();
110 info=info.replace(/\d+/g, function(digit) {
111 var ret = '';
112 for (var i = 0, len = digit.length; i < len; i++)
113 {
114 ret += String.fromCharCode(digit.charCodeAt(i) + 1728);
115 }
116 return ret;
117 });
118 if(old!=info)
119 {
120 jQuery('#timestamp b').html(info);
121 clearInterval(timer);
122 }
123 }
124
125 jQuery('#timestampdiv').on('keypress',function(e)
126 {
127 if(e.which==13)
128 timer=setInterval(function(){change_date();},50);
129 });
130
131 jQuery('.save-timestamp , .cancel-timestamp , #publish').on('click',function()
132 {
133 if(jQuery('#aaa').length)
134 timer=setInterval(function(){change_date();},50);
135 });
136 });
137