4.3.3. Iteration 2
Pada tahapan iterasi 2 ini akan dilakukan pengembangan content type pada Alfresco dengan menggunakan story nomor 1.3. Story nomor
1.3 menunjukan penjelasan mengenai type dan aspek konten beserta properti yang ditambahkan pada dokumen proposal skripsi yang dibuat
diupload. Untuk lebih jelas mengenai story nomor 1.3 dapat dilihat pada lampiran user story
4.3.3.1. Membuat Kriteria Pengujian
a.Memeriksa tipe dokumen proposal skripsi Langkah Pengujian:
1 Mengupload dokumen dengan tipe Skripsi Document 2 Mengisi form properties nim dan nama
Hasil Diharapkan : 1 Muncul halaman dengan Tipe Konten mempunyai
pilihan Proposal Skripsi 2 Pada Rincian Dokumen terdapat properti nim dan
nama yang terisi. b. Memeriksa versi dokumen
Langkah Pengujian: 1 Edit dokumen proposal skripsi
2 Menyelesaikan editing dokumen Mendaftarkan 3 Memilih nomor versi
Hasil Diharapkan:
1 Pada Rincian Dokumen terdapat versi dokumen pada tab Versi History.
c. Memeriksa Pencarian untuk Proposal Skripsi Langkah Pengujian:
1 Mencari dokumen menggunakan Pencarian Lanjutan 2 Pilih Tipe Konten : Skripsi Document dan mengisi
form nim dan nama Hasil Diharapkan:
1 Menampilkan dokumen hasil pencarian yang sesuai dengan nim dan nama
d. Memeriksa halaman jsp untuk halaman halaman depan dan login
Langkah Pengujian : 1 Membuka halaman awal web Halaman Depan
2 Membuka hamalan login 3 Melakukan login dengan menginput username dan
password Hasil Diharapkan:
1 Tampil Halaman Depan dengan tampilan getting started jsp
2 Tampil halaman login jsp 3 Masuk ke Alfresco Explorer dan nama user tampil di
kanan atas
4.3.3.2. Membuat Desain Sederhana
a. Content Model
Gambar 4.8. Model Content Dokumen Proposal Content Model pada gambar 4.13 merupakan model
properti dari dokumen proposal skripsi doc. Dokumen merupakan turunan dari model cmcontent Alfresco.
Dokumen mempunyai aspect strudentDetails yang terdiri dari properti namaMhs dan nim. Dokumen juga mempunyai
aspect cm:versionable Alfresco model.
4.3.3.3. Implementasi
a. Membuat Content Model Content model dibuat dengan membuat file taModel.xml
pada folder config| alfresco| extension| model|, sesuai dengan desain content model pada gambar 4.13
.
Pembuatan content model dimulai dengan pendefinisian model, import, dan namespace, sama seperti tahapan
pembuatan workflow task model.
Setelah pendefinisian
dilakukan, kemudian baru dapat mendefinisikan type dan aspect dari dokumen.
?xml version=1.0 encoding=UTF-8? model name=ta:skripsimodel
xmlns=http:www.alfresco.orgmodeldictionar y1.0
imports ...
import uri=http:www.alfresco.orgmodelcontent1.0
prefix=cm imports
...
namespaces namespace
uri=http:www.skripsi.commodelcontent1.0 prefix=ta
namespaces types
type name=ta:doc titleSkripsi Documenttitle
parentcm:contentparent mandatory-aspects
aspectcm:versionableaspect aspectta:studentDetailsaspect
mandatory-aspects type
types aspects
aspect name=ta:studentDetails titleMahasiswatitle
properties property
name=ta:namaMhs titleNama
Mahasiswatitle typed:texttype
mandatorytruemandatory property
property name=ta:nim titleNIMtitle
typed:texttype mandatorytruemandatory
property properties
aspect
aspects model
Untuk selengkapnya file taModel.xml dapat dilihat pada lampiran listing program.
b. Membuat file JSP untuk halaman web 1
Membuat halaman depan File
getting-started.jsp berguna
menampilkan informasi mengenai penelitian yang dilakukan, yang
ditempatkan sebagai halaman depan dari Alfesco Explorer. Pembuatan file getting-started.jsp ditempatkan pada folder
src| web| jsp| extension|. File getting-started.jsp berisi sebagai berikut :
taglib uri=http:java.sun.comjsfhtml
prefix=h taglib
uri=http:java.sun.comjsfcore prefix=f
taglib uri=WEB-INFalfresco.tld prefix=a
taglib uri=WEB-INFrepo.tld prefix=r
page import=org.alfresco.web.ui.common.PanelGen
erator f:verbatim
PanelGenerator.generatePanelStartout, request.getContextPath, blue,
dfe6ed; f:verbatim
... h:panelGroup id=title-content
h:outputText style=font-weight:bold value=Pengembangan Alur Kerja Workflow
Dokumen Prosedur Pengajuan Proposal Skripsi Pada Alfresco ECM Menggunakan JBOSS BPM
Studi Kasus : Program Studi Teknik Informatika
f:verbatimbrf:verbatim
h:panelGroup ...
h:panelGroup id=browse-content h:outputText style=font-weight:bold
value=Menjelajahi dokumen proposal skripsi
f:verbatimbrf:verbatim h:outputText value=Masuk pada space
Halaman Instansi Proposal Skripsi untuk menjelajahi dokumen dokumen proposal
skripsi h:panelGroup
... h:panelGroup id=add-content-view
h:outputText style=font-weight:bold value=Upload dokumen proposal skripsi
f:verbatimbrf:verbatim h:outputText value=Pada Halaman Instansi
Proposal Skripsi Proposal Diajukan, klik Tambahkan Konten dan cari dokumen yang
akan diupload serta masukan informasi tentang properti dokumen
h:panelGroup ...
h:panelGroup id=work-content h:outputText style=font-weight:bold
value=Memulai workflow proposal skripsi f:verbatimbrf:verbatim
h:outputText value=Pada halaman Rincian dari dokumen, klik Memulai Workflow
Lanjutan dan pilih workflow Pengajuan Proposal Skripsi
... f:verbatim
PanelGenerator.generatePanelEndout, request.getContextPath, blue;
f:verbatim
Untuk selengkapnya file getting-started.jsp dapat dilihat pada lampiran listing program.
2 Membuat halaman login
Pembuatan file login.jsp ditempatkan pada folder src| web| jsp| extension|. Isi file login.jsp adalah :
taglib uri=http:java.sun.comjsfhtml
prefix=h taglib
uri=http:java.sun.comjsfcore prefix=f
taglib uri=http:java.sun.comjspjstlcore
prefix=c taglib uri=WEB-INFalfresco.tld
prefix=a taglib uri=WEB-INFrepo.tld
prefix=r
page import=org.alfresco.web.app.servlet.Authen
ticationHelper page
import=org.alfresco.web.ui.common.PanelGen erator
page import=javax.servlet.http.Cookie
page buffer=16kb contentType=texthtml;charset=UTF-8
page isELIgnored=false
Cookie authCookie = AuthenticationHelper.getAuthCookierequest
;
if
session.getAttributeAuthenticationHelper. SESSION_INVALIDATED = null
{ if
authCookie = null
{ authCookie.setMaxAge0;
response.addCookieauthCookie; }
} else
{ if
authCookie = null authCookie.getValue = null
{ session.setAttributeAuthenticationHelper.S
ESSION_USERNAME, authCookie.getValue; }
}
... f:view
f:loadBundle basename=alfresco.messages.webclient
var=msg
h:form acceptcharset=UTF-8 id=loginForm
... table border=0 cellspacing=4
cellpadding=2 tr
td colspan=2 img
src==request.getContextPathskripsi imagesuinlogin.png width=202 height=58
alt=Skripsi title=Skripsi td
tr
tr td colspan=2
span class=mainSubTitleh:outputText value={msg.login_details} :span
td tr
tr td
h:outputText value={msg.username}: td
td
h:inputText id=user-name value={LoginBean.username}
validator={LoginBean.validateUsername} style=width:150px
td tr
tr td
h:outputText value={msg.password}: td
td h:inputSecret id=user-password
value={LoginBean.password} validator={LoginBean.validatePassword}
style=width:150px td
tr ...
tr td colspan=2 align=right
h:outputText value={AboutBean.version}
h:commandButton id=submit action={LoginBean.login}
value={msg.login} td
tr
tr td colspan=2
h:messages style=padding-top:8px; color:red; font-size:10px layout=table
td tr
table td
... tr
table PanelGenerator.generatePanelEndout,
request.getContextPath, yellowInner; td
tr table
div script
document.cookie=_alfTest=_alfTest var
cookieEnabled = document.cookie.indexOf_alfTest = -
1; if
cookieEnabled == false
{ document.getElementByIdno-
cookies.style.display = inline; }
script td
tr table
h:form f:view
script if
document.getElementByIdloginForm:user- name.value.length == 0
{
document.getElementByIdloginForm:user- name.focus;
} else
{ document.getElementByIdloginForm:user-
password.focus; }
script r:page
body
Untuk selengkapnya file login.jsp dapat dilihat pada lampiran listing program.
3 Membuat halaman re-login
Halaman re-login ditampilkan pada saat pengguna melakukan logout. Pembuatan file relogin.jsp ditempatkan
pada folder src| web| jsp| extension|. File relogin.jsp berisi sebagai berikut :
taglib uri=http:java.sun.comjsfhtml
prefix=h taglib
uri=http:java.sun.comjsfcore prefix=f
taglib uri=http:java.sun.comjspjstlcore
prefix=c taglib uri=WEB-INFalfresco.tld
prefix=a taglib uri=WEB-INFrepo.tld
prefix=r
page import=org.alfresco.web.app.servlet.Authen
ticationHelper page import=javax.servlet.http.Cookie
page buffer=16kb contentType=texthtml;charset=UTF-8
page isELIgnored=false
if
session.getAttributeAuthenticationHelper. SESSION_INVALIDATED = null
{ Cookie authCookie =
AuthenticationHelper.getAuthCookierequest ;
if
authCookie = null
{ authCookie.setMaxAge0;
response.addCookieauthCookie; }
}
body bgcolor=ffffff style=background- image:
url=request.getContextPathskripsii magesuinbg.png; background-repeat: no-
repeat; background-attachment: fixed
r:page titleId=title_relogin f:view
f:loadBundle basename=alfresco.messages.webclient
var=msg
h:form acceptcharset=UTF-8 id=loggedOutForm
... table border=0 cellspacing=4
cellpadding=2 tr
td align=center img
src==request.getContextPathskripsi imagesuinlogin.png width=202 height=58
alt=Skripsi title=Skripsi td
tr
tr td align=center
span class=mainSubTitleh:outputText value={msg.loggedout_details} span
td tr
tr td align=center
a:actionLink href=facesjspbrowsebrowse.jsp
value={msg.relogin} td
tr table
... h:form
f:view
r:page body
Untuk selengkapnya file relogin.jsp dapat dilihat pada lampiran listing program.
c. Konfigurasi Web Client Untuk melakukan konfigurasi file yang telah dibuat
pada iterasi ini, perlu ditambahkan kode kofigurasi pada file web-client-config-custom.xml yang telah dibuat pada
iterasi 1. Content model yang telah dibuat didaftarkan pada web client agar dapat ditampilkan pada saat upload
dokumen.
config evaluator=string-compare condition=Content Wizards
content-types type name=ta:doc
content-types config
config evaluator=string-compare condition=Action Wizards
aspects aspect
name=ta:studentDetails aspects
subtypes type name=ta:doc
subtypes specialise-types
type name=ta:doc
specialise-types config
config evaluator=aspect-name condition=ta:studentDetails
property-sheet separator name=sepCust
display-label=Mahasiswa component- generator=HeaderSeparatorGenerator
show-property name=ta:namaMhs display-label=Nama
Mahasiswa show-property
name=ta:nim display-label=NIM property-sheet
config
Content model juga diperlukan dalam pencarian dokumen proposal untuk mempermudah pencarian berdasarkan NIM
dan nama mahasiswa. Oleh karena itu, content model juga didaftarkan sebagai parameter pencarian.
config evaluator=string-compare condition=Advanced Search
advanced-search content-types
type name=ta:doc content-types
custom-properties meta-data
aspect=ta:studentDetails property=ta:namaMhs display-label=Nama
Mahasiswa meta-data
aspect=ta:studentDetails property=ta:nim display-label=NIM
custom-properties advanced-search
config
Halaman web yang telah dibuat juga perlu untuk didaftarkan. Konfigurasi untuk halaman login adalah
sebagai berikut :
config client
login- pagejspextensionlogin.jsplogin-page
client config
Sedangkan untuk halaman depan, file getting-started.jsp didaftarkan pada bagian dashboard web.
config evaluator=string-compare condition=Dashboards
dashboards dashlets
dashlet id=getting- started label-
id=dashlet_gettingstarted_label description-
id=dashlet_gettingstarted_desc jsp=jspextensiongetting-
started.jsp allow-narrow=true
dashlets dashboards
config
d. Konfigurasi Spring Framework Konfigurasi terhadap content model juga diperlukan
untuk mendaftarkan content model pada server.
bean id=skripsi.dictionaryBootstrap parent=dictionaryModelBootstrap depends-
on=dictionaryBootstrap property name=models
list valuealfrescoextensionmodeltaModel.xml
value list
property bean
e. Konfigurasi JSF
?xml version=1.0 encoding=UTF-8? DOCTYPE faces-config PUBLIC -Sun
Microsystems, Inc.DTD JavaServer Faces Config 1.1EN
http:java.sun.comdtdweb- facesconfig_1_1.dtd
faces-config
navigation-rule description
NavigationHandler untuk proses login.jsp.
description from-view-
idjspextensionlogin.jspfrom-view-id navigation-case
description NavigationHandler browse.jsp
akan ditampilkan jika Action pada component UICommand login.jsp menghasilkan keluaran
success. description
from-outcomesuccessfrom- outcome
to-view- idjspbrowsebrowse.jspto-view-id
navigation-case navigation-rule
navigation-rule from-view-idjspfrom-view-id
navigation-case from-outcomelogoutfrom-
outcome to-view-
idjspextensionlogin.jspto-view-id navigation-case
navigation-case from-outcomereloginfrom-
outcome to-view-
idjspextensionrelogin.jspto-view-id navigation-case
navigation-rule faces-config
4.3.3.4. Integrasi