Changes from Batch Test
[aaf/authz.git] / auth / auth-gui / src / main / java / org / onap / aaf / auth / gui / pages / ApprovalForm.java
index f173038..e047a22 100644 (file)
@@ -40,13 +40,12 @@ import org.onap.aaf.auth.gui.Table.Cells;
 import org.onap.aaf.auth.gui.table.AbsCell;
 import org.onap.aaf.auth.gui.table.ButtonCell;
 import org.onap.aaf.auth.gui.table.RadioCell;
-import org.onap.aaf.auth.gui.table.RefCell;
 import org.onap.aaf.auth.gui.table.TableData;
-import org.onap.aaf.auth.gui.table.TextAndRefCell;
 import org.onap.aaf.auth.gui.table.TextCell;
+import org.onap.aaf.auth.gui.table.TextToolTipCell;
 import org.onap.aaf.auth.org.Organization;
-import org.onap.aaf.auth.org.OrganizationFactory;
 import org.onap.aaf.auth.org.Organization.Identity;
+import org.onap.aaf.auth.org.OrganizationFactory;
 import org.onap.aaf.cadi.CadiException;
 import org.onap.aaf.cadi.client.Future;
 import org.onap.aaf.cadi.client.Rcli;
@@ -67,7 +66,7 @@ public class ApprovalForm extends Page {
     // Package on purpose
     static final String NAME="Approvals";
     static final String HREF = "/gui/approve";
-    static final String[] FIELDS = new String[] {"line[]","user","delegate_of"};
+    static final String[] FIELDS = new String[] {"line[]","user","delegate_of","as_user"};
     
     
     public ApprovalForm(final AAF_GUI gui, final Page ... breadcrumbs) throws APIException, IOException {
@@ -91,7 +90,7 @@ public class ApprovalForm extends Page {
                 }
             },
             new Form(true,new Table<AAF_GUI,AuthzTrans>("Approval Requests", gui.env.newTransNoAvg(),new Model(gui.env),"class=stdform"))
-                .preamble("The following requires your Approval to proceed in the AAF System.</p><p class=subtext>Hover on Identity for Name; click for WebPhone; If Deny is the only option, User is no longer valid."),
+                .preamble("The following requires your Approval to proceed in the AAF System.</p><p class=subtext>Hover on Name for Identity; If Deny is the only option, User is no longer valid."),
             new NamedCode(false, "selectAlljs") {
                 @Override
                 public void code(final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
@@ -116,16 +115,18 @@ public class ApprovalForm extends Page {
      */
     private static class Model extends TableData<AAF_GUI,AuthzTrans> {
         //TODO come up with a generic way to do ILM Info (people page)
-        private static final String TODO_ILM_INFO = "TODO: ILM Info";
+//        private static final String TODO_ILM_INFO = "TODO: ILM Info";
         
         
         private static final String[] headers = new String[] {"Identity","Request","Approve","Deny"};
         private Slot sUser;
         private Slot sAsDelegate;
+               private Slot sAsUser;
         
         public Model(AuthzEnv env) {
             sUser = env.slot(NAME+".user");
             sAsDelegate = env.slot(NAME+".delegate_of");
+            sAsUser = env.slot(NAME + ".as_user");
         }
         
         @Override
@@ -136,7 +137,15 @@ public class ApprovalForm extends Page {
         @Override
         public Cells get(final AuthzTrans trans, final AAF_GUI gui) {
             final String userParam = trans.get(sUser, null);
-            final String asDelegate = trans.get(sAsDelegate, trans.user());
+            
+            final String asDelegate = trans.get(sAsDelegate, null);
+            final String approver;
+            if(asDelegate==null) {
+               approver = trans.get(sAsUser,trans.user());
+            } else {
+               approver = asDelegate;
+            }
+             
             ArrayList<AbsCell[]> rv = new ArrayList<>();
             String msg = null;
             TimeTaken tt = trans.start("AAF Get Approvals for Approver",Env.REMOTE);
@@ -146,7 +155,7 @@ public class ApprovalForm extends Page {
                 int numLeft = gui.clientAsUser(trans.getUserPrincipal(), new Retryable<Integer>() {
                     @Override
                     public Integer code(Rcli<?> client) throws CadiException, ConnectException, APIException {
-                        Future<Approvals> fa = client.read("/authz/approval/approver/"+asDelegate,gui.getDF(Approvals.class));
+                        Future<Approvals> fa = client.read("/authz/approval/approver/"+approver,gui.getDF(Approvals.class));
                         int numLeft = 0;
                         if (fa.get(AAF_GUI.TIMEOUT)) {
                             
@@ -216,7 +225,7 @@ public class ApprovalForm extends Page {
        //                        } else {
                                    approverHeader = new AbsCell[] { 
                                            new TextCell("Approvals Delegated to Me by " + iapprover.fullName() 
-                                              + '(' + iapprover.id() +')',
+                                               + '(' + iapprover.id() + ')',
                                                    new String[] {"colspan=4", "class=head"})
                                    };
        //                        }
@@ -242,37 +251,31 @@ public class ApprovalForm extends Page {
                                        userCell = AbsCell.Null; 
                                    } else if (user.endsWith(trans.org().getRealm())){
                                        userOK=true;
-//                                     String title;
+                                       String title;
                                        Organization org = OrganizationFactory.obtain(trans.env(), user);
                                        if (org==null) {
-//                                         title="";
+                                           title="";
                                                userCell = new TextCell(user);
                                        } else {
                                            Identity au = org.getIdentity(trans, user);
                                            if (au!=null) {
                                                if(au.isPerson()) {
-                                                       userCell = new TextCell(au.fullName() + "\n(" + au.id() + ')');
+                                                       userCell = new TextToolTipCell(au.fullName(),"Identity: " + au.id());
                                                } else {
-                                                       userCell = new TextCell(au.fullID());
+                                                   Identity managedBy = au.responsibleTo();
+                                                   if (managedBy==null) {
+                                                       title ="Identity: " + au.type();
+                                                   } else {
+                                                       title="Sponsor: " + managedBy.fullName();                                                
+                                                   }
+                                                       userCell = new TextToolTipCell(au.fullID(),title);
                                                }
-//                                             
-//                                             if ("MECHID".equals(au.type())) {
-//                                                 Identity managedBy = au.responsibleTo();
-//                                                 if (managedBy==null) {
-//                                                     title ="title=" + au.type();
-//                                                 } else {
-//                                                     title="title=Sponsor is " + managedBy.fullName();                                                
-//                                                 }
-//                                             } else {
-//                                                 title="title=" + au.fullName();
-//                                             }
                                            } else {
                                                userOK=false;
-//                                             title="title=Not a User at " + org.getName();
-                                                       userCell = new TextCell(user);
+                                               title="Not a User at " + org.getName();
+                                                       userCell = new TextToolTipCell(user,title);
                                            }
                                        }
-                                       prevUser=user;
        //                                userCell = new RefCell(prevUser,
        //                                    TODO_ILM_INFO+user.substring(0, user.length()-domainOfApprover.length()),
        //                                    true,
@@ -281,6 +284,7 @@ public class ApprovalForm extends Page {
                                    } else {
                                        userCell = new TextCell(prevUser==null?user:prevUser);
                                    }
+                                prevUser=user;
                                    AbsCell[] sa = new AbsCell[] {
                                        userCell,
                                        new TextCell(appr.getMemo()),