fixed save and cancel

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/d91afd22
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/d91afd22
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/d91afd22

Branch: refs/heads/grouper-integration
Commit: d91afd220304885f26c079e89d3bbe5c0acf8bd0
Parents: 6e7e753
Author: Jeff Kinnison <[email protected]>
Authored: Thu Jun 30 13:04:20 2016 -0400
Committer: Jeff Kinnison <[email protected]>
Committed: Thu Jun 30 13:04:20 2016 -0400

----------------------------------------------------------------------
 public/js/sharing/share.js | 156 ++++++++++++++++++++++++++++++++--------
 1 file changed, 125 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/d91afd22/public/js/sharing/share.js
----------------------------------------------------------------------
diff --git a/public/js/sharing/share.js b/public/js/sharing/share.js
index a375806..e54282e 100755
--- a/public/js/sharing/share.js
+++ b/public/js/sharing/share.js
@@ -5,11 +5,11 @@
  */
 
 var access_enum = {
-       NONE: 0,
-       VIEW: 1,
-       RUN: 2,
-       EDIT: 3,
-       ADMIN: 4
+       NONE: '0',
+       VIEW: '1',
+       RUN: '2',
+       EDIT: '3',
+       ADMIN: '4'
 };
 
 var dummy_user_data = [
@@ -18,14 +18,14 @@ var dummy_user_data = [
                firstname: 'Jane',
                lastname: 'Doe',
                email: '[email protected]',
-               access: access_enum.RUN
+               access: access_enum.NONE
        },
        {
                username: 'testuser2',
                firstname: 'Ego',
                lastname: 'Id',
                email: '[email protected]',
-               access: access_enum.VIEW
+               access: access_enum.NONE
        },
        {
                username: 'testuser3',
@@ -50,6 +50,44 @@ var dummy_user_data = [
        }
 ];
 
+var dummy_group_data = [
+       {
+               username: 'Venusian Climate Studies',
+               firstname: 'Gazorpazorp',
+               lastname: 'Field',
+               email: '[email protected]',
+               access: access_enum.NONE
+       },
+       {
+               username: 'Molecular Dynamics Rawks',
+               first: 'Jorgen',
+               lastname: 'Jorgenson',
+               email: '[email protected]',
+               access: access_enum.NONE
+       },
+       {
+               username: 'Socialist Distributed Algorithms',
+               firstname: 'Richard',
+               lastname: 'Stallman',
+               email: '[email protected]',
+               access: access_enum.NONE
+       },
+       {
+               username: 'Stonferd Center for New Age Math',
+               firstname: 'Gugliermo',
+               lastname: 'Marconi',
+               email: '[email protected]',
+               access: access_enum.VIEW
+       },
+       {
+               username: 'CIT Center for Autonomous Studies',
+               firstname: 'Madison',
+               lastname: 'Li',
+               email: '[email protected]',
+               access: access_enum.EDIT
+       },
+];
+
  var createThumbnail = function(username, firstname, lastname, email, 
access=access_enum.NONE, img="#") {
         var $thumbnail, data, options;
 
@@ -62,7 +100,7 @@ var dummy_user_data = [
         };
 
         options = '';
-        options += '<option value="' + access_enum.NONE + '"' + (access === 
access_enum.NONE ? "selected" : "") + '>Not Shared</option>';
+        options += '<option value="' + access_enum.NONE + '"' + (access === 
access_enum.NONE ? "selected" : "") + ' style="display: none;">Can 
View</option>';
         options += '<option value="' + access_enum.VIEW + '"' + (access === 
access_enum.VIEW ? "selected" : "") + '>Can View</option>';
         options += '<option value="' + access_enum.RUN + '"' + (access === 
access_enum.RUN ? "selected" : "") + '>Can Run</option>';
         options += '<option value="' + access_enum.EDIT + '"' + (access === 
access_enum.EDIT ? "selected" : "") + '>Can Edit</option>';
@@ -91,6 +129,7 @@ var dummy_user_data = [
 
  var usernameComparator = function(a, b) {
        var $a, $b;
+       console.log("Sorting by username");
        $a = $(a).data();
        $b = $(b).data();
 
@@ -170,7 +209,14 @@ var emailComparator = function(a, b) {
 }
 
 $(function() {
-       var comparator = usernameComparator;
+       var comparator_map, comparator, $original_shared_list, $revoke_list;
+       comparator_map = {
+                       "username": usernameComparator,
+                       "firstlast": firstLastComparator,
+                       "lastfirst": lastFirstComparator,
+                       "email": emailComparator
+       };
+       comparator = usernameComparator;
 
        /* Share box functions */
 
@@ -202,8 +248,8 @@ $(function() {
                                                                <label>Order 
By</label> \
                                                                <select 
id="order-results-selector"> \
                                                                        <option 
value="username">Username</option> \
-                                                                       <option 
value="first-last">First, Last Name</option> \
-                                                                       <option 
value="last-first">Last, First Name</option> \
+                                                                       <option 
value="firstlast">First, Last Name</option> \
+                                                                       <option 
value="lastfirst">Last, First Name</option> \
                                                                        <option 
value="email">Email</option> \
                                                                </select> \
                                                        </div> \
@@ -243,7 +289,7 @@ $(function() {
                                }
                                else {
                                        $user.addClass('share-box-share-item');
-                                       $user.find('select').prop("disabled", 
false);
+                                       
$user.find('sharing-thumbnail-access').prop("disabled", false).show();
                                        
$user.find('.sharing-thumbnail-unshare').show();
                                        $share.append($user);
                                }
@@ -257,18 +303,18 @@ $(function() {
                // If the user has sharing privileges, revoke them
                if ($target.hasClass('share-box-users-item')) {
                        console.log("Sharing");
-                       $target.find('select').prop("disabled", false);
+                       
$target.find('.sharing-thumbnail-access').val('1').prop("disabled", 
false).show();
                        $target.find('.sharing-thumbnail-unshare').show();
                        $target.detach().prependTo('#share-box-share').show();
                }
                // Otherwise move to the shared list
                else if ($target.hasClass('share-box-share-item')) {
                        console.log("Revoking share");
-                       $target.find('select').val('0');
-                       $target.find('select').prop("disabled", true);
+                       $target.find('select').val('0').prop("disabled", 
true).hide();
                        $target.find('.sharing-thumbnail-unshare').hide();
                        $target.detach().appendTo('#share-box-users');
-                       $('#share-box-filter').trigger('change');
+                       $('#share-box-filter').trigger('keydown');
+                       $("#order-results-selector").trigger('change');
                }
                $target.toggleClass('share-box-users-item 
share-box-share-item');
        }
@@ -290,11 +336,16 @@ $(function() {
                }
                else {
                        $share_list = $('#shared-users').children();
-                       $share_list.sort(user_sorter);
+                       $share_list.sort(comparator);
                        $share_list.each(function(index, element) {
-                               
$(element).detach().appendTo($('#share-box-share'));
+                               var $e;
+                               $e = $(element);
+                               
$e.find('.sharing-thumbnail-access').prop('disabled', false);
+                               $e.find('.sharing-thumbnail-unshare').show();
+                               $e.detach().appendTo($('#share-box-share'));
                        })
                }
+               $original_shared_list = $('#share-box-share').children();
                $('#share-box').animate({top: "1%"})
                return false;
        });
@@ -305,9 +356,9 @@ $(function() {
                e.stopPropagation();
                e.preventDefault();
                $target = $(e.target);
-               pattern = $target.val();
+               pattern = $target.val().toLowerCase();
                if (pattern && pattern !== '') {
-                       re = new RegExp('$' + pattern, 'i');
+                       re = new RegExp(pattern, 'i');
                }
                else {
                        re = new RegExp(/.+/);
@@ -318,10 +369,10 @@ $(function() {
                        var data;
                        data = $(element).data();
                        console.log(data);
-                       if (re.test(data.username)
-                           || re.test(data.firstname)
-                           || re.test(data.lastname)
-                               || re.test(data.email)
+                       if (re.test(data.username.toLowerCase())
+                           || re.test(data.firstname.toLowerCase())
+                           || re.test(data.lastname.toLowerCase())
+                               || re.test(data.email.toLowerCase())
                        ) {
                                console.log("Showing the user");
                                $(element).show();
@@ -355,6 +406,17 @@ $(function() {
                return false;
        });
 
+       $('body').on('change', '#order-results-selector', function(e) {
+               var $target, $sorted;
+               $target = $(e.target);
+               console.log($target.val());
+               comparator = comparator_map[$target.val()];
+               $sorted = $('#share-box-users .sharing-thumbnail');
+               $sorted.detach();
+               $sorted.sort(comparator);
+               $('#share-box-users').append($sorted);
+       });
+
        // Save the sharing permissions of each selected user
        $('body').on('click', '#share-box-button', function(e) {
                var data, resource_id, $share_list;
@@ -369,12 +431,20 @@ $(function() {
                else {
                        if ($share_list.length > 0) {
                                $('#shared-users').empty();
-                               
$('#shared-users').removeClass('text-align-center');
-                               $share_list.sort(user_sorter);
+                               $share_list.sort(comparator_map.username);
                                $share_list.each(function(index, element) {
-                                       
$(element).find('shared').prop('detached', true);
-                                       
$(element).detach().appendTo($('#shared-users'));
+                                       var $e, data;
+                                       $e = $(element);
+                                       data = $e.data();
+                                       if 
(data.hasOwnProperty('currentaccess')) {
+                                               data.access = 
data.currentaccess;
+                                               $e.data(data);
+                                       }
+                                       
$e.find('.sharing-thumbnail-access').prop('disabled', true);
+                                       
$e.find('.sharing-thumbnail-unshare').hide();
                                });
+                               
$('#shared-users').removeClass('text-align-center');
+                               
$share_list.detach().appendTo($('#shared-users'));
                        }
                        else {
                                
$('#shared-users').addClass('text-align-center');
@@ -389,6 +459,25 @@ $(function() {
        $('body').on('click', '#share-box-close, #share-box-x', function(e) {
                e.stopPropagation();
                e.preventDefault();
+               $('#shared-users').empty();
+               if ($original_shared_list.length > 0) {
+                       $original_shared_list.each(function(index, element) {
+                               var $e, data;
+                               $e = $(element);
+                               data = $e.data();
+                               if (data.hasOwnProperty('currentaccess')) {
+                                       data.currentaccess = data.access;
+                               }
+                               
$e.find('select').val(data.access).prop('disabled', true);
+                               $e.find('.sharing-thumbnail-unshare').hide();
+                       });
+                       $('shared-users').removeClass('text-align-center');
+                       
$original_shared_list.detach().appendTo('#shared-users');
+               }
+               else {
+                       $('#shared-users').addClass('text-align-center');
+                       $('#shared-users').prepend('<p>This project has not 
been shared</p>');
+               }
                $('#share-box').animate({top: "100%"});
                return false;
        });
@@ -403,8 +492,13 @@ $(function() {
                return false;
        });
 
-       $('body').on('click', '.sharing-thumbnail-access', function(e) {
-               e.stopPropagation();
-               return false;
+       // Handle changing access level
+       $('body').on('change', '.sharing-thumbnail-access', function(e) {
+               var $target, $parent, data;
+               $target = $(e.target);
+               $parent = $target.closest('.sharing-thumbnail');
+               data = $parent.data();
+               data.currentaccess = $target.val();
+               $parent.data(data);
        });
 });

Reply via email to