امینی گازار
امینی گازار
خواندن ۴ دقیقه·۱ سال پیش

راست چین و تاریخ شمسی برای جیرا

مدتی هست که جیرا رو جایگزین بقیه نرم افزار های مدیریت پروژه کردیم، زمان برد تا جا بیوفته و خب دردسر هایی داشت. الان بچه ها خیلی باهاش درگیر شدن و استفاده می کنن ولی چپ چین بودن نویسه ها و تاریخ میلادی بعضی بچه ها رو اذیت میکرد، نسخه های فارسی جیرا هم یا قدیمی هستن یا گرونن و صرف نمیکنه خرید پلاگین و شاید گزینه های بهتری باشه و بشه بررسی کرد. نرم افزار های بومی خوبی برای مدیریت پروژه هست که شاید بنا به شرایط بهتر باشه از اینکه این گزینه ها رو انتخاب کنیم. خلاصه در نهایت یکم کلنجار رفتیم باهاش و با یک سری کد کوچیک مشکل رو ساده کردیم.

بریم سراغ تکه کد ها و تنظیمش. . .


تنظیم ادمین جیرا

نکته اول اینکه من روی این نسخه از جیرا و نصب شده روی سرور لوکال دارم توضیح میدم.
Java Version1.8.0_181

نکته دوم اینکه باید برید به آدرس زیر و فرمت نمایش تاریخ رو در ادمین اصلاح کنید.
Administration>System>Look and feel>Date/Time Formats
و فرمت رو بنا به اون قسمت به یکی از حالت های زیر بزارید:
yyyy/MM/dd HH:mm
یا
yyyy/MM/dd
یا
HH:mm

ی
ی


این هم کد ها

کد های جاوا اسکریپت زیر برای تغییر تاریخ ها به شمسی در نمایش جیرا هست و البته نمایش تاریخ روز در قیمت بالای صفحه کنار دکمه ایجاد تسک جدید.

//Important: Go to Administration>System>Look and feel And change Date/Time Formats to yyyy/MM/dd HH:mm or yyyy/MM/dd or HH:mm
function miladi_be_shamsi(gy, gm, gd) {
var g_d_m, jy, jm, jd, gy2, days;
g_d_m = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];
gy2 = (gm > 2) ? (gy + 1) : gy;
days = 355666 + (365 * gy) + ~~((gy2 + 3) / 4) - ~~((gy2 + 99) / 100) + ~~((gy2 + 399) / 400) + gd + g_d_m[gm - 1];
jy = -1595 + (33 * ~~(days / 12053));
days %= 12053;
jy += 4 * ~~(days / 1461);
days %= 1461;
if (days > 365) {
jy += ~~((days - 1) / 365);
days = (days - 1) % 365;
}
if (days < 186) {
jm = 1 + ~~(days / 31);
jd = 1 + (days % 31);
} else {
jm = 7 + ~~((days - 186) / 30);
jd = 1 + ((days - 186) % 30);
}
return [jy + '-' + jm + '-' + jd];
}
function doJalali(){
$('time').each(function( index ) {
var g = $( this ).text();
const gdate = g.split(&quot/&quot);
if(parseInt(gdate[2])>=0){
var t= gdate[2].split(&quot &quot);
//console.log(t);
var j = miladi_be_shamsi(parseInt(gdate[0]), parseInt(gdate[1]), parseInt(t[0]));
if(t[1] === undefined){
t[1] = &quot"
}
$( this ).text(j+&quot &quot+t[1]);
}
});
}
$(document).ready(function(){
doJalali();
var d = new Date();
var dt = new Date().toISOString().slice(0, 10);
const gdate = dt.split(&quot-&quot);
var jim = miladi_be_shamsi(parseInt(gdate[0]), parseInt(gdate[1]), parseInt(gdate[2]));
var time = d.getHours() + &quot:&quot + d.getMinutes() + &quot:&quot + d.getSeconds();
const weekday = [&quotیکشنبه&quot,&quotدوشنبه&quot,&quotسه شنبه&quot,&quotچهارشنبه&quot,&quotپنجشنبه&quot,&quotجمعه&quot,&quotشنبه&quot];
let day = weekday[d.getDay()];
var elm = $('.aui-header-primary .aui-nav').append('<li style=&quotmargin-left:20px;&quot>Today: '+day+' </li><li id=&quotirdate&quot> <span class=&quottab&quot>'+ jim +' '+ time +'</span></li>');
setInterval(function() {
var d = new Date();
time = d.getHours() + &quot:&quot + d.getMinutes() + &quot:&quot + d.getSeconds();
$('#irdate').html(jim +' '+ time);
}, 1000);
});
$( document ).ajaxComplete(function() {
doJalali();
});
$( document ).scroll(function() {
doJalali();
});

کد های css زیر هم توضیحات تسک و کامنت رو راست چین میکنه و اگر از حالت عادی تکست ادیتور استفاده کنید راست چین میشه ولی اگر از پیشرفته (tinymce) استفاده کنید همون چپ چین میمونه.
در نهایت به شکل زیر میشه تسکتون:

.user-content-block,.action-body.flooded,.user-content,textarea,#description,iframe textarea,iframe body#tinymce {
direction: rtl !important;
text-align: right !important;
}
textarea#advanced-search{
direction: ltr !important;
text-align: left !important;
}

چالش استفاده از این کد

دوتا راهکار هست، یکی شخصی و روی مرورگر خودتون و دومی برای همه کاربران سیستمتون، راهکار اول با اکستنشن های مرورگر که کد اینجکت میکنن هستش مثل «User JavaScript and CSS» برای کروم؛ راهکار دوم درحالت عمومی شما باید پلاگین بخرید که هزینه بالایی داره و خب چه کاریه، این قدر بالا توضیح دادم خب میریم پلاگین شمسی سازی میخریم.... ولی یک راهکار خاص هم داره.....



برای این کار باید برید به آدرس زیر در ادمین برید:
Administration>System>Announcement banner>Announcement

در تکست باکس این بخش شما میتونید پیام بنویسید که در بالای سیستم نشون بده و نکته جالبش اینجاست که HTML میگیره ازتون و خب شما میتونید کد های بالا رو در تگ های اسکریپت و استایل برای کل پروژه اینجا قرار بدید.

<p>هر متن اطلاعیه ای که میخواهید</p>

جاوا اسکریپت ها

<style>
استایل ها
<style>

با این حرکت کد های بالا برای همه سیستم اعمال میشه.



امیدوارم مفید تون باشه...

فعلا.

مدیریت پروژهجیراjiraتاریخ شمسیراستچین
من برنامه نویسی ام که بیشتر مدیر شده تا دولوپر ....
شاید از این پست‌ها خوشتان بیاید