[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Fmsystem-commits] [9322]
From: |
Torstein |
Subject: |
[Fmsystem-commits] [9322] |
Date: |
Wed, 09 May 2012 06:19:04 +0000 |
Revision: 9322
http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=9322
Author: vator
Date: 2012-05-09 06:19:04 +0000 (Wed, 09 May 2012)
Log Message:
-----------
Modified Paths:
--------------
trunk/controller/inc/class.uicalendar.inc.php
trunk/controller/inc/class.uicontrol.inc.php
trunk/controller/js/controller/ajax.js
trunk/controller/templates/base/css/base.css
Added Paths:
-----------
trunk/controller/inc/component/class.month_calendar.inc.php
trunk/controller/templates/base/calendar/view_calendar_month_for_locations.xsl
Modified: trunk/controller/inc/class.uicalendar.inc.php
===================================================================
--- trunk/controller/inc/class.uicalendar.inc.php 2012-05-09 06:09:53 UTC
(rev 9321)
+++ trunk/controller/inc/class.uicalendar.inc.php 2012-05-09 06:19:04 UTC
(rev 9322)
@@ -38,6 +38,7 @@
include_class('controller', 'calendar_builder', 'inc/component/');
include_class('controller', 'location_finder', 'inc/helper/');
include_class('controller', 'year_calendar', 'inc/component/');
+ include_class('controller', 'month_calendar', 'inc/component/');
class controller_uicalendar extends controller_uicommon
{
@@ -55,7 +56,8 @@
'index' => true,
'view_calendar_for_month' =>
true,
'view_calendar_for_year' =>
true,
- 'view_calendar_for_locations' => true
+ 'view_calendar_year_for_locations' => true,
+ 'view_calendar_month_for_locations' => true
);
public function __construct()
@@ -134,9 +136,7 @@
$location_array =
execMethod('property.bolocation.read_single', array('location_code' =>
$location_code));
$property_array =
execMethod('property.solocation.read', array('type_id' => 1, 'allrows' =>
true));
-
-
$month_array = array("Januar", "Februar", "Mars",
"April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November",
"Desember");
for($i=1;$i<=$num_days_in_month;$i++){
@@ -242,8 +242,6 @@
$heading_array = array("Jan", "Feb", "Mar", "Apr",
"Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des");
- print_r($controls_calendar_array);
-
$data = array
(
'my_locations' =>
$my_locations,
@@ -261,7 +259,7 @@
self::add_javascript('controller', 'controller',
'ajax.js');
}
- public function view_calendar_for_locations()
+ public function view_calendar_year_for_locations()
{
$control_id = phpgw::get_var('control_id');
$control = $this->so_control->get_single($control_id);
@@ -280,9 +278,6 @@
$to_year = $year + 1;
$to_date_ts = strtotime("01/01/$to_year");
- //$this->calendar_builder = new
calendar_builder($from_date_ts, $to_date_ts);
-
- //$controls_with_check_lists_array = array();
$locations_with_calendar_array = array();
if($control->get_repeat_type() <= 1 ){
@@ -296,11 +291,11 @@
$calendar_array =
$year_calendar->build_agg_calendar($agg_open_cases_pr_month_array);
$locations_with_calendar_array[] =
array("location" => $curr_location_code, "calendar_array" => $calendar_array);
}
- }else if($control->get_repeat_type() == 2){
+ }else if($control->get_repeat_type() > 1){
foreach($locations_for_control_array as
$location){
$curr_location_code =
$location['location_code'];
- $repeat_type = 2;
+ $repeat_type =
$control->get_repeat_type();
$location_with_check_lists =
$this->so->get_check_lists_for_control_and_location($control_id,
$curr_location_code, $from_date_ts, $to_date_ts, $repeat_type);
$check_lists_array =
$location_with_check_lists["check_lists_array"];
@@ -310,22 +305,7 @@
$locations_with_calendar_array[] =
array("location" => $curr_location_code, "calendar_array" => $calendar_array);
}
- }else if($control->get_repeat_type() == 3){
- foreach($locations_for_control_array as
$location){
- $curr_location_code =
$location['location_code'];
-
- $repeat_type = 3;
- $location_with_check_lists =
$this->so->get_check_lists_for_control_and_location($control_id,
$curr_location_code, $from_date_ts, $to_date_ts, $repeat_type);
-
- $year_calendar = new
year_calendar($control, $year);
-
- $check_lists_array =
$location_with_check_lists["check_lists_array"];
-
- $calendar_array =
$year_calendar->build_calendar( $check_lists_array );
-
- $locations_with_calendar_array[] =
array("location" => $curr_location_code, "calendar_array" => $calendar_array);
- }
- }
+ }
$criteria = array
(
@@ -338,7 +318,6 @@
$location_finder = new location_finder();
$my_locations = $location_finder->get_responsibilities(
$criteria );
- //$controls_calendar_array =
$this->calendar_builder->build_calendar_array($controls_with_check_lists_array,
12, "view_months" );
$heading_array = array("Jan", "Feb", "Mar", "Apr",
"Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des");
$data = array
@@ -357,6 +336,95 @@
self::add_javascript('controller', 'controller',
'ajax.js');
}
+ public function view_calendar_month_for_locations()
+ {
+ $control_id = phpgw::get_var('control_id');
+ $control = $this->so_control->get_single($control_id);
+ $year = intval( phpgw::get_var('year') );
+ $month = intval( phpgw::get_var('month') );
+
+ if(is_numeric($control_id) & $control_id > 0)
+ {
+ $locations_for_control_array =
$this->so_control->get_locations_for_control($control_id);
+ }
+
+ if(empty($year)){
+ $year = intval( date("Y") );
+ }
+
+ if(empty($month)){
+ $month = date("n");
+ }
+
+ $from_month = $month;
+
+ $from_date_ts = strtotime("$from_month/01/$year");
+
+ if(($from_month + 1) > 12){
+ $to_month = 1;
+ $to_year = $year + 1;
+ }else{
+ $to_month = $from_month + 1;
+ $to_year = $year;
+ }
+
+ $to_date_ts = strtotime("$to_month/01/$to_year");
+
+ $locations_with_calendar_array = array();
+
+ foreach($locations_for_control_array as $location){
+ $curr_location_code =
$location['location_code'];
+
+ $repeat_type = $control->get_repeat_type();
+ $location_with_check_lists =
$this->so->get_check_lists_for_control_and_location($control_id,
$curr_location_code, $from_date_ts, $to_date_ts, $repeat_type);
+
+ $check_lists_array =
$location_with_check_lists["check_lists_array"];
+
+ $month_calendar = new month_calendar($control,
$year, $month);
+ $calendar_array =
$month_calendar->build_calendar( $check_lists_array );
+
+ $locations_with_calendar_array[] =
array("location" => $curr_location_code, "calendar_array" => $calendar_array);
+ }
+
+ $criteria = array
+ (
+ 'user_id' =>
$GLOBALS['phpgw_info']['user']['account_id'], //
+ 'type_id' => 1, // Nivå i bygningsregisteret
1:eiendom
+ 'role_id' => 0, // For å begrense til en
bestemt rolle - ellers listes alle roller for brukeren
+ 'allrows' => false
+ );
+
+ $location_finder = new location_finder();
+ $my_locations = $location_finder->get_responsibilities(
$criteria );
+
+
+ $month_array = array("Januar", "Februar", "Mars",
"April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November",
"Desember");
+
+ $num_days_in_month = cal_days_in_month(CAL_GREGORIAN,
$month, $year);
+
+ for($i=1;$i<=$num_days_in_month;$i++){
+ $heading_array[$i] = "$i";
+ }
+
+ $data = array
+ (
+ 'my_locations'
=> $my_locations,
+ 'view_location_code' =>
$location_code,
+ 'property_array'
=> $property_array,
+ 'location_array'
=> $location_array,
+ 'heading_array'
=> $heading_array,
+ 'locations_with_calendar_array' =>
$locations_with_calendar_array,
+ 'date_format'
=> $date_format,
+ 'period'
=> $month_array[ $month - 1],
+ 'month_nr'
=> $month,
+ 'year'
=> $year,
+ );
+
+ self::render_template_xsl(
array('calendar/view_calendar_month_for_locations',
'calendar/check_list_status_checker', 'calendar/icon_color_map'), $data);
+ self::add_javascript('controller', 'controller',
'jquery.js');
+ self::add_javascript('controller', 'controller',
'ajax.js');
+ }
+
public function
populate_controls_with_check_lists($controls_for_location_array,
$control_id_with_check_list_array){
$controls_with_check_list = array();
Modified: trunk/controller/inc/class.uicontrol.inc.php
===================================================================
--- trunk/controller/inc/class.uicontrol.inc.php 2012-05-09 06:09:53 UTC
(rev 9321)
+++ trunk/controller/inc/class.uicontrol.inc.php 2012-05-09 06:19:04 UTC
(rev 9322)
@@ -878,7 +878,7 @@
foreach($results["results"] as &$res) {
$res['show_locations'] = array(
- 'href' => self::link(array('menuaction'
=> 'controller.uicalendar.view_calendar_for_locations', 'control_id' =>
$res['id'])),
+ 'href' => self::link(array('menuaction'
=> 'controller.uicalendar.view_calendar_year_for_locations', 'control_id' =>
$res['id'])),
'label' =>
lang('show_controls_for_location'),
);
}
Added: trunk/controller/inc/component/class.month_calendar.inc.php
===================================================================
--- trunk/controller/inc/component/class.month_calendar.inc.php
(rev 0)
+++ trunk/controller/inc/component/class.month_calendar.inc.php 2012-05-09
06:19:04 UTC (rev 9322)
@@ -0,0 +1,85 @@
+<?php
+phpgw::import_class('controller.socheck_list');
+include_class('controller', 'date_generator', 'inc/component/');
+include_class('controller', 'check_list_status_info', 'inc/helper/');
+include_class('controller', 'check_list_status_manager', 'inc/helper/');
+
+/* This class transforms controls with checklists or controls with aggregated
number of open cases,
+* and puts these values in a calendar array for each control
+*/
+
+class month_calendar {
+
+ private $period_start_date_ts;
+ private $period_end_date_ts;
+ private $year;
+ private $month;
+ private $control;
+ private $calendar_array = array();
+
+ public function __construct($control, $year, $month){
+ $this->year = $year;
+ $this->month = $month;
+ $this->control = $control;
+
+ $from_month = $month;
+
+ $from_date_ts = strtotime("$from_month/01/$year");
+
+ if(($from_month + 1) > 12){
+ $to_month = 1;
+ $to_year = $year + 1;
+ }else{
+ $to_month = $from_month + 1;
+ $to_year = $year;
+ }
+
+ $to_date_ts = strtotime("$to_month/01/$to_year");
+
+ $this->period_start_date_ts = $from_date_ts;
+ $this->period_end_date_ts = $to_date_ts;
+
+ $this->init_calendar();
+ }
+
+ function init_calendar(){
+
+ $this->calendar_array = array();
+
+ for($i=1;$i<=$num;$i++){
+ $this->calendar_array[$i] = null;
+ }
+
+ $date_generator = new
date_generator($this->control->get_start_date(),
$this->control->get_end_date(), $this->period_start_date_ts,
$this->period_end_date_ts, $this->control->get_repeat_type(),
$this->control->get_repeat_interval());
+ $dates_array = $date_generator->get_dates();
+
+ // Inserts dates
+ foreach($dates_array as $date){
+
+ $todays_date = mktime(0,0,0,date("m"), date("d"),
date("Y"));
+
+ if($date < $todays_date){
+ $status = "CONTROL_NOT_DONE";
+ }else{
+ $status = "CONTROL_REGISTERED";
+ }
+
+ $this->calendar_array[ date("j", $date) ]["status"] =
$status;
+ $this->calendar_array[ date("j", $date) ]["info"] =
array("date" => $date, "control_id" => $this->control->get_id());
+ }
+ }
+
+ // Function that puts checklists into a twelve months array for
displaying a year or a days array for displaying a month
+ public function build_calendar( $check_lists_array ){
+
+ foreach($check_lists_array as $check_list){
+ $check_list_status_manager = new
check_list_status_manager( $check_list );
+ $check_list_status_info =
$check_list_status_manager->get_status_for_check_list();
+
+ $this->calendar_array[ date("j",
$check_list->get_deadline()) ]["status"] =
$check_list_status_info->get_status();
+ $this->calendar_array[ date("j",
$check_list->get_deadline()) ]["info"] = $check_list_status_info->serialize();
+ }
+
+ return $this->calendar_array;
+ }
+}
\ No newline at end of file
Modified: trunk/controller/js/controller/ajax.js
===================================================================
--- trunk/controller/js/controller/ajax.js 2012-05-09 06:09:53 UTC (rev
9321)
+++ trunk/controller/js/controller/ajax.js 2012-05-09 06:19:04 UTC (rev
9322)
@@ -673,8 +673,9 @@
$(submitBnt).addClass("not_active");
}, 1000);
- $(thisForm).delay(1500).slideUp(500);
-
$(thisForm).parents("ul.expand_list").find("h4 img").delay(1500).attr("src",
"controller/images/arrow_right.png");
+ $(thisForm).delay(1500).slideUp(500,
function(){
+
$(thisForm).parents("ul.expand_list").find("h4 img").attr("src",
"controller/images/arrow_right.png");
+ });
}
}
}
Added:
trunk/controller/templates/base/calendar/view_calendar_month_for_locations.xsl
===================================================================
---
trunk/controller/templates/base/calendar/view_calendar_month_for_locations.xsl
(rev 0)
+++
trunk/controller/templates/base/calendar/view_calendar_month_for_locations.xsl
2012-05-09 06:19:04 UTC (rev 9322)
@@ -0,0 +1,95 @@
+<!-- $Id: view_calendar_year.xsl 9206 2012-04-23 06:21:38Z vator $ -->
+<xsl:template match="data" xmlns:php="http://php.net/xsl">
+<xsl:variable name="date_format">d/m-Y</xsl:variable>
+<xsl:variable name="year"><xsl:value-of select="year"/></xsl:variable>
+
+<div id="main_content">
+
+ <div id="control_plan">
+ <div class="top">
+ <h1>Kontrollplan for <xsl:value-of
select="control/title"/></h1>
+ <h3>Periode: <xsl:value-of select="period"/></h3>
+
+ <form action="#">
+ <input type="hidden" name="period_type"
value="view_year" />
+ <input type="hidden" name="year">
+ <xsl:attribute name="value">
+ <xsl:value-of select="year"/>
+ </xsl:attribute>
+ </input>
+
+ <select id="choose_my_location">
+ <xsl:for-each select="my_locations">
+ <xsl:variable
name="loc_code"><xsl:value-of select="location_code"/></xsl:variable>
+ <option value="{$loc_code}">
+ <xsl:value-of
disable-output-escaping="yes" select="loc1_name"/>
+ </option>
+ </xsl:for-each>
+ </select>
+ </form>
+ </div>
+ <div class="middle">
+ <xsl:call-template name="icon_color_map" />
+ </div>
+ <div id="cal_wrp">
+ <ul class="calendar">
+ <li class="heading">
+ <div class="control_details_wrp">
+ <div
class="location">Lokasjon</div>
+ </div>
+ <div class="days_wrp">
+ <xsl:for-each
select="heading_array">
+ <div>
+ <a>
+
<xsl:attribute name="href">
+
<xsl:text>index.php?menuaction=controller.uicalendar.view_calendar_month_for_locations</xsl:text>
+
<xsl:text>&year=</xsl:text>
+
<xsl:value-of select="$year"/>
+
<xsl:text>&month=</xsl:text>
+
<xsl:number/>
+
</xsl:attribute>
+
<xsl:value-of select="."/>
+ </a>
+ </div>
+ </xsl:for-each>
+ </div>
+ </li>
+
+ <xsl:choose>
+ <xsl:when
test="locations_with_calendar_array/child::node()">
+
+ <xsl:for-each
select="locations_with_calendar_array">
+ <li>
+ <xsl:choose>
+ <xsl:when test="(position() mod
2) != 1">
+ <xsl:attribute
name="class">odd</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute
name="class">even</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <div class="control_details_wrp">
+ <div class="location">
+ <xsl:value-of
select="location"/>
+ </div>
+ </div>
+ <div class="days_wrp">
+ <xsl:for-each
select="calendar_array">
+
<xsl:call-template name="check_list_status_checker" >
+
<xsl:with-param name="location_code"><xsl:value-of
select="//location"/></xsl:with-param>
+
</xsl:call-template>
+ </xsl:for-each>
+ </div>
+ </li>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <div class="cal_info_msg">Ingen sjekklister for
bygg i angitt periode</div>
+ </xsl:otherwise>
+ </xsl:choose>
+ </ul>
+ </div>
+</div>
+</div>
+</xsl:template>
Property changes on:
trunk/controller/templates/base/calendar/view_calendar_month_for_locations.xsl
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/controller/templates/base/css/base.css
===================================================================
--- trunk/controller/templates/base/css/base.css 2012-05-09 06:09:53 UTC
(rev 9321)
+++ trunk/controller/templates/base/css/base.css 2012-05-09 06:19:04 UTC
(rev 9322)
@@ -1007,7 +1007,7 @@
}
ul.calendar div.location {
text-align: left;
- width: 600px;
+ width: 100px;
}
.control_details_wrp div.assigned {
text-align: left;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [9322],
Torstein <=