Bagaimana Menonaktifkan Tutup Tiket pada Saat Membalas dan Mengirim Catatan Internal di osTicket v1.6 RC5

Seseorang bertanya di Forum Diskusi osTicket mengenai bagaimana cara menonaktifkan setting fitur tutup tiket saat membalas di sisi staf pada Sistem osTicket. Karena belum ada yang membuatnya, maka saya langsung membuat modifikasi tersebut, sekalian pada fitur tutup tiket pada saat mengirim catatan internal. Modifikasi ini akan mengubah tabel department dengan menambahkan dua field baru untuk menyimpan setting close ticket on reply dan close ticket on post internal note. Oleh karena itu, Anda sekarang dapat menetapkan apakah ingin mengaktifkan atau menonaktifkan kedua setting tadi untuk departement tertentu untuk menampilkan atau menyembunyikan pilihan tadi pada halaman viewticket di sisi staf.

  1. Pertama sekali, ubah tabel ost_department dengan menggunakan skrip SQL berikut. Harap diperhatikan bahwa ost_ adalah nama awalan tabel. Awalan ini bisa saja berbeda dengan awalan tabel yang Anda gunakan. Jika berbeda, silahkan sesuaikan sendiri, dan harap maklum karenanya!

    ALTER TABLE ost_department
    ADD COLUMN `can_close_on_reply` tinyint(1) default 1 NOT NULL,
    ADD COLUMN `can_close_on_internal_note` tinyint(1) default 1 NOT NULL;
  2. Buka file \include\staff\dept.inc.php, dan cari kode ini:

    112
    
            <tr class="header"><td colspan=2>Autoresponders</td></tr>

    sebelum baris tersebut, tambahkan kode berikut ini:

    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    
            <!-- MOD Can Close on Reply and Internal Note, by Masino Sinaga, Nov 4, 2009 -->
            <tr class="header"><td colspan=2>Close Ticket</td></tr>
            <tr class="subheader"><td colspan=2>
                Close Ticket will give the ability to department members (staff and manager) whether they can close the ticket on reply and on post internal note or not.
                </td>
            </tr>
            <tr><th>Can Close on Reply:</th>
                <td>
                    <input type="radio" name="can_close_on_reply"  value="1"   <?=$info['can_close_on_reply']?'checked':''?> />Enable
                    <input type="radio" name="can_close_on_reply"  value="0"   <?=!$info['can_close_on_reply']?'checked':''?> />Disable
                </td>
            </tr>
            <tr><th>Can Close on Internal Note:</th>
                <td>
                    <input type="radio" name="can_close_on_internal_note"  value="1"   <?=$info['can_close_on_internal_note']?'checked':''?> />Enable
                    <input type="radio" name="can_close_on_internal_note"  value="0"   <?=!$info['can_close_on_internal_note']?'checked':''?> />Disable
                </td>
            </tr>
            <!-- MOD Can Close on Reply and Internal Note, by Masino Sinaga, Nov 4, 2009 -->
  3. Buka file \include\class.dept.php, dan cari kode ini:

    92
    93
    94
    
        function canAppendSignature() {
            return ($this->signature && $this->row['can_append_signature'])?true:false;
        }

    setelah baris terakhir kode tadi, tambahkan kode berikut ini:

    96
    97
    98
    99
    100
    101
    102
    103
    104
    
        // MOD Can Close on Reply and Internal Note, by Masino Sinaga, Nov 4, 2009
        function canCloseOnReply() {
            return $this->row['can_close_on_reply']?true:false;
        }
     
        function canCloseOnInternalNote() {
            return $this->row['can_close_on_internal_note']?true:false;
        }
        // MOD Can Close on Reply and Internal Note, by Masino Sinaga, Nov 4, 2009

    Cari lagi kode yang ini:

    247
    
                     ',can_append_signature='.db_input(isset($_POST['can_append_signature'])?1:0);

    lalu timpa dengan kode berikut:

    247
    248
    249
    
                     ',can_append_signature='.db_input(isset($_POST['can_append_signature'])?1:0).
                     ',can_close_on_reply='.db_input($_POST['can_close_on_reply']). // MOD Can Close on Reply, by Masino Sinaga, Nov 4, 2009
                     ',can_close_on_internal_note='.db_input($_POST['can_close_on_internal_note']); // MOD Can Close on Internal Note, by Masino Sinaga, Nov 4, 2009
  4. Buka file \include\staff\viewticket.inc.php, dan cari kode ini:

    328
    329
    330
    331
    
                            <div style="margin-top: 3px;">
                                <label for="ticket_status"><b>Ticket Status:</b></label>
                                <?
                                $checked=isset($info['ticket_status'])?'checked':''; //Staff must explicitly check the box to change status..

    sebelum baris pertama dari kode tadi, tambahkan kode berikut:

    327
    
    			<?php if ($dept->canCloseOnReply()) { // MOD Can Close for Dept basis, by Masino Sinaga, Nov 4, 2009 ?>

    Cari kode yang ini:

    337
    338
    339
    
                                <input type="checkbox" name="ticket_status" value="Reopen" <?=$checked?> > Reopen on Reply
                                <?}?>
                            </div>

    setelah baris terakhir dari kode tersebut, tambahkan kode ini:

    340
    
                            <?php } ?>

    Cari lagi kode ini:

    369
    370
    371
    372
    
                            <?
                             //When the ticket is assigned Allow assignee, admin or ANY dept manager to close it
                            if(!$ticket->isAssigned() || $thisuser->isadmin()  || $thisuser->isManager() || $thisuser->getId()==$ticket->getStaffId()) {
                             ?>

    setelah baris terakhir dari kode tersebut, tambahkan kode berikut:

    373
    
                             <?php if ($dept->canCloseOnInternalNote()) { // MOD Can Close for Dept basis, by Masino Sinaga, Nov 4, 2009 ?>

    Terakhir, cari lagi kode yang ini:

    381
    382
    383
    
                                <input type="checkbox" name="ticket_status" value="Reopen" <?=$checked?> > Reopen Ticket
                                <?}?>
                            </div>

    setelah baris terakhir dari kode tadi, tambahkan kode berikut:

    384
    
                            <?php } ?>

Selamat menikmati kode yang indah!

Share

319 kali dibacaCetak Artikel Ini Cetak Artikel Ini

Utarakan pikiran Anda

*


*