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));
 	}