Index: openacs-4/packages/contacts-portlet/contacts-portlet.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/contacts-portlet/contacts-portlet.info,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/contacts-portlet/contacts-portlet.info 14 Jun 2005 06:49:05 -0000 1.1
@@ -0,0 +1,28 @@
+
+
+
+
+ Contacts Portlet
+ Contacts Portlets
+ f
+ f
+
+
+ Bjoern Kiesbye
+ Malte Sussdorff
+ Portlet for the Contacts Package.
+ Cognovis
+ Portlet for the Contacts Package.
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
Index: openacs-4/packages/contacts-portlet/sql/postgresql/contacts-portlet-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/contacts-portlet/sql/postgresql/contacts-portlet-create.sql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/contacts-portlet/sql/postgresql/contacts-portlet-create.sql 14 Jun 2005 06:49:05 -0000 1.1
@@ -0,0 +1,221 @@
+--
+-- Copyright (C) 2005 Cognovis
+--
+-- This file is part of dotLRN.
+--
+-- dotLRN 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.
+--
+-- dotLRN 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.
+--
+
+--
+-- /project-manager-portlet/sql/oracle/project-manager-portlet-create.sql
+--
+
+-- Creates Project Manager portlet
+
+-- Copyright (C) 2005 Cognovis
+-- @author Bjoern Kiesbye (kiesbye@theservice.de)
+-- @creation-date 2005-08-06
+
+
+-- This is free software distributed under the terms of the GNU Public
+-- License version 2 or higher. Full text of the license is available
+-- from the GNU Project: http://www.fsf.org/copyleft/gpl.html
+
+
+create function inline_0()
+returns integer as '
+declare
+ ds_id portal_datasources.datasource_id%TYPE;
+begin
+ ds_id := portal_datasource__new(
+ ''contacts_portlet'',
+ ''Displays Contacts''
+ );
+
+
+ -- the standard 4 params
+
+ -- shadeable_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''shadeable_p'',
+ ''t''
+);
+
+
+ -- hideable_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''hideable_p'',
+ ''t''
+);
+
+ -- user_editable_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''user_editable_p'',
+ ''t''
+);
+
+ -- shaded_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''shaded_p'',
+ ''f''
+);
+
+ -- link_hideable_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''link_hideable_p'',
+ ''t''
+);
+
+
+ perform portal_datasource__set_def_param(
+ ds_id,
+ ''t'',
+ ''f'',
+ ''scoped_p'',
+ ''t''
+ );
+
+
+
+ return 0;
+
+end;' language 'plpgsql';
+select inline_0();
+drop function inline_0();
+
+
+create function inline_0()
+returns integer as '
+declare
+ foo integer;
+begin
+ -- create the implementation
+ foo := acs_sc_impl__new (
+ ''portal_datasource'',
+ ''contacts_portlet'',
+ ''contacts_portlet''
+ );
+
+ return 0;
+
+end;' language 'plpgsql';
+select inline_0();
+drop function inline_0();
+
+
+
+create function inline_0()
+returns integer as '
+declare
+ foo integer;
+begin
+
+ -- add all the hooks
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''contacts_portlet'',
+ ''GetMyName'',
+ ''contacts_portlet::get_my_name'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''contacts_portlet'',
+ ''GetPrettyName'',
+ ''contacts_portlet::get_pretty_name'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''contacts_portlet'',
+ ''Link'',
+ ''contacts_portlet::link'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''contacts_portlet'',
+ ''AddSelfToPage'',
+ ''contacts_portlet::add_self_to_page'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''contacts_portlet'',
+ ''Show'',
+ ''contacts_portlet::show'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''contacts_portlet'',
+ ''Edit'',
+ ''contacts_portlet::edit'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''contacts_portlet'',
+ ''RemoveSelfFromPage'',
+ ''contacts_portlet::remove_self_from_page'',
+ ''TCL''
+ );
+
+ return 0;
+
+end;' language 'plpgsql';
+select inline_0();
+drop function inline_0();
+
+
+
+create function inline_0()
+returns integer as '
+declare
+ foo integer;
+begin
+
+ -- Add the binding
+ perform acs_sc_binding__new (
+ ''portal_datasource'',
+ ''contacts_portlet''
+ );
+
+ return 0;
+
+end;' language 'plpgsql';
+select inline_0();
+drop function inline_0();
+
+
+
+
Index: openacs-4/packages/contacts-portlet/tcl/contacts-portlet-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/contacts-portlet/tcl/contacts-portlet-procs.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/contacts-portlet/tcl/contacts-portlet-procs.tcl 14 Jun 2005 06:49:05 -0000 1.1
@@ -0,0 +1,123 @@
+#
+# Copyright (C) 2005 Cognovis
+# Author: Bjoern Kiesbye (kiesbye@theservice.de)
+
+# This file is part of dotLRN.
+#
+# dotLRN 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.
+#
+# dotLRN 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.
+#
+
+ad_library {
+
+ Procedures to support the Contacts Package
+
+
+ @author kiesbye@theservice.de
+ @cvs-id $Id: contacts-portlet-procs.tcl
+
+}
+
+namespace eval contacts_portlet {
+
+ ad_proc -private my_package_key {
+ } {
+ return "contacts-portlet"
+ }
+
+ ad_proc -private get_my_name {
+ } {
+ return "contacts_portlet"
+ }
+
+ ad_proc -public get_pretty_name {
+ } {
+ return "Contacts Portlet"
+ }
+
+ ad_proc -public link {
+ } {
+ return [site_node::get_package_url -package_key contacts]
+ }
+
+ ad_proc -public add_self_to_page {
+ {-portal_id:required}
+ {-package_id:required}
+ {-param_action "overwrite"}
+ {-page_name ""}
+ {-pretty_name ""}
+ {-force_region ""}
+ {-scoped_p ""}
+
+ } {
+ Adds a Contact Portlet to the given page.
+
+ @param portal_id The page to add self to
+ @return element_id The new element's id
+
+ } {
+
+ # allow overrides of pretty_name and force_region
+ if {[empty_string_p $pretty_name]} {
+ set pretty_name [get_pretty_name]
+ }
+
+ if {[empty_string_p $force_region]} {
+ set force_region [parameter::get_from_package_key \
+ -package_key [my_package_key] \
+ -parameter "force_region"
+ ]
+ }
+
+ set extra_params ""
+
+
+ return [portal::add_element_parameters \
+ -portal_id $portal_id \
+ -page_name $page_name \
+ -portlet_name [get_my_name] \
+ -value $package_id \
+ -pretty_name $pretty_name \
+ -force_region $force_region \
+ -param_action $param_action
+
+ ]
+ }
+
+
+
+
+ ad_proc -public remove_self_from_page {
+ {-portal_id:required}
+
+ } {
+ Removes a Contacts Portlet from the given page.
+
+ @param portal_id The page to remove self from
+ @param project_manager_id
+ } {
+ portal::remove_element_parameters \
+ -portal_id $portal_id \
+ -portlet_name [get_my_name] \
+ }
+
+
+
+ ad_proc -public show {
+ cf
+ } {
+ } {
+ portal::show_proc_helper \
+ -package_key [my_package_key] \
+ -config_list $cf
+
+ }
+
+}
Index: openacs-4/packages/contacts-portlet/www/contacts-portlet.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/contacts-portlet/www/contacts-portlet.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/contacts-portlet/www/contacts-portlet.adp 14 Jun 2005 06:49:06 -0000 1.1
@@ -0,0 +1,5 @@
+
+
+
+
+
Index: openacs-4/packages/contacts-portlet/www/contacts-portlet.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/contacts-portlet/www/contacts-portlet.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/contacts-portlet/www/contacts-portlet.tcl 14 Jun 2005 06:49:06 -0000 1.1
@@ -0,0 +1,20 @@
+# packages/contacts-portlet/www/contacts-portlet.tcl
+
+ad_page_contract {
+
+ hallo
+
+ @author Bjoern Kiesbye (bjoern_kiesbye@web.de)
+ @creation-date 2005-06-13
+ @arch-tag: 6d750604-b469-457c-bc2f-09ec8f0deb16
+ @cvs-id $Id: contacts-portlet.tcl,v 1.1 2005/06/14 06:49:06 maltes Exp $
+} {
+
+} -properties {
+
+ package_id
+}
+
+set package_id [apm_package_id_from_key contacts]
+set community_id [dotlrn_community::get_community_id_from_url]
+ns_log notice "community_id = $community_id"
\ No newline at end of file
Index: openacs-4/packages/dotlrn-contacts/tcl/dotlrn-contacts-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-contacts/tcl/dotlrn-contacts-procs.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/dotlrn-contacts/tcl/dotlrn-contacts-procs.tcl 14 Jun 2005 06:47:16 -0000 1.1
@@ -0,0 +1,217 @@
+# Copyright (C) 2005 Cognovis
+# This file is part of dotLRN.
+# dotLRN 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.
+# dotLRN 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.
+
+ad_library {
+
+ the dotlrn applet for Contacts
+
+ @author Bjoern Kiesbye (kiesbye@theservice.de)
+ @version $Id: dotlrn-contacts-procs.tcl,v 1.1 2005/06/14 06:47:16 maltes Exp $
+}
+
+namespace eval dotlrn_contacts {}
+
+ad_proc -public dotlrn_contacts::package_key {
+} {
+ What package does this applet deal with?
+} {
+ return "contacts"
+}
+
+ad_proc -public dotlrn_contacts::my_package_key {
+} {
+ What's my package key?
+} {
+ return "dotlrn-contacts"
+}
+
+ad_proc -public dotlrn_contacts::applet_key {
+} {
+ What's my applet key?
+} {
+ return "dotlrn_contacts"
+}
+
+ad_proc -public dotlrn_contacts::get_pretty_name {
+} {
+} {
+ return "Contacts"
+}
+
+ad_proc -public dotlrn_contacts::add_applet {
+} {
+ Called for one time init - must be repeatable!
+ @return new pkg_id or 0 on failure
+} {
+
+ # Contacts Package is Singleton and is required to install
+ # this package, so just add the applet to dotlrn.
+
+ dotlrn_applet::add_applet_to_dotlrn -applet_key [applet_key] -package_key [my_package_key]
+
+}
+
+ad_proc -public dotlrn_contacts::remove_applet {
+} {
+ One-time destroy for when the entire applet is removed from dotlrn.
+} {
+ ad_return_complaint 1 "[applet_key] remove_applet not implimented!"
+}
+
+
+ad_proc -public dotlrn_contacts::add_applet_to_community {
+ community_id
+} {
+ Add the calendar applet to a specific dotlrn community
+
+ @params community_id
+} {
+
+
+ set portal_id [dotlrn_community::get_portal_id \
+ -community_id $community_id \
+ ]
+
+ contacts_portlet::add_self_to_page -portal_id $portal_id
+
+
+
+ # Just return the package_id from the mounted Contacts package (Singelton)
+
+ set package_id [apm_package_id_from_key contacts]
+
+ # Add this community to contacts
+ db_dml insert_map {
+ insert into contact_groups
+ (group_id,default_p,package_id)
+ values
+ (:community_id, 'f' ,:package_id)
+ }
+
+
+ # this should return the package_id
+ return $package_id
+}
+
+ad_proc -public dotlrn_contacts::remove_applet_from_community {
+ community_id
+} {
+ remove the applet from the community
+} {
+ ad_return_complaint 1 "[applet_key] remove_applet_from_community not implimented!"
+}
+
+ad_proc -public dotlrn_contacts::add_user {
+ user_id
+} {
+ Called once when a user is added as a dotlrn user.
+} {
+}
+
+ad_proc -public dotlrn_contacts::remove_user {
+ user_id
+} {
+ Remove a user from dotlrn
+} {
+
+ # Not yet implemented.
+}
+
+ad_proc -public dotlrn_contacts::add_user_to_community {
+ community_id
+ user_id
+} {
+ Add a user to a community
+} {
+
+
+ set package_id [dotlrn_community::get_applet_package_id -community_id $community_id -applet_key [applet_key]]
+ set portal_id [dotlrn::get_portal_id -user_id $user_id]
+
+
+ contacts_portlet::add_self_to_page \
+ -portal_id $portal_id \
+ -package_id $package_id] \
+ -param_action append
+
+
+}
+
+ad_proc -public dotlrn_contacts::remove_user_from_community {
+ community_id
+ user_id
+} {
+ Remove a user from a community
+} {
+}
+
+ad_proc -public dotlrn_contacts::add_portlet {
+ portal_id
+} {
+ Add Portlet to the Portal
+
+ @param portal_id
+} {
+
+ contacts_portlet::add_self_to_page -portal_id $portal_id -package_id 0
+
+}
+
+ad_proc -public dotlrn_contacts::remove_portlet {
+ portal_id
+ args
+} {
+ A helper proc to remove the underlying portlet from the given portal.
+ This is alot simpler than add_portlet.
+
+ @param portal_id
+ @param args An ns_set with the project_manager_id.
+} {
+ contacts_portlet::remove_self_from_page \
+ -portal_id $portal_id
+}
+
+ad_proc -public dotlrn_contacts::clone {
+ old_community_id
+ new_community_id
+} {
+ Clone this applet's content from the old community to the new one
+} {
+}
+
+ad_proc -public dotlrn_contacts::change_event_handler {
+ community_id
+ event
+ old_value
+ new_value
+} {
+ listens for the following events: rename
+} {
+ switch $event {
+ rename {
+
+ handle_rename -community_id $community_id -old_value\
+ $old_value -new_value $new_value
+ }
+ }
+}
+
+ad_proc -private dotlrn_contacts::handle_rename {
+ {-community_id:required}
+ {-old_value:required}
+ {-new_value:required}
+} {
+ When a dotlrn community is renamed
+} {
+
+}
+
+