Commit 4052831b authored by Frank Bergmann's avatar Frank Bergmann

- objectified (very ugly!!!) im_user_absences

parent 813df5db
......@@ -53,7 +53,9 @@ begin
create table im_user_absences (
absence_id integer
constraint im_user_absences_pk
primary key,
primary key
constraint im_user_absences_id_fk
references acs_objects,
absence_name varchar(1000),
......@@ -281,9 +283,9 @@ drop function inline_0 ();
insert into im_categories(category_id, category, category_type)
values (16000, 'Active', 'Intranet Absences Status');
values (16000, 'Active', 'Intranet Absence Status');
insert into im_categories(category_id, category, category_type)
values (16002, 'Deleted', 'Intranet Absences Status');
values (16002, 'Deleted', 'Intranet Absence Status');
......@@ -294,13 +296,13 @@ values (16002, 'Deleted', 'Intranet Absences Status');
create or replace view im_user_absence_status as
select category_id as absence_status_id, category as absence_status
from im_categories
where category_type = 'Intranet Absences Status'
where category_type = 'Intranet Absence Status'
and (enabled_p is null or enabled_p = 't');
create or replace view im_user_absence_types as
select category_id as absence_type_id, category as absence_type
from im_categories
where category_type = 'Intranet Absences Type'
where category_type = 'Intranet Absencey Type'
and (enabled_p is null or enabled_p = 't');
......
......@@ -30,16 +30,36 @@ ad_page_contract {
@author mai-bee@gmx.net
} {
{absence_id:integer 0}
{absence_name ""}
owner_id:notnull
start_date:notnull
end_date:notnull
description:notnull
contact_info:notnull
absence_type_id:notnull
absence_type_id:integer
{ absence_status_id:integer 16000}
{ submit_save "" }
{ submit_del "" }
}
# ---------------------------------------------------------------
# Permission
# ---------------------------------------------------------------
set current_user_id [ad_maybe_redirect_for_registration]
if {![im_permission $current_user_id "add_absences"]} {
ad_return_complaint "[_ intranet-timesheet2.lt_Insufficient_Privileg]" "
<li>[_ intranet-timesheet2.lt_You_dont_have_suffici]"
}
# ---------------------------------------------------------------
#
# ---------------------------------------------------------------
set exception_count 0
set exception_text ""
......@@ -57,6 +77,11 @@ if {![regexp {^[0-9][0-9][0-9][0-9]\-[0-9][0-9]\-[0-9][0-9]$} $end_date]} {
}
if {"" == $absence_name} { set absence_name $description }
set absence_objectified_p [db_string ofied {select count(*) from acs_object_types where object_type = 'im_user_absence'}]
regexp {[0-9]*-[0-9]*-[0-9]*} $start_date start_date_int
regexp {[0-9]*-[0-9]*-[0-9]*} $end_date end_date_int
......@@ -81,7 +106,6 @@ if {"" != $submit_del} {
}
}
if {"" != $submit_save} {
set exists [db_string absence_exists "
......@@ -114,6 +138,24 @@ if {"" != $submit_save} {
} errmsg] {
ad_return_complaint "Argument Error" " <pre>$errmsg</pre>"
}
if {$absence_objectified_p} {
db_string ofied "
SELECT acs_object__new(
:absence_id,
'im_user_absence',
now(),
:current_user_id,
'[ns_conn peeraddr]',
null,
'f'
)
"
}
}
if [catch {
......@@ -132,6 +174,38 @@ if {"" != $submit_save} {
return
}
if {$absence_objectified_p} {
db_dml update_absences "
UPDATE im_user_absences set
absence_name = :absence_name,
absence_status_id = :absence_status_id
WHERE
absence_id = :absence_id
"
}
set obj_exists_p [db_string oexists "select count(*) from acs_objects where object_id = :absence_id"]
if {!$obj_exists_p} {
db_dml insert_object "
INSERT into acs_objects (
object_id,
object_type,
creation_date,
creation_user,
creation_ip,
security_inherit_p
) values (
:absence_id,
'im_user_absence',
now(),
:current_user_id,
'[ns_conn peeraddr]',
'f'
)
"
}
}
db_release_unused_handles
......
......@@ -8,25 +8,49 @@
<TABLE border=0>
<TBODY>
<TR>
<TD class=rowtitle align=middle colSpan=2>#intranet-timesheet2.Absence#</TD></TR>
<TD class=rowtitle align=middle colSpan=2>#intranet-timesheet2.Absence#</TD>
</TR>
<TR class=rowodd>
<TD>#intranet-timesheet2.User#</TD>
<TD><a href="/intranet/users/view?[export_url_vars owner_id#">@owner_name@</a></TD></TR>
<TD><a href="/intranet/users/view?[export_url_vars owner_id#">@owner_name@</a></TD>
</TR>
<IF @absence_objectified_p@>
<TR class=rowodd>
<TD><%= [lang::message::lookup "" intranet-timesheet2.Absence_Title "Title"] %></TD>
<TD><input type=text name=absence_name value="@absence_name@" size=60></TD>
</TR>
<!--
<TR class=rowodd>
<TD><%= [lang::message::lookup "" intranet-timesheet2.Absence_Status "Absence Status"] %></TD>
<TD><%= [im_category_select "Intranet Absence Status" absence_status_id $absence_status_id] %></TD>
</TR>
-->
</IF>
<TR class=rowodd>
<TD>#intranet-timesheet2.Absence_Type_1#</TD>
<TD><%= [im_category_select "Intranet Absence Type" absence_type_id @absence_type_id@] %></TD>
</TR>
<TR class=roweven>
<TD>#intranet-timesheet2.Start_Date#</TD>
<TD><input name="start_date" type="text" size="30" value=@start_date@></TD></TR>
<TD><input name="start_date" type="text" size="30" value=@start_date_pretty@></TD>
</TR>
<TR class=rowodd>
<TD>#intranet-timesheet2.End_Date#</TD>
<TD><input name="end_date" type="text" size="30" value=@end_date@></TD></TR>
<TD><input name="end_date" type="text" size="30" value=@end_date_pretty@></TD>
</TR>
<TR class=roweven>
<TD>#intranet-timesheet2.Description#</TD>
<TD><textarea name="description" cols="50" rows="5">@description@</textarea></TD></TR>
<TD><textarea name="description" cols="50" rows="5">@description@</textarea></TD>
</TR>
<TR class=rowodd>
<TD>#intranet-timesheet2.Contact_Info#</TD>
<TD><textarea name="contact_info" cols="50" rows="5">@contact_info@</textarea></TD></TR>
<TR class=rowodd>
<TD>#intranet-timesheet2.Absence_Type_1#</TD>
<TD><%= [im_category_select "Intranet Absence Type" absence_type_id @absence_type_id@] %></TD></TR>
<TD><textarea name="contact_info" cols="50" rows="5">@contact_info@</textarea></TD>
</TR>
</TBODY></TABLE>
<input type=submit name=submit_save value=#intranet-timesheet2.Save#>&nbsp;
<input type=submit name=submit_del value=#intranet-timesheet2.Delete#>
......
......@@ -33,6 +33,9 @@ if {[info exists return_url] && "" == $return_url} {
set date_format "YYYY-MM-DD"
set absence_objectified_p [db_string ofied {select count(*) from acs_object_types where object_type = 'im_user_absence'}]
# ---------------------------------------------------------------
# Permission
# ---------------------------------------------------------------
......@@ -48,19 +51,13 @@ if {![im_permission $user_id "add_absences"]} {
if {[info exists absence_id] && $absence_id > 0} {
set result [db_0or1row absence_data "
select
owner_id,
description,
contact_info,
absence_type_id,
to_char(a.start_date, :date_format) as start_date,
to_char(a.end_date, :date_format) as end_date,
select *,
to_char(a.start_date, :date_format) as start_date_pretty,
to_char(a.end_date, :date_format) as end_date_pretty,
im_name_from_user_id(a.owner_id) as owner_name
from
im_user_absences a
where
a.absence_id = :absence_id
"]
from im_user_absences a
where a.absence_id = :absence_id
"]
if { $result != 1 } {
ad_return_complaint "[_ intranet-timesheet2.Bad_Absence]" "
......@@ -79,11 +76,13 @@ if {[info exists absence_id] && $absence_id > 0} {
set owner_id $user_id
set absence_id [im_new_object_id]
db_1row user_name_date "select im_name_from_user_id(:user_id) as owner_name from dual"
set start_date [db_string get_today "select sysdate from dual"]
set end_date [db_string get_today "select sysdate from dual"]
set start_date_pretty [db_string get_today "select sysdate from dual"]
set end_date_pretty [db_string get_today "select sysdate from dual"]
set description ""
set absence_name ""
set contact_info ""
set absence_type_id ""
set absence_status_id ""
set page_title "[_ intranet-timesheet2.New_Absence]"
set context_bar [im_context_bar $page_title]
......
......@@ -33,24 +33,23 @@ if {[info exists return_url] && "" == $return_url} {
}
set date_format "YYYY-MM-DD"
set absence_objectified_p [db_string ofied {select count(*) from acs_object_types where object_type = 'im_user_absence'}]
# ---------------------------------------------------------------
# Get Absence Data
# ---------------------------------------------------------------
if {[catch {db_1row absence_data "
select
a.owner_id,
description,
contact_info,
to_char(a.start_date, :date_format) as start_date,
to_char(a.end_date, :date_format) as end_date,
select a.*,
to_char(a.start_date, :date_format) as start_date_pretty,
to_char(a.end_date, :date_format) as end_date_pretty,
im_name_from_user_id(owner_id) as owner_name,
im_category_from_id(a.absence_type_id) as absence_type
from
im_user_absences a
where
a.absence_id = :absence_id
from im_user_absences a
where a.absence_id = :absence_id
"} errmsg]} {
ad_return_complaint 1 "Unkown Absence: \#$absence_id"
ad_script_abort
......@@ -85,6 +84,35 @@ if {$user_id == $owner_id} {
}
set absence_name_html ""
if {$absence_objectified_p} {
set absence_name_html "
<TR class=roweven>
<TD>[lang::message::lookup "" intranet-timesheet2.Absence_Name "Absence Name"]</TD>
<TD>$absence_name</TD>
</TR>
"
if {"" == $absence_name} { set absence_name_html "" }
}
set absence_status_html ""
if {$absence_objectified_p} {
set absence_status [im_category_from_id $absence_status_id]
set absence_status_html "
<TR class=roweven>
<TD>[lang::message::lookup "" intranet-timesheet2.Absence_Status "Absence Status"]</TD>
<TD>$absence_status</TD>
</TR>
"
if {"" == $absence_status} { set absence_status_html "" }
}
set page_body "
<form action=\"new.tcl\" method=GET>
[export_form_vars absence_id return_url]
......@@ -92,25 +120,35 @@ set page_body "
<TABLE border=0>
<TBODY>
<TR>
<TD class=rowtitle align=middle colSpan=2>[_ intranet-timesheet2.Absence]</TD></TR>
<TD class=rowtitle align=middle colSpan=2>[_ intranet-timesheet2.Absence]</TD>
</TR>
$absence_name_html
<TR class=rowodd>
<TD>[_ intranet-timesheet2.User]</TD>
<TD><a href=\"/intranet/users/view=owner_id=$owner_id\">$owner_name</a></TD></TR>
<TD><a href=\"/intranet/users/view=owner_id=$owner_id\">$owner_name</a></TD>
</TR>
<TR class=roweven>
<TD>[_ intranet-timesheet2.Start_Date]</TD>
<TD>$start_date</TD></TR>
<TD>$start_date_pretty</TD>
</TR>
<TR class=rowodd>
<TD>[_ intranet-timesheet2.End_Date]</TD>
<TD>$end_date</TD></TR>
<TD>$end_date_pretty</TD>
</TR>
<TR class=roweven>
<TD>[_ intranet-timesheet2.Description]</TD>
<TD>$description</TD></TR>
<TD>$description</TD>
</TR>
<TR class=rowodd>
<TD>[_ intranet-timesheet2.Contact_Info]</TD>
<TD>$contact_info</TD></TR>
<TD>$contact_info</TD>
</TR>
<TR class=rowodd>
<TD>[_ intranet-timesheet2.Absence_Type_1]</TD>
<TD>$absence_type</TD></TR>
<TD>$absence_type</TD>
</TR>
$absence_status_html
$edit_html
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment