Please Donate to Bitcoin Address : [[address]]

Donation of [[value]] BTC Received. Thank You.
[[error]]

Redmine’da WYSIWYG Editörü Kullanmak

Merhaba,
Bir süredir blog yazamıyordum. Bunun birden fazla sebebi var ancak bir kaç tanesinden bahsetmem gerekirse şöyle diyebilirim :

İlginç, yazmaya değer bir şeyler bulup, biriktirme eğilimim
İş, güç yoğunluğu ve ruh halim
ve son olarak Akademik Bilişim konferansına eğitmen olarak katılmam

bir süredir blog yazısı yazamamama neden oldu. Ancak sebeplerim makul bence.

Konumuza gelecek olursak, bu blog yazısında Redmine’da What You See Is What You Get (WYS|WYG) editörü nasıl kullanılır,
mevcut  Redmine kurulumunuzda textile formatlı wiki kullanılarak hazırlamış olduğunuz wikilerinizi, iş kayıtlarınızı
nasıl bu editöre uyumlu ve HTML ile görüntüleyebilip, düzeltebileceğinizi anlatacağım.

“Bununla neden uğraştın ki olum?” diyenlerinizi duyuyorum. Aslında ben kendimce wiki’yi, wiki yazmayı hatta syntax’ını bile seviyorum. Ancak
özellikle benim gibi daha önce wiki yazmaya alışmamış, syntaxla uğraşmak istemeyen, “bir tablo için bu kadar pipe’mı dizecem şimdi yav?” diye
mızıklanan personele sistem yönetimi desteğini ancak wiki yerine zengin editör kullandırtarak verebiliyorum 🙂 Tek sebebi budur. Yoksa wikiyi severiz, candır.

Redmine’da bu işi sizin için yapan güzel bir plugin var, adı da CKEditor , bu bir redmine plugini olduğundan öncelikle redmine pluginlerinin redmine’a nasıl
kurulması gerektiğinden bahsetmeliyiz. Blog yazısının goy-goy’unu burada bırakıp, teknik kısmına geçiyorum, ilginizi çekmediyse diye uyarayim.

Redmine’a Plugin Kurmak

Başlamadan önce notlar ;
Bütün plugin kurma olayını konudan kopmamak adına CKEditor üzerinden anlatacağım.
Mevcut redmine kurulumunuzun /opt/redmine olduğunu ve redmine sistem kullanıcısıyla işlem yaptığımızı varsayarak devam edeceğim.

Sunucunuza bağlanıp redmine’ı çalıştırdığınız sistem kullanıcısına geçin ve /opt/redmine/plugins altına, CKEditor’un redmine sürümünüze
göre uyumlu versiyonunu yukarıda belirttiğim github deposundan sisteminize clone’layın.
(umarım rails uygulamalarını single-user çalıştırıyosunuzdur, yoksa zaten okumanıza gerek yok bu yazıyı)

Benim Redmine ortamım şu şekildeymiş :

Environment: Redmine version 3.2.0.stable
Ruby version 2.2.1-p85 (2015-02-26) [x86_64-linux]
Rails version 4.2.5
Environment production
Database adapter Mysql2
SCM: Subversion 1.8.10 Git 2.1.4 Filesystem
Redmine plugins:
redmine_ckeditor 1.1.3

Dolayısıyla sistemime 3.2.0 sürümüyle uyumlu ckeditor sürümünü clone’layacağım (v1.1.3) :

# su - redmine
$ cd /opt/redmine/plugins
$ git clone https://github.com/a-ono/redmine_ckeditor.git

Plugin’in kaynak kodlarını /opt/redmine/plugins altına aldıktan sonra çalıştırmanız gereken belli başlı bundle ve rake task’ları mevcut.
Bu tasklar her plugin için geçerli.

Her bir redmine plugini kendi içerisinde gem bağımlılığını getirdiğinden işe, sistemimizde CKEditor’un bağımlılık olarak getirdiği ve kurulu olmaması
ihtimalini elemek amacıyla gemleri tekrar kurmak için aşağıdaki komutu çalıştırıyoruz :

$ cd /opt/redmine
$ bundle install --without test development

Using rake 10.5.0
Using i18n 0.7.0
Using json 1.8.3
Using minitest 5.8.3
Using thread_safe 0.3.5
Using tzinfo 1.2.2
Using activesupport 4.2.5
Using builder 3.2.2
Using erubis 2.7.0
Using mini_portile2 2.0.0
Using nokogiri 1.6.7.1
Using rails-deprecated_sanitizer 1.0.3
Using rails-dom-testing 1.0.7
Using loofah 2.0.3
Using rails-html-sanitizer 1.0.2
Using actionview 4.2.5
Using rack 1.6.4
Using rack-test 0.6.3
Using actionpack 4.2.5
Using globalid 0.3.6
Installing kaminari 0.16.3
....

Bu komut eğer CKEditor de kendisi normalde redmine’da bulunmayan bir gem bağımlılığı getirecekse bunu sisteminize kuracak. Hangi pluginin hangi gem’lerin hangi
sürümünü istediği bilgisini henüz clone’ladığınız plugin dizini içerisindeki Gemfile dosyasından öğrenebilirsiniz, kimi zaman gemler arasında sürüm çakışmaları
yaşanmakta çünkü.

Bu işlemde bir problem yoksa, sıra kurmak istediğimiz Redmine plugini’nin Redmine veritabanında yaratmak istediği tabloları yaratma kısmına geldi. Plugin’in asıl
kurulduğu yer burası ve eğer yanlış bir işlem yaparsanız küçük bir ihtimal de olsa mevcut Redmine veritabanınızı uçurabilirsiniz dolayısıyla bu işlemlere başlamadan önce
Redmine veritabanınızın dump’ını bir yere alın ya da varsa test sisteminizde doğru kurduğunuza emin olduktan sonra bu işlemleri production sisteminizde uygulayın.

Plugini Redmine’a kurmak için aşağıdaki rake taskını çalıştırıyoruz :

$ rake redmine:plugins:migrate RAILS_ENV=production

RAILS_ENV değişkenini set etmeniz önemli, mevcut sisteminizi hangi environment’a göre kurduysanız onu bu değişken içerisinde geçirmeniz gerekli. (Genellikle
production olur bu) Rake bu değişkenin ne olarak set edildiğine bakarak hangi environment’da istenen rake task’ının çalıştırılması gerektiğini anlıyor çünkü.

Bu işlem sonucunda veritabanınızda bazı tablolar üretildiğini ya da mevcut tablolar üzerinde migration/rename vb işlemler çalıştırıldığını göreceksiniz. Rake taskı bu kritik
işi sizin için mükemmel bir şekilde yapacak. Bu işlem sonucunda da bir problem (ya da exception) çıkmazsa plugini sisteminize kurmuşsunuz anlamına geliyor.

Test etmek için Redmine > Administration > Plugins  kısmına gelip eklentinizi görüntüleyip, configure kısmıından yönetebilirsiniz
Şuraya bir ekran görüntüsü koydum, üzerine tıklayıp nasıl görünmesi gerektiğine bakabilirsiniz :

rdmn-ss1

Kurulum işi bu kadardı.

CKEditor’un Aktif Hale Getirilmesi

Redmine default olarak text formatting’i textile ile yapıyor. Dolayısıyla Redmine’ın default text formatting işlevini CKEditor’le yapması için

Redmine > Administration > Settings > General > Text Formatting seçeneğini ckeditor olarak seçin.
Redmine içerisindeki Text editörünüz aşağıdaki gibi bir görüntüye bürünecek :

rdmn-ss2

Artık personeliniz odt dokümanı yazar gibi Redmine üzerinde çalışabilecek hale geldi. Ancak ağlamaları kesilmeyecek!
Çünkü bu işlemi yaptığınızda daha önceden textile ile hazırladığınız bütün wiki’ler ve iş kayıtlarının formattingi bozulacağından mevcut
bütün wikileriniz vs için kötü bir görüntü ortaya çıkacak, hatta baya korku dolu anlar yaşayacak personeliniz ancak korkmasınlar.

Bunun sebebi gayet doğal, daha önceden textile ile hazırladığınız bütün wikiler ve iş kayıtları veritabanında textile formatıyla tutuluyorlar halen.
Eski textile formatlı verilerinizi, ckeditor’de düzgün görüntüleyebilmeniz için mevcut dokümanların, iş kayıtlarının formatlarını html’e çevirmeniz gerekiyor.

Bunu CKEditor rake taskları içerisinde pandoc kullanarak halledebiliyor. Dolayısıyla sunucunuzda pandoc paketinin kurulu olması gerekiyor,

Aşağıdaki gibi sunucunuzda pandoc paketini kurun ve sonra aşağıdaki gibi konsoldan yine redmine kullanıcınızla rake taskını çalıştırmanız gerekiyor :

# yum install pandoc -y
# su - redmine

Ve textile to html migration’unu ckeditor migration task’ını kullanarak yapalım :

$ cd /opt/redmine
$ rake redmine_ckeditor:migrate RAILS_ENV=production FROM=textile TO=html
==== WARNING====
It is strongly recommended to backup your database before migration, because it cannot be rolled back completely.
=================
projects: ALL
migration: textile to html
Do you want to continue? (type 'y' to continue): y
project Test
Migrating issues ... done
Migrating journals ... done
project test2
Migrating issues ... done
Migrating journals ... done
project Deneme Projesi
Migrating issues ... done
Migrating journals ... done
Migrating wiki ... done

Bu task sonucunda da bütün projeleriniz için formatı HTML’e çekmiş oldunuz. Ben şahsen migration performansını da beğendim. Bütün bu işlem sonucunda
bozuk içerikler yok denecek kadar az diyebilirim.
Artık Redmine’da eski dokümanlarınızı da WYS|WYG ile yani CKEditor ile düzenletebilir, personelinizin Microsoft Officeeee, JIRAAAA  vs. diye ağlamasının önüne geçebilir,
kurumsal tipleri bertaraf edebilirsiniz. 🙂

Hepsi bu kadar!

Bir Cevap Yazın

I'm not a freaking robot : Time limit is exhausted. Please reload CAPTCHA.

19 Şubat 2016

Posted In: Genel, Sistem, Teknik

Etiketler:, , , , , ,

Leave a Comment