diff --git a/Controller/GrouperGroupsController.php b/Controller/GrouperGroupsController.php
index f7b71db..db63416 100644
--- a/Controller/GrouperGroupsController.php
+++ b/Controller/GrouperGroupsController.php
@@ -9,10 +9,12 @@ class GrouperGroupsController extends GrouperLiteAppController
public $components = array('Flash');
public $name = 'GrouperGroups';
- public $userId = '';
+ public $userId = 'ryan.mathis@at.internet2.edu';
public function index() {
- return $this->redirect(array('controller' => 'GrouperGroups', 'action' => 'groupoptin'));
+ return $this->redirect(
+ array('controller' => 'GrouperGroups', 'action' => 'groupoptin')
+ );
}
@@ -29,7 +31,7 @@ public function groupInfo()
$details = $this->GrouperGroup->groupDescriptions($name);
$this->set('groupname', $name);
- $this->set('title', 'Grouper Groups Info and Attributes:');
+ $this->set('title', 'Group configuration and attributes');
$this->set('groupergroupsdetail', $details[0]);
}
@@ -58,6 +60,48 @@ public function groupOptin()
}
}
+ public function emailListsOptin()
+ {
+ $this->set('title', 'Email lists');
+ // mock data
+ $this->set('group', array(
+ 'member' => true,
+ 'name' => 'Email List 1',
+ 'description' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
+ 'enabled' => 'T'
+ ));
+ }
+
+ public function emailListsManaged()
+ {
+ $this->set('title', 'Email lists I manage');
+ // mock data
+ $this->set('group', array(
+ 'member' => true,
+ 'name' => 'Email List 1',
+ 'description' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
+ 'enabled' => 'T'
+ ));
+ }
+
+ public function emailListInfo()
+ {
+ $this->set('title', 'Email list configuration and attributes');
+ // mock data
+ $this->set('groupergroupsdetail', array(
+ 'member' => true,
+ 'uuid' => 'abc123xyz789',
+ 'displayExtension' => 'email-list-1',
+ 'extension' => 'email-list-1',
+ 'displayName' => 'Email List 1',
+ 'typeOfGroup' => 'list',
+ 'name' => 'Email List 1',
+ 'description' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
+ 'enabled' => 'T',
+ 'attributes' => array()
+ ));
+ }
+
public function groupCreateForm() {
$this->set('title', 'Create Grouper Group');
}
diff --git a/View/Elements/Components/groupattributes.ctp b/View/Elements/Components/groupattributes.ctp
new file mode 100644
index 0000000..11cb6a7
--- /dev/null
+++ b/View/Elements/Components/groupattributes.ctp
@@ -0,0 +1,22 @@
+
+
+
+ Attribute name
+ Attribute description
+ Action
+
+
+
+
+
+
+
+
+
+ View
+
+
+
+
+
+
\ No newline at end of file
diff --git a/View/Elements/Components/groupproperties.ctp b/View/Elements/Components/groupproperties.ctp
new file mode 100644
index 0000000..7f78303
--- /dev/null
+++ b/View/Elements/Components/groupproperties.ctp
@@ -0,0 +1,42 @@
+
+
+
+
Display Extension:
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/View/Elements/Components/navigation.ctp b/View/Elements/Components/navigation.ctp
index 4547920..fc5c06c 100644
--- a/View/Elements/Components/navigation.ctp
+++ b/View/Elements/Components/navigation.ctp
@@ -30,10 +30,28 @@
?>
-
Email lists
+ Html->link(
+ filter_var('Email lists', FILTER_SANITIZE_SPECIAL_CHARS),
+ array(
+ 'controller' => 'groupergroups',
+ 'action' => 'emaillistsoptin'
+ ),
+ array('class' => array('nav-link', $active == 'emaillistsoptin' ? 'active' : ''))
+ )
+ ?>
-
Email lists I manage
+ Html->link(
+ filter_var('Email lists I manage', FILTER_SANITIZE_SPECIAL_CHARS),
+ array(
+ 'controller' => 'groupergroups',
+ 'action' => 'emaillistsmanaged'
+ ),
+ array('class' => array('nav-link', $active == 'emaillistsmanaged' ? 'active' : ''))
+ )
+ ?>
diff --git a/View/Elements/Components/search.ctp b/View/Elements/Components/search.ctp
index 6ebe8e0..4be109f 100644
--- a/View/Elements/Components/search.ctp
+++ b/View/Elements/Components/search.ctp
@@ -75,7 +75,7 @@ $(document).ready(function() {
-
Type
+
Type
All
Other
diff --git a/View/Elements/Components/subscriberList.ctp b/View/Elements/Components/subscriberList.ctp
new file mode 100644
index 0000000..bf4330e
--- /dev/null
+++ b/View/Elements/Components/subscriberList.ctp
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/View/GrouperGroups/emaillistinfo.ctp b/View/GrouperGroups/emaillistinfo.ctp
new file mode 100644
index 0000000..081e1c7
--- /dev/null
+++ b/View/GrouperGroups/emaillistinfo.ctp
@@ -0,0 +1,95 @@
+extend('/GrouperGroups/base'); ?>
+
+
+
+
+
+
+
Group Properties
+
+
+
+
+
+
+
+
+
+
+
Attributes
+
+
+
+ Attribute name
+ Attribute description
+ Action
+
+
+
+
+
+
+
+
+
+ View
+
+
+
+
+
+
+
+
+
+
diff --git a/View/GrouperGroups/emaillistsmanaged.ctp b/View/GrouperGroups/emaillistsmanaged.ctp
new file mode 100644
index 0000000..b3b3acc
--- /dev/null
+++ b/View/GrouperGroups/emaillistsmanaged.ctp
@@ -0,0 +1,39 @@
+extend('/GrouperGroups/base'); ?>
+element('Components/navigation', array('active' => 'emaillistsmanaged', 'create' => true)); ?>
+element('Components/search', array('active' => 'emaillistsmanaged')); ?>
+
+
+
+
+ Name
+ Description
+ Status
+ Action
+
+
+
+
+ Html->link(
+ isset($group['name']) ? $group['name'] : "No Name",
+ array(
+ 'controller' => 'groupergroups',
+ 'action' => 'emaillistinfo',
+ '?' => array('groupname' => urlencode($group['name']))
+ )
+ ) ?>
+
+
+
+
+ Edit Group
+
+
+
+ Disable Group
+
+
+
+
+
+
+
diff --git a/View/GrouperGroups/emaillistsoptin.ctp b/View/GrouperGroups/emaillistsoptin.ctp
new file mode 100644
index 0000000..1fbe173
--- /dev/null
+++ b/View/GrouperGroups/emaillistsoptin.ctp
@@ -0,0 +1,36 @@
+extend('/GrouperGroups/base'); ?>
+element('Components/navigation', array('active' => 'emaillistsoptin')); ?>
+element('Components/search', array('active' => 'emaillistsoptin')); ?>
+
+
+
+
+ Name
+ Description
+ Status
+ Action
+
+
+
+
+ Html->link(
+ isset($group['name']) ? $group['name'] : "No Name",
+ array(
+ 'controller' => 'groupergroups',
+ 'action' => 'emaillistinfo',
+ '?' => array('groupname' => urlencode($group['name']))
+ )
+ ) ?>
+
+
+
+ element('Components/optAction', array(
+ 'member' => $group['member'],
+ 'action' => $group['member'] ? 'leavegroup' : 'joingroup',
+ 'group' => $group['name']
+ )); ?>
+
+
+
+
+
diff --git a/View/GrouperGroups/groupcreateform.ctp b/View/GrouperGroups/groupcreateform.ctp
index 56b232f..a4fb2d3 100644
--- a/View/GrouperGroups/groupcreateform.ctp
+++ b/View/GrouperGroups/groupcreateform.ctp
@@ -86,34 +86,55 @@
-
+
Group Properties
-
-
-
-
-
-
-
+ element('Components/groupproperties', array(
+ 'group' => $groupergroupsdetail
+ )); ?>
Attributes
-
-
-
- Attribute name
- Attribute description
- Action
-
-
-
-
-
-
-
-
-
- View
-
-
-
-
-
-
+ element('Components/groupattributes', array(
+ 'attributes' => $groupergroupsdetail['attributes'],
+ 'baseUrl' => $attrUrlBase
+ )); ?>
+
+
Subscribers
+
+ element('Components/subscriberList', array('subscribers' => array(
+ array(
+ "name" => "Galena Munoz",
+ "email" => "ipsum.cursus.vestibulum@urnaconvalliserat.net",
+ "cou" => "Active, Member",
+ "org" => "Eu Corporation"
+ ),
+ array(
+ "name" => "Doris Santos",
+ "email" => "vitae@non.org",
+ "cou" => "Active, Filesource, Member",
+ "org" => "Aliquam LLC"
+ )
+ ))); ?>
+
diff --git a/View/GrouperGroups/groupowner.ctp b/View/GrouperGroups/groupowner.ctp
index cc0e97d..7a48fcd 100644
--- a/View/GrouperGroups/groupowner.ctp
+++ b/View/GrouperGroups/groupowner.ctp
@@ -8,7 +8,7 @@
Name
Description
Status
-
Action
+
Action
@@ -20,6 +20,15 @@
'controller' => 'groupergroups',
'action' => 'groupinfo',
'?' => array('groupname' => urlencode($group['name']))
+ ),
+ array(
+ 'data-toggle' => 'popover',
+ 'data-content' => $this->element('Components/groupproperties', array(
+ 'group' => $group
+ )),
+ 'data-html' => 'true',
+ 'data-trigger' => 'hover',
+ 'data-placement' => 'top'
)
) ?>
@@ -30,7 +39,7 @@
- Delete Group
+ Disable Group
@@ -38,4 +47,9 @@
+
diff --git a/webroot/css/co-grouper-plugin.css b/webroot/css/co-grouper-plugin.css
index d695144..e275434 100644
--- a/webroot/css/co-grouper-plugin.css
+++ b/webroot/css/co-grouper-plugin.css
@@ -90,7 +90,8 @@ a {
}
#grouper-plugin .table thead th.group.action {
- width: 150px;
+ width: 20%;
+ max-width: 200px;
}
#grouper-plugin .table thead th.attr {