mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-04-14 01:38:51 +00:00
Monotone-Parent: eef1670b5893ad8df47967498257fdeeffe9a146
Monotone-Revision: 141eec0e0735d9102db7806b689a727f14c663f7 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2007-03-18T15:26:53 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
2007-03-18 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* UI/Scheduler/UIxAttendeesEditor.m): new component.
|
||||
|
||||
* UI/Scheduler/UIxComponentEditor.m: no longer a superclass for
|
||||
the task and appointment editors. Now a container component
|
||||
handling the common elements of tasks and events.
|
||||
|
||||
32
UI/Scheduler/UIxAttendeesEditor.h
Normal file
32
UI/Scheduler/UIxAttendeesEditor.h
Normal file
@@ -0,0 +1,32 @@
|
||||
/* UIxAttendeesEditor.h - this file is part of SOGo
|
||||
*
|
||||
* Copyright (C) 2007 Inverse groupe conseil
|
||||
*
|
||||
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
*
|
||||
* This file 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, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This file 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; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef UIXATTENDEESEDITOR_H
|
||||
#define UIXATTENDEESEDITOR_H
|
||||
|
||||
#import <SOGoUI/UIxComponent.h>
|
||||
|
||||
@interface UIxAttendeesEditor : UIxComponent
|
||||
|
||||
@end
|
||||
|
||||
#endif /* UIXATTENDEESEDITOR_H */
|
||||
36
UI/Scheduler/UIxAttendeesEditor.m
Normal file
36
UI/Scheduler/UIxAttendeesEditor.m
Normal file
@@ -0,0 +1,36 @@
|
||||
/* UIxAttendeesEditor.m - this file is part of SOGo
|
||||
*
|
||||
* Copyright (C) 2007 Inverse groupe conseil
|
||||
*
|
||||
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
*
|
||||
* This file 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, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This file 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; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#import <Common/UIxPageFrame.h>
|
||||
|
||||
#import "UIxAttendeesEditor.h"
|
||||
|
||||
@implementation UIxAttendeesEditor
|
||||
|
||||
- (id) defaultAction
|
||||
{
|
||||
[[self parent] setToolbar: @""];
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
@end
|
||||
92
UI/Templates/SchedulerUI/UIxAttendeesEditor.wox
Normal file
92
UI/Templates/SchedulerUI/UIxAttendeesEditor.wox
Normal file
@@ -0,0 +1,92 @@
|
||||
<?xml version='1.0' standalone='yes'?>
|
||||
<!DOCTYPE var:component>
|
||||
<var:component
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:uix="OGo:uix"
|
||||
xmlns:rsrc="OGo:url"
|
||||
xmlns:label="OGo:label"
|
||||
className="UIxPageFrame"
|
||||
const:toolbar="none"
|
||||
const:popup="YES">
|
||||
<script type="text/javascript" rsrc:src="skycalendar.js"><!-- space --></script>
|
||||
<div id="attendeesView">
|
||||
<div id="freeBusyView">
|
||||
<table id="freeBusy"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:uix="OGo:uix"
|
||||
xmlns:rsrc="OGo:url"
|
||||
xmlns:label="OGo:label">
|
||||
<thead>
|
||||
<tr class="freeBusyHeader1"
|
||||
><th class="attendees"><!--space --></th
|
||||
></tr>
|
||||
<tr class="freeBusyHeader2"
|
||||
><th class="attendees"><!--space --></th
|
||||
></tr>
|
||||
<tr class="freeBusyHeader3"
|
||||
><th class="attendees"><!--space --></th
|
||||
></tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<tr class="futureAttendee"
|
||||
><td class="attendees"><input type="text" class="textField"
|
||||
readonly="readonly" /></td
|
||||
></tr>
|
||||
<tr class="attendeeModel"
|
||||
><td class="attendees"><input type="text" class="textField" /></td
|
||||
></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div id="freeBusyFooter">
|
||||
<div id="legend" onmousedown="return false;">
|
||||
<ul>
|
||||
<li><span class="colorBox free"><!-- spacer --></span
|
||||
><var:string label:value="Free" /></li>
|
||||
<li><span class="colorBox busy"><!-- spacer --></span
|
||||
><var:string label:value="Busy" /></li>
|
||||
<li><span class="colorBox maybe-busy"><!-- spacer --></span
|
||||
><var:string label:value="Maybe busy" /></li>
|
||||
<li><span class="colorBox noFreeBusy"><!-- spacer --></span
|
||||
><var:string label:value="No free-busy information" /></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="freeBusyButtons">
|
||||
<a href="#" class="button _disabled"
|
||||
><var:string label:value="Previous slot" /></a>
|
||||
<a href="#" class="button _disabled"
|
||||
><var:string label:value="Next slot" /></a><br />
|
||||
<a href="#" class="button _disabled"
|
||||
><var:string label:value="Previous hour" /></a>
|
||||
<a href="#" class="button _disabled"
|
||||
><var:string label:value="Next hour" /></a>
|
||||
</div>
|
||||
<div id="freeBusyReplicas">
|
||||
<div><var:string label:value="From"
|
||||
/><var:component className="UIxTimeDateControl"
|
||||
const:controlID="startTime"
|
||||
const:dayStartHour="0"
|
||||
const:dayEndHour="23"
|
||||
/></div>
|
||||
<div><var:string label:value="To"
|
||||
/><var:component className="UIxTimeDateControl"
|
||||
const:controlID="endTime"
|
||||
const:dayStartHour="0"
|
||||
const:dayEndHour="23"
|
||||
/></div>
|
||||
</div>
|
||||
<div id="windowButtons">
|
||||
<hr />
|
||||
<a id="cancelButton" href="#" class="button"
|
||||
><var:string label:value="Cancel"/></a>
|
||||
<a id="okButton" href="#" class="button"
|
||||
><var:string label:value="OK"/></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</var:component>
|
||||
184
UI/WebServerResources/UIxAttendeesEditor.css
Normal file
184
UI/WebServerResources/UIxAttendeesEditor.css
Normal file
@@ -0,0 +1,184 @@
|
||||
DIV#attendeesView
|
||||
{ position: absolute;
|
||||
left: 1em;
|
||||
right: 1em;
|
||||
top: 1em;
|
||||
bottom: 1em;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px; }
|
||||
|
||||
DIV#freeBusyView
|
||||
{ position: static;
|
||||
margin-left: 12.5em;
|
||||
overflow: auto;
|
||||
border-top: 2px solid #222;
|
||||
border-left: 2px solid #222;
|
||||
border-right: 1px solid #fff;
|
||||
border-bottom: 1px solid #fff;
|
||||
-moz-border-top-colors: ThreeDShadow ThreeDDarkShadow;
|
||||
-moz-border-left-colors: ThreeDShadow ThreeDDarkShadow; }
|
||||
|
||||
TABLE#freeBusy TD,
|
||||
TABLE#freeBusy TH
|
||||
{ padding: 0px;
|
||||
margin: 0px;
|
||||
border: 0px; }
|
||||
|
||||
TABLE#freeBusy TH.attendees,
|
||||
TABLE#freeBusy TD.attendees
|
||||
{ position: absolute;
|
||||
padding: 0px .5em;
|
||||
margin: 0px;
|
||||
width: 11em;
|
||||
border: 0px !important;
|
||||
background: #dbdad5 !important;
|
||||
overflow: hidden;
|
||||
left: 0px; }
|
||||
|
||||
TABLE#freeBusy TD.attendees IMG
|
||||
{ position: absolute;
|
||||
left: 0em;
|
||||
top: .5em; }
|
||||
|
||||
TABLE#freeBusy TD.attendees INPUT
|
||||
{ width: 10em;
|
||||
margin: 0px;
|
||||
margin-left: 10px; }
|
||||
|
||||
TABLE#freeBusy TR.freeBusyHeader2 TH
|
||||
{ font-weight: normal; }
|
||||
|
||||
TABLE#freeBusy TR.freeBusyHeader1 TH,
|
||||
TABLE#freeBusy TR.freeBusyHeader2 TH,
|
||||
TABLE#freeBusy TR.freeBusyHeader3 TH
|
||||
{ text-align: left;
|
||||
color: #777;
|
||||
background: #fff;
|
||||
border-collapse: collapse; }
|
||||
|
||||
TABLE#freeBusy TR.freeBusyHeader2 TH
|
||||
{ width: 6em; }
|
||||
|
||||
TABLE#freeBusy TR.freeBusyHeader3 TH
|
||||
{ border-bottom: 1px solid #cecbff; }
|
||||
|
||||
TABLE#freeBusy TR.attendeeModel
|
||||
{ display: none; }
|
||||
|
||||
TABLE#freeBusy TR.futureAttendee TD
|
||||
{ border-right: none; }
|
||||
|
||||
TABLE#freeBusy TD
|
||||
{ border-bottom: 1px solid #cecbff;
|
||||
border-right: 1px solid #cecbff;
|
||||
height: 2em;
|
||||
background-color: #fff; }
|
||||
|
||||
TABLE#freeBusy TD.noFreeBusy
|
||||
{ background-color: #559;
|
||||
border-right: 0px; }
|
||||
|
||||
SPAN.freeBusyZoneElement
|
||||
{ display: block;
|
||||
float: left;
|
||||
width: 25%;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px; }
|
||||
|
||||
TABLE#freeBusy TR.freeBusyHeader3 SPAN.freeBusyZoneElement
|
||||
{ height: .25em; }
|
||||
|
||||
TABLE#freeBusy TD SPAN.freeBusyZoneElement
|
||||
{ height: 100%; }
|
||||
|
||||
SPAN[class~="colorBox"].free,
|
||||
TABLE#freeBusy TD SPAN.freeBusyZoneElement
|
||||
{ background-color: #8ca6bd; }
|
||||
|
||||
TABLE#freeBusy TH SPAN[class~="freeBusyZoneElement"].busy
|
||||
{ background-color: #c55 !important; }
|
||||
|
||||
DIV#freeBusyFooter
|
||||
{ position: absolute;
|
||||
height: 14em;
|
||||
left: 0px;
|
||||
right: 0px;
|
||||
bottom: 0px;
|
||||
line-height: 2em;
|
||||
text-align: right; }
|
||||
|
||||
DIV#legend
|
||||
{ margin-left: 1em;
|
||||
text-align: left; }
|
||||
|
||||
DIV#legend UL
|
||||
{ cursor: default;
|
||||
float: left;
|
||||
width: 30%;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
line-height: 1.5em;
|
||||
list-style-type: none;
|
||||
list-style-image: none; }
|
||||
|
||||
DIV#legend UL LI
|
||||
{ white-space: nowrap;
|
||||
margin: 0px;
|
||||
padding: 0px; }
|
||||
|
||||
DIV#legend UL IMG
|
||||
{ margin-right: .5em; }
|
||||
|
||||
DIV#legend UL LI SPAN.colorBox
|
||||
{ float: left;
|
||||
margin-right: .5em; }
|
||||
|
||||
SPAN.colorBox
|
||||
{ display: block;
|
||||
float: right;
|
||||
border: 1px solid #333;
|
||||
margin: .12em;
|
||||
width: 1em;
|
||||
height: .75em; }
|
||||
|
||||
SPAN[class~="colorBox"].busy,
|
||||
SPAN[class~="freeBusyZoneElement"].busy
|
||||
{ background-color: #5a6b79 !important; }
|
||||
|
||||
SPAN[class~="colorBox"].maybe-busy,
|
||||
SPAN[class~="freeBusyZoneElement"].maybe-busy
|
||||
{ background-color: #adc0d0 !important; }
|
||||
|
||||
SPAN[class~="colorBox"].noFreeBusy
|
||||
{ background-color: #559; }
|
||||
|
||||
DIV#freeBusyButtons
|
||||
{ position: absolute;
|
||||
top: 6em;
|
||||
left: 0px;
|
||||
width: 30em;
|
||||
height: 4em;
|
||||
text-align: center; }
|
||||
|
||||
DIV#freeBusyButtons A.button
|
||||
{ width: 5em; }
|
||||
|
||||
DIV#freeBusyReplicas
|
||||
{ position: absolute;
|
||||
top: 6em;
|
||||
right: 0px;
|
||||
width: 30em;
|
||||
height: 4em; }
|
||||
|
||||
DIV#freeBusyReplicas LABEL
|
||||
{ line-height: 1.5em; }
|
||||
|
||||
DIV#windowButtons
|
||||
{ position: absolute;
|
||||
bottom: 0px;
|
||||
left: 0px;
|
||||
right: 0px;
|
||||
height: 4em;
|
||||
text-align: right; }
|
||||
Reference in New Issue
Block a user