Commit 6a15d87683ac22f763a1f57cc66d3fa5126b2a6b
1 parent
3a1848e5
Exists in
master
Notification
Showing
7 changed files
with
59 additions
and
30 deletions
Show diff stats
install/database/schema.sql
... | ... | @@ -749,6 +749,7 @@ CREATE TABLE IF NOT EXISTS `core_notifications` ( |
749 | 749 | `id` int(11) NOT NULL AUTO_INCREMENT, |
750 | 750 | `id_itc` int(11), |
751 | 751 | `title` varchar(255) NOT NULL, |
752 | + `from` varchar(128) DEFAULT "OPENS", | |
752 | 753 | `message` text NOT NULL, |
753 | 754 | `creation_date` datetime NOT NULL, |
754 | 755 | `read` boolean DEFAULT false, | ... | ... |
install/database/system_data.sql
... | ... | @@ -88,4 +88,4 @@ INSERT INTO `regras_negocio` VALUES ('',0,'Internas - Ramal para Ramal','G:all', |
88 | 88 | INSERT INTO `regras_negocio_actions` VALUES (1,0,'PBX_Rule_Action_CCustos'),(1,1,'PBX_Rule_Action_DiscarRamal'); |
89 | 89 | INSERT INTO `regras_negocio_actions_config` VALUES (1,0,'ccustos','9'),(1,1,'allow_voicemail','false'),(1,1,'dial_flags','twk'),(1,1,'dial_timeout','60'),(1,1,'diff_ring','false'),(1,1,'dont_overflow','false'),(1,1,'resolv_agent','false'); |
90 | 90 | |
91 | -INSERT INTO `core_config` (`config_module`, `config_name`, `config_value`) VALUES ('CORE', 'HOST_NOTIFICATION', 'http://api.opens.com.br:3003/notifications/last_id/'); | |
91 | +INSERT INTO `core_config` (`config_module`, `config_name`, `config_value`) VALUES ('CORE', 'HOST_NOTIFICATION', 'http://api.opens.com.br:3003/notifications'); | ... | ... |
lib/Snep/Notifications.php
... | ... | @@ -174,14 +174,17 @@ class Snep_Notifications { |
174 | 174 | * @param <string> $title |
175 | 175 | * @param <string> $notification |
176 | 176 | */ |
177 | - public function addNotification($title,$message,$id_itc) { | |
177 | + public function addNotification($title,$message,$id_itc,$costumer) { | |
178 | 178 | |
179 | 179 | $db = Zend_Registry::get('db'); |
180 | 180 | |
181 | + ($costumer == 68) ? $from = "OPENS" : $from = "INTEGRADOR"; | |
182 | + | |
181 | 183 | $insert_data = array('title' => $title, |
182 | 184 | 'message' => $message, |
183 | 185 | 'id_itc' => $id_itc, |
184 | - 'creation_date' => date('Y-m-d H:i:s')); | |
186 | + 'creation_date' => date('Y-m-d H:i:s'), | |
187 | + 'from' => $from); | |
185 | 188 | |
186 | 189 | $db->insert('core_notifications', $insert_data); |
187 | 190 | |
... | ... | @@ -238,5 +241,19 @@ class Snep_Notifications { |
238 | 241 | } |
239 | 242 | } |
240 | 243 | |
244 | + /** | |
245 | + * Method to update a lastNotification | |
246 | + * @param <int> $id | |
247 | + */ | |
248 | + public function updateLastNotification($id) { | |
249 | + | |
250 | + $db = Zend_Registry::get('db'); | |
251 | + | |
252 | + $update_data = array('config_value' => $id); | |
253 | + | |
254 | + $db->update("core_config", $update_data, "config_name = 'LAST_ID_NOTIFICATION'"); | |
255 | + | |
256 | + } | |
257 | + | |
241 | 258 | } |
242 | 259 | ?> | ... | ... |
modules/default/controllers/IndexController.php
... | ... | @@ -199,7 +199,7 @@ class IndexController extends Zend_Controller_Action { |
199 | 199 | |
200 | 200 | $title = $this->view->translate('Welcome to Intercomunexão.'); |
201 | 201 | $message = $this->view->translate('By registering your SNEP, you connect to the portal of Intercomunexão. Portal where you will have access to exclusive solutions, high-quality support and a constantly evolving technology. <br>Access: itc.opens.com.br'); |
202 | - Snep_Notifications::addNotification($title,$message); | |
202 | + Snep_Notifications::addNotification($title,$message,1,"OPENS"); | |
203 | 203 | |
204 | 204 | // go to snep |
205 | 205 | $_SESSION['registered'] = true; |
... | ... | @@ -277,19 +277,22 @@ class IndexController extends Zend_Controller_Action { |
277 | 277 | $this->view->breadcrumb = Snep_Breadcrumb::renderPath(array( |
278 | 278 | $this->view->translate("Dashboard"))); |
279 | 279 | |
280 | + $configs = Snep_Config::getConfiguration('CORE','HOST_NOTIFICATION'); | |
281 | + | |
280 | 282 | // get last_id_notification if exists |
281 | 283 | $idLastNotification = Snep_Config::getConfiguration("CORE", "LAST_ID_NOTIFICATION"); |
282 | 284 | if($idLastNotification){ |
283 | - $idLastNotification = $idLastNotification["config_value"]; | |
285 | + | |
286 | + $idLastNotification = $idLastNotification["config_value"]; | |
287 | + $url = $configs["config_value"]."/last_id/".$idLastNotification."/UUID/".$_SESSION["uuid"]; | |
288 | + | |
284 | 289 | }else{ |
285 | - $idLastNotification = Snep_Notifications::getDateLastNotification(); | |
286 | - } | |
287 | 290 | |
288 | - $configs = Snep_Config::getConfiguration('CORE','HOST_NOTIFICATION'); | |
291 | + $dateNotification = date("Y-m-d"); | |
292 | + $url = $configs["config_value"]."/date/".$dateNotification."/UUID/".$_SESSION["uuid"]; | |
293 | + } | |
289 | 294 | |
290 | 295 | // get notification in itc |
291 | - $url = $configs["config_value"].$idLastNotification."/UUID/".$_SESSION["uuid"]; | |
292 | - | |
293 | 296 | $http = curl_init($url); |
294 | 297 | |
295 | 298 | curl_setopt($http, CURLOPT_SSL_VERIFYPEER, false); |
... | ... | @@ -304,8 +307,23 @@ class IndexController extends Zend_Controller_Action { |
304 | 307 | |
305 | 308 | $notifications = json_decode($http_response); |
306 | 309 | foreach($notifications as $item => $notification){ |
307 | - Snep_Notifications::addNotification(utf8_decode($notification->title),utf8_decode($notification->message),$notification->id); | |
310 | + $lastId = $notification->id; | |
311 | + | |
312 | + Snep_Notifications::addNotification(utf8_decode($notification->title),utf8_decode($notification->message),$notification->id,$notification->id_costumer); | |
308 | 313 | } |
314 | + | |
315 | + if(isset($lastId)){ | |
316 | + | |
317 | + // get last_id_notification if exists | |
318 | + $idLastNotification = Snep_Config::getConfiguration("CORE", "LAST_ID_NOTIFICATION"); | |
319 | + if($idLastNotification){ | |
320 | + Snep_Notifications::updateLastNotification($lastId); | |
321 | + }else{ | |
322 | + Snep_Notifications::addLastNotification($lastId); | |
323 | + } | |
324 | + | |
325 | + } | |
326 | + | |
309 | 327 | break; |
310 | 328 | case 500: |
311 | 329 | |
... | ... | @@ -314,7 +332,7 @@ class IndexController extends Zend_Controller_Action { |
314 | 332 | |
315 | 333 | $title = $this->view->translate('Warning'); |
316 | 334 | $message = $this->view->translate('Internal Server Error. <br> To receive notifications about new features, modules and related news Snep you must be connected to an internet network. Check your connection and try again.'); |
317 | - Snep_Notifications::addNotification($title,$message); | |
335 | + Snep_Notifications::addNotification($title,$message,1,"OPENS"); | |
318 | 336 | } |
319 | 337 | |
320 | 338 | break; |
... | ... | @@ -325,7 +343,7 @@ class IndexController extends Zend_Controller_Action { |
325 | 343 | |
326 | 344 | $title = $this->view->translate('Warning'); |
327 | 345 | $message = $this->view->translate('Error notifications.<br> To receive notifications about new features, modules and related news Snep you must be connected to an internet network. Check your connection and try again.'); |
328 | - Snep_Notifications::addNotification($title,$message); | |
346 | + Snep_Notifications::addNotification($title,$message,1,"OPENS"); | |
329 | 347 | } |
330 | 348 | |
331 | 349 | break; |
... | ... | @@ -336,7 +354,7 @@ class IndexController extends Zend_Controller_Action { |
336 | 354 | |
337 | 355 | $title = $this->view->translate('Warning'); |
338 | 356 | $message = $this->view->translate("Error: Code ") . $httpcode . $this->view->translate(". Please contact the administrator for receiver notifications."); |
339 | - Snep_Notifications::addNotification($title,$message); | |
357 | + Snep_Notifications::addNotification($title,$message,"OPENS"); | |
340 | 358 | } |
341 | 359 | break; |
342 | 360 | } | ... | ... |
modules/default/controllers/NotificationsController.php
... | ... | @@ -135,10 +135,6 @@ class NotificationsController extends Zend_Controller_Action { |
135 | 135 | |
136 | 136 | $idLastNotification = Snep_Notifications::getDateLastNotification(); |
137 | 137 | |
138 | - // update last notification in config_core | |
139 | - Snep_Notifications::removeLastNotification(); | |
140 | - Snep_Notifications::addLastNotification($idLastNotification); | |
141 | - | |
142 | 138 | // remove notification |
143 | 139 | Snep_Notifications::removeNotification($id); |
144 | 140 | ... | ... |
modules/default/views/layouts/layout.phtml
... | ... | @@ -67,26 +67,20 @@ |
67 | 67 | <li class="dropdown"> |
68 | 68 | |
69 | 69 | <?php $noView = Snep_Notifications::getNoView(); |
70 | + | |
70 | 71 | if($noView){?> |
71 | 72 | |
72 | - <a class="dropdown-toggle new-notification" data-toggle="dropdown" href="#"><?php echo count($noView)?> | |
73 | + <a class="dropdown-toggle new-notification" href="<?php echo $this->baseUrl()."/index.php/notifications?id=all";?>"><?php echo count($noView)?> | |
73 | 74 | |
74 | 75 | <?php }else{?> |
75 | 76 | |
76 | - <a class="dropdown-toggle" data-toggle="dropdown" href="#"> | |
77 | + <a class="dropdown-toggle" href="<?php echo $this->baseUrl()."/index.php/notifications?id=all" ?>" > | |
77 | 78 | |
78 | 79 | <?php } ?> |
79 | 80 | |
80 | - <i class="fa fa-envelope fa-fw"></i> <i class="fa fa-caret-down"></i> | |
81 | + <i class="fa fa-envelope fa-fw"></i> | |
81 | 82 | </a> |
82 | - <ul class="dropdown-menu dropdown-messages"> | |
83 | - | |
84 | - <?php | |
85 | - echo Snep_Notifications::getNotifications($this->baseUrl()); | |
86 | - ?> | |
87 | - | |
88 | - | |
89 | - </ul> | |
83 | + | |
90 | 84 | |
91 | 85 | </li> |
92 | 86 | ... | ... |
modules/default/views/scripts/notifications/index.phtml
... | ... | @@ -33,6 +33,7 @@ $this->headLink()->appendStylesheet( $this->baseUrl() . "/css/index.css"); |
33 | 33 | <thead> |
34 | 34 | <tr> |
35 | 35 | |
36 | + <th><?php echo $this->translate('Remetente');?></th> | |
36 | 37 | <th><?php echo $this->translate('Notification');?></th> |
37 | 38 | <th data-sort-ignore="true"><?php echo $this->translate('Date');?></th> |
38 | 39 | <th colspan="2" class="text-center" data-sort-ignore="true"><?php echo $this->translate('Actions');?></th> |
... | ... | @@ -46,12 +47,14 @@ $this->headLink()->appendStylesheet( $this->baseUrl() . "/css/index.css"); |
46 | 47 | |
47 | 48 | <tr> |
48 | 49 | <?php if($notification['read'] == '1'){?> |
49 | - | |
50 | + | |
51 | + <td> <?php echo $notification['from'] ?> </td> | |
50 | 52 | <td> <?php echo $notification['title'] ." - ". substr($notification['message'], 0,60)."..." ?> </td> |
51 | 53 | <td> <?php echo date("d/m/Y G:i:s", strtotime($notification['creation_date'])) ?> </td> |
52 | 54 | |
53 | 55 | <?php }else{?> |
54 | 56 | |
57 | + <td class="bold"> <?php echo $notification['from'] ?> </td> | |
55 | 58 | <td class="bold"> <?php echo $notification['title'] ." - ". substr($notification['message'], 0,60)."..." ?> </td> |
56 | 59 | <td class="bold"> <?php echo date("d/m/Y G:i:s", strtotime($notification['creation_date'])) ?> </td> |
57 | 60 | ... | ... |