You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by nd...@apache.org on 2016/05/03 21:16:26 UTC
[1/3] airavata-php-gateway git commit: Notification System
modifications
Repository: airavata-php-gateway
Updated Branches:
refs/heads/develop cfdd5399d -> a84b53a98
Notification System modifications
Project: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/commit/b01d107d
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/b01d107d
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/b01d107d
Branch: refs/heads/develop
Commit: b01d107d708e873838300587caefa67d3bb74f1c
Parents: f9fc016
Author: Nipurn Doshi <ni...@gmail.com>
Authored: Tue May 3 11:25:18 2016 -0400
Committer: Nipurn Doshi <ni...@gmail.com>
Committed: Tue May 3 11:25:18 2016 -0400
----------------------------------------------------------------------
app/controllers/AdminController.php | 10 +-
app/libraries/AdminUtilities.php | 18 ++-
app/libraries/CommonUtilities.php | 72 ++++++------
app/views/admin/manage-notices.blade.php | 162 +++++++++++++++-----------
public/js/time-conversion.js | 2 +
5 files changed, 148 insertions(+), 116 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/b01d107d/app/controllers/AdminController.php
----------------------------------------------------------------------
diff --git a/app/controllers/AdminController.php b/app/controllers/AdminController.php
index dae85b4..6d2c7ea 100644
--- a/app/controllers/AdminController.php
+++ b/app/controllers/AdminController.php
@@ -370,8 +370,9 @@ class AdminController extends BaseController {
public function noticesView(){
Session::put("admin-nav", "notices");
$notices = array();
+ $noticePriorities = CommonUtilities::get_notice_priorities();
$notices = array_reverse( CommonUtilities::get_all_notices() );
- return View::make("admin/manage-notices", array("notices" => $notices));
+ return View::make("admin/manage-notices", array("notices" => $notices, "priorities" => $noticePriorities));
}
public function addNotice(){
@@ -382,12 +383,7 @@ class AdminController extends BaseController {
public function updateNotice(){
$inputs = Input::all();
- if( AdminUtilities::add_or_update_notice( $inputs, true))
- {
- return 1;
- }
- else
- return 0;
+ return AdminUtilities::add_or_update_notice( $inputs, true);
}
public function deleteNotice(){
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/b01d107d/app/libraries/AdminUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/AdminUtilities.php b/app/libraries/AdminUtilities.php
index 23994e0..64dfbc2 100644
--- a/app/libraries/AdminUtilities.php
+++ b/app/libraries/AdminUtilities.php
@@ -2,6 +2,7 @@
use Airavata\Model\Workspace\Gateway;
use Airavata\Model\Workspace\Notification;
+use Airavata\Model\Workspace\NotificationPriority;
class AdminUtilities
{
@@ -115,16 +116,21 @@ class AdminUtilities
$notification = new Notification();
$notification->gatewayId = Session::get("gateway_id");
$notification->title = $notifData["title"];
- $notification->notifcationMessage = $notifData["notificationMessage"];
- $notification->publishedtime = strtotime( $notifData["publishedtime"])* 1000;
+ $notification->notificationMessage = $notifData["notificationMessage"];
+ $notification->publishedTime = strtotime( $notifData["publishedTime"])* 1000;
$notification->expirationTime = strtotime( $notifData["expirationTime"]) * 1000;
+ $notification->priority = intval($notifData["priority"]);
if( $update){
$notification->notificationId = $notifData["notificationId"];
- return Airavata::getNotification(
- Session::get('authz-token'),
- Session::get("gateway_id"),
- Airavata::updateNotification( Session::get("authz-token"), $notification) );
+ if( Airavata::updateNotification( Session::get("authz-token"), $notification) )
+ {
+ return json_encode( Airavata::getNotification( Session::get('authz-token'),
+ Session::get("gateway_id"),
+ $notifData["notificationId"] ));
+ }
+ else
+ 0;
}
else
return Airavata::getNotification(
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/b01d107d/app/libraries/CommonUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/CommonUtilities.php b/app/libraries/CommonUtilities.php
index d5ce6c0..fed4c17 100644
--- a/app/libraries/CommonUtilities.php
+++ b/app/libraries/CommonUtilities.php
@@ -1,5 +1,6 @@
<?php
use Airavata\Model\Workspace\Notification;
+use Airavata\Model\Workspace\NotificationPriority;
class CommonUtilities
{
@@ -230,41 +231,42 @@ class CommonUtilities
public static function get_notices_ui( $notices){
- $notifVisibility = "";
- $countOfNotices = count( $notices);
- $newNotices = 0;
- if( Session::has("notice-count")){
- $newNotices = $countOfNotices - Session::get("notice-count");
- if( !$newNotices)
- $notifVisibility = "hide";
- }
- else
- $newNotices = count( $notices);
-
- $noticesUI = '<li clas="dropdown" style="color:#fff; relative">' .
- '<a href="#" class="dropdown-toggle notif-link" data-toggle="dropdown">' .
- '<span class="glyphicon glyphicon-bell notif-bell"></span>' .
- '<span class="notif-num ' . $notifVisibility . '" data-total-notices="' . $countOfNotices . '">' . $newNotices . '</span>'.
- '<div class="dropdown-menu widget-notifications no-padding" style="width: 300px"><div class="slimScrollDiv" style="position: relative; overflow-y: scroll; overflow-x:hidden; width: auto; height: 250px;"><div class="notifications-list" id="main-navbar-notifications" style=" width: auto; height: 250px;">';
-
- foreach( $notices as $notice){
- $noticesUI .= '
- <div class="notification">
- <div class="notification-title text-primary">' . $notice->title . '</div>
- <div class="notification-description"><strong></strong>' . $notice->notifcationMessage . '</div>
- <div class="notification-ago">' . date("m/d/Y h:i:s A T", $notice->publishedtime) . '</div>
- <div class="notification-icon"></div>
- </div> <!-- / .notification -->
- ';
- }
+ $notifVisibility = "";
+ $countOfNotices = count( $notices);
+ $newNotices = 0;
+ if( Session::has("notice-count")){
+ $newNotices = $countOfNotices - Session::get("notice-count");
+ }
+ else
+ $newNotices = $countOfNotices;
+
+ if( !$newNotices)
+ $notifVisibility = "hide";
+
+ $noticesUI = '<li clas="dropdown" style="color:#fff; relative">' .
+ '<a href="#" class="dropdown-toggle notif-link" data-toggle="dropdown">' .
+ '<span class="glyphicon glyphicon-bell notif-bell"></span>' .
+ '<span class="notif-num ' . $notifVisibility . '" data-total-notices="' . $countOfNotices . '">' . $newNotices . '</span>'.
+ '<div class="dropdown-menu widget-notifications no-padding" style="width: 300px"><div class="slimScrollDiv" style="position: relative; overflow-y: scroll; overflow-x:hidden; width: auto; height: 250px;"><div class="notifications-list" id="main-navbar-notifications" style=" width: auto; height: 250px;">';
+
+ foreach( $notices as $notice){
$noticesUI .= '
- </div><div class="slimScrollBar" style="width: 7px; position: absolute; top: 0px; opacity: 0.4; display: none; border-radius: 7px; z-index: 99; right: 1px; height: 195.925px; background: rgb(0, 0, 0);"></div>
+ <div class="notification">
+ <div class="notification-title text-primary">' . $notice->title . '</div>
+ <div class="notification-description"><strong></strong>' . $notice->notificationMessage . '</div>
+ <div class="notification-ago">' . date("m/d/Y h:i:s A T", $notice->publishedTime) . '</div>
+ <div class="notification-icon"></div>
+ </div> <!-- / .notification -->
+ ';
+ }
+ $noticesUI .= '
+ </div><div class="slimScrollBar" style="width: 7px; position: absolute; top: 0px; opacity: 0.4; display: none; border-radius: 7px; z-index: 99; right: 1px; height: 195.925px; background: rgb(0, 0, 0);"></div>
- <div class="slimScrollRail" style="width: 7px; height: 100%; position: absolute; top: 0px; display: none; border-radius: 7px; opacity: 0.2; z-index: 90; right: 1px; background: rgb(51, 51, 51);"></div></div> <!-- / .notifications-list -->
- <a href="#" class="notifications-link">MORE NOTIFICATIONS</a>
- </div>'.
- '</a>'.
- '</li>';
+ <div class="slimScrollRail" style="width: 7px; height: 100%; position: absolute; top: 0px; display: none; border-radius: 7px; opacity: 0.2; z-index: 90; right: 1px; background: rgb(51, 51, 51);"></div></div> <!-- / .notifications-list -->
+ <a href="#" class="notifications-link">MORE NOTIFICATIONS</a>
+ </div>'.
+ '</a>'.
+ '</li>';
return $noticesUI;
}
@@ -306,5 +308,9 @@ class CommonUtilities
public static function get_all_notices(){
return Airavata::getAllNotifications( Session::get('authz-token'), Session::get("gateway_id"));
}
+
+ public static function get_notice_priorities(){
+ return NotificationPriority::$__names;
+ }
}
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/b01d107d/app/views/admin/manage-notices.blade.php
----------------------------------------------------------------------
diff --git a/app/views/admin/manage-notices.blade.php b/app/views/admin/manage-notices.blade.php
index 2c0a84d..9413e5b 100644
--- a/app/views/admin/manage-notices.blade.php
+++ b/app/views/admin/manage-notices.blade.php
@@ -56,16 +56,16 @@
{{ $notice->title }}
</td>
<td>
- {{ $notice->notifcationMessage}}
+ {{ $notice->notificationMessage}}
</td>
- <td class="time" unix-time="{{ $notice->publishedtime/1000 }}">
- {{ $notice->publishedtime }}
+ <td @if( $notice->publishedTime != null) class="time" unix-time="{{ $notice->publishedTime/1000 }}" @endif>
+ Not Set
</td>
- <td class="time" unix-time="{{ $notice->expirationTime/1000 }}">
- {{ $notice->expirationTime }}
+ <td @if( $notice->expirationTime != null) class="time" unix-time="{{ $notice->expirationTime/1000 }}" @endif>
+ Not Set
</td>
- <td>
- {{-- $notice->priority --}}
+ <td class="priority">
+ {{ $priorities[$notice->priority] }}
</td>
@if( Session::has("admin"))
<td class="update-notice-icon">
@@ -87,12 +87,13 @@
</div>
</div>
+<input type="hidden" id="priorities-list" data-priorities="{{ htmlspecialchars(json_encode( $priorities ), ENT_QUOTES, 'UTF-8') }}"/>
<!-- Create a Notice -->
<div class="modal fade" id="create-notice" tabindex="-1" role="dialog" aria-labelledby="add-modal"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
- <form class="form-horizontal notice-form-values">
+ <form class="form-horizontal notice-form-values" action="javascript:0" method="POST">
<div class="modal-header">
<h3 class="text-center">Create a new Notice</h3>
</div>
@@ -100,7 +101,7 @@
</div>
<div class="modal-footer">
- <button type="submit" class="btn btn-primary submit-add-notice-form" class="btn btn-primary form-control" value="Submit">Create</button>
+ <input type="submit" class="btn btn-primary submit-add-notice-form" class="btn btn-primary form-control" value="Create"/>
</div>
</form>
@@ -111,7 +112,7 @@
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
- <form class="form-horizontal notice-form-values">
+ <form class="form-horizontal notice-form-values" action="#" method="POST">
<input type="hidden" class="notice-notificationId" name="notificationId"/>
<div class="modal-header">
<h3 class="text-center">Update Notice</h3>
@@ -120,7 +121,7 @@
</div>
<div class="modal-footer">
- <button type="submit" class="btn btn-primary submit-update-notice-form" class="btn btn-primary form-control" value="Submit">Update</button>
+ <input type="submit" class="btn btn-primary submit-update-notice-form" class="btn btn-primary form-control" value="Update"/>
</div>
</form>
</div>
@@ -175,7 +176,7 @@
<label class="col-md-3 control-label">Publish Date</label>
<div class="col-md-6">
<div class='input-group date datetimepicker9'>
- <input type='text' class="form-control notice-publishedtime" id="publishedtime" required placeholder="From Date"/>
+ <input type='text' class="form-control notice-publishedTime" required placeholder="From Date"/>
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
@@ -186,7 +187,7 @@
<label class="col-md-3 control-label">Expiration Date</label>
<div class="col-md-6">
<div class='input-group date datetimepicker10'>
- <input type='text' class="form-control notice-expirationTime" placeholder="To Date" id="expirationTime"/>
+ <input type='text' class="form-control notice-expirationTime" placeholder="To Date"/>
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
@@ -197,10 +198,10 @@
<div class="form-group required">
<label class="col-md-3 control-label">Priority</label>
<div class="col-md-6">
- <select class="form-control notice-priority">
- <option>Low</option>
- <option>Normal</option>
- <option>Hight</option>
+ <select class="form-control notice-priority" name="priority">
+ @foreach( $priorities as $index => $priority)
+ <option value="{{ $index }}">{{ $priority}}</option>
+ @endforeach
</select>
</div>
</div>
@@ -230,8 +231,14 @@
var formInput = $("#update-notice .notice-" + key);
formInput.val( noticeData[key]);
}
- $("#update-notice .notice-publishedtime").val( moment( parseInt( $("#update-notice .notice-publishedtime").val()) ).format('MM/DD/YYYY hh:mm a') );
- $("#update-notice .notice-expirationTime").val( moment( parseInt( $("#update-notice .notice-expirationTime").val()) ).format('MM/DD/YYYY hh:mm a') );
+ var publishedTimeElem = $("#update-notice .notice-publishedTime");
+ if( publishedTimeElem.val() != "")
+ publishedTimeElem.val( moment( parseInt( publishedTimeElem.val())).format('MM/DD/YYYY hh:mm a') );
+
+ var expirationTimeElem = $("#update-notice .notice-expirationTime");
+ if( expirationTimeElem.val() != "")
+ expirationTimeElem.val( moment( parseInt( expirationTimeElem.val())).format('MM/DD/YYYY hh:mm a') );
+
setDateProperties("#update-notice");
$("#update-notice").modal( "show");
@@ -240,56 +247,70 @@
//Add notice submit
$("body").on("click", ".submit-add-notice-form", function(ev){
ev.preventDefault();
- $(this).html("<img src='{{URL::to('/')}}/assets/ajax-loader.gif'/>");
- var formData = $("#create-notice .notice-form-values").serialize();
- formData += "&publishedtime="+ moment( $("#publishedtime").val() ).utc().format('MM/DD/YYYY hh:mm a');
- formData += "&expirationTime="+ moment( $("#expirationTime").val() ).utc().format('MM/DD/YYYY hh:mm a');
- $.ajax({
- url: '{{URL::to('/')}}/add-notice',
- type: "post",
- data: formData,
- success: function( data){
- var addedNotice = $.parseJSON( data);
- $(".notices-list").prepend(
- "<tr class='alert alert-success' data-notice-info='" + data + "'>" + updateRow( addedNotice) + "</tr>"
- );
- $("#create-notice").modal("hide");
- },
- error: function(){
- $(".submit-add-notice-form").after("<span alert alert-danger'>An error has occurred. Please try again later.</span>");
- }
- }).complete( function(){
- $(".submit-add-notice-form").html("Submit");
- });
+ if( $('#create-notice .notice-form-values')[0].checkValidity() ){
+ $(this).html("<img src='{{URL::to('/')}}/assets/ajax-loader.gif'/>");
+ var formData = $("#create-notice .notice-form-values").serialize();
+ formData += "&publishedTime="+ moment( $("#create-notice .notice-publishedTime").val() ).utc().format('MM/DD/YYYY hh:mm a');
+ formData += "&expirationTime="+ moment( $("#create-notice .notice-expirationTime").val() ).utc().format('MM/DD/YYYY hh:mm a');
+ $.ajax({
+ url: '{{URL::to('/')}}/add-notice',
+ type: "post",
+ data: formData,
+ success: function( data){
+ var addedNotice = $.parseJSON( data);
+ $(".notices-list").prepend(
+ "<tr id='notice-'" + addedNotice.notificationId + "' class='alert alert-success' data-notice-info='" + data + "'>" + updateRow( addedNotice) + "</tr>"
+ );
+ $("#create-notice").modal("hide");
+ },
+ error: function(){
+ $(".submit-add-notice-form").after("<span alert alert-danger'>An error has occurred. Please try again later.</span>");
+ }
+ }).complete( function(){
+ $(".submit-add-notice-form").html("Submit");
+ });
+ }
});
//Update Notice Submit
$("body").on("click", ".submit-update-notice-form", function(ev){
ev.preventDefault();
- $(this).html("<img src='{{URL::to('/')}}/assets/ajax-loader.gif'/>");
- var formData = $("#update-notice .notice-form-values").serialize();
- formData += "&publishedtime="+ moment( $("#publishedtime").val() ).utc().format('MM/DD/YYYY hh:mm a');
- formData += "&expirationTime="+ moment( $("#expirationTime").val() ).utc().format('MM/DD/YYYY hh:mm a');
- $.ajax({
- url: '{{URL::to('/')}}/update-notice',
- type: "post",
- data: formData,
- success: function( data){
- var addedNotice = $.parseJSON( data);
- $("#notice-" + $("#update-notice .notice-notificationId").val() ).html(updateRow( addedNotice));
-
- $("#notice-" + $("#update-notice .notice-notificationId").val())
- .addClass("alert")
- .addClass("alert-success")
- .data("notice-info", data);
- $("#update-notice").modal("hide");
- },
- error: function(){
- $(".submit-update-notice-form").after("<span alert alert-danger'>An error has occurred. Please try again later.</span>");
- }
- }).complete( function(){
- $(".submit-add-notice-form").html("Update");
- });
+ if( $('#update-notice .notice-form-values')[0].checkValidity() ){
+ $(this).html("<img src='{{URL::to('/')}}/assets/ajax-loader.gif'/>");
+ var formData = $("#update-notice .notice-form-values").serialize();
+ var publishedTime = $("#update-notice .notice-publishedTime").val();
+ if( publishedTime != "")
+ formData += "&publishedTime="+ moment().utc( publishedTime).format('MM/DD/YYYY hh:mm a');
+ else
+ formData += "&publishedTime=";
+ var expirationTime = $("#ipdate-notice .notice-expirationTime").val();
+ if( expirationTime != "")
+ formData += "&expirationTime="+ moment( ).utc().format('MM/DD/YYYY hh:mm a');
+ else
+ formData += "&expirationTime=";
+
+ $.ajax({
+ url: '{{URL::to('/')}}/update-notice',
+ type: "post",
+ data: formData,
+ success: function( data){
+ var addedNotice = $.parseJSON( data);
+ elemToUpdate = $("#notice-" + $("#update-notice .notice-notificationId").val() );
+ elemToUpdate.html(updateRow( addedNotice));
+
+ elemToUpdate.addClass("alert").addClass("alert-success").data("notice-info", data);
+ $("#update-notice").modal("hide");
+
+ },
+ error: function(){
+ $(".submit-update-notice-form").after("<span alert alert-danger'>An error has occurred. Please try again later.</span>");
+ }
+ }).complete( function(){
+ $(".submit-update-notice-form").html("Update");
+ });
+ }
+ else
+ $('#update-notice .notice-form-values').submit();
});
$(".notices-list").on("click", ".delete-notice-icon", function(){
@@ -337,22 +358,23 @@
$( parent + " .datetimepicker10").data("DateTimePicker").setMinDate(e.date);
//hack to close calendar on selecting date
- $(this).find(".glyphicon-calendar").click();
+ //$(this).find(".glyphicon-calendar").click();
});
$( parent + " .datetimepicker10").on("dp.change", function (e) {
$( parent + " .datetimepicker9").data("DateTimePicker").setMaxDate(e.date);
//hack to close calendar on selecting date
- $(this).find(".glyphicon-calendar").click();
+ //$(this).find(".glyphicon-calendar").click();
});
}
function updateRow( noticeObject){
+ var prioritiesList = $("#priorities-list").data("priorities");
var row = "<td>" + noticeObject.title + "</td>" +
- "<td>" + noticeObject.notifcationMessage + "</td>" +
- "<td class='date'>" + convertTimestamp( noticeObject.publishedtime) + "</td>" +
- "<td class='date' unix-time='" + convertTimestamp( noticeObject.expirationTime ) + "'</td>" +
- "<td></td>"+
+ "<td>" + noticeObject.notificationMessage + "</td>" +
+ "<td class='date'>" + convertTimestamp( noticeObject.publishedTime) + "</td>" +
+ "<td class='date'>" + convertTimestamp( noticeObject.expirationTime ) + "'</td>" +
+ "<td>" + prioritiesList[noticeObject.priority] + "</td>"+
"<td class='update-notice-icon'><span class='glyphicon glyphicon-pencil'></span></td>"+
"<td class='delete-notice-icon'><span class='glyphicon glyphicon-trash'></span></td>";
return row;
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/b01d107d/public/js/time-conversion.js
----------------------------------------------------------------------
diff --git a/public/js/time-conversion.js b/public/js/time-conversion.js
index 459d6a4..a9683d6 100644
--- a/public/js/time-conversion.js
+++ b/public/js/time-conversion.js
@@ -2,6 +2,8 @@
//<td> elements should have the unix time as an attribute e.g. <td class="time" unix-time="423423423524"></td>
function convertTimestamp(timestamp) {
+ if( timestamp == null)
+ return;
if( timestamp.length <= 10)
timestamp = timestamp * 1000;// Convert the passed timestamp to milliseconds
var d = new Date( parseInt( timestamp) ),
[2/3] airavata-php-gateway git commit: Merge branch 'develop' of
https://git-wip-us.apache.org/repos/asf/airavata-php-gateway into develop
Posted by nd...@apache.org.
Merge branch 'develop' of https://git-wip-us.apache.org/repos/asf/airavata-php-gateway into develop
# Conflicts:
# app/libraries/CommonUtilities.php
# app/views/admin/manage-notices.blade.php
Project: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/commit/b280206b
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/b280206b
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/b280206b
Branch: refs/heads/develop
Commit: b280206b5841b45190f6df3e1da4a90189350193
Parents: b01d107 cfdd539
Author: Nipurn Doshi <ni...@gmail.com>
Authored: Tue May 3 15:15:22 2016 -0400
Committer: Nipurn Doshi <ni...@gmail.com>
Committed: Tue May 3 15:15:22 2016 -0400
----------------------------------------------------------------------
app/controllers/AccountController.php | 17 +-
app/filters.php | 2 +
app/libraries/Airavata/API/Airavata.php | 1175 +++++++++----------------
app/libraries/CommonUtilities.php | 56 +-
app/views/account/dashboard.blade.php | 2 +-
app/views/admin/manage-notices.blade.php | 38 +-
6 files changed, 488 insertions(+), 802 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/b280206b/app/libraries/CommonUtilities.php
----------------------------------------------------------------------
diff --cc app/libraries/CommonUtilities.php
index fed4c17,6744079..3c7e248
--- a/app/libraries/CommonUtilities.php
+++ b/app/libraries/CommonUtilities.php
@@@ -101,7 -100,7 +101,7 @@@ class CommonUtilitie
public static function create_nav_bar()
{
$menus = array();
-- if (Session::has('loggedin') && (Session::has('authorized-user') || Session::has('admin')
++ if ( Session::has('loggedin') && (Session::has('authorized-user') || Session::has('admin')
|| Session::has('admin-read-only'))) {
$menus = array
(
@@@ -203,7 -202,7 +203,7 @@@
//notification bell
$notices = array();
-- $notices = array_reverse( CommonUtilities::get_all_notices() );
++ $notices = CommonUtilities::get_all_notices();
echo CommonUtilities::get_notices_ui( $notices);
@@@ -230,43 -229,42 +230,61 @@@
}
public static function get_notices_ui( $notices){
-
+ $notifVisibility = "";
- $countOfNotices = count( $notices);
+
- $notifVisibility = "";
- $countOfNotices = count( $notices);
- $newNotices = 0;
- if( Session::has("notice-count")){
- $newNotices = $countOfNotices - Session::get("notice-count");
- if( !$newNotices)
- $notifVisibility = "hide";
- }
- else
- $newNotices = count( $notices);
-
- $noticesUI = '<li clas="dropdown" style="color:#fff; relative">' .
- '<a href="#" class="dropdown-toggle notif-link" data-toggle="dropdown">' .
- '<span class="glyphicon glyphicon-bell notif-bell"></span>' .
- '<span class="notif-num ' . $notifVisibility . '" data-total-notices="' . $countOfNotices . '">' . $newNotices . '</span>'.
- '<div class="dropdown-menu widget-notifications no-padding" style="width: 300px"><div class="slimScrollDiv" style="position: relative; overflow-y: scroll; overflow-x:hidden; width: auto; height: 250px;"><div class="notifications-list" id="main-navbar-notifications" style=" width: auto; height: 250px;">';
-
- foreach( $notices as $notice){
++ $publishedNoticesCount = 0;
++ $currentTime = floatval( time()*1000);
++ $noticesUI = "";
++ foreach( $notices as $notice){
++ if( $currentTime >= $notice->publishedTime && $currentTime <= $notice->expirationTime)
++ {
++ $publishedNoticesCount++;
++ $textColor = "text-info";
++ if( $notice->priority == NotificationPriority::LOW)
++ $textColor = "text-primary";
++ elseif( $notice->priority ==NotificationPriority::NORMAL)
++ $textColor = "text-warning";
++ elseif( $notice->priority == NotificationPriority::HIGH)
++ $textColor = "text-danger";
+ $noticesUI .= '
+ <div class="notification">
- <div class="notification-title text-primary">' . $notice->title . '</div>
++ <div class="notification-title ' . $textColor . '">' . $notice->title . '</div>
+ <div class="notification-description"><strong></strong>' . $notice->notificationMessage . '</div>
- <div class="notification-ago">' . date("m/d/Y h:i:s A T", $notice->publishedTime) . '</div>
++ <div class="notification-ago">' . date("m/d/Y h:i:s A T", $notice->publishedTime/1000) . '</div>
+ <div class="notification-icon"></div>
+ </div> <!-- / .notification -->
+ ';
+ }
- $noticesUI .= '
- </div><div class="slimScrollBar" style="width: 7px; position: absolute; top: 0px; opacity: 0.4; display: none; border-radius: 7px; z-index: 99; right: 1px; height: 195.925px; background: rgb(0, 0, 0);"></div>
++ }
++
++ $countOfNotices = $publishedNoticesCount;
+ $newNotices = 0;
+ if( Session::has("notice-count")){
+ $newNotices = $countOfNotices - Session::get("notice-count");
+ }
+ else
+ $newNotices = $countOfNotices;
+
+ if( !$newNotices)
+ $notifVisibility = "hide";
+
+ $noticesUI = '<li clas="dropdown" style="color:#fff; relative">' .
- '<a href="#" class="dropdown-toggle notif-link" data-toggle="dropdown">' .
- '<span class="glyphicon glyphicon-bell notif-bell"></span>' .
- '<span class="notif-num ' . $notifVisibility . '" data-total-notices="' . $countOfNotices . '">' . $newNotices . '</span>'.
- '<div class="dropdown-menu widget-notifications no-padding" style="width: 300px"><div class="slimScrollDiv" style="position: relative; overflow-y: scroll; overflow-x:hidden; width: auto; height: 250px;"><div class="notifications-list" id="main-navbar-notifications" style=" width: auto; height: 250px;">';
++ '<a href="#" class="dropdown-toggle notif-link" data-toggle="dropdown">' .
++ '<span class="glyphicon glyphicon-bell notif-bell"></span>' .
++ '<span class="notif-num ' . $notifVisibility . '" data-total-notices="' . $countOfNotices . '">' . $newNotices . '</span>'.
++ '<div class="dropdown-menu widget-notifications no-padding" style="width: 300px"><div class="slimScrollDiv" style="position: relative; overflow-y: scroll; overflow-x:hidden; width: auto; max-height: 250px;"><div class="notifications-list" id="main-navbar-notifications" style=" width: auto; max-height: 250px;">'
- foreach( $notices as $notice){
- $noticesUI .= '
- <div class="notification">
- <div class="notification-title text-primary">' . $notice->title . '</div>
- <div class="notification-description"><strong></strong>' . $notice->notificationMessage . '</div>
- <div class="notification-ago">' . date("m/d/Y h:i:s A T", $notice->publishedTime) . '</div>
- <div class="notification-icon"></div>
- </div> <!-- / .notification -->
- ';
- }
- <div class="slimScrollRail" style="width: 7px; height: 100%; position: absolute; top: 0px; display: none; border-radius: 7px; opacity: 0.2; z-index: 90; right: 1px; background: rgb(51, 51, 51);"></div></div> <!-- / .notifications-list -->
- <a href="#" class="notifications-link">MORE NOTIFICATIONS</a>
- </div>'.
- '</a>'.
- '</li>';
++ . $noticesUI;
++
++
+ $noticesUI .= '
+ </div><div class="slimScrollBar" style="width: 7px; position: absolute; top: 0px; opacity: 0.4; display: none; border-radius: 7px; z-index: 99; right: 1px; height: 195.925px; background: rgb(0, 0, 0);"></div>
+
+ <div class="slimScrollRail" style="width: 7px; height: 100%; position: absolute; top: 0px; display: none; border-radius: 7px; opacity: 0.2; z-index: 90; right: 1px; background: rgb(51, 51, 51);"></div></div> <!-- / .notifications-list -->
- <a href="#" class="notifications-link">MORE NOTIFICATIONS</a>
++ <a href="#" class="notifications-link"><!--MORE NOTIFICATIONS--></a>
+ </div>'.
+ '</a>'.
+ '</li>';
return $noticesUI;
}
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/b280206b/app/views/admin/manage-notices.blade.php
----------------------------------------------------------------------
diff --cc app/views/admin/manage-notices.blade.php
index 9413e5b,009d84c..3dba216
--- a/app/views/admin/manage-notices.blade.php
+++ b/app/views/admin/manage-notices.blade.php
@@@ -101,7 -100,7 +101,7 @@@
</div>
<div class="modal-footer">
- <input type="submit" class="btn btn-primary submit-add-notice-form" class="btn btn-primary form-control" value="Create"/>
- <button type="submit" class="btn btn-primary submit-add-notice-form" class="btn btn-primary form-control" value="Submit">Create</button>
++ <button type="submit" class="btn btn-primary submit-add-notice-form" class="btn btn-primary form-control">Create</button>
</div>
</form>
@@@ -121,7 -120,7 +121,7 @@@
</div>
<div class="modal-footer">
- <input type="submit" class="btn btn-primary submit-update-notice-form" class="btn btn-primary form-control" value="Update"/>
- <button type="submit" class="btn btn-primary submit-update-notice-form" class="btn btn-primary form-control" value="Submit">Update</button>
++ <button type="submit" class="btn btn-primary submit-update-notice-form" class="btn btn-primary form-control">Update</button
</div>
</form>
</div>
@@@ -225,92 -224,72 +225,94 @@@
$(".notices-list").on("click", ".update-notice-icon", function(){
var noticeData = $(this).parent().data("notice-info");
++ if( typeof noticeData != "object")
++ noticeData = $.parseJSON( noticeData);
$("#update-notice .modal-body").html( $(".notice-form").html());
++ $("#update-notice").modal( "show");
++
for( var key in noticeData){
var formInput = $("#update-notice .notice-" + key);
formInput.val( noticeData[key]);
}
- $("#update-notice .notice-publishedTime").val( moment( parseInt( $("#update-notice .notice-publishedTime").val()) ).format('MM/DD/YYYY hh:mm a') );
- $("#update-notice .notice-expirationTime").val( moment( parseInt( $("#update-notice .notice-expirationTime").val()) ).format('MM/DD/YYYY hh:mm a') );
- setDateProperties("#update-notice");
+ var publishedTimeElem = $("#update-notice .notice-publishedTime");
+ if( publishedTimeElem.val() != "")
+ publishedTimeElem.val( moment( parseInt( publishedTimeElem.val())).format('MM/DD/YYYY hh:mm a') );
- $("#update-notice").modal( "show");
+ var expirationTimeElem = $("#update-notice .notice-expirationTime");
+ if( expirationTimeElem.val() != "")
+ expirationTimeElem.val( moment( parseInt( expirationTimeElem.val())).format('MM/DD/YYYY hh:mm a') );
-
- setDateProperties("#update-notice");
+
- $("#update-notice").modal( "show");
++ setDateProperties("#update-notice");
});
//Add notice submit
-- $("body").on("click", ".submit-add-notice-form", function(ev){
++ $("body").on("submit", "#create-notice .notice-form-values", function(ev){
ev.preventDefault();
- if( $('#create-notice .notice-form-values')[0].checkValidity() ){
- $(this).html("<img src='{{URL::to('/')}}/assets/ajax-loader.gif'/>");
- $(this).html("<img src='{{URL::to('/')}}/assets/ajax-loader.gif'/>");
- var formData = $("#create-notice .notice-form-values").serialize();
- formData += "&publishedTime="+ moment( $("#publishedTime").val() ).utc().format('MM/DD/YYYY hh:mm a');
- formData += "&expirationTime="+ moment( $("#expirationTime").val() ).utc().format('MM/DD/YYYY hh:mm a');
- $.ajax({
- url: '{{URL::to('/')}}/add-notice',
- type: "post",
- data: formData,
- success: function( data){
- var addedNotice = $.parseJSON( data);
- $(".notices-list").prepend(
- "<tr class='alert alert-success' data-notice-info='" + data + "'>" + updateRow( addedNotice) + "</tr>"
- );
- $("#create-notice").modal("hide");
- },
- error: function(){
- $(".submit-add-notice-form").after("<span alert alert-danger'>An error has occurred. Please try again later.</span>");
- }
- }).complete( function(){
- $(".submit-add-notice-form").html("Submit");
- });
++
++ if( $(this)[0].checkValidity() ){
++ $(".submit-add-notice-form").html("<img src='{{URL::to('/')}}/assets/ajax-loader.gif'/>");
+ var formData = $("#create-notice .notice-form-values").serialize();
+ formData += "&publishedTime="+ moment( $("#create-notice .notice-publishedTime").val() ).utc().format('MM/DD/YYYY hh:mm a');
+ formData += "&expirationTime="+ moment( $("#create-notice .notice-expirationTime").val() ).utc().format('MM/DD/YYYY hh:mm a');
+ $.ajax({
+ url: '{{URL::to('/')}}/add-notice',
+ type: "post",
+ data: formData,
+ success: function( data){
+ var addedNotice = $.parseJSON( data);
+ $(".notices-list").prepend(
+ "<tr id='notice-'" + addedNotice.notificationId + "' class='alert alert-success' data-notice-info='" + data + "'>" + updateRow( addedNotice) + "</tr>"
+ );
+ $("#create-notice").modal("hide");
+ },
+ error: function(){
+ $(".submit-add-notice-form").after("<span alert alert-danger'>An error has occurred. Please try again later.</span>");
+ }
+ }).complete( function(){
- $(".submit-add-notice-form").html("Submit");
++ $(".submit-add-notice-form").html("Create");
+ });
+ }
});
//Update Notice Submit
-- $("body").on("click", ".submit-update-notice-form", function(ev){
++ $("body").on("submit", "#update-notice .notice-form-values", function(ev){
ev.preventDefault();
- if( $('#update-notice .notice-form-values')[0].checkValidity() ){
- $(this).html("<img src='{{URL::to('/')}}/assets/ajax-loader.gif'/>");
- $(this).html("<img src='{{URL::to('/')}}/assets/ajax-loader.gif'/>");
- var formData = $("#update-notice .notice-form-values").serialize();
- formData += "&publishedTime="+ moment( $("#publishedTime").val() ).utc().format('MM/DD/YYYY hh:mm a');
- formData += "&expirationTime="+ moment( $("#expirationTime").val() ).utc().format('MM/DD/YYYY hh:mm a');
- $.ajax({
- url: '{{URL::to('/')}}/update-notice',
- type: "post",
- data: formData,
- success: function( data){
- var addedNotice = $.parseJSON( data);
- $("#notice-" + $("#update-notice .notice-notificationId").val() ).html(updateRow( addedNotice));
-
- $("#notice-" + $("#update-notice .notice-notificationId").val())
- .addClass("alert")
- .addClass("alert-success")
- .data("notice-info", data);
- $("#update-notice").modal("hide");
- },
- error: function(){
- $(".submit-update-notice-form").after("<span alert alert-danger'>An error has occurred. Please try again later.</span>");
- }
- }).complete( function(){
- $(".submit-add-notice-form").html("Update");
- });
++ if( $(this)[0].checkValidity() ){
++ $(".submit-update-notice-form").html("<img src='{{URL::to('/')}}/assets/ajax-loader.gif'/>");
+ var formData = $("#update-notice .notice-form-values").serialize();
+ var publishedTime = $("#update-notice .notice-publishedTime").val();
+ if( publishedTime != "")
- formData += "&publishedTime="+ moment().utc( publishedTime).format('MM/DD/YYYY hh:mm a');
++ formData += "&publishedTime="+ publishedTime;
+ else
+ formData += "&publishedTime=";
- var expirationTime = $("#ipdate-notice .notice-expirationTime").val();
++ var expirationTime = $("#update-notice .notice-expirationTime").val();
+ if( expirationTime != "")
- formData += "&expirationTime="+ moment( ).utc().format('MM/DD/YYYY hh:mm a');
++ formData += "&expirationTime="+expirationTime;
+ else
+ formData += "&expirationTime=";
+
+ $.ajax({
+ url: '{{URL::to('/')}}/update-notice',
+ type: "post",
+ data: formData,
+ success: function( data){
+ var addedNotice = $.parseJSON( data);
+ elemToUpdate = $("#notice-" + $("#update-notice .notice-notificationId").val() );
+ elemToUpdate.html(updateRow( addedNotice));
-
+ elemToUpdate.addClass("alert").addClass("alert-success").data("notice-info", data);
+ $("#update-notice").modal("hide");
+
+ },
+ error: function(){
+ $(".submit-update-notice-form").after("<span alert alert-danger'>An error has occurred. Please try again later.</span>");
+ }
+ }).complete( function(){
+ $(".submit-update-notice-form").html("Update");
+ });
+ }
+ else
+ $('#update-notice .notice-form-values').submit();
});
$(".notices-list").on("click", ".delete-notice-icon", function(){
@@@ -334,6 -313,6 +336,8 @@@
success: function( data){
if( data == 1){
$("#notice-" +$("#delete-notice .notice-notificationId").val()).fadeOut().remove();
++ $("#delete-notice").modal("hide");
++
}
else{
$(".delete-notice-submit").after("<span alert alert-danger'>An error has occurred. Please try again later.</span>");
@@@ -343,7 -322,7 +347,7 @@@
$(".submit-update-notice-form").after("<span alert alert-danger'>An error has occurred. Please try again later.</span>");
}
}).complete( function(){
-- $(".submit-add-notice-form").html("Update");
++ $(".delete-notice-submit").html("Delete");
});
});
[3/3] airavata-php-gateway git commit: Notification system
implementation completed.
Posted by nd...@apache.org.
Notification system implementation completed.
Project: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/commit/a84b53a9
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/a84b53a9
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/a84b53a9
Branch: refs/heads/develop
Commit: a84b53a986098a0cd26e1f33839ec595a816a8e2
Parents: b280206
Author: Nipurn Doshi <ni...@gmail.com>
Authored: Tue May 3 15:15:43 2016 -0400
Committer: Nipurn Doshi <ni...@gmail.com>
Committed: Tue May 3 15:15:43 2016 -0400
----------------------------------------------------------------------
app/controllers/AdminController.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/a84b53a9/app/controllers/AdminController.php
----------------------------------------------------------------------
diff --git a/app/controllers/AdminController.php b/app/controllers/AdminController.php
index 6d2c7ea..c9f8d0d 100644
--- a/app/controllers/AdminController.php
+++ b/app/controllers/AdminController.php
@@ -371,7 +371,7 @@ class AdminController extends BaseController {
Session::put("admin-nav", "notices");
$notices = array();
$noticePriorities = CommonUtilities::get_notice_priorities();
- $notices = array_reverse( CommonUtilities::get_all_notices() );
+ $notices = CommonUtilities::get_all_notices();
return View::make("admin/manage-notices", array("notices" => $notices, "priorities" => $noticePriorities));
}