Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
timesheet
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
dotproject
timesheet
Commits
7df9728f
Commit
7df9728f
authored
Dec 09, 2007
by
Jean-Paul Saman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implement configure options to allow selecting the User responsible for approving the timesheets.
parent
b24e9c33
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
197 additions
and
5 deletions
+197
-5
addedit.php
addedit.php
+1
-0
config.php
config.php
+3
-0
configure.php
configure.php
+188
-0
setup.php
setup.php
+5
-5
No files found.
addedit.php
View file @
7df9728f
...
@@ -332,6 +332,7 @@ function showproject()
...
@@ -332,6 +332,7 @@ function showproject()
}
}
}
}
}
}
$timesheet_worked
=
$timesheet_worked
+
$amount
;
$timesheet_worked
=
$timesheet_worked
+
$amount
;
if
(
$amount
>
0
)
if
(
$amount
>
0
)
{
{
...
...
config.php
0 → 100644
View file @
7df9728f
<?php
//Do not edit this file by hand, it will be overwritten by the configuration utility.
$TIMESHEET_CONFIG
[
'items_per_page'
]
=
'4'
;
?>
configure.php
0 → 100644
View file @
7df9728f
<?php
/*
* Name: Timesheet
* Directory: timesheet
* Version: 1.0.1
* Type: user
* UI Name: Timesheet
* UI Icon: timesheet.png
*/
/*
* Copyright (C) 2007, M2X
*
* Authors: Jean-Paul Saman
*
* This file is based upon configure.php from HelpDesk dotProject module
*
* 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
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
// Deny all but system admins
if
(
getDenyEdit
(
'system'
))
{
$AppUI
->
redirect
(
"m=public&a=access_denied"
);
}
@
include_once
(
"./functions/admin_func.php"
);
$CONFIG_FILE
=
"./modules/timesheet/config.php"
;
$AppUI
->
savePlace
();
// Pull all users
$q
=
new
DBQuery
;
$q
->
addQuery
(
'user_id, contact_first_name, contact_last_name'
);
$q
->
addTable
(
'users'
);
$q
->
addTable
(
'contacts'
);
$q
->
addWhere
(
'user_contact = contact_id'
);
$q
->
addOrder
(
'contact_last_name, contact_first_name'
);
$q
->
exec
();
$users
=
array
();
while
(
$row
=
$q
->
fetchRow
())
{
$users
[
$row
[
'user_id'
]]
=
$row
[
'contact_last_name'
]
.
', '
.
$row
[
'contact_first_name'
];
}
/* All config options, their descriptions and their default values are defined
* here. Add new config options here. Type can be "checkbox", "text", "radio" or
* "select". If the type is "radio," it must include a set of buttons. If it's
* "select" then be sure to include a 'list' entry with the options. if the key
* starts with headingXXX then it will just display the contents on the value.
* This is used for grouping.
*/
$config_options
=
array
(
"heading1"
=>
$AppUI
->
_
(
'Timesheet rights'
),
"items_per_page"
=>
array
(
"description"
=>
$AppUI
->
_
(
'Approval by'
),
"value"
=>
''
,
'type'
=>
'select'
,
'list'
=>
$users
)
);
//if this is a submitted page, overwrite the config file.
if
(
dPgetParam
(
$_POST
,
"Save"
,
''
)
!=
''
)
{
if
(
is_writable
(
$CONFIG_FILE
))
{
if
(
!
$handle
=
fopen
(
$CONFIG_FILE
,
'w'
))
{
$AppUI
->
setMsg
(
$CONFIG_FILE
.
" "
.
$AppUI
->
_
(
'cannot be opened'
),
UI_MSG_ERROR
);
exit
;
}
if
(
fwrite
(
$handle
,
"<?php //Do not edit this file by hand, it will be overwritten by the configuration utility.
\n
"
)
===
FALSE
)
{
$AppUI
->
setMsg
(
$CONFIG_FILE
.
" "
.
$AppUI
->
_
(
'cannot be written to'
),
UI_MSG_ERROR
);
exit
;
}
else
{
foreach
(
$config_options
as
$key
=>
$value
){
if
(
substr
(
$key
,
0
,
7
)
==
'heading'
)
continue
;
$val
=
""
;
switch
(
$value
[
'type'
]){
case
'checkbox'
:
$val
=
isset
(
$_POST
[
$key
])
?
"1"
:
"0"
;
break
;
case
'text'
:
$val
=
isset
(
$_POST
[
$key
])
?
$_POST
[
$key
]
:
""
;
break
;
case
'select'
:
$val
=
isset
(
$_POST
[
$key
])
?
$_POST
[
$key
]
:
"0"
;
break
;
case
'radio'
:
$val
=
$_POST
[
$key
];
break
;
default
:
break
;
}
fwrite
(
$handle
,
"
\$
TIMESHEET_CONFIG['"
.
$key
.
"'] = '"
.
$val
.
"';
\n
"
);
}
fwrite
(
$handle
,
"?>
\n
"
);
$AppUI
->
setMsg
(
$CONFIG_FILE
.
" "
.
$AppUI
->
_
(
'has been successfully updated'
),
UI_MSG_OK
);
fclose
(
$handle
);
require
(
$CONFIG_FILE
);
}
}
else
{
$AppUI
->
setMsg
(
$CONFIG_FILE
.
" "
.
$AppUI
->
_
(
'is not writable'
),
UI_MSG_ERROR
);
}
}
else
if
(
dPgetParam
(
$_POST
,
$AppUI
->
_
(
'cancel'
),
''
)
!=
''
){
$AppUI
->
redirect
(
"m=system&a=viewmods"
);
}
//$HELPDESK_CONFIG = array();
require_once
(
$CONFIG_FILE
);
//Read the current config values from the config file and update the array.
foreach
(
$config_options
as
$key
=>
$value
){
if
(
isset
(
$TIMESHEET_CONFIG
[
$key
])){
$config_options
[
$key
][
'value'
]
=
$HELPDESK_CONFIG
[
$key
];
}
}
// setup the title block
$titleBlock
=
new
CTitleBlock
(
'Configure Timesheet Module'
,
'timesheet.png'
,
$m
,
"
$m
.
$a
"
);
$titleBlock
->
addCrumb
(
"?m=system"
,
"System Admin"
);
$titleBlock
->
addCrumb
(
"?m=system&a=viewmods"
,
"Modules"
);
$titleBlock
->
show
();
?>
<form
method=
"post"
>
<table
class=
"std"
>
<?php
foreach
(
$config_options
as
$key
=>
$value
){
?>
<tr>
<?php
// the key starts with hr, then just display the value
if
(
substr
(
$key
,
0
,
7
)
==
'heading'
){
?>
<th
align=
"center"
colspan=
"2"
>
<?=
$value
?>
</th>
<?php
}
else
{
?>
<td
align=
"right"
>
<?=
$value
[
'description'
]
?>
</td>
<td>
<?php
switch
(
$value
[
'type'
]){
case
'checkbox'
:
?>
<input
type=
"checkbox"
name=
"
<?=
$key
?>
"
<?=
$value
[
'value'
]
?
"checked=
\"
checked
\"
"
:
""
?>
>
<?php
break
;
case
'text'
:
?>
<input
type=
"text"
name=
"
<?=
$key
?>
"
value=
"
<?=
$value
[
'value'
]
?>
"
>
<?php
break
;
case
'select'
:
print
arraySelect
(
$value
[
"list"
],
$key
,
'class="text" size="1" id="'
.
$key
.
'" '
.
$value
[
"events"
],
$value
[
"value"
]
);
break
;
case
'radio'
:
foreach
(
$value
[
'buttons'
]
as
$v
=>
$n
)
{
?>
<label><input
type=
"radio"
name=
"
<?php
echo
$key
;
?>
"
id=
"
<?php
echo
$key
;
?>
"
value=
<?php
echo
$v
;
?>
<?php
echo
((
$value
[
'value'
]
==
$v
)
?
"checked"
:
""
);
?>
<?php
echo
$value
[
'events'
];
?>
>
<?php
echo
$n
;
?>
</label
>
<?php
}
break
;
default
:
break
;
}
?>
</td>
<?php
}
?>
</tr>
<?php
}
?>
<tr>
<td
colspan=
"2"
align=
"right"
><input
type=
"Submit"
name=
"Cancel"
value=
"
<?=
$AppUI
->
_
(
'cancel'
)
?>
"
>
<input
type=
"Submit"
name=
"Save"
value=
"
<?=
$AppUI
->
_
(
'save'
)
?>
"
></td>
</tr>
</table>
</form>
setup.php
View file @
7df9728f
...
@@ -47,11 +47,11 @@ if (@$a == 'setup') {
...
@@ -47,11 +47,11 @@ if (@$a == 'setup') {
class
CSetupTimesheet
{
class
CSetupTimesheet
{
//
function configure() { // configure this module
function
configure
()
{
// configure this module
//
global $AppUI;
global
$AppUI
;
//
$AppUI->redirect( 'm=timesheet&a=configure' ); // load module specific configuration page
$AppUI
->
redirect
(
'm=timesheet&a=configure'
);
// load module specific configuration page
//
return true;
return
true
;
//
}
}
function
remove
()
{
function
remove
()
{
$q
=
new
DBQuery
;
$q
=
new
DBQuery
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment