Subversion Repositories SmartDukaan

Rev

Rev 35606 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 35606 Rev 35626
Line 23... Line 23...
23
        getPartnerAheadOptions($("#typeaheadpartnernameforassignee"), function (selectedPartner) {
23
        getPartnerAheadOptions($("#typeaheadpartnernameforassignee"), function (selectedPartner) {
24
            $("#assignee-ticket-search-by-partner-name").data('id', selectedPartner.partnerId);
24
            $("#assignee-ticket-search-by-partner-name").data('id', selectedPartner.partnerId);
25
            $("#assignee-partner-name-input").val(selectedPartner.partnerId);
25
            $("#assignee-partner-name-input").val(selectedPartner.partnerId);
26
        });
26
        });
27
 
27
 
28
        $('#ticket-table thead tr').clone(true).appendTo('#ticket-table thead');
-
 
29
        $('#ticket-table thead tr:eq(1) th').each(function (i) {
-
 
30
            var title = $(this).text();
-
 
31
            $(this).html('<input type="text" style = "width:60%;" placeholder="Search ' + title + '" />');
-
 
32
 
-
 
33
            $('input', this).on('keyup change', function () {
-
 
34
                if (table.column(i).search() !== this.value) {
-
 
35
                    table
-
 
36
                            .column(i)
-
 
37
                            .search(this.value)
-
 
38
                            .draw();
-
 
39
                }
-
 
40
            });
-
 
41
        })
-
 
42
 
-
 
43
        var table = $('#ticket-table').DataTable({
-
 
44
            orderCellsTop: true,
-
 
45
            fixedHeader: true
-
 
46
        })
-
 
47
 
-
 
48
    });
28
    });
49
</script>
29
</script>
-
 
30
<style>
-
 
31
    .pagination-wrapper {
-
 
32
        display: flex;
-
 
33
        align-items: center;
-
 
34
        justify-content: space-between;
-
 
35
        padding: 10px 0;
-
 
36
        flex-wrap: wrap;
-
 
37
    }
-
 
38
    .pagination-wrapper .pagination {
-
 
39
        margin: 0;
-
 
40
    }
-
 
41
    .pagination-wrapper .page-size-select {
-
 
42
        width: auto;
-
 
43
        display: inline-block;
-
 
44
    }
-
 
45
    .pagination-info {
-
 
46
        color: #666;
-
 
47
    }
-
 
48
    .search-form {
-
 
49
        margin-bottom: 15px;
-
 
50
    }
-
 
51
    .search-form .form-group {
-
 
52
        margin-bottom: 0;
-
 
53
    }
-
 
54
    tr.ticket-unread {
-
 
55
        background-color: #f0f7ff !important;
-
 
56
        font-weight: bold;
-
 
57
    }
-
 
58
    tr.ticket-unread td {
-
 
59
        font-weight: bold;
-
 
60
    }
-
 
61
    .unread-badge {
-
 
62
        display: inline-block;
-
 
63
        width: 8px;
-
 
64
        height: 8px;
-
 
65
        background-color: #007bff;
-
 
66
        border-radius: 50%;
-
 
67
        margin-right: 4px;
-
 
68
        vertical-align: middle;
-
 
69
    }
-
 
70
    .last-activity-preview {
-
 
71
        font-size: 11px;
-
 
72
        color: #666;
-
 
73
        font-weight: normal;
-
 
74
        display: block;
-
 
75
        white-space: nowrap;
-
 
76
        overflow: hidden;
-
 
77
        text-overflow: ellipsis;
-
 
78
        max-width: 200px;
-
 
79
    }
-
 
80
</style>
50
#parse("activity-modal-styles.vm")
81
#parse("activity-modal-styles.vm")
51
<section class="wrapper">
82
<section class="wrapper">
52
    <div class="row">
83
    <div class="row">
53
        <div class="col-lg-12">
84
        <div class="col-lg-12">
54
            <h3 class="page-header"><i class="icon_document_alt"></i>TICKET</h3>
85
            <h3 class="page-header"><i class="icon_document_alt"></i>TICKET</h3>
Line 56... Line 87...
56
                <li><i class="fa fa-home"></i><a href="${rc.contextPath}/dashboard">Home</a></li>
87
                <li><i class="fa fa-home"></i><a href="${rc.contextPath}/dashboard">Home</a></li>
57
                <li><i class="icon_document_alt"></i>My Ticket</li>
88
                <li><i class="icon_document_alt"></i>My Ticket</li>
58
            </ol>
89
            </ol>
59
        </div>
90
        </div>
60
    </div>
91
    </div>
-
 
92
 
-
 
93
    ## Search Form
-
 
94
    <div class="row search-form">
-
 
95
        <div class="col-lg-12">
-
 
96
            <form id="ticket-search-form" class="form-inline" onsubmit="return false;">
-
 
97
                <div class="form-group">
-
 
98
                    <input type="text" id="ticket-search-input" class="form-control" style="width: 300px;"
-
 
99
                           placeholder="Search ticket ID, partner, category, creator..."
-
 
100
                           value="$!searchText">
-
 
101
                </div>
-
 
102
                <button type="submit" class="btn btn-primary" id="ticket-search-btn">Search</button>
-
 
103
                <a href="javascript:void(0)" class="btn btn-default" id="ticket-search-clear"
-
 
104
                   style="#if(!$searchText || $searchText == '')display:none;#end">Clear</a>
-
 
105
            </form>
-
 
106
        </div>
-
 
107
    </div>
-
 
108
 
61
    <div class="row">
109
    <div class="row">
62
        <div class="col-lg-2 form-group">
110
        <div class="col-lg-2 form-group">
63
            <select class="form-control input-sm" id="ticketStatus" name="ticketStatus" placeholder="Type">
111
            <select class="form-control input-sm" id="ticketStatus" name="ticketStatus" placeholder="Type">
64
                #foreach($ticketStatus in $ticketStatusValues)
112
                #foreach($ticketStatus in $ticketStatusValues)
65
                    #if($ticketStatus=="RESOLVED")
113
                    #if($ticketStatus=="RESOLVED")
Line 144... Line 192...
144
                </div>
192
                </div>
145
            </div>
193
            </div>
146
        #end
194
        #end
147
    </div>
195
    </div>
148
    </div>
196
    </div>
149
    <div id="my-ticket-table">
-
 
150
        <div class="row">
-
 
151
            <div class="col-lg-12">
-
 
152
                <table class="table table-border table-condensed table-bordered" id="ticket-table">
-
 
153
                    <thead>
-
 
154
                    <tr>
-
 
155
                        <th>Ticket Id</th>
-
 
156
                        #if($roleType)
-
 
157
                            <th>Partner</th>
-
 
158
                        #end
-
 
159
                        <th>Category</th>
-
 
160
                        <th>SubCategory</th>
-
 
161
                        <th>Message</th>
-
 
162
                        <th>Created By</th>
-
 
163
                        <th>Created TimeStamp</th>
-
 
164
                        #if($isCrmUser)
-
 
165
                            <th>Assign</th>
-
 
166
                        #end
-
 
167
                        #if($roleType)
-
 
168
                            <th>Action</th>
-
 
169
                        #else
-
 
170
                            <th>Action</th>
-
 
171
                        #end
-
 
172
                    </tr>
-
 
173
                    </thead>
-
 
174
                    <tbody>
-
 
175
                        #if($tickets.size()>0)
-
 
176
                            #foreach($ticket in $tickets)
-
 
177
                            <tr>
-
 
178
                                <td>$ticket.getId()</td>
-
 
179
                                #if($roleType)
-
 
180
                                    <td><a href="#" class="partner-link" data-fofoid="$ticket.getFofoId()">$fofoIdsAndCustomRetailer.get($ticket.getFofoId()).getBusinessName()</a></td>
-
 
181
                                #end
-
 
182
                                <td>$subCategoryIdAndCategoryMap.get($ticket.getSubCategoryId()).getName()</td>
-
 
183
 
197
 
184
                                <td><a href="#" data-toggle="modal" data-target="#myModal"
-
 
185
                                       data-ticketid="$ticket.getId()" data-internal="true" data-role="$roleType"
-
 
186
                                       data-crm="$isCrmUser" class="activities-link"
-
 
187
                                       data-assignee="#if($authUserIdAndAuthUserMap.get($ticket.getId()))$authUserIdAndAuthUserMap.get($ticket.getId()).getFirstName()#end">$subCategoryIdAndSubCategoryMap.get($ticket.getSubCategoryId()).getName()</a>
-
 
188
                                </td>
198
    <div id="ticket-content-area">
189
                                <td>#if($activityMap.get($ticket.getId()) && $activityMap.get($ticket.getId()).size() > 0)$activityMap.get($ticket.getId()).get(0).getMessage()#else
-
 
190
                                    -#end</td>
-
 
191
                                #if($activityMapWithActivityId.get($ticket.getFirstActivityId()).get(0).getCreatedBy() > 0)
-
 
192
                                    <td>$authUserMap.get($activityMapWithActivityId.get($ticket.getFirstActivityId()).get(0).getCreatedBy()).getFirstName() $authUserMap.get($activityMapWithActivityId.get($ticket.getFirstActivityId()).get(0).getCreatedBy()).getLastName()</td>
199
    #parse("ticket-content.vm")
193
                                #else
-
 
194
                                    <td>Partner</td>
-
 
195
                                #end
-
 
196
 
-
 
197
                                <td>$ticket.getFormattedCreateTimestamp()</td>
-
 
198
                                #if($isCrmUser)
-
 
199
                                    #if($ticket.getCloseTimestamp())
-
 
200
                                        <td><button class="btn btn-primary edit-ticket" data-ticketid1="$ticket.getId()" disabled>Edit</button></td>
-
 
201
                                    #else
-
 
202
                                        <td><button class="btn btn-primary edit-ticket" data-ticketid1="$ticket.getId()">Edit</button></td>
-
 
203
                                    #end
-
 
204
                                #end
-
 
205
                                #if($roleType)
-
 
206
                                    #if($ticket.getCloseTimestamp())
-
 
207
                                        <td>$ticket.getFormattedCloseTimestamp()</td>
-
 
208
                                    #else
-
 
209
                                        #if($ticket.getLastActivity()=="RESOLVED")
-
 
210
                                            <td>Resolved</td>
-
 
211
                                        #else
-
 
212
                                            ## CRM users can resolve any ticket
-
 
213
                                            ## Sales users can resolve their own Sales category tickets
-
 
214
                                            ## RBM users can resolve their own RBM category tickets
-
 
215
                                            #set($ticketCategoryId = $subCategoryIdAndCategoryMap.get($ticket.getSubCategoryId()).getId())
-
 
216
                                            #set($canResolve = $isCrmUser || ($isSalesUser && $ticketCategoryId == $salesCategoryId) || ($isRbmUser && $ticketCategoryId == $rbmCategoryId))
-
 
217
                                            #if($canResolve)
-
 
218
                                                <td>
-
 
219
                                                    <button class="btn btn-primary ticket-last-activity"
-
 
220
                                                            data-ticketid="$ticket.getId()" data-activity="$resolved"
-
 
221
                                                            data-partnername="$fofoIdsAndCustomRetailer.get($ticket.getFofoId()).getBusinessName()">
-
 
222
                                                        Resolved
-
 
223
                                                    </button>
-
 
224
                                                </td>
-
 
225
                                            #else
-
 
226
                                                <td><span class="label label-warning">Pending Resolution</span></td>
-
 
227
                                            #end
-
 
228
                                        #end
-
 
229
                                    #end
-
 
230
                                #else
-
 
231
                                    #if($ticket.getCloseTimestamp())
-
 
232
                                        <td>Closed</td>
-
 
233
                                    #else
-
 
234
                                        #if($ticket.getLastActivity()=="RESOLVED")
-
 
235
                                            <td>
-
 
236
                                                <button class="btn btn-primary ticket-last-activity"
-
 
237
                                                        data-ticketid="$ticket.getId()"
-
 
238
                                                        data-activity="$resolved-accepted">Accept
-
 
239
                                                </button>
-
 
240
                                                <button class="btn btn-danger ticket-last-activity"
-
 
241
                                                        data-ticketid="$ticket.getId()"
-
 
242
                                                        data-activity="$resolved-rejected">Reopen
-
 
243
                                                </button>
-
 
244
                                            </td>
-
 
245
                                        #else
-
 
246
                                            <td><span class="label label-info">In Progress</span></td>
-
 
247
                                        #end
-
 
248
                                    #end
-
 
249
                                #end
-
 
250
                            </tr>
-
 
251
                            #end
-
 
252
                        #else
-
 
253
                        <tr>
-
 
254
                            <td colspan="12" style="text-align:center;">NO MATCHING DATA FOUND FOR CRITERIA</td>
-
 
255
                        </tr>
-
 
256
                        #end
-
 
257
                    </tbody>
-
 
258
                </table>
-
 
259
            </div>
-
 
260
        </div>
-
 
261
    </div>
200
    </div>
262
 
201
 
263
</section>
202
</section>
264
<div id="ticket-details-container" style="background:white;background-color:white;">
203
<div id="ticket-details-container" style="background:white;background-color:white;">
265
</div>
204
</div>