Monotone-Parent: 64522cdf0fe1f7593f86b479ef7b5eb023ff16e1

Monotone-Revision: 094029cd312d7c4e4deaaf59771581fa91e8e8bc

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2006-08-03T21:23:30
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Wolfgang Sourdeau 2006-08-03 21:23:30 +00:00
parent f993d1cee8
commit 68a6ef4b86
3 changed files with 155 additions and 0 deletions

View File

@ -1,5 +1,8 @@
2006-08-03 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* UI/Contacts/UIxContactsFilterPanel.m: clone of
UIxMailFilterPanel, but applicable to contact lists.
* SoObjects/Contacts/NSDictionary+Contact.m ([NSDictionary
-vcardContentFromSOGoContactRecord]): use the new standard methods
created for each type of entry. If a line is determined to not

View File

@ -0,0 +1,124 @@
/*
Copyright (C) 2000-2005 SKYRIX Software AG
This file is part of OpenGroupware.org.
OGo is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
OGo 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 Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public
License along with OGo; see the file COPYING. If not, write to the
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
*/
#include <NGObjWeb/WOComponent.h>
@interface UIxContactsFilterPanel : WOComponent
{
NSString *searchText;
NSString *searchCriteria;
}
@end
#include <SOGoUI/UIxComponent.h>
#include "common.h"
@implementation UIxContactsFilterPanel
static NSArray *filters = nil;
+ (void)initialize {
NSMutableDictionary *md;
NSMutableArray *ma;
unsigned i;
md = [[NSMutableDictionary alloc] initWithCapacity:8];
ma = [[NSMutableArray alloc] initWithCapacity:4];
filters = [ma copy];
[md release]; md = nil;
[ma release]; ma = nil;
}
- (id) init
{
if ((self = [super init]))
{
searchText = nil;
searchCriteria = nil;
}
return self;
}
- (void)dealloc {
[self->searchCriteria release];
[self->searchText release];
[super dealloc];
}
/* accessors */
- (void)setSearchText: (NSString *)_txt
{
ASSIGNCOPY(self->searchText, _txt);
}
- (void)setSearchCriteria: (NSString *)_txt
{
ASSIGNCOPY(self->searchText, _txt);
}
- (NSString *)searchText
{
if (self->searchText == nil)
{
self->searchText =
[[[[self context] request] formValueForKey:@"search"] copy];
}
return self->searchText;
}
- (NSString *)searchCriteria
{
if (self->searchCriteria == nil)
{
self->searchCriteria =
[[[[self context] request] formValueForKey:@"criteria"] copy];
}
return self->searchCriteria;
}
/* filters */
- (NSArray *) filters
{
return filters;
}
/* qualifiers */
- (NSString *) filterLabel
{
#if 1
return [[[self context] page] labelForKey: [self valueForKey:@"filter"]];
#else
return [self valueForKey: @"filter"];
#endif
}
- (NSString *) selectedFilter
{
return [[[self context] request] formValueForKey: @"filterpopup"];
}
@end /* UIxContactsFilterPanel */

View File

@ -0,0 +1,28 @@
<?xml version='1.0' standalone='yes'?>
<container
xmlns="http://www.w3.org/1999/xhtml"
xmlns:var="http://www.skyrix.com/od/binding"
xmlns:const="http://www.skyrix.com/od/constant"
>
<div class="menu" id="searchMenu">
<ul id="searchOptions">
<li id="name_or_address"
onmousedown="return false;"
onmouseup="setSearchCriteria(event);"><var:string label:value="Name or Address"/></li>
</ul>
</div>
<div id="filterPanel">
<var:if condition="hideFrame" const:negate="YES"
><span class="searchBox" style="float: right">
<input id="searchCriteria" name="criteria" type="hidden" var:value="searchCriteria" />
<input id="searchValue" onmousedown="onSearchMouseDown(event);" onclick="popupSearchMenu(event, 'searchMenu');" autocomplete="off" name="search" type="text" var:value="searchText" onchange="onSearchChange();" onblur="onSearchBlur();" onfocus="onSearchFocus(event);" />
</span>
<script type="text/javascript">
initCriteria();
document.searchform.search.focus();
</script>
</var:if>
</div>
</container>