phpgroupware-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Phpgroupware-users] New participant select option


From: Don Graver \(dgraver\)
Subject: RE: [Phpgroupware-users] New participant select option
Date: Mon, 14 Jun 2004 11:03:59 +0100

I'll see what I can do.  Unfortunately a patch is tough to create since
my Calendar has all sorts of minor tweaks.  I will have to download the
latest CVS and try to upgrade it with the participant selection.  I'll
get back to you on this.

P.s. any one have a "forgot password" patch?

-- Don Graver
 

>-----Original Message-----
>From: address@hidden 
>[mailto:address@hidden 
>On Behalf Of Dave Hall
>Sent: Monday, June 14, 2004 11:49 AM
>To: phpgw-users
>Subject: Re: [Phpgroupware-users] New participant select option
>
>Hi Don,
>
>I am working on getting a prioritised list of features for the 
>HEAD version of calendar.  I am happy to look at including 
>something like this.  A nicely formatted patch always helps 
>motivate me ;)
>
>Cheers
>
>Dave
>
>
>On Mon, 2004-06-14 at 19:39, Don Graver (dgraver) wrote:
>> I asked this question a few weeks ago about how to better select 
>> participants than from a straight select box, and I think I 
>have come 
>> up with a good solution.  I use the javascript code from 
>> http://www.mattkruse.com/javascript/selectbox/.  Once select box 
>> contains all the users, and the other contains all those that are 
>> being invited.  Below is some sample things of what I had to 
>do to get 
>> it to work...nothing major.
>> 
>> 
>> 
>> >From class.uicalendar.inc.php:
>> <snip>
>> 
>switch($GLOBALS['phpgw_info']['user']['preferences']['common']['accoun
>> t_
>> selection']) {
>> 
>> ...<snip>...                       
>> 
>> default:
>> foreach($users as $id => $user_array)
>> {
>> if($id != intval($event['owner']))
>> {
>> //Added by DG
>> //Used for better participant selection, separates included from 
>> excluded participants
>> 
>> if ($event['participants'][$id]){
>> $include_participants .= '    <option value="' .
>> $id.$event['participants'][$id] . '" 
>> SELECTED>('.$user_array['type'].')
>> '.$user_array['name'].'</option>'."\n";
>> }else{
>> $exclude_participants .= '    <option value="' .
>> $id.$event['participants'][$id] . '">('.$user_array['type'].') 
>> '.$user_array['name'].'</option>'."\n";
>> }
>> //End edit by DG
>> 
>> $str .= '    <option value="' . $id.$event['participants'][$id] .
>> '"'.($event['participants'][$id]?'
>> selected':'').'>('.$user_array['type'].')
>> '.$user_array['name'].'</option>'."\n";
>> 
>> //Added by DG
>> //Used for better participant selection
>> $str2 .= '    <option value="' . $id.$event['participants'][$id] .
>> '"'.($event['participants'][$id]?'
>> selected':'').'>('.$user_array['type'].')
>> '.$user_array['name'].'</option>'."\n";
>> //End edit by DG
>> }
>> }
>> $var['participants'] = array
>> (
>> 'field' => lang('Participants'),
>> 'data'  => "\n".'   <select name="participants[]" multiple
>> size="7">'."\n".$str.'   </select>'
>> );
>> 
>> //Added by DG
>> //Used for better participant selection, overrides variable set above
>> 
>> $var['participants']['data']='<SCRIPT LANGUAGE="JavaScript"
>> src="/channels-de/calendar/inc/selectbox2.js"></SCRIPT>'."\n\n";
>> $var['participants']['data'].=<<<EOF
>> (In some browsers, you can double-click the options.) <p> <TABLE 
>> BORDER=0> <TR> <TD> <b>Exclude</b><br> <SELECT 
>> NAME="excluded_participants" MULTIPLE SIZE=10 > 
>$exclude_participants 
>> </SELECT> </TD> <TD VALIGN=MIDDLE ALIGN=CENTER> <INPUT TYPE="button" 
>> NAME="right" VALUE="&gt;&gt;"
>> 
>ONCLICK="moveSelectedOptions(this.form['excluded_participants'],this.f
>> or 
>> 
>m.elements[findIncludeParticipantsIndex()],true,this.form['move
>pattern1'
>> ].value)"><BR><BR>
>> <INPUT TYPE="button" NAME="right" VALUE="All &gt;&gt;"
>> 
>ONCLICK="moveAllOptions(this.form['excluded_participants'],this.form.e
>> le 
>> 
>ments[findIncludeParticipantsIndex()],true,this.form['movepattern1'].v
>> al
>> ue)"><BR><BR>
>> <INPUT TYPE="button" NAME="left" VALUE="&lt;&lt;"
>> 
>ONCLICK="moveSelectedOptions(this.form.elements[findIncludeParticipant
>> sI 
>> 
>ndex()],this.form['excluded_participants'],true,this['form'].movepatte
>> rn
>> 1.value)"><BR><BR>
>> <INPUT TYPE="button" NAME="left" VALUE="All &lt;&lt;"
>> 
>ONCLICK="moveAllOptions(this.form.elements[findIncludeParticipantsInde
>> x( 
>> 
>)],this.form['excluded_participants'],true,this.form['movepattern1'].v
>> al
>> ue)">
>> </TD>
>> <TD>
>> <b>Include</b><br>
>> 
>> <SELECT NAME="participants[]"  SIZE=10 multiple > 
>> $include_participants </SELECT> </TD> </TR> <TR> <TD COLSPAN="3"> Do 
>> not allow moving of options matching pattern:<BR><INPUT TYPE="text"
>> NAME="movepattern1" VALUE="">
>> <!--<input type="button" name="test" 
>onclick="selectAllParticipants()"
>> value="test">-->
>> </TD>
>> </TR>
>> </TABLE>
>> EOF;
>> //End edit by DG
>> break;
>> 
>> <snip>...
>> 
>> 
>> I also had to add the following javascript functions to the 
>> selectbox.js file to get it to work, as well as add an 
>onsubmit to the 
>> form in class.uicalender.inc.php to call selectAllParticipants() so 
>> that the participants would be highlighted within the 
>selectbox prior 
>> to submission.  Here are the added js functions:
>> 
>> >From selectbox2.js...
>> 
>> //Added by DG
>> function findIncludeParticipantsIndex(){ var toIndex='not 
>found'; for 
>> (var i=0; i < document.forms.length; i++) {
>>   for (var k=0; k< document.forms[i].elements.length; k++) {  
>>     if (document.forms[i].elements[k].name == 
>'excluded_participants'){ 
>>       toIndex= k + 5; 
>>       break;
>>   }
>> }
>> return toIndex;
>> }
>>  
>> function selectAllParticipants(){
>>  
>> 
>selectAllOptions(document.forms[3].elements[findIncludeParticipantsInd
>> ex
>> ()]);
>> }
>> 
>> 
>> 
>> Hope this helps some people...as my users are quite happy with the 
>> selection process now.
>> 
>> Don
>> 
>> 
>> _______________________________________________
>> Phpgroupware-users mailing list
>> address@hidden
>> http://lists.gnu.org/mailman/listinfo/phpgroupware-users
>
>
>
>_______________________________________________
>Phpgroupware-users mailing list
>address@hidden
>http://lists.gnu.org/mailman/listinfo/phpgroupware-users
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]