Professional Documents
Culture Documents
TUGAS AKHIR
Oleh:
Aries Soesetijoko
NIM: 200512041
LEMBAR PENGESAHAN
TUGAS AKHIR
Oleh:
Aries Soesetijoko
Pembimbing 1 Pembimbing 2
BAB I
PENDAHULUAN
pelanggan masih adanya bahaya terhadap Kesehatan dan Keselamatan Kerja (K3)
terhadap aktivitas kerja bidang industri. Isu terhadap Kesehatan dan Keselamatan
Kerja sangat diperhatikan pada bidang industri yang terus berkelanjutan setiap
waktu selama proses produksi berlangsung, isu tersebut adalah kecelakaan akibat
kerja. Karena tingginya angka kecelakaan kerja bidang industri, adanya bahaya
kecelakaan lalu lintas menuju dan dari tempat kerja dari karyawan yang
bekerja yang hilang menjadi hilang atau bahkan bahkan sampai dengan proses
produksi terhenti akibat dari tenaga ahli tidak berada ditempat kerja. Hal ini akan
Isu yang tak kalah penting juga adalah Kesehatan Kerja dari gangguan
kesehatan di tempat kerja bidang industri diantaranya : penyakit paru, cedera otot
kerja.
dan penyakit akibat kerja; 4. Meningkatkan efisiensi dan produktifitas kerja; dan
5. Memenuhi peraturan yang berlaku (UU No.1 1970 dan Per.05/Men/96) untuk
tempat kerja yang jumlahnya seratus orang atau lebih, yang mengandung potensi
bahaya yang ditimbulkan oleh karakteristik proses atau bahan produksi, dan yang
Isu tentang Keselamatan dan Kesehatan Kerja (K3) oleh PT Badak NGL
Kerja” atau disebut juga Safety, Health, Environment & Quality Information
NGL beserta kontraktor pada umumnya, agar lebih mudah mendapatkan informasi
IS) masih adanya kendala, sistem informasi SHE-Q IS berfungsi untuk mengelola
data K3, proses bisnis, dan informasi yang berkaitan dengan keselamatan,
Badak NGL.
Informasi Keselamatan dan Kesehatan Kerja (SHE-Q IS) PT Badak NGL” dengan
5
Java 2 Paltform Enterprise Edition (J2SE versi 5.0) dan diterapkan pada Web
Server yaitu Aphace Tomcat 6.0 dari Jakarta Tomcat. Pengembangan Sistem
Dari latar belakang yang telah diuraikan maka dapat dirumuskan beberapa
permasalahan yang akan dijadikan dasar dalam penelitian ini. Adapun rumusan
Bagaimana mengetahui secara cepat dan akurat berdasarkan data yang terjadi di
dapat diakses kapan saja dan dari mana saja dengan pemrograman AJAX
berbasis web.
Lagging Indicator?
(SHEQ-IS):
Dari permasalahan yang ada maka tugas ini bertujuan untuk memahami
sistem dan masalah yang ada, untuk mengguraikan kebutuhan informasi dan untuk
1.3.1. Dapat diketahui secara cepat dan akurat dari hasil lapangan tentang Safety
1.3.2. Monitoring dari SHEQ-IS dapat memberikan arahan secara lebih jelas
1.3.4. Aktifitas pekerja dapat dilihat secara jelas Leading Indikcator dan Lagging
Indicator sejalan dengan visi, misi dan tujuan manajemen keselamatan dan
kesehatan kerja.
7
Safety Health & Enviroment Quality Department dengan teknologi informasi yang
sehingga dengan mudah memonitoring, dengan cepat, akurat dan lancar setelah
Diharapkan penelitian yang dibuat ini dapat menjadi tolak ukur buat bagi
peneliti lain maupun kalangan akademik untuk menilai sebesar peran dan
dan sebesar apa keaktifan peneliti dapat mengelola proyek nantinya. Laporan
penelitian ini pun dapat menjadi bahan acuan buat peneliti lainnya, mahasiswa
atau pihak terkait untuk dapat ditingkatkan dalam menyusun penelitian lebih
BAB II
LANDASAN TEORI
masalah yang akan dijadikan sumber untuk merumuskan hipotensi yang khusus
dan diuji kebenarannya secara umum. Suatu penelitian yang tidak dilandasi
mencapai sasarannya.
sehingga tidak dapat dipisahkan antara satu dengan lainnya. Dalam membahas
melakukan suatu kegiatan atau untuk menyelesaikan suatu sasaran tertentu. Sistem
Mempunyai beberapa karakteristik yaitu :
a. Komponen Sistem
Suatu sistem terdiri dari sejumlah komponen yang berinteraksi, yang artinya
saling bekerja sama membentuk satu kesatuan komponen-komponen sistem
atau elemen-elemen sistem dapat berupa suatu sub sistem atau bagian-bagian
dari sistem. Setiap sistem tidak peduli betapapun kecilnya, selalu mengandung
komponen-komponen atau subsistem-subsistem. Setiap subsistem mempunyai
sifat-sifat dari sistem untuk menjalankan suatu fungsi tertentu dan
mempengaruhi prases sistem secara keseluruhan.
b. Batas sistem
Batas sistem (Boundary) merupakan daerah yang membatasi antara suatu
sistem dengan sistem yang lainnya atau dengan lingkungan luarnya. Batas
sistem ini memungkinkan suatu sistem dipandang sebagai satu kesatuan. Batas
suatu sistem menunjukan ruang lingkup (Scope) dari sistem tersebut.
c. Lingkungan luar sistem
Lingkunan luar (Environment) dari suatu sistem adalah apapun diluar batas
dari sistem yang mempengaruhi opersai sistem. Lingkungan luar sistem dapat
bersifat menguntungkan dan dapat juga bersifat merugikan sistem tersebut.
Lingkungan luar yang menguntungkan merupakan energi dari sistem dan
dengan demikian harus tetap dijaga dan dipelihara. Sedang lingkungan luar
yang merugikan harus ditahan dan dikendalikan, kalau tidak maka ekan
menggangu kelangsungan hidup dari sistem.
d. Penghubung sistem
Penghubung (Interface) merupakan media penghubung antara satu subsistem
dengan subsistem yang lainnya. Melalui penghubung ini memungkinkan
sumber-sumber daya mengalir dari satu subsistem ke subsistem lainya.
Keluaran (Output) dari subsistem akan menjadi masuksn (Input) untuk
subsistem yang lainnya dengan melalui penghubung.
e. Masukkan Sistem
Masukan (Input) adalah energi yang dimasukkan ke dalam sistem. Masukkan
dapat berupa masukan perawatan (Maintenance Input) dan masukkan sinyal
(Signal Input). Maintenance input adalah energi yang dimasukkan supaya
sistem tersebut dapat beroperasi. Signal input adalah energi yang diproses
untuk didapatkan keluaran.
f. Keluaran Sistem
Keluaran (Output) adalah hasil adari energi yang diolah dan diklarifikasikan
menjadi keluaran yang berguna dan sisa pembuangan. Keluaran dapat
merupakan masukkan untuk subsistem yang lain atau kepada supra sistem.
g. Pengolah Sistem
Suatu sistem dapat mempunyai suatu bagian pengolah yang akan mengubah
masukan berupa bahan baku dan bahan-bahan yang lain menjadi keluaran
berupa barang jadi. Sistem akuntansi akan mengolah data-data transaksi
menjadi laporan-laporan yang lain dibutuhkan oleh manajemen.
h. Sasaran Manjemen
Suatu sistem mempunyai tujuan (Goal) atau sasaran (Objective). Kalau suatu
sistem tidak mempunyai sasaran, maka operasi tidak akan ada gunanya.
Sasaran dari sistem sangat menentukan sekali masukan yang dibutuhkan dan
10
keluaran yang akan dihasilkan sistem. Suatu sistem dikatakan berhasil bila
mengenal sasaran atau tujuan.
Syarat-syarat sistem :
• Sistem harus dibentuk untuk menyelesaikan masalah.
• Elemen sistem harus mempunyai rencana yang ditetapkan.
• Adanya hubungan diantara elemen sistem.
• Unsur dasar dari proses (arus informasi, energi dan material) lebih penting dari
pada elemen sistem.
• Tujuan organisasi lebih penting dari pada tujuan elemen.
Informasi ini adalah suatu keterangan, baik berupa data-data atau fakta,
maupun analisis, pandangan dari yang menyampaikannya, mengenai hal-hal yang
berkaitan dengan kebutuhan di dalam memutuskan bidang pemasaran
(Tedjasutrisna, 1996).
Suatu sistem akan dirancang oleh satu orang atau sekelompok orang yang
membentuk tim. Orang yang merancang sistem ini disebut Sistem Analis.
Sistem.
kebutuhan user.
user
12
2.5. Tomcat
pembangunan aplikasi dilakukan di sisi server. Ada tiga hal yang dibutuhkan oleh
developer dalam hal ini, web server, web editor, dan resource. Web server yang
diperkenalkan pada modul ini ada dua, yaitu Apache Tomcat 5.5.1 dan Apache
Ant. Apache Tomcat ini digunakan untuk menjalankan aplikasi atau website
berbasis Java Servlet dan Java Server Pages (JSP) yang memiliki keamanan
tinggi.
Tentunya harus dipastikan terlebih dahulu, bahwa sudah ada J2SE 5.0
yang berjalan di Sistem Operasi Windows anda sebelum proses penginstalan dan
untuk membuat direktori source code, mengedit source code dan page, meng-
compile aplikasi, melakukan uji coba terhadap aplikasi, dan terakhir membuat
release aplikasi.
AJAX digunakan pada website yang berinteraksi dengan server melalui javascript
keseluruhan isi page. Hal ini menyebabkan pengiritan waktu dan bandwidth, juga
khususnya pemrograman berbasis web. Orang yang sangat berjasa tersebut tidak
lain dan tidak bukan adalah Rasmus Lerdorf, dari tangan dingin Rasmus Lerdorf
Opera dan browser lainnya. Syarat-syarat tersebut hampir pasti sudah terpenuhi,
Sebenarnya tidak ada hal baru dalam AJAX, karena yang digunakan
adalah teknologi javascript, yang notabene sudah lama digunakan. Oleh karena
itu, bagi yang sudah terbiasa dengan javascript, akan mudah sekali mempelajari
AJAX.
15
AJAX, HTML, PHP), akan tetapi keseluruhan dari hal tersebut. Hal ini karena
penggunaan AJAX tidak hanya pada sisi client (browser), tapi juga melibatkan
secara asinkron ke server dengan cara mengambil XML atau dokumen text.
Selanjutnya XML atau dokumen text ini akan digunakan oleh javascript untuk
HTML.
Untuk selanjutnya teknologi ini juga dikenal web remoting atau remote
scripting. Developer Web dapat mengkombinasikan plug in, java applets atau
dokumen XML. Dalam teknologi Javascript telah disediakan sebuah object yaitu
pengguna dan web lebih aktraktif dan juga lebih efisien dalam transfer data.
Karena dengan AJAX kita dapat me-refresh atau me-load sebagian konten yang
perlu di-update. Dengan demikian, bagian web lainnya seperti header, footer,
sidebar, dan bagian lainnya tidak perlu di-load ulang. Kita hanya me-load konten
yang berubah saja. Dengan demikian akan lebih efisien dalam transfer data,
aplikasi lebih responsif, dan pengguna lebih mudah berinteraksi dengan web
menampilkan konten yang berubah kita harus meload halaman web secara
keseluruhan tanpa peduli bahwa ada bagian web yang kontennya tidak berubah.
Biasanya pada aplikasi berbasis web tradisional, untuk merubah isi sebuah
page maka page tersebut harus di-load ulang, akan tetapi dengan menggunakan
javascript atau Cascading Style Sheets (CSS), programmer web bisa membuat
sebuah aplikasi yang dinamis tanpa harus me-load ulang keseluruhn isi page-nya.
Dalam tulisan ini penulis akan mencoba menjelaskan secara detail bagaimana
Rasmus Lerdorft mengemukakan konsep AJAX ini dalam sebuah miling list
(milist). Berawal dari milist tersebut konsep AJAX kemudian dikenal dan
Perusahaan Oracle didirikan pada tahun 1977 oleh tiga orang programmer,
Bob Miner, Ed Oates, dan Larry Ellison yang menjabat sebagai CEO (Chief
Executive Officer) selama beberapa tahun sampai saat ini. Perusahaan ini
(versi 6.x) keluar mainframe, yakni ke sistem operasi Unix. Selanjutnya tahun
1996 Oracle Corp mendiversifikasi Oracle (versi 7.x) ke sistem operasi Novell
Mulai pertengahan tahun 1990an Oracle Corp mulai membuat juga produk-produk
Model basis data relasional adalah model formal tentang data. Sebagai
model formal, model ini menspesifikasikan struktur (tipe) data yang formal,
Basis data relasional memiliki satu struktur logik yang disebut relasi (relation) dan
pada level fisik berupa tabel (table). Atribut (attribute) merepresentasikan elemen
dari data yang berkaitan dengan relasi. Sebagai contoh, relasi Pegawai memiliki
Nilai data dari atribut dari sebuah relasi akan disimpan dalam tuple atau row
lunak untuk membuat dan mengelola database, sering juga disebut sebagai
Access.
Oracle Server menyediakan solusi yang efisien dan efektif karena kemampuannya
pengelolaan data. SQL merupakan bahasa yang komprehensif untuk basis data,
19
sehingga dibuat standar untuk bahasa SQL oleh ANSI (American National
terdapat perintah untuk pendefinisian data, melakukan query dan update terhadap
data. Perintah tersebut dikelompokkan dalam dua istilah: DDL (Data Definition
fitur untuk pemberian hak akses terhadap data ataupun untuk maintenance.
2.7.5. SQL*Plus
telah menyediakan library yang dapat digunakan oleh programmer agar program
yang dibuat dapat melakukan pengaksesan terhadap basis data. Selain itu, para
vendor memberikan pula program yang dapat menerima masukan bahasa SQL
yang kemudian dieksekusi oleh RDBMS. Oracle, sebagai salah satunya, telah
Pembuatan tabel dalam suatu basis data dilakukan setelah melalui tahapan
membuat model data dan membuat desain data. Elemen-elemen yang harus ada
dalam pembuatan suatu tabel yaitu: nama tabel, nama kolom dan tipe data kolom.
21
BAB III
METODE PENELITIAN
Penelitian ini dilaksanakan pada bulan April 2009 sampai dengan bulan
Juli 2009. Penelitian ini dilaksanakan di PT Badak NGL Bontang.
kerjasama antara Pertamina dan HUFFCO Inc. pada bulan Agustus 1968 dalam
menyelidiki cadangan minyak dan gas alam. Pada akhir tahun 1971 berhasil
ditemukan cadangan gas alam yang cukup besar di lapangan Badak, Kalimantan
Timur.
konsumen, penyandang dana, dan mitra yang potensial di seluruh dunia. Upaya
LNG terhadap lima perusahaan Jepang : Chubu Electric Co., Kansai Electric
PowerCo., Kyushu Electric PowerCo., Nippon steel Corp., dan Osaka Gas Co.Ltd,
Kontrak pada tahun 1973 tersebut berisi komitmen dari para pembeli untuk
mengimpor LNG Indonesia selama 20 tahun, yang saat itu kilang LNG belum
selesai didirikan. PT Badak NGL sendiri dibentuk pada 26 November 1974 oleh
Pertamina, dengan Huffco Inc., dan JILCO (Japan Indonesia LNG Company)
dengan komposisi kepemilikan saham : Pertamina (55%), Huffco Inc. (30%) dan
22
tidak akan memperoleh keuntungan dari usaha ini, dan hanya berperan sebagai
salah satu jaringan di tengah rantai bisnis LNG. Dengan demikian PT Badak NGL
Dua unit pengilangan pertama, Train A dan B selesai dibangun pada bulan
Maret 1977, dan mulai memproduksi LNG (tetes pertama) pada tanggal 5 Juli
3
1977 dengan kapasitas produksi 630 m /hr. Pada tanggal 1 Agustus 1977, kilang
Selain LNG ternyata dihasilkan pula produk sampingan, yaitu berupa LPG
pada bulan Desember 1984 dan kontraknya ditandatangani dengan pembeli dari
Jepang pada tanggal 15 Juli 1986, disusul dengan Chineese Petroleum Co. pada
tahun 1987. Setahun kemudian, proyek LPG selesai dibangun dan produksi
pertama dihasilkan pada tanggal 15 Oktober 1988, dan diresmikan pada tanggal
28 November 1988.
Produsen gas Total Indonesie masuk menjadi stakeholder baru. Dengan adanya
menjadi : Pertamina (55%), VICO (20%), Total E&P Indonesie (15%) serta
JILCO (10%).
23
merupakan kilang LNG terbesar didunia dengan kapasitas 22.4 juta ton LNG/thn
memproduksi LPG selama kurang lebih 16 tahun, yakni dari tahun 1988 sampai
dengan tahun 31 Desember 2005. Alasan tidak diproduksinya LPG ialah karena
pasokan gas dari producer yang semakin berkurang, sehingga seluruh gas diolah
menjadi LNG dalam rangka memenuhi kontrak jangka panjang yang telah
disepakati.
daerah Bontang Selatan, sekitar 105 km sebelah timur laut kota Samarinda.
Sebelum kilang LNG dibangun, Bontang merupakan daerah yang terpencil dan
belum maju. Jumlah penduduknya masih sedikit dan sebagian besar bermata
Gambar 6. Lokasi PT. Badak NGL dan daerah-daerah Sumur Gas Alam
24
Utilities
Plants
Process Plants
Process Plants
• Zona 1
Zona 1 merupakan daerah tempat proses berlangsung. Zona ini terdiri dari
• Zona 2
• Zona 3
pendukung perumahan yang lain. Kantor pusat PT. Badak NGL terletak di zona
ini.
Pabrik tempat pencairan LNG dibagi menjadi 2 modul. Modul I terdiri dari
kegiatan operasi kilang LNG Bontang adalah Direktur / General Manager yang
26
• Manufacturing Division.
• Administration Division.
• Development Division.
• Finance and Accounting Department.
• Internal Audit Department.
• Safety Health & Enviroment Quality Department
• Strategic Planning department.
keselamatan karyawan.
macam literatur atau sumber-sumber referensi yang berkaitan erat dengan teori-
teori penunjang penelitian. Hal ini dilakukan agar dari tahap penelitian hingga
3.2.2. Wawancara
3.2.3. Internet
data yang dihasilkan dari suatu proses tertentu yang ditampilkan untuk
sistem, metode pengumpulan data, dan desain sistem yang dirancang. Seluruh data
yang diperoleh dari hasil penelitian dikumpulkan dan diproses agar dapat
pada software, hardware, brainware yang akan dipakai sebagai sarana yang
29
mudah diakses oleh user, installition schedule yang berarti dapat mendesain
sistem yang terbaik dalam batas waktu yang dibutuhkan, keluwesan (flexibility)
untuk menunjukkan bahwa sistem mudah beradaptasi, umur yang diharapkan dan
potensi pertumbuhan (life expectancy and growth potential) dan yang terakhir
3.3.1.2.1. Software
Informasi SHEQ.
3.3.1.2.2. Hardware
menjalankan aplikasi program ini adalah komputer yang minimal, sebagai berikut:
Sistem yang sedang berjalan sampai saat ini dapat digambarkan sebagai
berikut:
System i s able to
be expanded to
Event Registration Occ. Health & Industrial Hygi ene Ri sk Assesment SHE-Q Employee CSMS accomodate other
sub systems.
Measurement
[Evaluation needed]
Re-evaluation Evaluation
[Rej ected]
[Approved]
sistem yang ada yang akan dibuat dengan menggunakan desain-desain sistem
Karyawan / Kontraktor /
Administrasi SHEQ Manajemen / Public
Lain-Lain
Kejadian berhubungan
Indikator
dengan SHEQ
Leading
atau lagging
Measurement
SHEQ
Karyawan / Kontraktor /
Administrasi SHEQ Manajemen / Public
Lain-Lain
1
Karyawan Chart
Data kejadian Manajemen
Kontraktor Tabel kejadian Publik
Sistem Informasi
Lain Lain
SHEQ
Gambar tersebut diatas menunjukkan bahwa dari adanya data kejadian oleh
berupa Chart dan Tabel Kejadian yang setiap saat dapat dilihat oleh
Manajemen/Publik.
Dari Context Diagram di atas dapat di gambarkan lebih lanjut yaitu Data
Flow Diagram Level 1 sesuai dengan penambahan menu yang baru yaitu Event
3 M_Company_Section
5 M_Employee_Position
Info
M_Company_ 7 M_Event_Type
2
Department Info
M_Company_ Info
4 6 M_Person_Group
Employee
Info 1 Info
Info Event Form pada
Masukkan Ubah dan Hapus data kejadian Menu Event
Karyawan Tabel kejadian
Info Registration
Kontraktor Manajemen
Lain Lain Publik
2
M_Location_
8 Input Indikator Leading Lagging
Area
Info Info Measurement
M_SPI_Leading
9 3
_Indicator
Ubah Safety Tabel kejadian berindikator
M_SPI_Lagging_ Info Performance
10
Indicator Indicator (SPI) Chart untuk Leading & Lagging Indicator
Ubah
Gambar 16. DFD Level 1 Sistem Informasi SHEQ penambahan pada Event Form
35
BAB IV
ANALISIS DAN IMPLEMENTASI SISTEM
4.1. Analisis
Halaman pertama adalah halaman login. Pada halaman ini akan melakukan
proses login untuk dapat mengakses SHE-Q IS. Masukkan Username dan
Password pada textbox yang tersedia, lalu tekan tombol login untuk melakukan
proses login. Form ini masih tetap digunakan atau tidak ada perubahan sama
sekali.
adalah :
37
Safety performance.
Halaman home adalah halaman pertama yang akan anda temui setelah
berhasil melewati proses login. Pada halaman ini terdapat rekapitulasi event
entri rekap merupakan link menuju halaman lain. Klik pada salah satu link untuk
4.1.3. Form Event Registration lama dan Event Form desain baru
Sistem Informasi SHEQ sampai saat ini diterapkan adalah sebagai berikut:
SHE-Q IS. Pada halaman ini akan ditampilkan daftar Event serta detail event yang
lainnya.
Detail event akan bergantung terhadap event yang dipilih. Event yang
berbeda akan menampilkan detail yang berbeda. Detail event terdiri dari tiga,
yaitu General, Related Person, dan SHE-Q Reference; atau dapat dilihat seperti
Sedangkan usulan akan ada penambahan form, yaitu Event Form sehingga
Event Form yang peneliti tambahkan dimasukkan dalam menu Event Registration,
diatas, Event Form yang diusulkan tersebut disesuaikan dengan kebutuhan atau
Form yang dari Sistem Informasi SHEQ yang lama dapat digunakan lagi
atau tanpa perubahan. Prosedur input selanjutnya adalah mencari data yang
41
Indicator atau Lagging Indicator. Menu Measurement terdiri dari tiga yaitu:
selanjutnya yaitu Menu SPI (Safety Performance Indicator), Form SPI dapat
Gambar 25. Form tabel dan Safety Performance Indicator yang sudah
terintegrasi dengan Event Form yang baru
Dengan adanya Event Form yang baru, sangat membantu tugas dari
akses untuk memasukkan data pada Event Form yang peneliti buat seperti gambar
Dapat pula dilihat chart, Leading Indicator dan Lagging Indicator pada
Form Home dari hasil masukkan data pada Event Form yang telah peneliti desain
4.2. Implementasi
Windows, extensi .bin atau .sh untuk OS unix/linux). Jika komputer kita berbasis
Graphic User Interface seperti gambar berikut tidak muncul maka anda harus
SHEQ-IS, pastikan kita telah mem-backup file-file yang telah diupload kedalam
Gambar 28. Masukkan username dan password login pada IBM WebSphere
Community Edition
Setelah masuk kedalam menu utama pilihlah link deploy new, seperti
gambar dibawah ini. Pada menu instalasi aplikasi, klik tombol browse pada
archieve lalu pilih aplikasi yang akan diinstal, lalu klik install.
46
tersebut :
1. hibernate.cfg.xml
<property name="connection.url">jdbc:oracle:thin:@10.10.1.24:1521:ELLRPL</property>
<property name="connection.username">sheq</property>
<property name="connection.password">sheq</property>
2. config.properties
terdapat di <application-dir>/sheqis/WEB-INF/classes/com/badaklng/sheqis/
resources.
• Pada file ini terdapat beberapa item konfigurasi. Berikut adalah penjelasan tiap
item tersebut :
3. messages_en.properties
File ini berisi kumpulan label atau message yang ditampilkan pada aplikasi
SHE-Q IS. Silakan lakukan perubahan yang anda inginkan. Lokasi file terdapat di
<application-dir>/sheqis/WEB-INF/classes/com/badaklng/sheqis/resources.
4. web.xml
terdapat di <application-dir>/sheqis/WEB-INF/
<context-param>
<param-name>com.icesoft.faces.uploadMaxFileSize</param-name>
<param-value>50000000</param-value>
</context-param>
- Edit pada bagian dibawah ini untuk menentukan lama waktu idle pada
halaman SHE-Q IS .
<session-config>
<session-timeout>
600
</session-timeout>
</session-config>
5. bootstrap.properties
terdapat di <application-dir>/sheqis/WEB-INF/
akan digunakan.
repository.home=sheqis/repository
repository.name=sheqis.repository
49
6. applicationContext.xml
File ini berisikan konfigurasi database untuk login. Lokasi file terdapat di
<application-dir>/sheqis/WEB-INF/
- Edit pada bagian url, username dan password sehingga sesuai dengan setting
<property name="url"><value>jdbc:oracle:thin:@10.10.1.24:1521:ELLRPL</value></property>
<property name="username"><value>sheq</value></property>
<property name="password"><value>penamatik</value></property>
Contoh :
create user sheq identified by sheqpassword
3. Import object-object database dari file dmp yang disediakan dengan cara:
Contoh :
imp sheq_database.dmp userid=shequsername/sheqpassword
50
BAB IV
PENUTUP
4.1. Kesimpulan
berikut:
4.1.1. Sistem yang lama dapat membebani pekerjaan Administrator SHEQ untuk
4.1.2. Event Form yang dibuat peneliti sudah dapat terintegrasi dengan Sistem
Informasi SHEQ.
4.2. Saran
4.2.1. Formulir Event Registration yang berisi laporan kejadian tidak perlu lagi
akses memanipulasi data sudah tidak memerlukan lagi. Hal lainnya karena
4.2.2. Desain sistem untuk Event Form segera dapat digunakan, karena sesuai
Daftar Pustaka
Betha Sidik, Ir. Husni Iskandar Pohan, Ir., M.Eng., Pemrograman Web Dengan
HTML, Informatika Bandung
LAMPIRAN-LAMPIRAN
54
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:ice="http://www.icesoft.com/icefaces/component"
xmlns:d="http://www.dycode.com/jsf"
xmlns:acegijsf="http://sourceforge.net/projects/jsf-comp/acegijsf"
xmlns:fn="http://java.sun.com/jsp/jstl/functions">
<ice:outputDeclaration doctypeRoot="HTML"
doctypePublic="-//W3C//DTD HTML 4.01 Transitional//EN"
doctypeSystem="http://www.w3.org/TR/html4/loose.dtd"/>
<ui:composition template="/WEB-INF/template/member.jspx">
<ui:define name="title">Member Home</ui:define>
<ui:define name="content">
<ice:form id="memberForm">
<div id="memberHomeHeader">
<div style="float: left; margin: 0px 5px 0px 5px; width: 35%;">
<ice:outputText value="#{msgs['general.welcome']}"/> 
<ice:outputText value="#{user.userDetails.fullName}" styleClass="usernameLabel"/> 
(<ice:outputText value=" #{user.roles}"/>)<br/>
<ice:outputLabel value="Server Time: "/> 
<ice:outputText value="#{memberHomeController.serverTime}">
<f:convertDateTime type="both" timeZone="#{msgs['general.timezone']}"/>
</ice:outputText>
</div>
<div style="float: left; margin: 0px 5px 0px 5px; width: 10%;">
</div>
<div style="vertical-align: middle; float: right; margin: 0px 5px 0px 5px; width: 50%;
text-align: right;">
<ice:outputConnectionStatus activeLabel="Loading"
disconnectedLabel="Disconnected"
inactiveLabel="In Active" style="vertical-align:top"/>
</div>
</div>
actionListener="#{memberHomeController.handleFilterOKButton}"></ice:commandButton>
<ice:outputLabel value="#{msgs['general.filterButtonText']}" />
</ice:panelGroup>
</ice:panelGrid>
</ice:panelGroup>
</ice:panelCollapsible>
</td>
<td></td>
<td></td>
</tr>
<tr>
<td width="50%" valign="top">
<ice:panelCollapsible style="width:100%;" expanded="true"
styleClass="pnlClpsblDemo">
<f:facet name="header">
<ice:panelGroup styleClass="expandableStateIndicator" >
<ice:outputText value="#{msgs['member.index.recapsText']}"/>
</ice:panelGroup>
</f:facet>
<ice:panelGroup style="padding-top:5px;padding-bottom:5px;">
<ul class="shortcutLink">
<c:if test="${fn:length(memberHomeController.eventRecapsList) gt 0}">
<table width="100%">
<tr>
<td width="50%">
<ice:outputText value="Events" style="font-weight:bold;width:50%"/>
</td>
<td width="15%" align="center">
<ice:outputText value="Event Dept." style="font-weight:bold;width:15%"/>
</td>
<td width="15%" align="center">
<ice:outputText value="Event Own" style="font-weight:bold;width:15%"/>
</td>
<td width="15%" align="center">
<ice:outputText value="Events All Dept" style="font-
weight:bold;width:15%"/>
</td>
</tr>
</table>
</c:if>
<ice:panelSeries value="#{memberHomeController.eventRecapsList}"
var="recap">
<li class="shortcutLink">
<div style="width: 50%; float: left; text-align: left;">
<c:if test="${recap.detailPageUrl != ''}">
<ice:outputLink value="#{recap.detailPageUrl}">
<ice:outputText value="#{recap.text}"/>
</ice:outputLink>
</c:if>
<c:if test="${recap.detailPageUrl == ''}">
<ice:outputText value="#{recap.text}"/>
</c:if>
</div>
</div>
</td>
<td width="1%" valign="top">
</td>
<td width="49%" valign="top">
<!--
<ice:panelCollapsible style="width:100%;height:100%"
expanded="true" styleClass="pnlClpsblDemo">
<f:facet name="header">
<ice:panelGroup styleClass="expandableStateIndicator" >
<ice:outputText value="Notification"/>
</ice:panelGroup>
</f:facet>
<ice:panelGroup style="padding-top:5px;padding-bottom:5px;">
test
</ice:panelGroup>
</ice:panelCollapsible>
-->
</td>
57
</tr>
</table>
};
var refreshInterval = document.getElementById('memberForm:refreshInterval').innerText;
//alert(refreshInterval);
window.setInterval(customRefresh, refreshInterval);
</script>
</ui:define>
</ui:composition>
</html>
58
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:ice="http://www.icesoft.com/icefaces/component"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:d="http://www.dycode.com/jsf">
<ice:outputDeclaration doctypeRoot="HTML"
doctypePublic="-//W3C//DTD HTML 4.01 Transitional//EN"
doctypeSystem="http://www.w3.org/TR/html4/loose.dtd"/>
<ui:composition template="/WEB-INF/template/member.jspx">
<ui:define name="browserTitle">Event Registration Form</ui:define>
<ui:define name="title">
<ice:form>
<ice:outputText value="Event Registration #{eventRegistrationFormController.eventType.name}
Form"/>
</ice:form>
</ui:define>
<ui:define name="content">
<ice:form id="eventRegForm">
<div>
<ice:messages title="Validation Error" layout="table" styleClass="border:1px solid #cccccc"
errorClass="errorMsg"/>
</div>
<table border="0" cellpadding="0" cellspacing="0" class="toolbar">
<tr>
<td valign="left" style="padding:1px;">
<ice:panelGroup>
<div class="toolbar_button" onmouseout="this.className='toolbar_button';"
onmouseover="this.className='toolbar_button_hover';">
<ice:commandButton image="/resources/images/icon/icon_add.gif" style="vertical-
align: middle;" accesskey="S"
title="#{msgs['general.saveButtonText']}" id="eventFormSaveButton"
actionListener="#{eventRegistrationFormController.handleSaveButtonListener}" type="submit"/>
<ice:outputLabel value="#{msgs['general.saveButtonText']}"
for="eventFormSaveButton"/>
</div>
</ice:panelGroup>
<!--
<ice:panelGroup>
<div class="toolbar_button" onmouseout="this.className='toolbar_button';"
style="width:100px;" onmouseover="this.className='toolbar_button_hover';">
<ice:commandButton image="/resources/images/icon/icon_add.gif" style="vertical-
align: middle;" accesskey="C"
title="#{msgs['general.saveCloseButtonText']} Close"
id="eventFormSaveCloseButton"
actionListener="#{eventRegistrationFormController.handleSaveButtonListener}" type="submit"/>
<ice:outputLabel value="#{msgs['general.saveCloseButtonText']}"
for="eventFormSaveCloseButton"/>
</div>
</ice:panelGroup>
-->
<ice:panelGroup>
59
<ice:outputLabel value="#{msgs['eventreg.eventform.general.reportedDateLabel']}"
for="reportedDate"/>
<ice:panelGroup>
<ice:inputText id="reportedDate" readonly="true"
value="#{eventRegistrationFormController.eventRegForm.reportedDate}">
<f:convertDateTime pattern="dd/MM/yyyy HH:mm" timeZone="Asia/Jakarta"/>
</ice:inputText>
</ice:panelGroup>
<ice:outputLabel value="#{msgs['eventreg.eventform.general.eventDateLabel']}
(mm/dd/yyyy)" for="eventDate"/>
<ice:panelGrid columns="2" cellspacing="0"
columnClasses="form_fieldLabel,form_fieldValue" width="100%">
<ice:panelGrid columns="2" cellspacing="0">
<ice:selectInputDate id="eventDate"
value="#{eventRegistrationFormController.eventRegForm.eventDate}" renderAsPopup="true"
required="true" validator="#{eventRegistrationFormController.validateEventDate}"/>
<ice:message id="eventDateMessage" for="eventDate" errorClass="errorMsg"/>
</ice:panelGrid>
<ice:outputLabel value="#{msgs['eventreg.eventform.general.eventTypeLabel']}"
for="eventType"/>
<ice:panelGroup>
<ice:selectOneMenu id="eventType"
value="#{eventRegistrationFormController.eventType.eventTypeId}"
disabled="#{eventRegistrationFormController.editData}"
valueChangeListener="#{eventRegistrationFormController.handleChangeEventTypeListener}"
partialSubmit="true" required="true">
<f:selectItems value="#{masterDataController.eventTypeSelectItems}"/>
</ice:selectOneMenu>
<ice:message for="eventType" errorClass="errorMsg"/>
</ice:panelGroup>
<ice:outputLabel value="#{msgs['eventreg.eventform.general.subEventTypeLabel']}"
for="subEventType"/>
<ice:selectOneMenu id="subEventType"
value="#{eventRegistrationFormController.subEventType.eventTypeId}"
disabled="#{eventRegistrationFormController.editData}" >
<f:selectItems value="#{eventRegistrationFormController.eventSubTypeSelectItems}"/>
</ice:selectOneMenu>
<ice:outputLabel value="#{msgs['eventreg.eventform.tab.general.exactLocationLabel']}"
for="exactLocation"/>
<ice:panelGroup>
<ice:inputTextarea id="exactLocation" cols="80" rows="5"
value="#{eventRegistrationFormController.eventRegForm.locationScene}" required="true"
partialSubmit="true"/>
<ice:message errorClass="errorMsg" for="exactLocation"/>
</ice:panelGroup>
<ice:outputLabel
value="#{msgs['eventreg.eventform.tab.general.areaLabel']}" for="area"/>
<ice:panelGroup>
<ice:selectOneMenu id="area"
value="#{eventRegistrationFormController.eventRegForm.locationArea.locationAreaId}">
<f:selectItems
value="#{masterDataController.areaSelectItems}"/>
</ice:selectOneMenu>
<ice:message errorClass="errorMsg" for="area"/>
</ice:panelGroup>
<ice:outputLabel
value="#{msgs['eventreg.eventform.tab.general.departmentLabel']}" for="detailDepartment"/>
<ice:panelGroup>
<ice:selectOneMenu id="#{msgs['departmentLocation']}"
valueChangeListener="#{eventRegistrationFormController.handleDepartmentChange}"
value="#{eventRegistrationFormController.eventRegForm.locationDepartment.departmentId}"
partialSubmit="true"
style="width:200px;">
<f:selectItems
value="#{masterDataController.departmentSelectItems}"/>
</ice:selectOneMenu>
61
    
<ice:outputLabel
value="#{msgs['eventreg.eventform.tab.general.sectionLabel']}" for="detailSection"/>
<ice:selectOneMenu id="#{msgs['sectionLocation']}"
value="#{eventRegistrationFormController.eventRegForm.locationSection.sectionId}"
partialSubmit="true"
style="width:200px;">
<f:selectItems
value="#{eventRegistrationFormController.locationSections}"/>
</ice:selectOneMenu>
</ice:panelGroup>
<ice:outputLabel value="#{msgs['eventreg.eventform.general.shortDescriptionLabel']}"
for="shortDescription"/>
<ice:inputTextarea id="shortDescription" cols="80" rows="5"
value="#{eventRegistrationFormController.eventRegForm.caseShortDescription}"/>
</ice:panelGrid>
<ice:graphicImage
url="#{fn:length(eventRegistrationFormController.reporterPersonForm.photoFilepath) eq 0 ?
'/resources/images/thumbnail/noimage.jpg' :
eventRegistrationFormController.reporterPersonForm.photoFilepath }"
styleClass="attachment_thumbnail"
title="#{eventRegistrationFormController.reporterPersonForm.fullName}"/>
<ice:panelGroup>
<ice:panelGrid columns="2" style="width:100%"
columnClasses="form_fieldLabel,form_fieldValue">
<ice:outputLabel
value="#{msgs['eventreg.eventform.general.reporter.reporterTypeLabel']}"/>
<ice:selectOneRadio id="reporterType"
value="#{eventRegistrationFormController.reporterPersonForm.reporterPersonType.personTypeId}"
valueChangeListener="#{eventRegistrationFormController.handleChangePersonTypeListener}"
partialSubmit="true" layout="table">
<f:selectItems value="#{masterDataController.personTypesSelectItems}"/>
</ice:selectOneRadio>
</ice:panelGrid>
value="#{msgs['eventreg.eventform.general.reporter.findButtonLabel']}" partialSubmit="true"
styleClass="buttonDefault"/>
<ice:message id="badgeIdMessage" for="badgeId" errorClass="errorMsg"/>
</ice:panelGroup>
</ice:panelGrid>
<ice:outputLabel value="#{msgs['eventreg.eventform.general.reporter.titleLabel']}"/>
<ice:panelGroup>
<ice:inputText id="titleOccupation" size="50"
value="#{eventRegistrationFormController.reporterPersonForm.occupation}"/>
<ice:message for="titleOccupation" errorClass="errorMsg"/>
</ice:panelGroup>
</ice:panelGrid>
<ice:panelGrid columns="2"
rendered="#{eventRegistrationFormController.isReporterUnknown}"
columnClasses="form_fieldLabel,form_fieldValue">
<ice:outputLabel
value="#{msgs['eventreg.eventform.general.reporter.departmentLabel']}"/>
<ice:panelGroup>
<ice:selectOneMenu id="#{msgs['departmentReporter']}"
value="#{eventRegistrationFormController.reporterPersonForm.companyDepartment.departmentId}"
valueChangeListener="#{eventRegistrationFormController.handleDepartmentChange}" partialSubmit="true"
style="width:200px;">
<f:selectItems value="#{masterDataController.departmentSelectItems}"/>
</ice:selectOneMenu>
<ice:message for="reporterDepartment" errorClass="errorMsg"/>
</ice:panelGroup>
<ice:outputLabel
value="#{msgs['eventreg.eventform.general.reporter.sectionLabel']}"/>
<ice:panelGroup>
<ice:selectOneMenu id="#{msgs['sectionReporter']}"
value="#{eventRegistrationFormController.reporterPersonForm.companySection.sectionId}"
style="width:200px;">
<f:selectItems value="#{eventRegistrationFormController.reporterSections}"/>
</ice:selectOneMenu>
<ice:message for="reporterSection" errorClass="errorMsg"/>
</ice:panelGroup>
</ice:panelGrid>
<ice:panelGrid columns="2"
rendered="#{!eventRegistrationFormController.isReporterUnknown}"
columnClasses="view_fieldLabel,view_fieldValue">
<ice:outputLabel
value="#{msgs['eventreg.eventform.general.reporter.departmentLabel']}"/>
<ice:outputText
value="#{eventRegistrationFormController.reporterPersonForm.companyDepartment.name eq null ?
63
msgs['general.noValueText'] :
eventRegistrationFormController.reporterPersonForm.companyDepartment.name}" />
<ice:outputLabel
value="#{msgs['eventreg.eventform.general.reporter.sectionLabel']}"/>
<ice:outputText
value="#{eventRegistrationFormController.reporterPersonForm.companySection.name eq '' ?
msgs['general.noValueText'] :
eventRegistrationFormController.reporterPersonForm.companySection.name}"/>
</ice:panelGrid>
<ice:outputLabel
value="#{msgs['eventreg.eventform.general.reporter.photoLabel']}"/>
<ice:panelGroup>
<ice:inputFile id="reporterUpload"
actionListener="#{eventRegistrationFormController.handleFileUploadListener}"
buttonClass="buttonDefault"/>
<ice:message for="reporterUpload" errorClass="errorMsg"/>
</ice:panelGroup>
<ice:outputLabel
value="#{msgs['eventreg.eventform.general.reporter.homeAddressLabel']}"/>
<ice:inputTextarea id="address" cols="80" rows="3"
value="#{eventRegistrationFormController.reporterPersonForm.address}"/>
<ice:outputLabel
value="#{msgs['eventreg.eventform.general.reporter.remarkLabel']}"/>
<ice:inputTextarea id="remark" cols="80" rows="3"
value="#{eventRegistrationFormController.reporterPersonForm.remark}"/>
</ice:panelGrid>
</ice:panelGroup>
</ice:panelGrid>
</fieldset>
</ice:panelGroup>
<br/>
</ice:panelCollapsible>
<!-- end general panel collapsible -->
<br/>
<br/>
<ice:panelGroup style="padding-top:5px;padding-bottom:5px;">
<ice:panelTabSet style="width:99.5%"
id="detailPanelTabSet">
<d:dynamictab tabs="${eventRegistrationFormController.dynamicDetailTabs}"/>
</ice:panelTabSet>
</ice:panelGroup>
<br/>
</ice:panelCollapsible>
<!-- end detail panel collapsible -->
<br/>
</ice:form>
</ui:define>
</ui:composition>
</html>
65
<div xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:ice="http://www.icesoft.com/icefaces/component">
<ice:outputLabel value="#{msgs['eventreg.eventform.tab.general.actionTakenLabel']}"
for="actionTaken"/>
<ice:inputTextarea id="actionTaken" cols="80" rows="5"
value="#{eventRegistrationFormController.eventRegForm.actionTaken}"/>
<ice:outputLabel value="#{msgs['eventreg.eventform.tab.general.recommendationLabel']}"
for="recommendation"/>
<ice:inputTextarea id="recommendation" cols="80" rows="5"
value="#{eventRegistrationFormController.eventRegForm.recommendation}"/>
</ice:panelGrid>
</ice:panelTab>
</div>
66
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:ice="http://www.icesoft.com/icefaces/component"
xmlns:d="http://www.dycode.com/jsf">
<ice:outputDeclaration doctypeRoot="HTML"
doctypePublic="-//W3C//DTD HTML 4.01 Transitional//EN"
doctypeSystem="http://www.w3.org/TR/html4/loose.dtd"/>
<ui:composition template="/WEB-INF/template/member.jspx">
<ui:define name="browserTitle">Event List</ui:define>
<ui:define name="title">Event List</ui:define>
<ui:define name="content">
<ice:form>
<d:confirm rendered="${eventRegistrationController.deleteConfirmDisplayed}"
closeButtonIcon="/resources/images/icon/popupclose.gif"
icon="/resources/images/icon/icon_information.png"
message="Are you sure to delete measurement code
#{eventRegistrationController.selectedEvent.measurementCode} ?"
noActionListenerMethod="closeDeleteConfirm"
yesActionListenerMethod="handleDeleteButton"
backingBean="${eventRegistrationController}" />
<d:accessDenied rendered="${eventRegistrationController.grantModifyDisplayed}"
closeButtonIcon="/resources/images/icon/popupclose.gif"
icon="/resources/images/icon/icon_information.png"
message="You Cannot Modify this data"
yesActionListenerMethod="closeGrantModifyDisplayed"
backingBean="${eventRegistrationController}" />
<ice:panelGroup>
<ice:commandButton style="vertical-align: middle;" accesskey="F"
image="/resources/images/icon/icon_search.gif"
67
actionListener="#{eventRegistrationController.handleFilterOKButton}"></ice:commandButton>
<ice:outputLabel value="#{msgs['general.filterButtonText']}" />
</ice:panelGroup>
<ice:outputLabel
value="#{msgs['eventreg.eventlist.measurementCodeColumnText']}: "
for="measurementcodeFilterInputText"/>
<ice:inputText id="measurementcodeFilterInputText" size="53" style="margin:0px"
value="#{eventRegistrationController.filterMeasurementCodeId}"/>
actionListener="#{eventRegistrationController.handleFilterResetButton}"></ice:commandButton>
<ice:outputLabel value="#{msgs['general.resetButtonText']}" />
</ice:panelGroup>
valueChangeListener="#{masterDataController.handleEventTypeChange}">
<f:selectItems value="#{masterDataController.eventTypeSelectItems}"/>
</ice:selectOneMenu>
<ice:outputLabel value="#{msgs['eventreg.eventlist.eventSubTypeText']}: "
for="eventSubTypeFilterSelectOneMenu"/>
<ice:selectOneMenu id="eventSubTypeFilterSelectOneMenu"
style="overflow: auto;"
value="#{eventRegistrationController.filterEventSubTypeId}">
<f:selectItems value="#{masterDataController.eventSubTypeSelectItems}"/>
</ice:selectOneMenu>
<ice:outputLabel/>
valueChangeListener="#{masterDataController.handleDepartmentChange}">
<f:selectItems value="#{masterDataController.departmentSelectItems}"/>
</ice:selectOneMenu>
<ice:outputLabel
value="#{msgs['eventreg.eventlist.descriptionKeywordFilterText']}: "
for="descriptionFilterInputText"/>
<ice:inputTextarea id="descriptionFilterInputText" cols="50" rows="3"
style="margin:0px;"
value="#{eventRegistrationController.filterDescriptionKeyword}"/>
</ice:panelGrid>
</ice:panelGroup>
</ice:panelCollapsible>
<div style="height:3px;width:100%;clear:both"><img src="" alt="" width="0" height="0"
/></div>
<!-- Begin of Toolbar -->
<table border="0" cellpadding="0" cellspacing="0" class="toolbar">
<tr>
<td valign="middle" style="padding:1px;">
<div class="toolbar_button"
onmouseout="this.className='toolbar_button';"
onmouseover="this.className='toolbar_button_hover';">
<ice:commandButton image="/resources/images/icon/icon_add.gif"
style="vertical-align: middle;"
title="Add" accesskey="a" id="eventlistAddButton"
action="eventRegistrationForm" type="submit"/>
<ice:outputLabel value="#{msgs['general.addButtonText']}"
for="eventlistAddButton"/>
</div>
<div class="toolbar_button"
onmouseout="this.className='toolbar_button';"
onmouseover="this.className='toolbar_button_hover';">
<ice:commandButton image="/resources/images/icon/icon_edit.gif"
style="vertical-align: middle;"
title="Edit" accesskey="e" id="eventlistEditButton"
actionListener="#{eventRegistrationController.handleEditButton}"/>
<ice:outputLabel value="#{msgs['general.editButtonText']}"
for="eventlistEditButton"/>
</div>
<div class="toolbar_button"
onmouseout="this.className='toolbar_button';"
onmouseover="this.className='toolbar_button_hover';">
<ice:commandButton image="/resources/images/icon/icon_delete.gif"
style="vertical-align: middle;"
title="Delete" accesskey="d" id="eventlistDeleteButton"
actionListener="#{eventRegistrationController.openDeleteConfirm}"/>
<ice:outputLabel value="#{msgs['general.deleteButtonText']}"
for="eventlistDeleteButton"/>
</div>
<div class="toolbar_button"
onmouseout="this.className='toolbar_button';"
onmouseover="this.className='toolbar_button_hover';">
<ice:commandButton image="/resources/images/icon/icon_pdf.gif"
style="vertical-align: middle;"
title="Preview" accesskey="V" id="eventlistPreviewButton"
actionListener="#{eventRegistrationController.handlePreviewDetailButton}"/>
<ice:outputLabel value="View" for="eventlistPreviewButton"/>
</div>
<div style="float:right;">
<ice:panelGrid columns="2" cellpadding="0" cellspacing="0">
<!-- Paginator with page controls -->
<ice:dataPaginator id="eventListPaginator"
for="eventList"
69
paginator="true"
fastStep="3"
paginatorMaxPages="4"
actionListener="#{eventRegistrationController.handleEventListPageChange}"
style="background-color:#ffffff;border: 1px solid #CCCCCC;">
<f:facet name="first">
<ice:graphicImage url="/xmlhttp/css/xp/css-images/arrow-first.gif"
style="border:none;"
title="First Page"/>
</f:facet>
<f:facet name="last">
<ice:graphicImage url="/xmlhttp/css/xp/css-images/arrow-last.gif"
style="border:none;"
title="Last Page"/>
</f:facet>
<f:facet name="previous">
<ice:graphicImage url="/xmlhttp/css/xp/css-images/arrow-previous.gif"
style="border:none;"
title="Previous Page"/>
</f:facet>
<f:facet name="next">
<ice:graphicImage url="/xmlhttp/css/xp/css-images/arrow-next.gif"
style="border:none;"
title="Next Page"/>
</f:facet>
<f:facet name="fastforward">
<ice:graphicImage url="/xmlhttp/css/xp/css-images/arrow-ff.gif"
style="border:none;"
title="Fast Forward"/>
</f:facet>
<f:facet name="fastrewind">
<ice:graphicImage url="/xmlhttp/css/xp/css-images/arrow-fr.gif"
style="border:none;"
title="Fast Backwards"/>
</f:facet>
</ice:dataPaginator>
<!-- Display counts about the table and the currently displayed page -->
<ice:dataPaginator id="eventListPaginatorInfo"
for="eventList"
rowsCountVar="rowsCount"
displayedRowsCountVar="displayedRowsCountVar"
firstRowIndexVar="firstRowIndex"
lastRowIndexVar="lastRowIndex"
pageCountVar="pageCount"
pageIndexVar="pageIndex">
<ice:outputFormat value="   {0} events found, displaying
{1} events, from {2} to {3}. Page {4}/{5}."
styleClass="pagination_info">
<f:param value="#{rowsCount}" />
<f:param value="#{displayedRowsCountVar}" />
<f:param value="#{firstRowIndex}" />
<f:param value="#{lastRowIndex}" />
<f:param value="#{pageIndex}" />
<f:param value="#{pageCount}" />
</ice:outputFormat>
</ice:dataPaginator>
</ice:panelGrid>
</div>
</td>
</tr>
70
</table>
<!-- End of Toolbar -->
sortAscending="#{eventRegistrationController.eventListDataModel.sortedAscending}"
sortColumn="#{eventRegistrationController.eventListDataModel.sortedColumnName}"
binding="#{eventRegistrationController.eventListDataTable}">
<ice:column>
<ice:rowSelector value="#{event.selected}" multiple="false" toggleOnClick="true"
selectionListener="#{eventRegistrationController.handleEventListSelection}" />
<f:facet name="header">
<ice:commandSortHeader
columnName="#{msgs['eventreg.eventlist.measurementCodeColumnName']}"
arrow="true">
<ice:outputText
value="#{msgs['eventreg.eventlist.measurementCodeColumnText']}"/>
</ice:commandSortHeader>
</f:facet>
<ice:outputText value="#{event.measurementCode}">
</ice:outputText>
</ice:column>
<ice:column>
<f:facet name="header">
<ice:commandSortHeader
columnName="#{msgs['eventreg.eventlist.eventDateColumnName']}"
arrow="true">
<ice:outputText value="#{msgs['eventreg.eventlist.eventDateColumnText']}"/>
</ice:commandSortHeader>
</f:facet>
<ice:outputText value="#{event.eventDate}">
<f:convertDateTime pattern="MMMM dd, yyyy HH:mm"
timeZone="Asia/Jakarta"/>
</ice:outputText>
</ice:column>
<ice:column>
<f:facet name="header">
<ice:commandSortHeader
columnName="#{msgs['eventreg.eventlist.reportedDateColumnName']}"
arrow="true">
<ice:outputText
value="#{msgs['eventreg.eventlist.reportedDateColumnText']}"/>
</ice:commandSortHeader>
</f:facet>
<ice:outputText value="#{event.reportedDate}">
<f:convertDateTime pattern="MMMM dd, yyyy HH:mm"
timeZone="Asia/Jakarta"/>
</ice:outputText>
</ice:column>
<ice:column>
<f:facet name="header">
<ice:commandSortHeader
columnName="#{msgs['eventreg.eventlist.locationSceneColumnName']}"
arrow="true">
71
<ice:outputText
value="#{msgs['eventreg.eventlist.locationSceneColumnText']}"/>
</ice:commandSortHeader>
</f:facet>
<ice:outputText value="#{event.locationScene}"/>
</ice:column>
<ice:column>
<f:facet name="header">
<ice:commandSortHeader
columnName="#{msgs['eventreg.eventlist.caseShortDescriptionColumnName']}"
arrow="true">
<ice:outputText
value="#{msgs['eventreg.eventlist.caseShortDescriptionColumnText']}"/>
</ice:commandSortHeader>
</f:facet>
<ice:outputText value="#{event.caseShortDescription}"/>
</ice:column>
<ice:column>
<f:facet name="header">
<ice:commandSortHeader
columnName="#{msgs['eventreg.eventlist.createByColumnName']}"
arrow="true">
<ice:outputText value="#{msgs['eventreg.eventlist.createByColumnText']}"/>
</ice:commandSortHeader>
</f:facet>
<ice:outputText value="#{event.userGet.fullname}"/>
</ice:column>
</ice:dataTable>
<div style="height:3px;width:100%;clear:both"><img src="" alt="" width="0" height="0"
/></div>
<ice:panelCollapsible style="width:100%;"
expanded="true"
styleClass="pnlClpsblDemo"
binding="#{eventRegistrationController.detailPanelCollapsible}"
rendered="false">
<f:facet name="header">
<ice:panelGroup styleClass="expandableStateIndicator" >
<ice:outputText value="#{msgs['general.detailText']}"/>
</ice:panelGroup>
</f:facet>
<ice:panelGroup style="padding-top:5px;padding-bottom:5px;">
<ice:panelTabSet binding="#{eventRegistrationController.detailTabSet}"
tabChangeListener="#{eventRegistrationController.handleTabChange}"
style="width:99.5%"
id="detailPanelTabSet">
<d:dynamictab tabs="${eventRegistrationController.dynamicDetailTabs}"
backingBean="${eventRegistrationController}"/>
</ice:panelTabSet>
</ice:panelGroup>
</ice:panelCollapsible>
</ice:form>
</ui:define>
</ui:composition>
</html>
72
<div xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:ice="http://www.icesoft.com/icefaces/component">
<ice:outputText
value="#{backingBean.selectedEvent.eventType.name}"/>
<ice:outputLabel
value="#{msgs['eventreg.eventlist.leadingIndicatorText']}: "
rendered="#{backingBean.selectedEvent.leadingIndicator != null}"/>
<ice:outputText
value="#{backingBean.selectedEvent.leadingIndicator.name}"
rendered="#{backingBean.selectedEvent.leadingIndicator != null}"/>
<ice:outputLabel value="#{msgs['eventreg.eventlist.investigationRequiredLabel']}:"/>
<ice:outputText value="#{backingBean.selectedEvent.investigationRequired ? 'Yes' : 'No'}"/>
</ice:panelGrid>
73
<br/>
<fieldset>
<legend>Location</legend>
<ice:panelGrid columns="2" style="width:100%"
columnClasses="view_fieldLabel, view_fieldValue">
<ice:outputLabel
value="#{msgs['eventreg.eventlist.locationSceneText']}: "/>
<ice:outputText
value="#{backingBean.selectedEvent.locationScene}"/>
<ice:outputLabel
value="#{msgs['eventreg.eventlist.locationAreaText']}: "/>
<ice:outputText
value="#{backingBean.selectedEvent.locationArea.name}"/>
<ice:outputLabel value="#{msgs['eventreg.eventlist.sectionText']}:
"/>
<ice:outputText
value="#{backingBean.selectedEvent.locationSection.name}"/>
<ice:outputLabel value="#{msgs['eventreg.eventlist.departmentText']}:
"/>
<ice:outputText
value="#{backingBean.selectedEvent.locationDepartment.name}"/>
</ice:panelGrid>
</fieldset>
<br/>
<fieldset>
<legend>Reporter/Observer</legend>
<ice:panelGrid columns="2" style="width:100%"
columnClasses="view_fieldLabel, view_fieldValue">
<ice:outputLabel value="#{msgs['eventreg.eventlist.reportertypeText']}:"/>
<ice:outputText value="#{backingBean.selectedEvent.reporters[0].reporterPersonType.name}"/>
<ice:outputLabel value="#{msgs['eventreg.eventlist.reporterbadgeidText']}:"/>
<ice:outputText value="#{backingBean.selectedEvent.reporters[0].reporterIdNo}"/>
<ice:outputLabel value="#{msgs['eventreg.eventlist.reporternameText']}:"/>
<ice:outputText value="#{backingBean.selectedEvent.reporters[0].fullName}"/>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:ice="http://www.icesoft.com/icefaces/component"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:d="http://www.dycode.com/jsf">
<ice:outputDeclaration doctypeRoot="HTML"
doctypePublic="-//W3C//DTD HTML 4.01 Transitional//EN"
doctypeSystem="http://www.w3.org/TR/html4/loose.dtd"/>
<ui:composition template="/WEB-INF/template/member.jspx">
<ui:define name="browserTitle">Measurement List</ui:define>
<ui:define name="title">Measurement List</ui:define>
<ui:define name="content">
<ice:form id="measurementForm" partialSubmit="true">
<d:confirm rendered="${measurementController.deleteConfirmDisplayed}"
closeButtonIcon="/resources/images/icon/popupclose.gif"
icon="/resources/images/icon/icon_information.png"
message="Are you sure to delete measurement code
#{measurementController.selectedEvent.measurementCode} ?"
noActionListenerMethod="closeDeleteConfirm"
yesActionListenerMethod="handleDeleteButton"
backingBean="${measurementController}" />
<d:accessDenied rendered="${measurementController.grantModifyDisplayed}"
closeButtonIcon="/resources/images/icon/popupclose.gif"
icon="/resources/images/icon/icon_information.png"
message="You cannot modify this data"
yesActionListenerMethod="closeGrantModifyDisplayed"
backingBean="${measurementController}" />
<ice:outputText styleClass="view_fieldValue"
value="#{measurementController.selectedEvent.measurementCode}"/>
<ice:panelGroup>
<ice:selectBooleanCheckbox id="leadingIndicatorSelected" partialSubmit="true"
value="#{measurementController.leadingIndicatorSelected}"
disabled="#{measurementController.approvedButNotIndicatorSelected}"/>
<ice:outputLabel for="leadingIndicatorSelected"
value="#{msgs['measurement.measurementlist.leadingCheckBoxLabel']}"/>
</ice:panelGroup>
<ice:panelGroup>
<ice:selectOneMenu disabled="#{!measurementController.leadingIndicatorSelected}"
value="#{measurementController.leadingIndicatorSelectId}"
valueChangeListener="#{measurementController.handleChangeEventTypeOfTrainingListener}"
partialSubmit="true" >
<f:selectItems value="#{measurementController.leadingIndicatorSelectItems}"/>
</ice:selectOneMenu>
</ice:panelGroup>
<ice:outputText
value="#{msgs['measurement.measurementlist.leadingTrainingHoursLabel']}"/>
<ice:panelGroup>
<ice:inputText id="trainingHours"
disabled="#{!measurementController.trainingHoursEvent}"
value="#{measurementController.eventTrainingValue}"/>
</ice:panelGroup>
<ice:panelGroup>
<ice:selectBooleanCheckbox id="laggingIndicatorSelected" partialSubmit="true"
value="#{measurementController.laggingIndicatorSelected}"
disabled="#{measurementController.approvedButNotIndicatorSelected}"/>
<ice:outputLabel for="laggingIndicatorSelected"
value="#{msgs['measurement.measurementlist.laggingCheckBoxLabel']}"/>
</ice:panelGroup>
<ice:panelGroup>
<ice:selectOneMenu disabled="#{!measurementController.laggingIndicatorSelected}"
value="#{measurementController.laggingIndicatorSelectId}">
<f:selectItems value="#{measurementController.laggingIndicatorSelectItems}"/>
</ice:selectOneMenu>
</ice:panelGroup>
<ice:panelGroup>
<ice:selectBooleanCheckbox id="approvedSelected" partialSubmit="true"
value="#{measurementController.approvedButNotIndicatorSelected}"
disabled="#{measurementController.laggingIndicatorSelected or
measurementController.leadingIndicatorSelected}"/>
<ice:outputLabel for="approvedSelected" value="Approved"/>
</ice:panelGroup>
<ice:outputText value=""/>
<ice:outputText value=""/>
<ice:panelGroup>
<div class="toolbar_button"
onmouseout="this.className='toolbar_button';"
onmouseover="this.className='toolbar_button_hover';">
<ice:commandButton image="/resources/images/icon/icon_save.gif" style="vertical-
align: middle;"
title="Save" accesskey="s" id="saveIndicatorButton"
actionListener="#{measurementController.handleSaveAddIndicator}"/>
76
<ice:outputLabel value="#{msgs['general.saveButtonText']}"
for="saveIndicatorButton"/>
</div>
<div class="toolbar_button"
onmouseout="this.className='toolbar_button';"
onmouseover="this.className='toolbar_button_hover';">
<ice:commandButton image="/resources/images/icon/icon_cancel.gif" style="vertical-
align: middle;"
title="#{msgs['general.cancelButtonText']}" id="cancelIndicatorButton"
actionListener="#{measurementController.closeAddIndicatorPanel}"/>
<ice:outputLabel value="#{msgs['general.cancelButtonText']}"
for="cancelIndicatorButton"/>
</div>
</ice:panelGroup>
</ice:panelGrid>
</f:facet>
</ice:panelPopup>
<!-- End of popup panel -->
actionListener="#{measurementController.handleFilterOKButton}"></ice:commandButton>
<ice:outputLabel value="#{msgs['general.filterButtonText']}" />
</ice:panelGroup>
actionListener="#{measurementController.handleFilterResetButton}"></ice:commandButton>
<ice:outputLabel value="#{msgs['general.resetButtonText']}" />
</ice:panelGroup>
77
actionListener="#{measurementController.handlePreviewList}"></ice:commandButton>
<ice:outputLabel value="Preview List" style="font-weight:normal"/>
</ice:panelGroup>
title="First Page"/>
</f:facet>
<f:facet name="last">
<ice:graphicImage url="/xmlhttp/css/xp/css-images/arrow-last.gif"
style="border:none;"
title="Last Page"/>
</f:facet>
<f:facet name="previous">
<ice:graphicImage url="/xmlhttp/css/xp/css-images/arrow-previous.gif"
style="border:none;"
title="Previous Page"/>
</f:facet>
<f:facet name="next">
<ice:graphicImage url="/xmlhttp/css/xp/css-images/arrow-next.gif"
style="border:none;"
title="Next Page"/>
</f:facet>
<f:facet name="fastforward">
<ice:graphicImage url="/xmlhttp/css/xp/css-images/arrow-ff.gif"
style="border:none;"
title="Fast Forward"/>
</f:facet>
<f:facet name="fastrewind">
<ice:graphicImage url="/xmlhttp/css/xp/css-images/arrow-fr.gif"
style="border:none;"
title="Fast Backwards"/>
</f:facet>
</ice:dataPaginator>
<!-- Display counts about the table and the currently displayed page -->
<ice:dataPaginator id="eventListPaginatorInfo"
for="eventList"
rowsCountVar="rowsCount"
displayedRowsCountVar="displayedRowsCountVar"
firstRowIndexVar="firstRowIndex"
lastRowIndexVar="lastRowIndex"
pageCountVar="pageCount"
pageIndexVar="pageIndex">
<ice:outputFormat value="   {0} events found, displaying {1}
events, from {2} to {3}. Page {4}/{5}."
styleClass="pagination_info">
<f:param value="#{rowsCount}" />
<f:param value="#{displayedRowsCountVar}" />
<f:param value="#{firstRowIndex}" />
<f:param value="#{lastRowIndex}" />
<f:param value="#{pageIndex}" />
<f:param value="#{pageCount}" />
</ice:outputFormat>
</ice:dataPaginator>
</ice:panelGrid>
</div>
</td>
</tr>
</table>
<!-- End of Toolbar -->
sortColumn="#{measurementController.eventListDataModel.sortedColumnName}"
binding="#{measurementController.eventListDataTable}">
<ice:column>
<ice:rowSelector value="#{event.selected}" multiple="false" toggleOnClick="true"
selectionListener="#{measurementController.handleEventListSelection}" />
<f:facet name="header">
<ice:commandSortHeader
columnName="#{msgs['eventreg.eventlist.measurementCodeColumnName']}"
arrow="true">
<ice:outputText value="#{msgs['eventreg.eventlist.measurementCodeColumnText']}"/>
</ice:commandSortHeader>
</f:facet>
<ice:outputText value="#{event.measurementCode}">
</ice:outputText>
</ice:column>
<ice:column>
<f:facet name="header">
<ice:commandSortHeader
columnName="#{msgs['eventreg.eventlist.eventDateColumnName']}"
arrow="true">
<ice:outputText value="#{msgs['eventreg.eventlist.eventDateColumnText']}"/>
</ice:commandSortHeader>
</f:facet>
<ice:outputText value="#{event.eventDate}">
<f:convertDateTime type="both" timeZone="Asia/Jakarta"/>
</ice:outputText>
</ice:column>
<ice:column>
<f:facet name="header">
<ice:commandSortHeader
columnName="#{msgs['eventreg.eventlist.reportedDateColumnName']}"
arrow="true">
<ice:outputText value="#{msgs['eventreg.eventlist.reportedDateColumnText']}"/>
</ice:commandSortHeader>
</f:facet>
<ice:outputText value="#{event.reportedDate}">
<f:convertDateTime type="both" timeZone="Asia/Jakarta"/>
</ice:outputText>
</ice:column>
<ice:column>
<f:facet name="header">
<ice:commandSortHeader
columnName="#{msgs['eventreg.eventlist.locationSceneColumnName']}"
arrow="true">
<ice:outputText value="#{msgs['eventreg.eventlist.locationSceneColumnText']}"/>
</ice:commandSortHeader>
</f:facet>
<ice:outputText value="#{event.locationScene}"/>
</ice:column>
<ice:column>
<f:facet name="header">
<ice:commandSortHeader
columnName="#{msgs['eventreg.eventlist.caseShortDescriptionColumnName']}"
arrow="true">
<ice:outputText value="#{msgs['eventreg.eventlist.caseShortDescriptionColumnText']}"/>
</ice:commandSortHeader>
</f:facet>
<ice:outputText value="#{event.caseShortDescription}"/>
</ice:column>
<ice:column>
<f:facet name="header">
81
<ice:commandSortHeader
columnName="#{msgs['eventreg.eventlist.createByColumnName']}"
arrow="true">
<ice:outputText value="#{msgs['eventreg.eventlist.createByColumnText']}"/>
</ice:commandSortHeader>
</f:facet>
<ice:outputText value="#{event.userGet.fullname}"/>
</ice:column>
</ice:dataTable>
<div style="height:3px;width:100%;clear:both"><img src="" alt="" width="0" height="0" /></div>
<ice:panelCollapsible style="width:100%;"
expanded="true"
styleClass="pnlClpsblDemo"
binding="#{measurementController.detailPanelCollapsible}"
rendered="false">
<f:facet name="header">
<ice:panelGroup styleClass="expandableStateIndicator" >
<ice:outputText value="#{msgs['general.detailText']}"/>
</ice:panelGroup>
</f:facet>
<ice:panelGroup style="padding-top:5px;padding-bottom:5px;">
<ice:panelTabSet binding="#{measurementController.detailTabSet}"
tabChangeListener="#{measurementController.handleTabChange}"
style="width:99.5%"
id="detailPanelTabSet">
<d:dynamictab tabs="${measurementController.dynamicDetailTabs}"
backingBean="${measurementController}"/>
</ice:panelTabSet>
</ice:panelGroup>
</ice:panelCollapsible>
</ice:form>
</ui:define>
</ui:composition>
</html>
82