From 5be4f84484b7a86269ae91194950a4f9c3a7550e Mon Sep 17 00:00:00 2001 From: Alan Jack Pippin Date: Fri, 18 Nov 2005 23:27:49 -0700 Subject: [PATCH] Initial commit --- checkmark.gif | Bin 0 -> 99 bytes doc | 1 + eq.spec | 57 + help/index.php | 26 + inc/class.eq.inc.php | 1644 +++++++++++++++++ inc/functions.inc.php | 14 + inc/hook_add_def_pref.inc.php | 16 + inc/hook_admin.inc.php | 21 + inc/hook_manual.inc.php | 18 + inc/hook_preferences.inc.php | 22 + index.php | 79 + setup/phpgw_en.lang | 1 + setup/phpgw_fr.lang | 1 + setup/phpgw_sv.lang | 1 + setup/setup.inc.php | 46 + templates/default/act_list.tpl | 27 + templates/default/act_update.tpl | 64 + templates/default/act_view.tpl | 53 + templates/default/att_update.tpl | 46 + templates/default/att_view.tpl | 44 + templates/default/header.tpl | 28 + templates/default/ht_update.tpl | 41 + templates/default/ht_view.tpl | 48 + templates/default/images/navbar.gif | Bin 0 -> 2064 bytes templates/default/images/navbar.gif.old | Bin 0 -> 1161 bytes templates/default/images/navbar.png | Bin 0 -> 1963 bytes templates/default/images/navbar.png.old | Bin 0 -> 1226 bytes templates/default/par_update.tpl | 0 templates/default/par_view.tpl | 23 + templates/default/ppi_update.tpl | 71 + templates/default/ppi_view.tpl | 49 + templates/default/skel/delete.tpl | 24 + templates/default/skel/form.tpl | 64 + templates/default/skel/header.tpl | 28 + templates/default/skel/list.tpl | 50 + templates/default/skel/preference_acl.tpl | 25 + templates/default/skel/preference_acl_row.tpl | 9 + templates/default/skel/preference_colspan.tpl | 8 + templates/default/skel/preferences.tpl | 24 + templates/default/skel/view.tpl | 27 + templates/default/vis_update.tpl | 67 + templates/default/vis_view.tpl | 37 + templates/idots/images/navbar.gif | Bin 0 -> 2064 bytes templates/idots/images/navbar.old.png | Bin 0 -> 1953 bytes templates/idots/images/navbar.png | Bin 0 -> 4206 bytes templates/idots/images/unit.jpg | Bin 0 -> 7350 bytes templates/idsociety/images/navbar-over.gif | Bin 0 -> 452 bytes templates/idsociety/images/navbar-over.png | Bin 0 -> 399 bytes templates/idsociety/images/navbar.gif | Bin 0 -> 444 bytes templates/idsociety/images/navbar.png | Bin 0 -> 367 bytes x.gif | Bin 0 -> 856 bytes x.psd | Bin 0 -> 8958 bytes 52 files changed, 2804 insertions(+) create mode 100644 checkmark.gif create mode 120000 doc create mode 100644 eq.spec create mode 100644 help/index.php create mode 100644 inc/class.eq.inc.php create mode 100644 inc/functions.inc.php create mode 100644 inc/hook_add_def_pref.inc.php create mode 100644 inc/hook_admin.inc.php create mode 100644 inc/hook_manual.inc.php create mode 100644 inc/hook_preferences.inc.php create mode 100644 index.php create mode 100644 setup/phpgw_en.lang create mode 100644 setup/phpgw_fr.lang create mode 100644 setup/phpgw_sv.lang create mode 100644 setup/setup.inc.php create mode 100644 templates/default/act_list.tpl create mode 100644 templates/default/act_update.tpl create mode 100644 templates/default/act_view.tpl create mode 100644 templates/default/att_update.tpl create mode 100644 templates/default/att_view.tpl create mode 100644 templates/default/header.tpl create mode 100644 templates/default/ht_update.tpl create mode 100644 templates/default/ht_view.tpl create mode 100644 templates/default/images/navbar.gif create mode 100644 templates/default/images/navbar.gif.old create mode 100644 templates/default/images/navbar.png create mode 100644 templates/default/images/navbar.png.old create mode 100644 templates/default/par_update.tpl create mode 100644 templates/default/par_view.tpl create mode 100644 templates/default/ppi_update.tpl create mode 100644 templates/default/ppi_view.tpl create mode 100644 templates/default/skel/delete.tpl create mode 100644 templates/default/skel/form.tpl create mode 100644 templates/default/skel/header.tpl create mode 100644 templates/default/skel/list.tpl create mode 100644 templates/default/skel/preference_acl.tpl create mode 100644 templates/default/skel/preference_acl_row.tpl create mode 100644 templates/default/skel/preference_colspan.tpl create mode 100644 templates/default/skel/preferences.tpl create mode 100644 templates/default/skel/view.tpl create mode 100644 templates/default/vis_update.tpl create mode 100644 templates/default/vis_view.tpl create mode 100644 templates/idots/images/navbar.gif create mode 100644 templates/idots/images/navbar.old.png create mode 100644 templates/idots/images/navbar.png create mode 100755 templates/idots/images/unit.jpg create mode 100644 templates/idsociety/images/navbar-over.gif create mode 100644 templates/idsociety/images/navbar-over.png create mode 100644 templates/idsociety/images/navbar.gif create mode 100644 templates/idsociety/images/navbar.png create mode 100755 x.gif create mode 100755 x.psd diff --git a/checkmark.gif b/checkmark.gif new file mode 100644 index 0000000000000000000000000000000000000000..ae70f593269f7001f3e8a35a105f6bf96ae439a2 GIT binary patch literal 99 zcmZ?wbhEHb^;9hm+8+s6Y34k-R)VPs%nXV75) z0+3nfoGcQu+%Dl@%4{LQf&jS*Y0K}e``5+7U=0Ar C-6Jai literal 0 HcmV?d00001 diff --git a/doc b/doc new file mode 120000 index 0000000..01b66f7 --- /dev/null +++ b/doc @@ -0,0 +1 @@ +../../doc/phpgroupware-skel \ No newline at end of file diff --git a/eq.spec b/eq.spec new file mode 100644 index 0000000..40621d6 --- /dev/null +++ b/eq.spec @@ -0,0 +1,57 @@ +%define packagename eq +%define phpgwdirname eq +%define version 0.0.1.000 + +# This is for Mandrake RPMS +# (move these below the RedHat ones for Mandrake RPMs) +%define httpdroot /var/www/html/phpgroupware +%define packaging 1mdk + +# This is for RedHat RPMS +# (move these below the Mandrake ones for RedHat RPMs) +%define httpdroot /home/httpd/html/phpgroupware +%define packaging 1 + +Summary: Skeleton App for phpGroupWare. +Name: %{packagename} +Version: %{version} +Release: %{packaging} +Copyright: GPL +Group: Web/Database +URL: http://www.phpgroupware.org/apps/eq/ +Source0: ftp://ftp.sourceforge.net/pub/sourceforge/phpgroupware/%{packagename}-%{version}.tar.bz2 +BuildRoot: %{_tmppath}/%{packagename}-buildroot +Prefix: %{httpdroot} +Buildarch: noarch +requires: phpgroupware >= 0.9.10 +AutoReq: 0 + +%description +This is an Elder's Quorum Presidency Application. + +%prep +%setup -n %{phpgwdirname} + +%build +# no build required + +%install +rm -rf $RPM_BUILD_ROOT +mkdir -p $RPM_BUILD_ROOT%{prefix}/%{phpgwdirname} +cp -aRf * $RPM_BUILD_ROOT%{prefix}/%{phpgwdirname} + +%clean +rm -rf $RPM_BUILD_ROOT + +%post + +%postun + +%files +%{prefix}/%{phpgwdirname} + +%changelog +* Sat May 19 2001 Dan Kuykendall 0.0.1.00 +- Created eq app + +# end of file diff --git a/help/index.php b/help/index.php new file mode 100644 index 0000000..b13caa4 --- /dev/null +++ b/help/index.php @@ -0,0 +1,26 @@ + 'manual'); + + $phpgw_info['flags'] = $phpgw_flags; + include('../../header.inc.php'); + $appname = 'eq'; + include(PHPGW_SERVER_ROOT.'/'.$appname.'/setup/setup.inc.php'); +?> + +

+ + Version: + + + common->phpgw_footer(); ?> diff --git a/inc/class.eq.inc.php b/inc/class.eq.inc.php new file mode 100644 index 0000000..dd3343c --- /dev/null +++ b/inc/class.eq.inc.php @@ -0,0 +1,1644 @@ + True, + 'ht_update' => True, + 'act_list' => True, + 'act_view' => True, + 'act_update' => True, + 'par_view' => True, + 'ppi_view' => True, + 'ppi_update' => True, + 'vis_view' => True, + 'vis_update' => True, + 'att_view' => True, + 'att_update' => True + ); + + function eq() + { + $this->default_ht_num_months = 1; + $this->default_ppi_num_months = 1; + $this->default_ppi_num_years = 0; + $this->default_att_num_months = 1; + + $this->db = $GLOBALS['phpgw']->db; + $this->db2 = $this->db; + $this->nextmatchs = CreateObject('phpgwapi.nextmatchs'); + $this->t = $GLOBALS['phpgw']->template; + $this->account = $GLOBALS['phpgw_info']['user']['account_id']; + $this->grants = $GLOBALS['phpgw']->acl->get_grants('eq'); + $this->grants[$this->account] = PHPGW_ACL_READ + PHPGW_ACL_ADD + PHPGW_ACL_EDIT + PHPGW_ACL_DELETE; + + $this->jscal = CreateObject('phpgwapi.jscalendar'); // before phpgw_header() !!! + $this->cal_options = 'daFormat : "%Y-%m-%d", + ifFormat : "%Y-%m-%d", + mondayFirst : false, + weekNumbers : false'; + + $GLOBALS['phpgw_info']['flags']['app_header'] = 'Elders Quorum Tools'; + $GLOBALS['phpgw']->common->phpgw_header(); + echo parse_navbar(); + $this->display_app_header(); + } + + function save_sessiondata() + { + + } + + function display_app_header() + { + $this->t->set_file(array('eq_header' => 'header.tpl')); + + if (isset($phpgw_info['user']['preferences']['eq']['eq_font'])) + { + $font = $phpgw_info['user']['preferences']['eq']['eq_font']; + } + else + { + $font = 'Arial'; + } + + $this->t->set_var('bg_color',$phpgw_info['theme']['th_bg']); + $this->t->set_var('font',$font); + $link_data['menuaction'] = 'eq.eq.ht_view'; + $this->t->set_var('link_hometeaching',$GLOBALS['phpgw']->link('/eq/index.php',$link_data)); + $this->t->set_var('lang_hometeaching','HomeTeaching'); + $link_data['menuaction'] = 'eq.eq.act_list'; + $this->t->set_var('link_activity',$GLOBALS['phpgw']->link('/eq/index.php',$link_data)); + $this->t->set_var('lang_activity','Activities'); + $link_data['menuaction'] = 'eq.eq.par_view'; + $this->t->set_var('link_participation',$GLOBALS['phpgw']->link('/eq/index.php',$link_data)); + $this->t->set_var('lang_participation','Participation'); + $link_data['menuaction'] = 'eq.eq.ppi_view'; + $this->t->set_var('link_ppi',$GLOBALS['phpgw']->link('/eq/index.php',$link_data)); + $this->t->set_var('lang_ppi','PPIs'); + $link_data['menuaction'] = 'eq.eq.vis_view'; + $this->t->set_var('link_visit',$GLOBALS['phpgw']->link('/eq/index.php',$link_data)); + $this->t->set_var('lang_visit','Visits'); + $link_data['menuaction'] = 'eq.eq.att_view'; + $this->t->set_var('link_attendance',$GLOBALS['phpgw']->link('/eq/index.php',$link_data)); + $this->t->set_var('lang_attendance','Attendance'); + + $this->t->pparse('out','eq_header'); + } + + function ht_view() + { + $this->t->set_file(array('ht_view_t' => 'ht_view.tpl')); + $this->t->set_block('ht_view_t','district_list','list'); + + $this->t->set_var('linkurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ht_view')); + $num_months = get_var('num_months',array('GET','POST')); + if($num_months == '') { $num_months = $this->default_ht_num_months; } + $this->t->set_var('num_months',$num_months); + $this->t->set_var('lang_filter','Filter'); + if($num_months == 1) { $this->t->set_var('lang_num_months','Month of History'); } + else { $this->t->set_var('lang_num_months','Months of History'); } + + $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ht_view')); + $this->t->set_var('title','Hometeaching'); + + $sql = "SELECT * FROM eq_district where valid=1 ORDER BY district ASC"; + $this->db->query($sql,__LINE__,__FILE__); + $i=0; + while ($this->db->next_record()) + { + $districts[$i]['district'] = $this->db->f('district'); + $districts[$i]['name'] = $this->db->f('name'); + $districts[$i]['supervisor'] = $this->db->f('supervisor'); + $i++; + } + + $sql = "SELECT * FROM eq_elder where valid=1 ORDER BY elder ASC"; + $this->db->query($sql,__LINE__,__FILE__); + $i=0; + while ($this->db->next_record()) + { + $elder_id[$i] = $this->db->f('elder'); + $elder_name[$i] = $this->db->f('name'); + $i++; + } + array_multisort($elder_name, $elder_id); + + // Make an array mapping elder_ids to elder_names + for($i=0; $i < count($elder_id); $i++) { + $id = $elder_id[$i]; + $elders[$id] = $elder_name[$i]; + } + + $sql = "SELECT * FROM eq_aaronic where valid=1 ORDER BY aaronic ASC"; + $this->db->query($sql,__LINE__,__FILE__); + while ($this->db->next_record()) + { + $aaronic_id = $this->db->f('aaronic'); + $aaronic[$aaronic_id]['name'] = $this->db->f('name'); + } + + $total_families = 0; + $this->nextmatchs->template_alternate_row_color(&$this->t); + for ($i=0; $i < count($districts); $i++) { + $this->t->set_var('district_number',$districts[$i]['district']); + $this->t->set_var('district_name',$districts[$i]['name']); + $supervisor = $districts[$i]['supervisor']; + $unique_companionships=''; + + // Select all the unique companionship numbers for this district + $sql = "SELECT distinct companionship FROM eq_companionship where district=". $districts[$i]['district']; + $this->db->query($sql,__LINE__,__FILE__); + $j=0; + while ($this->db->next_record()) + { + $unique_companionships[$j]['companionship'] = $this->db->f('companionship'); + $j++; + } + + $comp_width=450; $visit_width=25; $table_width=$comp_width + $num_months*$visit_width; + $table_data=""; $num_companionships = 0; $num_families = 0; + for($m=$num_months; $m >= 0; $m--) { $visits[$m] = 0; } + for ($j=0; $j < count($unique_companionships); $j++) { + $companion_table_entry = ""; + // Select all the companions in each companionship + $sql = "SELECT * FROM eq_companionship where valid=1 and ". + "companionship=". $unique_companionships[$j]['companionship']; + $this->db->query($sql,__LINE__,__FILE__); + + while ($this->db->next_record()) + { + // Get this companions information + if($companion_table_entry != "") { $companion_table_entry .= " / "; } + $companionship = $this->db->f('companionship'); + $elder_id = $this->db->f('elder'); + $aaronic_id = $this->db->f('aaronic'); + if($elder_id) { $name = $elders[$elder_id]; } + else if($aaronic_id) { $name = $aaronic[$aaronic_id]['name']; } + $companion_table_entry .= "$name"; + } + $table_data.= "$companion_table_entry


"; + + // Get the names of the families assigned this home teaching companionship + $sql = "SELECT * from eq_family where valid=1 AND companionship=".$unique_companionships[$j]['companionship']; + $this->db->query($sql,__LINE__,__FILE__); + $k=0; + while ($this->db->next_record()) + { + $num_families++; $total_families++; + $family_name = $this->db->f('name'); + $family_id = $this->db->f('family'); + $this->nextmatchs->template_alternate_row_color(&$this->t); + $table_data.="$family_name Family"; + // Find out how many times Visits were performed by this companionship + // in the past $num_months for this Family + $header_row="Families"; + for($m=$num_months; $m >= 0; $m--) { + $month = date('m/Y', strtotime('-'.$m.' month')); + $month_start = date('Y-m', strtotime('-'.$m.' month')); $month_start .= "-01"; + $month_end = date('Y-m', strtotime('-'.$m.' month')); $month_end .= "-31"; + $sql = "SELECT * FROM eq_visit WHERE date >= '$month_start' AND date <= '$month_end' ". + " AND companionship=" . $unique_companionships[$j]['companionship']. + " AND family=". $family_id; + $this->db2->query($sql,__LINE__,__FILE__); + $link_data['menuaction'] = 'eq.eq.ht_update'; + $link_data['date'] = $month_start; + $link_data['month_start'] = $month_start; + $link_data['month_end'] = $month_end; + $link_data['month'] = $month; + $link_data['district'] = $districts[$i]['district']; + $link_data['district_name'] = $districts[$i]['name']; + $link_data['action'] = 'view'; + $link = $GLOBALS['phpgw']->link('/eq/index.php',$link_data); + $header_row .= "$month"; + if(!$total_visits[$m]) { $total_visits[$m] = 0; } + if($this->db2->next_record()) { + if($this->db2->f('visited') == 'y') { + $visits[$m]++; $total_visits[$m]++; + $table_data .= ''; + } + else if($this->db2->f('visited') == 'n') { + $table_data .= ''; + } + else { $table_data .= " "; } + } + else { $table_data .= " "; } + } + $table_data .= ""; + $k++; + } + $table_data .= ""; + } + $table_data .= "
"; + $stat_data = "$num_families Families
Visit Totals:
"; + + for($m=$num_months; $m >=0; $m--) { + $percent = ceil(($visits[$m] / $num_families)*100); + $stat_data .= "$visits[$m]
$percent%
"; + } + $stat_data .= ""; + + $this->t->set_var('table_width',$table_width); + $this->t->set_var('header_row',$header_row); + $this->t->set_var('table_data',$table_data); + $this->t->set_var('stat_data',$stat_data); + $this->t->fp('list','district_list',True); + } + + $totals = "$total_families Total Families
Visit Totals:
"; + for($m=$num_months; $m >=0; $m--) { + $percent = ceil(($total_visits[$m] / $total_families)*100); + $totals .= "$total_visits[$m]
$percent%
"; + } + $totals .= ""; + + $this->t->set_var('totals',$totals); + + $this->t->pfp('out','ht_view_t'); + $this->save_sessiondata(); + } + + + function ht_update() + { + $this->t->set_file(array('ht_update_t' => 'ht_update.tpl')); + $this->t->set_block('ht_update_t','district_list','list'); + $this->t->set_block('ht_update_t','save','savehandle'); + + $district = get_var('district',array('GET','POST')); + $district_name = get_var('district_name',array('GET','POST')); + $date = get_var('date',array('GET','POST')); + $month = get_var('month',array('GET','POST')); + $month_start = get_var('month_start',array('GET','POST')); + $month_end = get_var('month_end',array('GET','POST')); + $action = get_var('action',array('GET','POST')); + + $this->t->set_var('done_action',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ht_view')); + $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ht_update&action=save')); + $this->t->set_var('lang_done','Cancel'); + $this->t->set_var('district_name',$district_name); + $this->t->set_var('district_number',$district); + $this->t->set_var('title','Hometeaching Update ' . $month); + $this->t->set_var('date',$date); + + if($action == 'save') + { + // Get a list of all the companionships in this district + $sql = "SELECT distinct companionship FROM eq_companionship where district=". $district; + $this->db->query($sql,__LINE__,__FILE__); + $j=0; + while ($this->db->next_record()) + { + $unique_companionships[$j]['companionship'] = $this->db->f('companionship'); + $j++; + } + for ($j=0; $j < count($unique_companionships); $j++) + { + // Delete all the visits that have taken place for all families for this month + $this->db->query("DELETE from eq_visit where companionship=" . $unique_companionships[$j]['companionship'] . + " AND " . "date='" . $date . "'",__LINE__,__FILE__); + } + + // Now, add the visits that are checked for this month + $new_data = get_var('family_visited',array('POST')); + foreach ($new_data as $family) + { + foreach ($family as $data) + { + //print "family_visited: $data
"; + $data_array = explode("/",$data); + $family_id = $data_array[0]; + $companionship = $data_array[1]; + $date = $data_array[2]; + $visited = $data_array[3]; + if($visited == "") { $visited = $data_array[4]; } + //print "family_id: $family_id companionship: $companionship date: $date visited: $visited
"; + $this->db->query("INSERT INTO eq_visit (family,companionship,date,notes,visited) " + . "VALUES (" . $family_id .",". $companionship .",'". $date ."','','". $visited ."')",__LINE__,__FILE__); + } + } + $this->ht_view(); + return false; + } + + $sql = "SELECT * FROM eq_elder where valid=1 ORDER BY elder ASC"; + $this->db->query($sql,__LINE__,__FILE__); + $i=0; + while ($this->db->next_record()) + { + $elder_id[$i] = $this->db->f('elder'); + $elder_name[$i] = $this->db->f('name'); + $i++; + } + array_multisort($elder_name, $elder_id); + + // Make an array mapping elder_ids to elder_names + for($i=0; $i < count($elder_id); $i++) { + $id = $elder_id[$i]; + $elders[$id] = $elder_name[$i]; + } + + $sql = "SELECT * FROM eq_aaronic where valid=1 ORDER BY aaronic ASC"; + $this->db->query($sql,__LINE__,__FILE__); + while ($this->db->next_record()) + { + $aaronic_id = $this->db->f('aaronic'); + $aaronic[$aaronic_id]['name'] = $this->db->f('name'); + } + + // Select all the unique companionship numbers for this district + $sql = "SELECT distinct companionship FROM eq_companionship where district=". $district; + $this->db->query($sql,__LINE__,__FILE__); + $j=0; $unique_companionships=''; + while ($this->db->next_record()) + { + $unique_companionships[$j]['companionship'] = $this->db->f('companionship'); + $j++; + } + + $comp_width=300; $visit_width=25; $table_width=$comp_width + $num_months*$visit_width; + $table_data=""; $num_companionships = 0; $num_families = 0; $visits=0; + for ($j=0; $j < count($unique_companionships); $j++) { + $companion_table_entry = ""; + // Select all the companions in each companionship + $sql = "SELECT * FROM eq_companionship where valid=1 and ". + "companionship=". $unique_companionships[$j]['companionship']; + $this->db->query($sql,__LINE__,__FILE__); + + while ($this->db->next_record()) + { + // Get this companions information + if($companion_table_entry != "") { $companion_table_entry .= " / "; } + $companionship = $this->db->f('companionship'); + $elder_id = $this->db->f('elder'); + $aaronic_id = $this->db->f('aaronic'); + if($elder_id) { $name = $elders[$elder_id]; } + else if($aaronic_id) { $name = $aaronic[$aaronic_id]['name']; } + $companion_table_entry .= "$name"; + } + $table_data.= "$companion_table_entry
"; + + // Get the names of the families assigned this home teaching companionship + $sql = "SELECT * from eq_family where valid=1 AND companionship=".$unique_companionships[$j]['companionship']; + $this->db->query($sql,__LINE__,__FILE__); + while ($this->db->next_record()) + { + $num_families++; $total_families++; + $family_name = $this->db->f('name'); + $family_id = $this->db->f('family'); + $this->nextmatchs->template_alternate_row_color(&$this->t); + $table_data.="$family_name Family"; + + $header_row="Families"; + $sql = "SELECT * FROM eq_visit WHERE date >= '$month_start' AND date <= '$month_end' ". + " AND companionship=" . $unique_companionships[$j]['companionship'] . + " AND family=". $family_id; + $this->db2->query($sql,__LINE__,__FILE__); + $value = $family_id . "/" . $unique_companionships[$j]['companionship'] . "/" . $date; + $header_row .= "$month"; + if(!$total_visits) { $total_visits = 0; } + if($this->db2->next_record()) { + if($this->db2->f('visited') == 'y') { + $visits++; $total_visits++; + $table_data .= ''; + $table_data .= 'Y'; + $table_data .= 'N'; + $table_data .= ' '; + $table_data .= ''; + } else if($this->db2->f('visited') == 'n') { + $table_data .= ''; + $table_data .= 'Y'; + $table_data .= 'N'; + $table_data .= ''; + $table_data .= ''; + } else { + $table_data .= ''; + $table_data .= 'Y'; + $table_data .= 'N'; + $table_data .= ' '; + $table_data .= ''; + } + } + else { + $value .= "/"; + $table_data .= ''; + $table_data .= 'Y'; + $table_data .= 'N'; + $table_data .= ' '; + $table_data .= ''; + } + } + $table_data .= ""; + $table_data .= ""; + } + $table_data .= "
"; + $stat_data = "$num_families Families
Visit Totals:
"; + + $percent = ceil(($visits / $num_families)*100); + $stat_data .= "$visits
$percent%
"; + $stat_data .= ""; + + $this->t->set_var('table_width',$table_width); + $this->t->set_var('header_row',$header_row); + $this->t->set_var('table_data',$table_data); + $this->t->set_var('stat_data',$stat_data); + $this->t->fp('list','district_list',True); + + $this->t->set_var('lang_reset','Clear Form'); + $this->t->set_var('lang_save','Save Changes'); + $this->t->set_var('savehandle',''); + + $this->t->pfp('out','ht_update_t'); + $this->t->pfp('addhandle','save'); + + $this->save_sessiondata(); + } + + function act_list() + { + $this->t->set_file(array('act_list_t' => 'act_list.tpl')); + $this->t->set_block('act_list_t','act_list','list'); + + $this->t->set_var('lang_name','Activity Name'); + $this->t->set_var('lang_date','Date'); + + $sql = "SELECT * FROM eq_activity ORDER BY date DESC"; + $this->db->query($sql,__LINE__,__FILE__); + $total_records = $this->db->num_rows(); + + $i = 0; + while ($this->db->next_record()) + { + $activity_list[$i]['name'] = $this->db->f('name'); + $activity_list[$i]['date'] = $this->db->f('date'); + $activity_list[$i]['activity'] = $this->db->f('activity'); + $i++; + } + + for ($i=0; $i < count($activity_list); $i++) + { + $this->nextmatchs->template_alternate_row_color(&$this->t); + $this->t->set_var('name',$activity_list[$i]['name']); + $this->t->set_var('date',$activity_list[$i]['date']); + + $link_data['menuaction'] = 'eq.eq.act_view'; + $link_data['activity'] = $activity_list[$i]['activity']; + $link_data['action'] = 'view'; + $this->t->set_var('view',$GLOBALS['phpgw']->link('/eq/index.php',$link_data)); + $this->t->set_var('lang_view','View'); + + $link_data['menuaction'] = 'eq.eq.act_update'; + $link_data['activity'] = $activity_list[$i]['activity']; + $link_data['action'] = 'edit'; + $this->t->set_var('edit',$GLOBALS['phpgw']->link('/eq/index.php',$link_data)); + $this->t->set_var('lang_edit','Edit'); + + $link_data['menuaction'] = 'eq.eq.act_update'; + $link_data['activity'] = '0'; + $link_data['action'] = 'add'; + $this->t->set_var('add','
'); + + $this->t->fp('list','act_list',True); + } + + $this->t->pfp('out','act_list_t'); + $this->save_sessiondata(); + } + + function act_view() + { + $this->t->set_file(array('act_view_t' => 'act_view.tpl')); + $this->t->set_block('act_view_t','part_list','list'); + + $sql = "SELECT * FROM eq_activity WHERE activity=" . intval(get_var('activity',array('GET','POST'))); + $this->db->query($sql,__LINE__,__FILE__); + $this->db->next_record(); + $this->t->set_var('name', $this->db->f('name')); + $this->t->set_var('date', $this->db->f('date')); + $this->t->set_var('notes', $this->db->f('notes')); + + $this->t->set_var('lang_name','Activity Name'); + $this->t->set_var('lang_date','Date'); + $this->t->set_var('lang_notes','Notes'); + $this->t->set_var('lang_done','Done'); + $this->t->set_var('lang_action','View'); + + $tr_color = $this->nextmatchs->alternate_row_color($tr_color); + $this->t->set_var('tr_color',$tr_color); + + $this->t->set_var('done_action',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.act_list')); + + $link_data['menuaction'] = 'eq.eq.act_update'; + $link_data['activity'] = get_var('activity',array('GET','POST')); + $link_data['action'] = 'edit'; + $this->t->set_var('edit',$GLOBALS['phpgw']->link('/eq/index.php',$link_data)); + $this->t->set_var('lang_edit','Edit'); + $this->t->set_var('cal_date',$this->db->f('date')); + + // Now find out which elders participated in this activity + $sql = "SELECT * FROM eq_participation WHERE activity=" . intval(get_var('activity',array('GET','POST'))); + $this->db->query($sql,__LINE__,__FILE__); + $total_records = $this->db->num_rows(); + + $i = 0; + while ($this->db->next_record()) + { + $part_list[$i]['elder'] = $this->db->f('elder'); + $i++; + } + + for ($i=0; $i < count($part_list); $i++) + { + $sql = "SELECT * FROM eq_elder WHERE elder=" . $part_list[$i]['elder']; + $this->db->query($sql,__LINE__,__FILE__); + $this->db->next_record(); + $names[$i] = $this->db->f('name'); + } sort($names); + + for ($i=0; $i < count($names); $i++) + { + //$this->nextmatchs->template_alternate_row_color(&$this->t); + $this->t->set_var('elder_name',$names[$i]); + if(($i+1) % 3 == 0) { $this->t->set_var('table_sep',""); } + else { $this->t->set_var('table_sep',""); } + if(($i) % 3 == 0) { $this->nextmatchs->template_alternate_row_color(&$this->t); } + $this->t->fp('list','part_list',True); + } + + $this->t->pfp('out','act_view_t'); + $this->save_sessiondata(); + } + + function act_update() + { + $this->t->set_file(array('form' => 'act_update.tpl')); + $this->t->set_block('form','elder_list','list'); + $this->t->set_block('form','add','addhandle'); + $this->t->set_block('form','edit','edithandle'); + $this->t->set_var('lang_done','Done'); + + $action = get_var('action',array('GET','POST')); + $this->t->set_var('done_action',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.act_list')); + $activity['activity'] = intval(get_var('activity',array('GET','POST'))); + + if($action == 'save') + { + $activity['name'] = $this->db->db_addslashes(get_var('name',array('POST'))); + $activity['date'] = $this->db->db_addslashes(get_var('date',array('POST'))); + $activity['notes']= $this->db->db_addslashes(get_var('notes',array('POST'))); + $this->db->query("UPDATE eq_activity set " . + " name='" . $activity['name'] . + "', date='" . $activity['date'] . "'" . + ", notes='" . $activity['notes'] . "'" . + " WHERE activity=" . $activity['activity'],__LINE__,__FILE__); + + // Delete all the elders who have particiapted in this activity + $this->db->query("DELETE from eq_participation where activity=".$activity['activity'],__LINE__,__FILE__); + + // Re-add the elders who are checked as having participated in this activity + $elders = get_var('elder_name',array('POST')); + foreach ($elders as $elder) + { + $this->db->query("INSERT INTO eq_participation (elder,activity) " + . "VALUES (" . $elder . ",". $activity['activity'] . ")",__LINE__,__FILE__); + } + + $this->act_list(); + return false; + } + + if($action == 'insert') + { + $activity['name'] = $this->db->db_addslashes(get_var('name',array('POST'))); + $activity['date'] = $this->db->db_addslashes(get_var('date',array('POST'))); + $activity['notes']= $this->db->db_addslashes(get_var('notes',array('POST'))); + $this->db->query("INSERT INTO eq_activity (name,date,notes) " + . "VALUES ('" . $activity['name'] . "','" + . $activity['date'] . "','" . $activity['notes'] . "')",__LINE__,__FILE__); + $this->act_list(); + return false; + } + + if($action == 'add') + { + $activity['activity'] = 0; + $this->t->set_var('cal_date',$this->jscal->input('date','','','','','','',$this->cal_options)); + $this->t->set_var('name',''); + $this->t->set_var('date',''); + $this->t->set_var('notes',''); + $this->t->set_var('lang_done','Cancel'); + $this->t->set_var('lang_action','Adding New Activity'); + $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.act_update&activity=' + . $activity['activity'] . '&action=' . 'insert')); + } + + if($action == 'edit') + { + $sql = "SELECT * FROM eq_activity WHERE activity=" . $activity['activity']; + $this->db->query($sql,__LINE__,__FILE__); + $this->db->next_record(); + $this->t->set_var('cal_date',$this->jscal->input('date',$this->db->f('date'),'','','','','',$this->cal_options)); + $this->t->set_var('name', $this->db->f('name')); + $this->t->set_var('date', $this->db->f('date')); + $this->t->set_var('notes', $this->db->f('notes')); + $this->t->set_var('lang_done','Cancel'); + $this->t->set_var('lang_action','Editing Activity'); + $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.act_update&activity=' + . $activity['activity'] . '&action=' . 'save')); + + } + + $sql = "SELECT * FROM eq_elder"; + $this->db->query($sql,__LINE__,__FILE__); + $i=0; + while ($this->db->next_record()) + { + if($this->db->f('valid') == 1 || $action != 'add') { + $elder_name[$i] = $this->db->f('name'); + $elder_id[$i] = $this->db->f('elder'); + $elder_valid[$i] = $this->db->f('valid'); + $i++; + } + } + array_multisort($elder_name, $elder_id, $elder_valid); + + $j=0; + for ($i=0; $i < count($elder_id); $i++) + { + //$this->nextmatchs->template_alternate_row_color(&$this->t); + $sql = "SELECT * FROM eq_participation where activity=". $activity['activity'] . " AND elder=" . $elder_id[$i]; + $this->db->query($sql,__LINE__,__FILE__); + if($this->db->next_record()) { $this->t->set_var('checked','checked'); $checked=1; } + else { $this->t->set_var('checked',''); $checked=0; } + if($checked || $elder_valid[$i] == 1) { + $this->t->set_var('elder_name',$elder_name[$i]); + $this->t->set_var('elder',$elder_id[$i]); + if(($j+1) % 3 == 0) { $this->t->set_var('table_sep',""); } + else { $this->t->set_var('table_sep',""); } + if(($j) % 3 == 0) { $this->nextmatchs->template_alternate_row_color(&$this->t); } + $this->t->fp('list','elder_list',True); + $j++; + } + } + + $this->t->set_var('lang_reset','Clear Form'); + $this->t->set_var('lang_add','Add Activity'); + $this->t->set_var('lang_save','Save Changes'); + $this->t->set_var('edithandle',''); + $this->t->set_var('addhandle',''); + + $this->t->pfp('out','form'); + if($action == 'edit') { $this->t->pfp('addhandle','edit'); } + if($action == 'add') { $this->t->pfp('addhandle','add'); } + + $this->save_sessiondata(); + } + + function par_view() + { + $this->t->set_file(array('par_view_t' => 'par_view.tpl')); + $this->t->set_block('par_view_t','header_list','list1'); + $this->t->set_block('par_view_t','elder_list','list2'); + + $sql = "SELECT * FROM eq_elder where valid=1"; + $this->db->query($sql,__LINE__,__FILE__); + $i=0; + while ($this->db->next_record()) + { + $elder_name[$i] = $this->db->f('name'); + $elder_id[$i] = $this->db->f('elder'); + $i++; + } + array_multisort($elder_name, $elder_id); + + $sql = "SELECT * FROM eq_activity ORDER BY date DESC"; + $this->db->query($sql,__LINE__,__FILE__); + $total_records = $this->db->num_rows(); + + $i = 0; + while ($this->db->next_record()) + { + $activity_list[$i]['name'] = $this->db->f('name'); + $activity_list[$i]['date'] = $this->db->f('date'); + $activity_list[$i]['activity'] = $this->db->f('activity'); + if($activity_list[$i]['date'] == '0000-00-00') { $activity_list[$i]['date']=""; } + $i++; + } + + $elder_width=250; $part_width=25; $act_width=50; + $total_width=$elder_width+$part_width; + for ($i=0; $i < count($activity_list); $i++) { + $this->t->set_var('activity_name',$activity_list[$i]['name']); + $this->t->set_var('activity_date',$activity_list[$i]['date']); + $this->t->fp('list1','header_list',True); + $total_width += $act_width; + } + + for ($i=0; $i < count($elder_id); $i++) { + $participated=0; $part_table = ''; + $this->nextmatchs->template_alternate_row_color(&$this->t); + $this->t->set_var('elder_name',$elder_name[$i]); + for ($j=0; $j < count($activity_list); $j++) { + $sql = "SELECT * FROM eq_participation where activity=" + . $activity_list[$j]['activity'] . " AND elder=" . $elder_id[$i]; + $this->db->query($sql,__LINE__,__FILE__); + if($this->db->next_record()) { + $part_table .= ''; + $participated++; + } else { + $part_table .= ' '; + } + } + if($participated) { $part_table .= ''.$participated.''; } + else { $part_table .= ' '; } + $this->t->set_var('part_table',$part_table); + $this->t->fp('list2','elder_list',True); + } + $this->t->set_var('total_width',$total_width); + $this->t->set_var('elder_width',$elder_width); + $this->t->set_var('part_width',$part_width); + $this->t->set_var('act_width',$act_width); + $this->t->pfp('out','par_view_t'); + $this->save_sessiondata(); + } + + function ppi_view() + { + $this->t->set_file(array('ppi_view_t' => 'ppi_view.tpl')); + $this->t->set_block('ppi_view_t','district_list','list'); + + $this->t->set_var('linkurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ppi_view')); + $num_months = get_var('num_months',array('GET','POST')); + if($num_months == '') { $num_months = $this->default_ppi_num_months; } + $this->t->set_var('num_months',$num_months); + if($num_months == 1) { $this->t->set_var('lang_num_months','Month of History'); } + else { $this->t->set_var('lang_num_months','Months of History'); } + $this->t->set_var('lang_filter','Filter'); + + $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ppi_view')); + $this->t->set_var('eqpres_ppi_link',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ppi_view&eqpresppi=1')); + $eqpresppi = get_var('eqpresppi',array('GET','POST')); + + if($eqpresppi == 1) { + $num_months = get_var('num_months',array('GET','POST')); + if($num_months == '') { $num_months = $this->default_ppi_num_years; } + $this->t->set_var('num_months',$num_months); + $this->t->set_var('ppi_link_title','PPIs'); + $this->t->set_var('title','EQ President Yearly PPIs'); + if($num_months == 1) { $this->t->set_var('lang_num_months','Year of History'); } + else { $this->t->set_var('lang_num_months','Years of History'); } + $this->t->set_var('eqpres_ppi_link',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ppi_view')); + } + else { + $this->t->set_var('ppi_link_title','EQ President Yearly PPIs'); + $this->t->set_var('title','PPIs'); + } + + $sql = "SELECT * FROM eq_district where valid=1 ORDER BY district ASC"; + $this->db->query($sql,__LINE__,__FILE__); + $i=0; + while ($this->db->next_record()) + { + $districts[$i]['district'] = $this->db->f('district'); + $districts[$i]['name'] = $this->db->f('name'); + $districts[$i]['supervisor'] = $this->db->f('supervisor'); + if($eqpresppi == 0) { $i++; } + } + + $sql = "SELECT * FROM eq_elder where valid=1 ORDER BY elder ASC"; + $this->db->query($sql,__LINE__,__FILE__); + $i=0; + while ($this->db->next_record()) + { + $elder_id[$i] = $this->db->f('elder'); + $elder_name[$i] = $this->db->f('name'); + $i++; + } + array_multisort($elder_name, $elder_id); + for($i=0; $i < count($elder_id); $i++) { + $id = $elder_id[$i]; + $elders[$id] = $elder_name[$i]; + } + + $sql = "SELECT * FROM eq_aaronic where valid=1 ORDER BY aaronic ASC"; + $this->db->query($sql,__LINE__,__FILE__); + while ($this->db->next_record()) + { + $aaronic_id = $this->db->f('aaronic'); + $aaronic[$aaronic_id]['name'] = $this->db->f('name'); + } + + $total_companionships = 0; + $this->nextmatchs->template_alternate_row_color(&$this->t); + for ($i=0; $i < count($districts); $i++) { + if($eqpresppi == 1) { + $this->t->set_var('district_number','*'); + $this->t->set_var('district_name','EQ President'); + } else { + $this->t->set_var('district_number',$districts[$i]['district']); + $this->t->set_var('district_name',$districts[$i]['name']); + } + $supervisor = $districts[$i]['supervisor']; + $unique_companionships=''; + + // Select all the unique companionship numbers for this district + if($eqpresppi == 1) { + $sql = "SELECT distinct companionship FROM eq_companionship"; + } + else { + $sql = "SELECT distinct companionship FROM eq_companionship where district=". $districts[$i]['district']; + } + $this->db->query($sql,__LINE__,__FILE__); + $j=0; + while ($this->db->next_record()) + { + $unique_companionships[$j]['companionship'] = $this->db->f('companionship'); + $j++; + } + + $comp_width=400; $ppi_width=25; $table_width=$comp_width + $num_months*$ppi_width; + $table_data=""; $num_companionships = 0; $num_elders = 0; + for($m=$num_months; $m >= 0; $m--) { $ppis[$m] = 0; } + for ($j=0; $j < count($unique_companionships); $j++) { + // Select all the companions in each companionship + if($eqpresppi) { + $sql = "SELECT * FROM eq_companionship where valid=1 and aaronic=0 and ". + "companionship=". $unique_companionships[$j]['companionship']; + } + else { + $sql = "SELECT * FROM eq_companionship where valid=1 and ". + "companionship=". $unique_companionships[$j]['companionship']; + } + $this->db->query($sql,__LINE__,__FILE__); + $k=0; + while ($this->db->next_record()) + { + // Get this companions information + $num_elders++; $num_companionships++; + $companionship = $this->db->f('companionship'); + $elder_id = $this->db->f('elder'); + $aaronic_id = $this->db->f('aaronic'); + if($elder_id) { $name = $elders[$elder_id]; } + else if($aaronic_id) { $name = $aaronic[$aaronic_id]['name']; } + $link_data['menuaction'] = 'eq.eq.ppi_update'; + $link_data['companionship'] = $companionship; + $link_data['interviewer'] = $supervisor; + $link_data['elder'] = $elder_id; + $link_data['name'] = $name; + $link_data['ppi'] = ''; + $link_data['eqpresppi'] = $eqpresppi; + $link_data['action'] = 'add'; + $link = $GLOBALS['phpgw']->link('/eq/index.php',$link_data); + if($aaronic_id == 0) { + $table_data.= "$name"; + } else { + $table_data.= "$name"; + } + + // Find out how many times PPIs were performed in the past $num_months for this Elder + $header_row="Companionship"; + for($m=$num_months; $m >= 0; $m--) { + if($eqpresppi == 1) { + $year = date('Y') - $m; + $year_start = $year - 1 . "-12-31"; $year_end = $year + 1 . "-01-01"; + $sql = "SELECT * FROM eq_ppi WHERE date > '$year_start' AND date < '$year_end' ". + "AND elder=" . $elder_id . " AND eqpresppi=1"; + $this->db2->query($sql,__LINE__,__FILE__); + $header_row .= "$year"; + } + else { + $month = date('m/Y', strtotime('-'.$m.' month')); + $month_start = date('Y-m', strtotime('-'.$m.' month')); $month_start .= "-01"; + $month_end = date('Y-m', strtotime('-'.$m.' month')); $month_end .= "-31"; + $sql = "SELECT * FROM eq_ppi WHERE date >= '$month_start' AND date <= '$month_end' ". + "AND elder=" . $elder_id . " AND eqpresppi=0"; + $this->db2->query($sql,__LINE__,__FILE__); + $header_row .= "$month"; + } + if(!$total_ppis[$m]) { $total_ppis[$m] = 0; } + if($this->db2->next_record()) { + $ppis[$m]++; $total_ppis[$m]++; + $link_data['menuaction'] = 'eq.eq.ppi_update'; + $link_data['companionship'] = $companionship; + $link_data['interviewer'] = $supervisor; + $link_data['elder'] = $elder_id; + $link_data['name'] = $name; + $link_data['ppi'] = $this->db2->f('ppi'); + $link_data['eqpresppi'] = $eqpresppi; + $link_data['action'] = 'view'; + $date = $this->db2->f('date'); + $date_array = explode("-",$date); + $month = $date_array[1]; + $day = $date_array[2]; + $link = $GLOBALS['phpgw']->link('/eq/index.php',$link_data); + + if($aaronic_id == 0) { + $table_data .= '
'.$month.'-'.$day.'
'; + } else { + $table_data .= ''; + } + } + else { $table_data .= " "; } + } + $table_data .= ""; + $k++; + } + if($num_companionships % 2 != 0) { $num_companionships++; } + $table_data .= "
"; + } + // Now add Elders not assigned to any companionship to the table if we are in eqpresppi mode + if($eqpresppi == 1) { + $table_data .= "
Unassigned Potential Home Teachers
"; + foreach($elders as $elder_id => $value) { + $sql = "SELECT * FROM eq_companionship where valid=1 and elder=".$elder_id; + $this->db->query($sql,__LINE__,__FILE__); + if(!$this->db->next_record()) { + // We found an Elder not in a companionship, add them to the table + $num_elders++; $num_companionships++; + $companionship=0; + $name = $elders[$elder_id]; + $link_data['menuaction'] = 'eq.eq.ppi_update'; + $link_data['companionship'] = $companionship; + $link_data['interviewer'] = $supervisor; + $link_data['elder'] = $elder_id; + $link_data['name'] = $name; + $link_data['ppi'] = ''; + $link_data['eqpresppi'] = $eqpresppi; + $link_data['action'] = 'add'; + $link = $GLOBALS['phpgw']->link('/eq/index.php',$link_data); + $table_data.= "$name"; + for($m=$num_months; $m >= 0; $m--) { + $year = date('Y') - $m; + $year_start = $year - 1 . "-12-31"; $year_end = $year + 1 . "-01-01"; + $sql = "SELECT * FROM eq_ppi WHERE date > '$year_start' AND date < '$year_end' ". + "AND elder=" . $elder_id . " AND eqpresppi=1"; + $this->db2->query($sql,__LINE__,__FILE__); + if(!$total_ppis[$m]) { $total_ppis[$m] = 0; } + if($this->db2->next_record()) { + $ppis[$m]++; $total_ppis[$m]++; + $link_data['menuaction'] = 'eq.eq.ppi_update'; + $link_data['companionship'] = $companionship; + $link_data['interviewer'] = $supervisor; + $link_data['elder'] = $elder_id; + $link_data['name'] = $name; + $link_data['ppi'] = $this->db2->f('ppi'); + $link_data['eqpresppi'] = $eqpresppi; + $link_data['action'] = 'view'; + $date = $this->db2->f('date'); + $link = $GLOBALS['phpgw']->link('/eq/index.php',$link_data); + $table_data .= '
'.$date.'
'; + } + else { $table_data .= " "; } + } + $table_data .= ""; + } + } + } + $num_companionships = ceil($num_companionships/2); + $total_companionships += $num_companionships; + if($eqpresppi == 1) { + $stat_data = "$num_elders Elders
PPI Totals:
"; + } else { + $stat_data = "$num_companionships Companionships
PPI Totals:
"; + } + for($m=$num_months; $m >=0; $m--) { + if($eqpresppi == 1) { $percent = ceil(($ppis[$m] / $num_elders)*100); } + else { $percent = ceil(($ppis[$m] / $num_companionships)*100); } + $stat_data .= "$ppis[$m]
$percent%
"; + } + $stat_data .= ""; + + $this->t->set_var('table_width',$table_width); + $this->t->set_var('header_row',$header_row); + $this->t->set_var('table_data',$table_data); + $this->t->set_var('stat_data',$stat_data); + $this->t->fp('list','district_list',True); + } + + $totals = "$total_companionships Total Comps
PPI Totals:
"; + for($m=$num_months; $m >=0; $m--) { + $percent = ceil(($total_ppis[$m] / $total_companionships)*100); + $totals .= "$total_ppis[$m]
$percent%
"; + } + $totals .= ""; + + $this->t->set_var('totals',$totals); + $this->t->pfp('out','ppi_view_t'); + $this->save_sessiondata(); + } + + function ppi_update() + { + $this->t->set_file(array('form' => 'ppi_update.tpl')); + $this->t->set_block('form','interviewer_list','int_list'); + $this->t->set_block('form','add','addhandle'); + $this->t->set_block('form','edit','edithandle'); + + $this->t->set_var('done_action',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ppi_view')); + $this->t->set_var('readonly',''); + $this->t->set_var('disabled',''); + + $action = get_var('action',array('GET','POST')); + $companionship = get_var('companionship',array('GET','POST')); + $interviewer = get_var('interviewer',array('GET','POST')); + $name = get_var('name',array('GET','POST')); + $ppi = get_var('ppi',array('GET','POST')); + $elder = get_var('elder',array('GET','POST')); + $date = get_var('date',array('GET','POST')); + $notes = get_var('notes',array('GET','POST')); + $eqpresppi = get_var('eqpresppi',array('GET','POST')); + + $sql = "SELECT * FROM eq_district where valid=1 ORDER BY district ASC"; + $this->db->query($sql,__LINE__,__FILE__); + while ($this->db->next_record()) + { + $supervisor = $this->db->f('supervisor'); + $sql = "SELECT * FROM eq_elder WHERE elder=" . $supervisor; + $this->db2->query($sql,__LINE__,__FILE__); + $this->db2->next_record(); + $interviewer_name = $this->db2->f('name'); + + if($supervisor == $interviewer) { + $this->t->set_var('interviewer',$supervisor . ' selected'); + } else { + $this->t->set_var('interviewer',$interviewer); + } + $this->t->set_var('interviewer_name',$interviewer_name); + $this->t->fp('int_list','interviewer_list',True); + } + + if($action == 'save') + { + $notes = $this->db->db_addslashes(get_var('notes',array('POST'))); + $this->db->query("UPDATE eq_ppi set " . + " ppi='" . $ppi . "'" . + ", interviewer='" . $interviewer . "'" . + ", elder='" . $elder . "'" . + ", date='" . $date . "'" . + ", notes='" . $notes . "'" . + ", eqpresppi='" . $eqpresppi . "'" . + " WHERE ppi=" . $ppi,__LINE__,__FILE__); + $this->ppi_view(); + return false; + } + + if($action == 'insert') + { + $notes = $this->db->db_addslashes(get_var('notes',array('POST'))); + $this->db->query("INSERT INTO eq_ppi (interviewer,elder,date,notes,eqpresppi) " + . "VALUES ('" . $interviewer . "','" . $elder . "','" + . $date . "','" . $notes . "','" . $eqpresppi ."')",__LINE__,__FILE__); + $this->ppi_view(); + return false; + } + + if($action == 'add') + { + $this->t->set_var('cal_date',$this->jscal->input('date','','','','','','',$this->cal_options)); + $this->t->set_var('ppi', ''); + $this->t->set_var('interviewer', $interviewer); + $this->t->set_var('name',$name); + $this->t->set_var('elder',$elder); + $this->t->set_var('date',''); + $this->t->set_var('notes',''); + $this->t->set_var('eqpresppi',$eqpresppi); + $this->t->set_var('lang_done','Cancel'); + $this->t->set_var('lang_action','Adding New PPI'); + $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ppi_update&ppi=' + . $ppi . '&action=' . 'insert')); + } + + if($action == 'edit' || $action == 'view') + { + $sql = "SELECT * FROM eq_ppi WHERE ppi=".$ppi; + $this->db->query($sql,__LINE__,__FILE__); + $this->db->next_record(); + $this->t->set_var('ppi',$ppi); + $this->t->set_var('name',$name); + $this->t->set_var('interviewer', $this->db->f('interviewer')); + $this->t->set_var('elder',$this->db->f('elder')); + $this->t->set_var('date',$this->db->f('date')); + $this->t->set_var('notes',$this->db->f('notes')); + $this->t->set_var('eqpresppi',$this->db->f('eqpresppi')); + } + + if($action == 'edit') + { + $this->t->set_var('cal_date',$this->jscal->input('date',$date,'','','','','',$this->cal_options)); + $this->t->set_var('lang_done','Cancel'); + $this->t->set_var('lang_action','Editing PPI'); + $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ppi_update&ppi=' + . $ppi . '&action=' . 'save')); + } + + if($action == 'view') + { + $date = $this->db->f('date'); + $this->t->set_var('cal_date',''); + $this->t->set_var('readonly','READONLY'); + $this->t->set_var('disabled','DISABLED'); + $this->t->set_var('lang_done','Done'); + $this->t->set_var('lang_action','Viewing PPI'); + $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ppi_update&ppi=' + . $ppi . '&action=' . 'edit')); + } + + $this->t->set_var('lang_reset','Clear Form'); + $this->t->set_var('lang_add','Add PPI'); + $this->t->set_var('lang_save','Save Changes'); + $this->t->set_var('edithandle',''); + $this->t->set_var('addhandle',''); + + $this->t->pfp('out','form'); + + if($action == 'view') { $this->t->set_var('lang_save','Edit PPI'); } + if($action == 'edit' || $action == 'view') { $this->t->pfp('addhandle','edit'); } + if($action == 'add') { $this->t->pfp('addhandle','add'); } + + $this->save_sessiondata(); + } + + function vis_view() + { + $this->t->set_file(array('vis_view_t' => 'vis_view.tpl')); + $this->t->set_block('vis_view_t','visit_list','list1'); + $this->t->set_block('vis_view_t','family_list','list2'); + + $this->t->set_var('lang_name','Family Name'); + $this->t->set_var('lang_date','Date'); + + $sql = "SELECT * FROM eq_visit WHERE companionship=0 ORDER BY date DESC"; + $this->db->query($sql,__LINE__,__FILE__); + $total_records = $this->db->num_rows(); + + $i = 0; + while ($this->db->next_record()) + { + $visit_list[$i]['visit'] = $this->db->f('visit'); + $visit_list[$i]['family'] = $this->db->f('family'); + $visit_list[$i]['date'] = $this->db->f('date'); + $i++; + } + + for ($i=0; $i < count($visit_list); $i++) + { + $this->nextmatchs->template_alternate_row_color(&$this->t); + + $sql = "SELECT * FROM eq_family WHERE valid=1 AND family=".$visit_list[$i]['family']; + $this->db->query($sql,__LINE__,__FILE__); + $this->db->next_record(); + + $this->t->set_var('family',$visit_list[$i]['family']); + $this->t->set_var('family_name',$this->db->f('name')); + $this->t->set_var('date',$visit_list[$i]['date']); + + $link_data['menuaction'] = 'eq.eq.vis_update'; + $link_data['visit'] = $visit_list[$i]['visit']; + $link_data['name'] = $this->db->f('name'); + $link_data['date'] = $visit_list[$i]['date']; + $link_data['action'] = 'view'; + $this->t->set_var('view',$GLOBALS['phpgw']->link('/eq/index.php',$link_data)); + $this->t->set_var('lang_view','View'); + + $link_data['menuaction'] = 'eq.eq.vis_update'; + $link_data['visit'] = $visit_list[$i]['visit']; + $link_data['name'] = $this->db->f('name'); + $link_data['date'] = $visit_list[$i]['date']; + $link_data['action'] = 'edit'; + $this->t->set_var('edit',$GLOBALS['phpgw']->link('/eq/index.php',$link_data)); + $this->t->set_var('lang_edit','Edit'); + + $this->t->fp('list1','visit_list',True); + } + + // List the families that are available to record a visit against + $sql = "SELECT * FROM eq_family WHERE valid=1"; + $this->db->query($sql,__LINE__,__FILE__); + $total_records = $this->db->num_rows(); + + $i = 0; + while ($this->db->next_record()) + { + $family_names[$i] = $this->db->f('name'); + $family_ids[$i] = $this->db->f('family'); + $i++; + } array_multisort($family_names, $family_ids); + + for ($i=0; $i < count($family_names); $i++) + { + $link_data['menuaction'] = 'eq.eq.vis_update'; + $link_data['visit'] = ''; + $link_data['family'] = $family_ids[$i]; + $link_data['action'] = 'add'; + $link_data['name'] = $family_names[$i]; + $this->t->set_var('add',$GLOBALS['phpgw']->link('/eq/index.php',$link_data)); + + $this->t->set_var('name',$family_names[$i]); + if(($i+1) % 3 == 0) { $this->t->set_var('table_sep',""); } + else { $this->t->set_var('table_sep',""); } + if(($i) % 3 == 0) { $this->nextmatchs->template_alternate_row_color(&$this->t); } + + $this->t->fp('list2','family_list',True); + } + + $this->t->pfp('out','vis_view_t'); + $this->save_sessiondata(); + } + + function vis_update() + { + $this->t->set_file(array('form' => 'vis_update.tpl')); + $this->t->set_block('form','add','addhandle'); + $this->t->set_block('form','edit','edithandle'); + + $this->t->set_var('done_action',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.vis_view')); + $this->t->set_var('readonly',''); + $this->t->set_var('disabled',''); + + $action = get_var('action',array('GET','POST')); + $visit = get_var('visit',array('GET','POST')); + $family = get_var('family',array('GET','POST')); + $name = get_var('name',array('GET','POST')); + $date = get_var('date',array('GET','POST')); + $notes = get_var('notes',array('GET','POST')); + $companionship = 0; + + if($action == 'save') + { + $notes = $this->db->db_addslashes(get_var('notes',array('POST'))); + $this->db->query("UPDATE eq_visit set " . + " date='" . $date . "'" . + ", notes='" . $notes . "'" . + " WHERE visit=" . $visit,__LINE__,__FILE__); + $this->vis_view(); + return false; + } + + if($action == 'insert') + { + $notes = $this->db->db_addslashes(get_var('notes',array('POST'))); + $this->db->query("INSERT INTO eq_visit (family,companionship,date,notes) " + . "VALUES ('" . $family . "','" . $companionship . "','" + . $date . "','" . $notes . "')",__LINE__,__FILE__); + $this->vis_view(); + return false; + } + + if($action == 'add') + { + $this->t->set_var('cal_date',$this->jscal->input('date','','','','','','',$this->cal_options)); + $this->t->set_var('family', $family); + $this->t->set_var('visit', ''); + $this->t->set_var('name', $name); + $this->t->set_var('date',''); + $this->t->set_var('notes',''); + $this->t->set_var('lang_done','Cancel'); + $this->t->set_var('lang_action','Adding New Visit'); + $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.vis_update&family=' + . $family . '&action=' . 'insert')); + } + + if($action == 'edit' || $action == 'view') + { + $sql = "SELECT * FROM eq_visit WHERE visit=".$visit; + $this->db->query($sql,__LINE__,__FILE__); + $this->db->next_record(); + $this->t->set_var('visit',$visit); + $this->t->set_var('name',$name); + $this->t->set_var('family', $family); + $this->t->set_var('date',$this->db->f('date')); + $this->t->set_var('notes',$this->db->f('notes')); + } + + if($action == 'edit') + { + $this->t->set_var('cal_date',$this->jscal->input('date',$date,'','','','','',$this->cal_options)); + $this->t->set_var('lang_done','Cancel'); + $this->t->set_var('lang_action','Editing Visit'); + $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.vis_update&visit=' + . $visit . '&action=' . 'save')); + } + + if($action == 'view') + { + $date = $this->db->f('date'); + $this->t->set_var('cal_date',''); + $this->t->set_var('readonly','READONLY'); + $this->t->set_var('disabled','DISABLED'); + $this->t->set_var('lang_done','Done'); + $this->t->set_var('lang_action','Viewing Visit'); + $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.vis_update&visit=' + . $visit . '&action=' . 'edit')); + } + + $this->t->set_var('lang_reset','Clear Form'); + $this->t->set_var('lang_add','Add Visit'); + $this->t->set_var('lang_save','Save Changes'); + $this->t->set_var('edithandle',''); + $this->t->set_var('addhandle',''); + + $this->t->pfp('out','form'); + + if($action == 'view') { $this->t->set_var('lang_save','Edit Visit'); } + if($action == 'edit' || $action == 'view') { $this->t->pfp('addhandle','edit'); } + if($action == 'add') { $this->t->pfp('addhandle','add'); } + + $this->save_sessiondata(); + } + + function att_view() + { + $this->t->set_file(array('att_view_t' => 'att_view.tpl')); + $this->t->set_block('att_view_t','act_list','list'); + + $this->t->set_block('att_view_t','month_list','list1'); + $this->t->set_block('att_view_t','header_list','list2'); + $this->t->set_block('att_view_t','elder_list','list3'); + + $this->t->set_var('linkurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.att_view')); + $num_months = get_var('num_months',array('GET','POST')); + if($num_months == '') { $num_months = $this->default_att_num_months; } + $this->t->set_var('num_months',$num_months); + $this->t->set_var('lang_filter','Filter'); + if($num_months == 1) { $this->t->set_var('lang_num_months','Month of History'); } + else { $this->t->set_var('lang_num_months','Months of History'); } + + $sql = "SELECT * FROM eq_elder where valid=1"; + $this->db->query($sql,__LINE__,__FILE__); + $i=0; + while ($this->db->next_record()) + { + $elder_name[$i] = $this->db->f('name'); + $elder_id[$i] = $this->db->f('elder'); + $i++; + } + array_multisort($elder_name, $elder_id); + + + // Create a list of sunday dates for a window of 3 months back and current month + $i=0; + $last_time = 0; + $found_sunday = 0; + $sunday_list[0]['date'] = date("Y-m-d", mktime(0, 0, 0, date("m")-$num_months, 1, date("y"))); + $last_date = explode("-",$sunday_list[0]['date']); + $last_time = mktime(0, 0, 0, $last_date[1], $last_date[2], $last_date[0]); + $time_limit = mktime(0, 0, 0, date("m"), date("t"), date("y")); + while($last_time < $time_limit) + { + $day = date("w",$last_time); + if(date("w",$last_time) == 0) { + $sunday_list[$i]['date'] = date("Y-m-d", $last_time); + $last_date = explode("-",$sunday_list[$i]['date']); + $last_time = mktime(0, 0, 0, $last_date[1], $last_date[2], $last_date[0]); + $sunday_list[$i]['day'] = $last_date[2]; + $sunday_list[$i]['month'] = date("M",$last_time); + $sunday_list[$i]['year'] = $last_date[0]; + $found_sunday = 1; + } + $last_time += 90000; + if($found_sunday) { $i++; $found_sunday=0; } + } + + $old_month=$sunday_list[0]['month']; $span=0; + for ($i=0; $i < count($sunday_list); $i++) { + $date = $sunday_list[$i]['date']; + $this->t->set_var('date',$sunday_list[$i]['date']); + $this->t->set_var('day',$sunday_list[$i]['day']); + if(($old_month != $sunday_list[$i]['month']) || $i == count($sunday_list)-1) { + if($i == count($sunday_list)-1) { $span++; } + $cur_month = $sunday_list[$i]['month']; + $old_month = $sunday_list[$i]['month']; + $link_data['menuaction'] = 'eq.eq.att_update'; + $link_data['month'] = $sunday_list[$i-1]['month']; + $link_data['year'] = $sunday_list[$i-1]['year']; + $link_data['action'] = 'update_month'; + $this->t->set_var('update_month',$GLOBALS['phpgw']->link('/eq/index.php',$link_data)); + $this->t->set_var('month',$sunday_list[$i-1]['month']); + $this->t->set_var('year',$sunday_list[$i-1]['year']); + $this->t->set_var('span',$span); $span=0; + $this->t->fp('list1','month_list',True); + } $span++; + } + + $elder_width=200; $att_width=25; $total_width=$elder_width; + for ($i=0; $i < count($sunday_list); $i++) { + $link_data['menuaction'] = 'eq.eq.att_update'; + $link_data['month'] = $sunday_list[$i]['month']; + $link_data['year'] = $sunday_list[$i]['year']; + $link_data['day'] = $sunday_list[$i]['day']; + $link_data['date'] = $sunday_list[$i]['date']; + $link_data['action'] = 'update_day'; + $this->t->set_var('update_day',$GLOBALS['phpgw']->link('/eq/index.php',$link_data)); + $this->t->set_var('date',$sunday_list[$i]['date']); + $this->t->set_var('day',$sunday_list[$i]['day']); + $this->t->set_var('month',$sunday_list[$i]['month']); + $this->t->set_var('year',$sunday_list[$i]['year']); + $this->t->fp('list2','header_list',True); + $total_width += $att_width; + } + + for ($i=0; $i < count($elder_id); $i++) { + $att_table = ""; + $this->nextmatchs->template_alternate_row_color(&$this->t); + $this->t->set_var('elder_name',$elder_name[$i]); + #print "checking for elder: " . $elder_id[$i] . "
"; + for ($j=0; $j < count($sunday_list); $j++) { + #print "checking for date: " . $sunday_list[$j]['date'] . "
"; + #print "SELECT * FROM eq_attendance WHERE date='" + # . $sunday_list[$j]['date'] . "' AND elder=" . $elder_id[$i] . "
"; + $sql = "SELECT * FROM eq_attendance WHERE date='" + . $sunday_list[$j]['date'] . "' AND elder=" . $elder_id[$i]; + $this->db->query($sql,__LINE__,__FILE__); + if($this->db->next_record()) { + $att_table .= ''; + } else { + $att_table .= ' '; + } + } + $this->t->set_var('att_table',$att_table); + $this->t->fp('list3','elder_list',True); + } + $this->t->set_var('total_width',$total_width); + $this->t->set_var('elder_width',$elder_width); + $this->t->set_var('att_width',$att_width); + + $this->t->pfp('out','att_view_t'); + $this->save_sessiondata(); + } + + function att_update() + { + $monthnum['Jan']=1; $monthnum['Feb']=2; $monthnum['Mar']=3; $monthnum['Apr']=4; + $monthnum['May']=5; $monthnum['Jun']=6; $monthnum['Jul']=7; $monthnum['Aug']=8; + $monthnum['Sep']=9; $monthnum['Oct']=10; $monthnum['Nov']=11; $monthnum['Dec']=12; + + $this->t->set_file(array('form' => 'att_update.tpl')); + $this->t->set_block('form','edit','edithandle'); + + $this->t->set_block('form','month_list','list1'); + $this->t->set_block('form','header_list','list2'); + $this->t->set_block('form','elder_list','list3'); + + $this->t->set_var('done_action',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.att_view')); + + $action = get_var('action',array('GET','POST')); + $month = get_var('month',array('GET','POST')); + $year = get_var('year',array('GET','POST')); + $day = get_var('day',array('GET','POST')); + $date = get_var('date',array('GET','POST')); + + if($action == 'save_month' || $action == 'save_day') + { + $new_data = get_var('elders_attended',array('POST')); + $month = $monthnum[$month]; if($month < 10) { $month = "0" . $month; } + + if($action == 'save_month') { + $this->db->query("DELETE from eq_attendance where date LIKE '".$year."-".$month."-%'",__LINE__,__FILE__); + } + + if($action == 'save_day') { + $this->db->query("DELETE from eq_attendance where date LIKE '".$year."-".$month."-".$day."'",__LINE__,__FILE__); + } + + foreach ($new_data as $data) + { + $data_array = explode("-",$data); + $elder = $data_array[0]; + $date = "$data_array[1]-$data_array[2]-$data_array[3]"; + $this->db->query("INSERT INTO eq_attendance (elder,date) " + . "VALUES (" . $elder . ",'". $date . "')",__LINE__,__FILE__); + } + + $this->att_view(); + return false; + } + + $sql = "SELECT * FROM eq_elder where valid=1"; + $this->db->query($sql,__LINE__,__FILE__); + $i=0; + while ($this->db->next_record()) + { + $elder_name[$i] = $this->db->f('name'); + $elder_id[$i] = $this->db->f('elder'); + $i++; + } + array_multisort($elder_name, $elder_id); + + if($action == 'update_month') + { + $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.att_update&action=save_month')); + $i=0; + $last_time = 0; + $found_sunday = 0; + $sunday_list[0]['date'] = date("Y-m-d", mktime(0, 0, 0, $monthnum[$month], 1, $year)); + $last_date = explode("-",$sunday_list[0]['date']); + $last_time = mktime(0, 0, 0, $last_date[1], $last_date[2], $last_date[0]); + $time_limit = mktime(0, 0, 0, $monthnum[$month], 31, $year); + while($last_time <= $time_limit) + { + $day = date("w",$last_time); + if(date("w",$last_time) == 0) { + $sunday_list[$i]['date'] = date("Y-m-d", $last_time); + $last_date = explode("-",$sunday_list[$i]['date']); + $last_time = mktime(0, 0, 0, $last_date[1], $last_date[2], $last_date[0]); + $sunday_list[$i]['day'] = $last_date[2]; + $sunday_list[$i]['month'] = date("M",$last_time); + $sunday_list[$i]['year'] = $last_date[0]; + $found_sunday = 1; + } + $last_time += 90000; + if($found_sunday) { $i++; $found_sunday=0; } + } + + $this->t->set_var('span', $i); + $this->t->set_var('month',$sunday_list[$i-1]['month']); + $this->t->set_var('year',$sunday_list[$i-1]['year']); + $this->t->fp('list1','month_list',True); + $elder_width=200; $att_width=25; $total_width=$elder_width; + for ($i=0; $i < count($sunday_list); $i++) { + $link_data['menuaction'] = 'eq.eq.att_update'; + $link_data['month'] = $sunday_list[$i]['month']; + $link_data['year'] = $sunday_list[$i]['year']; + $link_data['day'] = $sunday_list[$i]['day']; + $link_data['date'] = $sunday_list[$i]['date']; + $link_data['action'] = 'update_day'; + $this->t->set_var('update_day',$GLOBALS['phpgw']->link('/eq/index.php',$link_data)); + $this->t->set_var('date',$sunday_list[$i]['date']); + $this->t->set_var('day',$sunday_list[$i]['day']); + $this->t->set_var('month',$sunday_list[$i]['month']); + $this->t->set_var('year',$sunday_list[$i]['year']); + $this->t->fp('list2','header_list',True); + $total_width += $att_width; + } + } + + if($action == 'update_day') + { + $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.att_update&action=save_day')); + $sunday_list[0]['date'] = date("Y-m-d", mktime(0, 0, 0, $monthnum[$month], $day, $year)); + $this->t->set_var('month',$month); + $this->t->set_var('year',$year); + $this->t->fp('list1','month_list',True); + $this->t->set_var('date',$date); + $this->t->set_var('day',$day); + $this->t->set_var('month',$month); + $this->t->set_var('year',$year); + $this->t->fp('list2','header_list',True); + } + + for ($i=0; $i < count($elder_id); $i++) { + $att_table = ""; + $this->nextmatchs->template_alternate_row_color(&$this->t); + $this->t->set_var('elder_name',$elder_name[$i]); + for ($j=0; $j < count($sunday_list); $j++) { + $sql = "SELECT * FROM eq_attendance WHERE date='" + . $sunday_list[$j]['date'] . "' AND elder=" . $elder_id[$i]; + $this->db->query($sql,__LINE__,__FILE__); + $value = $elder_id[$i] . "-" . $sunday_list[$j]['date']; + if($this->db->next_record()) { + $att_table .= ''; + } else { + $att_table .= ''; + } + } + $this->t->set_var('att_table',$att_table); + $this->t->fp('list3','elder_list',True); + } + + $this->t->set_var('lang_done', 'Cancel'); + $this->t->set_var('lang_reset','Clear Form'); + $this->t->set_var('lang_save','Save Changes'); + + $this->t->pfp('out','form'); + $this->t->pfp('addhandle','edit'); + + $this->save_sessiondata(); + } + +} + +?> diff --git a/inc/functions.inc.php b/inc/functions.inc.php new file mode 100644 index 0000000..525213b --- /dev/null +++ b/inc/functions.inc.php @@ -0,0 +1,14 @@ + diff --git a/inc/hook_add_def_pref.inc.php b/inc/hook_add_def_pref.inc.php new file mode 100644 index 0000000..e31a265 --- /dev/null +++ b/inc/hook_add_def_pref.inc.php @@ -0,0 +1,16 @@ +change('notes','notes_font','Verdana,Arial,Helvetica,sans-serif'); + $pref->change('notes','notes_font_size','3'); +?> diff --git a/inc/hook_admin.inc.php b/inc/hook_admin.inc.php new file mode 100644 index 0000000..1c8e3ba --- /dev/null +++ b/inc/hook_admin.inc.php @@ -0,0 +1,21 @@ + $GLOBALS['phpgw']->link('/eq/admin.php'), + ); +//Do not modify below this line + display_section($appname,$file); +} +?> diff --git a/inc/hook_manual.inc.php b/inc/hook_manual.inc.php new file mode 100644 index 0000000..50a6275 --- /dev/null +++ b/inc/hook_manual.inc.php @@ -0,0 +1,18 @@ + * + * -------------------------------------------- * + * This program 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. * + \**************************************************************************/ + /* $Id: hook_manual.inc.php,v 1.1.1.1 2001/05/20 07:40:32 seek3r Exp $ */ + + // Only Modify the $file variable..... + $file = Array(); +//Do not modify below this line + display_manual_section($appname,$file); +?> diff --git a/inc/hook_preferences.inc.php b/inc/hook_preferences.inc.php new file mode 100644 index 0000000..09305d4 --- /dev/null +++ b/inc/hook_preferences.inc.php @@ -0,0 +1,22 @@ + $GLOBALS['phpgw']->link('/eq/preferences.php'), +// 'Grant Access' => $GLOBALS['phpgw']->link('/index.php','menuaction=preferences.uiaclprefs.index&acl_app='.$appname), +// 'Edit categories' => $GLOBALS['phpgw']->link('/index.php','menuaction=preferences.uicategories.index&cats_app=' . $appname . '&cats_level=True&global_cats=True') + ); +//Do not modify below this line + display_section($appname,$file); +} +?> diff --git a/index.php b/index.php new file mode 100644 index 0000000..cd7662c --- /dev/null +++ b/index.php @@ -0,0 +1,79 @@ + 'eq', + 'noheader' => True, + 'nonavbar' => True + ); + include('../header.inc.php'); + + if (@isset($_GET['menuaction'])) + { + list($app,$class,$method) = explode('.',$_GET['menuaction']); + if (! $app || ! $class || ! $method) + { + $invalid_data = True; + } + } + else + { + $app = 'eq'; + $class = 'eq'; + $invalid_data = True; + } + + $GLOBALS['obj'] = CreateObject(sprintf('%s.%s',$app,$class)); + $GLOBALS[$class] = $GLOBALS['obj']; + if ((is_array($GLOBALS[$class]->public_functions) && $GLOBALS[$class]->public_functions[$method]) && ! $invalid_data) + { + execmethod($_GET['menuaction']); + unset($app); + unset($obj); + unset($class); + unset($method); + unset($invalid_data); + unset($api_requested); + } + else + { + if (! $app || ! $class || ! $method) + { + $GLOBALS['phpgw']->log->message(array( + 'text' => 'W-BadmenuactionVariable, menuaction missing or corrupt: %1', + 'p1' => $menuaction, + 'line' => __LINE__, + 'file' => __FILE__ + )); + } + + if (! is_array($obj->public_functions) || ! $obj->public_functions[$method] && $method) + { + $GLOBALS['phpgw']->log->message(array( + 'text' => 'W-BadmenuactionVariable, attempted to access private method: %1', + 'p1' => $method, + 'line' => __LINE__, + 'file' => __FILE__ + )); + } + //$GLOBALS['phpgw']->log->commit(); + + //$GLOBALS['phpgw']->redirect_link('/eq/index.php?menuaction=eq.eq.ht_view'); + } + +//$obj = CreateObject('eq.eq'); +//$obj->ht_view(); +//$GLOBALS['phpgw']->common->phpgw_footer(); + +?> diff --git a/setup/phpgw_en.lang b/setup/phpgw_en.lang new file mode 100644 index 0000000..41a5875 --- /dev/null +++ b/setup/phpgw_en.lang @@ -0,0 +1 @@ +eq common en EQ diff --git a/setup/phpgw_fr.lang b/setup/phpgw_fr.lang new file mode 100644 index 0000000..7cc3ceb --- /dev/null +++ b/setup/phpgw_fr.lang @@ -0,0 +1 @@ +eq common fr EQ diff --git a/setup/phpgw_sv.lang b/setup/phpgw_sv.lang new file mode 100644 index 0000000..1b63b18 --- /dev/null +++ b/setup/phpgw_sv.lang @@ -0,0 +1 @@ +eq common sv EQ diff --git a/setup/setup.inc.php b/setup/setup.inc.php new file mode 100644 index 0000000..a144ba4 --- /dev/null +++ b/setup/setup.inc.php @@ -0,0 +1,46 @@ + 'phpgwapi', + 'versions' => Array('0.9.10', '0.9.11' , '0.9.12', '0.9.13', '0.9.14', '0.9.16') + ); +?> diff --git a/templates/default/act_list.tpl b/templates/default/act_list.tpl new file mode 100644 index 0000000..3b6eb21 --- /dev/null +++ b/templates/default/act_list.tpl @@ -0,0 +1,27 @@ +
+
+
+ + + + + + + + + + + + + + + + + + + + +
{lang_date}{lang_name}
{date} + {name}{lang_view}{lang_edit}
{add}
+
+ diff --git a/templates/default/act_update.tpl b/templates/default/act_update.tpl new file mode 100644 index 0000000..96b4ed7 --- /dev/null +++ b/templates/default/act_update.tpl @@ -0,0 +1,64 @@ + + +{app_header} + +
+
+ + + + + + + + + + + + + + + + +
{lang_action}: {name}
Name: 
Date: {cal_date}
Notes:
+ + + + + + +
Elders Attending
{elder_name}{table_sep} + +
+ + + + + + + + +
+ + +
+
+
+ + + + + + + + +
+ + +
+
+ + + + + diff --git a/templates/default/act_view.tpl b/templates/default/act_view.tpl new file mode 100644 index 0000000..fe91407 --- /dev/null +++ b/templates/default/act_view.tpl @@ -0,0 +1,53 @@ + + + +{app_header} + +
+ + + + + + + + + + + + + + + + + + + +
{lang_action}: {name}
 
{lang_name}: {name}
{lang_date}: {cal_date}
{lang_notes}:
{notes}
+ + + + + + +
Elders Attending
{elder_name}{table_sep} + +
+ + + + + + +
+
+ +
+
+ Edit +
+
+ + + + diff --git a/templates/default/att_update.tpl b/templates/default/att_update.tpl new file mode 100644 index 0000000..8f98998 --- /dev/null +++ b/templates/default/att_update.tpl @@ -0,0 +1,46 @@ +
+
+ + + + + + + + +
Elder Attendance Table
+

+ + + + + + + + + + + + + + + + {att_table} + + +
 {month} {year}
Elder{day}
{elder_name}
+ + + + + + + +
+ + +
+
+ + +
diff --git a/templates/default/att_view.tpl b/templates/default/att_view.tpl new file mode 100644 index 0000000..7912c7f --- /dev/null +++ b/templates/default/att_view.tpl @@ -0,0 +1,44 @@ +
+
+ + + + +
Elder Attendance Table
+
+ + + + + + + +
+ Showing + {lang_num_months} + + +
+
+ + + + + + + + + + + + + + + + + {att_table} + + +
  + {month} {year}
Elder{day}
{elder_name}
+
diff --git a/templates/default/header.tpl b/templates/default/header.tpl new file mode 100644 index 0000000..ca6d7cd --- /dev/null +++ b/templates/default/header.tpl @@ -0,0 +1,28 @@ + + +

+

+ + + + + +
+ {lang_hometeaching} +   +   + {lang_activity} +   +   + {lang_participation} +   +   + {lang_ppi} +   +   + {lang_visit} +   +   + {lang_attendance} +
+
diff --git a/templates/default/ht_update.tpl b/templates/default/ht_update.tpl new file mode 100644 index 0000000..91db64a --- /dev/null +++ b/templates/default/ht_update.tpl @@ -0,0 +1,41 @@ +
+
+ + + + + + + +
{title}
+ + +

+ + + + + {header_row} + {table_data} + {stat_data} +
+ District {district_number}: {district_name} +
+ + + + + + + + + +
+ + +
+
+
+ + + diff --git a/templates/default/ht_view.tpl b/templates/default/ht_view.tpl new file mode 100644 index 0000000..56b34ee --- /dev/null +++ b/templates/default/ht_view.tpl @@ -0,0 +1,48 @@ +
+ + + + + +
{title}
+
+ +
+ + + + + +
+ Showing + {lang_num_months} + + +
+
+ +
+ + + + + + + {header_row} + {table_data} + {stat_data} +
+ District {district_number}: {district_name} +
+

+ + + + + + {header_row} + {totals} +
+ Total Visits +
+
diff --git a/templates/default/images/navbar.gif b/templates/default/images/navbar.gif new file mode 100644 index 0000000000000000000000000000000000000000..2042bea6da19b9de83983decaae0cb6230ad6d65 GIT binary patch literal 2064 zcmV+r2=DhtNk%w1VMhQj0OkMyI}{SVtu?G!FvGTWc4;fUxxA*Ad(Nw8Q8`$WgL!#0 zD6g!Wx~3@e^T)uooLEXTsh4hofl0uugtMBbq>oy}ysU^;P0Y;9Tq7T+noq{Hl6YGk zlXNV+qj0^gj(bo_y{Lbxq>!|%#p#@AwynDL-LJx|dth20nv_qwueZ6Zi|E?HnVFfg zmRYryW^+zY&8~9Ky?Mo?WVftzwWWf1M?%51#ce)_zmDjRRBb^qi;$JIt((TZ(TQAIj)*dPNh)4rGrzab=kisZJ5Hoi~6$c0bCNmeUKNz2K%FxA$}NiKI>E*%|D z*5NSIkm7vj=SCea+Gy+@M(FbB;^bxF^YY#hO?OKW5WJZfNYF$+KH-p6n^%xv2M9#& zSXpub0uve_GG=TzP+r1U3(*zSsF8^QB`H!YSz^Edjh7^27Nlp*6%3IBW4?UJ1cwMZ z6ILv#VgLsXB1n_&BsudVsGA}+s+g)GDG?lTNN7carU?!lA;MZ6OJpNKn&Un}H9?Xr zk+4|*No*0Zgi9Q-Ve{$@L4>M=zkdy$a~f%3&Wu%&?hU~rjtv_kg4hi!r?TbB3o?7y z>;bTZvxBQ$x=9eQ1`mt#I({rUj+_NYE?1eIxi)9NpF7ekOq!sE-@hF=n0=&pSQ~e? z1i8TCh?3{Ul{BeP!9nfJ!Z~;Tn=h>+YbHzs7fyb5l@Lm-SfRV5`E=^kr8j9}{>TFI z+5sc1*C?EC;N}TuUKK3Jv4s^jth5IUd%#ECeDgsU9eECL7RH5w?dP2#;Dz_sZv$5G zTxOQZ6U^jFP5e|Z3671u3bSpi*iK|&W?1R)3i z70n&7$9x4u31f^hDna3IfPr=nBOP)k;B1yPSAZN{++l_pR%j(g9v-Av+>=rM0Hch~ zSxMe$foaJl3_MD(nQ%hNk>VaHOfZ2JX3%j(4k?&17YRV*afTR5y!m2fdsr6TbJ=+? z)r}b*vZIGnkr#p-1*9N{TzA}Y#T!$^IsuyMZIMDAQbn^@PQpe)KEkJ5g20} z>&8=1ATP4Y-eWHaG<*d?9C7TS=oCVonS6Cp#4mj^1L<0=~pnwZvh=GIv zWB||u21qCU#~(>!Kta6mY+1-n8JQGE8(8FEM-OvMQG>)E%u&M&ZA37HA4AOX!4zss zT!b24kU_>979@a&!vef*`z zJRtV9#Mdyy-#)aFcITc;48;VbE8w{WI$HqL9B-^Z2LTUgfkG5Oh(Uw@0p8$F$T=Mt zkV6|<@Zi1{!q-52*fnUOg%1(5;YZt^bAAOIU3fzc*hV?(2|*8CSOFTmK!7^%AO>j2 zgA-^FklRV^e0)e>4*rIMGVtI5@gv>~UNE*DL?C}{P@DYbaD@+ejt)A|K@ncCg96%Y z3Ti;Z2n3LUFQ}me96-Ss2sbYdsRJMn7(xVY@HlJD@LEH7K@t4$0Ur3^18E!KwOaT> z9ROemL-+voD2GKgG+=07kU;}RumK)WfQZO4;zPy|Lkna2WiM8G>&nICp_f;0{{TP0F4&PP?F(s zcF+L=5O9T6qH=U#0D}O)u!9_gvIqc(VG&|!0gI_Y016NQFrlCZAD|!&D1ZYTqQMAH zc3=!vd;%P>K!6jRU<24B05+|80v>F@n!j7x(&}&nI^ZD(Ip6>`*QrhpZ~zKYaAyXv z@Pz}QAOk!=0R`Y718Eon8*V^>`+Pu9_gOJ{ZAd8lP=G>$8WRqEfLjb=fQ5=;fd>r8 zoI?qkIfLf&o*4*f3wE)HP9~uPeMo6aFC>NwxpV+9jp+bl5QZpt;ig`|ClA8#1r+$S zhj5s|48qU{m%20xNR2`mV!Df87$OleNJ0k2K-Do&;Hp<`b%RzR01a<=L#SX4t5|2? znZJaU9a>GRT9Z%m z3FWsc2I*m+a85q`?wz5gn$cXB^=g~}tGFgj9o+5=nn6@0L!^Hfg(%)j8Cp zSu<%-=mny0H>s9T$nq#^)S%Ey(~=Z^D>SNaLki~nSawZGLZ?u$wY6n58vFbE z@A9bH*-B)wA2ljbNP(`%j9L+-5kN}z%Inf6lJxA1G8ZU)(@?!_$#kjnwio$ z8A;YdC??0Z@aqi*gIcX>=CSISmtRb9)$)$zd9Gew@#=BjU>AX3n@G($Us+x_JNukQ z&7~J-3ESBG`dqOfb@D-ms5yz6eYU6|wT{Dn_H6p%#S7_azq42jK99pF$;>7GNWA_n zwcy6^(11>-yM8@IAZV_ssiM&eh{V*WsPN1iX^$RBV`F2^o%^n`lHStN#AMPF6EB`V z9e(ZF)wsAACX>PC{z;=1W@Zu-65^ASlRQ0l$HhgH$+>Jci%3j6b?RhnY?On8y_=h> zzd!!Ul`GNFQ7$gqaX4o$uiar`M?E}tIXYtAcm98Qp|(~SU<<$l@BQ}#V801$Ik=zf zXn2@!@9GyX?PwgNV!e;s0-huifZOk4dw>*TWn+ik7ek6wT5of54<=#18L-8;;ceNz z63GW2?hH&>n0h#9hxOVPf;&hKb8z*E;l&8a#~gR~+XET)-jtG^ftP2+dEV4AkKjxM zt25X!JdaYapZ%h;uh@5rb>Nah1-kmi@**1JhGlN}AG%V&C&Q1YDHkLK&W9+Nnt;TK zhH!48(^&iQgyRE`9AdeuWqgd!_0;44I$)h&VIkX#r_p`>*Mk?X-hfx z1Y>V_ZP=ZPrqk>IkMx#HuFX;PU*}==U&h^u<8R=J8JIJEXIj5c>LwU5XYoFB9WO&zwkg-7J*rBN~?{TtCWN75) tGx7P6hjAF*_~Dnhr=?$bd;~ik0gFN-Xx61%ry%@@ud*c21&0N`{1=PD!5aVo literal 0 HcmV?d00001 diff --git a/templates/default/images/navbar.png b/templates/default/images/navbar.png new file mode 100644 index 0000000000000000000000000000000000000000..72ff1a8c12d855bca77bbc2790ae23c9607e8a3e GIT binary patch literal 1963 zcmchX=Tj4i7R5soUW8>un)JRPRtOj&ASi(lA%$kBA|(RSiAcnyDu!M}AVj*MPB28*&qHlT3`y<|&`JFTO)15na=A@$#c2YnkAOHZ6vWM9?9i`n7 z=OsjrJZ+Gu3FY7dHJ6p?rJ7LOFAR0wjSV*J?Pk^$$B&V3qc39$Qt^0@ehY=v zQ>QNw3=hzsVc^D%#o;N*_5+lM?WOh4b3Is03c<~Bbad29TfM#%$)Oj-d8$6aonh8Q z_EK}=QSjb|#HQzY9TfJ`v!G6D&kn!kB_-b1L%p;R`J#o>^WMRcG$( z?8Mt$4s~?wsLu|9USTyvHPlt|GQ61Oe)N{w-RZ6h*xExa?;!DC)t*Y>6rqnVtBba=s|g)jan5C5K}r{PX=Wrn$O^3O@<( zpQfw`(3?bGt@3|MuKuIS-MYEupkTpOIDrg-L=^d~T~^(S16^0+X0E)BgII0^_$-bD zKsKkGAm#Yx#pK(ko{X@(S49-;u|;zKuu}h+((Hs4lmDEH&iA}$kwDfyrqg>_C)k1U z#8%sW?9Fy}!a7>#HR$iIk7K$sO3u^w2$mmD>Q&FAa6aSLop=w2@*P6xJ}sfkymF(v z7Bn&G$Bom4iJie7a4bDxUC(y&)`Y)Sb$$1>A}GL7Fu5B0lMUsqGd_lrEDnq<<_6sh z=S-F3fbAoxW`E;8K8#`7LfllUaN?641XYRK`~?yp-0&$>N~{cVNyL|{ogW~*EG1b| zzEq}ibQ=h#QV`JYUWPE8L-Fa#+p}PS;JrkzC21Z!h856{D@T-hY30v$*&O_(Y$3n2 z1J|FAK47xZ0QZ6nsJc4sFac3QNGS-&(cPvsdYzNrh3&rLTbG8K=D%I4)NS=qRz|oeW)${`4GdMCT#C||2gc13 zt<|PPTZ4X+UVSXCoXth#yl|{HQF6TT@T4PhuV^*=t%!RRbT%@&lymFn_cON{>NBI@ zHv5_%<2$dai8qCBN#}^D!9L@r%^d2c+?^%BW5D*^9g@I5ND`(bwGYbEPd=SGzpk(Y z$;^yY^1SvXX{_VZ)$9fQd-rq2hT!nsT~IJM*&#Lc^*d-qif7IgkLR(5pIt_;aTu1Z zvcNEBRDl_F!2Jb3?PedTTd=n>bH(2(P$1%=0o6iRh_6K{_cY=vRDOHRpNnVTOG-j& zKXI6ry4=gve>CL>6~>O!JvLXL)dCEA)AMy9q|T{*c7S2@2h znV7`foRbE>rdIK9W60;$#69lFa8a_l7sI0rJiCv z0s^>vYv~}p@#@+M87-`pZ}pFNk@ecJLXCl{9v^ZxtP17Zz8^?)GH{$;V0(l`8;MCB zEOm=;_pm-xd1xvNCZQMd`;ec@OSKH%#R*$m(Lt4r5|UnH=eUdV*7n*#+YR$YO}fxU zE-ln&*UJ0HgE+76R%rd)jrms2h74ROLRqRyN zW)!+mf8QX9d`gltrKw|Nx4+DepBP8q9fMa?9veBHd(aM5%1&F{41L+DQSu0SyfEnBOw z+5+OOrlu25LjvlR>dr5%tO!ZtU#1yP{#8kPWhJn?<*qF7QR_B|zIl!7A8yXq&IWi^jjM-8^iNzu~qk6pI68oq~SB zl$Hxy>c^k`)%S`uqE3kZ(UrAthplCLiq>H|AJ`0a)U4#HzqztO*gBWQ!5=_c6|#_J zfRh9=+0Y+?5LOo-TpyTRB)z#ip}ThKfGECt`io+*u+o;$mu1p8d;TC&HnkD8i=ss&C4F0gu4$ A8vpsK?`3TwGjOSa7@DPN&mgFsRk)=g&u9 zX*4>W&f#z@Ex8c{*6Z~>j}$^agISVO#>g(CXI8Q=^*)k~Yt`@H+pGBOhHA>2r);ND z44G@+Pw{lm%llgMtGRidinh7AIk$V!Xf#S2Ywy-yF=<55Ogn0SirQ7^oD4FHY!l_9 z-84~UQCFuNhM}IG?%Q=&XSD)o<{si0MPtbM3ckAgqHjqb=~OYRx$qa#k14XlQ0Z- z%B3<139>wd?HZ@0-(i%@Px8!~YvV(ghB~rY#mSA58oS+YG8r4{c-5Tqub+uc+7{cC z*rKg?GkjTjFIytSGm4V9H%i9FUNITeau!8)S0JgODx}2Ghxzgb0;4dllt!!;30}Tb zr>36H%gy5P*pfOCyNpaFC6Y2?7_@@N{e82uvl$tGOQj7}Rh3L8jYJ}1u@U5g+$T>| z(a}-y@v&TPd1GTehf|Knrye^Nk)D15hl}EH*kbW5CbNW0CZ(h#pFK+m4BU*vMHUxR z1p*$4lza5(k?3gbs#Pof{MH2p?MzEci;TpsUHjSk^f9IPIZ^Z6EM>vYrIDwY17|GPA$`<3#UM7G?Gn6s z120aq=YHNMpRoh`e%#-s=7$y zDule68&#Fn$_m!@Tl~{e39-qz#JE$@Cr_lru+obH2!+3<#^fAJOQM7m;`d5cP{<3e zZ;p$07YwP-y&#PAf6{ld?d?eQUTSY&D2u-{C64iRDZe?P<2)#Aw`elP-Z8%O*>hpC zHFq2eI6$&CDg6&oAlo=~db(Dbbu>W?tNuwHj1(Qr^^e!@%Yi0P-;F`K;|KZ8$q)0~ z1HXwJ^7N_wWO#Fpn&jzKhKJi#KR*KhWScf(%x_6tj*6A(O%@XoiVbNxe5Uw6_QI%c literal 0 HcmV?d00001 diff --git a/templates/default/par_update.tpl b/templates/default/par_update.tpl new file mode 100644 index 0000000..e69de29 diff --git a/templates/default/par_view.tpl b/templates/default/par_view.tpl new file mode 100644 index 0000000..53d7b46 --- /dev/null +++ b/templates/default/par_view.tpl @@ -0,0 +1,23 @@ +
+ + + + + +
Elder Participation Table
+

+ + + + + + + + + + + {part_table} + + +
Elder{activity_name}
{activity_date}
Participated
{elder_name}
+
diff --git a/templates/default/ppi_update.tpl b/templates/default/ppi_update.tpl new file mode 100644 index 0000000..66c08a6 --- /dev/null +++ b/templates/default/ppi_update.tpl @@ -0,0 +1,71 @@ +{app_header} + +
+ + + + + + + + + + + + + + + + + + + + + + + +
{lang_action}: {name}
Name:  +
Interviewer:  + +
Date:  + {cal_date} +
Notes:
+
+ + + + + + + + +
+ + +
+
+
+ + + + + + + + +
+ + +
+
+ + + + + + + diff --git a/templates/default/ppi_view.tpl b/templates/default/ppi_view.tpl new file mode 100644 index 0000000..0a1c64a --- /dev/null +++ b/templates/default/ppi_view.tpl @@ -0,0 +1,49 @@ +
+ + + + + +
{title}
+ + {ppi_link_title}
+ +
+ + + + + +
+ Showing + {lang_num_months} + + +
+
+ +
+ + + + + + + {header_row} + {table_data} + {stat_data} +
+ District {district_number}: {district_name} +
+

+ + + + + + {header_row} + {totals} +
+ Total PPIs +
+
diff --git a/templates/default/skel/delete.tpl b/templates/default/skel/delete.tpl new file mode 100644 index 0000000..ff650a0 --- /dev/null +++ b/templates/default/skel/delete.tpl @@ -0,0 +1,24 @@ + + +


+ +
+ + + + + + + + +
{deleteheader}
+ + + + + +
+ {hidden_vars} + {lang_no}
+
+
\ No newline at end of file diff --git a/templates/default/skel/form.tpl b/templates/default/skel/form.tpl new file mode 100644 index 0000000..28582b5 --- /dev/null +++ b/templates/default/skel/form.tpl @@ -0,0 +1,64 @@ + + + + +
+
+ {hidden_vars} + + + + + + + + + + + + + + + + +
{lang_action}: {name}
{message}
{lang_access}:  {access}
+ + + + + + + + + +
+ {hidden_vars} + + + {hidden_vars} + {lang_done}
+
+ + + + + + + + + + + +
+ {hidden_vars} + + + {hidden_vars} + {delete} + {hidden_vars} + {lang_done}
+ + + + + diff --git a/templates/default/skel/header.tpl b/templates/default/skel/header.tpl new file mode 100644 index 0000000..ca6d7cd --- /dev/null +++ b/templates/default/skel/header.tpl @@ -0,0 +1,28 @@ + + +

+

+ + + + + +
+ {lang_hometeaching} +   +   + {lang_activity} +   +   + {lang_participation} +   +   + {lang_ppi} +   +   + {lang_visit} +   +   + {lang_attendance} +
+
diff --git a/templates/default/skel/list.tpl b/templates/default/skel/list.tpl new file mode 100644 index 0000000..dd42a16 --- /dev/null +++ b/templates/default/skel/list.tpl @@ -0,0 +1,50 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
{title_notes}: {name}
+ + + {left} + + {right} + +
{search_message}
+
+
+ {lang_category}   +
+
+
+ {hidden_vars} +   +
{new_date}{first}{lang_view}{lang_edit}{lang_delete}
+ {hidden_vars} +
+
\ No newline at end of file diff --git a/templates/default/skel/preference_acl.tpl b/templates/default/skel/preference_acl.tpl new file mode 100644 index 0000000..d005033 --- /dev/null +++ b/templates/default/skel/preference_acl.tpl @@ -0,0 +1,25 @@ +{errors} +{title} + + + {nml} + + {nmr} + +
+
+
+ {common_hidden_vars} + + +
+
+
+
+ + {row} +
+{common_hidden_vars_form} + +
+
diff --git a/templates/default/skel/preference_acl_row.tpl b/templates/default/skel/preference_acl_row.tpl new file mode 100644 index 0000000..be03ce5 --- /dev/null +++ b/templates/default/skel/preference_acl_row.tpl @@ -0,0 +1,9 @@ + + + {user} + + + + + + diff --git a/templates/default/skel/preference_colspan.tpl b/templates/default/skel/preference_colspan.tpl new file mode 100644 index 0000000..b22fba6 --- /dev/null +++ b/templates/default/skel/preference_colspan.tpl @@ -0,0 +1,8 @@ + + {string} + {read_lang} + {add_lang} + {edit_lang} + {delete_lang} + {private_lang} + diff --git a/templates/default/skel/preferences.tpl b/templates/default/skel/preferences.tpl new file mode 100644 index 0000000..8bb144a --- /dev/null +++ b/templates/default/skel/preferences.tpl @@ -0,0 +1,24 @@ + +

+
+
+ + + + + + + + + + + + + + + + +
{lang_action}
{lang_select_font}:
{lang_select_size}:
+ +  
+
\ No newline at end of file diff --git a/templates/default/skel/view.tpl b/templates/default/skel/view.tpl new file mode 100644 index 0000000..aedd820 --- /dev/null +++ b/templates/default/skel/view.tpl @@ -0,0 +1,27 @@ + + + + +
+ + + + + + + + + + + + + + + + +
{lang_action}: {name}
 
{lang_time}: {new_date}
{fnote}
+ {hidden_vars} + {lang_done}
+
+ + \ No newline at end of file diff --git a/templates/default/vis_update.tpl b/templates/default/vis_update.tpl new file mode 100644 index 0000000..1d39257 --- /dev/null +++ b/templates/default/vis_update.tpl @@ -0,0 +1,67 @@ +{app_header} + +
+
+ + + + + + + + + + + + + + + + + + + + + + + +
{lang_action}: {name} Family
Family Name:  +
Companionship:   +
Date:  + {cal_date} +
Notes:
+
+ + + + + + + + +
+ + +
+
+
+ + + + + + + + +
+ + +
+
+ + + + + + + diff --git a/templates/default/vis_view.tpl b/templates/default/vis_view.tpl new file mode 100644 index 0000000..4cffa74 --- /dev/null +++ b/templates/default/vis_view.tpl @@ -0,0 +1,37 @@ +
+ +
+

Presidency Visits

+ + + + + + + + + + + + + + + + + +
{lang_name}{lang_date}
+ {family_name} Family{date}{lang_view}{lang_edit}
+ +

+ + + + + + +
+ Ward Families Available to Visit
{name} Family{table_sep} + +
+
+ diff --git a/templates/idots/images/navbar.gif b/templates/idots/images/navbar.gif new file mode 100644 index 0000000000000000000000000000000000000000..2042bea6da19b9de83983decaae0cb6230ad6d65 GIT binary patch literal 2064 zcmV+r2=DhtNk%w1VMhQj0OkMyI}{SVtu?G!FvGTWc4;fUxxA*Ad(Nw8Q8`$WgL!#0 zD6g!Wx~3@e^T)uooLEXTsh4hofl0uugtMBbq>oy}ysU^;P0Y;9Tq7T+noq{Hl6YGk zlXNV+qj0^gj(bo_y{Lbxq>!|%#p#@AwynDL-LJx|dth20nv_qwueZ6Zi|E?HnVFfg zmRYryW^+zY&8~9Ky?Mo?WVftzwWWf1M?%51#ce)_zmDjRRBb^qi;$JIt((TZ(TQAIj)*dPNh)4rGrzab=kisZJ5Hoi~6$c0bCNmeUKNz2K%FxA$}NiKI>E*%|D z*5NSIkm7vj=SCea+Gy+@M(FbB;^bxF^YY#hO?OKW5WJZfNYF$+KH-p6n^%xv2M9#& zSXpub0uve_GG=TzP+r1U3(*zSsF8^QB`H!YSz^Edjh7^27Nlp*6%3IBW4?UJ1cwMZ z6ILv#VgLsXB1n_&BsudVsGA}+s+g)GDG?lTNN7carU?!lA;MZ6OJpNKn&Un}H9?Xr zk+4|*No*0Zgi9Q-Ve{$@L4>M=zkdy$a~f%3&Wu%&?hU~rjtv_kg4hi!r?TbB3o?7y z>;bTZvxBQ$x=9eQ1`mt#I({rUj+_NYE?1eIxi)9NpF7ekOq!sE-@hF=n0=&pSQ~e? z1i8TCh?3{Ul{BeP!9nfJ!Z~;Tn=h>+YbHzs7fyb5l@Lm-SfRV5`E=^kr8j9}{>TFI z+5sc1*C?EC;N}TuUKK3Jv4s^jth5IUd%#ECeDgsU9eECL7RH5w?dP2#;Dz_sZv$5G zTxOQZ6U^jFP5e|Z3671u3bSpi*iK|&W?1R)3i z70n&7$9x4u31f^hDna3IfPr=nBOP)k;B1yPSAZN{++l_pR%j(g9v-Av+>=rM0Hch~ zSxMe$foaJl3_MD(nQ%hNk>VaHOfZ2JX3%j(4k?&17YRV*afTR5y!m2fdsr6TbJ=+? z)r}b*vZIGnkr#p-1*9N{TzA}Y#T!$^IsuyMZIMDAQbn^@PQpe)KEkJ5g20} z>&8=1ATP4Y-eWHaG<*d?9C7TS=oCVonS6Cp#4mj^1L<0=~pnwZvh=GIv zWB||u21qCU#~(>!Kta6mY+1-n8JQGE8(8FEM-OvMQG>)E%u&M&ZA37HA4AOX!4zss zT!b24kU_>979@a&!vef*`z zJRtV9#Mdyy-#)aFcITc;48;VbE8w{WI$HqL9B-^Z2LTUgfkG5Oh(Uw@0p8$F$T=Mt zkV6|<@Zi1{!q-52*fnUOg%1(5;YZt^bAAOIU3fzc*hV?(2|*8CSOFTmK!7^%AO>j2 zgA-^FklRV^e0)e>4*rIMGVtI5@gv>~UNE*DL?C}{P@DYbaD@+ejt)A|K@ncCg96%Y z3Ti;Z2n3LUFQ}me96-Ss2sbYdsRJMn7(xVY@HlJD@LEH7K@t4$0Ur3^18E!KwOaT> z9ROemL-+voD2GKgG+=07kU;}RumK)WfQZO4;zPy|Lkna2WiM8G>&nICp_f;0{{TP0F4&PP?F(s zcF+L=5O9T6qH=U#0D}O)u!9_gvIqc(VG&|!0gI_Y016NQFrlCZAD|!&D1ZYTqQMAH zc3=!vd;%P>K!6jRU<24B05+|80v>F@n!j7x(&}&nI^ZD(Ip6>`*QrhpZ~zKYaAyXv z@Pz}QAOk!=0R`Y718Eon8*V^>`+Pu9_gOJ{ZAd8lP=G>$8WRqEfLjb=fQ5=;fd>r8 zoI?qkIfLf&o*4*f3wE)HP9~uPeMo6aFC>NwxpV+9jp+bl5QZpt;ig`|ClA8#1r+$S zhj5s|48qU{m%20xNR2`mV!Df87$OleNJ0k2K-Do&;Hp<`b%RzR01a<=L#SX4t5|2? znZJaU9a>GRT9Z%et^Gd;G+OD~gx#|w?ix-~dhsBsKS_V~(2J{|@ipyhZo$4@u>~o$;K%c=>-W zXOeh@xvNjHeCh|t;VGh zvw!^wmQMX1*ax-_dK+{bq}FsBbQ9Qu_#W-U-{tVZw`gtsuHyBBc!L*TIU$48IK+I8 z&Aj&v2TnZ?%mW*x(8fH1r8r2;zFWwT9ok2}%7N9dv%YWvmAMMfI9}JdiffRF(9$a$ zT)v33pU%YTZO{(rRvxW9lDZAH4b}sTUwbemFAVZss)ts`;H10nz+| z;bYock7PCl=fHL{vcUw5`O$$1^j-uO7#S7IRfy5r7xD2HeLXbfZs0{DL8P{hrM{}c zJ0)qiAYKH2ET2=wtr!11^nZ~Fb@L-W2A#!lNs7cC748OJ5hJKGTqzS;-cd@J3aHLO z{}qtOKu&;%&Qmg7y{hr3l7+F1R5U`$nhx zAWJrziF5@SWI6Feni{FeI+>G!(>=9h|AJKdEtmpVfk5N=QMut zendiTxqS!|K~cmyY;CT`)o!#(xsgQ=O}TdN9K8o$MxA6n#VB)+;|=wa+BZCNLUwBd%-#28;_lCJ?KzNS z@>GWRWO<1*K{=Gm%$etuJpSiFx0>!}ffOhtjLn^+TK36JgGXgT|e56LK-vAyd@F>(5X@bmP@PVlF!xQCN8Pr+B!++`fHg03&2csvjm8A*4`vCTk%u(*~Bdr zbFc&!MbzYrh25p^)4lu>?Uk=!ZY~o#*Z~F!3}y7DBSc>IwpZJ1$ZIOj%q#_k_=9nPNlD{uVe^-@1URY{Tr?>%Nlr_AB*@(uis<5hz9 z9xc5lEbhok9bKN9E11B!^XGZ>)jzPfxJZ&DhzQ<$y!XTy+3s}s%#%;CZ($+Nah4Yb zna8ZYmI=Hdm)6!zONq9AKbaWAOhzy@K}>n~!oPTbV;w7MClQW4aFWAEj}mLXrMRy2 zc@nSu{oj|WJH3XEtDBD;053 zit9?=hdf*m3*fBvdQzcNo6)!S;jDpYWYM~LZa^-K$n?(5eH6M`bIGlgmPpYHSmD;C8Q2#*S=8AGYDQ^^PbX17mb5Dg%4@-0LO0A@O4iz718 zS0&-delC{E1XO;@A|;8^n^)B1-y|PV)I8b-iXF(9B-<-Ez*bMWnAwxEq2hPl47Lwn zRvc$5PKd2lVnZyo_Kp>GhZ&fsD8z1%pD-=c9D_jOGG&F>Hi(zz&)yB%nXqiIZJDWM zX^1ZjvP#(`1z}<;o11(sh6!x#VvS3}cQd6DSnrv~CY+s#?IP5k+zCiM5`&p?tV6JR z7;f#Nb%~NZradznLL`woigB(clNU(VfK~T432QvEq$3hq{0sM+<#O>3$CMPerTWfF z?S-?y{$BG+vZiM&njG+N^DdLmy0@Z|SUWA_9YK11^z0>!BTSY1=lcEW+S7F8cy;en z0H6}3cg$2n`}KK?@hMt=BYO;_#?UhNbV%Q+Qf2oxZhAk-^L4Blf8waZ;#9sEf*Ay3 zPJmbYxf&r0??XC{6s%8GhG2L>ukHh2v$flOn>ogbZ4avFsq?O_34Z3fm!@1An@~rL zUt!yjN4^xmJhviBFO2Krg(+Ab*-m!Wn&Et|73Id;?|i(zpEMZ22RR%6GC#{2?1Z7Yrp0fycs{-<^C86R#vl(Sv?1HU?dHeX`#{n{RRcggLa4)piqbo{1%PP@GK6aB+5 z@PWIXMC$_0Wblps!yc?)8iMZJ<{y+Tu8C2bvHZOyYdU*y`Hk~HAa}!)SWUA+!Na1+nkT9OX>EtelC(@4O8S2Spv{ zUEE-{bPR1R0IB2zGKeznG(fnH-L5#HNXj}6z^nYkj<*oO@S5@}2>L)Rj&ec=C8;$$ z#xLU5D;Yn+2Or!f?YOJGtT)mTRO7g0F<75?=irNu*BK+CgF}UX5)kp1boBEND;U@| z&64%ad<1)U_HTieRj@Y$emL|s``}NI`uEP3Dz&#WYBp~NH=QYon;&Z_Cq$HLU7tF4 zPO-8+H{AU@D^+)};;@&i$%WC;`gKLwIHRA%>|$-ebPX4*&FeeCY9H9my?-eJmTXX~ z$fV*qVfvsD8hdA;Y+i)qXXQ*I4-3MVlSDhMFP__Ra)}W=O>X$sY+$K>&uP5TbZ2c% zpK4T158|ilzUF~&8xn#Df!JRm!vllzHn<x$PQkJ^#Q>!1+22`pSCx z#McjF<6+WSwblelFOv1KJ+uql1nd$~Q}3y*ZL-`6EVSN-^1ya2@Mbo!Ph#=KZ#D&2 zeTAT;8I&YZsSM&$(=6e@Q#un3yS_V;AbIV1ZG;tI^0zvNLZOo*BO~FSameY}vGHj1 z4lSIPFi}}hW_yBn3aPX=)%nc$0~JlpdnN1Gigt+qWRF%^)PKz)bDol=kt$F!NeGnK z4VK9%s9CG2`!oi}LTlSw#)^3TD>6N%JocQSh0Hm4Dc+;rx+Ik)7kV!_Qz~qC>-k7c zIBB6s>V%$AeDyNrRQ)`*F0r)--em#t@kAzG-Ri20M|-jdBytG510mL@-(6n@mm@~~ zVwa~i$^S41WXc&sOwYUQ5&$vz^)}eh><^Z2x(0%l&A7b`I_tEQqiUwqF%#;?j9h=V znH}wh9QP^Ddu4Im9HC2|9%60@VgCjH&yXc!S^d?gRjht3RbzdAQk&BqVqns6X+DQ_ z^Je-)d%HP!u}>{%ToFfeBS!;Xr>(Cu7(wHr`7CPgstKYfnTUAE-i?S)KqE}FDOH8R zFmolQKBkPH@o6=kaH5-?AF0RN4DN8kvj}s`hO|ty-eU`kqr5Lfb8$zTj8~qcvSifG z1_8AmK234$k-rwgIj(b!_&i;m4q|y(k02>Ko^{mzChMg4=8si0#2pCx>7@u0CJC(~dWRSg za1-w)>>C>cDU_>$E5BC}2#TR$dwfaO9&ievYnlOf}ey9;21;bXK_VH zYI$hxi?54~#nVMAy@G$ou$=W;S0I#jNP~z;y;cMoQX2eM1VUMayad_7=K6I*Jt0_b z>;*n}&jyvvBK*dM8+okBK?BZ{q9MX8BQQ92aUOebM_?fEVN2E0B-E5qfz(N8WUTXu zPqezn)d>=3dQ(iqIqEJ__r;G={^}42hxE|~FboIt)xfx5q$z1)IX?t+{;4-!6%;h- zzp^A!CBveO#O32}0SbS*h;cQND&q|-<2re3>I$#VSZj;?R-{PVkVo-WFjX}Q>sgDW-sQk- zMMBRRHT(){A6|S9{_XzJ4w_f`1g|WHV_JG&bmP+skt$lf7-s};_;#LZ!5@Z5V&`W9 zi@I@}|KS_h^6klU@Zy&J#zK(@gMZybuwdpG0r?)>GW5&8@v{ZHx&=vjHzs~{JAe-9 zQN|q|PA17t*NhYHb4)C(uC`RgyrFZnD}Bh0j>#r*B4IvtzX%)uqRX6PJK{~SVg&h( zPaw5)57J~MhB4yT)x+MsA+ZZHDu}thd~nAgg;3a0W-MIo>=j6SRPaZV+~?)5%U z-RE^+9X;9E%XI{gETvsn{CDI(T= zgh>*EXXhv?NT@K_Eyp7$R_K;9@%^qZSYT~SfM6~0iSnNU5Dx-qd~tNiKg{C+)v|AW zy@Dl8<*Etk=#NE3)=Aau`Vt1UQ!=-LF8b;hyCT@$@^y|^Bb6E~OM94@f*LGZ6-;ky zsg3X@fciTLn=nGW)rqDa0rXi4ebv(mt^3f9gH0bbAv6B!;^{nwrK)P7nSjFWH_~it z1^cGwI8w%YKSR0M@9&P+cDmH0kU9$5aLH!Z(okx(%G2j}2}C_{7e98ddE8z92UW7kIOGH@yoMGf|kuTo{BbR9UjC_N#%g&!2JK*Hw7ZNh9nqA?J4oEogavyzEGuooB8nQvj zOX!4OPI(l4B+Oz|OUKgW$7g?~sM2@pUTPDg_@%J;gEju|ImHmF^m*XeMQD4)fZ*HfPADrk-IdVGfQm@tLNQ3=^AnoW6 z5MzgXz=NM-73L)odr|bZET)7xn)5?K8ivwu_Sy)9&U1=N`hBE^MN8)uDnS49vU5}9!R-iuRI)9TT7NR3)UVw za9`N5kObc-yr4hVwX4?`FtVc0FHltXoQfVdteXvhE0=H!NA_?ox>f>eiv)ZkuYXM> zlguCsg=p|u#2gE?;y`FRY>Xab9*}8NH$I2&mv!DP}KxbYX4bX`Eu1i=@aV|$175L zveoHwW_3~oSy-(iUu~Pm6*2fl4aVBdmfOnjTrky-c4TLMqdeYiZy(#gfk;Gax=(KT zc{Vum@D|w(>Xp-}I5R{!rC0K&D?WvN}<7@|1+^tIJ1 oZk3jBNg{3F&qcRAI3f@5$g%id;OTW){5JqN?K@~!VMAm84;kQct^fc4 literal 0 HcmV?d00001 diff --git a/templates/idots/images/unit.jpg b/templates/idots/images/unit.jpg new file mode 100755 index 0000000000000000000000000000000000000000..cf2adca0932cf645f02b48f522c6e5a7e014244c GIT binary patch literal 7350 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 literal 0 HcmV?d00001 diff --git a/templates/idsociety/images/navbar.gif b/templates/idsociety/images/navbar.gif new file mode 100644 index 0000000000000000000000000000000000000000..d51c4a813a218977ab57fdd16e622afae90a3ad7 GIT binary patch literal 444 zcmZ?wbhEHboW&r<(89p5cJ12K)YOX?FaH1kf7!BS=g*%%apHu7gTsmyD;6wR@aom8 zkdP1t28Kn87EPQu@$1*GXV0E}`SRtHCr@HyV}V)-0v(`c29RA0tp6S;_oQUb%UHE8 z=k>mVJysrx(yStHYTo}pu%N(0N2>pX%En_F5@JG4C0-r@%dcgJ?!KC~K0Zt0w5<2p z*n-NpsjF|dc)kr2IQj0!p1SkqmN_L{49zXAZS5VMUEMvsef<+Ab~F0;aW_qxIcxTu zx%1i>dD#{(o-u#r6W99sFJoe7*t`AUp~Gt%TMisJeCqUy zqkgP=_ML2JzRJvSz4_*~8*O*4UA^`2?yWP=I(JUHxPRZ3drzNy_|$UqxAVp;=6w;Gwp%>^{?57!|28HcnGmzD``wdJl@}LcG?;nZVkcR=RX9|2 z+v!lFaQmevX05We=PI|YOF1)}KmC{T6+MM>^G{!T%jC61*(KO@GTT+jz?H#CQ`_w3 ZW^pg#Q;pc1b@$ZP*ZhG?c!05G4FIst`NseN literal 0 HcmV?d00001 diff --git a/templates/idsociety/images/navbar.png b/templates/idsociety/images/navbar.png new file mode 100644 index 0000000000000000000000000000000000000000..9b430eea4ebc885b0d07b54625e371e5d2708189 GIT binary patch literal 367 zcmV-#0g(QQP)6-0000MbVXQnQ*UN; zcVTj60B31tGH`BZATlmAE;6HDM-Bi00Tf9@K~#9!&6c5#!axv)zmlfasJ;M6#i=?3 z4vCxhAeeL2eFDrq#n?j8>2TpNFwGwoIakQ%JDV^LO)W`sfA{lW8@T13lo@c9T} z1~Xf56>UNM+ZavXxZBb&Nr*}go zw1=hw3WD;u@)ULR^z8`^rUY9w9)0l*gY~uP;Z;H(94Z4Mpi_H zS6GF5*0Vgyz1+&xtCnR^=4DnUkV;vKl9#MR0XEQJvCOoZr(a}xre&&WsUk8w!!pz= zXnLf3x}~c{F>8_LX_h85vYLvNrz{04ssTeZDv?DGVz7Y*i)FQ;u6Z6|5o&+XQn`m) zxY{l%Xqtyvm~f9MWXtxXu8ZrjwDS0=wh6paZ8lsflRiE15FslA*umGG@Hmm2gG0ltv*pt)28N$ zixDLLprtbP$I-ctdv|l3uwx!q>Ddu^|Ps)sxkO)5DA7>wmM? vC(FMtzc0<6Z?2r(?EJi5*jhcAzV7{cdiD9)pXp}*$BPf&K7Bbo+|~Pgfp=$7 literal 0 HcmV?d00001 diff --git a/x.psd b/x.psd new file mode 100755 index 0000000000000000000000000000000000000000..8353958008332fe4ec27a6285ed9e21616c82cb1 GIT binary patch literal 8958 zcmeGhYj6|Cc~6pM*_MrsaUisz0%Qazb^{3N@l(sM>KyXS6$i_SZL!0mvv`v#VkO1Y80HJ}HfB_qfLDu!#J;}C$8BkmD zOY7O)@BMxI-M6>rRdHE$4Wf|HBrwTImm#r0`o6xntkNvWC0M3F8yE>siSgl+rkI+% z7F#{dDXg^9W#X!G=1y#bur z##hI9jdnwcwW!dh!vPfBBY-K|yNtoIv^a%>)&*-7XpmM&u(to9;cy;)OE`%u$BA?$ z(iK+*;u20&S0Y_;Wgsr$M0F+76;}r05>8ZCB3*H1ATHrVbtTdjR|et|PE=PSU2$a~ zF5&;Sy5N2%dMiYG;3}vQ?tBowH41te%)A!xe1 zmbG|%UJFZmY|Vrt$swFEFs7qg#3BpwARqF=%pw|K8)}Z&=p>S0o#zRJkew22JVtPQ z3nt*{{rDIX*Q2qxxQpN^WP~ANC6(ZCr-pS@!kt-a{~a4eR)2%YR3NRx0US4s(ukHo zS-WCoKSfVWFMu&BV;~gu0EO7R1vr8g!@7oQ;)|F)6o=>k7aqwBHjR)7k=02=1RKbs zjNmvEkQLFBLXYGaKQV*`WJhCETm*x#T8u_-C9!@JVA13u=t87 z88nmaw8P?ea{#71N3+}z;&Y?qSn)Kgvz&1=?4aak3HHlo_A@{QJ;iu%u2VS1JIl}c z=xAYJUaA`k=`O0=%5YFnchS?}5!ZcNob1LdYz$G6_t6M~;lh;>E-6XTK`a3sW4J2; z-3;}=0gXZwf1E#qGJiCqat5MA_}vU|XZ|vhPsMlji^|PN#9u)f1Vi>0K%3%EqL-0e zCX=Pe>fCQdyE%o)63{v1IIUUDDJaTe8PJ`=VYt;*GWKW#g4Ov-eu_ z3)q)FDNoK_R&(|2HJi`y$lF_fK4IFMwf5=z)^UX+56?MAU*G!j{v-Y`yJo0<-SWz| zB*M@JFtUP7vSa7K1 zr0G|ieirO7bT51?q~NfB5B;yuVXu*$NoKOg6xGomZ4^bCJfzRdGZ^zqjCsWhz1~<*U^Eni z3KFlO1b_IuW{s%du6&Jn0LFsQq?9-k8=SHO@l%fs#7~VG96!7T@EZiLc7kZYHZcZ6 zOw4df!a*ac=EK0jza!$+VQtVO-(13Pi?IC&A0N45{2V(S;#?=AD)<6yhC*PG0>J@J_#Ph%Jc--V%o4oW1@Q_IV%+Aox-pK! z!??@iz+WAB1q846)H8!|x6kW{!EJ7AUk05tY{SvS;=;>}kcOIsH?feRWkkSFGW0yD zmL=HA{~<%<_uPACNPpi9Nx%CHjYQ}zgkFblG|0;M1wSFVS+r22+kU+pJ{Re$x4uxL z&-pvML}L3@{z@qtelv86t!Te>2euTo{<mqu0OQjJ1?2Z-m3WEo3)~YA=TQTT5^) zrsl5b3We?jYv5CU)UHcc{;{Xy)|qTn^>L_oYr)v%z2R>0)4}e`97s;-?f5Aw@IYNc z(K@Pf;0ei4DoTN`)f9lFkv|Oc;Xo(|J;1j}4y@P|2%umnK<)cQ9{@ejsbI_PfM{bd z$OqA;+W{WtUKjkESZV5h0XB_0K*N^q(SDZy#5XtGiX zPL`BuFZ;~R30tFPL^!K1*9?>={q{6}-5Al4@{;gZy+q+wVpI^AepWV`qVIE9JOvm{rm8wO3;q5wQ{s;V5kE_a7?R8F8 zHG^Ak{trzvwM86OI`h0bH+K?CR@AqnI9EA&IfTI9{9=hlrBcn^39IW^WXP{xSUB0# z$-i$_O`?x}xpY#lIuw|zE;<5|A51E2