2008-07-14 21:54:50 +08:00
< ? php
//
// ZoneMinder web group detail view file, $Date$, $Revision$
2008-07-25 17:48:16 +08:00
// Copyright (C) 2001-2008 Philip Coombes
2008-07-14 21:54:50 +08:00
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
2016-12-26 23:23:16 +08:00
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
2008-07-14 21:54:50 +08:00
//
2017-09-29 00:37:15 +08:00
if ( ! canEdit ( 'Groups' ) ) {
$view = 'error' ;
return ;
2008-07-14 21:54:50 +08:00
}
2017-09-29 00:37:15 +08:00
if ( ! empty ( $_REQUEST [ 'gid' ]) ) {
2017-10-05 04:40:09 +08:00
$newGroup = new Group ( $_REQUEST [ 'gid' ] );
2017-09-29 00:37:15 +08:00
} else {
2017-10-05 04:40:09 +08:00
$newGroup = new Group ();
2008-07-14 21:54:50 +08:00
}
2017-10-05 04:40:09 +08:00
xhtmlHeaders ( __FILE__ , translate ( 'Group' ) . ' - ' . $newGroup -> Name () );
2008-07-14 21:54:50 +08:00
?>
< body >
< div id = " page " >
< div id = " header " >
2017-10-05 04:40:09 +08:00
< h2 >< ? php echo translate ( 'Group' ) ?> - <?php echo $newGroup->Name() ?></h2>
2008-07-14 21:54:50 +08:00
</ div >
< div id = " content " >
2014-12-05 07:44:23 +08:00
< form name = " groupForm " method = " post " action = " <?php echo $_SERVER['PHP_SELF'] ?> " >
< input type = " hidden " name = " view " value = " <?php echo $view ?> " />
2008-07-14 21:54:50 +08:00
< input type = " hidden " name = " action " value = " group " />
2017-10-05 04:40:09 +08:00
< input type = " hidden " name = " gid " value = " <?php echo $newGroup->Id () ?> " />
2017-09-29 00:37:15 +08:00
< table id = " contentTable " class = " major " >
2008-07-14 21:54:50 +08:00
< tbody >
< tr >
2015-05-10 21:10:30 +08:00
< th scope = " row " >< ? php echo translate ( 'Name' ) ?> </th>
2017-10-06 04:12:12 +08:00
< td >< input type = " text " name = " newGroup[Name] " value = " <?php echo validHtmlStr( $newGroup->Name ()) ?> " oninput = " configureButtons(this); " /></ td >
2008-07-14 21:54:50 +08:00
</ tr >
< tr >
2017-09-29 00:37:15 +08:00
< th scope = " row " >< ? php echo translate ( 'ParentGroup' ) ?> </th>
< td >
< ? php
2017-10-05 04:40:09 +08:00
$Groups = array ();
foreach ( Group :: find_all ( ) as $Group ) {
$Groups [ $Group -> Id ()] = $Group ;
}
# This array is indexed by parent_id
$children = array ();
foreach ( $Groups as $id => $Group ) {
if ( $Group -> ParentId () != null ) {
if ( ! isset ( $children [ $Group -> ParentId ()] ) )
$children [ $Group -> ParentId ()] = array ();
$children [ $Group -> ParentId ()][] = $Group ;
2017-09-29 00:37:15 +08:00
}
2017-10-05 04:40:09 +08:00
}
function get_Id ( $G ) {
return $G -> Id ();
}
function get_children ( $Group ) {
global $children ;
$kids = array ();
if ( isset ( $children [ $Group -> Id ()] ) ) {
$kids += array_map ( 'get_Id' , $children [ $Group -> Id ()] );
foreach ( $children [ $Group -> Id ()] as $G ) {
foreach ( get_children ( $G ) as $id ) {
$kids [] = $id ;
}
}
}
return $kids ;
}
$kids = get_children ( $newGroup );
$kids [] = $newGroup -> Id ();
2017-10-05 22:46:04 +08:00
$options = array ( '' => 'None' );
2017-10-10 22:38:13 +08:00
foreach ( dbFetchAll ( 'SELECT Id,Name from Groups WHERE Id NOT IN (' . implode ( ',' , array_map ( function (){ return '?' ;}, $kids )) . ') ORDER BY Name' , null , $kids ) as $option ) {
2017-10-05 22:46:04 +08:00
$options [ $option [ 'Id' ]] = $option [ 'Name' ];
2017-10-05 04:40:09 +08:00
}
echo htmlSelect ( 'newGroup[ParentId]' , $options , $newGroup -> ParentId (), array ( 'onchange' => 'configureButtons(this);' ));
2017-09-29 00:37:15 +08:00
?>
</ td >
</ tr >
< tr >
< th scope = " row " >< ? php echo translate ( 'Monitor' ) ?> </th>
2009-05-13 18:48:58 +08:00
< td >
2017-10-01 02:19:32 +08:00
< select name = " newGroup[MonitorIds][] " size = " 4 " multiple = " multiple " onchange = " configureButtons(this); " >
2008-07-14 21:54:50 +08:00
< ? php
2017-09-29 00:37:15 +08:00
$monitors = dbFetchAll ( 'SELECT Id,Name FROM Monitors ORDER BY Sequence ASC' );
2017-10-05 04:40:09 +08:00
$monitorIds = array_flip ( explode ( ',' , $newGroup -> MonitorIds () ) );
2017-09-29 00:37:15 +08:00
foreach ( $monitors as $monitor ) {
if ( visibleMonitor ( $monitor [ 'Id' ] ) ) {
2008-07-14 21:54:50 +08:00
?>
2017-10-01 02:19:32 +08:00
< option value = " <?php echo $monitor['Id'] ?> " < ? php if ( array_key_exists ( $monitor [ 'Id' ], $monitorIds ) ) { ?> selected="selected"<?php } ?>><?php echo validHtmlStr($monitor['Name']) ?></option>
2008-07-14 21:54:50 +08:00
< ? php
}
2017-09-29 00:37:15 +08:00
}
2008-07-14 21:54:50 +08:00
?>
</ select >
</ td >
</ tr >
</ tbody >
</ table >
< div id = " contentButtons " >
2017-10-05 04:40:09 +08:00
< input type = " submit " name = " saveBtn " value = " <?php echo translate('Save') ?> " < ? php $newGroup -> Id () ? '' : ' disabled="disabled"' ?> />
2015-05-10 21:10:30 +08:00
< input type = " button " value = " <?php echo translate('Cancel') ?> " onclick = " closeWindow() " />
2008-07-14 21:54:50 +08:00
</ div >
</ form >
</ div >
</ div >
</ body >
</ html >