Sfoglia il codice sorgente

API's Notifications, tasks list Loading

Sai Sudheer 2 anni fa
parent
commit
b92cc09bf3
4 ha cambiato i file con 187 aggiunte e 59 eliminazioni
  1. 23
    3
      assets/css/list.page.css
  2. 45
    7
      assets/js/base.js
  3. 116
    17
      assets/js/list.index.js
  4. 3
    32
      authentication/index.html

+ 23
- 3
assets/css/list.page.css Vedi File

@@ -1,8 +1,8 @@
1 1
 @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');
2 2
 :root {
3 3
     --topNavHeight: 75px;
4
-    --rtrWidth: 60px;
5
-    --lftWidth: 300px;
4
+    --rtrWidth: 50px;
5
+    --lftWidth: 275px;
6 6
     --tpMenuPad: 30px;
7 7
     --icnPadng: 10px 0px;
8 8
     --prmBgColor: rgb(244, 244, 221);
@@ -135,6 +135,7 @@ li.logo-li {
135 135
 
136 136
 .ctr-lst-pge {
137 137
     position: fixed;
138
+    z-index: 2;
138 139
     left: var(--lftWidth);
139 140
     right: var(--rtrWidth);
140 141
     height: inherit;
@@ -261,4 +262,23 @@ a.badge {
261 262
 }
262 263
 
263 264
 
264
-/* Scroll bar End Here */
265
+/* Scroll bar End Here */
266
+
267
+.accordion-button::after {
268
+    background-size: 0.9rem !important;
269
+    ;
270
+}
271
+
272
+a[role="button"]:focus {
273
+    box-shadow: none !important;
274
+}
275
+
276
+#notifi-list .item-li:first .accordion-button:not(.collapsed) {
277
+    border-top-left-radius: var(--lstPgArc);
278
+    border-top-right-radius: var(--lstPgArc);
279
+}
280
+
281
+input[type="checkbox"] {
282
+    box-shadow: none !important;
283
+    border-radius: 2px;
284
+}

+ 45
- 7
assets/js/base.js Vedi File

@@ -1,4 +1,4 @@
1
-const serverUrl = 'https://test.bizgaze.app/';
1
+const serverUrl = 'https://c01.bizgaze.app/';
2 2
 let _baseUserInfo = atob(document.cookie.split('=')[1]);
3 3
 let baseUserInfo = JSON.parse(_baseUserInfo).result;
4 4
 let baseSessionId = baseUserInfo.sessionId;
@@ -25,12 +25,50 @@ function getData(url) {
25 25
     });
26 26
 }
27 27
 
28
-function formatLocal(dateTime) {
29
-    var date = moment.utc(dateTime).local();
30
-    var difmonths = moment().diff(date, 'months');
28
+function getDataObj(url, data, async, type) { //url, data, true, "POST"
29
+
30
+    let serviceurl = serverUrl + url;
31
+    return $.ajax({
32
+        type: type,
33
+        url: serviceurl,
34
+        data: JSON.stringify(data),
35
+        contentType: 'application/json',
36
+        traditional: true,
37
+        crossDomain: true,
38
+        async: async,
39
+        beforeSend: function(xhr) {
40
+            if (baseUserInfo != undefined && baseUserInfo != null) {
41
+                xhr.setRequestHeader('Authorization', 'Basic ' + baseSessionId);
42
+                xhr.setRequestHeader('geoposition', 0 + ':' + 0);
43
+            }
44
+        }
45
+    });
46
+}
31 47
 
32
-    if (difmonths == 0) {
33
-        return this.formatPeriod(date);
48
+function formatLocal(dateTime) {
49
+    var hou = new Date(dateTime).getHours(),
50
+        sec, min, day, month, years;
51
+    if (hou < 24) {
52
+        min = new Date(dateTime).getMinutes();
53
+        if (min < 60) {
54
+            sec = new Date(dateTime).getSeconds();
55
+            if (sec < 60) {
56
+                return sec + ' Seconds';
57
+            }
58
+        } else {
59
+            return min + ' Minutes';
60
+        }
61
+        return hou + ' Hours';
62
+    } else { //24 >
63
+        day = new Date(dateTime).getHours();
64
+        if (day > 31) { // 31 day
65
+            month = new Date(dateTime).getMonth();
66
+            if (month > 12) { // 12 months
67
+                years = new Date(dateTime).getFullYear();
68
+                return years + ' Years';
69
+            }
70
+            return month + ' month';
71
+        }
72
+        return day + ' day';
34 73
     }
35
-    return date.format("DD MMM, YYYY HH:mm");
36 74
 }

+ 116
- 17
assets/js/list.index.js Vedi File

@@ -14,27 +14,126 @@ $('.uindtls').html(usrinfoHTML)
14 14
 // List Page loading
15 15
 getData('apis/v4/unibase/reminders/platform/getunreadreminders/ReminderType/6/PageSize/20').then(function(result) {
16 16
     let response = JSON.parse(result.result);
17
-    let bdyUI = '';
18
-    for (var i = 0; i < response.length; i++) {
19
-        bdyUI += `<li class="d-flex flex-row m-0 p-0 bg-white border-bottom" data-installedAppId="${response[i].RedirectOptions.InstalledAppId}" data-formId="${response[i].RedirectOptions.CreateFormId}">
20
-                    <img src="../assets/imgs/notification.png" class="img-fluid h-75 p-1" >
21
-                    <div class="d-flex flex-column">
22
-                        <div class="d-flex justify-content-between">
23
-                            <div class="d-flex flex-column">
24
-                                <span>${response[i].Subject}</span>
25
-                                <span>${response[i].Message}</span>
17
+    if (response.length != 0) { // Notifcations
18
+        let bdyUI = '<div class="accordion" id="notifi-list">';
19
+        for (var i = 0; i < response.length; i++) {
20
+            bdyUI += `<li class="item-li" id="${response[i].ReminderId}" data-ref="${response[i].RedirectOptions.RefId}" data-installedAppId="${response[i].RedirectOptions.InstalledAppId}" data-formId="${response[i].RedirectOptions.CreateFormId}">
21
+                        <div class="accordion-header" id="accHeader-${response[i].ReminderId}">
22
+                            <div class="notifiListItms accordion-button collapsed" data-bs-toggle="collapse"  data-bs-target="#collapse-${response[i].ReminderId}" aria-expanded="false" aria-controls="collapseOne">
23
+                                <div class="row m-0 w-100 p-0 ">
24
+                                    <div class="col-1 ">
25
+                                        <input class="form-check-input mx-1" type="checkbox" value="" id="flexCheckDefault">
26
+                                    </div>
27
+                                    <div class="col-4 text-truncate">
28
+                                        <span class="mx-1">${response[i].Subject}</span>
29
+                                    </div>
30
+                                    <div class="col-5 text-truncate">
31
+                                        <span class="mx-1">${response[i].Message}</span>
32
+                                    </div>
33
+                                    <div class="col-2 text-truncate">
34
+                                        <span class="mx-1">${formatLocal(response[i].ReminderDate)}</span>
35
+                                    </div>
36
+                                </div>    
37
+                            </div>
38
+                            <div id="collapse-${response[i].ReminderId}"  class="accordion-collapse collapse" aria-labelledby="accHeader-${response[i].ReminderId}" data-bs-parent="#notifi-list">
39
+                                <div class="accordion-body" id="accBody${response[i].ReminderId}">
40
+                                    
41
+                                </div>
26 42
                             </div>
27
-                            <input class="form-check-input" type="checkbox" value="" id="flexCheckDefault">
28
-                        </div>
29
-                        <div class="d-flex justify-content-between mt-2">
30
-                            <span>21 days</span>
31
-                            <span>Mark as read</span>
32 43
                         </div>
33
-                    </div>
34
-                </li>`;
44
+                    </li>`;
45
+        }
46
+        bdyUI += '</div>'
47
+        $('.bdy-ul').append(bdyUI);
48
+        $('.notifiListItms').on('click', function() {
49
+            let _this = $(this).parents('.item-li');
50
+            let obj = { "FromDate": "2022/11/30", "InstalledAppId": Number($(_this).attr('data-installedAppId')), "RecordId": Number($(_this).attr('data-ref')), "ToDate": "2022/11/30" };
51
+            //let obj = { "FromDate": "2022/11/30", "InstalledAppId": 102530270000109, "RecordId": 102533490346298, "ToDate": "2022/11/30" };
52
+            getDataObj('apis/v4/unibase/platform/widgets/getdefaultwidget', obj, true, "POST").then(function(response) {
53
+                let res = JSON.parse(response.result),
54
+                    html = '';
55
+                if (response.message == '200' && response.errors == null) {
56
+                    html = `<ul class="p-0 m-0 d-flex flex-row">`;
57
+                    if (res.AppConfigurations != null && res.AppConfigurations.length > 0) {
58
+                        for (var k = 0; k < res.AppConfigurations.length; k++) {
59
+                            html += `<li class="mx-2 btn-outline-primary btn btn-sm">${res.AppConfigurations[k].SettingName}</li>`;
60
+                        }
61
+                    } else {
62
+                        html += `<li class="p-1 my-0 alert alert-danger" role="alert">
63
+                            App Configurations Not configure
64
+                        </li>`;
65
+                    }
66
+                    if (res.Stages != null) {
67
+                        for (var x = 0; x < res.Stages.length; x++) {
68
+                            if (res.Stages[x].IsDefault) {
69
+                                html += `<li class="ml-auto">
70
+                                            <a class="btn btn-sm btn-secondary dropdown-toggle" href="javascript:void(0)" role="button" data-bs-toggle="dropdown" aria-expanded="false">
71
+                                            ${res.Stages[x].StageName}
72
+                                            </a>
73
+                                            <ul class="dropdown-menu">`;
74
+                            }
75
+                        }
76
+                        for (var i = 0; i < res.Stages.length; i++) {
77
+                            if (!res.Stages[i].IsDefault) {
78
+                                html += `<li><a class="dropdown-item" href="javascript:void(0);">${res.Stages[i].StageName}</a></li>`;
79
+                            }
80
+                        }
81
+                        html += '</ul></li>'
82
+                    } else {
83
+                        html += `<li class="p-1 my-0 alert alert-danger ml-auto" role="alert">
84
+                                No Stages
85
+                            </li>`;
86
+                    }
87
+                    html += `</ul>`;
88
+                } else {
89
+                    html += `<div class="alert alert-danger" role="alert">
90
+                                ${response.message} ${response.errors}
91
+                            </div>`
92
+                }
93
+                $(_this).find('.accordion-body').html(html);
94
+            });
95
+        })
35 96
     }
36
-    $('.bdy-ul').html(bdyUI);
37 97
 })
98
+getData('apis/v4/unibase/reminders/platform/getunreadreminders/ReminderType/1/PageSize/20').then(function(tskResp) {
99
+    let response = JSON.parse(tskResp.result)
100
+    if (response.length != 0) {
101
+        let _tskhtml = '<div class="accordion" id="task-list">';
102
+        for (var i = 0; i < response.length; i++) {
103
+            _tskhtml += `<li class="item-li" id="${response[i].ReminderId}" data-ref="${response[i].RedirectOptions.RefId}" data-installedAppId="${response[i].RedirectOptions.InstalledAppId}" data-formId="${response[i].RedirectOptions.CreateFormId}">
104
+                            <div class="accordion-header" id="accHeader-${response[i].ReminderId}">
105
+                                <div class="tskListItms accordion-button collapsed" data-bs-toggle="collapse"  data-bs-target="#collapse-${response[i].ReminderId}" aria-expanded="false" aria-controls="collapseOne">
106
+                                    <div class="row m-0 w-100 p-0 ">
107
+                                        <div class="col-1 ">
108
+                                            <input class="form-check-input mx-1" type="checkbox" value="" id="flexCheckDefault">
109
+                                        </div>
110
+                                        <div class="col-4 text-truncate">
111
+                                            <span class="mx-1">${response[i].Subject}</span>
112
+                                        </div>
113
+                                        <div class="col-5 text-truncate">
114
+                                            <span class="mx-1">${response[i].Message}</span>
115
+                                        </div>
116
+                                        <div class="col-2 text-truncate">
117
+                                            <span class="mx-1">${formatLocal(response[i].ReminderDate)}</span>
118
+                                        </div>
119
+                                    </div>    
120
+                                </div>
121
+                                <div id="collapse-${response[i].ReminderId}"  class="accordion-collapse collapse" aria-labelledby="accHeader-${response[i].ReminderId}" data-bs-parent="#notifi-list">
122
+                                    <div class="accordion-body" id="accBody${response[i].ReminderId}">
123
+                                        <ul class="p-0 m-0 d-flex flex-row justify-content-between">
124
+                                            <li class="mx-2 btn-outline-success btn btn-sm">Confirm</li>
125
+                                            <li class="mx-2 btn-outline-danger btn btn-sm">Reject</li>
126
+                                            <li class="mx-2 btn-outline-primary btn btn-sm">Close</li>
127
+                                        </ul>
128
+                                    </div>
129
+                                </div>
130
+                            </div>
131
+                        </li>`;
132
+        }
133
+        _tskhtml += '</div>'
134
+        $('.bdy-ul').append(_tskhtml);
135
+    }
136
+});
38 137
 
39 138
 /*Data  loading  start here*/
40 139
 $('.mnNvIcn').click(function() {

+ 3
- 32
authentication/index.html Vedi File

@@ -68,36 +68,7 @@
68 68
             <div class="ctr-lst-pge">
69 69
 
70 70
                 <ul class="m-0 p-0 bdy-ul">
71
-                    <li class="row m-0 bdy">
72
-                        <div class="col-2">TS10875</div>
73
-                        <div class="col-3">
74
-                            Bizgaze Pvt Limited
75
-                        </div>
76
-                        <div class="col-4 text-truncate">Lorem Ipsum is simply dummy text of the printing industry.</div>
77
-                        <div class="col-2">
78
-                            <a class="badge badge-soft-green" href="javascript:;" role="button" data-bs-toggle="dropdown" aria-expanded="false">
79
-                                Draft
80
-                            </a>
81
-
82
-                            <ul class="dropdown-menu">
83
-                                <li><a href="javascript:;" class="dropdown-item">Confirmed</a></li>
84
-                                <li><a href="javascript:;" class="dropdown-item">Cancelled</a></li>
85
-                                <li><a href="javascript:;" class="dropdown-item">Active</a></li>
86
-                            </ul>
87
-                        </div>
88
-                        <div class="col-1 d-flex justify-content-end">
89
-                            <a class="" href="javascript:;" aria-expanded="false">
90
-                                <i class="la la-ellipsis-v"></i>
91
-                            </a>
92
-
93
-                            <ul class="dropdown-menu">
94
-                                <li><a href="javascript:;" class="dropdown-item">Confirmed</a></li>
95
-                                <li><a href="javascript:;" class="dropdown-item">Cancelled</a></li>
96
-                                <li><a href="javascript:;" class="dropdown-item">Active</a></li>
97
-                            </ul>
98
-
99
-                        </div>
100
-                    </li>
71
+                    <!-- binding -->
101 72
                 </ul>
102 73
             </div>
103 74
             <div class="rtr-nav-bar">
@@ -112,7 +83,7 @@
112 83
 </body>
113 84
 <script src="../assets/js/jquery/jquery-3.6.1.min.js"></script>
114 85
 <script src="../assets/js/bootstrap/bootstrap.bundle.min.js"></script>
115
-<script src="../assets/js/base.js"></script>
116
-<script src="../assets/js/list.index.js"></script>
86
+<script src="../assets/js/base.js" async></script>
87
+<script src="../assets/js/list.index.js" async></script>
117 88
 
118 89
 </html>

Loading…
Annulla
Salva